{"version":3,"file":"main.js","mappings":"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AIgsG,OAAO,GAAGF,OAAO,IAAI,IAAIA,OAAJ,EAAzB;AAEA;;AACA,QAAIG,SAAS,GAAG,EAAhB;AAEA;;AACA,QAAIC,kBAAkB,GAAGC,QAAQ,CAAC5kE,QAAD,CAAjC;AAAA,QACI6kE,aAAa,GAAGD,QAAQ,CAACl4G,GAAD,CAD5B;AAAA,QAEIo4G,iBAAiB,GAAGF,QAAQ,CAACl3F,OAAD,CAFhC;AAAA,QAGIq3F,aAAa,GAAGH,QAAQ,CAAC72G,GAAD,CAH5B;AAAA,QAIIi3G,iBAAiB,GAAGJ,QAAQ,CAACL,OAAD,CAJhC;AAMA;;AACA,QAAIU,WAAW,GAAGvC,MAAM,GAAGA,MAAM,CAACttH,SAAV,GAAsBq4B,SAA9C;AAAA,QACIy3F,aAAa,GAAGD,WAAW,GAAGA,WAAW,CAACnuF,OAAf,GAAyBrJ,SADxD;AAAA,QAEI03F,cAAc,GAAGF,WAAW,GAAGA,WAAW,CAAC7rG,QAAf,GAA0BqU,SAF1D;AAIA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS23F,MAAT,CAAgBztH,KAAhB,EAAuB;AACrB,UAAI0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB,CAACkB,OAAO,CAAClB,KAAD,CAA/B,IAA0C,EAAEA,KAAK,YAAY2tH,WAAnB,CAA9C,EAA+E;AAC7E,YAAI3tH,KAAK,YAAY4tH,aAArB,EAAoC;AAClC,iBAAO5tH,KAAP;AACD;;AACD,YAAIoiB,cAAc,CAACvgB,IAAf,CAAoB7B,KAApB,EAA2B,aAA3B,CAAJ,EAA+C;AAC7C,iBAAO6tH,YAAY,CAAC7tH,KAAD,CAAnB;AACD;AACF;;AACD,aAAO,IAAI4tH,aAAJ,CAAkB5tH,KAAlB,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI8tH,UAAU,GAAI,YAAW;AAC3B,eAAS14G,MAAT,GAAkB,CAAE;;AACpB,aAAO,UAASiB,KAAT,EAAgB;AACrB,YAAI,CAAC03G,QAAQ,CAAC13G,KAAD,CAAb,EAAsB;AACpB,iBAAO,EAAP;AACD;;AACD,YAAI80G,YAAJ,EAAkB;AAChB,iBAAOA,YAAY,CAAC90G,KAAD,CAAnB;AACD;;AACDjB,QAAAA,MAAM,CAAC3X,SAAP,GAAmB4Y,KAAnB;AACA,YAAIP,MAAM,GAAG,IAAIV,MAAJ,EAAb;AACAA,QAAAA,MAAM,CAAC3X,SAAP,GAAmBq4B,SAAnB;AACA,eAAOhgB,MAAP;AACD,OAXD;AAYD,KAdiB,EAAlB;AAgBA;AACJ;AACA;AACA;AACA;;;AACI,aAASk4G,UAAT,GAAsB,CACpB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASJ,aAAT,CAAuB5tH,KAAvB,EAA8BiuH,QAA9B,EAAwC;AACtC,WAAKC,WAAL,GAAmBluH,KAAnB;AACA,WAAKmuH,WAAL,GAAmB,EAAnB;AACA,WAAKC,SAAL,GAAiB,CAAC,CAACH,QAAnB;AACA,WAAKI,SAAL,GAAiB,CAAjB;AACA,WAAKC,UAAL,GAAkBx4F,SAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI23F,IAAAA,MAAM,CAACc,gBAAP,GAA0B;AAExB;AACN;AACA;AACA;AACA;AACA;AACM,gBAAUjQ,QARc;;AAUxB;AACN;AACA;AACA;AACA;AACA;AACM,kBAAYC,UAhBY;;AAkBxB;AACN;AACA;AACA;AACA;AACA;AACM,qBAAeC,aAxBS;;AA0BxB;AACN;AACA;AACA;AACA;AACA;AACM,kBAAY,EAhCY;;AAkCxB;AACN;AACA;AACA;AACA;AACA;AACM,iBAAW;AAET;AACR;AACA;AACA;AACA;AACA;AACQ,aAAKiP;AARI;AAxCa,KAA1B,CAvTiD,CA2WjD;;AACAA,IAAAA,MAAM,CAAChwH,SAAP,GAAmBuwH,UAAU,CAACvwH,SAA9B;AACAgwH,IAAAA,MAAM,CAAChwH,SAAP,CAAiBuX,WAAjB,GAA+By4G,MAA/B;AAEAG,IAAAA,aAAa,CAACnwH,SAAd,GAA0BqwH,UAAU,CAACE,UAAU,CAACvwH,SAAZ,CAApC;AACAmwH,IAAAA,aAAa,CAACnwH,SAAd,CAAwBuX,WAAxB,GAAsC44G,aAAtC;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASD,WAAT,CAAqB3tH,KAArB,EAA4B;AAC1B,WAAKkuH,WAAL,GAAmBluH,KAAnB;AACA,WAAKmuH,WAAL,GAAmB,EAAnB;AACA,WAAKK,OAAL,GAAe,CAAf;AACA,WAAKC,YAAL,GAAoB,KAApB;AACA,WAAKC,aAAL,GAAqB,EAArB;AACA,WAAKC,aAAL,GAAqBjT,gBAArB;AACA,WAAKkT,SAAL,GAAiB,EAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,SAAT,GAAqB;AACnB,UAAI/4G,MAAM,GAAG,IAAI63G,WAAJ,CAAgB,KAAKO,WAArB,CAAb;AACAp4G,MAAAA,MAAM,CAACq4G,WAAP,GAAqBW,SAAS,CAAC,KAAKX,WAAN,CAA9B;AACAr4G,MAAAA,MAAM,CAAC04G,OAAP,GAAiB,KAAKA,OAAtB;AACA14G,MAAAA,MAAM,CAAC24G,YAAP,GAAsB,KAAKA,YAA3B;AACA34G,MAAAA,MAAM,CAAC44G,aAAP,GAAuBI,SAAS,CAAC,KAAKJ,aAAN,CAAhC;AACA54G,MAAAA,MAAM,CAAC64G,aAAP,GAAuB,KAAKA,aAA5B;AACA74G,MAAAA,MAAM,CAAC84G,SAAP,GAAmBE,SAAS,CAAC,KAAKF,SAAN,CAA5B;AACA,aAAO94G,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASi5G,WAAT,GAAuB;AACrB,UAAI,KAAKN,YAAT,EAAuB;AACrB,YAAI34G,MAAM,GAAG,IAAI63G,WAAJ,CAAgB,IAAhB,CAAb;AACA73G,QAAAA,MAAM,CAAC04G,OAAP,GAAiB,CAAC,CAAlB;AACA14G,QAAAA,MAAM,CAAC24G,YAAP,GAAsB,IAAtB;AACD,OAJD,MAIO;AACL34G,QAAAA,MAAM,GAAG,KAAKgsD,KAAL,EAAT;AACAhsD,QAAAA,MAAM,CAAC04G,OAAP,IAAkB,CAAC,CAAnB;AACD;;AACD,aAAO14G,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk5G,SAAT,GAAqB;AACnB,UAAIzxH,KAAK,GAAG,KAAK2wH,WAAL,CAAiBluH,KAAjB,EAAZ;AAAA,UACIivH,GAAG,GAAG,KAAKT,OADf;AAAA,UAEIU,KAAK,GAAGhuH,OAAO,CAAC3D,KAAD,CAFnB;AAAA,UAGI4xH,OAAO,GAAGF,GAAG,GAAG,CAHpB;AAAA,UAIIG,SAAS,GAAGF,KAAK,GAAG3xH,KAAK,CAACgB,MAAT,GAAkB,CAJvC;AAAA,UAKIwS,IAAI,GAAGs+G,OAAO,CAAC,CAAD,EAAID,SAAJ,EAAe,KAAKR,SAApB,CALlB;AAAA,UAMI9qH,KAAK,GAAGiN,IAAI,CAACjN,KANjB;AAAA,UAOIwK,GAAG,GAAGyC,IAAI,CAACzC,GAPf;AAAA,UAQI/P,MAAM,GAAG+P,GAAG,GAAGxK,KARnB;AAAA,UASI8O,KAAK,GAAGu8G,OAAO,GAAG7gH,GAAH,GAAUxK,KAAK,GAAG,CATrC;AAAA,UAUIwrH,SAAS,GAAG,KAAKZ,aAVrB;AAAA,UAWIa,UAAU,GAAGD,SAAS,CAAC/wH,MAX3B;AAAA,UAYIsnH,QAAQ,GAAG,CAZf;AAAA,UAaI2J,SAAS,GAAGjD,SAAS,CAAChuH,MAAD,EAAS,KAAKowH,aAAd,CAbzB;;AAeA,UAAI,CAACO,KAAD,IAAW,CAACC,OAAD,IAAYC,SAAS,IAAI7wH,MAAzB,IAAmCixH,SAAS,IAAIjxH,MAA/D,EAAwE;AACtE,eAAOkxH,gBAAgB,CAAClyH,KAAD,EAAQ,KAAK4wH,WAAb,CAAvB;AACD;;AACD,UAAIr4G,MAAM,GAAG,EAAb;;AAEA45G,MAAAA,KAAK,EACL,OAAOnxH,MAAM,MAAMsnH,QAAQ,GAAG2J,SAA9B,EAAyC;AACvC58G,QAAAA,KAAK,IAAIq8G,GAAT;AAEA,YAAIU,SAAS,GAAG,CAAC,CAAjB;AAAA,YACI3vH,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CADjB;;AAGA,eAAO,EAAE+8G,SAAF,GAAcJ,UAArB,EAAiC;AAC/B,cAAI1uH,IAAI,GAAGyuH,SAAS,CAACK,SAAD,CAApB;AAAA,cACIrK,QAAQ,GAAGzkH,IAAI,CAACykH,QADpB;AAAA,cAEI56G,IAAI,GAAG7J,IAAI,CAAC6J,IAFhB;AAAA,cAGIklH,QAAQ,GAAGtK,QAAQ,CAACtlH,KAAD,CAHvB;;AAKA,cAAI0K,IAAI,IAAI0wG,aAAZ,EAA2B;AACzBp7G,YAAAA,KAAK,GAAG4vH,QAAR;AACD,WAFD,MAEO,IAAI,CAACA,QAAL,EAAe;AACpB,gBAAIllH,IAAI,IAAIywG,gBAAZ,EAA8B;AAC5B,uBAASuU,KAAT;AACD,aAFD,MAEO;AACL,oBAAMA,KAAN;AACD;AACF;AACF;;AACD55G,QAAAA,MAAM,CAAC+vG,QAAQ,EAAT,CAAN,GAAqB7lH,KAArB;AACD;;AACD,aAAO8V,MAAP;AACD,KAnegD,CAqejD;;;AACA63G,IAAAA,WAAW,CAAClwH,SAAZ,GAAwBqwH,UAAU,CAACE,UAAU,CAACvwH,SAAZ,CAAlC;AACAkwH,IAAAA,WAAW,CAAClwH,SAAZ,CAAsBuX,WAAtB,GAAoC24G,WAApC;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASkC,IAAT,CAAcn7G,OAAd,EAAuB;AACrB,UAAI9B,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGmW,OAAO,IAAI,IAAX,GAAkB,CAAlB,GAAsBA,OAAO,CAACnW,MAD3C;AAGA,WAAKsQ,KAAL;;AACA,aAAO,EAAE+D,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIwsC,KAAK,GAAGr2B,OAAO,CAAC9B,KAAD,CAAnB;AACA,aAAKiC,GAAL,CAASk2B,KAAK,CAAC,CAAD,CAAd,EAAmBA,KAAK,CAAC,CAAD,CAAxB;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+kF,SAAT,GAAqB;AACnB,WAAK5gH,QAAL,GAAgB29G,YAAY,GAAGA,YAAY,CAAC,IAAD,CAAf,GAAwB,EAApD;AACA,WAAK13G,IAAL,GAAY,CAAZ;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS46G,UAAT,CAAoBp7G,GAApB,EAAyB;AACvB,UAAImB,MAAM,GAAG,KAAKb,GAAL,CAASN,GAAT,KAAiB,OAAO,KAAKzF,QAAL,CAAcyF,GAAd,CAArC;AACA,WAAKQ,IAAL,IAAaW,MAAM,GAAG,CAAH,GAAO,CAA1B;AACA,aAAOA,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk6G,OAAT,CAAiBr7G,GAAjB,EAAsB;AACpB,UAAI9T,IAAI,GAAG,KAAKqO,QAAhB;;AACA,UAAI29G,YAAJ,EAAkB;AAChB,YAAI/2G,MAAM,GAAGjV,IAAI,CAAC8T,GAAD,CAAjB;AACA,eAAOmB,MAAM,KAAK+jG,cAAX,GAA4B/jF,SAA5B,GAAwChgB,MAA/C;AACD;;AACD,aAAOsM,cAAc,CAACvgB,IAAf,CAAoBhB,IAApB,EAA0B8T,GAA1B,IAAiC9T,IAAI,CAAC8T,GAAD,CAArC,GAA6CmhB,SAApD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm6F,OAAT,CAAiBt7G,GAAjB,EAAsB;AACpB,UAAI9T,IAAI,GAAG,KAAKqO,QAAhB;AACA,aAAO29G,YAAY,GAAIhsH,IAAI,CAAC8T,GAAD,CAAJ,KAAcmhB,SAAlB,GAA+B1T,cAAc,CAACvgB,IAAf,CAAoBhB,IAApB,EAA0B8T,GAA1B,CAAlD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu7G,OAAT,CAAiBv7G,GAAjB,EAAsB3U,KAAtB,EAA6B;AAC3B,UAAIa,IAAI,GAAG,KAAKqO,QAAhB;AACA,WAAKiG,IAAL,IAAa,KAAKF,GAAL,CAASN,GAAT,IAAgB,CAAhB,GAAoB,CAAjC;AACA9T,MAAAA,IAAI,CAAC8T,GAAD,CAAJ,GAAak4G,YAAY,IAAI7sH,KAAK,KAAK81B,SAA3B,GAAwC+jF,cAAxC,GAAyD75G,KAArE;AACA,aAAO,IAAP;AACD,KAxkBgD,CA0kBjD;;;AACA6vH,IAAAA,IAAI,CAACpyH,SAAL,CAAeoR,KAAf,GAAuBihH,SAAvB;AACAD,IAAAA,IAAI,CAACpyH,SAAL,CAAe,QAAf,IAA2BsyH,UAA3B;AACAF,IAAAA,IAAI,CAACpyH,SAAL,CAAeyX,GAAf,GAAqB86G,OAArB;AACAH,IAAAA,IAAI,CAACpyH,SAAL,CAAewX,GAAf,GAAqBg7G,OAArB;AACAJ,IAAAA,IAAI,CAACpyH,SAAL,CAAeoX,GAAf,GAAqBq7G,OAArB;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,SAAT,CAAmBz7G,OAAnB,EAA4B;AAC1B,UAAI9B,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGmW,OAAO,IAAI,IAAX,GAAkB,CAAlB,GAAsBA,OAAO,CAACnW,MAD3C;AAGA,WAAKsQ,KAAL;;AACA,aAAO,EAAE+D,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIwsC,KAAK,GAAGr2B,OAAO,CAAC9B,KAAD,CAAnB;AACA,aAAKiC,GAAL,CAASk2B,KAAK,CAAC,CAAD,CAAd,EAAmBA,KAAK,CAAC,CAAD,CAAxB;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqlF,cAAT,GAA0B;AACxB,WAAKlhH,QAAL,GAAgB,EAAhB;AACA,WAAKiG,IAAL,GAAY,CAAZ;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk7G,eAAT,CAAyB17G,GAAzB,EAA8B;AAC5B,UAAI9T,IAAI,GAAG,KAAKqO,QAAhB;AAAA,UACI0D,KAAK,GAAG09G,YAAY,CAACzvH,IAAD,EAAO8T,GAAP,CADxB;;AAGA,UAAI/B,KAAK,GAAG,CAAZ,EAAe;AACb,eAAO,KAAP;AACD;;AACD,UAAIq2C,SAAS,GAAGpoD,IAAI,CAACtC,MAAL,GAAc,CAA9B;;AACA,UAAIqU,KAAK,IAAIq2C,SAAb,EAAwB;AACtBpoD,QAAAA,IAAI,CAACS,GAAL;AACD,OAFD,MAEO;AACLy8C,QAAAA,MAAM,CAACl8C,IAAP,CAAYhB,IAAZ,EAAkB+R,KAAlB,EAAyB,CAAzB;AACD;;AACD,QAAE,KAAKuC,IAAP;AACA,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo7G,YAAT,CAAsB57G,GAAtB,EAA2B;AACzB,UAAI9T,IAAI,GAAG,KAAKqO,QAAhB;AAAA,UACI0D,KAAK,GAAG09G,YAAY,CAACzvH,IAAD,EAAO8T,GAAP,CADxB;AAGA,aAAO/B,KAAK,GAAG,CAAR,GAAYkjB,SAAZ,GAAwBj1B,IAAI,CAAC+R,KAAD,CAAJ,CAAY,CAAZ,CAA/B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS49G,YAAT,CAAsB77G,GAAtB,EAA2B;AACzB,aAAO27G,YAAY,CAAC,KAAKphH,QAAN,EAAgByF,GAAhB,CAAZ,GAAmC,CAAC,CAA3C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS87G,YAAT,CAAsB97G,GAAtB,EAA2B3U,KAA3B,EAAkC;AAChC,UAAIa,IAAI,GAAG,KAAKqO,QAAhB;AAAA,UACI0D,KAAK,GAAG09G,YAAY,CAACzvH,IAAD,EAAO8T,GAAP,CADxB;;AAGA,UAAI/B,KAAK,GAAG,CAAZ,EAAe;AACb,UAAE,KAAKuC,IAAP;AACAtU,QAAAA,IAAI,CAACY,IAAL,CAAU,CAACkT,GAAD,EAAM3U,KAAN,CAAV;AACD,OAHD,MAGO;AACLa,QAAAA,IAAI,CAAC+R,KAAD,CAAJ,CAAY,CAAZ,IAAiB5S,KAAjB;AACD;;AACD,aAAO,IAAP;AACD,KA7rBgD,CA+rBjD;;;AACAmwH,IAAAA,SAAS,CAAC1yH,SAAV,CAAoBoR,KAApB,GAA4BuhH,cAA5B;AACAD,IAAAA,SAAS,CAAC1yH,SAAV,CAAoB,QAApB,IAAgC4yH,eAAhC;AACAF,IAAAA,SAAS,CAAC1yH,SAAV,CAAoByX,GAApB,GAA0Bq7G,YAA1B;AACAJ,IAAAA,SAAS,CAAC1yH,SAAV,CAAoBwX,GAApB,GAA0Bu7G,YAA1B;AACAL,IAAAA,SAAS,CAAC1yH,SAAV,CAAoBoX,GAApB,GAA0B47G,YAA1B;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,QAAT,CAAkBh8G,OAAlB,EAA2B;AACzB,UAAI9B,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGmW,OAAO,IAAI,IAAX,GAAkB,CAAlB,GAAsBA,OAAO,CAACnW,MAD3C;AAGA,WAAKsQ,KAAL;;AACA,aAAO,EAAE+D,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIwsC,KAAK,GAAGr2B,OAAO,CAAC9B,KAAD,CAAnB;AACA,aAAKiC,GAAL,CAASk2B,KAAK,CAAC,CAAD,CAAd,EAAmBA,KAAK,CAAC,CAAD,CAAxB;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4lF,aAAT,GAAyB;AACvB,WAAKx7G,IAAL,GAAY,CAAZ;AACA,WAAKjG,QAAL,GAAgB;AACd,gBAAQ,IAAI2gH,IAAJ,EADM;AAEd,eAAO,KAAK96G,GAAG,IAAIo7G,SAAZ,GAFO;AAGd,kBAAU,IAAIN,IAAJ;AAHI,OAAhB;AAKD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASe,cAAT,CAAwBj8G,GAAxB,EAA6B;AAC3B,UAAImB,MAAM,GAAG+6G,UAAU,CAAC,IAAD,EAAOl8G,GAAP,CAAV,CAAsB,QAAtB,EAAgCA,GAAhC,CAAb;AACA,WAAKQ,IAAL,IAAaW,MAAM,GAAG,CAAH,GAAO,CAA1B;AACA,aAAOA,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg7G,WAAT,CAAqBn8G,GAArB,EAA0B;AACxB,aAAOk8G,UAAU,CAAC,IAAD,EAAOl8G,GAAP,CAAV,CAAsBO,GAAtB,CAA0BP,GAA1B,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo8G,WAAT,CAAqBp8G,GAArB,EAA0B;AACxB,aAAOk8G,UAAU,CAAC,IAAD,EAAOl8G,GAAP,CAAV,CAAsBM,GAAtB,CAA0BN,GAA1B,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASq8G,WAAT,CAAqBr8G,GAArB,EAA0B3U,KAA1B,EAAiC;AAC/B,UAAIa,IAAI,GAAGgwH,UAAU,CAAC,IAAD,EAAOl8G,GAAP,CAArB;AAAA,UACIQ,IAAI,GAAGtU,IAAI,CAACsU,IADhB;AAGAtU,MAAAA,IAAI,CAACgU,GAAL,CAASF,GAAT,EAAc3U,KAAd;AACA,WAAKmV,IAAL,IAAatU,IAAI,CAACsU,IAAL,IAAaA,IAAb,GAAoB,CAApB,GAAwB,CAArC;AACA,aAAO,IAAP;AACD,KApyBgD,CAsyBjD;;;AACAu7G,IAAAA,QAAQ,CAACjzH,SAAT,CAAmBoR,KAAnB,GAA2B8hH,aAA3B;AACAD,IAAAA,QAAQ,CAACjzH,SAAT,CAAmB,QAAnB,IAA+BmzH,cAA/B;AACAF,IAAAA,QAAQ,CAACjzH,SAAT,CAAmByX,GAAnB,GAAyB47G,WAAzB;AACAJ,IAAAA,QAAQ,CAACjzH,SAAT,CAAmBwX,GAAnB,GAAyB87G,WAAzB;AACAL,IAAAA,QAAQ,CAACjzH,SAAT,CAAmBoX,GAAnB,GAAyBm8G,WAAzB;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,QAAT,CAAkB5xH,MAAlB,EAA0B;AACxB,UAAIuT,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGc,MAAM,IAAI,IAAV,GAAiB,CAAjB,GAAqBA,MAAM,CAACd,MADzC;AAGA,WAAK2Q,QAAL,GAAgB,IAAIwhH,QAAJ,EAAhB;;AACA,aAAO,EAAE99G,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,aAAK+X,GAAL,CAASjX,MAAM,CAACuT,KAAD,CAAf;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs+G,WAAT,CAAqBlxH,KAArB,EAA4B;AAC1B,WAAKkP,QAAL,CAAc2F,GAAd,CAAkB7U,KAAlB,EAAyB65G,cAAzB;;AACA,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsX,WAAT,CAAqBnxH,KAArB,EAA4B;AAC1B,aAAO,KAAKkP,QAAL,CAAc+F,GAAd,CAAkBjV,KAAlB,CAAP;AACD,KA31BgD,CA61BjD;;;AACAixH,IAAAA,QAAQ,CAACxzH,SAAT,CAAmB6Y,GAAnB,GAAyB26G,QAAQ,CAACxzH,SAAT,CAAmBgE,IAAnB,GAA0ByvH,WAAnD;AACAD,IAAAA,QAAQ,CAACxzH,SAAT,CAAmBwX,GAAnB,GAAyBk8G,WAAzB;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,KAAT,CAAe18G,OAAf,EAAwB;AACtB,UAAI7T,IAAI,GAAG,KAAKqO,QAAL,GAAgB,IAAIihH,SAAJ,CAAcz7G,OAAd,CAA3B;AACA,WAAKS,IAAL,GAAYtU,IAAI,CAACsU,IAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk8G,UAAT,GAAsB;AACpB,WAAKniH,QAAL,GAAgB,IAAIihH,SAAJ,EAAhB;AACA,WAAKh7G,IAAL,GAAY,CAAZ;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm8G,WAAT,CAAqB38G,GAArB,EAA0B;AACxB,UAAI9T,IAAI,GAAG,KAAKqO,QAAhB;AAAA,UACI4G,MAAM,GAAGjV,IAAI,CAAC,QAAD,CAAJ,CAAe8T,GAAf,CADb;AAGA,WAAKQ,IAAL,GAAYtU,IAAI,CAACsU,IAAjB;AACA,aAAOW,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy7G,QAAT,CAAkB58G,GAAlB,EAAuB;AACrB,aAAO,KAAKzF,QAAL,CAAcgG,GAAd,CAAkBP,GAAlB,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS68G,QAAT,CAAkB78G,GAAlB,EAAuB;AACrB,aAAO,KAAKzF,QAAL,CAAc+F,GAAd,CAAkBN,GAAlB,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS88G,QAAT,CAAkB98G,GAAlB,EAAuB3U,KAAvB,EAA8B;AAC5B,UAAIa,IAAI,GAAG,KAAKqO,QAAhB;;AACA,UAAIrO,IAAI,YAAYsvH,SAApB,EAA+B;AAC7B,YAAI3tH,KAAK,GAAG3B,IAAI,CAACqO,QAAjB;;AACA,YAAI,CAAC6F,GAAD,IAASvS,KAAK,CAACjE,MAAN,GAAek7G,gBAAgB,GAAG,CAA/C,EAAmD;AACjDj3G,UAAAA,KAAK,CAACf,IAAN,CAAW,CAACkT,GAAD,EAAM3U,KAAN,CAAX;AACA,eAAKmV,IAAL,GAAY,EAAEtU,IAAI,CAACsU,IAAnB;AACA,iBAAO,IAAP;AACD;;AACDtU,QAAAA,IAAI,GAAG,KAAKqO,QAAL,GAAgB,IAAIwhH,QAAJ,CAAaluH,KAAb,CAAvB;AACD;;AACD3B,MAAAA,IAAI,CAACgU,GAAL,CAASF,GAAT,EAAc3U,KAAd;AACA,WAAKmV,IAAL,GAAYtU,IAAI,CAACsU,IAAjB;AACA,aAAO,IAAP;AACD,KA97BgD,CAg8BjD;;;AACAi8G,IAAAA,KAAK,CAAC3zH,SAAN,CAAgBoR,KAAhB,GAAwBwiH,UAAxB;AACAD,IAAAA,KAAK,CAAC3zH,SAAN,CAAgB,QAAhB,IAA4B6zH,WAA5B;AACAF,IAAAA,KAAK,CAAC3zH,SAAN,CAAgByX,GAAhB,GAAsBq8G,QAAtB;AACAH,IAAAA,KAAK,CAAC3zH,SAAN,CAAgBwX,GAAhB,GAAsBu8G,QAAtB;AACAJ,IAAAA,KAAK,CAAC3zH,SAAN,CAAgBoX,GAAhB,GAAsB48G,QAAtB;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,aAAT,CAAuB1xH,KAAvB,EAA8B2xH,SAA9B,EAAyC;AACvC,UAAIzC,KAAK,GAAGhuH,OAAO,CAAClB,KAAD,CAAnB;AAAA,UACI4xH,KAAK,GAAG,CAAC1C,KAAD,IAAU2C,WAAW,CAAC7xH,KAAD,CADjC;AAAA,UAEI8xH,MAAM,GAAG,CAAC5C,KAAD,IAAU,CAAC0C,KAAX,IAAoBp3B,QAAQ,CAACx6F,KAAD,CAFzC;AAAA,UAGI+xH,MAAM,GAAG,CAAC7C,KAAD,IAAU,CAAC0C,KAAX,IAAoB,CAACE,MAArB,IAA+B7M,YAAY,CAACjlH,KAAD,CAHxD;AAAA,UAIIgyH,WAAW,GAAG9C,KAAK,IAAI0C,KAAT,IAAkBE,MAAlB,IAA4BC,MAJ9C;AAAA,UAKIj8G,MAAM,GAAGk8G,WAAW,GAAGtK,SAAS,CAAC1nH,KAAK,CAACzB,MAAP,EAAe8/B,MAAf,CAAZ,GAAqC,EAL7D;AAAA,UAMI9/B,MAAM,GAAGuX,MAAM,CAACvX,MANpB;;AAQA,WAAK,IAAIoW,GAAT,IAAgB3U,KAAhB,EAAuB;AACrB,YAAI,CAAC2xH,SAAS,IAAIvvG,cAAc,CAACvgB,IAAf,CAAoB7B,KAApB,EAA2B2U,GAA3B,CAAd,KACA,EAAEq9G,WAAW,MACV;AACAr9G,QAAAA,GAAG,IAAI,QAAP,IACA;AACCm9G,QAAAA,MAAM,KAAKn9G,GAAG,IAAI,QAAP,IAAmBA,GAAG,IAAI,QAA/B,CAFP,IAGA;AACCo9G,QAAAA,MAAM,KAAKp9G,GAAG,IAAI,QAAP,IAAmBA,GAAG,IAAI,YAA1B,IAA0CA,GAAG,IAAI,YAAtD,CAJP,IAKA;AACAs9G,QAAAA,OAAO,CAACt9G,GAAD,EAAMpW,MAAN,CARG,CAAb,CADJ,EAUQ;AACNuX,UAAAA,MAAM,CAACrU,IAAP,CAAYkT,GAAZ;AACD;AACF;;AACD,aAAOmB,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo8G,WAAT,CAAqB30H,KAArB,EAA4B;AAC1B,UAAIgB,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;AACA,aAAOA,MAAM,GAAGhB,KAAK,CAAC40H,UAAU,CAAC,CAAD,EAAI5zH,MAAM,GAAG,CAAb,CAAX,CAAR,GAAsCu3B,SAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs8F,eAAT,CAAyB70H,KAAzB,EAAgCwC,CAAhC,EAAmC;AACjC,aAAOsyH,WAAW,CAACvD,SAAS,CAACvxH,KAAD,CAAV,EAAmB+0H,SAAS,CAACvyH,CAAD,EAAI,CAAJ,EAAOxC,KAAK,CAACgB,MAAb,CAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg0H,YAAT,CAAsBh1H,KAAtB,EAA6B;AAC3B,aAAO80H,WAAW,CAACvD,SAAS,CAACvxH,KAAD,CAAV,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASi1H,gBAAT,CAA0Bp9G,MAA1B,EAAkCT,GAAlC,EAAuC3U,KAAvC,EAA8C;AAC5C,UAAKA,KAAK,KAAK81B,SAAV,IAAuB,CAAC28F,EAAE,CAACr9G,MAAM,CAACT,GAAD,CAAP,EAAc3U,KAAd,CAA3B,IACCA,KAAK,KAAK81B,SAAV,IAAuB,EAAEnhB,GAAG,IAAIS,MAAT,CAD5B,EAC+C;AAC7Cs9G,QAAAA,eAAe,CAACt9G,MAAD,EAAST,GAAT,EAAc3U,KAAd,CAAf;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2yH,WAAT,CAAqBv9G,MAArB,EAA6BT,GAA7B,EAAkC3U,KAAlC,EAAyC;AACvC,UAAI4yH,QAAQ,GAAGx9G,MAAM,CAACT,GAAD,CAArB;;AACA,UAAI,EAAEyN,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,KAAoC89G,EAAE,CAACG,QAAD,EAAW5yH,KAAX,CAAxC,KACCA,KAAK,KAAK81B,SAAV,IAAuB,EAAEnhB,GAAG,IAAIS,MAAT,CAD5B,EAC+C;AAC7Cs9G,QAAAA,eAAe,CAACt9G,MAAD,EAAST,GAAT,EAAc3U,KAAd,CAAf;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASswH,YAAT,CAAsB/yH,KAAtB,EAA6BoX,GAA7B,EAAkC;AAChC,UAAIpW,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;;AACA,aAAOA,MAAM,EAAb,EAAiB;AACf,YAAIk0H,EAAE,CAACl1H,KAAK,CAACgB,MAAD,CAAL,CAAc,CAAd,CAAD,EAAmBoW,GAAnB,CAAN,EAA+B;AAC7B,iBAAOpW,MAAP;AACD;AACF;;AACD,aAAO,CAAC,CAAR;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs0H,cAAT,CAAwB7/B,UAAxB,EAAoCqyB,MAApC,EAA4CC,QAA5C,EAAsDC,WAAtD,EAAmE;AACjEuN,MAAAA,QAAQ,CAAC9/B,UAAD,EAAa,UAAShzF,KAAT,EAAgB2U,GAAhB,EAAqBq+E,UAArB,EAAiC;AACpDqyB,QAAAA,MAAM,CAACE,WAAD,EAAcvlH,KAAd,EAAqBslH,QAAQ,CAACtlH,KAAD,CAA7B,EAAsCgzF,UAAtC,CAAN;AACD,OAFO,CAAR;AAGA,aAAOuyB,WAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwN,UAAT,CAAoB39G,MAApB,EAA4BzD,MAA5B,EAAoC;AAClC,aAAOyD,MAAM,IAAI49G,UAAU,CAACrhH,MAAD,EAAStE,IAAI,CAACsE,MAAD,CAAb,EAAuByD,MAAvB,CAA3B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS69G,YAAT,CAAsB79G,MAAtB,EAA8BzD,MAA9B,EAAsC;AACpC,aAAOyD,MAAM,IAAI49G,UAAU,CAACrhH,MAAD,EAASuhH,MAAM,CAACvhH,MAAD,CAAf,EAAyByD,MAAzB,CAA3B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs9G,eAAT,CAAyBt9G,MAAzB,EAAiCT,GAAjC,EAAsC3U,KAAtC,EAA6C;AAC3C,UAAI2U,GAAG,IAAI,WAAP,IAAsB2/F,cAA1B,EAA0C;AACxCA,QAAAA,cAAc,CAACl/F,MAAD,EAAST,GAAT,EAAc;AAC1B,0BAAgB,IADU;AAE1B,wBAAc,IAFY;AAG1B,mBAAS3U,KAHiB;AAI1B,sBAAY;AAJc,SAAd,CAAd;AAMD,OAPD,MAOO;AACLoV,QAAAA,MAAM,CAACT,GAAD,CAAN,GAAc3U,KAAd;AACD;AACF;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmzH,MAAT,CAAgB/9G,MAAhB,EAAwBg+G,KAAxB,EAA+B;AAC7B,UAAIxgH,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAG60H,KAAK,CAAC70H,MADnB;AAAA,UAEIuX,MAAM,GAAGtY,KAAK,CAACe,MAAD,CAFlB;AAAA,UAGI80H,IAAI,GAAGj+G,MAAM,IAAI,IAHrB;;AAKA,aAAO,EAAExC,KAAF,GAAUrU,MAAjB,EAAyB;AACvBuX,QAAAA,MAAM,CAAClD,KAAD,CAAN,GAAgBygH,IAAI,GAAGv9F,SAAH,GAAe5gB,GAAG,CAACE,MAAD,EAASg+G,KAAK,CAACxgH,KAAD,CAAd,CAAtC;AACD;;AACD,aAAOkD,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASw8G,SAAT,CAAmBpvH,MAAnB,EAA2BujE,KAA3B,EAAkC6sD,KAAlC,EAAyC;AACvC,UAAIpwH,MAAM,KAAKA,MAAf,EAAuB;AACrB,YAAIowH,KAAK,KAAKx9F,SAAd,EAAyB;AACvB5yB,UAAAA,MAAM,GAAGA,MAAM,IAAIowH,KAAV,GAAkBpwH,MAAlB,GAA2BowH,KAApC;AACD;;AACD,YAAI7sD,KAAK,KAAK3wC,SAAd,EAAyB;AACvB5yB,UAAAA,MAAM,GAAGA,MAAM,IAAIujE,KAAV,GAAkBvjE,MAAlB,GAA2BujE,KAApC;AACD;AACF;;AACD,aAAOvjE,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqwH,SAAT,CAAmBvzH,KAAnB,EAA0BwzH,OAA1B,EAAmCC,UAAnC,EAA+C9+G,GAA/C,EAAoDS,MAApD,EAA4D69D,KAA5D,EAAmE;AACjE,UAAIn9D,MAAJ;AAAA,UACI49G,MAAM,GAAGF,OAAO,GAAGxZ,eADvB;AAAA,UAEI2Z,MAAM,GAAGH,OAAO,GAAGvZ,eAFvB;AAAA,UAGI2Z,MAAM,GAAGJ,OAAO,GAAGtZ,kBAHvB;;AAKA,UAAIuZ,UAAJ,EAAgB;AACd39G,QAAAA,MAAM,GAAGV,MAAM,GAAGq+G,UAAU,CAACzzH,KAAD,EAAQ2U,GAAR,EAAaS,MAAb,EAAqB69D,KAArB,CAAb,GAA2CwgD,UAAU,CAACzzH,KAAD,CAApE;AACD;;AACD,UAAI8V,MAAM,KAAKggB,SAAf,EAA0B;AACxB,eAAOhgB,MAAP;AACD;;AACD,UAAI,CAACi4G,QAAQ,CAAC/tH,KAAD,CAAb,EAAsB;AACpB,eAAOA,KAAP;AACD;;AACD,UAAIkvH,KAAK,GAAGhuH,OAAO,CAAClB,KAAD,CAAnB;;AACA,UAAIkvH,KAAJ,EAAW;AACTp5G,QAAAA,MAAM,GAAG+9G,cAAc,CAAC7zH,KAAD,CAAvB;;AACA,YAAI,CAAC0zH,MAAL,EAAa;AACX,iBAAO5E,SAAS,CAAC9uH,KAAD,EAAQ8V,MAAR,CAAhB;AACD;AACF,OALD,MAKO;AACL,YAAI82F,GAAG,GAAGknB,MAAM,CAAC9zH,KAAD,CAAhB;AAAA,YACI+zH,MAAM,GAAGnnB,GAAG,IAAIyP,OAAP,IAAkBzP,GAAG,IAAI0P,MADtC;;AAGA,YAAI9hB,QAAQ,CAACx6F,KAAD,CAAZ,EAAqB;AACnB,iBAAOg0H,WAAW,CAACh0H,KAAD,EAAQ0zH,MAAR,CAAlB;AACD;;AACD,YAAI9mB,GAAG,IAAI8P,SAAP,IAAoB9P,GAAG,IAAIkP,OAA3B,IAAuCiY,MAAM,IAAI,CAAC3+G,MAAtD,EAA+D;AAC7DU,UAAAA,MAAM,GAAI69G,MAAM,IAAII,MAAX,GAAqB,EAArB,GAA0BE,eAAe,CAACj0H,KAAD,CAAlD;;AACA,cAAI,CAAC0zH,MAAL,EAAa;AACX,mBAAOC,MAAM,GACTO,aAAa,CAACl0H,KAAD,EAAQizH,YAAY,CAACn9G,MAAD,EAAS9V,KAAT,CAApB,CADJ,GAETm0H,WAAW,CAACn0H,KAAD,EAAQ+yH,UAAU,CAACj9G,MAAD,EAAS9V,KAAT,CAAlB,CAFf;AAGD;AACF,SAPD,MAOO;AACL,cAAI,CAACkjH,aAAa,CAACtW,GAAD,CAAlB,EAAyB;AACvB,mBAAOx3F,MAAM,GAAGpV,KAAH,GAAW,EAAxB;AACD;;AACD8V,UAAAA,MAAM,GAAGs+G,cAAc,CAACp0H,KAAD,EAAQ4sG,GAAR,EAAa8mB,MAAb,CAAvB;AACD;AACF,OAzCgE,CA0CjE;;;AACAzgD,MAAAA,KAAK,KAAKA,KAAK,GAAG,IAAIm+C,KAAJ,EAAb,CAAL;AACA,UAAIiD,OAAO,GAAGphD,KAAK,CAAC/9D,GAAN,CAAUlV,KAAV,CAAd;;AACA,UAAIq0H,OAAJ,EAAa;AACX,eAAOA,OAAP;AACD;;AACDphD,MAAAA,KAAK,CAACp+D,GAAN,CAAU7U,KAAV,EAAiB8V,MAAjB;;AAEA,UAAIivG,KAAK,CAAC/kH,KAAD,CAAT,EAAkB;AAChBA,QAAAA,KAAK,CAACuS,OAAN,CAAc,UAAS+hH,QAAT,EAAmB;AAC/Bx+G,UAAAA,MAAM,CAACQ,GAAP,CAAWi9G,SAAS,CAACe,QAAD,EAAWd,OAAX,EAAoBC,UAApB,EAAgCa,QAAhC,EAA0Ct0H,KAA1C,EAAiDizE,KAAjD,CAApB;AACD,SAFD;AAGD,OAJD,MAIO,IAAI0xC,KAAK,CAAC3kH,KAAD,CAAT,EAAkB;AACvBA,QAAAA,KAAK,CAACuS,OAAN,CAAc,UAAS+hH,QAAT,EAAmB3/G,GAAnB,EAAwB;AACpCmB,UAAAA,MAAM,CAACjB,GAAP,CAAWF,GAAX,EAAgB4+G,SAAS,CAACe,QAAD,EAAWd,OAAX,EAAoBC,UAApB,EAAgC9+G,GAAhC,EAAqC3U,KAArC,EAA4CizE,KAA5C,CAAzB;AACD,SAFD;AAGD;;AAED,UAAIshD,QAAQ,GAAGX,MAAM,GAChBD,MAAM,GAAGa,YAAH,GAAkBC,UADR,GAEhBd,MAAM,GAAGT,MAAH,GAAY7lH,IAFvB;AAIA,UAAIu6G,KAAK,GAAGsH,KAAK,GAAGp5F,SAAH,GAAey+F,QAAQ,CAACv0H,KAAD,CAAxC;AACAwlH,MAAAA,SAAS,CAACoC,KAAK,IAAI5nH,KAAV,EAAiB,UAASs0H,QAAT,EAAmB3/G,GAAnB,EAAwB;AAChD,YAAIizG,KAAJ,EAAW;AACTjzG,UAAAA,GAAG,GAAG2/G,QAAN;AACAA,UAAAA,QAAQ,GAAGt0H,KAAK,CAAC2U,GAAD,CAAhB;AACD,SAJ+C,CAKhD;;;AACAg+G,QAAAA,WAAW,CAAC78G,MAAD,EAASnB,GAAT,EAAc4+G,SAAS,CAACe,QAAD,EAAWd,OAAX,EAAoBC,UAApB,EAAgC9+G,GAAhC,EAAqC3U,KAArC,EAA4CizE,KAA5C,CAAvB,CAAX;AACD,OAPQ,CAAT;AAQA,aAAOn9D,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4+G,YAAT,CAAsB/iH,MAAtB,EAA8B;AAC5B,UAAIi2G,KAAK,GAAGv6G,IAAI,CAACsE,MAAD,CAAhB;AACA,aAAO,UAASyD,MAAT,EAAiB;AACtB,eAAOu/G,cAAc,CAACv/G,MAAD,EAASzD,MAAT,EAAiBi2G,KAAjB,CAArB;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+M,cAAT,CAAwBv/G,MAAxB,EAAgCzD,MAAhC,EAAwCi2G,KAAxC,EAA+C;AAC7C,UAAIrpH,MAAM,GAAGqpH,KAAK,CAACrpH,MAAnB;;AACA,UAAI6W,MAAM,IAAI,IAAd,EAAoB;AAClB,eAAO,CAAC7W,MAAR;AACD;;AACD6W,MAAAA,MAAM,GAAG0L,MAAM,CAAC1L,MAAD,CAAf;;AACA,aAAO7W,MAAM,EAAb,EAAiB;AACf,YAAIoW,GAAG,GAAGizG,KAAK,CAACrpH,MAAD,CAAf;AAAA,YACIonH,SAAS,GAAGh0G,MAAM,CAACgD,GAAD,CADtB;AAAA,YAEI3U,KAAK,GAAGoV,MAAM,CAACT,GAAD,CAFlB;;AAIA,YAAK3U,KAAK,KAAK81B,SAAV,IAAuB,EAAEnhB,GAAG,IAAIS,MAAT,CAAxB,IAA6C,CAACuwG,SAAS,CAAC3lH,KAAD,CAA3D,EAAoE;AAClE,iBAAO,KAAP;AACD;AACF;;AACD,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS40H,SAAT,CAAmB1P,IAAnB,EAAyB2P,IAAzB,EAA+BjmH,IAA/B,EAAqC;AACnC,UAAI,OAAOs2G,IAAP,IAAe,UAAnB,EAA+B;AAC7B,cAAM,IAAIp/B,SAAJ,CAAc6zB,eAAd,CAAN;AACD;;AACD,aAAOvoG,UAAU,CAAC,YAAW;AAAE8zG,QAAAA,IAAI,CAACn+G,KAAL,CAAW+uB,SAAX,EAAsBlnB,IAAtB;AAA8B,OAA5C,EAA8CimH,IAA9C,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,cAAT,CAAwBv3H,KAAxB,EAA+B8B,MAA/B,EAAuCimH,QAAvC,EAAiDW,UAAjD,EAA6D;AAC3D,UAAIrzG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIkhG,QAAQ,GAAGgS,aADf;AAAA,UAEIiP,QAAQ,GAAG,IAFf;AAAA,UAGIx2H,MAAM,GAAGhB,KAAK,CAACgB,MAHnB;AAAA,UAIIuX,MAAM,GAAG,EAJb;AAAA,UAKIk/G,YAAY,GAAG31H,MAAM,CAACd,MAL1B;;AAOA,UAAI,CAACA,MAAL,EAAa;AACX,eAAOuX,MAAP;AACD;;AACD,UAAIwvG,QAAJ,EAAc;AACZjmH,QAAAA,MAAM,GAAG6mH,QAAQ,CAAC7mH,MAAD,EAAS0oH,SAAS,CAACzC,QAAD,CAAlB,CAAjB;AACD;;AACD,UAAIW,UAAJ,EAAgB;AACdnS,QAAAA,QAAQ,GAAGkS,iBAAX;AACA+O,QAAAA,QAAQ,GAAG,KAAX;AACD,OAHD,MAIK,IAAI11H,MAAM,CAACd,MAAP,IAAiBk7G,gBAArB,EAAuC;AAC1C3F,QAAAA,QAAQ,GAAGmU,QAAX;AACA8M,QAAAA,QAAQ,GAAG,KAAX;AACA11H,QAAAA,MAAM,GAAG,IAAI4xH,QAAJ,CAAa5xH,MAAb,CAAT;AACD;;AACDqwH,MAAAA,KAAK,EACL,OAAO,EAAE98G,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;AAAA,YACIg9G,QAAQ,GAAGtK,QAAQ,IAAI,IAAZ,GAAmBtlH,KAAnB,GAA2BslH,QAAQ,CAACtlH,KAAD,CADlD;AAGAA,QAAAA,KAAK,GAAIimH,UAAU,IAAIjmH,KAAK,KAAK,CAAzB,GAA8BA,KAA9B,GAAsC,CAA9C;;AACA,YAAI+0H,QAAQ,IAAInF,QAAQ,KAAKA,QAA7B,EAAuC;AACrC,cAAIqF,WAAW,GAAGD,YAAlB;;AACA,iBAAOC,WAAW,EAAlB,EAAsB;AACpB,gBAAI51H,MAAM,CAAC41H,WAAD,CAAN,KAAwBrF,QAA5B,EAAsC;AACpC,uBAASF,KAAT;AACD;AACF;;AACD55G,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD,SARD,MASK,IAAI,CAAC8zG,QAAQ,CAACz0G,MAAD,EAASuwH,QAAT,EAAmB3J,UAAnB,CAAb,EAA6C;AAChDnwG,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIg9G,QAAQ,GAAGoC,cAAc,CAACC,UAAD,CAA7B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIC,aAAa,GAAGF,cAAc,CAACG,eAAD,EAAkB,IAAlB,CAAlC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASC,SAAT,CAAmBtiC,UAAnB,EAA+B2yB,SAA/B,EAA0C;AACxC,UAAI7vG,MAAM,GAAG,IAAb;AACAg9G,MAAAA,QAAQ,CAAC9/B,UAAD,EAAa,UAAShzF,KAAT,EAAgB4S,KAAhB,EAAuBogF,UAAvB,EAAmC;AACtDl9E,QAAAA,MAAM,GAAG,CAAC,CAAC6vG,SAAS,CAAC3lH,KAAD,EAAQ4S,KAAR,EAAeogF,UAAf,CAApB;AACA,eAAOl9E,MAAP;AACD,OAHO,CAAR;AAIA,aAAOA,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy/G,YAAT,CAAsBh4H,KAAtB,EAA6B+nH,QAA7B,EAAuCW,UAAvC,EAAmD;AACjD,UAAIrzG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,CAACgB,MADnB;;AAGA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;AAAA,YACIq4B,OAAO,GAAGq6E,QAAQ,CAACtlH,KAAD,CADtB;;AAGA,YAAIirC,OAAO,IAAI,IAAX,KAAoB2kF,QAAQ,KAAK95F,SAAb,GACfmV,OAAO,KAAKA,OAAZ,IAAuB,CAACuqF,QAAQ,CAACvqF,OAAD,CADjB,GAEhBg7E,UAAU,CAACh7E,OAAD,EAAU2kF,QAAV,CAFd,CAAJ,EAGO;AACL,cAAIA,QAAQ,GAAG3kF,OAAf;AAAA,cACIn1B,MAAM,GAAG9V,KADb;AAED;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2/G,QAAT,CAAkBl4H,KAAlB,EAAyByC,KAAzB,EAAgC8D,KAAhC,EAAuCwK,GAAvC,EAA4C;AAC1C,UAAI/P,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;AAEAuF,MAAAA,KAAK,GAAG4xH,SAAS,CAAC5xH,KAAD,CAAjB;;AACA,UAAIA,KAAK,GAAG,CAAZ,EAAe;AACbA,QAAAA,KAAK,GAAG,CAACA,KAAD,GAASvF,MAAT,GAAkB,CAAlB,GAAuBA,MAAM,GAAGuF,KAAxC;AACD;;AACDwK,MAAAA,GAAG,GAAIA,GAAG,KAAKwnB,SAAR,IAAqBxnB,GAAG,GAAG/P,MAA5B,GAAsCA,MAAtC,GAA+Cm3H,SAAS,CAACpnH,GAAD,CAA9D;;AACA,UAAIA,GAAG,GAAG,CAAV,EAAa;AACXA,QAAAA,GAAG,IAAI/P,MAAP;AACD;;AACD+P,MAAAA,GAAG,GAAGxK,KAAK,GAAGwK,GAAR,GAAc,CAAd,GAAkBqnH,QAAQ,CAACrnH,GAAD,CAAhC;;AACA,aAAOxK,KAAK,GAAGwK,GAAf,EAAoB;AAClB/Q,QAAAA,KAAK,CAACuG,KAAK,EAAN,CAAL,GAAiB9D,KAAjB;AACD;;AACD,aAAOzC,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASq4H,UAAT,CAAoB5iC,UAApB,EAAgC2yB,SAAhC,EAA2C;AACzC,UAAI7vG,MAAM,GAAG,EAAb;AACAg9G,MAAAA,QAAQ,CAAC9/B,UAAD,EAAa,UAAShzF,KAAT,EAAgB4S,KAAhB,EAAuBogF,UAAvB,EAAmC;AACtD,YAAI2yB,SAAS,CAAC3lH,KAAD,EAAQ4S,KAAR,EAAeogF,UAAf,CAAb,EAAyC;AACvCl9E,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD;AACF,OAJO,CAAR;AAKA,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+/G,WAAT,CAAqBt4H,KAArB,EAA4BkY,KAA5B,EAAmCkwG,SAAnC,EAA8CmQ,QAA9C,EAAwDhgH,MAAxD,EAAgE;AAC9D,UAAIlD,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,CAACgB,MADnB;AAGAonH,MAAAA,SAAS,KAAKA,SAAS,GAAGoQ,aAAjB,CAAT;AACAjgH,MAAAA,MAAM,KAAKA,MAAM,GAAG,EAAd,CAAN;;AAEA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;;AACA,YAAI6C,KAAK,GAAG,CAAR,IAAakwG,SAAS,CAAC3lH,KAAD,CAA1B,EAAmC;AACjC,cAAIyV,KAAK,GAAG,CAAZ,EAAe;AACb;AACAogH,YAAAA,WAAW,CAAC71H,KAAD,EAAQyV,KAAK,GAAG,CAAhB,EAAmBkwG,SAAnB,EAA8BmQ,QAA9B,EAAwChgH,MAAxC,CAAX;AACD,WAHD,MAGO;AACLqwG,YAAAA,SAAS,CAACrwG,MAAD,EAAS9V,KAAT,CAAT;AACD;AACF,SAPD,MAOO,IAAI,CAAC81H,QAAL,EAAe;AACpBhgH,UAAAA,MAAM,CAACA,MAAM,CAACvX,MAAR,CAAN,GAAwByB,KAAxB;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIkgH,OAAO,GAAGC,aAAa,EAA3B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIC,YAAY,GAAGD,aAAa,CAAC,IAAD,CAAhC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASd,UAAT,CAAoB//G,MAApB,EAA4BkwG,QAA5B,EAAsC;AACpC,aAAOlwG,MAAM,IAAI4gH,OAAO,CAAC5gH,MAAD,EAASkwG,QAAT,EAAmBj4G,IAAnB,CAAxB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgoH,eAAT,CAAyBjgH,MAAzB,EAAiCkwG,QAAjC,EAA2C;AACzC,aAAOlwG,MAAM,IAAI8gH,YAAY,CAAC9gH,MAAD,EAASkwG,QAAT,EAAmBj4G,IAAnB,CAA7B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8oH,aAAT,CAAuB/gH,MAAvB,EAA+BwyG,KAA/B,EAAsC;AACpC,aAAOhC,WAAW,CAACgC,KAAD,EAAQ,UAASjzG,GAAT,EAAc;AACtC,eAAOyhH,UAAU,CAAChhH,MAAM,CAACT,GAAD,CAAP,CAAjB;AACD,OAFiB,CAAlB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0hH,OAAT,CAAiBjhH,MAAjB,EAAyB7N,IAAzB,EAA+B;AAC7BA,MAAAA,IAAI,GAAG+uH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAf;AAEA,UAAIxC,KAAK,GAAG,CAAZ;AAAA,UACIrU,MAAM,GAAGgJ,IAAI,CAAChJ,MADlB;;AAGA,aAAO6W,MAAM,IAAI,IAAV,IAAkBxC,KAAK,GAAGrU,MAAjC,EAAyC;AACvC6W,QAAAA,MAAM,GAAGA,MAAM,CAACmhH,KAAK,CAAChvH,IAAI,CAACqL,KAAK,EAAN,CAAL,CAAN,CAAf;AACD;;AACD,aAAQA,KAAK,IAAIA,KAAK,IAAIrU,MAAnB,GAA6B6W,MAA7B,GAAsC0gB,SAA7C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0gG,cAAT,CAAwBphH,MAAxB,EAAgCm/G,QAAhC,EAA0CkC,WAA1C,EAAuD;AACrD,UAAI3gH,MAAM,GAAGy+G,QAAQ,CAACn/G,MAAD,CAArB;AACA,aAAOlU,OAAO,CAACkU,MAAD,CAAP,GAAkBU,MAAlB,GAA2BqwG,SAAS,CAACrwG,MAAD,EAAS2gH,WAAW,CAACrhH,MAAD,CAApB,CAA3C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASshH,UAAT,CAAoB12H,KAApB,EAA2B;AACzB,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAOA,KAAK,KAAK81B,SAAV,GAAsBmnF,YAAtB,GAAqCR,OAA5C;AACD;;AACD,aAAQ+O,cAAc,IAAIA,cAAc,IAAI1qG,MAAM,CAAC9gB,KAAD,CAA3C,GACH22H,SAAS,CAAC32H,KAAD,CADN,GAEH42H,cAAc,CAAC52H,KAAD,CAFlB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS62H,MAAT,CAAgB72H,KAAhB,EAAuB8qC,KAAvB,EAA8B;AAC5B,aAAO9qC,KAAK,GAAG8qC,KAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgsF,OAAT,CAAiB1hH,MAAjB,EAAyBT,GAAzB,EAA8B;AAC5B,aAAOS,MAAM,IAAI,IAAV,IAAkBgN,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,CAAzB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASoiH,SAAT,CAAmB3hH,MAAnB,EAA2BT,GAA3B,EAAgC;AAC9B,aAAOS,MAAM,IAAI,IAAV,IAAkBT,GAAG,IAAImM,MAAM,CAAC1L,MAAD,CAAtC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4hH,WAAT,CAAqB9zH,MAArB,EAA6BY,KAA7B,EAAoCwK,GAApC,EAAyC;AACvC,aAAOpL,MAAM,IAAIqpH,SAAS,CAACzoH,KAAD,EAAQwK,GAAR,CAAnB,IAAmCpL,MAAM,GAAGopH,SAAS,CAACxoH,KAAD,EAAQwK,GAAR,CAA5D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2oH,gBAAT,CAA0B3zH,MAA1B,EAAkCgiH,QAAlC,EAA4CW,UAA5C,EAAwD;AACtD,UAAInS,QAAQ,GAAGmS,UAAU,GAAGD,iBAAH,GAAuBF,aAAhD;AAAA,UACIvnH,MAAM,GAAG+E,MAAM,CAAC,CAAD,CAAN,CAAU/E,MADvB;AAAA,UAEI24H,SAAS,GAAG5zH,MAAM,CAAC/E,MAFvB;AAAA,UAGI44H,QAAQ,GAAGD,SAHf;AAAA,UAIIE,MAAM,GAAG55H,KAAK,CAAC05H,SAAD,CAJlB;AAAA,UAKIG,SAAS,GAAG19F,QALhB;AAAA,UAMI7jB,MAAM,GAAG,EANb;;AAQA,aAAOqhH,QAAQ,EAAf,EAAmB;AACjB,YAAI55H,KAAK,GAAG+F,MAAM,CAAC6zH,QAAD,CAAlB;;AACA,YAAIA,QAAQ,IAAI7R,QAAhB,EAA0B;AACxB/nH,UAAAA,KAAK,GAAG2oH,QAAQ,CAAC3oH,KAAD,EAAQwqH,SAAS,CAACzC,QAAD,CAAjB,CAAhB;AACD;;AACD+R,QAAAA,SAAS,GAAG9K,SAAS,CAAChvH,KAAK,CAACgB,MAAP,EAAe84H,SAAf,CAArB;AACAD,QAAAA,MAAM,CAACD,QAAD,CAAN,GAAmB,CAAClR,UAAD,KAAgBX,QAAQ,IAAK/mH,MAAM,IAAI,GAAV,IAAiBhB,KAAK,CAACgB,MAAN,IAAgB,GAA9D,IACf,IAAI0yH,QAAJ,CAAakG,QAAQ,IAAI55H,KAAzB,CADe,GAEfu4B,SAFJ;AAGD;;AACDv4B,MAAAA,KAAK,GAAG+F,MAAM,CAAC,CAAD,CAAd;AAEA,UAAIsP,KAAK,GAAG,CAAC,CAAb;AAAA,UACI0kH,IAAI,GAAGF,MAAM,CAAC,CAAD,CADjB;;AAGA1H,MAAAA,KAAK,EACL,OAAO,EAAE98G,KAAF,GAAUrU,MAAV,IAAoBuX,MAAM,CAACvX,MAAP,GAAgB84H,SAA3C,EAAsD;AACpD,YAAIr3H,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;AAAA,YACIg9G,QAAQ,GAAGtK,QAAQ,GAAGA,QAAQ,CAACtlH,KAAD,CAAX,GAAqBA,KAD5C;AAGAA,QAAAA,KAAK,GAAIimH,UAAU,IAAIjmH,KAAK,KAAK,CAAzB,GAA8BA,KAA9B,GAAsC,CAA9C;;AACA,YAAI,EAAEs3H,IAAI,GACFrP,QAAQ,CAACqP,IAAD,EAAO1H,QAAP,CADN,GAEF9b,QAAQ,CAACh+F,MAAD,EAAS85G,QAAT,EAAmB3J,UAAnB,CAFZ,CAAJ,EAGO;AACLkR,UAAAA,QAAQ,GAAGD,SAAX;;AACA,iBAAO,EAAEC,QAAT,EAAmB;AACjB,gBAAIlvF,KAAK,GAAGmvF,MAAM,CAACD,QAAD,CAAlB;;AACA,gBAAI,EAAElvF,KAAK,GACHggF,QAAQ,CAAChgF,KAAD,EAAQ2nF,QAAR,CADL,GAEH9b,QAAQ,CAACxwG,MAAM,CAAC6zH,QAAD,CAAP,EAAmBvH,QAAnB,EAA6B3J,UAA7B,CAFZ,CAAJ,EAGM;AACJ,uBAASyJ,KAAT;AACD;AACF;;AACD,cAAI4H,IAAJ,EAAU;AACRA,YAAAA,IAAI,CAAC71H,IAAL,CAAUmuH,QAAV;AACD;;AACD95G,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyhH,YAAT,CAAsBniH,MAAtB,EAA8BiwG,MAA9B,EAAsCC,QAAtC,EAAgDC,WAAhD,EAA6D;AAC3D4P,MAAAA,UAAU,CAAC//G,MAAD,EAAS,UAASpV,KAAT,EAAgB2U,GAAhB,EAAqBS,MAArB,EAA6B;AAC9CiwG,QAAAA,MAAM,CAACE,WAAD,EAAcD,QAAQ,CAACtlH,KAAD,CAAtB,EAA+B2U,GAA/B,EAAoCS,MAApC,CAAN;AACD,OAFS,CAAV;AAGA,aAAOmwG,WAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASiS,UAAT,CAAoBpiH,MAApB,EAA4B7N,IAA5B,EAAkCqH,IAAlC,EAAwC;AACtCrH,MAAAA,IAAI,GAAG+uH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAf;AACAA,MAAAA,MAAM,GAAG8O,MAAM,CAAC9O,MAAD,EAAS7N,IAAT,CAAf;AACA,UAAI29G,IAAI,GAAG9vG,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0BA,MAAM,CAACmhH,KAAK,CAACkB,IAAI,CAAClwH,IAAD,CAAL,CAAN,CAA3C;AACA,aAAO29G,IAAI,IAAI,IAAR,GAAepvF,SAAf,GAA2B/uB,KAAK,CAACm+G,IAAD,EAAO9vG,MAAP,EAAexG,IAAf,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8oH,eAAT,CAAyB13H,KAAzB,EAAgC;AAC9B,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqB87G,OAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6b,iBAAT,CAA2B33H,KAA3B,EAAkC;AAChC,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqBo9G,cAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwa,UAAT,CAAoB53H,KAApB,EAA2B;AACzB,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqBk8G,OAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2b,WAAT,CAAqB73H,KAArB,EAA4B8qC,KAA5B,EAAmC0oF,OAAnC,EAA4CC,UAA5C,EAAwDxgD,KAAxD,EAA+D;AAC7D,UAAIjzE,KAAK,KAAK8qC,KAAd,EAAqB;AACnB,eAAO,IAAP;AACD;;AACD,UAAI9qC,KAAK,IAAI,IAAT,IAAiB8qC,KAAK,IAAI,IAA1B,IAAmC,CAAC4iF,YAAY,CAAC1tH,KAAD,CAAb,IAAwB,CAAC0tH,YAAY,CAAC5iF,KAAD,CAA5E,EAAsF;AACpF,eAAO9qC,KAAK,KAAKA,KAAV,IAAmB8qC,KAAK,KAAKA,KAApC;AACD;;AACD,aAAOgtF,eAAe,CAAC93H,KAAD,EAAQ8qC,KAAR,EAAe0oF,OAAf,EAAwBC,UAAxB,EAAoCoE,WAApC,EAAiD5kD,KAAjD,CAAtB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6kD,eAAT,CAAyB1iH,MAAzB,EAAiC01B,KAAjC,EAAwC0oF,OAAxC,EAAiDC,UAAjD,EAA6DsE,SAA7D,EAAwE9kD,KAAxE,EAA+E;AAC7E,UAAI+kD,QAAQ,GAAG92H,OAAO,CAACkU,MAAD,CAAtB;AAAA,UACI6iH,QAAQ,GAAG/2H,OAAO,CAAC4pC,KAAD,CADtB;AAAA,UAEIotF,MAAM,GAAGF,QAAQ,GAAGjc,QAAH,GAAc+X,MAAM,CAAC1+G,MAAD,CAFzC;AAAA,UAGI+iH,MAAM,GAAGF,QAAQ,GAAGlc,QAAH,GAAc+X,MAAM,CAAChpF,KAAD,CAHzC;AAKAotF,MAAAA,MAAM,GAAGA,MAAM,IAAIpc,OAAV,GAAoBY,SAApB,GAAgCwb,MAAzC;AACAC,MAAAA,MAAM,GAAGA,MAAM,IAAIrc,OAAV,GAAoBY,SAApB,GAAgCyb,MAAzC;AAEA,UAAIC,QAAQ,GAAGF,MAAM,IAAIxb,SAAzB;AAAA,UACI2b,QAAQ,GAAGF,MAAM,IAAIzb,SADzB;AAAA,UAEI4b,SAAS,GAAGJ,MAAM,IAAIC,MAF1B;;AAIA,UAAIG,SAAS,IAAI99B,QAAQ,CAACplF,MAAD,CAAzB,EAAmC;AACjC,YAAI,CAAColF,QAAQ,CAAC1vD,KAAD,CAAb,EAAsB;AACpB,iBAAO,KAAP;AACD;;AACDktF,QAAAA,QAAQ,GAAG,IAAX;AACAI,QAAAA,QAAQ,GAAG,KAAX;AACD;;AACD,UAAIE,SAAS,IAAI,CAACF,QAAlB,EAA4B;AAC1BnlD,QAAAA,KAAK,KAAKA,KAAK,GAAG,IAAIm+C,KAAJ,EAAb,CAAL;AACA,eAAQ4G,QAAQ,IAAI/S,YAAY,CAAC7vG,MAAD,CAAzB,GACHmjH,WAAW,CAACnjH,MAAD,EAAS01B,KAAT,EAAgB0oF,OAAhB,EAAyBC,UAAzB,EAAqCsE,SAArC,EAAgD9kD,KAAhD,CADR,GAEHulD,UAAU,CAACpjH,MAAD,EAAS01B,KAAT,EAAgBotF,MAAhB,EAAwB1E,OAAxB,EAAiCC,UAAjC,EAA6CsE,SAA7C,EAAwD9kD,KAAxD,CAFd;AAGD;;AACD,UAAI,EAAEugD,OAAO,GAAGrZ,oBAAZ,CAAJ,EAAuC;AACrC,YAAIse,YAAY,GAAGL,QAAQ,IAAIh2G,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4B,aAA5B,CAA/B;AAAA,YACIsjH,YAAY,GAAGL,QAAQ,IAAIj2G,cAAc,CAACvgB,IAAf,CAAoBipC,KAApB,EAA2B,aAA3B,CAD/B;;AAGA,YAAI2tF,YAAY,IAAIC,YAApB,EAAkC;AAChC,cAAIC,YAAY,GAAGF,YAAY,GAAGrjH,MAAM,CAACpV,KAAP,EAAH,GAAoBoV,MAAnD;AAAA,cACIwjH,YAAY,GAAGF,YAAY,GAAG5tF,KAAK,CAAC9qC,KAAN,EAAH,GAAmB8qC,KADlD;AAGAmoC,UAAAA,KAAK,KAAKA,KAAK,GAAG,IAAIm+C,KAAJ,EAAb,CAAL;AACA,iBAAO2G,SAAS,CAACY,YAAD,EAAeC,YAAf,EAA6BpF,OAA7B,EAAsCC,UAAtC,EAAkDxgD,KAAlD,CAAhB;AACD;AACF;;AACD,UAAI,CAACqlD,SAAL,EAAgB;AACd,eAAO,KAAP;AACD;;AACDrlD,MAAAA,KAAK,KAAKA,KAAK,GAAG,IAAIm+C,KAAJ,EAAb,CAAL;AACA,aAAOyH,YAAY,CAACzjH,MAAD,EAAS01B,KAAT,EAAgB0oF,OAAhB,EAAyBC,UAAzB,EAAqCsE,SAArC,EAAgD9kD,KAAhD,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6lD,SAAT,CAAmB94H,KAAnB,EAA0B;AACxB,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB8zH,MAAM,CAAC9zH,KAAD,CAAN,IAAiBu8G,MAA/C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwc,WAAT,CAAqB3jH,MAArB,EAA6BzD,MAA7B,EAAqCqnH,SAArC,EAAgDvF,UAAhD,EAA4D;AAC1D,UAAI7gH,KAAK,GAAGomH,SAAS,CAACz6H,MAAtB;AAAA,UACIA,MAAM,GAAGqU,KADb;AAAA,UAEIqmH,YAAY,GAAG,CAACxF,UAFpB;;AAIA,UAAIr+G,MAAM,IAAI,IAAd,EAAoB;AAClB,eAAO,CAAC7W,MAAR;AACD;;AACD6W,MAAAA,MAAM,GAAG0L,MAAM,CAAC1L,MAAD,CAAf;;AACA,aAAOxC,KAAK,EAAZ,EAAgB;AACd,YAAI/R,IAAI,GAAGm4H,SAAS,CAACpmH,KAAD,CAApB;;AACA,YAAKqmH,YAAY,IAAIp4H,IAAI,CAAC,CAAD,CAArB,GACIA,IAAI,CAAC,CAAD,CAAJ,KAAYuU,MAAM,CAACvU,IAAI,CAAC,CAAD,CAAL,CADtB,GAEI,EAAEA,IAAI,CAAC,CAAD,CAAJ,IAAWuU,MAAb,CAFR,EAGM;AACJ,iBAAO,KAAP;AACD;AACF;;AACD,aAAO,EAAExC,KAAF,GAAUrU,MAAjB,EAAyB;AACvBsC,QAAAA,IAAI,GAAGm4H,SAAS,CAACpmH,KAAD,CAAhB;AACA,YAAI+B,GAAG,GAAG9T,IAAI,CAAC,CAAD,CAAd;AAAA,YACI+xH,QAAQ,GAAGx9G,MAAM,CAACT,GAAD,CADrB;AAAA,YAEIukH,QAAQ,GAAGr4H,IAAI,CAAC,CAAD,CAFnB;;AAIA,YAAIo4H,YAAY,IAAIp4H,IAAI,CAAC,CAAD,CAAxB,EAA6B;AAC3B,cAAI+xH,QAAQ,KAAK98F,SAAb,IAA0B,EAAEnhB,GAAG,IAAIS,MAAT,CAA9B,EAAgD;AAC9C,mBAAO,KAAP;AACD;AACF,SAJD,MAIO;AACL,cAAI69D,KAAK,GAAG,IAAIm+C,KAAJ,EAAZ;;AACA,cAAIqC,UAAJ,EAAgB;AACd,gBAAI39G,MAAM,GAAG29G,UAAU,CAACb,QAAD,EAAWsG,QAAX,EAAqBvkH,GAArB,EAA0BS,MAA1B,EAAkCzD,MAAlC,EAA0CshE,KAA1C,CAAvB;AACD;;AACD,cAAI,EAAEn9D,MAAM,KAAKggB,SAAX,GACE+hG,WAAW,CAACqB,QAAD,EAAWtG,QAAX,EAAqBzY,oBAAoB,GAAGC,sBAA5C,EAAoEqZ,UAApE,EAAgFxgD,KAAhF,CADb,GAEEn9D,MAFJ,CAAJ,EAGO;AACL,mBAAO,KAAP;AACD;AACF;AACF;;AACD,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqjH,YAAT,CAAsBn5H,KAAtB,EAA6B;AAC3B,UAAI,CAAC+tH,QAAQ,CAAC/tH,KAAD,CAAT,IAAoBo5H,QAAQ,CAACp5H,KAAD,CAAhC,EAAyC;AACvC,eAAO,KAAP;AACD;;AACD,UAAIq5H,OAAO,GAAGjD,UAAU,CAACp2H,KAAD,CAAV,GAAoB8qH,UAApB,GAAiCpL,YAA/C;AACA,aAAO2Z,OAAO,CAACpwG,IAAR,CAAagkG,QAAQ,CAACjtH,KAAD,CAArB,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs5H,YAAT,CAAsBt5H,KAAtB,EAA6B;AAC3B,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqB68G,SAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0c,SAAT,CAAmBv5H,KAAnB,EAA0B;AACxB,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB8zH,MAAM,CAAC9zH,KAAD,CAAN,IAAiB88G,MAA/C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0c,gBAAT,CAA0Bx5H,KAA1B,EAAiC;AAC/B,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IACLy5H,QAAQ,CAACz5H,KAAK,CAACzB,MAAP,CADH,IACqB,CAAC,CAAC0kH,cAAc,CAACyT,UAAU,CAAC12H,KAAD,CAAX,CAD5C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS05H,YAAT,CAAsB15H,KAAtB,EAA6B;AAC3B;AACA;AACA,UAAI,OAAOA,KAAP,IAAgB,UAApB,EAAgC;AAC9B,eAAOA,KAAP;AACD;;AACD,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,eAAOM,QAAP;AACD;;AACD,UAAI,OAAON,KAAP,IAAgB,QAApB,EAA8B;AAC5B,eAAOkB,OAAO,CAAClB,KAAD,CAAP,GACH25H,mBAAmB,CAAC35H,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAAC,CAAD,CAAhB,CADhB,GAEH45H,WAAW,CAAC55H,KAAD,CAFf;AAGD;;AACD,aAAO0N,QAAQ,CAAC1N,KAAD,CAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS65H,QAAT,CAAkBzkH,MAAlB,EAA0B;AACxB,UAAI,CAAC0kH,WAAW,CAAC1kH,MAAD,CAAhB,EAA0B;AACxB,eAAOi3G,UAAU,CAACj3G,MAAD,CAAjB;AACD;;AACD,UAAIU,MAAM,GAAG,EAAb;;AACA,WAAK,IAAInB,GAAT,IAAgBmM,MAAM,CAAC1L,MAAD,CAAtB,EAAgC;AAC9B,YAAIgN,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,KAAoCA,GAAG,IAAI,aAA/C,EAA8D;AAC5DmB,UAAAA,MAAM,CAACrU,IAAP,CAAYkT,GAAZ;AACD;AACF;;AACD,aAAOmB,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASikH,UAAT,CAAoB3kH,MAApB,EAA4B;AAC1B,UAAI,CAAC24G,QAAQ,CAAC34G,MAAD,CAAb,EAAuB;AACrB,eAAO4kH,YAAY,CAAC5kH,MAAD,CAAnB;AACD;;AACD,UAAI6kH,OAAO,GAAGH,WAAW,CAAC1kH,MAAD,CAAzB;AAAA,UACIU,MAAM,GAAG,EADb;;AAGA,WAAK,IAAInB,GAAT,IAAgBS,MAAhB,EAAwB;AACtB,YAAI,EAAET,GAAG,IAAI,aAAP,KAAyBslH,OAAO,IAAI,CAAC73G,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,CAArC,CAAF,CAAJ,EAA+E;AAC7EmB,UAAAA,MAAM,CAACrU,IAAP,CAAYkT,GAAZ;AACD;AACF;;AACD,aAAOmB,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASokH,MAAT,CAAgBl6H,KAAhB,EAAuB8qC,KAAvB,EAA8B;AAC5B,aAAO9qC,KAAK,GAAG8qC,KAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqvF,OAAT,CAAiBnnC,UAAjB,EAA6BsyB,QAA7B,EAAuC;AACrC,UAAI1yG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIkD,MAAM,GAAGskH,WAAW,CAACpnC,UAAD,CAAX,GAA0Bx1F,KAAK,CAACw1F,UAAU,CAACz0F,MAAZ,CAA/B,GAAqD,EADlE;AAGAu0H,MAAAA,QAAQ,CAAC9/B,UAAD,EAAa,UAAShzF,KAAT,EAAgB2U,GAAhB,EAAqBq+E,UAArB,EAAiC;AACpDl9E,QAAAA,MAAM,CAAC,EAAElD,KAAH,CAAN,GAAkB0yG,QAAQ,CAACtlH,KAAD,EAAQ2U,GAAR,EAAaq+E,UAAb,CAA1B;AACD,OAFO,CAAR;AAGA,aAAOl9E,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8jH,WAAT,CAAqBjoH,MAArB,EAA6B;AAC3B,UAAIqnH,SAAS,GAAGqB,YAAY,CAAC1oH,MAAD,CAA5B;;AACA,UAAIqnH,SAAS,CAACz6H,MAAV,IAAoB,CAApB,IAAyBy6H,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAA7B,EAA8C;AAC5C,eAAOsB,uBAAuB,CAACtB,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAD,EAAkBA,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAlB,CAA9B;AACD;;AACD,aAAO,UAAS5jH,MAAT,EAAiB;AACtB,eAAOA,MAAM,KAAKzD,MAAX,IAAqBonH,WAAW,CAAC3jH,MAAD,EAASzD,MAAT,EAAiBqnH,SAAjB,CAAvC;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASW,mBAAT,CAA6BpyH,IAA7B,EAAmC2xH,QAAnC,EAA6C;AAC3C,UAAIqB,KAAK,CAAChzH,IAAD,CAAL,IAAeizH,kBAAkB,CAACtB,QAAD,CAArC,EAAiD;AAC/C,eAAOoB,uBAAuB,CAAC/D,KAAK,CAAChvH,IAAD,CAAN,EAAc2xH,QAAd,CAA9B;AACD;;AACD,aAAO,UAAS9jH,MAAT,EAAiB;AACtB,YAAIw9G,QAAQ,GAAG19G,GAAG,CAACE,MAAD,EAAS7N,IAAT,CAAlB;AACA,eAAQqrH,QAAQ,KAAK98F,SAAb,IAA0B88F,QAAQ,KAAKsG,QAAxC,GACHuB,KAAK,CAACrlH,MAAD,EAAS7N,IAAT,CADF,GAEHswH,WAAW,CAACqB,QAAD,EAAWtG,QAAX,EAAqBzY,oBAAoB,GAAGC,sBAA5C,CAFf;AAGD,OALD;AAMD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsgB,SAAT,CAAmBtlH,MAAnB,EAA2BzD,MAA3B,EAAmCgpH,QAAnC,EAA6ClH,UAA7C,EAAyDxgD,KAAzD,EAAgE;AAC9D,UAAI79D,MAAM,KAAKzD,MAAf,EAAuB;AACrB;AACD;;AACDqkH,MAAAA,OAAO,CAACrkH,MAAD,EAAS,UAASunH,QAAT,EAAmBvkH,GAAnB,EAAwB;AACtCs+D,QAAAA,KAAK,KAAKA,KAAK,GAAG,IAAIm+C,KAAJ,EAAb,CAAL;;AACA,YAAIrD,QAAQ,CAACmL,QAAD,CAAZ,EAAwB;AACtB0B,UAAAA,aAAa,CAACxlH,MAAD,EAASzD,MAAT,EAAiBgD,GAAjB,EAAsBgmH,QAAtB,EAAgCD,SAAhC,EAA2CjH,UAA3C,EAAuDxgD,KAAvD,CAAb;AACD,SAFD,MAGK;AACH,cAAI4nD,QAAQ,GAAGpH,UAAU,GACrBA,UAAU,CAACqH,OAAO,CAAC1lH,MAAD,EAAST,GAAT,CAAR,EAAuBukH,QAAvB,EAAkCvkH,GAAG,GAAG,EAAxC,EAA6CS,MAA7C,EAAqDzD,MAArD,EAA6DshE,KAA7D,CADW,GAErBn9C,SAFJ;;AAIA,cAAI+kG,QAAQ,KAAK/kG,SAAjB,EAA4B;AAC1B+kG,YAAAA,QAAQ,GAAG3B,QAAX;AACD;;AACD1G,UAAAA,gBAAgB,CAACp9G,MAAD,EAAST,GAAT,EAAckmH,QAAd,CAAhB;AACD;AACF,OAfM,EAeJ3H,MAfI,CAAP;AAgBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0H,aAAT,CAAuBxlH,MAAvB,EAA+BzD,MAA/B,EAAuCgD,GAAvC,EAA4CgmH,QAA5C,EAAsDI,SAAtD,EAAiEtH,UAAjE,EAA6ExgD,KAA7E,EAAoF;AAClF,UAAI2/C,QAAQ,GAAGkI,OAAO,CAAC1lH,MAAD,EAAST,GAAT,CAAtB;AAAA,UACIukH,QAAQ,GAAG4B,OAAO,CAACnpH,MAAD,EAASgD,GAAT,CADtB;AAAA,UAEI0/G,OAAO,GAAGphD,KAAK,CAAC/9D,GAAN,CAAUgkH,QAAV,CAFd;;AAIA,UAAI7E,OAAJ,EAAa;AACX7B,QAAAA,gBAAgB,CAACp9G,MAAD,EAAST,GAAT,EAAc0/G,OAAd,CAAhB;AACA;AACD;;AACD,UAAIwG,QAAQ,GAAGpH,UAAU,GACrBA,UAAU,CAACb,QAAD,EAAWsG,QAAX,EAAsBvkH,GAAG,GAAG,EAA5B,EAAiCS,MAAjC,EAAyCzD,MAAzC,EAAiDshE,KAAjD,CADW,GAErBn9C,SAFJ;AAIA,UAAIi/F,QAAQ,GAAG8F,QAAQ,KAAK/kG,SAA5B;;AAEA,UAAIi/F,QAAJ,EAAc;AACZ,YAAI7F,KAAK,GAAGhuH,OAAO,CAACg4H,QAAD,CAAnB;AAAA,YACIpH,MAAM,GAAG,CAAC5C,KAAD,IAAU10B,QAAQ,CAAC0+B,QAAD,CAD/B;AAAA,YAEI8B,OAAO,GAAG,CAAC9L,KAAD,IAAU,CAAC4C,MAAX,IAAqB7M,YAAY,CAACiU,QAAD,CAF/C;AAIA2B,QAAAA,QAAQ,GAAG3B,QAAX;;AACA,YAAIhK,KAAK,IAAI4C,MAAT,IAAmBkJ,OAAvB,EAAgC;AAC9B,cAAI95H,OAAO,CAAC0xH,QAAD,CAAX,EAAuB;AACrBiI,YAAAA,QAAQ,GAAGjI,QAAX;AACD,WAFD,MAGK,IAAIqI,iBAAiB,CAACrI,QAAD,CAArB,EAAiC;AACpCiI,YAAAA,QAAQ,GAAG/L,SAAS,CAAC8D,QAAD,CAApB;AACD,WAFI,MAGA,IAAId,MAAJ,EAAY;AACfiD,YAAAA,QAAQ,GAAG,KAAX;AACA8F,YAAAA,QAAQ,GAAG7G,WAAW,CAACkF,QAAD,EAAW,IAAX,CAAtB;AACD,WAHI,MAIA,IAAI8B,OAAJ,EAAa;AAChBjG,YAAAA,QAAQ,GAAG,KAAX;AACA8F,YAAAA,QAAQ,GAAGK,eAAe,CAAChC,QAAD,EAAW,IAAX,CAA1B;AACD,WAHI,MAIA;AACH2B,YAAAA,QAAQ,GAAG,EAAX;AACD;AACF,SAlBD,MAmBK,IAAIM,aAAa,CAACjC,QAAD,CAAb,IAA2BrH,WAAW,CAACqH,QAAD,CAA1C,EAAsD;AACzD2B,UAAAA,QAAQ,GAAGjI,QAAX;;AACA,cAAIf,WAAW,CAACe,QAAD,CAAf,EAA2B;AACzBiI,YAAAA,QAAQ,GAAGO,aAAa,CAACxI,QAAD,CAAxB;AACD,WAFD,MAGK,IAAI,CAAC7E,QAAQ,CAAC6E,QAAD,CAAT,IAAuBwD,UAAU,CAACxD,QAAD,CAArC,EAAiD;AACpDiI,YAAAA,QAAQ,GAAG5G,eAAe,CAACiF,QAAD,CAA1B;AACD;AACF,SARI,MASA;AACHnE,UAAAA,QAAQ,GAAG,KAAX;AACD;AACF;;AACD,UAAIA,QAAJ,EAAc;AACZ;AACA9hD,QAAAA,KAAK,CAACp+D,GAAN,CAAUqkH,QAAV,EAAoB2B,QAApB;AACAE,QAAAA,SAAS,CAACF,QAAD,EAAW3B,QAAX,EAAqByB,QAArB,EAA+BlH,UAA/B,EAA2CxgD,KAA3C,CAAT;AACAA,QAAAA,KAAK,CAAC,QAAD,CAAL,CAAgBimD,QAAhB;AACD;;AACD1G,MAAAA,gBAAgB,CAACp9G,MAAD,EAAST,GAAT,EAAckmH,QAAd,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASQ,OAAT,CAAiB99H,KAAjB,EAAwBwC,CAAxB,EAA2B;AACzB,UAAIxB,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;;AACA,UAAI,CAACA,MAAL,EAAa;AACX;AACD;;AACDwB,MAAAA,CAAC,IAAIA,CAAC,GAAG,CAAJ,GAAQxB,MAAR,GAAiB,CAAtB;AACA,aAAO0zH,OAAO,CAAClyH,CAAD,EAAIxB,MAAJ,CAAP,GAAqBhB,KAAK,CAACwC,CAAD,CAA1B,GAAgC+1B,SAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwlG,WAAT,CAAqBtoC,UAArB,EAAiCs8B,SAAjC,EAA4CiM,MAA5C,EAAoD;AAClD,UAAIjM,SAAS,CAAC/wH,MAAd,EAAsB;AACpB+wH,QAAAA,SAAS,GAAGpJ,QAAQ,CAACoJ,SAAD,EAAY,UAAShK,QAAT,EAAmB;AACjD,cAAIpkH,OAAO,CAACokH,QAAD,CAAX,EAAuB;AACrB,mBAAO,UAAStlH,KAAT,EAAgB;AACrB,qBAAOq2H,OAAO,CAACr2H,KAAD,EAAQslH,QAAQ,CAAC/mH,MAAT,KAAoB,CAApB,GAAwB+mH,QAAQ,CAAC,CAAD,CAAhC,GAAsCA,QAA9C,CAAd;AACD,aAFD;AAGD;;AACD,iBAAOA,QAAP;AACD,SAPmB,CAApB;AAQD,OATD,MASO;AACLgK,QAAAA,SAAS,GAAG,CAAChvH,QAAD,CAAZ;AACD;;AAED,UAAIsS,KAAK,GAAG,CAAC,CAAb;AACA08G,MAAAA,SAAS,GAAGpJ,QAAQ,CAACoJ,SAAD,EAAYvH,SAAS,CAACyT,WAAW,EAAZ,CAArB,CAApB;AAEA,UAAI1lH,MAAM,GAAGqkH,OAAO,CAACnnC,UAAD,EAAa,UAAShzF,KAAT,EAAgB2U,GAAhB,EAAqBq+E,UAArB,EAAiC;AAChE,YAAIyoC,QAAQ,GAAGvV,QAAQ,CAACoJ,SAAD,EAAY,UAAShK,QAAT,EAAmB;AACpD,iBAAOA,QAAQ,CAACtlH,KAAD,CAAf;AACD,SAFsB,CAAvB;AAGA,eAAO;AAAE,sBAAYy7H,QAAd;AAAwB,mBAAS,EAAE7oH,KAAnC;AAA0C,mBAAS5S;AAAnD,SAAP;AACD,OALmB,CAApB;AAOA,aAAOwnH,UAAU,CAAC1xG,MAAD,EAAS,UAASV,MAAT,EAAiB01B,KAAjB,EAAwB;AAChD,eAAO4wF,eAAe,CAACtmH,MAAD,EAAS01B,KAAT,EAAgBywF,MAAhB,CAAtB;AACD,OAFgB,CAAjB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASI,QAAT,CAAkBvmH,MAAlB,EAA0Bg+G,KAA1B,EAAiC;AAC/B,aAAOwI,UAAU,CAACxmH,MAAD,EAASg+G,KAAT,EAAgB,UAASpzH,KAAT,EAAgBuH,IAAhB,EAAsB;AACrD,eAAOkzH,KAAK,CAACrlH,MAAD,EAAS7N,IAAT,CAAZ;AACD,OAFgB,CAAjB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASq0H,UAAT,CAAoBxmH,MAApB,EAA4Bg+G,KAA5B,EAAmCzN,SAAnC,EAA8C;AAC5C,UAAI/yG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAG60H,KAAK,CAAC70H,MADnB;AAAA,UAEIuX,MAAM,GAAG,EAFb;;AAIA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIgJ,IAAI,GAAG6rH,KAAK,CAACxgH,KAAD,CAAhB;AAAA,YACI5S,KAAK,GAAGq2H,OAAO,CAACjhH,MAAD,EAAS7N,IAAT,CADnB;;AAGA,YAAIo+G,SAAS,CAAC3lH,KAAD,EAAQuH,IAAR,CAAb,EAA4B;AAC1Bs0H,UAAAA,OAAO,CAAC/lH,MAAD,EAASwgH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAjB,EAAiCpV,KAAjC,CAAP;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgmH,gBAAT,CAA0Bv0H,IAA1B,EAAgC;AAC9B,aAAO,UAAS6N,MAAT,EAAiB;AACtB,eAAOihH,OAAO,CAACjhH,MAAD,EAAS7N,IAAT,CAAd;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASw0H,WAAT,CAAqBx+H,KAArB,EAA4B8B,MAA5B,EAAoCimH,QAApC,EAA8CW,UAA9C,EAA0D;AACxD,UAAI18F,OAAO,GAAG08F,UAAU,GAAGkB,eAAH,GAAqBpB,WAA7C;AAAA,UACInzG,KAAK,GAAG,CAAC,CADb;AAAA,UAEIrU,MAAM,GAAGc,MAAM,CAACd,MAFpB;AAAA,UAGI+4H,IAAI,GAAG/5H,KAHX;;AAKA,UAAIA,KAAK,KAAK8B,MAAd,EAAsB;AACpBA,QAAAA,MAAM,GAAGyvH,SAAS,CAACzvH,MAAD,CAAlB;AACD;;AACD,UAAIimH,QAAJ,EAAc;AACZgS,QAAAA,IAAI,GAAGpR,QAAQ,CAAC3oH,KAAD,EAAQwqH,SAAS,CAACzC,QAAD,CAAjB,CAAf;AACD;;AACD,aAAO,EAAE1yG,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIwoH,SAAS,GAAG,CAAhB;AAAA,YACI/mH,KAAK,GAAGX,MAAM,CAACuT,KAAD,CADlB;AAAA,YAEIg9G,QAAQ,GAAGtK,QAAQ,GAAGA,QAAQ,CAACtlH,KAAD,CAAX,GAAqBA,KAF5C;;AAIA,eAAO,CAAC+mH,SAAS,GAAGx9F,OAAO,CAAC+tG,IAAD,EAAO1H,QAAP,EAAiB7I,SAAjB,EAA4Bd,UAA5B,CAApB,IAA+D,CAAC,CAAvE,EAA0E;AACxE,cAAIqR,IAAI,KAAK/5H,KAAb,EAAoB;AAClBwgD,YAAAA,MAAM,CAACl8C,IAAP,CAAYy1H,IAAZ,EAAkBvQ,SAAlB,EAA6B,CAA7B;AACD;;AACDhpE,UAAAA,MAAM,CAACl8C,IAAP,CAAYtE,KAAZ,EAAmBwpH,SAAnB,EAA8B,CAA9B;AACD;AACF;;AACD,aAAOxpH,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy+H,UAAT,CAAoBz+H,KAApB,EAA2BmG,OAA3B,EAAoC;AAClC,UAAInF,MAAM,GAAGhB,KAAK,GAAGmG,OAAO,CAACnF,MAAX,GAAoB,CAAtC;AAAA,UACI0qD,SAAS,GAAG1qD,MAAM,GAAG,CADzB;;AAGA,aAAOA,MAAM,EAAb,EAAiB;AACf,YAAIqU,KAAK,GAAGlP,OAAO,CAACnF,MAAD,CAAnB;;AACA,YAAIA,MAAM,IAAI0qD,SAAV,IAAuBr2C,KAAK,KAAKouC,QAArC,EAA+C;AAC7C,cAAIA,QAAQ,GAAGpuC,KAAf;;AACA,cAAIq/G,OAAO,CAACr/G,KAAD,CAAX,EAAoB;AAClBmrC,YAAAA,MAAM,CAACl8C,IAAP,CAAYtE,KAAZ,EAAmBqV,KAAnB,EAA0B,CAA1B;AACD,WAFD,MAEO;AACLqpH,YAAAA,SAAS,CAAC1+H,KAAD,EAAQqV,KAAR,CAAT;AACD;AACF;AACF;;AACD,aAAOrV,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS40H,UAAT,CAAoB1rD,KAApB,EAA2B6sD,KAA3B,EAAkC;AAChC,aAAO7sD,KAAK,GAAGslD,WAAW,CAACW,YAAY,MAAM4G,KAAK,GAAG7sD,KAAR,GAAgB,CAAtB,CAAb,CAA1B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy1D,SAAT,CAAmBp4H,KAAnB,EAA0BwK,GAA1B,EAA+BtK,IAA/B,EAAqCgjH,SAArC,EAAgD;AAC9C,UAAIp0G,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAG+tH,SAAS,CAACR,UAAU,CAAC,CAACx9G,GAAG,GAAGxK,KAAP,KAAiBE,IAAI,IAAI,CAAzB,CAAD,CAAX,EAA0C,CAA1C,CADtB;AAAA,UAEI8R,MAAM,GAAGtY,KAAK,CAACe,MAAD,CAFlB;;AAIA,aAAOA,MAAM,EAAb,EAAiB;AACfuX,QAAAA,MAAM,CAACkxG,SAAS,GAAGzoH,MAAH,GAAY,EAAEqU,KAAxB,CAAN,GAAuC9O,KAAvC;AACAA,QAAAA,KAAK,IAAIE,IAAT;AACD;;AACD,aAAO8R,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqmH,UAAT,CAAoBvxE,MAApB,EAA4B7qD,CAA5B,EAA+B;AAC7B,UAAI+V,MAAM,GAAG,EAAb;;AACA,UAAI,CAAC80C,MAAD,IAAW7qD,CAAC,GAAG,CAAf,IAAoBA,CAAC,GAAGw7G,gBAA5B,EAA8C;AAC5C,eAAOzlG,MAAP;AACD,OAJ4B,CAK7B;AACA;;;AACA,SAAG;AACD,YAAI/V,CAAC,GAAG,CAAR,EAAW;AACT+V,UAAAA,MAAM,IAAI80C,MAAV;AACD;;AACD7qD,QAAAA,CAAC,GAAGgsH,WAAW,CAAChsH,CAAC,GAAG,CAAL,CAAf;;AACA,YAAIA,CAAJ,EAAO;AACL6qD,UAAAA,MAAM,IAAIA,MAAV;AACD;AACF,OARD,QAQS7qD,CART;;AAUA,aAAO+V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASsmH,QAAT,CAAkBlX,IAAlB,EAAwBphH,KAAxB,EAA+B;AAC7B,aAAOu4H,WAAW,CAACC,QAAQ,CAACpX,IAAD,EAAOphH,KAAP,EAAcxD,QAAd,CAAT,EAAkC4kH,IAAI,GAAG,EAAzC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqX,UAAT,CAAoBvpC,UAApB,EAAgC;AAC9B,aAAOk/B,WAAW,CAAC7yH,MAAM,CAAC2zF,UAAD,CAAP,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwpC,cAAT,CAAwBxpC,UAAxB,EAAoCjzF,CAApC,EAAuC;AACrC,UAAIxC,KAAK,GAAG8B,MAAM,CAAC2zF,UAAD,CAAlB;AACA,aAAOq/B,WAAW,CAAC90H,KAAD,EAAQ+0H,SAAS,CAACvyH,CAAD,EAAI,CAAJ,EAAOxC,KAAK,CAACgB,MAAb,CAAjB,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs9H,OAAT,CAAiBzmH,MAAjB,EAAyB7N,IAAzB,EAA+BvH,KAA/B,EAAsCyzH,UAAtC,EAAkD;AAChD,UAAI,CAAC1F,QAAQ,CAAC34G,MAAD,CAAb,EAAuB;AACrB,eAAOA,MAAP;AACD;;AACD7N,MAAAA,IAAI,GAAG+uH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAf;AAEA,UAAIxC,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGgJ,IAAI,CAAChJ,MADlB;AAAA,UAEI0qD,SAAS,GAAG1qD,MAAM,GAAG,CAFzB;AAAA,UAGIk+H,MAAM,GAAGrnH,MAHb;;AAKA,aAAOqnH,MAAM,IAAI,IAAV,IAAkB,EAAE7pH,KAAF,GAAUrU,MAAnC,EAA2C;AACzC,YAAIoW,GAAG,GAAG4hH,KAAK,CAAChvH,IAAI,CAACqL,KAAD,CAAL,CAAf;AAAA,YACIioH,QAAQ,GAAG76H,KADf;;AAGA,YAAI2U,GAAG,KAAK,WAAR,IAAuBA,GAAG,KAAK,aAA/B,IAAgDA,GAAG,KAAK,WAA5D,EAAyE;AACvE,iBAAOS,MAAP;AACD;;AAED,YAAIxC,KAAK,IAAIq2C,SAAb,EAAwB;AACtB,cAAI2pE,QAAQ,GAAG6J,MAAM,CAAC9nH,GAAD,CAArB;AACAkmH,UAAAA,QAAQ,GAAGpH,UAAU,GAAGA,UAAU,CAACb,QAAD,EAAWj+G,GAAX,EAAgB8nH,MAAhB,CAAb,GAAuC3mG,SAA5D;;AACA,cAAI+kG,QAAQ,KAAK/kG,SAAjB,EAA4B;AAC1B+kG,YAAAA,QAAQ,GAAG9M,QAAQ,CAAC6E,QAAD,CAAR,GACPA,QADO,GAENX,OAAO,CAAC1qH,IAAI,CAACqL,KAAK,GAAG,CAAT,CAAL,CAAP,GAA2B,EAA3B,GAAgC,EAFrC;AAGD;AACF;;AACD+/G,QAAAA,WAAW,CAAC8J,MAAD,EAAS9nH,GAAT,EAAckmH,QAAd,CAAX;AACA4B,QAAAA,MAAM,GAAGA,MAAM,CAAC9nH,GAAD,CAAf;AACD;;AACD,aAAOS,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIsnH,WAAW,GAAG,CAAC5P,OAAD,GAAWxsH,QAAX,GAAsB,UAAS4kH,IAAT,EAAerkH,IAAf,EAAqB;AAC3DisH,MAAAA,OAAO,CAACj4G,GAAR,CAAYqwG,IAAZ,EAAkBrkH,IAAlB;AACA,aAAOqkH,IAAP;AACD,KAHD;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIyX,eAAe,GAAG,CAACroB,cAAD,GAAkBh0G,QAAlB,GAA6B,UAAS4kH,IAAT,EAAet6D,MAAf,EAAuB;AACxE,aAAO0pD,cAAc,CAAC4Q,IAAD,EAAO,UAAP,EAAmB;AACtC,wBAAgB,IADsB;AAEtC,sBAAc,KAFwB;AAGtC,iBAAS9kH,QAAQ,CAACwqD,MAAD,CAHqB;AAItC,oBAAY;AAJ0B,OAAnB,CAArB;AAMD,KAPD;AASA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASgyE,WAAT,CAAqB5pC,UAArB,EAAiC;AAC/B,aAAOq/B,WAAW,CAAChzH,MAAM,CAAC2zF,UAAD,CAAP,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6pC,SAAT,CAAmBt/H,KAAnB,EAA0BuG,KAA1B,EAAiCwK,GAAjC,EAAsC;AACpC,UAAIsE,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,CAACgB,MADnB;;AAGA,UAAIuF,KAAK,GAAG,CAAZ,EAAe;AACbA,QAAAA,KAAK,GAAG,CAACA,KAAD,GAASvF,MAAT,GAAkB,CAAlB,GAAuBA,MAAM,GAAGuF,KAAxC;AACD;;AACDwK,MAAAA,GAAG,GAAGA,GAAG,GAAG/P,MAAN,GAAeA,MAAf,GAAwB+P,GAA9B;;AACA,UAAIA,GAAG,GAAG,CAAV,EAAa;AACXA,QAAAA,GAAG,IAAI/P,MAAP;AACD;;AACDA,MAAAA,MAAM,GAAGuF,KAAK,GAAGwK,GAAR,GAAc,CAAd,GAAoBA,GAAG,GAAGxK,KAAP,KAAkB,CAA9C;AACAA,MAAAA,KAAK,MAAM,CAAX;AAEA,UAAIgS,MAAM,GAAGtY,KAAK,CAACe,MAAD,CAAlB;;AACA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvBuX,QAAAA,MAAM,CAAClD,KAAD,CAAN,GAAgBrV,KAAK,CAACqV,KAAK,GAAG9O,KAAT,CAArB;AACD;;AACD,aAAOgS,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgnH,QAAT,CAAkB9pC,UAAlB,EAA8B2yB,SAA9B,EAAyC;AACvC,UAAI7vG,MAAJ;AAEAg9G,MAAAA,QAAQ,CAAC9/B,UAAD,EAAa,UAAShzF,KAAT,EAAgB4S,KAAhB,EAAuBogF,UAAvB,EAAmC;AACtDl9E,QAAAA,MAAM,GAAG6vG,SAAS,CAAC3lH,KAAD,EAAQ4S,KAAR,EAAeogF,UAAf,CAAlB;AACA,eAAO,CAACl9E,MAAR;AACD,OAHO,CAAR;AAIA,aAAO,CAAC,CAACA,MAAT;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASinH,eAAT,CAAyBx/H,KAAzB,EAAgCyC,KAAhC,EAAuCg9H,UAAvC,EAAmD;AACjD,UAAIC,GAAG,GAAG,CAAV;AAAA,UACIC,IAAI,GAAG3/H,KAAK,IAAI,IAAT,GAAgB0/H,GAAhB,GAAsB1/H,KAAK,CAACgB,MADvC;;AAGA,UAAI,OAAOyB,KAAP,IAAgB,QAAhB,IAA4BA,KAAK,KAAKA,KAAtC,IAA+Ck9H,IAAI,IAAIthB,qBAA3D,EAAkF;AAChF,eAAOqhB,GAAG,GAAGC,IAAb,EAAmB;AACjB,cAAIt+H,GAAG,GAAIq+H,GAAG,GAAGC,IAAP,KAAiB,CAA3B;AAAA,cACItN,QAAQ,GAAGryH,KAAK,CAACqB,GAAD,CADpB;;AAGA,cAAIgxH,QAAQ,KAAK,IAAb,IAAqB,CAAC4F,QAAQ,CAAC5F,QAAD,CAA9B,KACCoN,UAAU,GAAIpN,QAAQ,IAAI5vH,KAAhB,GAA0B4vH,QAAQ,GAAG5vH,KADhD,CAAJ,EAC6D;AAC3Di9H,YAAAA,GAAG,GAAGr+H,GAAG,GAAG,CAAZ;AACD,WAHD,MAGO;AACLs+H,YAAAA,IAAI,GAAGt+H,GAAP;AACD;AACF;;AACD,eAAOs+H,IAAP;AACD;;AACD,aAAOC,iBAAiB,CAAC5/H,KAAD,EAAQyC,KAAR,EAAeM,QAAf,EAAyB08H,UAAzB,CAAxB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASG,iBAAT,CAA2B5/H,KAA3B,EAAkCyC,KAAlC,EAAyCslH,QAAzC,EAAmD0X,UAAnD,EAA+D;AAC7D,UAAIC,GAAG,GAAG,CAAV;AAAA,UACIC,IAAI,GAAG3/H,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MADrC;;AAEA,UAAI2+H,IAAI,KAAK,CAAb,EAAgB;AACd,eAAO,CAAP;AACD;;AAEDl9H,MAAAA,KAAK,GAAGslH,QAAQ,CAACtlH,KAAD,CAAhB;AACA,UAAIo9H,QAAQ,GAAGp9H,KAAK,KAAKA,KAAzB;AAAA,UACIq9H,SAAS,GAAGr9H,KAAK,KAAK,IAD1B;AAAA,UAEIs9H,WAAW,GAAG9H,QAAQ,CAACx1H,KAAD,CAF1B;AAAA,UAGIu9H,cAAc,GAAGv9H,KAAK,KAAK81B,SAH/B;;AAKA,aAAOmnG,GAAG,GAAGC,IAAb,EAAmB;AACjB,YAAIt+H,GAAG,GAAGmtH,WAAW,CAAC,CAACkR,GAAG,GAAGC,IAAP,IAAe,CAAhB,CAArB;AAAA,YACItN,QAAQ,GAAGtK,QAAQ,CAAC/nH,KAAK,CAACqB,GAAD,CAAN,CADvB;AAAA,YAEI4+H,YAAY,GAAG5N,QAAQ,KAAK95F,SAFhC;AAAA,YAGI2nG,SAAS,GAAG7N,QAAQ,KAAK,IAH7B;AAAA,YAII8N,cAAc,GAAG9N,QAAQ,KAAKA,QAJlC;AAAA,YAKI+N,WAAW,GAAGnI,QAAQ,CAAC5F,QAAD,CAL1B;;AAOA,YAAIwN,QAAJ,EAAc;AACZ,cAAIQ,MAAM,GAAGZ,UAAU,IAAIU,cAA3B;AACD,SAFD,MAEO,IAAIH,cAAJ,EAAoB;AACzBK,UAAAA,MAAM,GAAGF,cAAc,KAAKV,UAAU,IAAIQ,YAAnB,CAAvB;AACD,SAFM,MAEA,IAAIH,SAAJ,EAAe;AACpBO,UAAAA,MAAM,GAAGF,cAAc,IAAIF,YAAlB,KAAmCR,UAAU,IAAI,CAACS,SAAlD,CAAT;AACD,SAFM,MAEA,IAAIH,WAAJ,EAAiB;AACtBM,UAAAA,MAAM,GAAGF,cAAc,IAAIF,YAAlB,IAAkC,CAACC,SAAnC,KAAiDT,UAAU,IAAI,CAACW,WAAhE,CAAT;AACD,SAFM,MAEA,IAAIF,SAAS,IAAIE,WAAjB,EAA8B;AACnCC,UAAAA,MAAM,GAAG,KAAT;AACD,SAFM,MAEA;AACLA,UAAAA,MAAM,GAAGZ,UAAU,GAAIpN,QAAQ,IAAI5vH,KAAhB,GAA0B4vH,QAAQ,GAAG5vH,KAAxD;AACD;;AACD,YAAI49H,MAAJ,EAAY;AACVX,UAAAA,GAAG,GAAGr+H,GAAG,GAAG,CAAZ;AACD,SAFD,MAEO;AACLs+H,UAAAA,IAAI,GAAGt+H,GAAP;AACD;AACF;;AACD,aAAO2tH,SAAS,CAAC2Q,IAAD,EAAOvhB,eAAP,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkiB,cAAT,CAAwBtgI,KAAxB,EAA+B+nH,QAA/B,EAAyC;AACvC,UAAI1yG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,CAACgB,MADnB;AAAA,UAEIsnH,QAAQ,GAAG,CAFf;AAAA,UAGI/vG,MAAM,GAAG,EAHb;;AAKA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;AAAA,YACIg9G,QAAQ,GAAGtK,QAAQ,GAAGA,QAAQ,CAACtlH,KAAD,CAAX,GAAqBA,KAD5C;;AAGA,YAAI,CAAC4S,KAAD,IAAU,CAAC6/G,EAAE,CAAC7C,QAAD,EAAW0H,IAAX,CAAjB,EAAmC;AACjC,cAAIA,IAAI,GAAG1H,QAAX;AACA95G,UAAAA,MAAM,CAAC+vG,QAAQ,EAAT,CAAN,GAAqB7lH,KAAK,KAAK,CAAV,GAAc,CAAd,GAAkBA,KAAvC;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgoH,YAAT,CAAsB99H,KAAtB,EAA6B;AAC3B,UAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;AAC5B,eAAOA,KAAP;AACD;;AACD,UAAIw1H,QAAQ,CAACx1H,KAAD,CAAZ,EAAqB;AACnB,eAAOy7G,GAAP;AACD;;AACD,aAAO,CAACz7G,KAAR;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+9H,YAAT,CAAsB/9H,KAAtB,EAA6B;AAC3B;AACA,UAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;AAC5B,eAAOA,KAAP;AACD;;AACD,UAAIkB,OAAO,CAAClB,KAAD,CAAX,EAAoB;AAClB;AACA,eAAOkmH,QAAQ,CAAClmH,KAAD,EAAQ+9H,YAAR,CAAR,GAAgC,EAAvC;AACD;;AACD,UAAIvI,QAAQ,CAACx1H,KAAD,CAAZ,EAAqB;AACnB,eAAOwtH,cAAc,GAAGA,cAAc,CAAC3rH,IAAf,CAAoB7B,KAApB,CAAH,GAAgC,EAArD;AACD;;AACD,UAAI8V,MAAM,GAAI9V,KAAK,GAAG,EAAtB;AACA,aAAQ8V,MAAM,IAAI,GAAV,IAAkB,IAAI9V,KAAL,IAAe,CAACs7G,QAAlC,GAA8C,IAA9C,GAAqDxlG,MAA5D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkoH,QAAT,CAAkBzgI,KAAlB,EAAyB+nH,QAAzB,EAAmCW,UAAnC,EAA+C;AAC7C,UAAIrzG,KAAK,GAAG,CAAC,CAAb;AAAA,UACIkhG,QAAQ,GAAGgS,aADf;AAAA,UAEIvnH,MAAM,GAAGhB,KAAK,CAACgB,MAFnB;AAAA,UAGIw2H,QAAQ,GAAG,IAHf;AAAA,UAIIj/G,MAAM,GAAG,EAJb;AAAA,UAKIwhH,IAAI,GAAGxhH,MALX;;AAOA,UAAImwG,UAAJ,EAAgB;AACd8O,QAAAA,QAAQ,GAAG,KAAX;AACAjhB,QAAAA,QAAQ,GAAGkS,iBAAX;AACD,OAHD,MAIK,IAAIznH,MAAM,IAAIk7G,gBAAd,EAAgC;AACnC,YAAI5kG,GAAG,GAAGywG,QAAQ,GAAG,IAAH,GAAU2Y,SAAS,CAAC1gI,KAAD,CAArC;;AACA,YAAIsX,GAAJ,EAAS;AACP,iBAAOy0G,UAAU,CAACz0G,GAAD,CAAjB;AACD;;AACDkgH,QAAAA,QAAQ,GAAG,KAAX;AACAjhB,QAAAA,QAAQ,GAAGmU,QAAX;AACAqP,QAAAA,IAAI,GAAG,IAAIrG,QAAJ,EAAP;AACD,OARI,MASA;AACHqG,QAAAA,IAAI,GAAGhS,QAAQ,GAAG,EAAH,GAAQxvG,MAAvB;AACD;;AACD45G,MAAAA,KAAK,EACL,OAAO,EAAE98G,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;AAAA,YACIg9G,QAAQ,GAAGtK,QAAQ,GAAGA,QAAQ,CAACtlH,KAAD,CAAX,GAAqBA,KAD5C;AAGAA,QAAAA,KAAK,GAAIimH,UAAU,IAAIjmH,KAAK,KAAK,CAAzB,GAA8BA,KAA9B,GAAsC,CAA9C;;AACA,YAAI+0H,QAAQ,IAAInF,QAAQ,KAAKA,QAA7B,EAAuC;AACrC,cAAIsO,SAAS,GAAG5G,IAAI,CAAC/4H,MAArB;;AACA,iBAAO2/H,SAAS,EAAhB,EAAoB;AAClB,gBAAI5G,IAAI,CAAC4G,SAAD,CAAJ,KAAoBtO,QAAxB,EAAkC;AAChC,uBAASF,KAAT;AACD;AACF;;AACD,cAAIpK,QAAJ,EAAc;AACZgS,YAAAA,IAAI,CAAC71H,IAAL,CAAUmuH,QAAV;AACD;;AACD95G,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD,SAXD,MAYK,IAAI,CAAC8zG,QAAQ,CAACwjB,IAAD,EAAO1H,QAAP,EAAiB3J,UAAjB,CAAb,EAA2C;AAC9C,cAAIqR,IAAI,KAAKxhH,MAAb,EAAqB;AACnBwhH,YAAAA,IAAI,CAAC71H,IAAL,CAAUmuH,QAAV;AACD;;AACD95G,UAAAA,MAAM,CAACrU,IAAP,CAAYzB,KAAZ;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmmH,SAAT,CAAmB7mH,MAAnB,EAA2B7N,IAA3B,EAAiC;AAC/BA,MAAAA,IAAI,GAAG+uH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAf;AACAA,MAAAA,MAAM,GAAG8O,MAAM,CAAC9O,MAAD,EAAS7N,IAAT,CAAf;AACA,aAAO6N,MAAM,IAAI,IAAV,IAAkB,OAAOA,MAAM,CAACmhH,KAAK,CAACkB,IAAI,CAAClwH,IAAD,CAAL,CAAN,CAAtC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS42H,UAAT,CAAoB/oH,MAApB,EAA4B7N,IAA5B,EAAkC62H,OAAlC,EAA2C3K,UAA3C,EAAuD;AACrD,aAAOoI,OAAO,CAACzmH,MAAD,EAAS7N,IAAT,EAAe62H,OAAO,CAAC/H,OAAO,CAACjhH,MAAD,EAAS7N,IAAT,CAAR,CAAtB,EAA+CksH,UAA/C,CAAd;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4K,SAAT,CAAmB9gI,KAAnB,EAA0BooH,SAA1B,EAAqC2Y,MAArC,EAA6CtX,SAA7C,EAAwD;AACtD,UAAIzoH,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;AAAA,UACIqU,KAAK,GAAGo0G,SAAS,GAAGzoH,MAAH,GAAY,CAAC,CADlC;;AAGA,aAAO,CAACyoH,SAAS,GAAGp0G,KAAK,EAAR,GAAa,EAAEA,KAAF,GAAUrU,MAAjC,KACLonH,SAAS,CAACpoH,KAAK,CAACqV,KAAD,CAAN,EAAeA,KAAf,EAAsBrV,KAAtB,CADX,EACyC,CAAE;;AAE3C,aAAO+gI,MAAM,GACTzB,SAAS,CAACt/H,KAAD,EAASypH,SAAS,GAAG,CAAH,GAAOp0G,KAAzB,EAAkCo0G,SAAS,GAAGp0G,KAAK,GAAG,CAAX,GAAerU,MAA1D,CADA,GAETs+H,SAAS,CAACt/H,KAAD,EAASypH,SAAS,GAAGp0G,KAAK,GAAG,CAAX,GAAe,CAAjC,EAAsCo0G,SAAS,GAAGzoH,MAAH,GAAYqU,KAA3D,CAFb;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS68G,gBAAT,CAA0BzvH,KAA1B,EAAiCu+H,OAAjC,EAA0C;AACxC,UAAIzoH,MAAM,GAAG9V,KAAb;;AACA,UAAI8V,MAAM,YAAY63G,WAAtB,EAAmC;AACjC73G,QAAAA,MAAM,GAAGA,MAAM,CAAC9V,KAAP,EAAT;AACD;;AACD,aAAOomH,WAAW,CAACmY,OAAD,EAAU,UAASzoH,MAAT,EAAiB0oH,MAAjB,EAAyB;AACnD,eAAOA,MAAM,CAACtZ,IAAP,CAAYn+G,KAAZ,CAAkBy3H,MAAM,CAACrZ,OAAzB,EAAkCgB,SAAS,CAAC,CAACrwG,MAAD,CAAD,EAAW0oH,MAAM,CAAC5vH,IAAlB,CAA3C,CAAP;AACD,OAFiB,EAEfkH,MAFe,CAAlB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2oH,OAAT,CAAiBn7H,MAAjB,EAAyBgiH,QAAzB,EAAmCW,UAAnC,EAA+C;AAC7C,UAAI1nH,MAAM,GAAG+E,MAAM,CAAC/E,MAApB;;AACA,UAAIA,MAAM,GAAG,CAAb,EAAgB;AACd,eAAOA,MAAM,GAAGy/H,QAAQ,CAAC16H,MAAM,CAAC,CAAD,CAAP,CAAX,GAAyB,EAAtC;AACD;;AACD,UAAIsP,KAAK,GAAG,CAAC,CAAb;AAAA,UACIkD,MAAM,GAAGtY,KAAK,CAACe,MAAD,CADlB;;AAGA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIhB,KAAK,GAAG+F,MAAM,CAACsP,KAAD,CAAlB;AAAA,YACIukH,QAAQ,GAAG,CAAC,CADhB;;AAGA,eAAO,EAAEA,QAAF,GAAa54H,MAApB,EAA4B;AAC1B,cAAI44H,QAAQ,IAAIvkH,KAAhB,EAAuB;AACrBkD,YAAAA,MAAM,CAAClD,KAAD,CAAN,GAAgBkiH,cAAc,CAACh/G,MAAM,CAAClD,KAAD,CAAN,IAAiBrV,KAAlB,EAAyB+F,MAAM,CAAC6zH,QAAD,CAA/B,EAA2C7R,QAA3C,EAAqDW,UAArD,CAA9B;AACD;AACF;AACF;;AACD,aAAO+X,QAAQ,CAACnI,WAAW,CAAC//G,MAAD,EAAS,CAAT,CAAZ,EAAyBwvG,QAAzB,EAAmCW,UAAnC,CAAf;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyY,aAAT,CAAuB9W,KAAvB,EAA8BvoH,MAA9B,EAAsCs/H,UAAtC,EAAkD;AAChD,UAAI/rH,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGqpH,KAAK,CAACrpH,MADnB;AAAA,UAEIqgI,UAAU,GAAGv/H,MAAM,CAACd,MAFxB;AAAA,UAGIuX,MAAM,GAAG,EAHb;;AAKA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAG4S,KAAK,GAAGgsH,UAAR,GAAqBv/H,MAAM,CAACuT,KAAD,CAA3B,GAAqCkjB,SAAjD;AACA6oG,QAAAA,UAAU,CAAC7oH,MAAD,EAAS8xG,KAAK,CAACh1G,KAAD,CAAd,EAAuB5S,KAAvB,CAAV;AACD;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+oH,mBAAT,CAA6B7+H,KAA7B,EAAoC;AAClC,aAAOi7H,iBAAiB,CAACj7H,KAAD,CAAjB,GAA2BA,KAA3B,GAAmC,EAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8+H,YAAT,CAAsB9+H,KAAtB,EAA6B;AAC3B,aAAO,OAAOA,KAAP,IAAgB,UAAhB,GAA6BA,KAA7B,GAAqCM,QAA5C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg2H,QAAT,CAAkBt2H,KAAlB,EAAyBoV,MAAzB,EAAiC;AAC/B,UAAIlU,OAAO,CAAClB,KAAD,CAAX,EAAoB;AAClB,eAAOA,KAAP;AACD;;AACD,aAAOu6H,KAAK,CAACv6H,KAAD,EAAQoV,MAAR,CAAL,GAAuB,CAACpV,KAAD,CAAvB,GAAiC++H,YAAY,CAACt9G,QAAQ,CAACzhB,KAAD,CAAT,CAApD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIg/H,QAAQ,GAAG5C,QAAf;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS6C,SAAT,CAAmB1hI,KAAnB,EAA0BuG,KAA1B,EAAiCwK,GAAjC,EAAsC;AACpC,UAAI/P,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;AACA+P,MAAAA,GAAG,GAAGA,GAAG,KAAKwnB,SAAR,GAAoBv3B,MAApB,GAA6B+P,GAAnC;AACA,aAAQ,CAACxK,KAAD,IAAUwK,GAAG,IAAI/P,MAAlB,GAA4BhB,KAA5B,GAAoCs/H,SAAS,CAACt/H,KAAD,EAAQuG,KAAR,EAAewK,GAAf,CAApD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;;;AACI,QAAI6C,YAAY,GAAGw6G,eAAe,IAAI,UAAS7gG,EAAT,EAAa;AACjD,aAAOI,IAAI,CAAC/Z,YAAL,CAAkB2Z,EAAlB,CAAP;AACD,KAFD;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkpG,WAAT,CAAqBpgH,MAArB,EAA6B8/G,MAA7B,EAAqC;AACnC,UAAIA,MAAJ,EAAY;AACV,eAAO9/G,MAAM,CAAClW,KAAP,EAAP;AACD;;AACD,UAAIa,MAAM,GAAGqV,MAAM,CAACrV,MAApB;AAAA,UACIuX,MAAM,GAAGk1G,WAAW,GAAGA,WAAW,CAACzsH,MAAD,CAAd,GAAyB,IAAIqV,MAAM,CAACoB,WAAX,CAAuBzW,MAAvB,CADjD;AAGAqV,MAAAA,MAAM,CAACvM,IAAP,CAAYyO,MAAZ;AACA,aAAOA,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASopH,gBAAT,CAA0BtpG,WAA1B,EAAuC;AACrC,UAAI9f,MAAM,GAAG,IAAI8f,WAAW,CAAC5gB,WAAhB,CAA4B4gB,WAAW,CAACygE,UAAxC,CAAb;AACA,UAAIiE,UAAJ,CAAexkF,MAAf,EAAuBjB,GAAvB,CAA2B,IAAIylF,UAAJ,CAAe1kE,WAAf,CAA3B;AACA,aAAO9f,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqpH,aAAT,CAAuB/pC,QAAvB,EAAiCs+B,MAAjC,EAAyC;AACvC,UAAI9/G,MAAM,GAAG8/G,MAAM,GAAGwL,gBAAgB,CAAC9pC,QAAQ,CAACxhF,MAAV,CAAnB,GAAuCwhF,QAAQ,CAACxhF,MAAnE;AACA,aAAO,IAAIwhF,QAAQ,CAACpgF,WAAb,CAAyBpB,MAAzB,EAAiCwhF,QAAQ,CAACgqC,UAA1C,EAAsDhqC,QAAQ,CAACiB,UAA/D,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgpC,WAAT,CAAqBC,MAArB,EAA6B;AAC3B,UAAIxpH,MAAM,GAAG,IAAIwpH,MAAM,CAACtqH,WAAX,CAAuBsqH,MAAM,CAAC3tH,MAA9B,EAAsC4tG,OAAO,CAACz9F,IAAR,CAAaw9G,MAAb,CAAtC,CAAb;AACAxpH,MAAAA,MAAM,CAACmzC,SAAP,GAAmBq2E,MAAM,CAACr2E,SAA1B;AACA,aAAOnzC,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASypH,WAAT,CAAqBziG,MAArB,EAA6B;AAC3B,aAAOywF,aAAa,GAAGzsG,MAAM,CAACysG,aAAa,CAAC1rH,IAAd,CAAmBi7B,MAAnB,CAAD,CAAT,GAAwC,EAA5D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo+F,eAAT,CAAyBsE,UAAzB,EAAqC9L,MAArC,EAA6C;AAC3C,UAAI9/G,MAAM,GAAG8/G,MAAM,GAAGwL,gBAAgB,CAACM,UAAU,CAAC5rH,MAAZ,CAAnB,GAAyC4rH,UAAU,CAAC5rH,MAAvE;AACA,aAAO,IAAI4rH,UAAU,CAACxqH,WAAf,CAA2BpB,MAA3B,EAAmC4rH,UAAU,CAACJ,UAA9C,EAA0DI,UAAU,CAACjhI,MAArE,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkhI,gBAAT,CAA0Bz/H,KAA1B,EAAiC8qC,KAAjC,EAAwC;AACtC,UAAI9qC,KAAK,KAAK8qC,KAAd,EAAqB;AACnB,YAAI40F,YAAY,GAAG1/H,KAAK,KAAK81B,SAA7B;AAAA,YACIunG,SAAS,GAAGr9H,KAAK,KAAK,IAD1B;AAAA,YAEI2/H,cAAc,GAAG3/H,KAAK,KAAKA,KAF/B;AAAA,YAGIs9H,WAAW,GAAG9H,QAAQ,CAACx1H,KAAD,CAH1B;AAKA,YAAIw9H,YAAY,GAAG1yF,KAAK,KAAKhV,SAA7B;AAAA,YACI2nG,SAAS,GAAG3yF,KAAK,KAAK,IAD1B;AAAA,YAEI4yF,cAAc,GAAG5yF,KAAK,KAAKA,KAF/B;AAAA,YAGI6yF,WAAW,GAAGnI,QAAQ,CAAC1qF,KAAD,CAH1B;;AAKA,YAAK,CAAC2yF,SAAD,IAAc,CAACE,WAAf,IAA8B,CAACL,WAA/B,IAA8Ct9H,KAAK,GAAG8qC,KAAvD,IACCwyF,WAAW,IAAIE,YAAf,IAA+BE,cAA/B,IAAiD,CAACD,SAAlD,IAA+D,CAACE,WADjE,IAECN,SAAS,IAAIG,YAAb,IAA6BE,cAF9B,IAGC,CAACgC,YAAD,IAAiBhC,cAHlB,IAIA,CAACiC,cAJL,EAIqB;AACnB,iBAAO,CAAP;AACD;;AACD,YAAK,CAACtC,SAAD,IAAc,CAACC,WAAf,IAA8B,CAACK,WAA/B,IAA8C39H,KAAK,GAAG8qC,KAAvD,IACC6yF,WAAW,IAAI+B,YAAf,IAA+BC,cAA/B,IAAiD,CAACtC,SAAlD,IAA+D,CAACC,WADjE,IAECG,SAAS,IAAIiC,YAAb,IAA6BC,cAF9B,IAGC,CAACnC,YAAD,IAAiBmC,cAHlB,IAIA,CAACjC,cAJL,EAIqB;AACnB,iBAAO,CAAC,CAAR;AACD;AACF;;AACD,aAAO,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAShC,eAAT,CAAyBtmH,MAAzB,EAAiC01B,KAAjC,EAAwCywF,MAAxC,EAAgD;AAC9C,UAAI3oH,KAAK,GAAG,CAAC,CAAb;AAAA,UACIgtH,WAAW,GAAGxqH,MAAM,CAACqmH,QADzB;AAAA,UAEIoE,WAAW,GAAG/0F,KAAK,CAAC2wF,QAFxB;AAAA,UAGIl9H,MAAM,GAAGqhI,WAAW,CAACrhI,MAHzB;AAAA,UAIIuhI,YAAY,GAAGvE,MAAM,CAACh9H,MAJ1B;;AAMA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIuX,MAAM,GAAG2pH,gBAAgB,CAACG,WAAW,CAAChtH,KAAD,CAAZ,EAAqBitH,WAAW,CAACjtH,KAAD,CAAhC,CAA7B;;AACA,YAAIkD,MAAJ,EAAY;AACV,cAAIlD,KAAK,IAAIktH,YAAb,EAA2B;AACzB,mBAAOhqH,MAAP;AACD;;AACD,cAAIpO,KAAK,GAAG6zH,MAAM,CAAC3oH,KAAD,CAAlB;AACA,iBAAOkD,MAAM,IAAIpO,KAAK,IAAI,MAAT,GAAkB,CAAC,CAAnB,GAAuB,CAA3B,CAAb;AACD;AACF,OAhB6C,CAiB9C;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,aAAO0N,MAAM,CAACxC,KAAP,GAAek4B,KAAK,CAACl4B,KAA5B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmtH,WAAT,CAAqBnxH,IAArB,EAA2BoxH,QAA3B,EAAqCC,OAArC,EAA8CC,SAA9C,EAAyD;AACvD,UAAIC,SAAS,GAAG,CAAC,CAAjB;AAAA,UACIC,UAAU,GAAGxxH,IAAI,CAACrQ,MADtB;AAAA,UAEI8hI,aAAa,GAAGJ,OAAO,CAAC1hI,MAF5B;AAAA,UAGI+hI,SAAS,GAAG,CAAC,CAHjB;AAAA,UAIIC,UAAU,GAAGP,QAAQ,CAACzhI,MAJ1B;AAAA,UAKIiiI,WAAW,GAAGlU,SAAS,CAAC8T,UAAU,GAAGC,aAAd,EAA6B,CAA7B,CAL3B;AAAA,UAMIvqH,MAAM,GAAGtY,KAAK,CAAC+iI,UAAU,GAAGC,WAAd,CANlB;AAAA,UAOIC,WAAW,GAAG,CAACP,SAPnB;;AASA,aAAO,EAAEI,SAAF,GAAcC,UAArB,EAAiC;AAC/BzqH,QAAAA,MAAM,CAACwqH,SAAD,CAAN,GAAoBN,QAAQ,CAACM,SAAD,CAA5B;AACD;;AACD,aAAO,EAAEH,SAAF,GAAcE,aAArB,EAAoC;AAClC,YAAII,WAAW,IAAIN,SAAS,GAAGC,UAA/B,EAA2C;AACzCtqH,UAAAA,MAAM,CAACmqH,OAAO,CAACE,SAAD,CAAR,CAAN,GAA6BvxH,IAAI,CAACuxH,SAAD,CAAjC;AACD;AACF;;AACD,aAAOK,WAAW,EAAlB,EAAsB;AACpB1qH,QAAAA,MAAM,CAACwqH,SAAS,EAAV,CAAN,GAAsB1xH,IAAI,CAACuxH,SAAS,EAAV,CAA1B;AACD;;AACD,aAAOrqH,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4qH,gBAAT,CAA0B9xH,IAA1B,EAAgCoxH,QAAhC,EAA0CC,OAA1C,EAAmDC,SAAnD,EAA8D;AAC5D,UAAIC,SAAS,GAAG,CAAC,CAAjB;AAAA,UACIC,UAAU,GAAGxxH,IAAI,CAACrQ,MADtB;AAAA,UAEIoiI,YAAY,GAAG,CAAC,CAFpB;AAAA,UAGIN,aAAa,GAAGJ,OAAO,CAAC1hI,MAH5B;AAAA,UAIIqiI,UAAU,GAAG,CAAC,CAJlB;AAAA,UAKIC,WAAW,GAAGb,QAAQ,CAACzhI,MAL3B;AAAA,UAMIiiI,WAAW,GAAGlU,SAAS,CAAC8T,UAAU,GAAGC,aAAd,EAA6B,CAA7B,CAN3B;AAAA,UAOIvqH,MAAM,GAAGtY,KAAK,CAACgjI,WAAW,GAAGK,WAAf,CAPlB;AAAA,UAQIJ,WAAW,GAAG,CAACP,SARnB;;AAUA,aAAO,EAAEC,SAAF,GAAcK,WAArB,EAAkC;AAChC1qH,QAAAA,MAAM,CAACqqH,SAAD,CAAN,GAAoBvxH,IAAI,CAACuxH,SAAD,CAAxB;AACD;;AACD,UAAIp6H,MAAM,GAAGo6H,SAAb;;AACA,aAAO,EAAES,UAAF,GAAeC,WAAtB,EAAmC;AACjC/qH,QAAAA,MAAM,CAAC/P,MAAM,GAAG66H,UAAV,CAAN,GAA8BZ,QAAQ,CAACY,UAAD,CAAtC;AACD;;AACD,aAAO,EAAED,YAAF,GAAiBN,aAAxB,EAAuC;AACrC,YAAII,WAAW,IAAIN,SAAS,GAAGC,UAA/B,EAA2C;AACzCtqH,UAAAA,MAAM,CAAC/P,MAAM,GAAGk6H,OAAO,CAACU,YAAD,CAAjB,CAAN,GAAyC/xH,IAAI,CAACuxH,SAAS,EAAV,CAA7C;AACD;AACF;;AACD,aAAOrqH,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg5G,SAAT,CAAmBn9G,MAAnB,EAA2BpU,KAA3B,EAAkC;AAChC,UAAIqV,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGoT,MAAM,CAACpT,MADpB;AAGAhB,MAAAA,KAAK,KAAKA,KAAK,GAAGC,KAAK,CAACe,MAAD,CAAlB,CAAL;;AACA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvBhB,QAAAA,KAAK,CAACqV,KAAD,CAAL,GAAejB,MAAM,CAACiB,KAAD,CAArB;AACD;;AACD,aAAOrV,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy1H,UAAT,CAAoBrhH,MAApB,EAA4Bi2G,KAA5B,EAAmCxyG,MAAnC,EAA2Cq+G,UAA3C,EAAuD;AACrD,UAAIqN,KAAK,GAAG,CAAC1rH,MAAb;AACAA,MAAAA,MAAM,KAAKA,MAAM,GAAG,EAAd,CAAN;AAEA,UAAIxC,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGqpH,KAAK,CAACrpH,MADnB;;AAGA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIoW,GAAG,GAAGizG,KAAK,CAACh1G,KAAD,CAAf;AAEA,YAAIioH,QAAQ,GAAGpH,UAAU,GACrBA,UAAU,CAACr+G,MAAM,CAACT,GAAD,CAAP,EAAchD,MAAM,CAACgD,GAAD,CAApB,EAA2BA,GAA3B,EAAgCS,MAAhC,EAAwCzD,MAAxC,CADW,GAErBmkB,SAFJ;;AAIA,YAAI+kG,QAAQ,KAAK/kG,SAAjB,EAA4B;AAC1B+kG,UAAAA,QAAQ,GAAGlpH,MAAM,CAACgD,GAAD,CAAjB;AACD;;AACD,YAAImsH,KAAJ,EAAW;AACTpO,UAAAA,eAAe,CAACt9G,MAAD,EAAST,GAAT,EAAckmH,QAAd,CAAf;AACD,SAFD,MAEO;AACLlI,UAAAA,WAAW,CAACv9G,MAAD,EAAST,GAAT,EAAckmH,QAAd,CAAX;AACD;AACF;;AACD,aAAOzlH,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS++G,WAAT,CAAqBxiH,MAArB,EAA6ByD,MAA7B,EAAqC;AACnC,aAAO49G,UAAU,CAACrhH,MAAD,EAASovH,UAAU,CAACpvH,MAAD,CAAnB,EAA6ByD,MAA7B,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8+G,aAAT,CAAuBviH,MAAvB,EAA+ByD,MAA/B,EAAuC;AACrC,aAAO49G,UAAU,CAACrhH,MAAD,EAASqvH,YAAY,CAACrvH,MAAD,CAArB,EAA+ByD,MAA/B,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6rH,gBAAT,CAA0B5b,MAA1B,EAAkCjR,WAAlC,EAA+C;AAC7C,aAAO,UAASphB,UAAT,EAAqBsyB,QAArB,EAA+B;AACpC,YAAIJ,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsBoyB,eAAtB,GAAwCyN,cAAnD;AAAA,YACItN,WAAW,GAAGnR,WAAW,GAAGA,WAAW,EAAd,GAAmB,EADhD;AAGA,eAAO8Q,IAAI,CAAClyB,UAAD,EAAaqyB,MAAb,EAAqBmW,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAhC,EAA+CC,WAA/C,CAAX;AACD,OALD;AAMD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2b,cAAT,CAAwBC,QAAxB,EAAkC;AAChC,aAAO/E,QAAQ,CAAC,UAAShnH,MAAT,EAAiBgsH,OAAjB,EAA0B;AACxC,YAAIxuH,KAAK,GAAG,CAAC,CAAb;AAAA,YACIrU,MAAM,GAAG6iI,OAAO,CAAC7iI,MADrB;AAAA,YAEIk1H,UAAU,GAAGl1H,MAAM,GAAG,CAAT,GAAa6iI,OAAO,CAAC7iI,MAAM,GAAG,CAAV,CAApB,GAAmCu3B,SAFpD;AAAA,YAGIurG,KAAK,GAAG9iI,MAAM,GAAG,CAAT,GAAa6iI,OAAO,CAAC,CAAD,CAApB,GAA0BtrG,SAHtC;AAKA29F,QAAAA,UAAU,GAAI0N,QAAQ,CAAC5iI,MAAT,GAAkB,CAAlB,IAAuB,OAAOk1H,UAAP,IAAqB,UAA7C,IACRl1H,MAAM,IAAIk1H,UADF,IAET39F,SAFJ;;AAIA,YAAIurG,KAAK,IAAIC,cAAc,CAACF,OAAO,CAAC,CAAD,CAAR,EAAaA,OAAO,CAAC,CAAD,CAApB,EAAyBC,KAAzB,CAA3B,EAA4D;AAC1D5N,UAAAA,UAAU,GAAGl1H,MAAM,GAAG,CAAT,GAAau3B,SAAb,GAAyB29F,UAAtC;AACAl1H,UAAAA,MAAM,GAAG,CAAT;AACD;;AACD6W,QAAAA,MAAM,GAAG0L,MAAM,CAAC1L,MAAD,CAAf;;AACA,eAAO,EAAExC,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,cAAIoT,MAAM,GAAGyvH,OAAO,CAACxuH,KAAD,CAApB;;AACA,cAAIjB,MAAJ,EAAY;AACVwvH,YAAAA,QAAQ,CAAC/rH,MAAD,EAASzD,MAAT,EAAiBiB,KAAjB,EAAwB6gH,UAAxB,CAAR;AACD;AACF;;AACD,eAAOr+G,MAAP;AACD,OAtBc,CAAf;AAuBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8/G,cAAT,CAAwBrO,QAAxB,EAAkCG,SAAlC,EAA6C;AAC3C,aAAO,UAASh0B,UAAT,EAAqBsyB,QAArB,EAA+B;AACpC,YAAItyB,UAAU,IAAI,IAAlB,EAAwB;AACtB,iBAAOA,UAAP;AACD;;AACD,YAAI,CAAConC,WAAW,CAACpnC,UAAD,CAAhB,EAA8B;AAC5B,iBAAO6zB,QAAQ,CAAC7zB,UAAD,EAAasyB,QAAb,CAAf;AACD;;AACD,YAAI/mH,MAAM,GAAGy0F,UAAU,CAACz0F,MAAxB;AAAA,YACIqU,KAAK,GAAGo0G,SAAS,GAAGzoH,MAAH,GAAY,CAAC,CADlC;AAAA,YAEIgjI,QAAQ,GAAGzgH,MAAM,CAACkyE,UAAD,CAFrB;;AAIA,eAAQg0B,SAAS,GAAGp0G,KAAK,EAAR,GAAa,EAAEA,KAAF,GAAUrU,MAAxC,EAAiD;AAC/C,cAAI+mH,QAAQ,CAACic,QAAQ,CAAC3uH,KAAD,CAAT,EAAkBA,KAAlB,EAAyB2uH,QAAzB,CAAR,KAA+C,KAAnD,EAA0D;AACxD;AACD;AACF;;AACD,eAAOvuC,UAAP;AACD,OAjBD;AAkBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASijC,aAAT,CAAuBjP,SAAvB,EAAkC;AAChC,aAAO,UAAS5xG,MAAT,EAAiBkwG,QAAjB,EAA2BiP,QAA3B,EAAqC;AAC1C,YAAI3hH,KAAK,GAAG,CAAC,CAAb;AAAA,YACI2uH,QAAQ,GAAGzgH,MAAM,CAAC1L,MAAD,CADrB;AAAA,YAEIwyG,KAAK,GAAG2M,QAAQ,CAACn/G,MAAD,CAFpB;AAAA,YAGI7W,MAAM,GAAGqpH,KAAK,CAACrpH,MAHnB;;AAKA,eAAOA,MAAM,EAAb,EAAiB;AACf,cAAIoW,GAAG,GAAGizG,KAAK,CAACZ,SAAS,GAAGzoH,MAAH,GAAY,EAAEqU,KAAxB,CAAf;;AACA,cAAI0yG,QAAQ,CAACic,QAAQ,CAAC5sH,GAAD,CAAT,EAAgBA,GAAhB,EAAqB4sH,QAArB,CAAR,KAA2C,KAA/C,EAAsD;AACpD;AACD;AACF;;AACD,eAAOnsH,MAAP;AACD,OAbD;AAcD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASosH,UAAT,CAAoBtc,IAApB,EAA0BsO,OAA1B,EAAmCrO,OAAnC,EAA4C;AAC1C,UAAIsc,MAAM,GAAGjO,OAAO,GAAGnZ,cAAvB;AAAA,UACIqnB,IAAI,GAAGC,UAAU,CAACzc,IAAD,CADrB;;AAGA,eAAS0c,OAAT,GAAmB;AACjB,YAAIC,EAAE,GAAI,QAAQ,SAAS32G,IAAjB,IAAyB,gBAAgB02G,OAA1C,GAAqDF,IAArD,GAA4Dxc,IAArE;AACA,eAAO2c,EAAE,CAAC96H,KAAH,CAAS06H,MAAM,GAAGtc,OAAH,GAAa,IAA5B,EAAkCxjH,SAAlC,CAAP;AACD;;AACD,aAAOigI,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASE,eAAT,CAAyBC,UAAzB,EAAqC;AACnC,aAAO,UAASn3E,MAAT,EAAiB;AACtBA,QAAAA,MAAM,GAAGnpC,QAAQ,CAACmpC,MAAD,CAAjB;AAEA,YAAIu9D,UAAU,GAAGU,UAAU,CAACj+D,MAAD,CAAV,GACb++D,aAAa,CAAC/+D,MAAD,CADA,GAEb90B,SAFJ;AAIA,YAAI6yF,GAAG,GAAGR,UAAU,GAChBA,UAAU,CAAC,CAAD,CADM,GAEhBv9D,MAAM,CAACk0B,MAAP,CAAc,CAAd,CAFJ;AAIA,YAAIkjD,QAAQ,GAAG7Z,UAAU,GACrB8W,SAAS,CAAC9W,UAAD,EAAa,CAAb,CAAT,CAAyB56F,IAAzB,CAA8B,EAA9B,CADqB,GAErBq9B,MAAM,CAACltD,KAAP,CAAa,CAAb,CAFJ;AAIA,eAAOirH,GAAG,CAACoZ,UAAD,CAAH,KAAoBC,QAA3B;AACD,OAhBD;AAiBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,gBAAT,CAA0B76G,QAA1B,EAAoC;AAClC,aAAO,UAASwjC,MAAT,EAAiB;AACtB,eAAOw7D,WAAW,CAAC8b,KAAK,CAACC,MAAM,CAACv3E,MAAD,CAAN,CAAej/B,OAAf,CAAuB82F,MAAvB,EAA+B,EAA/B,CAAD,CAAN,EAA4Cr7F,QAA5C,EAAsD,EAAtD,CAAlB;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu6G,UAAT,CAAoBD,IAApB,EAA0B;AACxB,aAAO,YAAW;AAChB;AACA;AACA;AACA,YAAI9yH,IAAI,GAAGjN,SAAX;;AACA,gBAAQiN,IAAI,CAACrQ,MAAb;AACE,eAAK,CAAL;AAAQ,mBAAO,IAAImjI,IAAJ,EAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAIA,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,EAA2BA,IAAI,CAAC,CAAD,CAA/B,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,EAA2BA,IAAI,CAAC,CAAD,CAA/B,EAAoCA,IAAI,CAAC,CAAD,CAAxC,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,EAA2BA,IAAI,CAAC,CAAD,CAA/B,EAAoCA,IAAI,CAAC,CAAD,CAAxC,EAA6CA,IAAI,CAAC,CAAD,CAAjD,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,EAA2BA,IAAI,CAAC,CAAD,CAA/B,EAAoCA,IAAI,CAAC,CAAD,CAAxC,EAA6CA,IAAI,CAAC,CAAD,CAAjD,EAAsDA,IAAI,CAAC,CAAD,CAA1D,CAAP;;AACR,eAAK,CAAL;AAAQ,mBAAO,IAAI8yH,IAAJ,CAAS9yH,IAAI,CAAC,CAAD,CAAb,EAAkBA,IAAI,CAAC,CAAD,CAAtB,EAA2BA,IAAI,CAAC,CAAD,CAA/B,EAAoCA,IAAI,CAAC,CAAD,CAAxC,EAA6CA,IAAI,CAAC,CAAD,CAAjD,EAAsDA,IAAI,CAAC,CAAD,CAA1D,EAA+DA,IAAI,CAAC,CAAD,CAAnE,CAAP;AARV;;AAUA,YAAIwzH,WAAW,GAAGtU,UAAU,CAAC4T,IAAI,CAACjkI,SAAN,CAA5B;AAAA,YACIqY,MAAM,GAAG4rH,IAAI,CAAC36H,KAAL,CAAWq7H,WAAX,EAAwBxzH,IAAxB,CADb,CAfgB,CAkBhB;AACA;;AACA,eAAOm/G,QAAQ,CAACj4G,MAAD,CAAR,GAAmBA,MAAnB,GAA4BssH,WAAnC;AACD,OArBD;AAsBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,WAAT,CAAqBnd,IAArB,EAA2BsO,OAA3B,EAAoC8O,KAApC,EAA2C;AACzC,UAAIZ,IAAI,GAAGC,UAAU,CAACzc,IAAD,CAArB;;AAEA,eAAS0c,OAAT,GAAmB;AACjB,YAAIrjI,MAAM,GAAGoD,SAAS,CAACpD,MAAvB;AAAA,YACIqQ,IAAI,GAAGpR,KAAK,CAACe,MAAD,CADhB;AAAA,YAEIqU,KAAK,GAAGrU,MAFZ;AAAA,YAGIgqH,WAAW,GAAGga,SAAS,CAACX,OAAD,CAH3B;;AAKA,eAAOhvH,KAAK,EAAZ,EAAgB;AACdhE,UAAAA,IAAI,CAACgE,KAAD,CAAJ,GAAcjR,SAAS,CAACiR,KAAD,CAAvB;AACD;;AACD,YAAIqtH,OAAO,GAAI1hI,MAAM,GAAG,CAAT,IAAcqQ,IAAI,CAAC,CAAD,CAAJ,KAAY25G,WAA1B,IAAyC35G,IAAI,CAACrQ,MAAM,GAAG,CAAV,CAAJ,KAAqBgqH,WAA/D,GACV,EADU,GAEVc,cAAc,CAACz6G,IAAD,EAAO25G,WAAP,CAFlB;AAIAhqH,QAAAA,MAAM,IAAI0hI,OAAO,CAAC1hI,MAAlB;;AACA,YAAIA,MAAM,GAAG+jI,KAAb,EAAoB;AAClB,iBAAOE,aAAa,CAClBtd,IADkB,EACZsO,OADY,EACHiP,YADG,EACWb,OAAO,CAACrZ,WADnB,EACgCzyF,SADhC,EAElBlnB,IAFkB,EAEZqxH,OAFY,EAEHnqG,SAFG,EAEQA,SAFR,EAEmBwsG,KAAK,GAAG/jI,MAF3B,CAApB;AAGD;;AACD,YAAIsjI,EAAE,GAAI,QAAQ,SAAS32G,IAAjB,IAAyB,gBAAgB02G,OAA1C,GAAqDF,IAArD,GAA4Dxc,IAArE;AACA,eAAOn+G,KAAK,CAAC86H,EAAD,EAAK,IAAL,EAAWjzH,IAAX,CAAZ;AACD;;AACD,aAAOgzH,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASc,UAAT,CAAoBC,aAApB,EAAmC;AACjC,aAAO,UAAS3vC,UAAT,EAAqB2yB,SAArB,EAAgCoB,SAAhC,EAA2C;AAChD,YAAIwa,QAAQ,GAAGzgH,MAAM,CAACkyE,UAAD,CAArB;;AACA,YAAI,CAAConC,WAAW,CAACpnC,UAAD,CAAhB,EAA8B;AAC5B,cAAIsyB,QAAQ,GAAGkW,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAA1B;AACA3yB,UAAAA,UAAU,GAAG3lF,IAAI,CAAC2lF,UAAD,CAAjB;;AACA2yB,UAAAA,SAAS,GAAG,mBAAShxG,GAAT,EAAc;AAAE,mBAAO2wG,QAAQ,CAACic,QAAQ,CAAC5sH,GAAD,CAAT,EAAgBA,GAAhB,EAAqB4sH,QAArB,CAAf;AAAgD,WAA5E;AACD;;AACD,YAAI3uH,KAAK,GAAG+vH,aAAa,CAAC3vC,UAAD,EAAa2yB,SAAb,EAAwBoB,SAAxB,CAAzB;AACA,eAAOn0G,KAAK,GAAG,CAAC,CAAT,GAAa2uH,QAAQ,CAACjc,QAAQ,GAAGtyB,UAAU,CAACpgF,KAAD,CAAb,GAAuBA,KAAhC,CAArB,GAA8DkjB,SAArE;AACD,OATD;AAUD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8sG,UAAT,CAAoB5b,SAApB,EAA+B;AAC7B,aAAO6b,QAAQ,CAAC,UAASC,KAAT,EAAgB;AAC9B,YAAIvkI,MAAM,GAAGukI,KAAK,CAACvkI,MAAnB;AAAA,YACIqU,KAAK,GAAGrU,MADZ;AAAA,YAEIwkI,MAAM,GAAGnV,aAAa,CAACnwH,SAAd,CAAwBulI,IAFrC;;AAIA,YAAIhc,SAAJ,EAAe;AACb8b,UAAAA,KAAK,CAACl+H,OAAN;AACD;;AACD,eAAOgO,KAAK,EAAZ,EAAgB;AACd,cAAIsyG,IAAI,GAAG4d,KAAK,CAAClwH,KAAD,CAAhB;;AACA,cAAI,OAAOsyG,IAAP,IAAe,UAAnB,EAA+B;AAC7B,kBAAM,IAAIp/B,SAAJ,CAAc6zB,eAAd,CAAN;AACD;;AACD,cAAIopB,MAAM,IAAI,CAACnB,OAAX,IAAsBqB,WAAW,CAAC/d,IAAD,CAAX,IAAqB,SAA/C,EAA0D;AACxD,gBAAI0c,OAAO,GAAG,IAAIhU,aAAJ,CAAkB,EAAlB,EAAsB,IAAtB,CAAd;AACD;AACF;;AACDh7G,QAAAA,KAAK,GAAGgvH,OAAO,GAAGhvH,KAAH,GAAWrU,MAA1B;;AACA,eAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB2mH,UAAAA,IAAI,GAAG4d,KAAK,CAAClwH,KAAD,CAAZ;AAEA,cAAIswH,QAAQ,GAAGD,WAAW,CAAC/d,IAAD,CAA1B;AAAA,cACIrkH,IAAI,GAAGqiI,QAAQ,IAAI,SAAZ,GAAwBC,OAAO,CAACje,IAAD,CAA/B,GAAwCpvF,SADnD;;AAGA,cAAIj1B,IAAI,IAAIuiI,UAAU,CAACviI,IAAI,CAAC,CAAD,CAAL,CAAlB,IACEA,IAAI,CAAC,CAAD,CAAJ,KAAY+5G,aAAa,GAAGJ,eAAhB,GAAkCE,iBAAlC,GAAsDG,eAAlE,CADF,IAEE,CAACh6G,IAAI,CAAC,CAAD,CAAJ,CAAQtC,MAFX,IAEqBsC,IAAI,CAAC,CAAD,CAAJ,IAAW,CAFpC,EAGM;AACJ+gI,YAAAA,OAAO,GAAGA,OAAO,CAACqB,WAAW,CAACpiI,IAAI,CAAC,CAAD,CAAL,CAAZ,CAAP,CAA8BkG,KAA9B,CAAoC66H,OAApC,EAA6C/gI,IAAI,CAAC,CAAD,CAAjD,CAAV;AACD,WALD,MAKO;AACL+gI,YAAAA,OAAO,GAAI1c,IAAI,CAAC3mH,MAAL,IAAe,CAAf,IAAoB6kI,UAAU,CAACle,IAAD,CAA/B,GACN0c,OAAO,CAACsB,QAAD,CAAP,EADM,GAENtB,OAAO,CAACoB,IAAR,CAAa9d,IAAb,CAFJ;AAGD;AACF;;AACD,eAAO,YAAW;AAChB,cAAIt2G,IAAI,GAAGjN,SAAX;AAAA,cACI3B,KAAK,GAAG4O,IAAI,CAAC,CAAD,CADhB;;AAGA,cAAIgzH,OAAO,IAAIhzH,IAAI,CAACrQ,MAAL,IAAe,CAA1B,IAA+B2C,OAAO,CAAClB,KAAD,CAA1C,EAAmD;AACjD,mBAAO4hI,OAAO,CAACyB,KAAR,CAAcrjI,KAAd,EAAqBA,KAArB,EAAP;AACD;;AACD,cAAI4S,KAAK,GAAG,CAAZ;AAAA,cACIkD,MAAM,GAAGvX,MAAM,GAAGukI,KAAK,CAAClwH,KAAD,CAAL,CAAa7L,KAAb,CAAmB,IAAnB,EAAyB6H,IAAzB,CAAH,GAAoC5O,KADvD;;AAGA,iBAAO,EAAE4S,KAAF,GAAUrU,MAAjB,EAAyB;AACvBuX,YAAAA,MAAM,GAAGgtH,KAAK,CAAClwH,KAAD,CAAL,CAAa/Q,IAAb,CAAkB,IAAlB,EAAwBiU,MAAxB,CAAT;AACD;;AACD,iBAAOA,MAAP;AACD,SAdD;AAeD,OAlDc,CAAf;AAmDD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2sH,YAAT,CAAsBvd,IAAtB,EAA4BsO,OAA5B,EAAqCrO,OAArC,EAA8C6a,QAA9C,EAAwDC,OAAxD,EAAiEqD,aAAjE,EAAgFC,YAAhF,EAA8FC,MAA9F,EAAsGC,GAAtG,EAA2GnB,KAA3G,EAAkH;AAChH,UAAIoB,KAAK,GAAGlQ,OAAO,GAAG5Y,aAAtB;AAAA,UACI6mB,MAAM,GAAGjO,OAAO,GAAGnZ,cADvB;AAAA,UAEIspB,SAAS,GAAGnQ,OAAO,GAAGlZ,kBAF1B;AAAA,UAGI4lB,SAAS,GAAG1M,OAAO,IAAIhZ,eAAe,GAAGC,qBAAtB,CAHvB;AAAA,UAIImpB,MAAM,GAAGpQ,OAAO,GAAG1Y,cAJvB;AAAA,UAKI4mB,IAAI,GAAGiC,SAAS,GAAG7tG,SAAH,GAAe6rG,UAAU,CAACzc,IAAD,CAL7C;;AAOA,eAAS0c,OAAT,GAAmB;AACjB,YAAIrjI,MAAM,GAAGoD,SAAS,CAACpD,MAAvB;AAAA,YACIqQ,IAAI,GAAGpR,KAAK,CAACe,MAAD,CADhB;AAAA,YAEIqU,KAAK,GAAGrU,MAFZ;;AAIA,eAAOqU,KAAK,EAAZ,EAAgB;AACdhE,UAAAA,IAAI,CAACgE,KAAD,CAAJ,GAAcjR,SAAS,CAACiR,KAAD,CAAvB;AACD;;AACD,YAAIstH,SAAJ,EAAe;AACb,cAAI3X,WAAW,GAAGga,SAAS,CAACX,OAAD,CAA3B;AAAA,cACIiC,YAAY,GAAGvb,YAAY,CAAC15G,IAAD,EAAO25G,WAAP,CAD/B;AAED;;AACD,YAAIyX,QAAJ,EAAc;AACZpxH,UAAAA,IAAI,GAAGmxH,WAAW,CAACnxH,IAAD,EAAOoxH,QAAP,EAAiBC,OAAjB,EAA0BC,SAA1B,CAAlB;AACD;;AACD,YAAIoD,aAAJ,EAAmB;AACjB10H,UAAAA,IAAI,GAAG8xH,gBAAgB,CAAC9xH,IAAD,EAAO00H,aAAP,EAAsBC,YAAtB,EAAoCrD,SAApC,CAAvB;AACD;;AACD3hI,QAAAA,MAAM,IAAIslI,YAAV;;AACA,YAAI3D,SAAS,IAAI3hI,MAAM,GAAG+jI,KAA1B,EAAiC;AAC/B,cAAIwB,UAAU,GAAGza,cAAc,CAACz6G,IAAD,EAAO25G,WAAP,CAA/B;AACA,iBAAOia,aAAa,CAClBtd,IADkB,EACZsO,OADY,EACHiP,YADG,EACWb,OAAO,CAACrZ,WADnB,EACgCpD,OADhC,EAElBv2G,IAFkB,EAEZk1H,UAFY,EAEAN,MAFA,EAEQC,GAFR,EAEanB,KAAK,GAAG/jI,MAFrB,CAApB;AAID;;AACD,YAAI6jI,WAAW,GAAGX,MAAM,GAAGtc,OAAH,GAAa,IAArC;AAAA,YACI0c,EAAE,GAAG8B,SAAS,GAAGvB,WAAW,CAACld,IAAD,CAAd,GAAuBA,IADzC;AAGA3mH,QAAAA,MAAM,GAAGqQ,IAAI,CAACrQ,MAAd;;AACA,YAAIilI,MAAJ,EAAY;AACV50H,UAAAA,IAAI,GAAGm1H,OAAO,CAACn1H,IAAD,EAAO40H,MAAP,CAAd;AACD,SAFD,MAEO,IAAII,MAAM,IAAIrlI,MAAM,GAAG,CAAvB,EAA0B;AAC/BqQ,UAAAA,IAAI,CAAChK,OAAL;AACD;;AACD,YAAI8+H,KAAK,IAAID,GAAG,GAAGllI,MAAnB,EAA2B;AACzBqQ,UAAAA,IAAI,CAACrQ,MAAL,GAAcklI,GAAd;AACD;;AACD,YAAI,QAAQ,SAASv4G,IAAjB,IAAyB,gBAAgB02G,OAA7C,EAAsD;AACpDC,UAAAA,EAAE,GAAGH,IAAI,IAAIC,UAAU,CAACE,EAAD,CAAvB;AACD;;AACD,eAAOA,EAAE,CAAC96H,KAAH,CAASq7H,WAAT,EAAsBxzH,IAAtB,CAAP;AACD;;AACD,aAAOgzH,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASoC,cAAT,CAAwB3e,MAAxB,EAAgC4e,UAAhC,EAA4C;AAC1C,aAAO,UAAS7uH,MAAT,EAAiBkwG,QAAjB,EAA2B;AAChC,eAAOiS,YAAY,CAACniH,MAAD,EAASiwG,MAAT,EAAiB4e,UAAU,CAAC3e,QAAD,CAA3B,EAAuC,EAAvC,CAAnB;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4e,mBAAT,CAA6BC,QAA7B,EAAuCC,YAAvC,EAAqD;AACnD,aAAO,UAASpkI,KAAT,EAAgB8qC,KAAhB,EAAuB;AAC5B,YAAIh1B,MAAJ;;AACA,YAAI9V,KAAK,KAAK81B,SAAV,IAAuBgV,KAAK,KAAKhV,SAArC,EAAgD;AAC9C,iBAAOsuG,YAAP;AACD;;AACD,YAAIpkI,KAAK,KAAK81B,SAAd,EAAyB;AACvBhgB,UAAAA,MAAM,GAAG9V,KAAT;AACD;;AACD,YAAI8qC,KAAK,KAAKhV,SAAd,EAAyB;AACvB,cAAIhgB,MAAM,KAAKggB,SAAf,EAA0B;AACxB,mBAAOgV,KAAP;AACD;;AACD,cAAI,OAAO9qC,KAAP,IAAgB,QAAhB,IAA4B,OAAO8qC,KAAP,IAAgB,QAAhD,EAA0D;AACxD9qC,YAAAA,KAAK,GAAG+9H,YAAY,CAAC/9H,KAAD,CAApB;AACA8qC,YAAAA,KAAK,GAAGizF,YAAY,CAACjzF,KAAD,CAApB;AACD,WAHD,MAGO;AACL9qC,YAAAA,KAAK,GAAG89H,YAAY,CAAC99H,KAAD,CAApB;AACA8qC,YAAAA,KAAK,GAAGgzF,YAAY,CAAChzF,KAAD,CAApB;AACD;;AACDh1B,UAAAA,MAAM,GAAGquH,QAAQ,CAACnkI,KAAD,EAAQ8qC,KAAR,CAAjB;AACD;;AACD,eAAOh1B,MAAP;AACD,OAtBD;AAuBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuuH,UAAT,CAAoBC,SAApB,EAA+B;AAC7B,aAAOzB,QAAQ,CAAC,UAASvT,SAAT,EAAoB;AAClCA,QAAAA,SAAS,GAAGpJ,QAAQ,CAACoJ,SAAD,EAAYvH,SAAS,CAACyT,WAAW,EAAZ,CAArB,CAApB;AACA,eAAOY,QAAQ,CAAC,UAASxtH,IAAT,EAAe;AAC7B,cAAIu2G,OAAO,GAAG,IAAd;AACA,iBAAOmf,SAAS,CAAChV,SAAD,EAAY,UAAShK,QAAT,EAAmB;AAC7C,mBAAOv+G,KAAK,CAACu+G,QAAD,EAAWH,OAAX,EAAoBv2G,IAApB,CAAZ;AACD,WAFe,CAAhB;AAGD,SALc,CAAf;AAMD,OARc,CAAf;AASD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS21H,aAAT,CAAuBhmI,MAAvB,EAA+B21G,KAA/B,EAAsC;AACpCA,MAAAA,KAAK,GAAGA,KAAK,KAAKp+E,SAAV,GAAsB,GAAtB,GAA4BioG,YAAY,CAAC7pB,KAAD,CAAhD;AAEA,UAAIswB,WAAW,GAAGtwB,KAAK,CAAC31G,MAAxB;;AACA,UAAIimI,WAAW,GAAG,CAAlB,EAAqB;AACnB,eAAOA,WAAW,GAAGrI,UAAU,CAACjoB,KAAD,EAAQ31G,MAAR,CAAb,GAA+B21G,KAAjD;AACD;;AACD,UAAIp+F,MAAM,GAAGqmH,UAAU,CAACjoB,KAAD,EAAQ4X,UAAU,CAACvtH,MAAM,GAAGkrH,UAAU,CAACvV,KAAD,CAApB,CAAlB,CAAvB;AACA,aAAO2U,UAAU,CAAC3U,KAAD,CAAV,GACH+qB,SAAS,CAACtV,aAAa,CAAC7zG,MAAD,CAAd,EAAwB,CAAxB,EAA2BvX,MAA3B,CAAT,CAA4CgvB,IAA5C,CAAiD,EAAjD,CADG,GAEHzX,MAAM,CAACpY,KAAP,CAAa,CAAb,EAAgBa,MAAhB,CAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkmI,aAAT,CAAuBvf,IAAvB,EAA6BsO,OAA7B,EAAsCrO,OAAtC,EAA+C6a,QAA/C,EAAyD;AACvD,UAAIyB,MAAM,GAAGjO,OAAO,GAAGnZ,cAAvB;AAAA,UACIqnB,IAAI,GAAGC,UAAU,CAACzc,IAAD,CADrB;;AAGA,eAAS0c,OAAT,GAAmB;AACjB,YAAIzB,SAAS,GAAG,CAAC,CAAjB;AAAA,YACIC,UAAU,GAAGz+H,SAAS,CAACpD,MAD3B;AAAA,YAEI+hI,SAAS,GAAG,CAAC,CAFjB;AAAA,YAGIC,UAAU,GAAGP,QAAQ,CAACzhI,MAH1B;AAAA,YAIIqQ,IAAI,GAAGpR,KAAK,CAAC+iI,UAAU,GAAGH,UAAd,CAJhB;AAAA,YAKIyB,EAAE,GAAI,QAAQ,SAAS32G,IAAjB,IAAyB,gBAAgB02G,OAA1C,GAAqDF,IAArD,GAA4Dxc,IALrE;;AAOA,eAAO,EAAEob,SAAF,GAAcC,UAArB,EAAiC;AAC/B3xH,UAAAA,IAAI,CAAC0xH,SAAD,CAAJ,GAAkBN,QAAQ,CAACM,SAAD,CAA1B;AACD;;AACD,eAAOF,UAAU,EAAjB,EAAqB;AACnBxxH,UAAAA,IAAI,CAAC0xH,SAAS,EAAV,CAAJ,GAAoB3+H,SAAS,CAAC,EAAEw+H,SAAH,CAA7B;AACD;;AACD,eAAOp5H,KAAK,CAAC86H,EAAD,EAAKJ,MAAM,GAAGtc,OAAH,GAAa,IAAxB,EAA8Bv2G,IAA9B,CAAZ;AACD;;AACD,aAAOgzH,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8C,WAAT,CAAqB1d,SAArB,EAAgC;AAC9B,aAAO,UAASljH,KAAT,EAAgBwK,GAAhB,EAAqBtK,IAArB,EAA2B;AAChC,YAAIA,IAAI,IAAI,OAAOA,IAAP,IAAe,QAAvB,IAAmCs9H,cAAc,CAACx9H,KAAD,EAAQwK,GAAR,EAAatK,IAAb,CAArD,EAAyE;AACvEsK,UAAAA,GAAG,GAAGtK,IAAI,GAAG8xB,SAAb;AACD,SAH+B,CAIhC;;;AACAhyB,QAAAA,KAAK,GAAG6gI,QAAQ,CAAC7gI,KAAD,CAAhB;;AACA,YAAIwK,GAAG,KAAKwnB,SAAZ,EAAuB;AACrBxnB,UAAAA,GAAG,GAAGxK,KAAN;AACAA,UAAAA,KAAK,GAAG,CAAR;AACD,SAHD,MAGO;AACLwK,UAAAA,GAAG,GAAGq2H,QAAQ,CAACr2H,GAAD,CAAd;AACD;;AACDtK,QAAAA,IAAI,GAAGA,IAAI,KAAK8xB,SAAT,GAAsBhyB,KAAK,GAAGwK,GAAR,GAAc,CAAd,GAAkB,CAAC,CAAzC,GAA8Cq2H,QAAQ,CAAC3gI,IAAD,CAA7D;AACA,eAAOk4H,SAAS,CAACp4H,KAAD,EAAQwK,GAAR,EAAatK,IAAb,EAAmBgjH,SAAnB,CAAhB;AACD,OAdD;AAeD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4d,yBAAT,CAAmCT,QAAnC,EAA6C;AAC3C,aAAO,UAASnkI,KAAT,EAAgB8qC,KAAhB,EAAuB;AAC5B,YAAI,EAAE,OAAO9qC,KAAP,IAAgB,QAAhB,IAA4B,OAAO8qC,KAAP,IAAgB,QAA9C,CAAJ,EAA6D;AAC3D9qC,UAAAA,KAAK,GAAG6kI,QAAQ,CAAC7kI,KAAD,CAAhB;AACA8qC,UAAAA,KAAK,GAAG+5F,QAAQ,CAAC/5F,KAAD,CAAhB;AACD;;AACD,eAAOq5F,QAAQ,CAACnkI,KAAD,EAAQ8qC,KAAR,CAAf;AACD,OAND;AAOD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS03F,aAAT,CAAuBtd,IAAvB,EAA6BsO,OAA7B,EAAsCsR,QAAtC,EAAgDvc,WAAhD,EAA6DpD,OAA7D,EAAsE6a,QAAtE,EAAgFC,OAAhF,EAAyFuD,MAAzF,EAAiGC,GAAjG,EAAsGnB,KAAtG,EAA6G;AAC3G,UAAIyC,OAAO,GAAGvR,OAAO,GAAGhZ,eAAxB;AAAA,UACIspB,UAAU,GAAGiB,OAAO,GAAG9E,OAAH,GAAanqG,SADrC;AAAA,UAEIkvG,eAAe,GAAGD,OAAO,GAAGjvG,SAAH,GAAemqG,OAF5C;AAAA,UAGIgF,WAAW,GAAGF,OAAO,GAAG/E,QAAH,GAAclqG,SAHvC;AAAA,UAIIovG,gBAAgB,GAAGH,OAAO,GAAGjvG,SAAH,GAAekqG,QAJ7C;AAMAxM,MAAAA,OAAO,IAAKuR,OAAO,GAAGrqB,iBAAH,GAAuBC,uBAA1C;AACA6Y,MAAAA,OAAO,IAAI,EAAEuR,OAAO,GAAGpqB,uBAAH,GAA6BD,iBAAtC,CAAX;;AAEA,UAAI,EAAE8Y,OAAO,GAAGjZ,qBAAZ,CAAJ,EAAwC;AACtCiZ,QAAAA,OAAO,IAAI,EAAEnZ,cAAc,GAAGC,kBAAnB,CAAX;AACD;;AACD,UAAI6qB,OAAO,GAAG,CACZjgB,IADY,EACNsO,OADM,EACGrO,OADH,EACY8f,WADZ,EACyBnB,UADzB,EACqCoB,gBADrC,EAEZF,eAFY,EAEKxB,MAFL,EAEaC,GAFb,EAEkBnB,KAFlB,CAAd;AAKA,UAAIxsH,MAAM,GAAGgvH,QAAQ,CAAC/9H,KAAT,CAAe+uB,SAAf,EAA0BqvG,OAA1B,CAAb;;AACA,UAAI/B,UAAU,CAACle,IAAD,CAAd,EAAsB;AACpBkgB,QAAAA,OAAO,CAACtvH,MAAD,EAASqvH,OAAT,CAAP;AACD;;AACDrvH,MAAAA,MAAM,CAACyyG,WAAP,GAAqBA,WAArB;AACA,aAAO8c,eAAe,CAACvvH,MAAD,EAASovG,IAAT,EAAesO,OAAf,CAAtB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8R,WAAT,CAAqBvD,UAArB,EAAiC;AAC/B,UAAI7c,IAAI,GAAGtlH,IAAI,CAACmiI,UAAD,CAAf;AACA,aAAO,UAAS7+H,MAAT,EAAiB+5B,SAAjB,EAA4B;AACjC/5B,QAAAA,MAAM,GAAG2hI,QAAQ,CAAC3hI,MAAD,CAAjB;AACA+5B,QAAAA,SAAS,GAAGA,SAAS,IAAI,IAAb,GAAoB,CAApB,GAAwBsvF,SAAS,CAACmJ,SAAS,CAACz4F,SAAD,CAAV,EAAuB,GAAvB,CAA7C;;AACA,YAAIA,SAAS,IAAIkvF,cAAc,CAACjpH,MAAD,CAA/B,EAAyC;AACvC;AACA;AACA,cAAInE,IAAI,GAAG,CAAC0iB,QAAQ,CAACve,MAAD,CAAR,GAAmB,GAApB,EAAyBomB,KAAzB,CAA+B,GAA/B,CAAX;AAAA,cACItpB,KAAK,GAAGklH,IAAI,CAACnmH,IAAI,CAAC,CAAD,CAAJ,GAAU,GAAV,IAAiB,CAACA,IAAI,CAAC,CAAD,CAAL,GAAWk+B,SAA5B,CAAD,CADhB;AAGAl+B,UAAAA,IAAI,GAAG,CAAC0iB,QAAQ,CAACzhB,KAAD,CAAR,GAAkB,GAAnB,EAAwBspB,KAAxB,CAA8B,GAA9B,CAAP;AACA,iBAAO,EAAEvqB,IAAI,CAAC,CAAD,CAAJ,GAAU,GAAV,IAAiB,CAACA,IAAI,CAAC,CAAD,CAAL,GAAWk+B,SAA5B,CAAF,CAAP;AACD;;AACD,eAAOioF,IAAI,CAAChiH,MAAD,CAAX;AACD,OAbD;AAcD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI+6H,SAAS,GAAG,EAAE7nH,GAAG,IAAK,IAAIkzG,UAAU,CAAC,IAAIlzG,GAAJ,CAAQ,GAAE,CAAC,CAAH,CAAR,CAAD,CAAV,CAA2B,CAA3B,CAAL,IAAuCklG,QAAhD,IAA4D70F,IAA5D,GAAmE,UAASpnB,MAAT,EAAiB;AAClG,aAAO,IAAI+W,GAAJ,CAAQ/W,MAAR,CAAP;AACD,KAFD;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASkmI,aAAT,CAAuBhR,QAAvB,EAAiC;AAC/B,aAAO,UAASn/G,MAAT,EAAiB;AACtB,YAAIw3F,GAAG,GAAGknB,MAAM,CAAC1+G,MAAD,CAAhB;;AACA,YAAIw3F,GAAG,IAAI2P,MAAX,EAAmB;AACjB,iBAAO2M,UAAU,CAAC9zG,MAAD,CAAjB;AACD;;AACD,YAAIw3F,GAAG,IAAIkQ,MAAX,EAAmB;AACjB,iBAAOyM,UAAU,CAACn0G,MAAD,CAAjB;AACD;;AACD,eAAOuyG,WAAW,CAACvyG,MAAD,EAASm/G,QAAQ,CAACn/G,MAAD,CAAjB,CAAlB;AACD,OATD;AAUD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASowH,UAAT,CAAoBtgB,IAApB,EAA0BsO,OAA1B,EAAmCrO,OAAnC,EAA4C6a,QAA5C,EAAsDC,OAAtD,EAA+DuD,MAA/D,EAAuEC,GAAvE,EAA4EnB,KAA5E,EAAmF;AACjF,UAAIqB,SAAS,GAAGnQ,OAAO,GAAGlZ,kBAA1B;;AACA,UAAI,CAACqpB,SAAD,IAAc,OAAOze,IAAP,IAAe,UAAjC,EAA6C;AAC3C,cAAM,IAAIp/B,SAAJ,CAAc6zB,eAAd,CAAN;AACD;;AACD,UAAIp7G,MAAM,GAAGyhI,QAAQ,GAAGA,QAAQ,CAACzhI,MAAZ,GAAqB,CAA1C;;AACA,UAAI,CAACA,MAAL,EAAa;AACXi1H,QAAAA,OAAO,IAAI,EAAE9Y,iBAAiB,GAAGC,uBAAtB,CAAX;AACAqlB,QAAAA,QAAQ,GAAGC,OAAO,GAAGnqG,SAArB;AACD;;AACD2tG,MAAAA,GAAG,GAAGA,GAAG,KAAK3tG,SAAR,GAAoB2tG,GAApB,GAA0BnX,SAAS,CAACoJ,SAAS,CAAC+N,GAAD,CAAV,EAAiB,CAAjB,CAAzC;AACAnB,MAAAA,KAAK,GAAGA,KAAK,KAAKxsG,SAAV,GAAsBwsG,KAAtB,GAA8B5M,SAAS,CAAC4M,KAAD,CAA/C;AACA/jI,MAAAA,MAAM,IAAI0hI,OAAO,GAAGA,OAAO,CAAC1hI,MAAX,GAAoB,CAArC;;AAEA,UAAIi1H,OAAO,GAAG7Y,uBAAd,EAAuC;AACrC,YAAI2oB,aAAa,GAAGtD,QAApB;AAAA,YACIuD,YAAY,GAAGtD,OADnB;AAGAD,QAAAA,QAAQ,GAAGC,OAAO,GAAGnqG,SAArB;AACD;;AACD,UAAIj1B,IAAI,GAAG8iI,SAAS,GAAG7tG,SAAH,GAAeqtG,OAAO,CAACje,IAAD,CAA1C;AAEA,UAAIigB,OAAO,GAAG,CACZjgB,IADY,EACNsO,OADM,EACGrO,OADH,EACY6a,QADZ,EACsBC,OADtB,EAC+BqD,aAD/B,EAC8CC,YAD9C,EAEZC,MAFY,EAEJC,GAFI,EAECnB,KAFD,CAAd;;AAKA,UAAIzhI,IAAJ,EAAU;AACR4kI,QAAAA,SAAS,CAACN,OAAD,EAAUtkI,IAAV,CAAT;AACD;;AACDqkH,MAAAA,IAAI,GAAGigB,OAAO,CAAC,CAAD,CAAd;AACA3R,MAAAA,OAAO,GAAG2R,OAAO,CAAC,CAAD,CAAjB;AACAhgB,MAAAA,OAAO,GAAGggB,OAAO,CAAC,CAAD,CAAjB;AACAnF,MAAAA,QAAQ,GAAGmF,OAAO,CAAC,CAAD,CAAlB;AACAlF,MAAAA,OAAO,GAAGkF,OAAO,CAAC,CAAD,CAAjB;AACA7C,MAAAA,KAAK,GAAG6C,OAAO,CAAC,CAAD,CAAP,GAAaA,OAAO,CAAC,CAAD,CAAP,KAAervG,SAAf,GAChB6tG,SAAS,GAAG,CAAH,GAAOze,IAAI,CAAC3mH,MADL,GAEjB+tH,SAAS,CAAC6Y,OAAO,CAAC,CAAD,CAAP,GAAa5mI,MAAd,EAAsB,CAAtB,CAFb;;AAIA,UAAI,CAAC+jI,KAAD,IAAU9O,OAAO,IAAIhZ,eAAe,GAAGC,qBAAtB,CAArB,EAAmE;AACjE+Y,QAAAA,OAAO,IAAI,EAAEhZ,eAAe,GAAGC,qBAApB,CAAX;AACD;;AACD,UAAI,CAAC+Y,OAAD,IAAYA,OAAO,IAAInZ,cAA3B,EAA2C;AACzC,YAAIvkG,MAAM,GAAG0rH,UAAU,CAACtc,IAAD,EAAOsO,OAAP,EAAgBrO,OAAhB,CAAvB;AACD,OAFD,MAEO,IAAIqO,OAAO,IAAIhZ,eAAX,IAA8BgZ,OAAO,IAAI/Y,qBAA7C,EAAoE;AACzE3kG,QAAAA,MAAM,GAAGusH,WAAW,CAACnd,IAAD,EAAOsO,OAAP,EAAgB8O,KAAhB,CAApB;AACD,OAFM,MAEA,IAAI,CAAC9O,OAAO,IAAI9Y,iBAAX,IAAgC8Y,OAAO,KAAKnZ,cAAc,GAAGK,iBAAtB,CAAxC,KAAqF,CAACulB,OAAO,CAAC1hI,MAAlG,EAA0G;AAC/GuX,QAAAA,MAAM,GAAG2uH,aAAa,CAACvf,IAAD,EAAOsO,OAAP,EAAgBrO,OAAhB,EAAyB6a,QAAzB,CAAtB;AACD,OAFM,MAEA;AACLlqH,QAAAA,MAAM,GAAG2sH,YAAY,CAAC17H,KAAb,CAAmB+uB,SAAnB,EAA8BqvG,OAA9B,CAAT;AACD;;AACD,UAAI9f,MAAM,GAAGxkH,IAAI,GAAG67H,WAAH,GAAiB0I,OAAlC;AACA,aAAOC,eAAe,CAAChgB,MAAM,CAACvvG,MAAD,EAASqvH,OAAT,CAAP,EAA0BjgB,IAA1B,EAAgCsO,OAAhC,CAAtB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkS,sBAAT,CAAgC9S,QAAhC,EAA0CsG,QAA1C,EAAoDvkH,GAApD,EAAyDS,MAAzD,EAAiE;AAC/D,UAAIw9G,QAAQ,KAAK98F,SAAb,IACC28F,EAAE,CAACG,QAAD,EAAWxI,WAAW,CAACz1G,GAAD,CAAtB,CAAF,IAAkC,CAACyN,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,CADxC,EAC2E;AACzE,eAAOukH,QAAP;AACD;;AACD,aAAOtG,QAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+S,mBAAT,CAA6B/S,QAA7B,EAAuCsG,QAAvC,EAAiDvkH,GAAjD,EAAsDS,MAAtD,EAA8DzD,MAA9D,EAAsEshE,KAAtE,EAA6E;AAC3E,UAAI86C,QAAQ,CAAC6E,QAAD,CAAR,IAAsB7E,QAAQ,CAACmL,QAAD,CAAlC,EAA8C;AAC5C;AACAjmD,QAAAA,KAAK,CAACp+D,GAAN,CAAUqkH,QAAV,EAAoBtG,QAApB;AACA8H,QAAAA,SAAS,CAAC9H,QAAD,EAAWsG,QAAX,EAAqBpjG,SAArB,EAAgC6vG,mBAAhC,EAAqD1yD,KAArD,CAAT;AACAA,QAAAA,KAAK,CAAC,QAAD,CAAL,CAAgBimD,QAAhB;AACD;;AACD,aAAOtG,QAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgT,eAAT,CAAyB5lI,KAAzB,EAAgC;AAC9B,aAAOm7H,aAAa,CAACn7H,KAAD,CAAb,GAAuB81B,SAAvB,GAAmC91B,KAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu4H,WAAT,CAAqBh7H,KAArB,EAA4ButC,KAA5B,EAAmC0oF,OAAnC,EAA4CC,UAA5C,EAAwDsE,SAAxD,EAAmE9kD,KAAnE,EAA0E;AACxE,UAAI4yD,SAAS,GAAGrS,OAAO,GAAGrZ,oBAA1B;AAAA,UACIiV,SAAS,GAAG7xH,KAAK,CAACgB,MADtB;AAAA,UAEI24H,SAAS,GAAGpsF,KAAK,CAACvsC,MAFtB;;AAIA,UAAI6wH,SAAS,IAAI8H,SAAb,IAA0B,EAAE2O,SAAS,IAAI3O,SAAS,GAAG9H,SAA3B,CAA9B,EAAqE;AACnE,eAAO,KAAP;AACD,OAPuE,CAQxE;;;AACA,UAAI0W,UAAU,GAAG7yD,KAAK,CAAC/9D,GAAN,CAAU3X,KAAV,CAAjB;AACA,UAAIwoI,UAAU,GAAG9yD,KAAK,CAAC/9D,GAAN,CAAU41B,KAAV,CAAjB;;AACA,UAAIg7F,UAAU,IAAIC,UAAlB,EAA8B;AAC5B,eAAOD,UAAU,IAAIh7F,KAAd,IAAuBi7F,UAAU,IAAIxoI,KAA5C;AACD;;AACD,UAAIqV,KAAK,GAAG,CAAC,CAAb;AAAA,UACIkD,MAAM,GAAG,IADb;AAAA,UAEIwhH,IAAI,GAAI9D,OAAO,GAAGpZ,sBAAX,GAAqC,IAAI6W,QAAJ,EAArC,GAAoDn7F,SAF/D;AAIAm9C,MAAAA,KAAK,CAACp+D,GAAN,CAAUtX,KAAV,EAAiButC,KAAjB;AACAmoC,MAAAA,KAAK,CAACp+D,GAAN,CAAUi2B,KAAV,EAAiBvtC,KAAjB,EAnBwE,CAqBxE;;AACA,aAAO,EAAEqV,KAAF,GAAUw8G,SAAjB,EAA4B;AAC1B,YAAI4W,QAAQ,GAAGzoI,KAAK,CAACqV,KAAD,CAApB;AAAA,YACIqzH,QAAQ,GAAGn7F,KAAK,CAACl4B,KAAD,CADpB;;AAGA,YAAI6gH,UAAJ,EAAgB;AACd,cAAIyS,QAAQ,GAAGL,SAAS,GACpBpS,UAAU,CAACwS,QAAD,EAAWD,QAAX,EAAqBpzH,KAArB,EAA4Bk4B,KAA5B,EAAmCvtC,KAAnC,EAA0C01E,KAA1C,CADU,GAEpBwgD,UAAU,CAACuS,QAAD,EAAWC,QAAX,EAAqBrzH,KAArB,EAA4BrV,KAA5B,EAAmCutC,KAAnC,EAA0CmoC,KAA1C,CAFd;AAGD;;AACD,YAAIizD,QAAQ,KAAKpwG,SAAjB,EAA4B;AAC1B,cAAIowG,QAAJ,EAAc;AACZ;AACD;;AACDpwH,UAAAA,MAAM,GAAG,KAAT;AACA;AACD,SAfyB,CAgB1B;;;AACA,YAAIwhH,IAAJ,EAAU;AACR,cAAI,CAAC/Q,SAAS,CAACz7E,KAAD,EAAQ,UAASm7F,QAAT,EAAmB9O,QAAnB,EAA6B;AAC7C,gBAAI,CAAClP,QAAQ,CAACqP,IAAD,EAAOH,QAAP,CAAT,KACC6O,QAAQ,KAAKC,QAAb,IAAyBlO,SAAS,CAACiO,QAAD,EAAWC,QAAX,EAAqBzS,OAArB,EAA8BC,UAA9B,EAA0CxgD,KAA1C,CADnC,CAAJ,EAC0F;AACxF,qBAAOqkD,IAAI,CAAC71H,IAAL,CAAU01H,QAAV,CAAP;AACD;AACF,WALS,CAAd,EAKQ;AACNrhH,YAAAA,MAAM,GAAG,KAAT;AACA;AACD;AACF,SAVD,MAUO,IAAI,EACLkwH,QAAQ,KAAKC,QAAb,IACElO,SAAS,CAACiO,QAAD,EAAWC,QAAX,EAAqBzS,OAArB,EAA8BC,UAA9B,EAA0CxgD,KAA1C,CAFN,CAAJ,EAGA;AACLn9D,UAAAA,MAAM,GAAG,KAAT;AACA;AACD;AACF;;AACDm9D,MAAAA,KAAK,CAAC,QAAD,CAAL,CAAgB11E,KAAhB;AACA01E,MAAAA,KAAK,CAAC,QAAD,CAAL,CAAgBnoC,KAAhB;AACA,aAAOh1B,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0iH,UAAT,CAAoBpjH,MAApB,EAA4B01B,KAA5B,EAAmC8hE,GAAnC,EAAwC4mB,OAAxC,EAAiDC,UAAjD,EAA6DsE,SAA7D,EAAwE9kD,KAAxE,EAA+E;AAC7E,cAAQ25B,GAAR;AACE,aAAKyQ,WAAL;AACE,cAAKjoG,MAAM,CAACihF,UAAP,IAAqBvrD,KAAK,CAACurD,UAA5B,IACCjhF,MAAM,CAACgqH,UAAP,IAAqBt0F,KAAK,CAACs0F,UADhC,EAC6C;AAC3C,mBAAO,KAAP;AACD;;AACDhqH,UAAAA,MAAM,GAAGA,MAAM,CAACxB,MAAhB;AACAk3B,UAAAA,KAAK,GAAGA,KAAK,CAACl3B,MAAd;;AAEF,aAAKwpG,cAAL;AACE,cAAKhoG,MAAM,CAACihF,UAAP,IAAqBvrD,KAAK,CAACurD,UAA5B,IACA,CAAC0hC,SAAS,CAAC,IAAIz9B,UAAJ,CAAellF,MAAf,CAAD,EAAyB,IAAIklF,UAAJ,CAAexvD,KAAf,CAAzB,CADd,EAC+D;AAC7D,mBAAO,KAAP;AACD;;AACD,iBAAO,IAAP;;AAEF,aAAKmxE,OAAL;AACA,aAAKC,OAAL;AACA,aAAKM,SAAL;AACE;AACA;AACA,iBAAOiW,EAAE,CAAC,CAACr9G,MAAF,EAAU,CAAC01B,KAAX,CAAT;;AAEF,aAAKsxE,QAAL;AACE,iBAAOhnG,MAAM,CAACvL,IAAP,IAAeihC,KAAK,CAACjhC,IAArB,IAA6BuL,MAAM,CAAC4hF,OAAP,IAAkBlsD,KAAK,CAACksD,OAA5D;;AAEF,aAAK6lB,SAAL;AACA,aAAKE,SAAL;AACE;AACA;AACA;AACA,iBAAO3nG,MAAM,IAAK01B,KAAK,GAAG,EAA1B;;AAEF,aAAKyxE,MAAL;AACE,cAAIttF,OAAO,GAAGi6F,UAAd;;AAEF,aAAKpM,MAAL;AACE,cAAI+oB,SAAS,GAAGrS,OAAO,GAAGrZ,oBAA1B;AACAlrF,UAAAA,OAAO,KAAKA,OAAO,GAAGq6F,UAAf,CAAP;;AAEA,cAAIl0G,MAAM,CAACD,IAAP,IAAe21B,KAAK,CAAC31B,IAArB,IAA6B,CAAC0wH,SAAlC,EAA6C;AAC3C,mBAAO,KAAP;AACD,WANH,CAOE;;;AACA,cAAIxR,OAAO,GAAGphD,KAAK,CAAC/9D,GAAN,CAAUE,MAAV,CAAd;;AACA,cAAIi/G,OAAJ,EAAa;AACX,mBAAOA,OAAO,IAAIvpF,KAAlB;AACD;;AACD0oF,UAAAA,OAAO,IAAIpZ,sBAAX,CAZF,CAcE;;AACAnnC,UAAAA,KAAK,CAACp+D,GAAN,CAAUO,MAAV,EAAkB01B,KAAlB;AACA,cAAIh1B,MAAM,GAAGyiH,WAAW,CAACtpG,OAAO,CAAC7Z,MAAD,CAAR,EAAkB6Z,OAAO,CAAC6b,KAAD,CAAzB,EAAkC0oF,OAAlC,EAA2CC,UAA3C,EAAuDsE,SAAvD,EAAkE9kD,KAAlE,CAAxB;AACAA,UAAAA,KAAK,CAAC,QAAD,CAAL,CAAgB79D,MAAhB;AACA,iBAAOU,MAAP;;AAEF,aAAKknG,SAAL;AACE,cAAIuQ,aAAJ,EAAmB;AACjB,mBAAOA,aAAa,CAAC1rH,IAAd,CAAmBuT,MAAnB,KAA8Bm4G,aAAa,CAAC1rH,IAAd,CAAmBipC,KAAnB,CAArC;AACD;;AA3DL;;AA6DA,aAAO,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+tF,YAAT,CAAsBzjH,MAAtB,EAA8B01B,KAA9B,EAAqC0oF,OAArC,EAA8CC,UAA9C,EAA0DsE,SAA1D,EAAqE9kD,KAArE,EAA4E;AAC1E,UAAI4yD,SAAS,GAAGrS,OAAO,GAAGrZ,oBAA1B;AAAA,UACIgsB,QAAQ,GAAG1R,UAAU,CAACr/G,MAAD,CADzB;AAAA,UAEIgxH,SAAS,GAAGD,QAAQ,CAAC5nI,MAFzB;AAAA,UAGI8nI,QAAQ,GAAG5R,UAAU,CAAC3pF,KAAD,CAHzB;AAAA,UAIIosF,SAAS,GAAGmP,QAAQ,CAAC9nI,MAJzB;;AAMA,UAAI6nI,SAAS,IAAIlP,SAAb,IAA0B,CAAC2O,SAA/B,EAA0C;AACxC,eAAO,KAAP;AACD;;AACD,UAAIjzH,KAAK,GAAGwzH,SAAZ;;AACA,aAAOxzH,KAAK,EAAZ,EAAgB;AACd,YAAI+B,GAAG,GAAGwxH,QAAQ,CAACvzH,KAAD,CAAlB;;AACA,YAAI,EAAEizH,SAAS,GAAGlxH,GAAG,IAAIm2B,KAAV,GAAkB1oB,cAAc,CAACvgB,IAAf,CAAoBipC,KAApB,EAA2Bn2B,GAA3B,CAA7B,CAAJ,EAAmE;AACjE,iBAAO,KAAP;AACD;AACF,OAhByE,CAiB1E;;;AACA,UAAI2xH,UAAU,GAAGrzD,KAAK,CAAC/9D,GAAN,CAAUE,MAAV,CAAjB;AACA,UAAI2wH,UAAU,GAAG9yD,KAAK,CAAC/9D,GAAN,CAAU41B,KAAV,CAAjB;;AACA,UAAIw7F,UAAU,IAAIP,UAAlB,EAA8B;AAC5B,eAAOO,UAAU,IAAIx7F,KAAd,IAAuBi7F,UAAU,IAAI3wH,MAA5C;AACD;;AACD,UAAIU,MAAM,GAAG,IAAb;AACAm9D,MAAAA,KAAK,CAACp+D,GAAN,CAAUO,MAAV,EAAkB01B,KAAlB;AACAmoC,MAAAA,KAAK,CAACp+D,GAAN,CAAUi2B,KAAV,EAAiB11B,MAAjB;AAEA,UAAImxH,QAAQ,GAAGV,SAAf;;AACA,aAAO,EAAEjzH,KAAF,GAAUwzH,SAAjB,EAA4B;AAC1BzxH,QAAAA,GAAG,GAAGwxH,QAAQ,CAACvzH,KAAD,CAAd;AACA,YAAIggH,QAAQ,GAAGx9G,MAAM,CAACT,GAAD,CAArB;AAAA,YACIsxH,QAAQ,GAAGn7F,KAAK,CAACn2B,GAAD,CADpB;;AAGA,YAAI8+G,UAAJ,EAAgB;AACd,cAAIyS,QAAQ,GAAGL,SAAS,GACpBpS,UAAU,CAACwS,QAAD,EAAWrT,QAAX,EAAqBj+G,GAArB,EAA0Bm2B,KAA1B,EAAiC11B,MAAjC,EAAyC69D,KAAzC,CADU,GAEpBwgD,UAAU,CAACb,QAAD,EAAWqT,QAAX,EAAqBtxH,GAArB,EAA0BS,MAA1B,EAAkC01B,KAAlC,EAAyCmoC,KAAzC,CAFd;AAGD,SATyB,CAU1B;;;AACA,YAAI,EAAEizD,QAAQ,KAAKpwG,SAAb,GACG88F,QAAQ,KAAKqT,QAAb,IAAyBlO,SAAS,CAACnF,QAAD,EAAWqT,QAAX,EAAqBzS,OAArB,EAA8BC,UAA9B,EAA0CxgD,KAA1C,CADrC,GAEEizD,QAFJ,CAAJ,EAGO;AACLpwH,UAAAA,MAAM,GAAG,KAAT;AACA;AACD;;AACDywH,QAAAA,QAAQ,KAAKA,QAAQ,GAAG5xH,GAAG,IAAI,aAAvB,CAAR;AACD;;AACD,UAAImB,MAAM,IAAI,CAACywH,QAAf,EAAyB;AACvB,YAAIC,OAAO,GAAGpxH,MAAM,CAACJ,WAArB;AAAA,YACIyxH,OAAO,GAAG37F,KAAK,CAAC91B,WADpB,CADuB,CAIvB;;AACA,YAAIwxH,OAAO,IAAIC,OAAX,IACC,iBAAiBrxH,MAAjB,IAA2B,iBAAiB01B,KAD7C,IAEA,EAAE,OAAO07F,OAAP,IAAkB,UAAlB,IAAgCA,OAAO,YAAYA,OAAnD,IACA,OAAOC,OAAP,IAAkB,UADlB,IACgCA,OAAO,YAAYA,OADrD,CAFJ,EAGmE;AACjE3wH,UAAAA,MAAM,GAAG,KAAT;AACD;AACF;;AACDm9D,MAAAA,KAAK,CAAC,QAAD,CAAL,CAAgB79D,MAAhB;AACA69D,MAAAA,KAAK,CAAC,QAAD,CAAL,CAAgBnoC,KAAhB;AACA,aAAOh1B,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+sH,QAAT,CAAkB3d,IAAlB,EAAwB;AACtB,aAAOmX,WAAW,CAACC,QAAQ,CAACpX,IAAD,EAAOpvF,SAAP,EAAkB4wG,OAAlB,CAAT,EAAqCxhB,IAAI,GAAG,EAA5C,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuP,UAAT,CAAoBr/G,MAApB,EAA4B;AAC1B,aAAOohH,cAAc,CAACphH,MAAD,EAAS/H,IAAT,EAAe0zH,UAAf,CAArB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASvM,YAAT,CAAsBp/G,MAAtB,EAA8B;AAC5B,aAAOohH,cAAc,CAACphH,MAAD,EAAS89G,MAAT,EAAiB8N,YAAjB,CAArB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAImC,OAAO,GAAG,CAACrW,OAAD,GAAWrmG,IAAX,GAAkB,UAASy+F,IAAT,EAAe;AAC7C,aAAO4H,OAAO,CAAC53G,GAAR,CAAYgwG,IAAZ,CAAP;AACD,KAFD;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS+d,WAAT,CAAqB/d,IAArB,EAA2B;AACzB,UAAIpvG,MAAM,GAAIovG,IAAI,CAACr7G,IAAL,GAAY,EAA1B;AAAA,UACItM,KAAK,GAAGwvH,SAAS,CAACj3G,MAAD,CADrB;AAAA,UAEIvX,MAAM,GAAG6jB,cAAc,CAACvgB,IAAf,CAAoBkrH,SAApB,EAA+Bj3G,MAA/B,IAAyCvY,KAAK,CAACgB,MAA/C,GAAwD,CAFrE;;AAIA,aAAOA,MAAM,EAAb,EAAiB;AACf,YAAIsC,IAAI,GAAGtD,KAAK,CAACgB,MAAD,CAAhB;AAAA,YACIooI,SAAS,GAAG9lI,IAAI,CAACqkH,IADrB;;AAEA,YAAIyhB,SAAS,IAAI,IAAb,IAAqBA,SAAS,IAAIzhB,IAAtC,EAA4C;AAC1C,iBAAOrkH,IAAI,CAACgJ,IAAZ;AACD;AACF;;AACD,aAAOiM,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASysH,SAAT,CAAmBrd,IAAnB,EAAyB;AACvB,UAAI9vG,MAAM,GAAGgN,cAAc,CAACvgB,IAAf,CAAoB4rH,MAApB,EAA4B,aAA5B,IAA6CA,MAA7C,GAAsDvI,IAAnE;AACA,aAAO9vG,MAAM,CAACmzG,WAAd;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASiT,WAAT,GAAuB;AACrB,UAAI1lH,MAAM,GAAG23G,MAAM,CAACnI,QAAP,IAAmBA,QAAhC;AACAxvG,MAAAA,MAAM,GAAGA,MAAM,KAAKwvG,QAAX,GAAsBoU,YAAtB,GAAqC5jH,MAA9C;AACA,aAAOnU,SAAS,CAACpD,MAAV,GAAmBuX,MAAM,CAACnU,SAAS,CAAC,CAAD,CAAV,EAAeA,SAAS,CAAC,CAAD,CAAxB,CAAzB,GAAwDmU,MAA/D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+6G,UAAT,CAAoBlzH,GAApB,EAAyBgX,GAAzB,EAA8B;AAC5B,UAAI9T,IAAI,GAAGlD,GAAG,CAACuR,QAAf;AACA,aAAO03H,SAAS,CAACjyH,GAAD,CAAT,GACH9T,IAAI,CAAC,OAAO8T,GAAP,IAAc,QAAd,GAAyB,QAAzB,GAAoC,MAArC,CADD,GAEH9T,IAAI,CAAClD,GAFT;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS08H,YAAT,CAAsBjlH,MAAtB,EAA8B;AAC5B,UAAIU,MAAM,GAAGzI,IAAI,CAAC+H,MAAD,CAAjB;AAAA,UACI7W,MAAM,GAAGuX,MAAM,CAACvX,MADpB;;AAGA,aAAOA,MAAM,EAAb,EAAiB;AACf,YAAIoW,GAAG,GAAGmB,MAAM,CAACvX,MAAD,CAAhB;AAAA,YACIyB,KAAK,GAAGoV,MAAM,CAACT,GAAD,CADlB;AAGAmB,QAAAA,MAAM,CAACvX,MAAD,CAAN,GAAiB,CAACoW,GAAD,EAAM3U,KAAN,EAAaw6H,kBAAkB,CAACx6H,KAAD,CAA/B,CAAjB;AACD;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS41G,SAAT,CAAmBt2G,MAAnB,EAA2BT,GAA3B,EAAgC;AAC9B,UAAI3U,KAAK,GAAG4oH,QAAQ,CAACxzG,MAAD,EAAST,GAAT,CAApB;AACA,aAAOwkH,YAAY,CAACn5H,KAAD,CAAZ,GAAsBA,KAAtB,GAA8B81B,SAArC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6gG,SAAT,CAAmB32H,KAAnB,EAA0B;AACxB,UAAI6mI,KAAK,GAAGzkH,cAAc,CAACvgB,IAAf,CAAoB7B,KAApB,EAA2BwrH,cAA3B,CAAZ;AAAA,UACI5e,GAAG,GAAG5sG,KAAK,CAACwrH,cAAD,CADf;;AAGA,UAAI;AACFxrH,QAAAA,KAAK,CAACwrH,cAAD,CAAL,GAAwB11F,SAAxB;AACA,YAAIgxG,QAAQ,GAAG,IAAf;AACD,OAHD,CAGE,OAAO58H,CAAP,EAAU,CAAE;;AAEd,UAAI4L,MAAM,GAAG60G,oBAAoB,CAAC9oH,IAArB,CAA0B7B,KAA1B,CAAb;;AACA,UAAI8mI,QAAJ,EAAc;AACZ,YAAID,KAAJ,EAAW;AACT7mI,UAAAA,KAAK,CAACwrH,cAAD,CAAL,GAAwB5e,GAAxB;AACD,SAFD,MAEO;AACL,iBAAO5sG,KAAK,CAACwrH,cAAD,CAAZ;AACD;AACF;;AACD,aAAO11G,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIirH,UAAU,GAAG,CAAC/U,gBAAD,GAAoB+a,SAApB,GAAgC,UAAS3xH,MAAT,EAAiB;AAChE,UAAIA,MAAM,IAAI,IAAd,EAAoB;AAClB,eAAO,EAAP;AACD;;AACDA,MAAAA,MAAM,GAAG0L,MAAM,CAAC1L,MAAD,CAAf;AACA,aAAOwwG,WAAW,CAACoG,gBAAgB,CAAC52G,MAAD,CAAjB,EAA2B,UAAS0nB,MAAT,EAAiB;AAC5D,eAAOsuF,oBAAoB,CAACvpH,IAArB,CAA0BuT,MAA1B,EAAkC0nB,MAAlC,CAAP;AACD,OAFiB,CAAlB;AAGD,KARD;AAUA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIkkG,YAAY,GAAG,CAAChV,gBAAD,GAAoB+a,SAApB,GAAgC,UAAS3xH,MAAT,EAAiB;AAClE,UAAIU,MAAM,GAAG,EAAb;;AACA,aAAOV,MAAP,EAAe;AACb+wG,QAAAA,SAAS,CAACrwG,MAAD,EAASirH,UAAU,CAAC3rH,MAAD,CAAnB,CAAT;AACAA,QAAAA,MAAM,GAAG61G,YAAY,CAAC71G,MAAD,CAArB;AACD;;AACD,aAAOU,MAAP;AACD,KAPD;AASA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIg+G,MAAM,GAAG4C,UAAb,CApjJiD,CAsjJjD;;AACA,QAAKruE,QAAQ,IAAIyrE,MAAM,CAAC,IAAIzrE,QAAJ,CAAa,IAAIF,WAAJ,CAAgB,CAAhB,CAAb,CAAD,CAAN,IAA4Ck1D,WAAzD,IACCtoG,GAAG,IAAI++G,MAAM,CAAC,IAAI/+G,GAAJ,EAAD,CAAN,IAAmBwnG,MAD3B,IAECxmF,OAAO,IAAI+9F,MAAM,CAAC/9F,OAAO,CAACC,OAAR,EAAD,CAAN,IAA6B2mF,UAFzC,IAGCvmG,GAAG,IAAI09G,MAAM,CAAC,IAAI19G,GAAJ,EAAD,CAAN,IAAmB0mG,MAH3B,IAIC8P,OAAO,IAAIkH,MAAM,CAAC,IAAIlH,OAAJ,EAAD,CAAN,IAAuB1P,UAJvC,EAIoD;AAClD4W,MAAAA,MAAM,GAAG,gBAAS9zH,KAAT,EAAgB;AACvB,YAAI8V,MAAM,GAAG4gH,UAAU,CAAC12H,KAAD,CAAvB;AAAA,YACI0hI,IAAI,GAAG5rH,MAAM,IAAI4mG,SAAV,GAAsB18G,KAAK,CAACgV,WAA5B,GAA0C8gB,SADrD;AAAA,YAEIkxG,UAAU,GAAGtF,IAAI,GAAGzU,QAAQ,CAACyU,IAAD,CAAX,GAAoB,EAFzC;;AAIA,YAAIsF,UAAJ,EAAgB;AACd,kBAAQA,UAAR;AACE,iBAAKha,kBAAL;AAAyB,qBAAO3P,WAAP;;AACzB,iBAAK6P,aAAL;AAAoB,qBAAO3Q,MAAP;;AACpB,iBAAK4Q,iBAAL;AAAwB,qBAAOxQ,UAAP;;AACxB,iBAAKyQ,aAAL;AAAoB,qBAAOtQ,MAAP;;AACpB,iBAAKuQ,iBAAL;AAAwB,qBAAOnQ,UAAP;AAL1B;AAOD;;AACD,eAAOpnG,MAAP;AACD,OAfD;AAgBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu5G,OAAT,CAAiBvrH,KAAjB,EAAwBwK,GAAxB,EAA6B24H,UAA7B,EAAyC;AACvC,UAAIr0H,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAG0oI,UAAU,CAAC1oI,MADxB;;AAGA,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIsC,IAAI,GAAGomI,UAAU,CAACr0H,KAAD,CAArB;AAAA,YACIuC,IAAI,GAAGtU,IAAI,CAACsU,IADhB;;AAGA,gBAAQtU,IAAI,CAAC6J,IAAb;AACE,eAAK,MAAL;AAAkB5G,YAAAA,KAAK,IAAIqR,IAAT;AAAe;;AACjC,eAAK,WAAL;AAAkB7G,YAAAA,GAAG,IAAI6G,IAAP;AAAa;;AAC/B,eAAK,MAAL;AAAkB7G,YAAAA,GAAG,GAAGi+G,SAAS,CAACj+G,GAAD,EAAMxK,KAAK,GAAGqR,IAAd,CAAf;AAAoC;;AACtD,eAAK,WAAL;AAAkBrR,YAAAA,KAAK,GAAGwoH,SAAS,CAACxoH,KAAD,EAAQwK,GAAG,GAAG6G,IAAd,CAAjB;AAAsC;AAJ1D;AAMD;;AACD,aAAO;AAAE,iBAASrR,KAAX;AAAkB,eAAOwK;AAAzB,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS44H,cAAT,CAAwBv1H,MAAxB,EAAgC;AAC9B,UAAI8Z,KAAK,GAAG9Z,MAAM,CAAC8Z,KAAP,CAAawzF,aAAb,CAAZ;AACA,aAAOxzF,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAL,CAASnC,KAAT,CAAe41F,cAAf,CAAH,GAAoC,EAAhD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASioB,OAAT,CAAiB/xH,MAAjB,EAAyB7N,IAAzB,EAA+B6/H,OAA/B,EAAwC;AACtC7/H,MAAAA,IAAI,GAAG+uH,QAAQ,CAAC/uH,IAAD,EAAO6N,MAAP,CAAf;AAEA,UAAIxC,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGgJ,IAAI,CAAChJ,MADlB;AAAA,UAEIuX,MAAM,GAAG,KAFb;;AAIA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIoW,GAAG,GAAG4hH,KAAK,CAAChvH,IAAI,CAACqL,KAAD,CAAL,CAAf;;AACA,YAAI,EAAEkD,MAAM,GAAGV,MAAM,IAAI,IAAV,IAAkBgyH,OAAO,CAAChyH,MAAD,EAAST,GAAT,CAApC,CAAJ,EAAwD;AACtD;AACD;;AACDS,QAAAA,MAAM,GAAGA,MAAM,CAACT,GAAD,CAAf;AACD;;AACD,UAAImB,MAAM,IAAI,EAAElD,KAAF,IAAWrU,MAAzB,EAAiC;AAC/B,eAAOuX,MAAP;AACD;;AACDvX,MAAAA,MAAM,GAAG6W,MAAM,IAAI,IAAV,GAAiB,CAAjB,GAAqBA,MAAM,CAAC7W,MAArC;AACA,aAAO,CAAC,CAACA,MAAF,IAAYk7H,QAAQ,CAACl7H,MAAD,CAApB,IAAgC0zH,OAAO,CAACt9G,GAAD,EAAMpW,MAAN,CAAvC,KACJ2C,OAAO,CAACkU,MAAD,CAAP,IAAmBy8G,WAAW,CAACz8G,MAAD,CAD1B,CAAP;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy+G,cAAT,CAAwBt2H,KAAxB,EAA+B;AAC7B,UAAIgB,MAAM,GAAGhB,KAAK,CAACgB,MAAnB;AAAA,UACIuX,MAAM,GAAG,IAAIvY,KAAK,CAACyX,WAAV,CAAsBzW,MAAtB,CADb,CAD6B,CAI7B;;AACA,UAAIA,MAAM,IAAI,OAAOhB,KAAK,CAAC,CAAD,CAAZ,IAAmB,QAA7B,IAAyC6kB,cAAc,CAACvgB,IAAf,CAAoBtE,KAApB,EAA2B,OAA3B,CAA7C,EAAkF;AAChFuY,QAAAA,MAAM,CAAClD,KAAP,GAAerV,KAAK,CAACqV,KAArB;AACAkD,QAAAA,MAAM,CAACnL,KAAP,GAAepN,KAAK,CAACoN,KAArB;AACD;;AACD,aAAOmL,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm+G,eAAT,CAAyB7+G,MAAzB,EAAiC;AAC/B,aAAQ,OAAOA,MAAM,CAACJ,WAAd,IAA6B,UAA7B,IAA2C,CAAC8kH,WAAW,CAAC1kH,MAAD,CAAxD,GACH04G,UAAU,CAAC7C,YAAY,CAAC71G,MAAD,CAAb,CADP,GAEH,EAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg/G,cAAT,CAAwBh/G,MAAxB,EAAgCw3F,GAAhC,EAAqC8mB,MAArC,EAA6C;AAC3C,UAAIgO,IAAI,GAAGtsH,MAAM,CAACJ,WAAlB;;AACA,cAAQ43F,GAAR;AACE,aAAKwQ,cAAL;AACE,iBAAO8hB,gBAAgB,CAAC9pH,MAAD,CAAvB;;AAEF,aAAK6mG,OAAL;AACA,aAAKC,OAAL;AACE,iBAAO,IAAIwlB,IAAJ,CAAS,CAACtsH,MAAV,CAAP;;AAEF,aAAKioG,WAAL;AACE,iBAAO8hB,aAAa,CAAC/pH,MAAD,EAASs+G,MAAT,CAApB;;AAEF,aAAKpW,UAAL;AAAiB,aAAKC,UAAL;AACjB,aAAKC,OAAL;AAAc,aAAKC,QAAL;AAAe,aAAKC,QAAL;AAC7B,aAAKC,QAAL;AAAe,aAAKC,eAAL;AAAsB,aAAKC,SAAL;AAAgB,aAAKC,SAAL;AACnD,iBAAOod,eAAe,CAAC9lH,MAAD,EAASs+G,MAAT,CAAtB;;AAEF,aAAKnX,MAAL;AACE,iBAAO,IAAImlB,IAAJ,EAAP;;AAEF,aAAKllB,SAAL;AACA,aAAKO,SAAL;AACE,iBAAO,IAAI2kB,IAAJ,CAAStsH,MAAT,CAAP;;AAEF,aAAKynG,SAAL;AACE,iBAAOwiB,WAAW,CAACjqH,MAAD,CAAlB;;AAEF,aAAK0nG,MAAL;AACE,iBAAO,IAAI4kB,IAAJ,EAAP;;AAEF,aAAK1kB,SAAL;AACE,iBAAOuiB,WAAW,CAACnqH,MAAD,CAAlB;AA9BJ;AAgCD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASiyH,iBAAT,CAA2B11H,MAA3B,EAAmC21H,OAAnC,EAA4C;AAC1C,UAAI/oI,MAAM,GAAG+oI,OAAO,CAAC/oI,MAArB;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAOoT,MAAP;AACD;;AACD,UAAIs3C,SAAS,GAAG1qD,MAAM,GAAG,CAAzB;AACA+oI,MAAAA,OAAO,CAACr+E,SAAD,CAAP,GAAqB,CAAC1qD,MAAM,GAAG,CAAT,GAAa,IAAb,GAAoB,EAArB,IAA2B+oI,OAAO,CAACr+E,SAAD,CAAvD;AACAq+E,MAAAA,OAAO,GAAGA,OAAO,CAAC/5G,IAAR,CAAahvB,MAAM,GAAG,CAAT,GAAa,IAAb,GAAoB,GAAjC,CAAV;AACA,aAAOoT,MAAM,CAACga,OAAP,CAAeqzF,aAAf,EAA8B,yBAAyBsoB,OAAzB,GAAmC,QAAjE,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASvR,aAAT,CAAuB/1H,KAAvB,EAA8B;AAC5B,aAAOkB,OAAO,CAAClB,KAAD,CAAP,IAAkB6xH,WAAW,CAAC7xH,KAAD,CAA7B,IACL,CAAC,EAAEqrH,gBAAgB,IAAIrrH,KAApB,IAA6BA,KAAK,CAACqrH,gBAAD,CAApC,CADH;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4G,OAAT,CAAiBjyH,KAAjB,EAAwBzB,MAAxB,EAAgC;AAC9B,UAAImM,IAAI,GAAG,OAAO1K,KAAlB;AACAzB,MAAAA,MAAM,GAAGA,MAAM,IAAI,IAAV,GAAiBg9G,gBAAjB,GAAoCh9G,MAA7C;AAEA,aAAO,CAAC,CAACA,MAAF,KACJmM,IAAI,IAAI,QAAR,IACEA,IAAI,IAAI,QAAR,IAAoBk1G,QAAQ,CAAC32F,IAAT,CAAcjpB,KAAd,CAFlB,KAGAA,KAAK,GAAG,CAAC,CAAT,IAAcA,KAAK,GAAG,CAAR,IAAa,CAA3B,IAAgCA,KAAK,GAAGzB,MAH/C;AAID;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+iI,cAAT,CAAwBthI,KAAxB,EAA+B4S,KAA/B,EAAsCwC,MAAtC,EAA8C;AAC5C,UAAI,CAAC24G,QAAQ,CAAC34G,MAAD,CAAb,EAAuB;AACrB,eAAO,KAAP;AACD;;AACD,UAAI1K,IAAI,GAAG,OAAOkI,KAAlB;;AACA,UAAIlI,IAAI,IAAI,QAAR,GACK0vH,WAAW,CAAChlH,MAAD,CAAX,IAAuB68G,OAAO,CAACr/G,KAAD,EAAQwC,MAAM,CAAC7W,MAAf,CADnC,GAEKmM,IAAI,IAAI,QAAR,IAAoBkI,KAAK,IAAIwC,MAFtC,EAGM;AACJ,eAAOq9G,EAAE,CAACr9G,MAAM,CAACxC,KAAD,CAAP,EAAgB5S,KAAhB,CAAT;AACD;;AACD,aAAO,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu6H,KAAT,CAAev6H,KAAf,EAAsBoV,MAAtB,EAA8B;AAC5B,UAAIlU,OAAO,CAAClB,KAAD,CAAX,EAAoB;AAClB,eAAO,KAAP;AACD;;AACD,UAAI0K,IAAI,GAAG,OAAO1K,KAAlB;;AACA,UAAI0K,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,QAA5B,IAAwCA,IAAI,IAAI,SAAhD,IACA1K,KAAK,IAAI,IADT,IACiBw1H,QAAQ,CAACx1H,KAAD,CAD7B,EACsC;AACpC,eAAO,IAAP;AACD;;AACD,aAAO0+G,aAAa,CAACz1F,IAAd,CAAmBjpB,KAAnB,KAA6B,CAACy+G,YAAY,CAACx1F,IAAb,CAAkBjpB,KAAlB,CAA9B,IACJoV,MAAM,IAAI,IAAV,IAAkBpV,KAAK,IAAI8gB,MAAM,CAAC1L,MAAD,CADpC;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwxH,SAAT,CAAmB5mI,KAAnB,EAA0B;AACxB,UAAI0K,IAAI,GAAG,OAAO1K,KAAlB;AACA,aAAQ0K,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,QAA5B,IAAwCA,IAAI,IAAI,QAAhD,IAA4DA,IAAI,IAAI,SAArE,GACF1K,KAAK,KAAK,WADR,GAEFA,KAAK,KAAK,IAFf;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASojI,UAAT,CAAoBle,IAApB,EAA0B;AACxB,UAAIge,QAAQ,GAAGD,WAAW,CAAC/d,IAAD,CAA1B;AAAA,UACIp6E,KAAK,GAAG2iF,MAAM,CAACyV,QAAD,CADlB;;AAGA,UAAI,OAAOp4F,KAAP,IAAgB,UAAhB,IAA8B,EAAEo4F,QAAQ,IAAIvV,WAAW,CAAClwH,SAA1B,CAAlC,EAAwE;AACtE,eAAO,KAAP;AACD;;AACD,UAAIynH,IAAI,KAAKp6E,KAAb,EAAoB;AAClB,eAAO,IAAP;AACD;;AACD,UAAIjqC,IAAI,GAAGsiI,OAAO,CAACr4F,KAAD,CAAlB;AACA,aAAO,CAAC,CAACjqC,IAAF,IAAUqkH,IAAI,KAAKrkH,IAAI,CAAC,CAAD,CAA9B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu4H,QAAT,CAAkBlU,IAAlB,EAAwB;AACtB,aAAO,CAAC,CAACsF,UAAF,IAAiBA,UAAU,IAAItF,IAAtC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIqiB,UAAU,GAAGld,UAAU,GAAG+L,UAAH,GAAgBoR,SAA3C;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS1N,WAAT,CAAqB95H,KAArB,EAA4B;AAC1B,UAAI0hI,IAAI,GAAG1hI,KAAK,IAAIA,KAAK,CAACgV,WAA1B;AAAA,UACIqB,KAAK,GAAI,OAAOqrH,IAAP,IAAe,UAAf,IAA6BA,IAAI,CAACjkI,SAAnC,IAAiD2sH,WAD7D;AAGA,aAAOpqH,KAAK,KAAKqW,KAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmkH,kBAAT,CAA4Bx6H,KAA5B,EAAmC;AACjC,aAAOA,KAAK,KAAKA,KAAV,IAAmB,CAAC+tH,QAAQ,CAAC/tH,KAAD,CAAnC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs6H,uBAAT,CAAiC3lH,GAAjC,EAAsCukH,QAAtC,EAAgD;AAC9C,aAAO,UAAS9jH,MAAT,EAAiB;AACtB,YAAIA,MAAM,IAAI,IAAd,EAAoB;AAClB,iBAAO,KAAP;AACD;;AACD,eAAOA,MAAM,CAACT,GAAD,CAAN,KAAgBukH,QAAhB,KACJA,QAAQ,KAAKpjG,SAAb,IAA2BnhB,GAAG,IAAImM,MAAM,CAAC1L,MAAD,CADpC,CAAP;AAED,OAND;AAOD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqyH,aAAT,CAAuBviB,IAAvB,EAA6B;AAC3B,UAAIpvG,MAAM,GAAG4xH,OAAO,CAACxiB,IAAD,EAAO,UAASvwG,GAAT,EAAc;AACvC,YAAIszB,KAAK,CAAC9yB,IAAN,KAAe2kG,gBAAnB,EAAqC;AACnC7xE,UAAAA,KAAK,CAACp5B,KAAN;AACD;;AACD,eAAO8F,GAAP;AACD,OALmB,CAApB;AAOA,UAAIszB,KAAK,GAAGnyB,MAAM,CAACmyB,KAAnB;AACA,aAAOnyB,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2vH,SAAT,CAAmB5kI,IAAnB,EAAyB8Q,MAAzB,EAAiC;AAC/B,UAAI6hH,OAAO,GAAG3yH,IAAI,CAAC,CAAD,CAAlB;AAAA,UACI8mI,UAAU,GAAGh2H,MAAM,CAAC,CAAD,CADvB;AAAA,UAEIi2H,UAAU,GAAGpU,OAAO,GAAGmU,UAF3B;AAAA,UAGI5S,QAAQ,GAAG6S,UAAU,IAAIvtB,cAAc,GAAGC,kBAAjB,GAAsCM,aAA1C,CAHzB;AAKA,UAAIitB,OAAO,GACPF,UAAU,IAAI/sB,aAAf,IAAkC4Y,OAAO,IAAIhZ,eAA9C,IACEmtB,UAAU,IAAI/sB,aAAf,IAAkC4Y,OAAO,IAAI3Y,eAA7C,IAAkEh6G,IAAI,CAAC,CAAD,CAAJ,CAAQtC,MAAR,IAAkBoT,MAAM,CAAC,CAAD,CAD3F,IAEEg2H,UAAU,KAAK/sB,aAAa,GAAGC,eAArB,CAAX,IAAsDlpG,MAAM,CAAC,CAAD,CAAN,CAAUpT,MAAV,IAAoBoT,MAAM,CAAC,CAAD,CAAhF,IAAyF6hH,OAAO,IAAIhZ,eAHvG,CAN+B,CAW/B;;AACA,UAAI,EAAEua,QAAQ,IAAI8S,OAAd,CAAJ,EAA4B;AAC1B,eAAOhnI,IAAP;AACD,OAd8B,CAe/B;;;AACA,UAAI8mI,UAAU,GAAGttB,cAAjB,EAAiC;AAC/Bx5G,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAU8Q,MAAM,CAAC,CAAD,CAAhB,CAD+B,CAE/B;;AACAi2H,QAAAA,UAAU,IAAIpU,OAAO,GAAGnZ,cAAV,GAA2B,CAA3B,GAA+BE,qBAA7C;AACD,OApB8B,CAqB/B;;;AACA,UAAIv6G,KAAK,GAAG2R,MAAM,CAAC,CAAD,CAAlB;;AACA,UAAI3R,KAAJ,EAAW;AACT,YAAIggI,QAAQ,GAAGn/H,IAAI,CAAC,CAAD,CAAnB;AACAA,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUm/H,QAAQ,GAAGD,WAAW,CAACC,QAAD,EAAWhgI,KAAX,EAAkB2R,MAAM,CAAC,CAAD,CAAxB,CAAd,GAA6C3R,KAA/D;AACAa,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUm/H,QAAQ,GAAG3W,cAAc,CAACxoH,IAAI,CAAC,CAAD,CAAL,EAAUk5G,WAAV,CAAjB,GAA0CpoG,MAAM,CAAC,CAAD,CAAlE;AACD,OA3B8B,CA4B/B;;;AACA3R,MAAAA,KAAK,GAAG2R,MAAM,CAAC,CAAD,CAAd;;AACA,UAAI3R,KAAJ,EAAW;AACTggI,QAAAA,QAAQ,GAAGn/H,IAAI,CAAC,CAAD,CAAf;AACAA,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUm/H,QAAQ,GAAGU,gBAAgB,CAACV,QAAD,EAAWhgI,KAAX,EAAkB2R,MAAM,CAAC,CAAD,CAAxB,CAAnB,GAAkD3R,KAApE;AACAa,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUm/H,QAAQ,GAAG3W,cAAc,CAACxoH,IAAI,CAAC,CAAD,CAAL,EAAUk5G,WAAV,CAAjB,GAA0CpoG,MAAM,CAAC,CAAD,CAAlE;AACD,OAlC8B,CAmC/B;;;AACA3R,MAAAA,KAAK,GAAG2R,MAAM,CAAC,CAAD,CAAd;;AACA,UAAI3R,KAAJ,EAAW;AACTa,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUb,KAAV;AACD,OAvC8B,CAwC/B;;;AACA,UAAI2nI,UAAU,GAAG/sB,aAAjB,EAAgC;AAC9B/5G,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUA,IAAI,CAAC,CAAD,CAAJ,IAAW,IAAX,GAAkB8Q,MAAM,CAAC,CAAD,CAAxB,GAA8B46G,SAAS,CAAC1rH,IAAI,CAAC,CAAD,CAAL,EAAU8Q,MAAM,CAAC,CAAD,CAAhB,CAAjD;AACD,OA3C8B,CA4C/B;;;AACA,UAAI9Q,IAAI,CAAC,CAAD,CAAJ,IAAW,IAAf,EAAqB;AACnBA,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAU8Q,MAAM,CAAC,CAAD,CAAhB;AACD,OA/C8B,CAgD/B;;;AACA9Q,MAAAA,IAAI,CAAC,CAAD,CAAJ,GAAU8Q,MAAM,CAAC,CAAD,CAAhB;AACA9Q,MAAAA,IAAI,CAAC,CAAD,CAAJ,GAAU+mI,UAAV;AAEA,aAAO/mI,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm5H,YAAT,CAAsB5kH,MAAtB,EAA8B;AAC5B,UAAIU,MAAM,GAAG,EAAb;;AACA,UAAIV,MAAM,IAAI,IAAd,EAAoB;AAClB,aAAK,IAAIT,GAAT,IAAgBmM,MAAM,CAAC1L,MAAD,CAAtB,EAAgC;AAC9BU,UAAAA,MAAM,CAACrU,IAAP,CAAYkT,GAAZ;AACD;AACF;;AACD,aAAOmB,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8gH,cAAT,CAAwB52H,KAAxB,EAA+B;AAC7B,aAAO2qH,oBAAoB,CAAC9oH,IAArB,CAA0B7B,KAA1B,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs8H,QAAT,CAAkBpX,IAAlB,EAAwBphH,KAAxB,EAA+B+C,SAA/B,EAA0C;AACxC/C,MAAAA,KAAK,GAAGwoH,SAAS,CAACxoH,KAAK,KAAKgyB,SAAV,GAAuBovF,IAAI,CAAC3mH,MAAL,GAAc,CAArC,GAA0CuF,KAA3C,EAAkD,CAAlD,CAAjB;AACA,aAAO,YAAW;AAChB,YAAI8K,IAAI,GAAGjN,SAAX;AAAA,YACIiR,KAAK,GAAG,CAAC,CADb;AAAA,YAEIrU,MAAM,GAAG+tH,SAAS,CAAC19G,IAAI,CAACrQ,MAAL,GAAcuF,KAAf,EAAsB,CAAtB,CAFtB;AAAA,YAGIvG,KAAK,GAAGC,KAAK,CAACe,MAAD,CAHjB;;AAKA,eAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvBhB,UAAAA,KAAK,CAACqV,KAAD,CAAL,GAAehE,IAAI,CAAC9K,KAAK,GAAG8O,KAAT,CAAnB;AACD;;AACDA,QAAAA,KAAK,GAAG,CAAC,CAAT;AACA,YAAIk1H,SAAS,GAAGtqI,KAAK,CAACsG,KAAK,GAAG,CAAT,CAArB;;AACA,eAAO,EAAE8O,KAAF,GAAU9O,KAAjB,EAAwB;AACtBgkI,UAAAA,SAAS,CAACl1H,KAAD,CAAT,GAAmBhE,IAAI,CAACgE,KAAD,CAAvB;AACD;;AACDk1H,QAAAA,SAAS,CAAChkI,KAAD,CAAT,GAAmB+C,SAAS,CAACtJ,KAAD,CAA5B;AACA,eAAOwJ,KAAK,CAACm+G,IAAD,EAAO,IAAP,EAAa4iB,SAAb,CAAZ;AACD,OAhBD;AAiBD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS5jH,MAAT,CAAgB9O,MAAhB,EAAwB7N,IAAxB,EAA8B;AAC5B,aAAOA,IAAI,CAAChJ,MAAL,GAAc,CAAd,GAAkB6W,MAAlB,GAA2BihH,OAAO,CAACjhH,MAAD,EAASynH,SAAS,CAACt1H,IAAD,EAAO,CAAP,EAAU,CAAC,CAAX,CAAlB,CAAzC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASw8H,OAAT,CAAiBxmI,KAAjB,EAAwBmG,OAAxB,EAAiC;AAC/B,UAAI0rH,SAAS,GAAG7xH,KAAK,CAACgB,MAAtB;AAAA,UACIA,MAAM,GAAGguH,SAAS,CAAC7oH,OAAO,CAACnF,MAAT,EAAiB6wH,SAAjB,CADtB;AAAA,UAEI2Y,QAAQ,GAAGjZ,SAAS,CAACvxH,KAAD,CAFxB;;AAIA,aAAOgB,MAAM,EAAb,EAAiB;AACf,YAAIqU,KAAK,GAAGlP,OAAO,CAACnF,MAAD,CAAnB;AACAhB,QAAAA,KAAK,CAACgB,MAAD,CAAL,GAAgB0zH,OAAO,CAACr/G,KAAD,EAAQw8G,SAAR,CAAP,GAA4B2Y,QAAQ,CAACn1H,KAAD,CAApC,GAA8CkjB,SAA9D;AACD;;AACD,aAAOv4B,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASu9H,OAAT,CAAiB1lH,MAAjB,EAAyBT,GAAzB,EAA8B;AAC5B,UAAIA,GAAG,KAAK,aAAR,IAAyB,OAAOS,MAAM,CAACT,GAAD,CAAb,KAAuB,UAApD,EAAgE;AAC9D;AACD;;AAED,UAAIA,GAAG,IAAI,WAAX,EAAwB;AACtB;AACD;;AAED,aAAOS,MAAM,CAACT,GAAD,CAAb;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIywH,OAAO,GAAG4C,QAAQ,CAACtL,WAAD,CAAtB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAItrH,UAAU,GAAGy6G,aAAa,IAAI,UAAS3G,IAAT,EAAe2P,IAAf,EAAqB;AACrD,aAAO3pG,IAAI,CAAC9Z,UAAL,CAAgB8zG,IAAhB,EAAsB2P,IAAtB,CAAP;AACD,KAFD;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIwH,WAAW,GAAG2L,QAAQ,CAACrL,eAAD,CAA1B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS0I,eAAT,CAAyBzD,OAAzB,EAAkCqG,SAAlC,EAA6CzU,OAA7C,EAAsD;AACpD,UAAI7hH,MAAM,GAAIs2H,SAAS,GAAG,EAA1B;AACA,aAAO5L,WAAW,CAACuF,OAAD,EAAUyF,iBAAiB,CAAC11H,MAAD,EAASu2H,iBAAiB,CAAChB,cAAc,CAACv1H,MAAD,CAAf,EAAyB6hH,OAAzB,CAA1B,CAA3B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwU,QAAT,CAAkB9iB,IAAlB,EAAwB;AACtB,UAAIvgH,KAAK,GAAG,CAAZ;AAAA,UACIwjI,UAAU,GAAG,CADjB;AAGA,aAAO,YAAW;AAChB,YAAIC,KAAK,GAAG5b,SAAS,EAArB;AAAA,YACI6b,SAAS,GAAGntB,QAAQ,IAAIktB,KAAK,GAAGD,UAAZ,CADxB;AAGAA,QAAAA,UAAU,GAAGC,KAAb;;AACA,YAAIC,SAAS,GAAG,CAAhB,EAAmB;AACjB,cAAI,EAAE1jI,KAAF,IAAWs2G,SAAf,EAA0B;AACxB,mBAAOt5G,SAAS,CAAC,CAAD,CAAhB;AACD;AACF,SAJD,MAIO;AACLgD,UAAAA,KAAK,GAAG,CAAR;AACD;;AACD,eAAOugH,IAAI,CAACn+G,KAAL,CAAW+uB,SAAX,EAAsBn0B,SAAtB,CAAP;AACD,OAbD;AAcD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0wH,WAAT,CAAqB90H,KAArB,EAA4B4X,IAA5B,EAAkC;AAChC,UAAIvC,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,CAACgB,MADnB;AAAA,UAEI0qD,SAAS,GAAG1qD,MAAM,GAAG,CAFzB;AAIA4W,MAAAA,IAAI,GAAGA,IAAI,KAAK2gB,SAAT,GAAqBv3B,MAArB,GAA8B4W,IAArC;;AACA,aAAO,EAAEvC,KAAF,GAAUuC,IAAjB,EAAuB;AACrB,YAAImzH,IAAI,GAAGnW,UAAU,CAACv/G,KAAD,EAAQq2C,SAAR,CAArB;AAAA,YACIjpD,KAAK,GAAGzC,KAAK,CAAC+qI,IAAD,CADjB;AAGA/qI,QAAAA,KAAK,CAAC+qI,IAAD,CAAL,GAAc/qI,KAAK,CAACqV,KAAD,CAAnB;AACArV,QAAAA,KAAK,CAACqV,KAAD,CAAL,GAAe5S,KAAf;AACD;;AACDzC,MAAAA,KAAK,CAACgB,MAAN,GAAe4W,IAAf;AACA,aAAO5X,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIwhI,YAAY,GAAG0I,aAAa,CAAC,UAAS78E,MAAT,EAAiB;AAChD,UAAI90C,MAAM,GAAG,EAAb;;AACA,UAAI80C,MAAM,CAAC57B,UAAP,CAAkB,CAAlB,MAAyB;AAAG;AAAhC,QAAyC;AACvClZ,UAAAA,MAAM,CAACrU,IAAP,CAAY,EAAZ;AACD;;AACDmpD,MAAAA,MAAM,CAACj/B,OAAP,CAAegzF,UAAf,EAA2B,UAASlzF,KAAT,EAAgBvoB,MAAhB,EAAwBqlI,KAAxB,EAA+BC,SAA/B,EAA0C;AACnE1yH,QAAAA,MAAM,CAACrU,IAAP,CAAY8mI,KAAK,GAAGC,SAAS,CAAC78G,OAAV,CAAkB0zF,YAAlB,EAAgC,IAAhC,CAAH,GAA4Cn8G,MAAM,IAAIuoB,KAAvE;AACD,OAFD;AAGA,aAAO3V,MAAP;AACD,KAT+B,CAAhC;AAWA;AACJ;AACA;AACA;AACA;AACA;AACA;;AACI,aAASygH,KAAT,CAAev2H,KAAf,EAAsB;AACpB,UAAI,OAAOA,KAAP,IAAgB,QAAhB,IAA4Bw1H,QAAQ,CAACx1H,KAAD,CAAxC,EAAiD;AAC/C,eAAOA,KAAP;AACD;;AACD,UAAI8V,MAAM,GAAI9V,KAAK,GAAG,EAAtB;AACA,aAAQ8V,MAAM,IAAI,GAAV,IAAkB,IAAI9V,KAAL,IAAe,CAACs7G,QAAlC,GAA8C,IAA9C,GAAqDxlG,MAA5D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm3G,QAAT,CAAkB/H,IAAlB,EAAwB;AACtB,UAAIA,IAAI,IAAI,IAAZ,EAAkB;AAChB,YAAI;AACF,iBAAOoF,YAAY,CAACzoH,IAAb,CAAkBqjH,IAAlB,CAAP;AACD,SAFD,CAEE,OAAOh7G,CAAP,EAAU,CAAE;;AACd,YAAI;AACF,iBAAQg7G,IAAI,GAAG,EAAf;AACD,SAFD,CAEE,OAAOh7G,CAAP,EAAU,CAAE;AACf;;AACD,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg+H,iBAAT,CAA2BZ,OAA3B,EAAoC9T,OAApC,EAA6C;AAC3ChO,MAAAA,SAAS,CAAC3J,SAAD,EAAY,UAAS98G,IAAT,EAAe;AAClC,YAAIiB,KAAK,GAAG,OAAOjB,IAAI,CAAC,CAAD,CAAvB;;AACA,YAAKy0H,OAAO,GAAGz0H,IAAI,CAAC,CAAD,CAAf,IAAuB,CAAC+mH,aAAa,CAACwhB,OAAD,EAAUtnI,KAAV,CAAzC,EAA2D;AACzDsnI,UAAAA,OAAO,CAAC7lI,IAAR,CAAazB,KAAb;AACD;AACF,OALQ,CAAT;AAMA,aAAOsnI,OAAO,CAACjkI,IAAR,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwqH,YAAT,CAAsB+T,OAAtB,EAA+B;AAC7B,UAAIA,OAAO,YAAYjU,WAAvB,EAAoC;AAClC,eAAOiU,OAAO,CAAC9/D,KAAR,EAAP;AACD;;AACD,UAAIhsD,MAAM,GAAG,IAAI83G,aAAJ,CAAkBgU,OAAO,CAAC1T,WAA1B,EAAuC0T,OAAO,CAACxT,SAA/C,CAAb;AACAt4G,MAAAA,MAAM,CAACq4G,WAAP,GAAqBW,SAAS,CAAC8S,OAAO,CAACzT,WAAT,CAA9B;AACAr4G,MAAAA,MAAM,CAACu4G,SAAP,GAAoBuT,OAAO,CAACvT,SAA5B;AACAv4G,MAAAA,MAAM,CAACw4G,UAAP,GAAoBsT,OAAO,CAACtT,UAA5B;AACA,aAAOx4G,MAAP;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmjF,KAAT,CAAe17F,KAAf,EAAsB4X,IAAtB,EAA4BksH,KAA5B,EAAmC;AACjC,UAAKA,KAAK,GAAGC,cAAc,CAAC/jI,KAAD,EAAQ4X,IAAR,EAAcksH,KAAd,CAAjB,GAAwClsH,IAAI,KAAK2gB,SAA3D,EAAuE;AACrE3gB,QAAAA,IAAI,GAAG,CAAP;AACD,OAFD,MAEO;AACLA,QAAAA,IAAI,GAAGm3G,SAAS,CAACoJ,SAAS,CAACvgH,IAAD,CAAV,EAAkB,CAAlB,CAAhB;AACD;;AACD,UAAI5W,MAAM,GAAGhB,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MAAvC;;AACA,UAAI,CAACA,MAAD,IAAW4W,IAAI,GAAG,CAAtB,EAAyB;AACvB,eAAO,EAAP;AACD;;AACD,UAAIvC,KAAK,GAAG,CAAZ;AAAA,UACIizG,QAAQ,GAAG,CADf;AAAA,UAEI/vG,MAAM,GAAGtY,KAAK,CAACsuH,UAAU,CAACvtH,MAAM,GAAG4W,IAAV,CAAX,CAFlB;;AAIA,aAAOvC,KAAK,GAAGrU,MAAf,EAAuB;AACrBuX,QAAAA,MAAM,CAAC+vG,QAAQ,EAAT,CAAN,GAAqBgX,SAAS,CAACt/H,KAAD,EAAQqV,KAAR,EAAgBA,KAAK,IAAIuC,IAAzB,CAA9B;AACD;;AACD,aAAOW,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2yH,OAAT,CAAiBlrI,KAAjB,EAAwB;AACtB,UAAIqV,KAAK,GAAG,CAAC,CAAb;AAAA,UACIrU,MAAM,GAAGhB,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MADvC;AAAA,UAEIsnH,QAAQ,GAAG,CAFf;AAAA,UAGI/vG,MAAM,GAAG,EAHb;;AAKA,aAAO,EAAElD,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIyB,KAAK,GAAGzC,KAAK,CAACqV,KAAD,CAAjB;;AACA,YAAI5S,KAAJ,EAAW;AACT8V,UAAAA,MAAM,CAAC+vG,QAAQ,EAAT,CAAN,GAAqB7lH,KAArB;AACD;AACF;;AACD,aAAO8V,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS4R,MAAT,GAAkB;AAChB,UAAInpB,MAAM,GAAGoD,SAAS,CAACpD,MAAvB;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAO,EAAP;AACD;;AACD,UAAIqQ,IAAI,GAAGpR,KAAK,CAACe,MAAM,GAAG,CAAV,CAAhB;AAAA,UACIhB,KAAK,GAAGoE,SAAS,CAAC,CAAD,CADrB;AAAA,UAEIiR,KAAK,GAAGrU,MAFZ;;AAIA,aAAOqU,KAAK,EAAZ,EAAgB;AACdhE,QAAAA,IAAI,CAACgE,KAAK,GAAG,CAAT,CAAJ,GAAkBjR,SAAS,CAACiR,KAAD,CAA3B;AACD;;AACD,aAAOuzG,SAAS,CAACjlH,OAAO,CAAC3D,KAAD,CAAP,GAAiBuxH,SAAS,CAACvxH,KAAD,CAA1B,GAAoC,CAACA,KAAD,CAArC,EAA8Cs4H,WAAW,CAACjnH,IAAD,EAAO,CAAP,CAAzD,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI85H,UAAU,GAAGtM,QAAQ,CAAC,UAAS7+H,KAAT,EAAgB8B,MAAhB,EAAwB;AAChD,aAAO47H,iBAAiB,CAAC19H,KAAD,CAAjB,GACHu3H,cAAc,CAACv3H,KAAD,EAAQs4H,WAAW,CAACx2H,MAAD,EAAS,CAAT,EAAY47H,iBAAZ,EAA+B,IAA/B,CAAnB,CADX,GAEH,EAFJ;AAGD,KAJwB,CAAzB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI0N,YAAY,GAAGvM,QAAQ,CAAC,UAAS7+H,KAAT,EAAgB8B,MAAhB,EAAwB;AAClD,UAAIimH,QAAQ,GAAGmS,IAAI,CAACp4H,MAAD,CAAnB;;AACA,UAAI47H,iBAAiB,CAAC3V,QAAD,CAArB,EAAiC;AAC/BA,QAAAA,QAAQ,GAAGxvF,SAAX;AACD;;AACD,aAAOmlG,iBAAiB,CAAC19H,KAAD,CAAjB,GACHu3H,cAAc,CAACv3H,KAAD,EAAQs4H,WAAW,CAACx2H,MAAD,EAAS,CAAT,EAAY47H,iBAAZ,EAA+B,IAA/B,CAAnB,EAAyDO,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApE,CADX,GAEH,EAFJ;AAGD,KAR0B,CAA3B;AAUA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIsjB,cAAc,GAAGxM,QAAQ,CAAC,UAAS7+H,KAAT,EAAgB8B,MAAhB,EAAwB;AACpD,UAAI4mH,UAAU,GAAGwR,IAAI,CAACp4H,MAAD,CAArB;;AACA,UAAI47H,iBAAiB,CAAChV,UAAD,CAArB,EAAmC;AACjCA,QAAAA,UAAU,GAAGnwF,SAAb;AACD;;AACD,aAAOmlG,iBAAiB,CAAC19H,KAAD,CAAjB,GACHu3H,cAAc,CAACv3H,KAAD,EAAQs4H,WAAW,CAACx2H,MAAD,EAAS,CAAT,EAAY47H,iBAAZ,EAA+B,IAA/B,CAAnB,EAAyDnlG,SAAzD,EAAoEmwF,UAApE,CADX,GAEH,EAFJ;AAGD,KAR4B,CAA7B;AAUA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS4iB,IAAT,CAActrI,KAAd,EAAqBwC,CAArB,EAAwBshI,KAAxB,EAA+B;AAC7B,UAAI9iI,MAAM,GAAGhB,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MAAvC;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAO,EAAP;AACD;;AACDwB,MAAAA,CAAC,GAAIshI,KAAK,IAAIthI,CAAC,KAAK+1B,SAAhB,GAA6B,CAA7B,GAAiC4/F,SAAS,CAAC31H,CAAD,CAA9C;AACA,aAAO88H,SAAS,CAACt/H,KAAD,EAAQwC,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAApB,EAAuBxB,MAAvB,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuqI,SAAT,CAAmBvrI,KAAnB,EAA0BwC,CAA1B,EAA6BshI,KAA7B,EAAoC;AAClC,UAAI9iI,MAAM,GAAGhB,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MAAvC;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAO,EAAP;AACD;;AACDwB,MAAAA,CAAC,GAAIshI,KAAK,IAAIthI,CAAC,KAAK+1B,SAAhB,GAA6B,CAA7B,GAAiC4/F,SAAS,CAAC31H,CAAD,CAA9C;AACAA,MAAAA,CAAC,GAAGxB,MAAM,GAAGwB,CAAb;AACA,aAAO88H,SAAS,CAACt/H,KAAD,EAAQ,CAAR,EAAWwC,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAAvB,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgpI,cAAT,CAAwBxrI,KAAxB,EAA+BooH,SAA/B,EAA0C;AACxC,aAAQpoH,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GACH8/H,SAAS,CAAC9gI,KAAD,EAAQi+H,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAAnB,EAAmC,IAAnC,EAAyC,IAAzC,CADN,GAEH,EAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqjB,SAAT,CAAm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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8qI,SAAT,CAAmBttI,KAAnB,EAA0BwC,CAA1B,EAA6BshI,KAA7B,EAAoC;AAClC,UAAI9iI,MAAM,GAAGhB,KAAK,IAAI,IAAT,GAAgB,CAAhB,GAAoBA,KAAK,CAACgB,MAAvC;;AACA,UAAI,CAACA,MAAL,EAAa;AACX,eAAO,EAAP;AACD;;AACDwB,MAAAA,CAAC,GAAIshI,KAAK,IAAIthI,CAAC,KAAK+1B,SAAhB,GAA6B,CAA7B,GAAiC4/F,SAAS,CAAC31H,CAAD,CAA9C;AACAA,MAAAA,CAAC,GAAGxB,MAAM,GAAGwB,CAAb;AACA,aAAO88H,SAAS,CAACt/H,KAAD,EAAQwC,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYA,CAApB,EAAuBxB,MAAvB,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASusI,cAAT,CAAwBvtI,KAAxB,EAA+BooH,SAA/B,EAA0C;AACxC,aAAQpoH,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GACH8/H,SAAS,CAAC9gI,KAAD,EAAQi+H,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAAnB,EAAmC,KAAnC,EAA0C,IAA1C,CADN,GAEH,EAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASolB,SAAT,CAAmBxtI,KAAnB,EAA0BooH,SAA1B,EAAqC;AACnC,aAAQpoH,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GACH8/H,SAAS,CAAC9gI,KAAD,EAAQi+H,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAAnB,CADN,GAEH,EAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIqlB,KAAK,GAAG5O,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACpC,aAAO06H,QAAQ,CAACnI,WAAW,CAACvyH,MAAD,EAAS,CAAT,EAAY23H,iBAAZ,EAA+B,IAA/B,CAAZ,CAAf;AACD,KAFmB,CAApB;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIgQ,OAAO,GAAG7O,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACtC,UAAIgiH,QAAQ,GAAGmS,IAAI,CAACn0H,MAAD,CAAnB;;AACA,UAAI23H,iBAAiB,CAAC3V,QAAD,CAArB,EAAiC;AAC/BA,QAAAA,QAAQ,GAAGxvF,SAAX;AACD;;AACD,aAAOkoG,QAAQ,CAACnI,WAAW,CAACvyH,MAAD,EAAS,CAAT,EAAY23H,iBAAZ,EAA+B,IAA/B,CAAZ,EAAkDO,WAAW,CAAClW,QAAD,EAAW,CAAX,CAA7D,CAAf;AACD,KANqB,CAAtB;AAQA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI4lB,SAAS,GAAG9O,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACxC,UAAI2iH,UAAU,GAAGwR,IAAI,CAACn0H,MAAD,CAArB;AACA2iH,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CnwF,SAA5D;AACA,aAAOkoG,QAAQ,CAACnI,WAAW,CAACvyH,MAAD,EAAS,CAAT,EAAY23H,iBAAZ,EAA+B,IAA/B,CAAZ,EAAkDnlG,SAAlD,EAA6DmwF,UAA7D,CAAf;AACD,KAJuB,CAAxB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASklB,IAAT,CAAc5tI,KAAd,EAAqB;AACnB,aAAQA,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GAA0By/H,QAAQ,CAACzgI,KAAD,CAAlC,GAA4C,EAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6tI,MAAT,CAAgB7tI,KAAhB,EAAuB+nH,QAAvB,EAAiC;AAC/B,aAAQ/nH,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GAA0By/H,QAAQ,CAACzgI,KAAD,EAAQi+H,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAnB,CAAlC,GAAsE,EAA7E;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+lB,QAAT,CAAkB9tI,KAAlB,EAAyB0oH,UAAzB,EAAqC;AACnCA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CnwF,SAA5D;AACA,aAAQv4B,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GAA0By/H,QAAQ,CAACzgI,KAAD,EAAQu4B,SAAR,EAAmBmwF,UAAnB,CAAlC,GAAmE,EAA1E;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqlB,KAAT,CAAe/tI,KAAf,EAAsB;AACpB,UAAI,EAAEA,KAAK,IAAIA,KAAK,CAACgB,MAAjB,CAAJ,EAA8B;AAC5B,eAAO,EAAP;AACD;;AACD,UAAIA,MAAM,GAAG,CAAb;AACAhB,MAAAA,KAAK,GAAGqoH,WAAW,CAACroH,KAAD,EAAQ,UAASkQ,KAAT,EAAgB;AACzC,YAAIwtH,iBAAiB,CAACxtH,KAAD,CAArB,EAA8B;AAC5BlP,UAAAA,MAAM,GAAG+tH,SAAS,CAAC7+G,KAAK,CAAClP,MAAP,EAAeA,MAAf,CAAlB;AACA,iBAAO,IAAP;AACD;AACF,OALkB,CAAnB;AAMA,aAAOmpH,SAAS,CAACnpH,MAAD,EAAS,UAASqU,KAAT,EAAgB;AACvC,eAAOszG,QAAQ,CAAC3oH,KAAD,EAAQkpH,YAAY,CAAC7zG,KAAD,CAApB,CAAf;AACD,OAFe,CAAhB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS24H,SAAT,CAAmBhuI,KAAnB,EAA0B+nH,QAA1B,EAAoC;AAClC,UAAI,EAAE/nH,KAAK,IAAIA,KAAK,CAACgB,MAAjB,CAAJ,EAA8B;AAC5B,eAAO,EAAP;AACD;;AACD,UAAIuX,MAAM,GAAGw1H,KAAK,CAAC/tI,KAAD,CAAlB;;AACA,UAAI+nH,QAAQ,IAAI,IAAhB,EAAsB;AACpB,eAAOxvG,MAAP;AACD;;AACD,aAAOowG,QAAQ,CAACpwG,MAAD,EAAS,UAASrI,KAAT,EAAgB;AACtC,eAAO1G,KAAK,CAACu+G,QAAD,EAAWxvF,SAAX,EAAsBroB,KAAtB,CAAZ;AACD,OAFc,CAAf;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI+9H,OAAO,GAAGpP,QAAQ,CAAC,UAAS7+H,KAAT,EAAgB8B,MAAhB,EAAwB;AAC7C,aAAO47H,iBAAiB,CAAC19H,KAAD,CAAjB,GACHu3H,cAAc,CAACv3H,KAAD,EAAQ8B,MAAR,CADX,GAEH,EAFJ;AAGD,KAJqB,CAAtB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIosI,GAAG,GAAGrP,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AAClC,aAAOm7H,OAAO,CAAC7Y,WAAW,CAACtiH,MAAD,EAAS23H,iBAAT,CAAZ,CAAd;AACD,KAFiB,CAAlB;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIyQ,KAAK,GAAGtP,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACpC,UAAIgiH,QAAQ,GAAGmS,IAAI,CAACn0H,MAAD,CAAnB;;AACA,UAAI23H,iBAAiB,CAAC3V,QAAD,CAArB,EAAiC;AAC/BA,QAAAA,QAAQ,GAAGxvF,SAAX;AACD;;AACD,aAAO2oG,OAAO,CAAC7Y,WAAW,CAACtiH,MAAD,EAAS23H,iBAAT,CAAZ,EAAyCO,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApD,CAAd;AACD,KANmB,CAApB;AAQA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIqmB,OAAO,GAAGvP,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACtC,UAAI2iH,UAAU,GAAGwR,IAAI,CAACn0H,MAAD,CAArB;AACA2iH,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+CnwF,SAA5D;AACA,aAAO2oG,OAAO,CAAC7Y,WAAW,CAACtiH,MAAD,EAAS23H,iBAAT,CAAZ,EAAyCnlG,SAAzC,EAAoDmwF,UAApD,CAAd;AACD,KAJqB,CAAtB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIhjH,GAAG,GAAGm5H,QAAQ,CAACkP,KAAD,CAAlB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASM,SAAT,CAAmBhkB,KAAnB,EAA0BvoH,MAA1B,EAAkC;AAChC,aAAOq/H,aAAa,CAAC9W,KAAK,IAAI,EAAV,EAAcvoH,MAAM,IAAI,EAAxB,EAA4BszH,WAA5B,CAApB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkZ,aAAT,CAAuBjkB,KAAvB,EAA8BvoH,MAA9B,EAAsC;AACpC,aAAOq/H,aAAa,CAAC9W,KAAK,IAAI,EAAV,EAAcvoH,MAAM,IAAI,EAAxB,EAA4Bw8H,OAA5B,CAApB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIiQ,OAAO,GAAG1P,QAAQ,CAAC,UAAS94H,MAAT,EAAiB;AACtC,UAAI/E,MAAM,GAAG+E,MAAM,CAAC/E,MAApB;AAAA,UACI+mH,QAAQ,GAAG/mH,MAAM,GAAG,CAAT,GAAa+E,MAAM,CAAC/E,MAAM,GAAG,CAAV,CAAnB,GAAkCu3B,SADjD;AAGAwvF,MAAAA,QAAQ,GAAG,OAAOA,QAAP,IAAmB,UAAnB,IAAiChiH,MAAM,CAAChC,GAAP,IAAcgkH,QAA/C,IAA2DxvF,SAAtE;AACA,aAAOy1G,SAAS,CAACjoI,MAAD,EAASgiH,QAAT,CAAhB;AACD,KANqB,CAAtB;AAQA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASymB,KAAT,CAAe/rI,KAAf,EAAsB;AACpB,UAAI8V,MAAM,GAAG23G,MAAM,CAACztH,KAAD,CAAnB;AACA8V,MAAAA,MAAM,CAACs4G,SAAP,GAAmB,IAAnB;AACA,aAAOt4G,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk2H,GAAT,CAAahsI,KAAb,EAAoBisI,WAApB,EAAiC;AAC/BA,MAAAA,WAAW,CAACjsI,KAAD,CAAX;AACA,aAAOA,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgjI,IAAT,CAAchjI,KAAd,EAAqBisI,WAArB,EAAkC;AAChC,aAAOA,WAAW,CAACjsI,KAAD,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIksI,SAAS,GAAGrJ,QAAQ,CAAC,UAASzP,KAAT,EAAgB;AACvC,UAAI70H,MAAM,GAAG60H,KAAK,CAAC70H,MAAnB;AAAA,UACIuF,KAAK,GAAGvF,MAAM,GAAG60H,KAAK,CAAC,CAAD,CAAR,GAAc,CADhC;AAAA,UAEIpzH,KAAK,GAAG,KAAKkuH,WAFjB;AAAA,UAGI+d,WAAW,GAAG,SAAdA,WAAc,CAAS72H,MAAT,EAAiB;AAAE,eAAO+9G,MAAM,CAAC/9G,MAAD,EAASg+G,KAAT,CAAb;AAA+B,OAHpE;;AAKA,UAAI70H,MAAM,GAAG,CAAT,IAAc,KAAK4vH,WAAL,CAAiB5vH,MAA/B,IACA,EAAEyB,KAAK,YAAY2tH,WAAnB,CADA,IACmC,CAACsE,OAAO,CAACnuH,KAAD,CAD/C,EACwD;AACtD,eAAO,KAAKk/H,IAAL,CAAUiJ,WAAV,CAAP;AACD;;AACDjsI,MAAAA,KAAK,GAAGA,KAAK,CAACtC,KAAN,CAAYoG,KAAZ,EAAmB,CAACA,KAAD,IAAUvF,MAAM,GAAG,CAAH,GAAO,CAAvB,CAAnB,CAAR;;AACAyB,MAAAA,KAAK,CAACmuH,WAAN,CAAkB1sH,IAAlB,CAAuB;AACrB,gBAAQuhI,IADa;AAErB,gBAAQ,CAACiJ,WAAD,CAFa;AAGrB,mBAAWn2G;AAHU,OAAvB;;AAKA,aAAO,IAAI83F,aAAJ,CAAkB5tH,KAAlB,EAAyB,KAAKouH,SAA9B,EAAyC4U,IAAzC,CAA8C,UAASzlI,KAAT,EAAgB;AACnE,YAAIgB,MAAM,IAAI,CAAChB,KAAK,CAACgB,MAArB,EAA6B;AAC3BhB,UAAAA,KAAK,CAACkE,IAAN,CAAWq0B,SAAX;AACD;;AACD,eAAOv4B,KAAP;AACD,OALM,CAAP;AAMD,KAtBuB,CAAxB;AAwBA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS4uI,YAAT,GAAwB;AACtB,aAAOJ,KAAK,CAAC,IAAD,CAAZ;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASK,aAAT,GAAyB;AACvB,aAAO,IAAIxe,aAAJ,CAAkB,KAAK5tH,KAAL,EAAlB,EAAgC,KAAKouH,SAArC,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASie,WAAT,GAAuB;AACrB,UAAI,KAAK/d,UAAL,KAAoBx4F,SAAxB,EAAmC;AACjC,aAAKw4F,UAAL,GAAkBge,OAAO,CAAC,KAAKtsI,KAAL,EAAD,CAAzB;AACD;;AACD,UAAIipH,IAAI,GAAG,KAAKoF,SAAL,IAAkB,KAAKC,UAAL,CAAgB/vH,MAA7C;AAAA,UACIyB,KAAK,GAAGipH,IAAI,GAAGnzF,SAAH,GAAe,KAAKw4F,UAAL,CAAgB,KAAKD,SAAL,EAAhB,CAD/B;AAGA,aAAO;AAAE,gBAAQpF,IAAV;AAAgB,iBAASjpH;AAAzB,OAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASusI,iBAAT,GAA6B;AAC3B,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AAC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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASl9G,MAAT,CAAgBuqF,UAAhB,EAA4B2yB,SAA5B,EAAuC;AACrC,UAAIT,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsB4yB,WAAtB,GAAoCgQ,UAA/C;AACA,aAAO1Q,IAAI,CAAClyB,UAAD,EAAawoC,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI/sF,IAAI,GAAG8pG,UAAU,CAACuG,SAAD,CAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI4D,QAAQ,GAAGnK,UAAU,CAACwG,aAAD,CAAzB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS4D,OAAT,CAAiB95C,UAAjB,EAA6BsyB,QAA7B,EAAuC;AACrC,aAAOuQ,WAAW,CAACl4H,GAAG,CAACq1F,UAAD,EAAasyB,QAAb,CAAJ,EAA4B,CAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASynB,WAAT,CAAqB/5C,UAArB,EAAiCsyB,QAAjC,EAA2C;AACzC,aAAOuQ,WAAW,CAACl4H,GAAG,CAACq1F,UAAD,EAAasyB,QAAb,CAAJ,EAA4BhK,QAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS0xB,YAAT,CAAsBh6C,UAAtB,EAAkCsyB,QAAlC,EAA4C7vG,KAA5C,EAAmD;AACjDA,MAAAA,KAAK,GAAGA,KAAK,KAAKqgB,SAAV,GAAsB,CAAtB,GAA0B4/F,SAAS,CAACjgH,KAAD,CAA3C;AACA,aAAOogH,WAAW,CAACl4H,GAAG,CAACq1F,UAAD,EAAasyB,QAAb,CAAJ,EAA4B7vG,KAA5B,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASlD,OAAT,CAAiBygF,UAAjB,EAA6BsyB,QAA7B,EAAuC;AACrC,UAAIJ,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsBwyB,SAAtB,GAAkCsN,QAA7C;AACA,aAAO5N,IAAI,CAAClyB,UAAD,EAAawoC,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2nB,YAAT,CAAsBj6C,UAAtB,EAAkCsyB,QAAlC,EAA4C;AAC1C,UAAIJ,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsByyB,cAAtB,GAAuC2P,aAAlD;AACA,aAAOlQ,IAAI,CAAClyB,UAAD,EAAawoC,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAxB,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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P;AAAkB,KAFF,CAAhC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASd,MAAT,CAAgB8zF,UAAhB,EAA4BsyB,QAA5B,EAAsCC,WAAtC,EAAmD;AACjD,UAAIL,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsBozB,WAAtB,GAAoCmB,UAA/C;AAAA,UACIlB,SAAS,GAAG1kH,SAAS,CAACpD,MAAV,GAAmB,CADnC;AAGA,aAAO2mH,IAAI,CAAClyB,UAAD,EAAawoC,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAxB,EAAuCC,WAAvC,EAAoDc,SAApD,EAA+DyM,QAA/D,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASya,WAAT,CAAqBv6C,UAArB,EAAiCsyB,QAAjC,EAA2CC,WAA3C,EAAwD;AACtD,UAAIL,IAAI,GAAGhkH,OAAO,CAAC8xF,UAAD,CAAP,GAAsBszB,gBAAtB,GAAyCiB,UAApD;AAAA,UACIlB,SAAS,GAAG1kH,SAAS,CAACpD,MAAV,GAAmB,CADnC;AAGA,aAAO2mH,IAAI,CAAClyB,UAAD,EAAawoC,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAxB,EAAuCC,WAAvC,EAAoDc,SAApD,EAA+D+O,aAA/D,CAAX;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASn/F,MAAT,CAAgB+8D,UAAhB,EAA4B2yB,SAA5B,EAAuC;AACrC,UAAIT,IAAI,GA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EAA4BjB,KAA5B,EAAmC;AACjCiB,MAAAA,KAAK,GAAGjB,KAAK,GAAGvrG,SAAH,GAAewsG,KAA5B;AACA,UAAIxsH,MAAM,GAAG0vH,UAAU,CAACtgB,IAAD,EAAO1K,eAAP,EAAwB1kF,SAAxB,EAAmCA,SAAnC,EAA8CA,SAA9C,EAAyDA,SAAzD,EAAoEA,SAApE,EAA+EwsG,KAA/E,CAAvB;AACAxsH,MAAAA,MAAM,CAACyyG,WAAP,GAAqBqlB,KAAK,CAACrlB,WAA3B;AACA,aAAOzyG,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+3H,UAAT,CAAoB3oB,IAApB,EAA0Bod,KAA1B,EAAiCjB,KAAjC,EAAwC;AACtCiB,MAAAA,KAAK,GAAGjB,KAAK,GAAGvrG,SAAH,GAAewsG,KAA5B;AACA,UAAIxsH,MAAM,GAAG0vH,UAAU,CAACtgB,IAAD,EAAOzK,qBAAP,EAA8B3kF,SAA9B,EAAyCA,SAAzC,EAAoDA,SAApD,EAA+DA,SAA/D,EAA0EA,SAA1E,EAAqFwsG,KAArF,CAAvB;AACAxsH,MAAAA,MAAM,CAACyyG,WAAP,GAAqBslB,UAAU,CAACtlB,WAAhC;AACA,aAAOzyG,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASg4H,QAAT,CAAkB5oB,IAAlB,EAAwB2P,IAAxB,EAA8B38B,OAA9B,EAAuC;AACrC,UAAI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AS,CAAC,CAAD,CAArB;AACA,aAAOT,OAAO,CAAClB,KAAD,CAAP,GAAiBA,KAAjB,GAAyB,CAACA,KAAD,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8hE,KAAT,CAAe9hE,KAAf,EAAsB;AACpB,aAAOuzH,SAAS,CAACvzH,KAAD,EAAQk6G,kBAAR,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASi2B,SAAT,CAAmBnwI,KAAnB,EAA0ByzH,UAA1B,EAAsC;AACpCA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+C39F,SAA5D;AACA,aAAOy9F,SAAS,CAACvzH,KAAD,EAAQk6G,kBAAR,EAA4BuZ,UAA5B,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2c,SAAT,CAAmBpwI,KAAnB,EAA0B;AACxB,aAAOuzH,SAAS,CAACvzH,KAAD,EAAQg6G,eAAe,GAAGE,kBAA1B,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASm2B,aAAT,CAAuBrwI,KAAvB,EAA8ByzH,UAA9B,EAA0C;AACxCA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+C39F,SAA5D;AACA,aAAOy9F,SAAS,CAACvzH,KAAD,EAAQg6G,eAAe,GAAGE,kBAA1B,EAA8CuZ,UAA9C,CAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6c,UAAT,CAAoBl7H,MAApB,EAA4BzD,MAA5B,EAAoC;AAClC,aAAOA,MAAM,IAAI,IAAV,IAAkBgjH,cAAc,CAACv/G,MAAD,EAASzD,MAAT,EAAiBtE,IAAI,CAACsE,MAAD,CAArB,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8gH,EAAT,CAAYzyH,KAAZ,EAAmB8qC,KAAnB,EAA0B;AACxB,aAAO9qC,KAAK,KAAK8qC,KAAV,IAAoB9qC,KAAK,KAAKA,KAAV,IAAmB8qC,KAAK,KAAKA,KAAxD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIylG,EAAE,GAAG3L,yBAAyB,CAAC/N,MAAD,CAAlC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI2Z,GAAG,GAAG5L,yBAAyB,CAAC,UAAS5kI,KAAT,EAAgB8qC,KAAhB,EAAuB;AACzD,aAAO9qC,KAAK,IAAI8qC,KAAhB;AACD,KAFkC,CAAnC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI+mF,WAAW,GAAG6F,eAAe,CAAC,YAAW;AAAE,aAAO/1H,SAAP;AAAmB,KAAhC,EAAD,CAAf,GAAsD+1H,eAAtD,GAAwE,UAAS13H,KAAT,EAAgB;AACxG,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuBoiB,cAAc,CAACvgB,IAAf,CAAoB7B,KAApB,EAA2B,QAA3B,CAAvB,IACL,CAACorH,oBAAoB,CAACvpH,IAArB,CAA0B7B,KAA1B,EAAiC,QAAjC,CADH;AAED,KAHD;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIkB,OAAO,GAAG1D,KAAK,CAAC0D,OAApB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIqjH,aAAa,GAAGD,iBAAiB,GAAGyD,SAAS,CAACzD,iBAAD,CAAZ,GAAkCqT,iBAAvE;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASyC,WAAT,CAAqBp6H,KAArB,EAA4B;AAC1B,aAAOA,KAAK,IAAI,IAAT,IAAiBy5H,QAAQ,CAACz5H,KAAK,CAACzB,MAAP,CAAzB,IAA2C,CAAC63H,UAAU,CAACp2H,KAAD,CAA7D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASi7H,iBAAT,CAA2Bj7H,KAA3B,EAAkC;AAChC,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuBo6H,WAAW,CAACp6H,KAAD,CAAzC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASywI,SAAT,CAAmBzwI,KAAnB,EAA0B;AACxB,aAAOA,KAAK,KAAK,IAAV,IAAkBA,KAAK,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AAO,OAAOA,KAAP,IAAgB,QAAhB,IAA4BA,KAAK,IAAI01H,SAAS,CAAC11H,KAAD,CAArD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy5H,QAAT,CAAkBz5H,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACLA,KAAK,GAAG,CAAC,CADJ,IACSA,KAAK,GAAG,CAAR,IAAa,CADtB,IAC2BA,KAAK,IAAIu7G,gBAD3C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwS,QAAT,CAAkB/tH,KAAlB,EAAyB;AACvB,UAAI0K,IAAI,GAAG,OAAO1K,KAAlB;AACA,aAAOA,KAAK,IAAI,IAAT,KAAkB0K,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAA9C,CAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASgjH,YAAT,CAAsB1tH,KAAtB,EAA6B;AAC3B,aAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,IAAgB,QAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI2kH,KAAK,GAAGD,SAAS,GAAGqD,SAAS,CAACrD,SAAD,CAAZ,GAA0BoU,SAA/C;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASiY,OAAT,CAAiB37H,MAAjB,EAAyBzD,MAAzB,EAAiC;AAC/B,aAAOyD,MAAM,KAAKzD,MAAX,IAAqBonH,WAAW,CAAC3jH,MAAD,EAASzD,MAAT,EAAiB0oH,YAAY,CAAC1oH,MAAD,CAA7B,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASq/H,WAAT,CAAqB57H,MAArB,EAA6BzD,MAA7B,EAAqC8hH,UAArC,EAAiD;AAC/CA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+C39F,SAA5D;AACA,aAAOijG,WAAW,CAAC3jH,MAAD,EAASzD,MAAT,EAAiB0oH,YAAY,CAAC1oH,MAAD,CAA7B,EAAuC8hH,UAAvC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAStwH,KAAT,CAAenD,KAAf,EAAsB;AACpB;AACA;AACA;AACA,aAAOixI,QAAQ,CAACjxI,KAAD,CAAR,IAAmBA,KAAK,IAAI,CAACA,KAApC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkxI,QAAT,CAAkBlxI,KAAlB,EAAyB;AACvB,UAAIunI,UAAU,CAACvnI,KAAD,CAAd,EAAuB;AACrB,cAAM,IAAIkoB,KAAJ,CAAUwxF,eAAV,CAAN;AACD;;AACD,aAAOyf,YAAY,CAACn5H,KAAD,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmxI,MAAT,CAAgBnxI,KAAhB,EAAuB;AACrB,aAAOA,KAAK,KAAK,IAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASoxI,KAAT,CAAepxI,KAAf,EAAsB;AACpB,aAAOA,KAAK,IAAI,IAAhB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASixI,QAAT,CAAkBjxI,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqBw8G,SAD/C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS2e,aAAT,CAAuBn7H,KAAvB,EAA8B;AAC5B,UAAI,CAAC0tH,YAAY,CAAC1tH,KAAD,CAAb,IAAwB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqB08G,SAAjD,EAA4D;AAC1D,eAAO,KAAP;AACD;;AACD,UAAIrmG,KAAK,GAAG40G,YAAY,CAACjrH,KAAD,CAAxB;;AACA,UAAIqW,KAAK,KAAK,IAAd,EAAoB;AAClB,eAAO,IAAP;AACD;;AACD,UAAIqrH,IAAI,GAAGt/G,cAAc,CAACvgB,IAAf,CAAoBwU,KAApB,EAA2B,aAA3B,KAA6CA,KAAK,CAACrB,WAA9D;AACA,aAAO,OAAO0sH,IAAP,IAAe,UAAf,IAA6BA,IAAI,YAAYA,IAA7C,IACLpX,YAAY,CAACzoH,IAAb,CAAkB6/H,IAAlB,KAA2B9W,gBAD7B;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI/F,QAAQ,GAAGD,YAAY,GAAGmD,SAAS,CAACnD,YAAD,CAAZ,GAA6B0U,YAAxD;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS+X,aAAT,CAAuBrxI,KAAvB,EAA8B;AAC5B,aAAO8wI,SAAS,CAAC9wI,KAAD,CAAT,IAAoBA,KAAK,IAAI,CAACu7G,gBAA9B,IAAkDv7G,KAAK,IAAIu7G,gBAAlE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIwJ,KAAK,GAAGD,SAAS,GAAGiD,SAAS,CAACjD,SAAD,CAAZ,GAA0ByU,SAA/C;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS4T,QAAT,CAAkBntI,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ,CAACkB,OAAO,CAAClB,KAAD,CAAR,IAAmB0tH,YAAY,CAAC1tH,KAAD,CAA/B,IAA0C02H,UAAU,CAAC12H,KAAD,CAAV,IAAqB+8G,SADlE;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyY,QAAT,CAAkBx1H,KAAlB,EAAyB;AACvB,aAAO,OAAOA,KAAP,IAAgB,QAAhB,IACJ0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqBg9G,SAD/C;AAED;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIiI,YAAY,GAAGD,gBAAgB,GAAG+C,SAAS,CAAC/C,gBAAD,CAAZ,GAAiCwU,gBAApE;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS8X,WAAT,CAAqBtxI,KAArB,EAA4B;AAC1B,aAAOA,KAAK,KAAK81B,SAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy7G,SAAT,CAAmBvxI,KAAnB,EAA0B;AACxB,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB8zH,MAAM,CAAC9zH,KAAD,CAAN,IAAiBk9G,UAA/C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASs0B,SAAT,CAAmBxxI,KAAnB,EAA0B;AACxB,aAAO0tH,YAAY,CAAC1tH,KAAD,CAAZ,IAAuB02H,UAAU,CAAC12H,KAAD,CAAV,IAAqBm9G,UAAnD;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIs0B,EAAE,GAAG7M,yBAAyB,CAAC1K,MAAD,CAAlC;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIwX,GAAG,GAAG9M,yBAAyB,CAAC,UAAS5kI,KAAT,EAAgB8qC,KAAhB,EAAuB;AACzD,aAAO9qC,KAAK,IAAI8qC,KAAhB;AACD,KAFkC,CAAnC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASwhG,OAAT,CAAiBtsI,KAAjB,EAAwB;AACtB,UAAI,CAACA,KAAL,EAAY;AAC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Af;AACA,aAAQ4xI,QAAQ,IAAIjyB,SAAS,CAAC12F,IAAV,CAAejpB,KAAf,CAAb,GACHwjH,YAAY,CAACxjH,KAAK,CAACtC,KAAN,CAAY,CAAZ,CAAD,EAAiBk0I,QAAQ,GAAG,CAAH,GAAO,CAAhC,CADT,GAEFpyB,UAAU,CAACv2F,IAAX,CAAgBjpB,KAAhB,IAAyBy7G,GAAzB,GAA+B,CAACz7G,KAFrC;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASo7H,aAAT,CAAuBp7H,KAAvB,EAA8B;AAC5B,aAAOgzH,UAAU,CAAChzH,KAAD,EAAQkzH,MAAM,CAAClzH,KAAD,CAAd,CAAjB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6xI,aAAT,CAAuB7xI,KAAvB,EAA8B;AAC5B,aAAOA,KAAK,GACRsyH,SAAS,CAACoD,SAAS,CAAC11H,KAAD,CAAV,EAAmB,CAACu7G,gBAApB,EAAsCA,gBAAtC,CADD,GAEPv7G,KAAK,KAAK,CAAV,GAAcA,KAAd,GAAsB,CAF3B;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyhB,QAAT,CAAkBzhB,KAAlB,EAAyB;AACvB,aAAOA,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqB+9H,YAAY,CAAC/9H,KAAD,CAAxC;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI+gB,MAAM,GAAGmgH,cAAc,CAAC,UAAS9rH,MAAT,EAAiBzD,MAAjB,EAAyB;AACnD,UAAImoH,WAAW,CAACnoH,MAAD,CAAX,IAAuByoH,WAAW,CAACzoH,MAAD,CAAtC,EAAgD;AAC9CqhH,QAAAA,UAAU,CAACrhH,MAAD,EAAStE,IAAI,CAACsE,MAAD,CAAb,EAAuByD,MAAvB,CAAV;AACA;AACD;;AACD,WAAK,IAAIT,GAAT,IAAgBhD,MAAhB,EAAwB;AACtB,YAAIyQ,cAAc,CAACvgB,IAAf,CAAoB8P,MAApB,EAA4BgD,GAA5B,CAAJ,EAAsC;AACpCg+G,UAAAA,WAAW,CAACv9G,MAAD,EAAST,GAAT,EAAchD,MAAM,CAACgD,GAAD,CAApB,CAAX;AACD;AACF;AACF,KAV0B,CAA3B;AAYA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIm9H,QAAQ,GAAG5Q,cAAc,CAAC,UAAS9rH,MAAT,EAAiBzD,MAAjB,EAAyB;AACrDqhH,MAAAA,UAAU,CAACrhH,MAAD,EAASuhH,MAAM,CAACvhH,MAAD,CAAf,EAAyByD,MAAzB,CAAV;AACD,KAF4B,CAA7B;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI28H,YAAY,GAAG7Q,cAAc,CAAC,UAAS9rH,MAAT,EAAiBzD,MAAjB,EAAyBgpH,QAAzB,EAAmClH,UAAnC,EAA+C;AAC/ET,MAAAA,UAAU,CAACrhH,MAAD,EAASuhH,MAAM,CAACvhH,MAAD,CAAf,EAAyByD,MAAzB,EAAiCq+G,UAAjC,CAAV;AACD,KAFgC,CAAjC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIue,UAAU,GAAG9Q,cAAc,CAAC,UAAS9rH,MAAT,EAAiBzD,MAAjB,EAAyBgpH,QAAzB,EAAmClH,UAAnC,EAA+C;AAC7ET,MAAAA,UAAU,CAACrhH,MAAD,EAAStE,IAAI,CAACsE,MAAD,CAAb,EAAuByD,MAAvB,EAA+Bq+G,UAA/B,CAAV;AACD,KAF8B,CAA/B;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIwe,EAAE,GAAGpP,QAAQ,CAAC1P,MAAD,CAAjB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS/uG,MAAT,CAAgB3mB,SAAhB,EAA2By0I,UAA3B,EAAuC;AACrC,UAAIp8H,MAAM,GAAGg4G,UAAU,CAACrwH,SAAD,CAAvB;AACA,aAAOy0I,UAAU,IAAI,IAAd,GAAqBp8H,MAArB,GAA8Bi9G,UAAU,CAACj9G,MAAD,EAASo8H,UAAT,CAA/C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIloB,QAAQ,GAAGoS,QAAQ,CAAC,UAAShnH,MAAT,EAAiBgsH,OAAjB,EAA0B;AAChDhsH,MAAAA,MAAM,GAAG0L,MAAM,CAAC1L,MAAD,CAAf;AAEA,UAAIxC,KAAK,GAAG,CAAC,CAAb;AACA,UAAIrU,MAAM,GAAG6iI,OAAO,CAAC7iI,MAArB;AACA,UAAI8iI,KAAK,GAAG9iI,MAAM,GAAG,CAAT,GAAa6iI,OAAO,CAAC,CAAD,CAApB,GAA0BtrG,SAAtC;;AAEA,UAAIurG,KAAK,IAAIC,cAAc,CAACF,OAAO,CAAC,CAAD,CAAR,EAAaA,OAAO,CAAC,CAAD,CAApB,EAAyBC,KAAzB,CAA3B,EAA4D;AAC1D9iI,QAAAA,MAAM,GAAG,CAAT;AACD;;AAED,aAAO,EAAEqU,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,YAAIoT,MAAM,GAAGyvH,OAAO,CAACxuH,KAAD,CAApB;AACA,YAAIg1G,KAAK,GAAGsL,MAAM,CAACvhH,MAAD,CAAlB;AACA,YAAIwgI,UAAU,GAAG,CAAC,CAAlB;AACA,YAAIC,WAAW,GAAGxqB,KAAK,CAACrpH,MAAxB;;AAEA,eAAO,EAAE4zI,UAAF,GAAeC,WAAtB,EAAmC;AACjC,cAAIz9H,GAAG,GAAGizG,KAAK,CAACuqB,UAAD,CAAf;AACA,cAAInyI,KAAK,GAAGoV,MAAM,CAACT,GAAD,CAAlB;;AAEA,cAAI3U,KAAK,KAAK81B,SAAV,IACC28F,EAAE,CAACzyH,KAAD,EAAQoqH,WAAW,CAACz1G,GAAD,CAAnB,CAAF,IAA+B,CAACyN,cAAc,CAACvgB,IAAf,CAAoBuT,MAApB,EAA4BT,GAA5B,CADrC,EACwE;AACtES,YAAAA,MAAM,CAACT,GAAD,CAAN,GAAchD,MAAM,CAACgD,GAAD,CAApB;AACD;AACF;AACF;;AAED,aAAOS,MAAP;AACD,KA7BsB,CAAvB;AA+BA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIi9H,YAAY,GAAGjW,QAAQ,CAAC,UAASxtH,IAAT,EAAe;AACzCA,MAAAA,IAAI,CAACnN,IAAL,CAAUq0B,SAAV,EAAqB6vG,mBAArB;AACA,aAAO5+H,KAAK,CAACurI,SAAD,EAAYx8G,SAAZ,EAAuBlnB,IAAvB,CAAZ;AACD,KAH0B,CAA3B;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS2jI,OAAT,CAAiBn9H,MAAjB,EAAyBuwG,SAAzB,EAAoC;AAClC,aAAOiB,WAAW,CAACxxG,MAAD,EAASomH,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAApB,EAAoCwP,UAApC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqd,WAAT,CAAqBp9H,MAArB,EAA6BuwG,SAA7B,EAAwC;AACtC,aAAOiB,WAAW,CAACxxG,MAAD,EAASomH,WAAW,CAAC7V,SAAD,EAAY,CAAZ,CAApB,EAAoC0P,eAApC,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASod,KAAT,CAAer9H,MAAf,EAAuBkwG,QAAvB,EAAiC;AAC/B,aAAOlwG,MAAM,IAAI,IAAV,GACHA,MADG,GAEH4gH,OAAO,CAAC5gH,MAAD,EAASomH,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApB,EAAmC4N,MAAnC,CAFX;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwf,UAAT,CAAoBt9H,MAApB,EAA4BkwG,QAA5B,EAAsC;AACpC,aAAOlwG,MAAM,IAAI,IAAV,GACHA,MADG,GAEH8gH,YAAY,CAAC9gH,MAAD,EAASomH,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApB,EAAmC4N,MAAnC,CAFhB;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASyf,MAAT,CAAgBv9H,MAAhB,EAAwBkwG,QAAxB,EAAkC;AAChC,aAAOlwG,MAAM,IAAI+/G,UAAU,CAAC//G,MAAD,EAASomH,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApB,CAA3B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASstB,WAAT,CAAqBx9H,MAArB,EAA6BkwG,QAA7B,EAAuC;AACrC,aAAOlwG,MAAM,IAAIigH,eAAe,CAACjgH,MAAD,EAASomH,WAAW,CAAClW,QAAD,EAAW,CAAX,CAApB,CAAhC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASutB,SAAT,CAAmBz9H,MAAnB,EAA2B;AACzB,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsB+gH,aAAa,CAAC/gH,MAAD,EAAS/H,IAAI,CAAC+H,MAAD,CAAb,CAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS09H,WAAT,CAAqB19H,MAArB,EAA6B;AAC3B,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsB+gH,aAAa,CAAC/gH,MAAD,EAAS89G,MAAM,CAAC99G,MAAD,CAAf,CAA1C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASF,GAAT,CAAaE,MAAb,EAAqB7N,IAArB,EAA2B68H,YAA3B,EAAyC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xC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASuzI,OAAT,CAAiBn+H,MAAjB,EAAyB7N,IAAzB,EAA+BvH,KAA/B,EAAsCyzH,UAAtC,EAAkD;AAChDA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+C39F,SAA5D;AACA,aAAO1gB,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0BymH,OAAO,CAACzmH,MAAD,EAAS7N,IAAT,EAAevH,KAAf,EAAsByzH,UAAtB,CAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAI+f,OAAO,GAAGjO,aAAa,CAACl4H,IAAD,CAA3B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIomI,SAAS,GAAGlO,aAAa,CAACrS,MAAD,CAA7B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASrsH,SAAT,CAAmBuO,MAAnB,EAA2BkwG,QAA3B,EAAqCC,WAArC,EAAkD;AAChD,UAAI2J,KAAK,GAAGhuH,OAAO,CAACkU,MAAD,CAAnB;AAAA,UACIs+H,SAAS,GAAGxkB,KAAK,IAAI10B,QAAQ,CAACplF,MAAD,CAAjB,IAA6B6vG,YAAY,CAAC7vG,MAAD,CADzD;AAGAkwG,MAAAA,QAAQ,GAAGkW,WAAW,CAAClW,QAAD,EAAW,CAAX,CAAtB;;AACA,UAAIC,WAAW,IAAI,IAAnB,EAAyB;AACvB,YAAImc,IAAI,GAAGtsH,MAAM,IAAIA,MAAM,CAACJ,WAA5B;;AACA,YAAI0+H,SAAJ,EAAe;AACbnuB,UAAAA,WAAW,GAAG2J,KAAK,GAAG,IAAIwS,IAAJ,EAAH,GAAc,EAAjC;AACD,SAFD,MAGK,IAAI3T,QAAQ,CAAC34G,MAAD,CAAZ,EAAsB;AACzBmwG,UAAAA,WAAW,GAAG6Q,UAAU,CAACsL,IAAD,CAAV,GAAmB5T,UAAU,CAAC7C,YAAY,CAAC71G,MAAD,CAAb,CAA7B,GAAsD,EAApE;AACD,SAFI,MAGA;AACHmwG,UAAAA,WAAW,GAAG,EAAd;AACD;AACF;;AACD,OAACmuB,SAAS,GAAGluB,SAAH,GAAe2P,UAAzB,EAAqC//G,MAArC,EAA6C,UAASpV,KAAT,EAAgB4S,KAAhB,EAAuBwC,MAAvB,EAA+B;AAC1E,eAAOkwG,QAAQ,CAACC,WAAD,EAAcvlH,KAAd,EAAqB4S,KAArB,EAA4BwC,MAA5B,CAAf;AACD,OAFD;AAGA,aAAOmwG,WAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASouB,KAAT,CAAev+H,MAAf,EAAuB7N,IAAvB,EAA6B;AAC3B,aAAO6N,MAAM,IAAI,IAAV,GAAiB,IAAjB,GAAwB6mH,SAAS,CAAC7mH,MAAD,EAAS7N,IAAT,CAAxC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+6D,MAAT,CAAgBltD,MAAhB,EAAwB7N,IAAxB,EAA8B62H,OAA9B,EAAuC;AACrC,aAAOhpH,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0B+oH,UAAU,CAAC/oH,MAAD,EAAS7N,IAAT,EAAeu3H,YAAY,CAACV,OAAD,CAA3B,CAA3C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASwV,UAAT,CAAoBx+H,MAApB,EAA4B7N,IAA5B,EAAkC62H,OAAlC,EAA2C3K,UAA3C,EAAuD;AACrDA,MAAAA,UAAU,GAAG,OAAOA,UAAP,IAAqB,UAArB,GAAkCA,UAAlC,GAA+C39F,SAA5D;AACA,aAAO1gB,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0B+oH,UAAU,CAAC/oH,MAAD,EAAS7N,IAAT,EAAeu3H,YAAY,CAACV,OAAD,CAA3B,EAAsC3K,UAAtC,CAA3C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASp0H,MAAT,CAAgB+V,MAAhB,EAAwB;AACtB,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsB4yG,UAAU,CAAC5yG,MAAD,EAAS/H,IAAI,CAAC+H,MAAD,CAAb,CAAvC;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASy+H,QAAT,CAAkBz+H,MAAlB,EAA0B;AACxB,aAAOA,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsB4yG,UAAU,CAAC5yG,MAAD,EAAS89G,MAAM,CAAC99G,MAAD,CAAf,CAAvC;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS6hD,KAAT,CAAe/zD,MAAf,EAAuBujE,KAAvB,EAA8B6sD,KAA9B,EAAqC;AACnC,UAAIA,KAAK,KAAKx9F,SAAd,EAAyB;AACvBw9F,QAAAA,KAAK,GAAG7sD,KAAR;AACAA,QAAAA,KAAK,GAAG3w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AAIC,SAAS,GAAG/S,gBAAgB,CAAC,UAASnsH,MAAT,EAAiBm+H,IAAjB,EAAuBrhI,KAAvB,EAA8B;AAC7D,aAAOkD,MAAM,IAAIlD,KAAK,GAAG,GAAH,GAAS,EAAlB,CAAN,GAA8BuhI,UAAU,CAACF,IAAD,CAA/C;AACD,KAF+B,CAAhC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASgB,UAAT,CAAoBrqF,MAApB,EAA4BtgD,MAA5B,EAAoClD,QAApC,EAA8C;AAC5CwjD,MAAAA,MAAM,GAAGnpC,QAAQ,CAACmpC,MAAD,CAAjB;AACAxjD,MAAAA,QAAQ,GAAGA,QAAQ,IAAI,IAAZ,GACP,CADO,GAEPkrH,SAAS,CAACoD,SAAS,CAACtuH,QAAD,CAAV,EAAsB,CAAtB,EAAyBwjD,MAAM,CAACrsD,MAAhC,CAFb;AAIA+L,MAAAA,MAAM,GAAGyzH,YAAY,CAACzzH,MAAD,CAArB;AACA,aAAOsgD,MAAM,CAACltD,KAAP,CAAa0J,QAAb,EAAuBA,QAAQ,GAAGkD,MAAM,CAAC/L,MAAzC,KAAoD+L,MAA3D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACD,OAL8B,CAA/B;AAOA,aAAOq9H,QAAQ,CAAC,UAASxtH,IAAT,EAAe;AAC7B,YAAIgE,KAAK,GAAG,CAAC,CAAb;;AACA,eAAO,EAAEA,KAAF,GAAUrU,MAAjB,EAAyB;AACvB,cAAIQ,IAAI,GAAGyD,KAAK,CAACoQ,KAAD,CAAhB;;AACA,cAAI7L,KAAK,CAAChI,IAAI,CAAC,CAAD,CAAL,EAAU,IAAV,EAAgB6P,IAAhB,CAAT,EAAgC;AAC9B,mBAAO7H,KAAK,CAAChI,IAAI,CAAC,CAAD,CAAL,EAAU,IAAV,EAAgB6P,IAAhB,CAAZ;AACD;AACF;AACF,OARc,CAAf;AASD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkoI,QAAT,CAAkBnlI,MAAlB,EAA0B;AACxB,aAAO+iH,YAAY,CAACnB,SAAS,CAAC5hH,MAAD,EAASqoG,eAAT,CAAV,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS55G,QAAT,CAAkBJ,KAAlB,EAAyB;AACvB,aAAO,YAAW;AAChB,eAAOA,KAAP;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS+2I,SAAT,CAAmB/2I,KAAnB,EAA0BokI,YAA1B,EAAwC;AACtC,aAAQpkI,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAKA,KAA5B,GAAqCokI,YAArC,GAAoDpkI,KAA3D;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIg3I,IAAI,GAAGpU,UAAU,EAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIqU,SAAS,GAAGrU,UAAU,CAAC,IAAD,CAA1B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAStiI,QAAT,CAAkBN,KAAlB,EAAyB;AACvB,aAAOA,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASslH,QAAT,CAAkBJ,IAAlB,EAAwB;AACtB,aAAOwU,YAAY,CAAC,OAAOxU,IAAP,IAAe,UAAf,GAA4BA,IAA5B,GAAmCqO,SAAS,CAACrO,IAAD,EAAOlL,eAAP,CAA7C,CAAnB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASv6C,OAAT,CAAiB9tD,MAAjB,EAAyB;AACvB,aAAOioH,WAAW,CAACrG,SAAS,CAAC5hH,MAAD,EAASqoG,eAAT,CAAV,CAAlB;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk9B,eAAT,CAAyB3vI,IAAzB,EAA+B2xH,QAA/B,EAAyC;AACvC,aAAOS,mBAAmB,CAACpyH,IAAD,EAAOgsH,SAAS,CAAC2F,QAAD,EAAWlf,eAAX,CAAhB,CAA1B;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIm9B,MAAM,GAAG/a,QAAQ,CAAC,UAAS70H,IAAT,EAAeqH,IAAf,EAAqB;AACzC,aAAO,UAASwG,MAAT,EAAiB;AACtB,eAAOoiH,UAAU,CAACpiH,MAAD,EAAS7N,IAAT,EAAeqH,IAAf,CAAjB;AACD,OAFD;AAGD,KAJoB,CAArB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIwoI,QAAQ,GAAGhb,QAAQ,CAAC,UAAShnH,MAAT,EAAiBxG,IAAjB,EAAuB;AAC7C,aAAO,UAASrH,IAAT,EAAe;AACpB,eAAOiwH,UAAU,CAACpiH,MAAD,EAAS7N,IAAT,EAAeqH,IAAf,CAAjB;AACD,OAFD;AAGD,KAJsB,CAAvB;AAMA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASyoI,KAAT,CAAejiI,MAAf,EAAuBzD,MAAvB,EAA+BumF,OAA/B,EAAwC;AACtC,UAAI0vB,KAAK,GAAGv6G,IAAI,CAACsE,MAAD,CAAhB;AAAA,UACIilI,WAAW,GAAGzgB,aAAa,CAACxkH,MAAD,EAASi2G,KAAT,CAD/B;;AAGA,UAAI1vB,OAAO,IAAI,IAAX,IACA,EAAE61B,QAAQ,CAACp8G,MAAD,CAAR,KAAqBilI,WAAW,CAACr4I,MAAZ,IAAsB,CAACqpH,KAAK,CAACrpH,MAAlD,CAAF,CADJ,EACkE;AAChE25F,QAAAA,OAAO,GAAGvmF,MAAV;AACAA,QAAAA,MAAM,GAAGyD,MAAT;AACAA,QAAAA,MAAM,GAAG,IAAT;AACAwhI,QAAAA,WAAW,GAAGzgB,aAAa,CAACxkH,MAAD,EAAStE,IAAI,CAACsE,MAAD,CAAb,CAA3B;AACD;;AACD,UAAIo6H,KAAK,GAAG,EAAEhe,QAAQ,CAAC71B,OAAD,CAAR,IAAqB,WAAWA,OAAlC,KAA8C,CAAC,CAACA,OAAO,CAAC6zC,KAApE;AAAA,UACIhY,MAAM,GAAGqC,UAAU,CAAChhH,MAAD,CADvB;AAGAowG,MAAAA,SAAS,CAACoxB,WAAD,EAAc,UAAS7U,UAAT,EAAqB;AAC1C,YAAI7c,IAAI,GAAGvzG,MAAM,CAACowH,UAAD,CAAjB;AACA3sH,QAAAA,MAAM,CAAC2sH,UAAD,CAAN,GAAqB7c,IAArB;;AACA,YAAI6O,MAAJ,EAAY;AACV3+G,UAAAA,MAAM,CAAC3X,SAAP,CAAiBskI,UAAjB,IAA+B,YAAW;AACxC,gBAAI9T,QAAQ,GAAG,KAAKG,SAApB;;AACA,gBAAI2d,KAAK,IAAI9d,QAAb,EAAuB;AACrB,kBAAIn4G,MAAM,GAAGV,MAAM,CAAC,KAAK84G,WAAN,CAAnB;AAAA,kBACIqQ,OAAO,GAAGzoH,MAAM,CAACq4G,WAAP,GAAqBW,SAAS,CAAC,KAAKX,WAAN,CAD5C;AAGAoQ,cAAAA,OAAO,CAAC98H,IAAR,CAAa;AAAE,wBAAQyjH,IAAV;AAAgB,wBAAQvjH,SAAxB;AAAmC,2BAAWyT;AAA9C,eAAb;AACAU,cAAAA,MAAM,CAACs4G,SAAP,GAAmBH,QAAnB;AACA,qBAAOn4G,MAAP;AACD;;AACD,mBAAOovG,IAAI,CAACn+G,KAAL,CAAWqO,MAAX,EAAmB+wG,SAAS,CAAC,CAAC,KAAKnmH,KAAL,EAAD,CAAD,EAAiB2B,SAAjB,CAA5B,CAAP;AACD,WAXD;AAYD;AACF,OAjBQ,CAAT;AAmBA,aAAOyT,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASkiI,UAAT,GAAsB;AACpB,UAAIpsH,IAAI,CAACxpB,CAAL,KAAW,IAAf,EAAqB;AACnBwpB,QAAAA,IAAI,CAACxpB,CAAL,GAASmpH,OAAT;AACD;;AACD,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASpkG,IAAT,GAAgB,CACd;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAAS8wH,MAAT,CAAgBx3I,CAAhB,EAAmB;AACjBA,MAAAA,CAAC,GAAG21H,SAAS,CAAC31H,CAAD,CAAb;AACA,aAAOq8H,QAAQ,CAAC,UAASxtH,IAAT,EAAe;AAC7B,eAAOysH,OAAO,CAACzsH,IAAD,EAAO7O,CAAP,CAAd;AACD,OAFc,CAAf;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIy3I,IAAI,GAAGnT,UAAU,CAACne,QAAD,CAArB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIuxB,SAAS,GAAGpT,UAAU,CAAC3e,UAAD,CAA1B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIgyB,QAAQ,GAAGrT,UAAU,CAAC9d,SAAD,CAAzB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAAS74G,QAAT,CAAkBnG,IAAlB,EAAwB;AACtB,aAAOgzH,KAAK,CAAChzH,IAAD,CAAL,GAAck/G,YAAY,CAAC8P,KAAK,CAAChvH,IAAD,CAAN,CAA1B,GAA0Cu0H,gBAAgB,CAACv0H,IAAD,CAAjE;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASowI,UAAT,CAAoBviI,MAApB,EAA4B;AAC1B,aAAO,UAAS7N,IAAT,EAAe;AACpB,eAAO6N,MAAM,IAAI,IAAV,GAAiB0gB,SAAjB,GAA6BugG,OAAO,CAACjhH,MAAD,EAAS7N,IAAT,CAA3C;AACD,OAFD;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIhH,KAAK,GAAGmkI,WAAW,EAAvB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIkT,UAAU,GAAGlT,WAAW,CAAC,IAAD,CAA5B;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASqC,SAAT,GAAqB;AACnB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASS,SAAT,GAAqB;AACnB,aAAO,KAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASqQ,UAAT,GAAsB;AACpB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,UAAT,GAAsB;AACpB,aAAO,EAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,QAAT,GAAoB;AAClB,aAAO,IAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASC,KAAT,CAAej4I,CAAf,EAAkBulH,QAAlB,EAA4B;AAC1BvlH,MAAAA,CAAC,GAAG21H,SAAS,CAAC31H,CAAD,CAAb;;AACA,UAAIA,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAGw7G,gBAAjB,EAAmC;AACjC,eAAO,EAAP;AACD;;AACD,UAAI3oG,KAAK,GAAG8oG,gBAAZ;AAAA,UACIn9G,MAAM,GAAGguH,SAAS,CAACxsH,CAAD,EAAI27G,gBAAJ,CADtB;AAGA4J,MAAAA,QAAQ,GAAGkW,WAAW,CAAClW,QAAD,CAAtB;AACAvlH,MAAAA,CAAC,IAAI27G,gBAAL;AAEA,UAAI5lG,MAAM,GAAG4xG,SAAS,CAACnpH,MAAD,EAAS+mH,QAAT,CAAtB;;AACA,aAAO,EAAE1yG,KAAF,GAAU7S,CAAjB,EAAoB;AAClBulH,QAAAA,QAAQ,CAAC1yG,KAAD,CAAR;AACD;;AACD,aAAOkD,MAAP;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASmiI,MAAT,CAAgBj4I,KAAhB,EAAuB;AACrB,UAAIkB,OAAO,CAAClB,KAAD,CAAX,EAAoB;AAClB,eAAOkmH,QAAQ,CAAClmH,KAAD,EAAQu2H,KAAR,CAAf;AACD;;AACD,aAAOf,QAAQ,CAACx1H,KAAD,CAAR,GAAkB,CAACA,KAAD,CAAlB,GAA4B8uH,SAAS,CAACiQ,YAAY,CAACt9G,QAAQ,CAACzhB,KAAD,CAAT,CAAb,CAA5C;AACD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,aAASk4I,QAAT,CAAkBpjI,MAAlB,EAA0B;AACxB,UAAIgW,EAAE,GAAG,EAAEy/F,SAAX;AACA,aAAO9oG,QAAQ,CAAC3M,MAAD,CAAR,GAAmBgW,EAA1B;AACD;AAED;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI,QAAIxU,GAAG,GAAG4tH,mBAAmB,CAAC,UAASiU,MAAT,EAAiBC,MAAjB,EAAyB;AACrD,aAAOD,MAAM,GAAGC,MAAhB;AACD,KAF4B,EAE1B,CAF0B,CAA7B;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAIj3I,IAAI,GAAGmkI,WAAW,CAAC,MAAD,CAAtB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI+S,MAAM,GAAGnU,mBAAmB,CAAC,UAASoU,QAAT,EAAmBC,OAAnB,EAA4B;AAC3D,aAAOD,QAAQ,GAAGC,OAAlB;AACD,KAF+B,EAE7B,CAF6B,CAAhC;AAIA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,QAAI30I,KAAK,GAAG0hI,WAAW,CAAC,OAAD,CAAvB;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACI,aAASplI,GAAT,CAAa3C,KAAb,EAAoB;AAClB,aAAQA,KAAK,IAAIA,KAAK,CAACgB,MAAhB,GACHg3H,YAAY,CAACh4H,KAAD,EAAQ+C,QAAR,EAAkBu2H,MAAlB,CADT,GAEH/gG,SAFJ;AAGD;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AA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AmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMgB;;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,UAAU,GAAG,GAAnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT,CAAiBloJ,IAAjB,EAAuBmoJ,WAAvB,EAAoC;AAChC,SAAO;AAAEtnJ,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA+Cb,IAAAA,IAAI,EAAJA,IAA/C;AAAqDmoJ,IAAAA,WAAW,EAAXA,WAArD;AAAkE95D,IAAAA,OAAO,EAAE;AAA3E,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+5D,OAAT,CAAiBC,OAAjB,EAAyC;AAAA,MAAfC,MAAe,uEAAN,IAAM;AACrC,SAAO;AAAEznJ,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA+CynJ,IAAAA,MAAM,EAANA,MAA/C;AAAuDD,IAAAA,OAAO,EAAPA;AAAvD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASzkJ,KAAT,CAAe2kJ,KAAf,EAAsC;AAAA,MAAhBl6D,OAAgB,uEAAN,IAAM;AAClC,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA6C0nJ,IAAAA,KAAK,EAALA,KAA7C;AAAoDl6D,IAAAA,OAAO,EAAPA;AAApD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASjiC,QAAT,CAAkBm8F,KAAlB,EAAyC;AAAA,MAAhBl6D,OAAgB,uEAAN,IAAM;AACrC,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAAgD0nJ,IAAAA,KAAK,EAALA,KAAhD;AAAuDl6D,IAAAA,OAAO,EAAPA;AAAvD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAShqF,KAAT,CAAemkJ,MAAf,EAAuB;AACnB,SAAO;AAAE3nJ,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA6CynJ,IAAAA,MAAM,EAAEE,MAArD;AAA6DtsJ,IAAAA,MAAM,EAAE;AAArE,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgH,KAAT,CAAelD,IAAf,EAAqBsoJ,MAArB,EAA6Bj6D,OAA7B,EAAsC;AAClC,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA6Cb,IAAAA,IAAI,EAAJA,IAA7C;AAAmDsoJ,IAAAA,MAAM,EAANA,MAAnD;AAA2Dj6D,IAAAA,OAAO,EAAPA;AAA3D,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo6D,SAAT,CAAmBF,KAAnB,EAA0B;AACtB,SAAO;AAAE1nJ,IAAAA,IAAI,EAAE;AAAE;AAAV;AAAiD0nJ,IAAAA,KAAK,EAALA;AAAjD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS/pJ,UAAT,CAAoBkqJ,eAApB,EAAqCH,KAArC,EAA4D;AAAA,MAAhBl6D,OAAgB,uEAAN,IAAM;AACxD,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAAkDuxI,IAAAA,IAAI,EAAEsW,eAAxD;AAAyEC,IAAAA,SAAS,EAAEJ,KAApF;AAA2Fl6D,IAAAA,OAAO,EAAPA;AAA3F,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASs6D,SAAT,CAAmBJ,KAAnB,EAA0C;AAAA,MAAhBl6D,OAAgB,uEAAN,IAAM;AACtC,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAAiD8nJ,IAAAA,SAAS,EAAEJ,KAA5D;AAAmEl6D,IAAAA,OAAO,EAAPA;AAAnE,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu6D,YAAT,GAAsC;AAAA,MAAhBv6D,OAAgB,uEAAN,IAAM;AAClC,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAE;AAAV;AAAoDwtF,IAAAA,OAAO,EAAPA;AAApD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw6D,YAAT,CAAsBF,SAAtB,EAAiD;AAAA,MAAhBt6D,OAAgB,uEAAN,IAAM;AAC7C,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAG;AAAX;AAAmD8nJ,IAAAA,SAAS,EAATA,SAAnD;AAA8Dt6D,IAAAA,OAAO,EAAPA;AAA9D,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASy6D,KAAT,CAAexzF,QAAf,EAAyBqzF,SAAzB,EAAoD;AAAA,MAAhBt6D,OAAgB,uEAAN,IAAM;AAChD,SAAO;AAAExtF,IAAAA,IAAI,EAAE;AAAG;AAAX;AAA8Cy0D,IAAAA,QAAQ,EAARA,QAA9C;AAAwDqzF,IAAAA,SAAS,EAATA,SAAxD;AAAmEt6D,IAAAA,OAAO,EAAPA;AAAnE,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS06D,OAAT,CAAiBV,OAAjB,EAA0BM,SAA1B,EAAqC;AACjC,SAAO;AAAE9nJ,IAAAA,IAAI,EAAE;AAAG;AAAX;AAAgDwnJ,IAAAA,OAAO,EAAPA,OAAhD;AAAyDM,IAAAA,SAAS,EAATA;AAAzD,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,iBAAT,CAA2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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;MAAAA;AACF,qBAAYC,cAAZ,EAA4BC,SAA5B,EAAuCC,QAAvC,EAAiD;AAAA;;AAC7C,WAAKF,cAAL,GAAsBA,cAAtB;AACA,WAAKC,SAAL,GAAiBA,SAAjB;AACA,WAAKC,QAAL,GAAgBA,QAAhB;AACA,WAAKC,QAAL,GAAgB,IAAhB;AACA,WAAKC,aAAL,GAAqB,IAArB;AACA,WAAKC,OAAL,GAAe,IAAf;AACH;AACD;AACJ;AACA;AACA;;;;;WACI,aAAYR,OAAZ,EAAqB;AACjB,aAAKM,QAAL,GAAgBN,OAAhB;AACA,aAAKO,aAAL,GAAqB,IAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WAWI,eAAmB;AACf,eAAO,KAAKE,UAAZ;AACH;AACD;AACJ;AACA;AACA;;WAhBI,aAAiBl7D,EAAjB,EAAqB;AACjB,YAAI6+B,WAAW,IAAI7+B,EAAE,IAAI,IAArB,IAA6B,OAAOA,EAAP,KAAc,UAA/C,EAA2D;AACvD;AACA,cAAIhoC,OAAO,IAAIA,OAAO,CAACC,IAAvB,EAA6B;AACzBD,YAAAA,OAAO,CAACC,IAAR,CAAa,mDAA4CzsE,IAAI,CAACC,SAAL,CAAeu0G,EAAf,CAA5C,8FAAb;AAEH;AACJ;;AACD,aAAKk7D,UAAL,GAAkBl7D,EAAlB;AACH;;;WAQD,aAAkB7hI,KAAlB,EAAyB;AACrB;AACA;AACA;AACA,YAAIA,KAAJ,EAAW;AACP,eAAK08L,SAAL,GAAiB18L,KAAjB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gC,IAAR;AAAA,qBAAoGkgC,OAApG,EA7mGmGl9L,+DA6mGnG,CAA6HA,2DAA7H,GA7mGmGA,+DA6mGnG,CAA6JA,sDAA7J,GA7mGmGA,+DA6mGnG,CAAwLA,0DAAxL;AAAA;;AACAk9L,EAAAA,OAAO,CAACzB,IAAR,kBA9mGmGz7L,+DA8mGnG;AAAA,UAAwFk9L,OAAxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;SA3IMA;;;AA4IN;AAAA;AAAA;AAAA;;AAaA,SAASkB,eAAT,CAAyB3sL,IAAzB,EAA+BopL,MAA/B,EAAuC;AACnCppL,EAAAA,IAAI,CAACjK,OAAL,CAAau1L,SAAb,GAAyBlC,MAAM,CAAC3iF,IAAhC;AACH;;AACD,SAAS0lF,WAAT,CAAqBxyL,IAArB,EAA2B;AACvB,SAAOA,IAAI,CAAC,MAAD,CAAJ,IAAgB,OAAOA,IAA9B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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b,YAAIA,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;AACJ,YAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3B,gBAAM8hM,wBAAwB,CAACwB,aAAD,EAAgBtjM,KAAhB,CAA9B;AACH;;AACD,eAAOA,KAAK,CAACw9B,WAAN,EAAP;AACH;;;;;;AAEL8lK,EAAAA,aAAa,CAAChnC,IAAd;AAAA,qBAA0GgnC,aAA1G;AAAA;;AACAA,EAAAA,aAAa,CAACL,KAAd,kBA7rImG3jM,0DA6rInG;AAAA;AAAA,UAAwGgkM,aAAxG;AAAA;AAAA;AAAA;SAXMA;;;AAYN;AAAA;AAAA;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAMC,0BAA0B,gBAAG,IAAIxgB,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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ACH;AACD;AACA;AACA;;;IACMC;;;;;;;;AACF;AACJ;AACA;AACI,uBAAUjiM,MAAV,EAAkB,CAAG;AACrB;AACJ;AACA;;;;WACI,6BAAoB;AAChB,aAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACD;AACJ;AACA;;;;WACI,0BAAiBqB,QAAjB,EAA2B,CAAG;AAC9B;AACJ;AACA;;;;WACI,wBAAe6gM,MAAf,EAAuB,CAAG;AAC1B;AACJ;AACA;;;;WACI,qCAA4BnB,iBAA5B,EAA+C,CAAG;;;;;AAGtD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;IACMoB;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC98KA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMa;;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;AACF;AACA,uBAAYC,OAAZ,EAAqB;AAAA;;AAAA;;AACjB;AACR;AACA;AACA;AACQ,SAAKC,eAAL,GAAuB,IAAIp0L,GAAJ,EAAvB;AACA;AACR;AACA;;AACQ,SAAKq0L,UAAL,GAAkB,IAAlB;;AACA,QAAI,CAACF,OAAL,EAAc;AACV,WAAKA,OAAL,GAAe,IAAIn0L,GAAJ,EAAf;AACH,KAFD,MAGK,IAAI,OAAOm0L,OAAP,KAAmB,QAAvB,EAAiC;AAClC,WAAKG,QAAL,GAAgB,YAAM;AAClB,aAAI,CAACH,OAAL,GAAe,IAAIn0L,GAAJ,E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aAAKS,SAAL,GAAiB,KAAKD,OAAL,GAAe,IAAhC;AACH;AACJ;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;IACMO,0PACF,0BAAY9mE,YAAZ,EAA0B;AAAA;;AACtB,OAAKA,YAAL,GAAoBA,YAApB;AACH;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM+mE;AACF,yBAAc;AAAA;;AACV,SAAKxtM,GAAL,GAAW,IAAIoX,GAAJ,EAAX;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACI,aAAIsa,KAAJ,EAAWrvB,KAAX,EAAkB;AACd,WAAKrC,GAAL,CAASkX,GAAT,CAAawa,KAAb,EAAoBrvB,KAApB;AACA,aAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,aAAIqvB,KAAJ,EAAW;AACP,UAAI,CAAC,KAAK1xB,GAAL,CAASsX,GAAT,CAAaoa,KAAb,CAAL,EAA0B;AACtB,aAAK1xB,GAAL,CAASkX,GAAT,CAAawa,KAAb,EAAoBA,KAAK,CAAC+0G,YAAN,EAApB;AACH;;AACD,aAAO,KAAKzmI,GAAL,CAASuX,GAAT,CAAama,KAAb,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,iBAAOA,KAAP,EAAc;AACV,WAAK1xB,GAAL,CAASinK,MAAT,CAAgBv1I,KAAhB;AACA,aAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,aAAIA,KAAJ,EAAW;AACP,aAAO,KAAK1xB,GAAL,CAASsX,GAAT,CAAaoa,KAAb,CAAP;AACH;AACD;AACJ;AACA;;;;WACI,gBAAO;AACH,aAAO,KAAK1xB,GAAL,CAAS0P,IAAT,EAAP;AACH;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;A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d;AAIH23I,IAAAA,OAAO,EAAEvmD,OAAO,CAACumD,OAJd;AAKHl7E,IAAAA,MAAM,EAAE20B,OAAO,CAAC30B,MALb;AAMHuoI,IAAAA,cAAc,EAAE5zG,OAAO,CAAC4zG,cANrB;AAOHE,IAAAA,YAAY,EAAE9zG,OAAO,CAAC8zG,YAPnB;AAQHD,IAAAA,eAAe,EAAE7zG,OAAO,CAAC6zG;AARtB,GAAP;AAUH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMiB;MAAAA;AACF,wBAAYvmD,OAAZ,EAAqB;AAAA;;AACjB,WAAKA,OAAL,GAAeA,OAAf;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;aACI,iBAAQl8G,KAAR,EAAeuuD,GAAf,EAAkC;AAAA;;AAAA,YAAdZ,OAAc,uEAAJ,EAAI;AAC9B,YAAI+0G,GAAJ,CAD8B,CAE9B;;AACA,YAAI1iK,KAAK,YAAYohK,WAArB,EAAkC;AAC9B;AACA;AACAsB,UAAAA,GAAG,GAAG1iK,KAAN;AACH,SAJD,MAKK;AACD;AACA;AACA;AACA;AACA,cAAI2+J,OAAO,GAAGpzK,SAAd;;AACA,cAAIoiE,OAAO,CAACgxG,OAAR,YAA2BD,WAA/B,EAA4C;AACxCC,YAAAA,OAAO,GAAGhxG,OAAO,CAACgxG,OAAlB;AACH,WAFD,MAGK;AACDA,YAAAA,OAAO,GAAG,IAAID,WAAJ,CAAgB/wG,OAAO,CAACgxG,OAAxB,CAAV;AACH,WAXA,CAYD;;;AACA,cAAI3lI,MAAM,GAAGztC,SAAb;;AACA,cAAI,CAAC,CAACoiE,OAAO,CAAC30B,MAAd,EAAsB;AAClB,gBAAI20B,OAAO,CAAC30B,MAAR,YAA0BmnI,UAA9B,EAA0C;AACtCnnI,cAAAA,MAAM,GAAG20B,OAAO,CAAC30B,MAAjB;AACH,aAFD,MAGK;AACDA,cAAAA,MAAM,GAAG,IAAImnI,UAAJ,CAAe;AAAEK,gBAAAA,UAAU,EAAE7yG,OAAO,CAAC30B;AAAtB,eAAf,CAAT;AACH;AACJ,WArBA,CAsBD;;;AACA0pI,UAAAA,GAAG,GAAG,IAAItB,WAAJ,CAAgBphK,KAAhB,EAAuBuuD,GAAvB,EAA6BZ,OAAO,CAACujE,IAAR,KAAiB3lI,SAAjB,GAA6BoiE,OAAO,CAACujE,IAArC,GAA4C,IAAzE,EAAgF;AAClFytC,YAAAA,OAAO,EAAPA,OADkF;AAElFpiM,YAAAA,OAAO,EAAEoxF,OAAO,CAACpxF,OAFiE;AAGlFy8D,YAAAA,MAAM,EAANA,MAHkF;AAIlFuoI,YAAAA,cAAc,EAAE5zG,OAAO,CAAC4zG,cAJ0D;AAKlF;AACAE,YAAAA,YAAY,EAAE9zG,OAAO,CAAC8zG,YAAR,IAAwB,MAN4C;AAOlFD,YAAAA,eAAe,EAAE7zG,OAAO,CAAC6zG;AAPyD,WAAhF,CAAN;AASH,SAxC6B,CAyC9B;AACA;AACA;AACA;;;AACA,YAAMmB,OAAO,GAAGlvD,wCAAE,CAACivD,GAAD,CAAF,CAAQjnD,IAAR,CAAaoC,yDAAS,CAAC,UAAC6kD,GAAD;AAAA,iBAAS,OAAI,CAACxmD,OAAL,CAAa74I,MAAb,CAAoBq/L,GAApB,CAAT;AAAA,SAAD,CAAtB,CAAhB,CA7C8B,CA8C9B;AACA;AACA;;AACA,YAAI1iK,KAAK,YAAYohK,WAAjB,IAAgCzzG,OAAO,CAACumD,OAAR,KAAoB,QAAxD,EAAkE;AAC9D,iBAAOyuD,OAAP;AACH,SAnD6B,CAoD9B;AACA;AACA;;;AACA,YAAMC,IAAI,GAAGD,OAAO,CAAClnD,IAAR,CAAav9I,sDAAM,CAAC,UAACY,KAAD;AAAA,iBAAWA,KAAK,YAAYujM,YAA5B;AAAA,SAAD,CAAnB,CAAb,CAvD8B,CAwD9B;;AACA,gBAAQ10G,OAAO,CAACumD,OAAR,IAAmB,MAA3B;AACI,eAAK,MAAL;AACI;AACA;AACA;AACA;AACA;AACA,oBAAQwuD,GAAG,CAACjB,YAAZ;AACI,mBAAK,aAAL;AACI,uBAAOmB,IAAI,CAACnnD,IAAL,CAAUroJ,mDAAG,CAAC,UAACiuL,GAAD,EAAS;AAC1B;AACA,sBAAIA,GAAG,CAACnwB,IAAJ,KAAa,IAAb,IAAqB,EAAEmwB,GAAG,CAACnwB,IAAJ,YAAoBtzG,WAAtB,CAAzB,EAA6D;AACzD,0BAAM,IAAIjgC,KAAJ,CAAU,iCAAV,CAAN;AACH;;AACD,yBAAO0jK,GAAG,CAACnwB,IAAX;AACH,iBANmB,CAAb,CAAP;;AAOJ,mBAAK,MAAL;AACI,uBAAO0xC,IAAI,CAACnnD,IAAL,CAAUroJ,mDAAG,CAAC,UAACiuL,GAAD,EAAS;AAC1B;AACA,sBAAIA,GAAG,CAACnwB,IAAJ,KAAa,IAAb,IAAqB,EAAEmwB,GAAG,CAACnwB,IAAJ,YAAoB6vC,IAAtB,CAAzB,EAAsD;AAClD,0BAAM,IAAIpjL,KAAJ,CAAU,yBAAV,CAAN;AACH;;AACD,yBAAO0jK,GAAG,CAACnwB,IAAX;AACH,iBANmB,CAAb,CAAP;;AAOJ,mBAAK,MAAL;AACI,uBAAO0xC,IAAI,CAACnnD,IAAL,CAAUroJ,mDAAG,CAAC,UAACiuL,GAAD,EAAS;AAC1B;AACA,sBAAIA,GAAG,CAACnwB,IAAJ,KAAa,IAAb,IAAqB,OAAOmwB,GAAG,CAACnwB,IAAX,KAAoB,QAA7C,EAAuD;AACnD,0BAAM,IAAIvzI,KAAJ,CAAU,2BAAV,CAAN;AACH;;AACD,yBAAO0jK,GAAG,CAACnwB,IAAX;AACH,iBANmB,CAAb,CAAP;;AAOJ,mBAAK,MAAL;AACA;AACI;AACA,uBAAO0xC,IAAI,CAACnnD,IAAL,CAAUroJ,mDAAG,CAAC,UAACiuL,GAAD;AAAA,yBAASA,GAAG,CAACnwB,IAAb;AAAA,iBAAD,CAAb,CAAP;AA5BR;;AA8BJ,eAAK,UAAL;AACI;AACA,mBAAO0xC,IAAP;;AACJ;AACI;AACA,kBAAM,IAAIjlL,KAAJ,+CAAiDgwE,OAAO,CAACumD,OAAzD,OAAN;AA1CR;AA4CH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,iBAAO3lD,GAAP,EAA0B;AAAA,YAAdZ,OAAc,uEAAJ,EAAI;AACtB,eAAO,KAAKk1G,OAAL,CAAa,QAAb,EAAuBt0G,GAAvB,EAA4BZ,OAA5B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;;aACI,aAAIY,GAAJ,EAAuB;AAAA,YAAdZ,OAAc,uEAAJ,EAAI;AACnB,eAAO,KAAKk1G,OAAL,CAAa,KAAb,EAAoBt0G,GAApB,EAAyBZ,OAAzB,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;aACI,cAAKY,GAAL,EAAwB;AAAA,YAAdZ,OAAc,uEAAJ,EAAI;AACpB,eAAO,KAAKk1G,OAAL,CAAa,MAAb,EAAqBt0G,GAArB,EAA0BZ,OAA1B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,eAAMY,GAAN,EAAWu0G,aAAX,EAA0B;AACtB,eAAO,KAAKD,OAAL,CAAa,OAAb,EAAsBt0G,GAAtB,EAA2B;AAC9Bv1B,UAAAA,MAAM,EAAE,IAAImnI,UAAJ,GAAiB3iM,MAAjB,CAAwBslM,aAAxB,EAAuC,gBAAvC,CADsB;AAE9B5uD,UAAAA,OAAO,EAAE,MAFqB;AAG9ButD,UAAAA,YAAY,EAAE;AAHgB,SAA3B,CAAP;AAKH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;aACI,iBAAQlzG,GAAR,EAA2B;AAAA,YAAdZ,QAAc,uEAAJ,EAAI;;AACvB,eAAO,KAAKk1G,OAAL,CAAa,SAAb,EAAwBt0G,GAAxB,EAA6BZ,QAA7B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;;aACI,eAAMY,GAAN,EAAW2iE,IAAX,EAA+B;AAAA,YAAdvjE,OAAc,uEAAJ,EAAI;AAC3B,eAAO,KAAKk1G,OAAL,CAAa,OAAb,EAAsBt0G,GAAtB,EAA2Bi0G,OAAO,CAAC70G,OAAD,EAAUujE,IAAV,CAAlC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,cAAK3iE,GAAL,EAAU2iE,IAAV,EAA8B;AAAA,YAAdvjE,OAAc,uEAAJ,EAAI;AAC1B,eAAO,KAAKk1G,OAAL,CAAa,MAAb,EAAqBt0G,GAArB,EAA0Bi0G,OAAO,CAAC70G,OAAD,EAAUujE,IAAV,CAAjC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,aAAI3iE,GAAJ,EAAS2iE,IAAT,EAA6B;AAAA,YAAdvjE,OAAc,uEAAJ,EAAI;AACzB,eAAO,KAAKk1G,OAAL,CAAa,KAAb,EAAoBt0G,GAApB,EAAyBi0G,OAAO,CAAC70G,OAAD,EAAUujE,IAAV,CAAhC,CAAP;AACH;;;;;;AAELuxC,EAAAA,UAAU,CAAC1wC,IAAX;AAAA,qBAAuG0wC,UAAvG,EAA6F1tM,uDAA7F,CAAmIypM,WAAnI;AAAA;;AACAiE,EAAAA,UAAU,CAACzwC,KAAX,kBAD6Fj9J,iEAC7F;AAAA,WAA2G0tM,UAA3G;AAAA,aAA2GA,UAA3G;AAAA;SAjOMA;;;AAkON;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;IACMM;AACF,kCAAYxzK,IAAZ,EAAkBmyG,WAAlB,EAA+B;AAAA;;AAC3B,SAAKnyG,IAAL,GAAYA,IAAZ;AACA,SAAKmyG,WAAL,GAAmBA,WAAnB;AACH;;;;WACD,gBAAOghE,GAAP,EAAY;AACR,aAAO,KAAKhhE,WAAL,CAAiBshE,SAAjB,CAA2BN,GAA3B,EAAgC,KAAKnzK,IAArC,CAAP;AACH;;;;;AAEL;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM0zK,iBAAiB,gBAAG,IAAIzqB,0DAAJ,CAAmB,mBAAnB,CAA1B;IACM0qB;MAAAA;;;;;;;aACF,mBAAUR,GAAV,EAAenzK,IAAf,EAAqB;AACjB,eAAOA,IAAI,CAAClsB,MAAL,CAAYq/L,GAAZ,CAAP;AACH;;;;;;AAELQ,EAAAA,eAAe,CAACnxC,IAAhB;AAAA,qBAA4GmxC,eAA5G;AAAA;;AACAA,EAAAA,eAAe,CAAClxC,KAAhB,kBAxC6Fj9J,iEAwC7F;AAAA,WAAgHmuM,eAAhH;AAAA,aAAgHA,eAAhH;AAAA;SANMA;;;AAON;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,aAAa,GAAG,CAApB;AACA;AACA;AACA;AACA;;AACA,IAAIC,eAAJ,EACA;AACA;;AACA,IAAMC,qBAAqB,GAAG,gDAA9B,EACA;AACA;;AACA,IAAMC,sBAAsB,GAAG,+CAA/B;AACA,IAAMC,6BAA6B,GAAG,6CAAtC,EACA;AACA;;AACA,IAAMC,+BAA+B,GAAG,wCAAxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC;;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;MAAAA;AACF,gCAAYC,WAAZ,EAAyB/iL,QAAzB,EAAmC;AAAA;;AAC/B,WAAK+iL,WAAL,GAAmBA,WAAnB;AACA,WAAK/iL,QAAL,GAAgBA,QAAhB;AACA;AACR;AACA;;AACQ,WAAKgjL,eAAL,GAAuBp4K,OAAO,CAACC,OAAR,EAAvB;AACH;AACD;AACJ;AACA;;;;;aACI,wBAAe;AACX,2CAA4B03K,aAAa,EAAzC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,gBAAOT,GAAP,EAAY;AAAA;;AACR;AACA;AACA,YAAIA,GAAG,CAAC91D,MAAJ,KAAe,OAAnB,EAA4B;AACxB,gBAAM,IAAIjvH,KAAJ,CAAU2lL,sBAAV,CAAN;AACH,SAFD,MAGK,IAAIZ,GAAG,CAACjB,YAAJ,KAAqB,MAAzB,EAAiC;AAClC,gBAAM,IAAI9jL,KAAJ,CAAU4lL,6BAAV,CAAN;AACH,SARO,CASR;AACA;;;AACA,YAAIb,GAAG,CAAC/D,OAAJ,CAAY77L,IAAZ,GAAmB9O,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B,gBAAM,IAAI2pB,KAAJ,CAAU6lL,+BAAV,CAAN;AACH,SAbO,CAcR;;;AACA,eAAO,IAAI5uD,6CAAJ,CAAe,UAACb,QAAD,EAAc;AAChC;AACA;AACA;AACA,cAAMl3H,QAAQ,GAAG,OAAI,CAACgnL,YAAL,EAAjB;;AACA,cAAMt1G,GAAG,GAAGm0G,GAAG,CAAChB,aAAJ,CAAkBtgL,OAAlB,CAA0B,sBAA1B,aAAsDvE,QAAtD,QAAZ,CALgC,CAMhC;;AACA,cAAMza,IAAI,GAAG,OAAI,CAACwe,QAAL,CAAcg/B,aAAd,CAA4B,QAA5B,CAAb;;AACAx9C,UAAAA,IAAI,CAAC2pB,GAAL,GAAWwiE,GAAX,CARgC,CAShC;AACA;AACA;;AACA,cAAI2iE,IAAI,GAAG,IAAX,CAZgC,CAahC;;AACA,cAAI4yC,QAAQ,GAAG,KAAf,CAdgC,CAehC;AACA;AACA;;AACA,iBAAI,CAACH,WAAL,CAAiB9mL,QAAjB,IAA6B,UAACvmB,IAAD,EAAU;AACnC;AACA,mBAAO,OAAI,CAACqtM,WAAL,CAAiB9mL,QAAjB,CAAP,CAFmC,CAGnC;;AACAq0I,YAAAA,IAAI,GAAG56J,IAAP;AACAwtM,YAAAA,QAAQ,GAAG,IAAX;AACH,WAND,CAlBgC,CAyBhC;AACA;AACA;;;AACA,cAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAClB;AACA,gBAAI3hM,IAAI,CAACpE,UAAT,EAAqB;AACjBoE,cAAAA,IAAI,CAACpE,UAAL,CAAgBiiD,WAAhB,CAA4B79C,IAA5B;AACH,aAJiB,CAKlB;AACA;;;AACA,mBAAO,OAAI,CAACuhM,WAAL,CAAiB9mL,QAAjB,CAAP;AACH,WARD,CA5BgC,CAqChC;AACA;AACA;AACA;;;AACA,cAAMmnL,MAAM,GAAG,SAATA,MAAS,CAACllM,KAAD,EAAW;AACtB;AACA;AACA;AACA,mBAAI,CAAC8kM,eAAL,CAAqBz4K,IAArB,CAA0B,YAAM;AAC5B;AACA44K,cAAAA,OAAO,GAFqB,CAG5B;;AACA,kBAAI,CAACD,QAAL,EAAe;AACX;AACA;AACA/vD,gBAAAA,QAAQ,CAACt5I,KAAT,CAAe,IAAI8nM,iBAAJ,CAAsB;AACjCh0G,kBAAAA,GAAG,EAAHA,GADiC;AAEjCzjE,kBAAAA,MAAM,EAAE,CAFyB;AAGjCC,kBAAAA,UAAU,EAAE,aAHqB;AAIjCtwB,kBAAAA,KAAK,EAAE,IAAIkjB,KAAJ,CAAU0lL,qBAAV;AAJ0B,iBAAtB,CAAf;AAMA;AACH,eAd2B,CAe5B;AACA;;;AACAtvD,cAAAA,QAAQ,CAACxkH,IAAT,CAAc,IAAI8yK,YAAJ,CAAiB;AAC3BnxC,gBAAAA,IAAI,EAAJA,IAD2B;AAE3BpmI,gBAAAA,MAAM,EAAE;AAAI;AAFe;AAG3BC,gBAAAA,UAAU,EAAE,IAHe;AAI3BwjE,gBAAAA,GAAG,EAAHA;AAJ2B,eAAjB,CAAd,EAjB4B,CAuB5B;;AACAwlD,cAAAA,QAAQ,CAACC,QAAT;AACH,aAzBD;AA0BH,WA9BD,CAzCgC,CAwEhC;AACA;AACA;;;AACA,cAAMiwD,OAAO,GAAG,SAAVA,OAAU,CAACxpM,KAAD,EAAW;AACvBspM,YAAAA,OAAO,GADgB,CAEvB;;AACAhwD,YAAAA,QAAQ,CAACt5I,KAAT,CAAe,IAAI8nM,iBAAJ,CAAsB;AACjC9nM,cAAAA,KAAK,EAALA,KADiC;AAEjCqwB,cAAAA,MAAM,EAAE,CAFyB;AAGjCC,cAAAA,UAAU,EAAE,aAHqB;AAIjCwjE,cAAAA,GAAG,EAAHA;AAJiC,aAAtB,CAAf;AAMH,WATD,CA3EgC,CAqFhC;AACA;;;AACAnsF,UAAAA,IAAI,CAAC87D,gBAAL,CAAsB,MAAtB,EAA8B8lI,MAA9B;AACA5hM,UAAAA,IAAI,CAAC87D,gBAAL,CAAsB,OAAtB,EAA+B+lI,OAA/B;;AACA,iBAAI,CAACrjL,QAAL,CAAcswI,IAAd,CAAmBnxG,WAAnB,CAA+B39C,IAA/B,EAzFgC,CA0FhC;;;AACA2xI,UAAAA,QAAQ,CAACxkH,IAAT,CAAc;AAAEpvB,YAAAA,IAAI,EAAE4hM,aAAa,CAACmC;AAAtB,WAAd,EA3FgC,CA4FhC;;AACA,iBAAO,YAAM;AACT,gBAAI,CAACJ,QAAL,EAAe;AACX,qBAAI,CAACK,eAAL,CAAqB/hM,IAArB;AACH,aAHQ,CAIT;;;AACA2hM,YAAAA,OAAO;AACV,WAND;AAOH,SApGM,CAAP;AAqGH;;;aACD,yBAAgBK,MAAhB,EAAwB;AACpB;AACA;AACA;AACA,YAAI,CAAChB,eAAL,EAAsB;AAClBA,UAAAA,eAAe,GAAG,KAAKxiL,QAAL,CAAcyjL,cAAd,CAA6BC,kBAA7B,EAAlB;AACH;;AACDlB,QAAAA,eAAe,CAACmB,SAAhB,CAA0BH,MAA1B;AACH;;;;;;AAELV,EAAAA,kBAAkB,CAAC3xC,IAAnB;AAAA,qBAA+G2xC,kBAA/G,EA7O6F3uM,uDA6O7F,CAAmJ0uM,oBAAnJ,GA7O6F1uM,uDA6O7F,CAAoL2lL,sDAApL;AAAA;;AACAgpB,EAAAA,kBAAkB,CAAC1xC,KAAnB,kBA9O6Fj9J,iEA8O7F;AAAA,WAAmH2uM,kBAAnH;AAAA,aAAmHA,kBAAnH;AAAA;SArJMA;;;AAsJN;AAAA;AAAA;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMc;MAAAA;AACF,8BAAYC,KAAZ,EAAmB;AAAA;;AACf,WAAKA,KAAL,GAAaA,KAAb;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;aACI,mBAAU/B,GAAV,EAAenzK,IAAf,EAAqB;AACjB,YAAImzK,GAAG,CAAC91D,MAAJ,KAAe,OAAnB,EAA4B;AACxB,iBAAO,KAAK63D,KAAL,CAAWphM,MAAX,CAAkBq/L,GAAlB,CAAP;AACH,SAHgB,CAIjB;;;AACA,eAAOnzK,IAAI,CAAClsB,MAAL,CAAYq/L,GAAZ,CAAP;AACH;;;;;;AAEL8B,EAAAA,gBAAgB,CAACzyC,IAAjB;AAAA,qBAA6GyyC,gBAA7G,EAlR6FzvM,uDAkR7F,CAA+I2uM,kBAA/I;AAAA;;AACAc,EAAAA,gBAAgB,CAACxyC,KAAjB,kBAnR6Fj9J,iEAmR7F;AAAA,WAAiHyvM,gBAAjH;AAAA,aAAiHA,gBAAjH;AAAA;SApBMA;;;AAqBN;AAAA;AAAA;AAAA;;AAIA,IAAME,WAAW,GAAG,cAApB;AACA;AACA;AACA;AACA;;AACA,SAASC,cAAT,CAAwBC,GAAxB,EAA6B;AACzB,MAAI,iBAAiBA,GAAjB,IAAwBA,GAAG,CAACC,WAAhC,EAA6C;AACzC,WAAOD,GAAG,CAACC,WAAX;AACH;;AACD,MAAI,mBAAmBnmL,IAAnB,CAAwBkmL,GAAG,CAACE,qBAAJ,EAAxB,CAAJ,EAA0D;AACtD,WAAOF,GAAG,CAACG,iBAAJ,CAAsB,eAAtB,CAAP;AACH;;AACD,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;MAAAA;AACF,4BAAYC,UAAZ,EAAwB;AAAA;;AACpB,WAAKA,UAAL,GAAkBA,UAAlB;AACH;AACD;AACJ;AACA;AACA;AACA;;;;;aACI,gBAAOvC,GAAP,EAAY;AAAA;;AACR;AACA;AACA,YAAIA,GAAG,CAAC91D,MAAJ,KAAe,OAAnB,EAA4B;AACxB,gBAAM,IAAIjvH,KAAJ,iFAAN;AACH,SALO,CAMR;;;AACA,eAAO,IAAIi3H,6CAAJ,CAAe,UAACb,QAAD,EAAc;AAChC;AACA,cAAM6wD,GAAG,GAAG,OAAI,CAACK,UAAL,CAAgBhtC,KAAhB,EAAZ;;AACA2sC,UAAAA,GAAG,CAAC51G,IAAJ,CAAS0zG,GAAG,CAAC91D,MAAb,EAAqB81D,GAAG,CAAChB,aAAzB;;AACA,cAAI,CAAC,CAACgB,GAAG,CAAClB,eAAV,EAA2B;AACvBoD,YAAAA,GAAG,CAACpD,eAAJ,GAAsB,IAAtB;AACH,WAN+B,CAOhC;;;AACAkB,UAAAA,GAAG,CAAC/D,OAAJ,CAAY32L,OAAZ,CAAoB,UAAC1I,IAAD,EAAOxK,MAAP;AAAA,mBAAkB8vM,GAAG,CAACM,gBAAJ,CAAqB5lM,IAArB,EAA2BxK,MAAM,CAACkuB,IAAP,CAAY,GAAZ,CAA3B,CAAlB;AAAA,WAApB,EARgC,CAShC;;AACA,cAAI,CAAC0/K,GAAG,CAAC/D,OAAJ,CAAYj0L,GAAZ,CAAgB,QAAhB,CAAL,EAAgC;AAC5Bk6L,YAAAA,GAAG,CAACM,gBAAJ,CAAqB,QAArB,EAA+B,mCAA/B;AACH,WAZ+B,CAahC;;;AACA,cAAI,CAACxC,GAAG,CAAC/D,OAAJ,CAAYj0L,GAAZ,CAAgB,cAAhB,CAAL,EAAsC;AAClC,gBAAMy6L,YAAY,GAAGzC,GAAG,CAAC0C,uBAAJ,EAArB,CADkC,CAElC;;AACA,gBAAID,YAAY,KAAK,IAArB,EAA2B;AACvBP,cAAAA,GAAG,CAACM,gBAAJ,CAAqB,cAArB,EAAqCC,YAArC;AACH;AACJ,WApB+B,CAqBhC;;;AACA,cAAIzC,GAAG,CAACjB,YAAR,EAAsB;AAClB,gBAAMA,YAAY,GAAGiB,GAAG,CAACjB,YAAJ,CAAiBnqL,WAAjB,EAArB,CADkB,CAElB;AACA;AACA;AACA;AACA;;AACAstL,YAAAA,GAAG,CAACnD,YAAJ,GAAqBA,YAAY,KAAK,MAAlB,GAA4BA,YAA5B,GAA2C,MAA/D;AACH,WA9B+B,CA+BhC;;;AACA,cAAM4D,OAAO,GAAG3C,GAAG,CAAC4C,aAAJ,EAAhB,CAhCgC,CAiChC;AACA;AACA;AACA;AACA;AACA;;AACA,cAAIC,cAAc,GAAG,IAArB,CAvCgC,CAwChC;AACA;;AACA,cAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AACzB,gBAAID,cAAc,KAAK,IAAvB,EAA6B;AACzB,qBAAOA,cAAP;AACH;;AACD,gBAAMx6K,UAAU,GAAG65K,GAAG,CAAC75K,UAAJ,IAAkB,IAArC,CAJyB,CAKzB;;AACA,gBAAM4zK,OAAO,GAAG,IAAID,WAAJ,CAAgBkG,GAAG,CAACE,qBAAJ,EAAhB,CAAhB,CANyB,CAOzB;AACA;;AACA,gBAAMv2G,GAAG,GAAGo2G,cAAc,CAACC,GAAD,CAAd,IAAuBlC,GAAG,CAACn0G,GAAvC,CATyB,CAUzB;;AACAg3G,YAAAA,cAAc,GAAG,IAAIpD,kBAAJ,CAAuB;AAAExD,cAAAA,OAAO,EAAPA,OAAF;AAAW7zK,cAAAA,MAAM,EAAE85K,GAAG,CAAC95K,MAAvB;AAA+BC,cAAAA,UAAU,EAAVA,UAA/B;AAA2CwjE,cAAAA,GAAG,EAAHA;AAA3C,aAAvB,CAAjB;AACA,mBAAOg3G,cAAP;AACH,WAbD,CA1CgC,CAwDhC;AACA;AACA;;;AACA,cAAMvB,MAAM,GAAG,SAATA,MAAS,GAAM;AACjB;AACA,kCAA2CwB,cAAc,EAAzD;AAAA,gBAAM7G,OAAN,mBAAMA,OAAN;AAAA,gBAAe7zK,MAAf,mBAAeA,MAAf;AAAA,gBAAuBC,UAAvB,mBAAuBA,UAAvB;AAAA,gBAAmCwjE,GAAnC,mBAAmCA,GAAnC,CAFiB,CAGjB;;;AACA,gBAAI2iE,IAAI,GAAG,IAAX;;AACA,gBAAIpmI,MAAM,KAAK;AAAI;AAAnB,cAAmD;AAC/C;AACAomI,gBAAAA,IAAI,GAAI,OAAO0zC,GAAG,CAACh6K,QAAX,KAAwB,WAAzB,GAAwCg6K,GAAG,CAACx4K,YAA5C,GAA2Dw4K,GAAG,CAACh6K,QAAtE;AACH,eARgB,CASjB;;;AACA,gBAAIE,MAAM,KAAK,CAAf,EAAkB;AACdA,cAAAA,MAAM,GAAG,CAAC,CAAComI,IAAF,GAAS;AAAI;AAAb,gBAAuC,CAAhD;AACH,aAZgB,CAajB;AACA;AACA;AACA;;;AACA,gBAAIrmI,EAAE,GAAGC,MAAM,IAAI,GAAV,IAAiBA,MAAM,GAAG,GAAnC,CAjBiB,CAkBjB;AACA;;AACA,gBAAI43K,GAAG,CAACjB,YAAJ,KAAqB,MAArB,IAA+B,OAAOvwC,IAAP,KAAgB,QAAnD,EAA6D;AACzD;AACA,kBAAMu0C,YAAY,GAAGv0C,IAArB;AACAA,cAAAA,IAAI,GAAGA,IAAI,CAAC9vI,OAAL,CAAasjL,WAAb,EAA0B,EAA1B,CAAP;;AACA,kBAAI;AACA;AACAxzC,gBAAAA,IAAI,GAAGA,IAAI,KAAK,EAAT,GAAcpuI,IAAI,CAACpB,KAAL,CAAWwvI,IAAX,CAAd,GAAiC,IAAxC;AACH,eAHD,CAIA,OAAOz2J,KAAP,EAAc;AACV;AACA;AACA;AACAy2J,gBAAAA,IAAI,GAAGu0C,YAAP,CAJU,CAKV;AACA;;AACA,oBAAI56K,EAAJ,EAAQ;AACJ;AACAA,kBAAAA,EAAE,GAAG,KAAL,CAFI,CAGJ;;AACAqmI,kBAAAA,IAAI,GAAG;AAAEz2J,oBAAAA,KAAK,EAALA,KAAF;AAASmD,oBAAAA,IAAI,EAAEszJ;AAAf,mBAAP;AACH;AACJ;AACJ;;AACD,gBAAIrmI,EAAJ,EAAQ;AACJ;AACAkpH,cAAAA,QAAQ,CAACxkH,IAAT,CAAc,IAAI8yK,YAAJ,CAAiB;AAC3BnxC,gBAAAA,IAAI,EAAJA,IAD2B;AAE3BytC,gBAAAA,OAAO,EAAPA,OAF2B;AAG3B7zK,gBAAAA,MAAM,EAANA,MAH2B;AAI3BC,gBAAAA,UAAU,EAAVA,UAJ2B;AAK3BwjE,gBAAAA,GAAG,EAAEA,GAAG,IAAIhjE;AALe,eAAjB,CAAd,EAFI,CASJ;AACA;;AACAwoH,cAAAA,QAAQ,CAACC,QAAT;AACH,aAZD,MAaK;AACD;AACAD,cAAAA,QAAQ,CAACt5I,KAAT,CAAe,IAAI8nM,iBAAJ,CAAsB;AACjC;AACA9nM,gBAAAA,KAAK,EAAEy2J,IAF0B;AAGjCytC,gBAAAA,OAAO,EAAPA,OAHiC;AAIjC7zK,gBAAAA,MAAM,EAANA,MAJiC;AAKjCC,gBAAAA,UAAU,EAAVA,UALiC;AAMjCwjE,gBAAAA,GAAG,EAAEA,GAAG,IAAIhjE;AANqB,eAAtB,CAAf;AAQH;AACJ,WAnED,CA3DgC,CA+HhC;AACA;AACA;;;AACA,cAAM04K,OAAO,GAAG,SAAVA,OAAU,CAACxpM,KAAD,EAAW;AACvB,mCAAgB+qM,cAAc,EAA9B;AAAA,gBAAQj3G,GAAR,oBAAQA,GAAR;;AACA,gBAAM8yF,GAAG,GAAG,IAAIkhB,iBAAJ,CAAsB;AAC9B9nM,cAAAA,KAAK,EAALA,KAD8B;AAE9BqwB,cAAAA,MAAM,EAAE85K,GAAG,CAAC95K,MAAJ,IAAc,CAFQ;AAG9BC,cAAAA,UAAU,EAAE65K,GAAG,CAAC75K,UAAJ,IAAkB,eAHA;AAI9BwjE,cAAAA,GAAG,EAAEA,GAAG,IAAIhjE;AAJkB,aAAtB,CAAZ;AAMAwoH,YAAAA,QAAQ,CAACt5I,KAAT,CAAe4mL,GAAf;AACH,WATD,CAlIgC,CA4IhC;AACA;AACA;AACA;;;AACA,cAAIqkB,WAAW,GAAG,KAAlB,CAhJgC,CAiJhC;AACA;;AACA,cAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAC7mM,KAAD,EAAW;AAC9B;AACA,gBAAI,CAAC4mM,WAAL,EAAkB;AACd3xD,cAAAA,QAAQ,CAACxkH,IAAT,CAAci2K,cAAc,EAA5B;AACAE,cAAAA,WAAW,GAAG,IAAd;AACH,aAL6B,CAM9B;AACA;;;AACA,gBAAIE,aAAa,GAAG;AAChBzlM,cAAAA,IAAI,EAAE4hM,aAAa,CAAC8D,gBADJ;AAEhBC,cAAAA,MAAM,EAAEhnM,KAAK,CAACgnM;AAFE,aAApB,CAR8B,CAY9B;;AACA,gBAAIhnM,KAAK,CAACinM,gBAAV,EAA4B;AACxBH,cAAAA,aAAa,CAACrrH,KAAd,GAAsBz7E,KAAK,CAACy7E,KAA5B;AACH,aAf6B,CAgB9B;AACA;AACA;;;AACA,gBAAImoH,GAAG,CAACjB,YAAJ,KAAqB,MAArB,IAA+B,CAAC,CAACmD,GAAG,CAACx4K,YAAzC,EAAuD;AACnDw5K,cAAAA,aAAa,CAACI,WAAd,GAA4BpB,GAAG,CAACx4K,YAAhC;AACH,aArB6B,CAsB9B;;;AACA2nH,YAAAA,QAAQ,CAACxkH,IAAT,CAAcq2K,aAAd;AACH,WAxBD,CAnJgC,CA4KhC;AACA;;;AACA,cAAMK,YAAY,GAAG,SAAfA,YAAe,CAACnnM,KAAD,EAAW;AAC5B;AACA;AACA,gBAAIonM,QAAQ,GAAG;AACX/lM,cAAAA,IAAI,EAAE4hM,aAAa,CAACoE,cADT;AAEXL,cAAAA,MAAM,EAAEhnM,KAAK,CAACgnM;AAFH,aAAf,CAH4B,CAO5B;AACA;;AACA,gBAAIhnM,KAAK,CAACinM,gBAAV,EAA4B;AACxBG,cAAAA,QAAQ,CAAC3rH,KAAT,GAAiBz7E,KAAK,CAACy7E,KAAvB;AACH,aAX2B,CAY5B;;;AACAw5D,YAAAA,QAAQ,CAACxkH,IAAT,CAAc22K,QAAd;AACH,WAdD,CA9KgC,CA6LhC;;;AACAtB,UAAAA,GAAG,CAAC1mI,gBAAJ,CAAqB,MAArB,EAA6B8lI,MAA7B;AACAY,UAAAA,GAAG,CAAC1mI,gBAAJ,CAAqB,OAArB,EAA8B+lI,OAA9B;AACAW,UAAAA,GAAG,CAAC1mI,gBAAJ,CAAqB,SAArB,EAAgC+lI,OAAhC;AACAW,UAAAA,GAAG,CAAC1mI,gBAAJ,CAAqB,OAArB,EAA8B+lI,OAA9B,EAjMgC,CAkMhC;;AACA,cAAIvB,GAAG,CAACnB,cAAR,EAAwB;AACpB;AACAqD,YAAAA,GAAG,CAAC1mI,gBAAJ,CAAqB,UAArB,EAAiCynI,cAAjC,EAFoB,CAGpB;;AACA,gBAAIN,OAAO,KAAK,IAAZ,IAAoBT,GAAG,CAACwB,MAA5B,EAAoC;AAChCxB,cAAAA,GAAG,CAACwB,MAAJ,CAAWloI,gBAAX,CAA4B,UAA5B,EAAwC+nI,YAAxC;AACH;AACJ,WA1M+B,CA2MhC;;;AACArB,UAAAA,GAAG,CAACyB,IAAJ,CAAShB,OAAT;AACAtxD,UAAAA,QAAQ,CAACxkH,IAAT,CAAc;AAAEpvB,YAAAA,IAAI,EAAE4hM,aAAa,CAACmC;AAAtB,WAAd,EA7MgC,CA8MhC;AACA;;AACA,iBAAO,YAAM;AACT;AACAU,YAAAA,GAAG,CAAC9mI,mBAAJ,CAAwB,OAAxB,EAAiCmmI,OAAjC;AACAW,YAAAA,GAAG,CAAC9mI,mBAAJ,CAAwB,OAAxB,EAAiCmmI,OAAjC;AACAW,YAAAA,GAAG,CAAC9mI,mBAAJ,CAAwB,MAAxB,EAAgCkmI,MAAhC;AACAY,YAAAA,GAAG,CAAC9mI,mBAAJ,CAAwB,SAAxB,EAAmCmmI,OAAnC;;AACA,gBAAIvB,GAAG,CAACnB,cAAR,EAAwB;AACpBqD,cAAAA,GAAG,CAAC9mI,mBAAJ,CAAwB,UAAxB,EAAoC6nI,cAApC;;AACA,kBAAIN,OAAO,KAAK,IAAZ,IAAoBT,GAAG,CAACwB,MAA5B,EAAoC;AAChCxB,gBAAAA,GAAG,CAACwB,MAAJ,CAAWtoI,mBAAX,CAA+B,UAA/B,EAA2CmoI,YAA3C;AACH;AACJ,aAXQ,CAYT;;;AACA,gBAAIrB,GAAG,CAAC0B,UAAJ,KAAmB1B,GAAG,CAAC2B,IAA3B,EAAiC;AAC7B3B,cAAAA,GAAG,CAAC4B,KAAJ;AACH;AACJ,WAhBD;AAiBH,SAjOM,CAAP;AAkOH;;;;;;AAELxB,EAAAA,cAAc,CAACjzC,IAAf;AAAA,qBAA2GizC,cAA3G,EAjiB6FjwM,uDAiiB7F,CAA2IC,wDAA3I;AAAA;;AACAgwM,EAAAA,cAAc,CAAChzC,KAAf,kBAliB6Fj9J,iEAkiB7F;AAAA,WAA+GiwM,cAA/G;AAAA,aAA+GA,cAA/G;AAAA;SArPMA;;;AAsPN;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMyB,gBAAgB,gBAAG,IAAIjuB,0DAAJ,CAAmB,kBAAnB,CAAzB;AACA,IAAMkuB,gBAAgB,gBAAG,IAAIluB,0DAAJ,CAAmB,kBAAnB,CAAzB;AACA;AACA;AACA;AACA;AACA;;IACMmuB;;;AAEN;AACA;AACA;;;IACMC;MAAAA;AACF,qCAAY37F,GAAZ,EAAiB47F,QAAjB,EAA2BpY,UAA3B,EAAuC;AAAA;;AACnC,WAAKxjF,GAAL,GAAWA,GAAX;AACA,WAAK47F,QAAL,GAAgBA,QAAhB;AACA,WAAKpY,UAAL,GAAkBA,UAAlB;AACA,WAAKqY,gBAAL,GAAwB,EAAxB;AACA,WAAKC,SAAL,GAAiB,IAAjB;AACA;AACR;AACA;;AACQ,WAAKC,UAAL,GAAkB,CAAlB;AACH;;;;aACD,oBAAW;AACP,YAAI,KAAKH,QAAL,KAAkB,QAAtB,EAAgC;AAC5B,iBAAO,IAAP;AACH;;AACD,YAAMI,YAAY,GAAG,KAAKh8F,GAAL,CAASsjF,MAAT,IAAmB,EAAxC;;AACA,YAAI0Y,YAAY,KAAK,KAAKH,gBAA1B,EAA4C;AACxC,eAAKE,UAAL;AACA,eAAKD,SAAL,GAAiB3I,sEAAiB,CAAC6I,YAAD,EAAe,KAAKxY,UAApB,CAAlC;AACA,eAAKqY,gBAAL,GAAwBG,YAAxB;AACH;;AACD,eAAO,KAAKF,SAAZ;AACH;;;;;;AAELH,EAAAA,uBAAuB,CAAC70C,IAAxB;AAAA,qBAAoH60C,uBAApH,EAnlB6F7xM,uDAmlB7F,CAA6J2lL,sDAA7J,GAnlB6F3lL,uDAmlB7F,CAAkLwpM,uDAAlL,GAnlB6FxpM,uDAmlB7F,CAA0M0xM,gBAA1M;AAAA;;AACAG,EAAAA,uBAAuB,CAAC50C,KAAxB,kBAplB6Fj9J,iEAolB7F;AAAA,WAAwH6xM,uBAAxH;AAAA,aAAwHA,uBAAxH;AAAA;SA1BMA;;;AA2BN;AAAA;AAAA;AAAA;AAcA;AACA;AACA;;;IACMM;MAAAA;AACF,iCAAYC,YAAZ,EAA0BC,UAA1B,EAAsC;AAAA;;AAClC,WAAKD,YAAL,GAAoBA,YAApB;AACA,WAAKC,UAAL,GAAkBA,UAAlB;AACH;;;;aACD,mBAAU1E,GAAV,EAAenzK,IAAf,EAAqB;AACjB,YAAM83K,KAAK,GAAG3E,GAAG,CAACn0G,GAAJ,CAAQj3E,WAAR,EAAd,CADiB,CAEjB;AACA;AACA;AACA;;AACA,YAAIorL,GAAG,CAAC91D,MAAJ,KAAe,KAAf,IAAwB81D,GAAG,CAAC91D,MAAJ,KAAe,MAAvC,IAAiDy6D,KAAK,CAAC38D,UAAN,CAAiB,SAAjB,CAAjD,IACA28D,KAAK,CAAC38D,UAAN,CAAiB,UAAjB,CADJ,EACkC;AAC9B,iBAAOn7G,IAAI,CAAClsB,MAAL,CAAYq/L,GAAZ,CAAP;AACH;;AACD,YAAM59K,KAAK,GAAG,KAAKqiL,YAAL,CAAkBG,QAAlB,EAAd,CAViB,CAWjB;;AACA,YAAIxiL,KAAK,KAAK,IAAV,IAAkB,CAAC49K,GAAG,CAAC/D,OAAJ,CAAYj0L,GAAZ,CAAgB,KAAK08L,UAArB,CAAvB,EAAyD;AACrD1E,UAAAA,GAAG,GAAGA,GAAG,CAACnrI,KAAJ,CAAU;AAAEonI,YAAAA,OAAO,EAAE+D,GAAG,CAAC/D,OAAJ,CAAYr0L,GAAZ,CAAgB,KAAK88L,UAArB,EAAiCtiL,KAAjC;AAAX,WAAV,CAAN;AACH;;AACD,eAAOyK,IAAI,CAAClsB,MAAL,CAAYq/L,GAAZ,CAAP;AACH;;;;;;AAELwE,EAAAA,mBAAmB,CAACn1C,IAApB;AAAA,qBAAgHm1C,mBAAhH,EA7nB6FnyM,uDA6nB7F,CAAqJ4xM,sBAArJ,GA7nB6F5xM,uDA6nB7F,CAAwL2xM,gBAAxL;AAAA;;AACAQ,EAAAA,mBAAmB,CAACl1C,KAApB,kBA9nB6Fj9J,iEA8nB7F;AAAA,WAAoHmyM,mBAApH;AAAA,aAAoHA,mBAApH;AAAA;SAxBMA;;;AAyBN;AAAA;AAAA;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMK;MAAAA;AACF,qCAAYC,OAAZ,EAAqBtW,QAArB,EAA+B;AAAA;;AAC3B,WAAKsW,OAAL,GAAeA,OAAf;AACA,WAAKtW,QAAL,GAAgBA,QAAhB;AACA,WAAK1vD,KAAL,GAAa,IAAb;AACH;;;;aACD,gBAAOkhE,GAAP,EAAY;AACR,YAAI,KAAKlhE,KAAL,KAAe,IAAnB,EAAyB;AACrB,cAAMimE,YAAY,GAAG,KAAKvW,QAAL,CAAcvmL,GAAd,CAAkBs4L,iBAAlB,EAAqC,EAArC,CAArB;AACA,eAAKzhE,KAAL,GAAaimE,YAAY,CAACzkE,WAAb,CAAyB,UAACzzG,IAAD,EAAOmyG,WAAP;AAAA,mBAAuB,IAAIqhE,sBAAJ,CAA2BxzK,IAA3B,EAAiCmyG,WAAjC,CAAvB;AAAA,WAAzB,EAA+F,KAAK8lE,OAApG,CAAb;AACH;;AACD,eAAO,KAAKhmE,KAAL,CAAWn+H,MAAX,CAAkBq/L,GAAlB,CAAP;AACH;;;;;;AAEL6E,EAAAA,uBAAuB,CAACx1C,IAAxB;AAAA,qBAAoHw1C,uBAApH,EAtqB6FxyM,uDAsqB7F,CAA6J0pM,WAA7J,GAtqB6F1pM,uDAsqB7F,CAAqLA,oDAArL;AAAA;;AACAwyM,EAAAA,uBAAuB,CAACv1C,KAAxB,kBAvqB6Fj9J,iEAuqB7F;AAAA,WAAwHwyM,uBAAxH;AAAA,aAAwHA,uBAAxH;AAAA;SAfMA;;;AAgBN;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,mBAAT,CAA6BH,OAA7B,EAAyD;AAAA,MAAnBC,YAAmB,uEAAJ,EAAI;;AACrD,MAAI,CAACA,YAAL,EAAmB;AACf,WAAOD,OAAP;AACH;;AACD,SAAOC,YAAY,CAACzkE,WAAb,CAAyB,UAACzzG,IAAD,EAAOmyG,WAAP;AAAA,WAAuB,IAAIqhE,sBAAJ,CAA2BxzK,IAA3B,EAAiCmyG,WAAjC,CAAvB;AAAA,GAAzB,EAA+F8lE,OAA/F,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,oBAAT,GAAgC;AAC5B,MAAI,OAAO7yI,MAAP,KAAkB,QAAtB,EAAgC;AAC5B,WAAOA,MAAP;AACH;;AACD,SAAO,EAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM8yI;MAAAA;;;;;;;;AACF;AACJ;AACA;AACI,yBAAiB;AACb,eAAO;AACHhX,UAAAA,QAAQ,EAAEgX,oBADP;AAEHC,UAAAA,SAAS,EAAE,CACP;AAAEC,YAAAA,OAAO,EAAEb,mBAAX;AAAgCc,YAAAA,QAAQ,EAAE9E;AAA1C,WADO;AAFR,SAAP;AAMH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,uBAAiC;AAAA,YAAdv1G,OAAc,uEAAJ,EAAI;AAC7B,eAAO;AACHkjG,UAAAA,QAAQ,EAAEgX,oBADP;AAEHC,UAAAA,SAAS,EAAE,CACPn6G,OAAO,CAAC8gG,UAAR,GAAqB;AAAEsZ,YAAAA,OAAO,EAAEtB,gBAAX;AAA6BwB,YAAAA,QAAQ,EAAEt6G,OAAO,CAAC8gG;AAA/C,WAArB,GAAmF,EAD5E,EAEP9gG,OAAO,CAACy5G,UAAR,GAAqB;AAAEW,YAAAA,OAAO,EAAErB,gBAAX;AAA6BuB,YAAAA,QAAQ,EAAEt6G,OAAO,CAACy5G;AAA/C,WAArB,GAAmF,EAF5E;AAFR,SAAP;AAOH;;;;;;AAELS,EAAAA,oBAAoB,CAAC91C,IAArB;AAAA,qBAAiH81C,oBAAjH;AAAA;;AACAA,EAAAA,oBAAoB,CAAC5M,IAArB,kBAlvB6FlmM,+DAkvB7F;AAAA,UAAkH8yM;AAAlH;AACAA,EAAAA,oBAAoB,CAAC3M,IAArB,kBAnvB6FnmM,+DAmvB7F;AAAA,eAAmJ,CAC3ImyM,mBAD2I,EAE3I;AAAEa,MAAAA,OAAO,EAAE9E,iBAAX;AAA8BiF,MAAAA,WAAW,EAAEhB,mBAA3C;AAAgE92C,MAAAA,KAAK,EAAE;AAAvE,KAF2I,EAG3I;AAAE23C,MAAAA,OAAO,EAAEpB,sBAAX;AAAmCqB,MAAAA,QAAQ,EAAEpB;AAA7C,KAH2I,EAI3I;AAAEmB,MAAAA,OAAO,EAAEtB,gBAAX;AAA6BwB,MAAAA,QAAQ,EAAE;AAAvC,KAJ2I,EAK3I;AAAEF,MAAAA,OAAO,EAAErB,gBAAX;AAA6BuB,MAAAA,QAAQ,EAAE;AAAvC,KAL2I;AAAnJ;SAhCMJ;;;AAuCN;AAAA;AAAA;AAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMM;MAAAA;;;;AAENA,EAAAA,gBAAgB,CAACp2C,IAAjB;AAAA,qBAA6Go2C,gBAA7G;AAAA;;AACAA,EAAAA,gBAAgB,CAAClN,IAAjB,kBAlxB6FlmM,+DAkxB7F;AAAA,UAA8GozM;AAA9G;AACAA,EAAAA,gBAAgB,CAACjN,IAAjB,kBAnxB6FnmM,+DAmxB7F;AAAA,eAA2I,CACnI0tM,UADmI,EAEnI;AAAEsF,MAAAA,OAAO,EAAEvJ,WAAX;AAAwBwJ,MAAAA,QAAQ,EAAET;AAAlC,KAFmI,EAGnIvC,cAHmI,EAInI;AAAE+C,MAAAA,OAAO,EAAEtJ,WAAX;AAAwByJ,MAAAA,WAAW,EAAElD;AAArC,KAJmI,CAA3I;AAAA,cAKiB6C,oBAAoB,CAACO,WAArB,CAAiC;AACtC3Z,MAAAA,UAAU,EAAE,YAD0B;AAEtC2Y,MAAAA,UAAU,EAAE;AAF0B,KAAjC,CALjB;AAAA;SAJMe;;;AAaN;AAAA;AAAA;AAAA;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACME;MAAAA;;;;AAENA,EAAAA,qBAAqB,CAACt2C,IAAtB;AAAA,qBAAkHs2C,qBAAlH;AAAA;;AACAA,EAAAA,qBAAqB,CAACpN,IAAtB,kBAl0B6FlmM,+DAk0B7F;AAAA,UAAmHszM;AAAnH;AACAA,EAAAA,qBAAqB,CAACnN,IAAtB,kBAn0B6FnmM,+DAm0B7F;AAAA,eAAqJ,CAC7I2uM,kBAD6I,EAE7I;AAAEqE,MAAAA,OAAO,EAAEtE,oBAAX;AAAiC6E,MAAAA,UAAU,EAAEV;AAA7C,KAF6I,EAG7I;AAAEG,MAAAA,OAAO,EAAE9E,iBAAX;AAA8B+E,MAAAA,QAAQ,EAAExD,gBAAxC;AAA0Dp0C,MAAAA,KAAK,EAAE;AAAjE,KAH6I;AAArJ;SAJMi4C;;;AASN;AAAA;AAAA;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM1K,UAAU,GAAGW,wDAAnB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxvEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASmK,sBAAT,CAAgCC,wBAAhC,EAA0D;AACtD,OAAK,IAAIt+L,GAAT,IAAgBs+L,wBAAhB,EAA0C;AACtC,QAAIA,wBAAwB,CAACt+L,GAAD,CAAxB,KAAkCq+L,sBAAtC,EAA8D;AAC1D,aAAOr+L,GAAP;AACH;AACJ;;AACD,QAAMuT,KAAK,CAAC,mDAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgrL,cAAT,CAAwB5oM,MAAxB,EAAgCqH,MAAhC,EAAwC;AACpC,OAAK,IAAMgD,GAAX,IAAkBhD,MAAlB,EAA0B;AACtB,QAAIA,MAAM,CAACyQ,cAAP,CAAsBzN,GAAtB,KAA8B,CAACrK,MAAM,CAAC8X,cAAP,CAAsBzN,GAAtB,CAAnC,EAA+D;AAC3DrK,MAAAA,MAAM,CAACqK,GAAD,CAAN,GAAchD,MAAM,CAACgD,GAAD,CAApB;AACH;AACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2Y,SAAT,CAAmB+B,KAAnB,EAA0B;AACtB,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3B,WAAOA,KAAP;AACH;;AACD,MAAI7xB,KAAK,CAAC0D,OAAN,CAAcmuB,KAAd,CAAJ,EAA0B;AACtB,WAAO,MAAMA,KAAK,CAAC1xB,GAAN,CAAU2vB,SAAV,EAAqBC,IAArB,CAA0B,IAA1B,CAAN,GAAwC,GAA/C;AACH;;AACD,MAAI8B,KAAK,IAAI,IAAb,EAAmB;AACf,WAAO,KAAKA,KAAZ;AACH;;AACD,MAAIA,KAAK,CAAC8jL,cAAV,EAA0B;AACtB,qBAAU9jL,KAAK,CAAC8jL,cAAhB;AACH;;AACD,MAAI9jL,KAAK,CAACxlB,IAAV,EAAgB;AACZ,qBAAUwlB,KAAK,CAACxlB,IAAhB;AACH;;AACD,MAAM+hL,GAAG,GAAGv8J,KAAK,CAAC5N,QAAN,EAAZ;;AACA,MAAImqK,GAAG,IAAI,IAAX,EAAiB;AACb,WAAO,KAAKA,GAAZ;AACH;;AACD,MAAMwnB,YAAY,GAAGxnB,GAAG,CAACriK,OAAJ,CAAY,IAAZ,CAArB;AACA,SAAO6pL,YAAY,KAAK,CAAC,CAAlB,GAAsBxnB,GAAtB,GAA4BA,GAAG,CAACxvJ,SAAJ,CAAc,CAAd,EAAiBg3K,YAAjB,CAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,sBAAT,CAAgC1sI,MAAhC,EAAwC+pB,KAAxC,EAA+C;AAC3C,SAAQ/pB,MAAM,IAAI,IAAV,IAAkBA,MAAM,KAAK,EAA9B,GACF+pB,KAAK,KAAK,IAAV,GAAiB,EAAjB,GAAsBA,KADpB,GAEDA,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,EAA5B,GAAkC/pB,MAAlC,GAA2CA,MAAM,GAAG,GAAT,GAAe+pB,KAF/D;AAGH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM4iH,eAAe,gBAAGN,sBAAsB,CAAC;AAAEM,EAAAA,eAAe,EAAEN;AAAnB,CAAD,CAA9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,UAAT,CAAoBC,YAApB,EAAkC;AAC9BA,EAAAA,YAAY,CAACF,eAAb,GAA+BC,UAA/B;;AACAC,EAAAA,YAAY,CAAC/xL,QAAb,GAAwB,YAAY;AAChC,WAAO6L,SAAS,CAAC,MAAD,CAAhB;AACH,GAFD;;AAGA,SAAOkmL,YAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,iBAAT,CAA2B/oM,IAA3B,EAAiC;AAC7B,SAAOgpM,YAAY,CAAChpM,IAAD,CAAZ,GAAqBA,IAAI,EAAzB,GAA8BA,IAArC;AACH;AACD;;;AACA,SAASgpM,YAAT,CAAsB7xE,EAAtB,EAA0B;AACtB,SAAO,OAAOA,EAAP,KAAc,UAAd,IAA4BA,EAAE,CAACz/G,cAAH,CAAkBkxL,eAAlB,CAA5B,IACHzxE,EAAE,CAACyxE,eAAH,KAAuBC,UAD3B;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMI,2BAA2B,GAAG,2BAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC;;;;;AACF,wBAAY5sK,IAAZ,EAAkBgwD,OAAlB,EAA2B;AAAA;;AAAA;;AACvB,8BAAM68G,kBAAkB,CAAC7sK,IAAD,EAAOgwD,OAAP,CAAxB;AACA,UAAKhwD,IAAL,GAAYA,IAAZ;AAFuB;AAG1B;;;+OAJsB9e;AAM3B;AACA;AACA;AACA;;;AACA,SAAS2rL,kBAAT,CAA4B7sK,IAA5B,EAAkCgwD,OAAlC,EAA2C;AACvC;AACA;AACA,MAAM88G,QAAQ,gBAASl0M,IAAI,CAACsF,GAAL,CAAS8hC,IAAT,CAAT,CAAd;AACA,MAAIi2J,YAAY,aAAM6W,QAAN,SAAiB98G,OAAO,GAAG,OAAOA,OAAO,CAACp1E,IAAR,EAAV,GAA2B,EAAnD,CAAhB;;AACA,MAAI+zI,SAAS,IAAI3uH,IAAI,GAAG,CAAxB,EAA2B;AACvB,QAAM+sK,kBAAkB,GAAG,CAAC9W,YAAY,CAACxxK,KAAb,CAAmB,UAAnB,CAA5B;AACA,QAAMk+G,SAAS,GAAGoqE,kBAAkB,GAAG,GAAH,GAAS,EAA7C;AACA9W,IAAAA,YAAY,aACLA,YADK,SACUtzD,SADV,2BACoCgqE,2BADpC,cACmEG,QADnE,CAAZ;AAEH;;AACD,SAAO7W,YAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+W,eAAT,CAAyBh0M,KAAzB,EAAgC;AAC5B,MAAI,OAAOA,KAAP,KAAiB,QAArB,EACI,OAAOA,KAAP;AACJ,MAAIA,KAAK,IAAI,IAAb,EACI,OAAO,EAAP,CAJwB,CAK5B;AACA;;AACA,SAAOq+B,MAAM,CAACr+B,KAAD,CAAb;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASi0M,iBAAT,CAA2Bj0M,KAA3B,EAAkC;AAC9B,MAAI,OAAOA,KAAP,KAAiB,UAArB,EACI,OAAOA,KAAK,CAAC6J,IAAN,IAAc7J,KAAK,CAACyhB,QAAN,EAArB;;AACJ,MAAI,OAAOzhB,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,IAAI,IAAtC,IAA8C,OAAOA,KAAK,CAAC0K,IAAb,KAAsB,UAAxE,EAAoF;AAChF,WAAO1K,KAAK,CAAC0K,IAAN,CAAWb,IAAX,IAAmB7J,KAAK,CAAC0K,IAAN,CAAW+W,QAAX,EAA1B;AACH;;AACD,SAAOuyL,eAAe,CAACh0M,KAAD,CAAtB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,SAASk0M,0BAAT,CAAoC7kL,KAApC,EAA2C9nB,IAA3C,EAAiD;AAC7C,MAAM4sM,OAAO,GAAG5sM,IAAI,gCAAyBA,IAAI,CAACgmB,IAAL,CAAU,KAAV,CAAzB,gBAA+C8B,KAA/C,IAAyD,EAA7E;AACA,QAAM,IAAIukL,YAAJ,CAAiB,CAAC;AAAI;AAAtB,qDAA6GvkL,KAA7G,SAAqH8kL,OAArH,EAAN;AACH;;AACD,SAASC,4BAAT,GAAwC;AACpC,QAAM,IAAIlsL,KAAJ,oDAAN;AACH;;AACD,SAASmsL,yBAAT,CAAmCC,YAAnC,EAAiDjC,SAAjD,EAA4DkC,QAA5D,EAAsE;AAClE,MAAID,YAAY,IAAIjC,SAApB,EAA+B;AAC3B,QAAMmC,cAAc,GAAGnC,SAAS,CAAC10M,GAAV,CAAc,UAAAgC,CAAC;AAAA,aAAIA,CAAC,IAAI40M,QAAL,GAAgB,MAAMA,QAAN,GAAiB,GAAjC,GAAuC,KAA3C;AAAA,KAAf,CAAvB;AACA,UAAM,IAAIrsL,KAAJ,8CAAgDoF,SAAS,CAACgnL,YAAD,CAAzD,wEAAqIE,cAAc,CAACjnL,IAAf,CAAoB,IAApB,CAArI,OAAN;AACH,GAHD,MAIK,IAAIgnL,QAAQ,CAACE,UAAb,EAAyB;AAC1B,UAAM,IAAIb,YAAJ,CAAiB;AAAI;AAArB,yJAAN;AACH,GAFI,MAGA;AACD,UAAM,IAAI1rL,KAAJ,CAAU,kBAAV,CAAN;AACH;AACJ;AACD;;;AACA,SAASwsL,0BAAT,CAAoCrlL,KAApC,EAA2CslL,YAA3C,EAAyD;AACrD,MAAMC,eAAe,GAAGD,YAAY,iBAAUA,YAAV,IAA2B,EAA/D;AACA,QAAM,IAAIf,YAAJ,CAAiB,CAAC;AAAI;AAAtB,IAAiEj+C,SAAS,8BAAuBs+C,iBAAiB,CAAC5kL,KAAD,CAAxC,mBAAwDulL,eAAxD,CAA1E,CAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAsBC,MAAtB,EAA8BxkD,GAA9B,EAAmC;AAC/B,MAAI,EAAE,OAAOwkD,MAAP,KAAkB,QAApB,CAAJ,EAAmC;AAC/B72D,IAAAA,UAAU,CAACqS,GAAD,EAAM,OAAOwkD,MAAb,EAAqB,QAArB,EAA+B,KAA/B,CAAV;AACH;AACJ;;AACD,SAASC,mBAAT,CAA6BD,MAA7B,EAAqCE,YAArC,EAAmDC,YAAnD,EAAiE;AAC7DJ,EAAAA,YAAY,CAACC,MAAD,EAAS,mBAAT,CAAZ;AACAI,EAAAA,qBAAqB,CAACJ,MAAD,EAASG,YAAT,EAAuB,6CAAvB,CAArB;AACAE,EAAAA,wBAAwB,CAACL,MAAD,EAASE,YAAT,EAAuB,gDAAvB,CAAxB;AACH;;AACD,SAASI,YAAT,CAAsBN,MAAtB,EAA8BxkD,GAA9B,EAAmC;AAC/B,MAAI,EAAE,OAAOwkD,MAAP,KAAkB,QAApB,CAAJ,EAAmC;AAC/B72D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAM,KAAK,IAAX,GAAkB,MAAlB,GAA2B,OAAOA,MAAxC,EAAgD,QAAhD,EAA0D,KAA1D,CAAV;AACH;AACJ;;AACD,SAASO,cAAT,CAAwBP,MAAxB,EAAgCxkD,GAAhC,EAAqC;AACjC,MAAI,EAAE,OAAOwkD,MAAP,KAAkB,UAApB,CAAJ,EAAqC;AACjC72D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAM,KAAK,IAAX,GAAkB,MAAlB,GAA2B,OAAOA,MAAxC,EAAgD,UAAhD,EAA4D,KAA5D,CAAV;AACH;AACJ;;AACD,SAASQ,WAAT,CAAqBR,MAArB,EAA6BS,QAA7B,EAAuCjlD,GAAvC,EAA4C;AACxC,MAAI,EAAEwkD,MAAM,IAAIS,QAAZ,CAAJ,EAA2B;AACvBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,IAAxB,CAAV;AACH;AACJ;;AACD,SAASC,cAAT,CAAwBV,MAAxB,EAAgCS,QAAhC,EAA0CjlD,GAA1C,EAA+C;AAC3C,MAAI,EAAEwkD,MAAM,IAAIS,QAAZ,CAAJ,EAA2B;AACvBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,IAAxB,CAAV;AACH;AACJ;;AACD,SAASE,UAAT,CAAoBX,MAApB,EAA4BS,QAA5B,EAAsCjlD,GAAtC,EAA2C;AACvC,MAAI,EAAEwkD,MAAM,KAAKS,QAAb,CAAJ,EAA4B;AACxBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,KAAxB,CAAV;AACH;AACJ;;AACD,SAASG,aAAT,CAAuBZ,MAAvB,EAA+BS,QAA/B,EAAyCjlD,GAAzC,EAA8C;AAC1C,MAAI,EAAEwkD,MAAM,KAAKS,QAAb,CAAJ,EAA4B;AACxBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,KAAxB,CAAV;AACH;AACJ;;AACD,SAASI,cAAT,CAAwBb,MAAxB,EAAgCS,QAAhC,EAA0CjlD,GAA1C,EAA+C;AAC3C,MAAI,EAAEwkD,MAAM,GAAGS,QAAX,CAAJ,EAA0B;AACtBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,GAAxB,CAAV;AACH;AACJ;;AACD,SAASL,qBAAT,CAA+BJ,MAA/B,EAAuCS,QAAvC,EAAiDjlD,GAAjD,EAAsD;AAClD,MAAI,EAAEwkD,MAAM,IAAIS,QAAZ,CAAJ,EAA2B;AACvBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,IAAxB,CAAV;AACH;AACJ;;AACD,SAASK,iBAAT,CAA2Bd,MAA3B,EAAmCS,QAAnC,EAA6CjlD,GAA7C,EAAkD;AAC9C,MAAI,EAAEwkD,MAAM,GAAGS,QAAX,CAAJ,EAA0B;AACtBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,GAAxB,CAAV;AACH;AACJ;;AACD,SAASJ,wBAAT,CAAkCL,MAAlC,EAA0CS,QAA1C,EAAoDjlD,GAApD,EAAyD;AACrD,MAAI,EAAEwkD,MAAM,IAAIS,QAAZ,CAAJ,EAA2B;AACvBt3D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAcS,QAAd,EAAwB,IAAxB,CAAV;AACH;AACJ;;AACD,SAASM,gBAAT,CAA0Bf,MAA1B,EAAkCxkD,GAAlC,EAAuC;AACnC,MAAIwkD,MAAM,IAAI,IAAd,EAAoB;AAChB72D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAc,IAAd,EAAoB,IAApB,CAAV;AACH;AACJ;;AACD,SAASgB,aAAT,CAAuBhB,MAAvB,EAA+BxkD,GAA/B,EAAoC;AAChC,MAAIwkD,MAAM,IAAI,IAAd,EAAoB;AAChB72D,IAAAA,UAAU,CAACqS,GAAD,EAAMwkD,MAAN,EAAc,IAAd,EAAoB,IAApB,CAAV;AACH;AACJ;;AACD,SAAS72D,UAAT,CAAoBqS,GAApB,EAAyBwkD,MAAzB,EAAiCS,QAAjC,EAA2CQ,UAA3C,EAAuD;AACnD,QAAM,IAAI7tL,KAAJ,CAAU,2BAAoBooI,GAApB,KACXylD,UAAU,IAAI,IAAd,GAAqB,EAArB,0BAA0CR,QAA1C,cAAsDQ,UAAtD,cAAoEjB,MAApE,eADW,CAAV,CAAN;AAEH;;AACD,SAASkB,aAAT,CAAuBrpM,IAAvB,EAA6B;AACzB;AACA,MAAI,EAAE,OAAOswC,IAAP,KAAgB,WAAhB,IAA+BtwC,IAAI,YAAYswC,IAAjD,KACA,EAAE,OAAOtwC,IAAP,KAAgB,QAAhB,IAA4BA,IAAI,IAAI,IAApC,IACEA,IAAI,CAACqI,WAAL,CAAiBnL,IAAjB,KAA0B,qBAD9B,CADJ,EAE0D;AACtDo0I,IAAAA,UAAU,wEAAiE3wH,SAAS,CAAC3gB,IAAD,CAA1E,EAAV;AACH;AACJ;;AACD,SAASspM,kBAAT,CAA4B92C,GAA5B,EAAiCvsJ,KAAjC,EAAwC;AACpCkjM,EAAAA,aAAa,CAAC32C,GAAD,EAAM,wBAAN,CAAb;AACA,MAAM+2C,MAAM,GAAG/2C,GAAG,CAAC5gK,MAAnB;;AACA,MAAIqU,KAAK,GAAG,CAAR,IAAaA,KAAK,IAAIsjM,MAA1B,EAAkC;AAC9Bj4D,IAAAA,UAAU,0CAAmCi4D,MAAnC,sBAAqDtjM,KAArD,EAAV;AACH;AACJ;;AACD,SAASujM,WAAT,CAAqBn2M,KAArB,EAA4C;AAAA,oCAAbo2M,WAAa;AAAbA,IAAAA,WAAa;AAAA;;AACxC,MAAIA,WAAW,CAAC7sL,OAAZ,CAAoBvpB,KAApB,MAA+B,CAAC,CAApC,EACI,OAAO,IAAP;AACJi+I,EAAAA,UAAU,uCAAgC5wH,IAAI,CAACC,SAAL,CAAe8oL,WAAf,CAAhC,sBAAuE/oL,IAAI,CAACC,SAAL,CAAettB,KAAf,CAAvE,OAAV;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0kL,kBAAT,CAA4B2xB,IAA5B,EAAkC;AAC9B,SAAO;AACHhnL,IAAAA,KAAK,EAAEgnL,IAAI,CAAChnL,KADT;AAEH+2K,IAAAA,UAAU,EAAEiQ,IAAI,CAACjQ,UAAL,IAAmB,IAF5B;AAGHniL,IAAAA,OAAO,EAAEoyL,IAAI,CAACpyL,OAHX;AAIHjkB,IAAAA,KAAK,EAAE81B;AAJJ,GAAP;AAMH;AACD;AACA;AACA;AACA;AACA;;;AACA,IAAMwgL,gBAAgB,GAAG5xB,kBAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS6xB,gBAAT,CAA0Br+G,OAA1B,EAAmC;AAC/B,SAAO;AAAEm6G,IAAAA,SAAS,EAAEn6G,OAAO,CAACm6G,SAAR,IAAqB,EAAlC;AAAsCj9D,IAAAA,OAAO,EAAEl9C,OAAO,CAACk9C,OAAR,IAAmB;AAAlE,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASohE,gBAAT,CAA0B9rM,IAA1B,EAAgC;AAC5B,SAAO+rM,gBAAgB,CAAC/rM,IAAD,EAAOgsM,WAAP,CAAhB,IAAuCD,gBAAgB,CAAC/rM,IAAD,EAAOisM,iBAAP,CAA9D;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASF,gBAAT,CAA0B/rM,IAA1B,EAAgCs5E,KAAhC,EAAuC;AACnC,SAAOt5E,IAAI,CAAC0X,cAAL,CAAoB4hE,KAApB,IAA6Bt5E,IAAI,CAACs5E,KAAD,CAAjC,GAA2C,IAAlD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4yH,yBAAT,CAAmClsM,IAAnC,EAAyC;AACrC,MAAM24J,GAAG,GAAG34J,IAAI,KAAKA,IAAI,CAACgsM,WAAD,CAAJ,IAAqBhsM,IAAI,CAACisM,iBAAD,CAA9B,CAAhB;;AACA,MAAItzC,GAAJ,EAAS;AACL,QAAMpvD,QAAQ,GAAGipF,WAAW,CAACxyL,IAAD,CAA5B,CADK,CAEL;AACA;;AACAmvF,IAAAA,OAAO,CAACC,IAAR,CAAa,oDAA4Cma,QAA5C,2LACqFA,QADrF,cAAb;AAEA,WAAOovD,GAAP;AACH,GAPD,MAQK;AACD,WAAO,IAAP;AACH;AACJ;AACD;;;AACA,SAAS65B,WAAT,CAAqBxyL,IAArB,EAA2B;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAIA,IAAI,CAAC0X,cAAL,CAAoB,MAApB,CAAJ,EAAiC;AAC7B,WAAO1X,IAAI,CAACb,IAAZ;AACH;;AACD,MAAM4hB,KAAK,GAAG,CAAC,KAAK/gB,IAAN,EAAY+gB,KAAZ,CAAkB,uBAAlB,CAAd;AACA,SAAOA,KAAK,KAAK,IAAV,GAAiB,EAAjB,GAAsBA,KAAK,CAAC,CAAD,CAAlC;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASorL,cAAT,CAAwBnsM,IAAxB,EAA8B;AAC1B,SAAOA,IAAI,KAAKA,IAAI,CAAC0X,cAAL,CAAoB00L,UAApB,KAAmCpsM,IAAI,CAAC0X,cAAL,CAAoB20L,eAApB,CAAxC,CAAJ,GACHrsM,IAAI,CAACosM,UAAD,CADD,GAEH,IAFJ;AAGH;;AACD,IAAMJ,WAAW,gBAAG1D,sBAAsB,CAAC;AAAEz2C,EAAAA,KAAK,EAAEy2C;AAAT,CAAD,CAA1C;AACA,IAAM8D,UAAU,gBAAG9D,sBAAsB,CAAC;AAAEvN,EAAAA,IAAI,EAAEuN;AAAR,CAAD,CAAzC,EACA;;AACA,IAAM2D,iBAAiB,gBAAG3D,sBAAsB,CAAC;AAAEgE,EAAAA,eAAe,EAAEhE;AAAnB,CAAD,CAAhD;AACA,IAAM+D,eAAe,gBAAG/D,sBAAsB,CAAC;AAAEiE,EAAAA,aAAa,EAAEjE;AAAjB,CAAD,CAA9C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIkE,WAAW;AAAXA,EAAAA,WAAW,GAAXA,WAAW;AAEX;AACA;;AACA;AACAA,EAAAA,WAAW,CAACA,WAAW,CAAC,SAAD,CAAX,GAAyB,CAA1B,CAAX,GAA0C,SAA1C;AACA;AACJ;AACA;AACA;;AACIA,EAAAA,WAAW,CAACA,WAAW,CAAC,MAAD,CAAX,GAAsB,CAAvB,CAAX,GAAuC,MAAvC;AACA;;AACAA,EAAAA,WAAW,CAACA,WAAW,CAAC,MAAD,CAAX,GAAsB,CAAvB,CAAX,GAAuC,MAAvC;AACA;;AACAA,EAAAA,WAAW,CAACA,WAAW,CAAC,UAAD,CAAX,GAA0B,CAA3B,CAAX,GAA2C,UAA3C;AACA;;AACAA,EAAAA,WAAW,CAACA,WAAW,CAAC,UAAD,CAAX,GAA0B,CAA3B,CAAX,GAA2C,UAA3C;AAhBW,SAAXA,WAAW;AAAA,IAAf;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,qBAAJ;;AACA,SAASC,uBAAT,GAAmC;AAC/B,SAAOD,qBAAP;AACH;AACD;AACA;AACA;;;AACA,SAASE,uBAAT,CAAiCC,IAAjC,EAAuC;AACnC,MAAMt2J,QAAQ,GAAGm2J,qBAAjB;AACAA,EAAAA,qBAAqB,GAAGG,IAAxB;AACA,SAAOt2J,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu2J,kBAAT,CAA4BloL,KAA5B,EAAmCmoL,aAAnC,EAAkD1lG,KAAlD,EAAyD;AACrD,MAAM2lG,aAAa,GAAGjB,gBAAgB,CAACnnL,KAAD,CAAtC;;AACA,MAAIooL,aAAa,IAAIA,aAAa,CAACrR,UAAd,IAA4B,MAAjD,EAAyD;AACrD,WAAOqR,aAAa,CAACz3M,KAAd,KAAwB81B,SAAxB,GAAoC2hL,aAAa,CAACz3M,KAAd,GAAsBy3M,aAAa,CAACxzL,OAAd,EAA1D,GACHwzL,aAAa,CAACz3M,KADlB;AAEH;;AACD,MAAI8xG,KAAK,GAAGolG,WAAW,CAAC/zB,QAAxB,EACI,OAAO,IAAP;AACJ,MAAIq0B,aAAa,KAAK1hL,SAAtB,EACI,OAAO0hL,aAAP;AACJ9C,EAAAA,0BAA0B,CAACpnL,SAAS,CAAC+B,KAAD,CAAV,EAAmB,UAAnB,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqoL,kCAAT,CAA4C71E,EAA5C,EAAgD;AAC5C8zB,EAAAA,SAAS,IACL6/C,cAAc,CAAC2B,qBAAD,EAAwBt1E,EAAxB,EAA4B,iDAA5B,CADlB;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS81E,aAAT,CAAuB91E,EAAvB,EAA2B;AACvB,SAAO;AAAEpgH,IAAAA,QAAQ,EAAEogH;AAAZ,IAAiBpgH,QAAjB,EAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIm2L,uBAAuB;AAAvBA,EAAAA,uBAAuB,GAAvBA,uBAAuB;;AAEvB;AACJ;AACA;AACA;AACA;AACA;AACIA,EAAAA,uBAAuB,CAACA,uBAAuB,CAAC,QAAD,CAAvB,GAAoC,CAArC,CAAvB,GAAiE,QAAjE;AACA;AACJ;AACA;AACA;;AACIA,EAAAA,uBAAuB,CAACA,uBAAuB,CAAC,SAAD,CAAvB,GAAqC,CAAtC,CAAvB,GAAkE,SAAlE;AAbuB,SAAvBA,uBAAuB;AAAA,IAA3B;;AAeA;AACA;AACA;AACA;AACA,IAAIC,oBAAoB;AAApBA,EAAAA,oBAAoB,GAApBA,oBAAoB;;AAEpB;AACJ;AACA;AACA;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,WAAD,CAApB,GAAoC,CAArC,CAApB,GAA8D,WAA9D;AACA;AACJ;AACA;AACA;;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,SAAD,CAApB,GAAkC,CAAnC,CAApB,GAA4D,SAA5D;AACA;AACJ;AACA;AACA;;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,aAAD,CAApB,GAAsC,CAAvC,CAApB,GAAgE,aAAhE;AACA;AACJ;AACA;AACA;;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,UAAD,CAApB,GAAmC,CAApC,CAApB,GAA6D,UAA7D;AACA;AACJ;AACA;AACA;AACA;;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,SAAD,CAApB,GAAkC,CAAnC,CAApB,GAA4D,SAA5D;AACA;AACJ;AACA;;AACIA,EAAAA,oBAAoB,CAACA,oBAAoB,CAAC,WAAD,CAApB,GAAoC,CAArC,CAApB,GAA8D,WAA9D;AA/BoB,SAApBA,oBAAoB;AAAA,IAAxB;;AAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gCAAT,CAA0CC,uBAA1C,EAAmE;AAC/D,SAAOA,uBAAuB,IAAI,IAA3B,IACHA,uBAAuB,KAAKH,uBAAuB,CAACI,OADxD;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,mBAAmB;AACvB,GAAC,UAAUC,iBAAV,EAA6B;AAC1B;AACA;;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIA,IAAAA,iBAAiB,CAACA,iBAAiB,CAAC,UAAD,CAAjB,GAAgC,CAAjC,CAAjB,GAAuD,UAAvD,CAV0B,CAW1B;;AACA;AACJ;AACA;AACA;AACA;;AACIA,IAAAA,iBAAiB,CAACA,iBAAiB,CAAC,MAAD,CAAjB,GAA4B,CAA7B,CAAjB,GAAmD,MAAnD;AACA;AACJ;AACA;AACA;AACA;;AACIA,IAAAA,iBAAiB,CAACA,iBAAiB,CAAC,WAAD,CAAjB,GAAiC,CAAlC,CAAjB,GAAwD,WAAxD;AACH,GAxBD,EAwBGD,mBAAmB,KAAKA,mBAAmB,GAAG,EAA3B,CAxBtB,CADuB;;AAAA,SAAnBA,mBAAmB;AAAA,IAAvB;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,OAAO,GAAK,eAAgB;AAAA,SAAO,OAAOC,UAAP,KAAsB,WAAtB,IAAqCA,UAAtC,IACnC,OAAO10F,MAAP,KAAkB,WAAlB,IAAiCA,MADE,IACU,OAAOpkD,MAAP,KAAkB,WAAlB,IAAiCA,MAD3C,IAEnC,OAAOirB,IAAP,KAAgB,WAAhB,IAA+B,OAAO8tH,iBAAP,KAA6B,WAA5D,IACG9tH,IAAI,YAAY8tH,iBADnB,IACwC9tH,IAHX;AAAA,CAAD,EAAjC;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+tH,0BAAT,GAAsC;AAClC,MAAMC,cAAc,GAAG,OAAO9mH,QAAP,KAAoB,WAApB,GAAkCA,QAAQ,CAAChwE,QAAT,EAAlC,GAAwD,EAA/E;AACA,MAAM+2L,WAAW,GAAG;AAChBC,IAAAA,iBAAiB,EAAEF,cAAc,CAAChvL,OAAf,CAAuB,6BAAvB,KAAyD,CAAC,CAD7D;AAEhBmvL,IAAAA,eAAe,EAAE,CAFD;AAGhBC,IAAAA,KAAK,EAAE,CAHS;AAIhBC,IAAAA,KAAK,EAAE,CAJS;AAKhBC,IAAAA,sBAAsB,EAAE,CALR;AAMhBC,IAAAA,eAAe,EAAE,CAND;AAOhBC,IAAAA,qBAAqB,EAAE,CAPP;AAQhBC,IAAAA,wBAAwB,EAAE,CARV;AAShBC,IAAAA,oBAAoB,EAAE,CATN;AAUhBC,IAAAA,uBAAuB,EAAE,CAVT;AAWhBC,IAAAA,mBAAmB,EAAE,CAXL;AAYhBC,IAAAA,oBAAoB,EAAE,CAZN;AAahBC,IAAAA,gBAAgB,EAAE,CAbF;AAchBC,IAAAA,mBAAmB,EAAE,CAdL;AAehBC,IAAAA,gBAAgB,EAAE,CAfF;AAgBhBC,IAAAA,mBAAmB,EAAE,CAhBL;AAiBhBC,IAAAA,eAAe,EAAE,CAjBD;AAkBhBC,IAAAA,mBAAmB,EAAE,CAlBL;AAmBhBC,IAAAA,gBAAgB,EAAE,CAnBF;AAoBhBC,IAAAA,kBAAkB,EAAE,CApBJ;AAqBhBC,IAAAA,mBAAmB,EAAE,CArBL;AAsBhBC,IAAAA,oBAAoB,EAAE,CAtBN;AAuBhBC,IAAAA,qBAAqB,EAAE;AAvBP,GAApB,CAFkC,CA2BlC;;AACA,MAAMC,kBAAkB,GAAGzB,cAAc,CAAChvL,OAAf,CAAuB,iBAAvB,MAA8C,CAAC,CAA1E;AACA4uL,EAAAA,OAAO,CAAC,WAAD,CAAP,GAAuB6B,kBAAkB,IAAIxB,WAA7C;AACA,SAAOA,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyB,aAAT,GAAyB;AACrB;AACA;AACA;AACA;AACA,MAAI,OAAOtkD,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;AAC/C,QAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AAC/B2iD,MAAAA,0BAA0B;AAC7B;;AACD,WAAO,OAAO3iD,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA7C;AACH;;AACD,SAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMukD,SAAS,GAAG,EAAlB;AACA,IAAMC,WAAW,GAAG,EAApB,EACA;;AACA,IAAI,CAAC,OAAOxkD,SAAP,KAAqB,WAArB,IAAoCA,SAArC,kBAAmDskD,aAAa,EAApE,EAAwE;AACpE;AACA;AACA;;AACA;AAAAn5L,EAAAA,MAAM,CAACs5L,MAAP,CAAcF,SAAd,EAJoE,CAKpE;;AACA;AAAAp5L,EAAAA,MAAM,CAACs5L,MAAP,CAAcD,WAAd;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAME,WAAW,gBAAGrH,sBAAsB,CAAC;AAAEsH,EAAAA,IAAI,EAAEtH;AAAR,CAAD,CAA1C;AACA,IAAMuH,UAAU,gBAAGvH,sBAAsB,CAAC;AAAEjY,EAAAA,IAAI,EAAEiY;AAAR,CAAD,CAAzC;AACA,IAAMwH,WAAW,gBAAGxH,sBAAsB,CAAC;AAAE/P,EAAAA,KAAK,EAAE+P;AAAT,CAAD,CAA1C;AACA,IAAMyH,UAAU,gBAAGzH,sBAAsB,CAAC;AAAExN,EAAAA,IAAI,EAAEwN;AAAR,CAAD,CAAzC;AACA,IAAM0H,cAAc,gBAAG1H,sBAAsB,CAAC;AAAE12C,EAAAA,IAAI,EAAE02C;AAAR,CAAD,CAA7C;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM2H,aAAa,gBAAG3H,sBAAsB,CAAC;AAAE4H,EAAAA,iBAAiB,EAAE5H;AAArB,CAAD,CAA5C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA,IAAI6H,iBAAiB,GAAG,CAAxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,iBAAT,CAA2BC,mBAA3B,EAAgD;AAC5C,SAAOpD,aAAa,CAAC,YAAM;AACvB;AACA;AACA,KAAC,OAAOhiD,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDskD,aAAa,EAAhE;AACA,QAAMvvM,IAAI,GAAGqwM,mBAAmB,CAACrwM,IAAjC;AACA,QAAMswM,UAAU,GAAGD,mBAAmB,CAACC,UAApB,KAAmC,IAAtD;AACA,QAAMC,cAAc,GAAG,EAAvB;AACA,QAAM53C,GAAG,GAAG;AACR34J,MAAAA,IAAI,EAAEA,IADE;AAERwwM,MAAAA,iBAAiB,EAAE,IAFX;AAGRC,MAAAA,KAAK,EAAEJ,mBAAmB,CAACI,KAHnB;AAIRC,MAAAA,IAAI,EAAEL,mBAAmB,CAACK,IAJlB;AAKRn3L,MAAAA,OAAO,EAAE,IALD;AAMRixH,MAAAA,QAAQ,EAAE6lE,mBAAmB,CAAC7lE,QAApB,IAAgC,IANlC;AAORmmE,MAAAA,MAAM,EAAEN,mBAAmB,CAACM,MAApB,IAA8B,IAP9B;AAQRC,MAAAA,kBAAkB,EAAEP,mBAAmB,CAACO,kBARhC;AASRC,MAAAA,YAAY,EAAER,mBAAmB,CAACQ,YAApB,IAAoC,IAT1C;AAURC,MAAAA,QAAQ,EAAET,mBAAmB,CAACS,QAApB,IAAgC,CAVlC;AAWRC,MAAAA,SAAS,EAAEV,mBAAmB,CAACU,SAApB,IAAiC,IAXpC;AAYRC,MAAAA,cAAc,EAAEX,mBAAmB,CAACW,cAApB,IAAsC,IAZ9C;AAaRT,MAAAA,cAAc,EAAEA,cAbR;AAcRU,MAAAA,MAAM,EAAE,IAdA;AAeRC,MAAAA,OAAO,EAAE,IAfD;AAgBRC,MAAAA,QAAQ,EAAEd,mBAAmB,CAACc,QAApB,IAAgC,IAhBlC;AAiBRC,MAAAA,MAAM,EAAEf,mBAAmB,CAACgB,eAApB,KAAwCnE,uBAAuB,CAACoE,MAjBhE;AAkBRC,MAAAA,aAAa,EAAE,IAlBP;AAmBRC,MAAAA,QAAQ,EAAE,IAnBF;AAoBRlB,MAAAA,UAAU,EAAVA,UApBQ;AAqBRhmH,MAAAA,YAAY,EAAEgmH,UAAU,IAAID,mBAAmB,CAAC/lH,YAAlC,IAAkD,IArBxD;AAsBRmnH,MAAAA,qBAAqB,EAAE,IAtBf;AAuBRC,MAAAA,SAAS,EAAErB,mBAAmB,CAACqB,SAApB,IAAiCjC,WAvBpC;AAwBRkC,MAAAA,SAAS,EAAEtB,mBAAmB,CAACsB,SAApB,IAAiC,IAxBpC;AAyBR7wK,MAAAA,QAAQ,EAAEuvK,mBAAmB,CAACvvK,QAApB,IAAgC,IAzBlC;AA0BR3qC,MAAAA,IAAI,EAAEk6M,mBAAmB,CAACl6M,IAApB,IAA4B,EA1B1B;AA2BRy7M,MAAAA,aAAa,EAAEvB,mBAAmB,CAACuB,aAApB,IAAqCrE,mBAAmB,CAACsE,QA3BhE;AA4BRzxL,MAAAA,EAAE,aAAM+vL,iBAAiB,EAAvB,CA5BM;AA6BR1oD,MAAAA,MAAM,EAAE4oD,mBAAmB,CAAC5oD,MAApB,IAA8BgoD,WA7B9B;AA8BRz4M,MAAAA,CAAC,EAAE,IA9BK;AA+BR86M,MAAAA,QAAQ,EAAE,IA/BF;AAgCRC,MAAAA,OAAO,EAAE1B,mBAAmB,CAAC0B,OAApB,IAA+B,IAhChC;AAiCR7D,MAAAA,KAAK,EAAE;AAjCC,KAAZ;AAmCA,QAAM5jH,YAAY,GAAG+lH,mBAAmB,CAAC/lH,YAAzC;AACA,QAAMjyD,OAAO,GAAGg4K,mBAAmB,CAACvvK,QAApC;AACA63H,IAAAA,GAAG,CAACs4C,MAAJ,GAAae,YAAY,CAAC3B,mBAAmB,CAACY,MAArB,EAA6BV,cAA7B,CAAzB,EACI53C,GAAG,CAACu4C,OAAJ,GAAcc,YAAY,CAAC3B,mBAAmB,CAACa,OAArB,CAD9B,EAEI74K,OAAO,IAAIA,OAAO,CAACxwB,OAAR,CAAgB,UAACsvH,EAAD;AAAA,aAAQA,EAAE,CAACwhC,GAAD,CAAV;AAAA,KAAhB,CAFf;AAGAA,IAAAA,GAAG,CAAC44C,aAAJ,GAAoBjnH,YAAY,GAC3B;AAAA,aAAM,CAAC,OAAOA,YAAP,KAAwB,UAAxB,GAAqCA,YAAY,EAAjD,GAAsDA,YAAvD,EACFr3F,GADE,CACEg/M,mBADF,EAEFl0M,MAFE,CAEKm0M,OAFL,CAAN;AAAA,KAD2B,GAI5B,IAJJ;AAKAv5C,IAAAA,GAAG,CAAC64C,QAAJ,GAAelnH,YAAY,GACtB;AAAA,aAAM,CAAC,OAAOA,YAAP,KAAwB,UAAxB,GAAqCA,YAAY,EAAjD,GAAsDA,YAAvD,EACFr3F,GADE,CACEk/M,YADF,EAEFp0M,MAFE,CAEKm0M,OAFL,CAAN;AAAA,KADsB,GAIvB,IAJJ;AAKA,WAAOv5C,GAAP;AACH,GA1DmB,CAApB;AA2DH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASy5C,mBAAT,CAA6BpyM,IAA7B,EAAmCqyM,UAAnC,EAA+CC,KAA/C,EAAsD;AAClD,MAAM35C,GAAG,GAAG34J,IAAI,CAAC4vM,IAAjB;;AACAj3C,EAAAA,GAAG,CAAC44C,aAAJ,GAAoB;AAAA,WAAM,CAAC,OAAOc,UAAP,KAAsB,UAAtB,GAAmCA,UAAU,EAA7C,GAAkDA,UAAnD,EAA+Dp/M,GAA/D,CAAmEg/M,mBAAnE,CAAN;AAAA,GAApB;;AACAt5C,EAAAA,GAAG,CAAC64C,QAAJ,GAAe;AAAA,WAAM,CAAC,OAAOc,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KAAzC,EAAgDr/M,GAAhD,CAAoDk/M,YAApD,CAAN;AAAA,GAAf;AACH;;AACD,SAASF,mBAAT,CAA6BjyM,IAA7B,EAAmC;AAC/B,SAAOuyM,eAAe,CAACvyM,IAAD,CAAf,IAAyBwyM,eAAe,CAACxyM,IAAD,CAA/C;AACH;;AACD,SAASkyM,OAAT,CAAiB58M,KAAjB,EAAwB;AACpB,SAAOA,KAAK,KAAK,IAAjB;AACH;;AACD,IAAMm9M,sBAAsB,GAAG,EAA/B;AACA;AACA;AACA;;AACA,SAASC,gBAAT,CAA0B/5C,GAA1B,EAA+B;AAC3B,SAAOs0C,aAAa,CAAC,YAAM;AACvB,QAAM/rB,GAAG,GAAG;AACRlhL,MAAAA,IAAI,EAAE24J,GAAG,CAAC34J,IADF;AAER2yM,MAAAA,SAAS,EAAEh6C,GAAG,CAACg6C,SAAJ,IAAiBlD,WAFpB;AAGRmD,MAAAA,YAAY,EAAEj6C,GAAG,CAACi6C,YAAJ,IAAoBnD,WAH1B;AAIR/kE,MAAAA,OAAO,EAAEiuB,GAAG,CAACjuB,OAAJ,IAAe+kE,WAJhB;AAKRt2F,MAAAA,OAAO,EAAEw/C,GAAG,CAACx/C,OAAJ,IAAes2F,WALhB;AAMRoD,MAAAA,uBAAuB,EAAE,IANjB;AAORd,MAAAA,OAAO,EAAEp5C,GAAG,CAACo5C,OAAJ,IAAe,IAPhB;AAQR3xL,MAAAA,EAAE,EAAEu4I,GAAG,CAACv4I,EAAJ,IAAU;AARN,KAAZ;;AAUA,QAAIu4I,GAAG,CAACv4I,EAAJ,IAAU,IAAd,EAAoB;AAChBqyL,MAAAA,sBAAsB,CAAC95C,GAAG,CAACv4I,EAAL,CAAtB,GAAiCu4I,GAAG,CAAC34J,IAArC;AACH;;AACD,WAAOkhL,GAAP;AACH,GAfmB,CAApB;AAgBH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4xB,kBAAT,CAA4B9yM,IAA5B,EAAkC+yM,KAAlC,EAAyC;AACrC,SAAO9F,aAAa,CAAC,YAAM;AACvB,QAAM+F,WAAW,GAAGC,cAAc,CAACjzM,IAAD,EAAO,IAAP,CAAlC;AACAgzM,IAAAA,WAAW,CAACJ,YAAZ,GAA2BG,KAAK,CAACH,YAAN,IAAsBnD,WAAjD;AACAuD,IAAAA,WAAW,CAACtoE,OAAZ,GAAsBqoE,KAAK,CAACroE,OAAN,IAAiB+kE,WAAvC;AACAuD,IAAAA,WAAW,CAAC75F,OAAZ,GAAsB45F,KAAK,CAAC55F,OAAN,IAAiBs2F,WAAvC;AACH,GALmB,CAApB;AAMH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuC,YAAT,CAAsBnsD,GAAtB,EAA2BqtD,SAA3B,EAAsC;AAClC,MAAIrtD,GAAG,IAAI,IAAX,EACI,OAAO2pD,SAAP;AACJ,MAAM2D,SAAS,GAAG,EAAlB;;AACA,OAAK,IAAMC,WAAX,IAA0BvtD,GAA1B,EAA+B;AAC3B,QAAIA,GAAG,CAACnuI,cAAJ,CAAmB07L,WAAnB,CAAJ,EAAqC;AACjC,UAAIC,UAAU,GAAGxtD,GAAG,CAACutD,WAAD,CAApB;AACA,UAAIE,YAAY,GAAGD,UAAnB;;AACA,UAAIvgN,KAAK,CAAC0D,OAAN,CAAc68M,UAAd,CAAJ,EAA+B;AAC3BC,QAAAA,YAAY,GAAGD,UAAU,CAAC,CAAD,CAAzB;AACAA,QAAAA,UAAU,GAAGA,UAAU,CAAC,CAAD,CAAvB;AACH;;AACDF,MAAAA,SAAS,CAACE,UAAD,CAAT,GAAwBD,WAAxB;;AACA,UAAIF,SAAJ,EAAe;AACVA,QAAAA,SAAS,CAACG,UAAD,CAAT,GAAwBC,YAAzB;AACH;AACJ;AACJ;;AACD,SAAOH,SAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMI,iBAAiB,GAAGnD,iBAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASoD,YAAT,CAAsBC,OAAtB,EAA+B;AAC3B,SAAO;AACHzzM,IAAAA,IAAI,EAAEyzM,OAAO,CAACzzM,IADX;AAEHb,IAAAA,IAAI,EAAEs0M,OAAO,CAACt0M,IAFX;AAGHoa,IAAAA,OAAO,EAAE,IAHN;AAIHm6L,IAAAA,IAAI,EAAED,OAAO,CAACC,IAAR,KAAiB,KAJpB;AAKHpD,IAAAA,UAAU,EAAEmD,OAAO,CAACnD,UAAR,KAAuB,IALhC;AAMHxmD,IAAAA,SAAS,EAAE2pD,OAAO,CAACzzM,IAAR,CAAajN,SAAb,CAAuB4gN,WAAvB,IAAsC;AAN9C,GAAP;AAQH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASpB,eAAT,CAAyBvyM,IAAzB,EAA+B;AAC3B,SAAOA,IAAI,CAAC2vM,WAAD,CAAJ,IAAqB,IAA5B;AACH;;AACD,SAAS6C,eAAT,CAAyBxyM,IAAzB,EAA+B;AAC3B,SAAOA,IAAI,CAAC6vM,UAAD,CAAJ,IAAoB,IAA3B;AACH;;AACD,SAASsC,YAAT,CAAsBnyM,IAAtB,EAA4B;AACxB,SAAOA,IAAI,CAAC8vM,WAAD,CAAJ,IAAqB,IAA5B;AACH;;AACD,SAASmD,cAAT,CAAwBjzM,IAAxB,EAA8B4zM,aAA9B,EAA6C;AACzC,MAAMZ,WAAW,GAAGhzM,IAAI,CAAC+vM,UAAD,CAAJ,IAAoB,IAAxC;;AACA,MAAI,CAACiD,WAAD,IAAgBY,aAAa,KAAK,IAAtC,EAA4C;AACxC,UAAM,IAAIp2L,KAAJ,gBAAkBoF,SAAS,CAAC5iB,IAAD,CAA3B,0CAAN;AACH;;AACD,SAAOgzM,WAAP;AACH;AAED;AACA;AACA;AACA;AACA;;;AACA,IAAMa,IAAI,GAAG,CAAb;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,sBAAsB,GAAG,CAA/B,EACA;AACA;AACA;AACA;;AACA,IAAMC,MAAM,GAAG,CAAf;AACA,IAAMC,SAAS,GAAG,CAAlB;AACA,IAAMC,WAAW,GAAG,CAApB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,uBAAuB,GAAG,EAAhC,EACA;AACA;;AACA,IAAMC,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,IAAI,GAAG,CAAb;AACA,IAAMC,KAAK,GAAG,CAAd;AACA,IAAMC,KAAK,GAAG,CAAd;AACA,IAAMC,MAAM,GAAG,CAAf;AACA,IAAMC,IAAI,GAAG,CAAb;AACA,IAAMC,6BAA6B,GAAG,CAAtC;AACA,IAAMC,MAAM,GAAG,CAAf;AACA,IAAMC,OAAO,GAAG,CAAhB;AACA,IAAMC,OAAO,GAAG,CAAhB;AACA,IAAMC,UAAU,GAAG,CAAnB;AACA,IAAMC,gBAAgB,GAAG,EAAzB;AACA,IAAMC,QAAQ,GAAG,EAAjB;AACA,IAAMC,SAAS,GAAG,EAAlB;AACA,IAAMC,UAAU,GAAG,EAAnB;AACA,IAAMC,UAAU,GAAG,EAAnB,EACA;;AACA,IAAMC,gBAAgB,GAAG,EAAzB;AACA,IAAMC,0BAA0B,GAAG,EAAnC;AACA,IAAMC,sBAAsB,GAAG,EAA/B;AACA,IAAMC,mBAAmB,GAAG,EAA5B;AACA,IAAMC,OAAO,GAAG,EAAhB;AACA,IAAMC,EAAE,GAAG,EAAX;AACA,IAAMC,sBAAsB,GAAG,EAA/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,aAAa,GAAG,EAAtB;AACA;AACA;AACA;AACA;;AACA,IAAMC,iBAAiB,GAAG,CACtB,MADsB,EAEtB,WAFsB,EAGtB,UAHsB,CAGV;AAHU,CAA1B,EAKA;AACA;;AACA,IAAMC,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT,CAAiBvgN,KAAjB,EAAwB;AACpB,SAAOxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,KAAwB,OAAOA,KAAK,CAACu+M,IAAD,CAAZ,KAAuB,QAAtD;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASiC,YAAT,CAAsBxgN,KAAtB,EAA6B;AACzB,SAAOxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,KAAwBA,KAAK,CAACu+M,IAAD,CAAL,KAAgB,IAA/C;AACH;;AACD,SAASkC,kBAAT,CAA4B9H,KAA5B,EAAmC;AAC/B,SAAO,CAACA,KAAK,CAAC7mG,KAAN,GAAc;AAAE;AAAjB,QAAuD,CAA9D;AACH;;AACD,SAAS4uG,eAAT,CAAyB/H,KAAzB,EAAgC;AAC5B,SAAO,CAACA,KAAK,CAAC7mG,KAAN,GAAc;AAAE;AAAjB,QAAuD;AAAE;AAAhE;AACH;;AACD,SAAS6uG,eAAT,CAAyBhI,KAAzB,EAAgC;AAC5B,SAAO,CAACA,KAAK,CAAC7mG,KAAN,GAAc;AAAE;AAAjB,QAAuD;AAAE;AAAhE;AACH;;AACD,SAAS8uG,cAAT,CAAwBv9C,GAAxB,EAA6B;AACzB,SAAOA,GAAG,CAACnuB,QAAJ,KAAiB,IAAxB;AACH;;AACD,SAAS2rE,UAAT,CAAoBv2M,MAApB,EAA4B;AACxB,SAAO,CAACA,MAAM,CAAC00M,KAAD,CAAN,GAAgB;AAAI;AAArB,QAAkD,CAAzD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8B,mBAAT,CAA6BnI,KAA7B,EAAoCoI,KAApC,EAA2C;AACvCC,EAAAA,mBAAmB,CAACrI,KAAD,EAAQoI,KAAK,CAAChC,KAAD,CAAb,CAAnB;AACH;;AACD,SAASiC,mBAAT,CAA6BrI,KAA7B,EAAoCC,KAApC,EAA2C;AACvCqI,EAAAA,WAAW,CAACtI,KAAD,CAAX;AACAA,EAAAA,KAAK,CAACv2L,cAAN,CAAqB,QAArB,KACIkzL,WAAW,CAACqD,KAAK,CAACuI,MAAP,EAAetI,KAAf,EAAsB,2CAAtB,CADf;AAEH;;AACD,SAASqI,WAAT,CAAqBtI,KAArB,EAA4B;AACxB7C,EAAAA,aAAa,CAAC6C,KAAD,EAAQ,uBAAR,CAAb;;AACA,MAAI,EAAEA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA1B,IAAsCA,KAAK,CAACv2L,cAAN,CAAqB,sBAArB,CAAxC,CAAJ,EAA2F;AACvF67H,IAAAA,UAAU,CAAC,6BAA6B06D,KAA9B,CAAV;AACH;AACJ;;AACD,SAASwI,UAAT,CAAoBC,IAApB,EAA0B;AACtBtL,EAAAA,aAAa,CAACsL,IAAD,EAAO,6BAAP,CAAb;;AACA,MAAI,EAAE,OAAOA,IAAI,CAACC,qBAAZ,KAAsC,QAAxC,CAAJ,EAAuD;AACnDpjE,IAAAA,UAAU,CAAC,6BAAD,CAAV;AACH;AACJ;;AACD,SAASqjE,mBAAT,CAA6BxM,MAA7B,EAAuH;AAAA,MAAlFxkD,GAAkF,uEAA5E,0EAA4E;;AACnH,MAAI,CAAC2sD,eAAe,CAACnI,MAAD,CAApB,EAA8B;AAC1B72D,IAAAA,UAAU,CAACqS,GAAD,CAAV;AACH;AACJ;;AACD,SAASixD,kBAAT,CAA4BzM,MAA5B,EAAqH;AAAA,MAAjFxkD,GAAiF,uEAA3E,yEAA2E;;AACjH,MAAI,CAACqtD,cAAc,CAAC7I,MAAD,CAAnB,EAA6B;AACzB72D,IAAAA,UAAU,CAACqS,GAAD,CAAV;AACH;AACJ;;AACD,SAASkxD,0BAAT,CAAoCC,QAApC,EAA8C;AAC1CnM,EAAAA,WAAW,CAACmM,QAAD,EAAW,IAAX,EAAiB,iCAAjB,CAAX;AACH;;AACD,SAASC,eAAT,CAAyB/I,KAAzB,EAAgC;AAC5B7C,EAAAA,aAAa,CAAC6C,KAAD,EAAQ,4BAAR,CAAb;AACA7C,EAAAA,aAAa,CAAC6C,KAAK,CAACz0L,MAAP,EAAe,mCAAf,CAAb;AACH;;AACD,SAASy9L,cAAT,CAAwBZ,KAAxB,EAA+BnuM,KAA/B,EAAsCusJ,GAAtC,EAA2C;AACvC,MAAIA,GAAG,IAAI,IAAX,EACIA,GAAG,GAAG4hD,KAAN;AACJzL,EAAAA,WAAW,CAACn2C,GAAG,CAAC5gK,MAAL,EAAaqU,KAAb,kBAA6BA,KAA7B,uDAA+EusJ,GAAG,CAAC5gK,MAAnF,OAAX;AACH;;AACD,SAASqjN,gBAAT,CAA0B5hN,KAA1B,EAAiC;AAC7B81M,EAAAA,aAAa,CAAC91M,KAAD,EAAQ,4BAAR,CAAb;AACAs1M,EAAAA,WAAW,CAACkL,YAAY,CAACxgN,KAAD,CAAb,EAAsB,IAAtB,EAA4B,sBAA5B,CAAX;AACH;;AACD,SAAS6hN,sBAAT,CAAgC7hN,KAAhC,EAAuC;AACnCA,EAAAA,KAAK,IAAIs1M,WAAW,CAACiL,OAAO,CAACvgN,KAAD,CAAR,EAAiB,IAAjB,EAAuB,sCAAvB,CAApB;AACH;;AACD,SAAS8hN,WAAT,CAAqB9hN,KAArB,EAA4B;AACxB81M,EAAAA,aAAa,CAAC91M,KAAD,EAAQ,uBAAR,CAAb;AACAs1M,EAAAA,WAAW,CAACiL,OAAO,CAACvgN,KAAD,CAAR,EAAiB,IAAjB,EAAuB,iBAAvB,CAAX;AACH;;AACD,SAAS+hN,qBAAT,CAA+BnJ,KAA/B,EAAsCoJ,UAAtC,EAAkD;AAC9C1M,EAAAA,WAAW,CAACsD,KAAK,CAACF,eAAP,EAAwB,IAAxB,EAA8BsJ,UAAU,IAAI,6CAA5C,CAAX;AACH;;AACD,SAASC,qBAAT,CAA+BrJ,KAA/B,EAAsCoJ,UAAtC,EAAkD;AAC9C1M,EAAAA,WAAW,CAACsD,KAAK,CAACsJ,eAAP,EAAwB,IAAxB,EAA8BF,UAAU,IAAI,6CAA5C,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASG,kBAAT,CAA4B5xD,GAA5B,EAAiC;AAC7B,MAAIA,GAAG,CAAC7lJ,IAAJ,KAAaorB,SAAb,IAA0By6H,GAAG,CAAC6rD,SAAJ,IAAiBtmL,SAA3C,IAAwDy6H,GAAG,CAACorD,MAAJ,KAAe7lL,SAA3E,EAAsF;AAClFmoH,IAAAA,UAAU,kGAAV;AACH;AACJ;;AACD,SAASmkE,sBAAT,CAAgCrB,KAAhC,EAAuCnuM,KAAvC,EAA8C;AAC1C,MAAMgmM,KAAK,GAAGmI,KAAK,CAAC,CAAD,CAAnB;AACAsB,EAAAA,aAAa,CAACjC,aAAD,EAAgBxH,KAAK,CAAC0J,iBAAtB,EAAyC1vM,KAAzC,CAAb;AACH;;AACD,SAAS2vM,sBAAT,CAAgCxB,KAAhC,EAAuCnuM,KAAvC,EAA8C;AAC1C,MAAMgmM,KAAK,GAAGmI,KAAK,CAAC,CAAD,CAAnB;AACAsB,EAAAA,aAAa,CAACzJ,KAAK,CAAC0J,iBAAP,EAA0B1J,KAAK,CAAC4J,iBAAhC,EAAmD5vM,KAAnD,CAAb;AACH;;AACD,SAAS6vM,yBAAT,CAAmC1B,KAAnC,EAA0CnuM,KAA1C,EAAiD;AAC7C,MAAMgmM,KAAK,GAAGmI,KAAK,CAAC,CAAD,CAAnB;AACAsB,EAAAA,aAAa,CAACzJ,KAAK,CAAC4J,iBAAP,EAA0BzB,KAAK,CAACxiN,MAAhC,EAAwCqU,KAAxC,CAAb;AACH;;AACD,SAASyvM,aAAT,CAAuB57I,KAAvB,EAA8B6sD,KAA9B,EAAqC1gH,KAArC,EAA4C;AACxC,MAAI,EAAE6zD,KAAK,IAAI7zD,KAAT,IAAkBA,KAAK,GAAG0gH,KAA5B,CAAJ,EAAwC;AACpC2qB,IAAAA,UAAU,yCAAkCx3E,KAAlC,iBAA8C7zD,KAA9C,gBAAyD0gH,KAAzD,OAAV;AACH;AACJ;;AACD,SAASovF,qBAAT,CAA+B3B,KAA/B,EAAsCiB,UAAtC,EAAkD;AAC9ClM,EAAAA,aAAa,CAACiL,KAAK,CAACjB,0BAAD,CAAN,EAAoC,+BAApC,CAAb;AACAhK,EAAAA,aAAa,CAACiL,KAAK,CAACjB,0BAAD,CAAL,CAAkCV,MAAlC,EAA0C1rK,UAA3C,EAAuDsuK,UAAU,IAC1E,qFADS,CAAb;AAEH;;AACD,SAASW,gBAAT,CAA0B5B,KAA1B,EAAiCiB,UAAjC,EAA6C;AACzClM,EAAAA,aAAa,CAACiL,KAAD,EAAQiB,UAAU,IAAI,2EAAtB,CAAb;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASY,kBAAT,CAA4B7B,KAA5B,EAAmC8B,aAAnC,EAAkD;AAC9CJ,EAAAA,yBAAyB,CAAC1B,KAAD,EAAQ8B,aAAR,CAAzB;AACAJ,EAAAA,yBAAyB,CAAC1B,KAAD,EAAQ8B,aAAa,GAAG;AAAE;AAA1B,GAAzB;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG,CAAjB,CAAN,EAA2B,8CAA3B,CAAZ;AACAhO,EAAAA,YAAY,CAACkM,KAAK,CAAC8B,aAAa,GAAG;AAAE;AAAnB,GAAN,EAA2D,+CAA3D,CAAZ;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,aAAT,CAAuBp4M,IAAvB,EAA6B4zM,aAA7B,EAA4C;AACxC,MAAMyE,aAAa,GAAGr4M,IAAI,CAAC0X,cAAL,CAAoBs4L,cAApB,CAAtB;;AACA,MAAI,CAACqI,aAAD,IAAkBzE,aAAa,KAAK,IAApC,IAA4C3oD,SAAhD,EAA2D;AACvD,UAAM,IAAIztI,KAAJ,gBAAkBoF,SAAS,CAAC5iB,IAAD,CAA3B,0CAAN;AACH;;AACD,SAAOq4M,aAAa,GAAGr4M,IAAI,CAACgwM,cAAD,CAAP,GAA0B,IAA9C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMsI;AACF,wBAAYzoC,aAAZ,EAA2B8f,YAA3B,EAAyC4oB,WAAzC,EAAsD;AAAA;;AAClD,SAAK1oC,aAAL,GAAqBA,aAArB;AACA,SAAK8f,YAAL,GAAoBA,YAApB;AACA,SAAK4oB,WAAL,GAAmBA,WAAnB;AACH;AACD;AACJ;AACA;;;;;WACI,yBAAgB;AACZ,aAAO,KAAKA,WAAZ;AACH;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,oBAAT,GAAgC;AAC5B,SAAOC,sBAAP;AACH;;AACD,SAASA,sBAAT,CAAgCh/L,UAAhC,EAA4C;AACxC,MAAIA,UAAU,CAACzZ,IAAX,CAAgBjN,SAAhB,CAA0B2lN,WAA9B,EAA2C;AACvCj/L,IAAAA,UAAU,CAACq4L,QAAX,GAAsB6G,mBAAtB;AACH;;AACD,SAAOC,2CAAP;AACH,EACD;AACA;;AACA;AACA;;;AACAJ,oBAAoB,CAACK,SAArB,GAAiC,IAAjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASD,2CAAT,GAAuD;AACnD,MAAME,kBAAkB,GAAGC,qBAAqB,CAAC,IAAD,CAAhD;AACA,MAAMx4K,OAAO,GAAGu4K,kBAAkB,KAAK,IAAvB,IAA+BA,kBAAkB,KAAK,KAAK,CAA3D,GAA+D,KAAK,CAApE,GAAwEA,kBAAkB,CAACv4K,OAA3G;;AACA,MAAIA,OAAJ,EAAa;AACT,QAAM+V,QAAQ,GAAGwiK,kBAAkB,CAACxiK,QAApC;;AACA,QAAIA,QAAQ,KAAKk5J,SAAjB,EAA4B;AACxBsJ,MAAAA,kBAAkB,CAACxiK,QAAnB,GAA8B/V,OAA9B;AACH,KAFD,MAGK;AACD;AACA;AACA,WAAK,IAAIt2B,GAAT,IAAgBs2B,OAAhB,EAAyB;AACrB+V,QAAAA,QAAQ,CAACrsC,GAAD,CAAR,GAAgBs2B,OAAO,CAACt2B,GAAD,CAAvB;AACH;AACJ;;AACD6uM,IAAAA,kBAAkB,CAACv4K,OAAnB,GAA6B,IAA7B;AACA,SAAKm4K,WAAL,CAAiBn4K,OAAjB;AACH;AACJ;;AACD,SAASo4K,mBAAT,CAA6BK,QAA7B,EAAuC1jN,KAAvC,EAA8C+9M,UAA9C,EAA0D4F,WAA1D,EAAuE;AACnE,MAAMH,kBAAkB,GAAGC,qBAAqB,CAACC,QAAD,CAArB,IACvBE,qBAAqB,CAACF,QAAD,EAAW;AAAE1iK,IAAAA,QAAQ,EAAEk5J,SAAZ;AAAuBjvK,IAAAA,OAAO,EAAE;AAAhC,GAAX,CADzB;AAEA,MAAMA,OAAO,GAAGu4K,kBAAkB,CAACv4K,OAAnB,KAA+Bu4K,kBAAkB,CAACv4K,OAAnB,GAA6B,EAA5D,CAAhB;AACA,MAAM+V,QAAQ,GAAGwiK,kBAAkB,CAACxiK,QAApC;AACA,MAAMg9J,YAAY,GAAG,KAAK/C,cAAL,CAAoB8C,UAApB,CAArB;AACA,MAAM8F,cAAc,GAAG7iK,QAAQ,CAACg9J,YAAD,CAA/B;AACA/yK,EAAAA,OAAO,CAAC+yK,YAAD,CAAP,GAAwB,IAAIgF,YAAJ,CAAiBa,cAAc,IAAIA,cAAc,CAACxpB,YAAlD,EAAgEr6L,KAAhE,EAAuEghD,QAAQ,KAAKk5J,SAApF,CAAxB;AACAwJ,EAAAA,QAAQ,CAACC,WAAD,CAAR,GAAwB3jN,KAAxB;AACH;;AACD,IAAM8jN,oBAAoB,GAAG,qBAA7B;;AACA,SAASL,qBAAT,CAA+BC,QAA/B,EAAyC;AACrC,SAAOA,QAAQ,CAACI,oBAAD,CAAR,IAAkC,IAAzC;AACH;;AACD,SAASF,qBAAT,CAA+BF,QAA/B,EAAyCK,KAAzC,EAAgD;AAC5C,SAAOL,QAAQ,CAACI,oBAAD,CAAR,GAAiCC,KAAxC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,gBAAgB,GAAG,IAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAc;AAC9BF,EAAAA,gBAAgB,GAAGE,QAAnB;AACH,CAFD;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAAU76M,KAAV,EAAiBq6M,QAAjB,EAA2BS,cAA3B,EAA2C;AACxD,MAAIH,gBAAgB,IAAI;AAAK;AAA7B,IAAgE;AAC5DA,MAAAA,gBAAgB,CAAC36M,KAAD,EAAQq6M,QAAR,EAAkBS,cAAlB,CAAhB;AACH;AACJ,CAJD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,aAAa,GAAG,KAAtB;AACA,IAAMC,iBAAiB,GAAG,4BAA1B;AACA,IAAMC,iBAAiB,GAAG,MAA1B;AACA,IAAMC,qBAAqB,GAAG,gCAA9B;;AACA,SAASC,eAAT,CAAyBjmJ,SAAzB,EAAoC;AAChC,MAAM10D,IAAI,GAAG00D,SAAS,CAAC18C,WAAV,EAAb;AACA,SAAOhY,IAAI,KAAKu6M,aAAT,GAAyBC,iBAAzB,GACFx6M,IAAI,KAAKy6M,iBAAT,GAA6BC,qBAA7B,GAAqD,IAD1D;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,SAASE,WAAT,CAAqBzkN,KAArB,EAA4B;AACxB,SAAOxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,CAAP,EAA6B;AACzBA,IAAAA,KAAK,GAAGA,KAAK,CAAC8+M,IAAD,CAAb;AACH;;AACD,SAAO9+M,KAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS0kN,WAAT,CAAqB1kN,KAArB,EAA4B;AACxB,SAAOxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,CAAP,EAA6B;AACzB;AACA;AACA,QAAI,OAAOA,KAAK,CAACu+M,IAAD,CAAZ,KAAuB,QAA3B,EACI,OAAOv+M,KAAP;AACJA,IAAAA,KAAK,GAAGA,KAAK,CAAC8+M,IAAD,CAAb;AACH;;AACD,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS6F,gBAAT,CAA0B3kN,KAA1B,EAAiC;AAC7B,SAAOxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,CAAP,EAA6B;AACzB;AACA;AACA,QAAIA,KAAK,CAACu+M,IAAD,CAAL,KAAgB,IAApB,EACI,OAAOv+M,KAAP;AACJA,IAAAA,KAAK,GAAGA,KAAK,CAAC8+M,IAAD,CAAb;AACH;;AACD,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS8F,gBAAT,CAA0BhyM,KAA1B,EAAiCmuM,KAAjC,EAAwC;AACpCprD,EAAAA,SAAS,IAAIsgD,kBAAkB,CAAC8K,KAAD,EAAQnuM,KAAR,CAA/B;AACA+iJ,EAAAA,SAAS,IAAIw/C,wBAAwB,CAACviM,KAAD,EAAQwtM,aAAR,EAAuB,mCAAvB,CAArC;AACA,SAAOqE,WAAW,CAAC1D,KAAK,CAACnuM,KAAD,CAAN,CAAlB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiyM,gBAAT,CAA0BlM,KAA1B,EAAiCoI,KAAjC,EAAwC;AACpCprD,EAAAA,SAAS,IAAImrD,mBAAmB,CAACnI,KAAD,EAAQoI,KAAR,CAAhC;AACAprD,EAAAA,SAAS,IAAIsgD,kBAAkB,CAAC8K,KAAD,EAAQpI,KAAK,CAAC/lM,KAAd,CAA/B;AACA,MAAMjG,IAAI,GAAG83M,WAAW,CAAC1D,KAAK,CAACpI,KAAK,CAAC/lM,KAAP,CAAN,CAAxB;AACA,SAAOjG,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm4M,sBAAT,CAAgCnM,KAAhC,EAAuCoI,KAAvC,EAA8C;AAC1C,MAAMnuM,KAAK,GAAG+lM,KAAK,KAAK,IAAV,GAAiB,CAAC,CAAlB,GAAsBA,KAAK,CAAC/lM,KAA1C;;AACA,MAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;AACd+iJ,IAAAA,SAAS,IAAImrD,mBAAmB,CAACnI,KAAD,EAAQoI,KAAR,CAAhC;AACA,QAAMp0M,IAAI,GAAG83M,WAAW,CAAC1D,KAAK,CAACnuM,KAAD,CAAN,CAAxB;AACA,WAAOjG,IAAP;AACH;;AACD,SAAO,IAAP;AACH,EACD;;;AACA,SAASo4M,QAAT,CAAkBnM,KAAlB,EAAyBhmM,KAAzB,EAAgC;AAC5B+iJ,EAAAA,SAAS,IAAIigD,iBAAiB,CAAChjM,KAAD,EAAQ,CAAC,CAAT,EAAY,uBAAZ,CAA9B;AACA+iJ,EAAAA,SAAS,IAAIggD,cAAc,CAAC/iM,KAAD,EAAQgmM,KAAK,CAAC/3M,IAAN,CAAWtC,MAAnB,EAA2B,uBAA3B,CAA3B;AACA,MAAMo6M,KAAK,GAAGC,KAAK,CAAC/3M,IAAN,CAAW+R,KAAX,CAAd;AACA+iJ,EAAAA,SAAS,IAAIgjD,KAAK,KAAK,IAAvB,IAA+BsI,WAAW,CAACtI,KAAD,CAA1C;AACA,SAAOA,KAAP;AACH;AACD;;;AACA,SAAS5gH,IAAT,CAAchnF,IAAd,EAAoB6B,KAApB,EAA2B;AACvB+iJ,EAAAA,SAAS,IAAIsgD,kBAAkB,CAACllM,IAAD,EAAO6B,KAAP,CAA/B;AACA,SAAO7B,IAAI,CAAC6B,KAAD,CAAX;AACH;;AACD,SAASoyM,wBAAT,CAAkCC,SAAlC,EAA6CC,QAA7C,EAAuD;AACnD;AACAvvD,EAAAA,SAAS,IAAIsgD,kBAAkB,CAACiP,QAAD,EAAWD,SAAX,CAA/B;AACA,MAAME,SAAS,GAAGD,QAAQ,CAACD,SAAD,CAA1B;AACA,MAAMlE,KAAK,GAAGR,OAAO,CAAC4E,SAAD,CAAP,GAAqBA,SAArB,GAAiCA,SAAS,CAACrG,IAAD,CAAxD;AACA,SAAOiC,KAAP;AACH;AACD;;;AACA,SAASqE,cAAT,CAAwBr0M,IAAxB,EAA8B;AAC1B,SAAO,CAACA,IAAI,CAACiuM,KAAD,CAAJ,GAAc;AAAE;AAAjB,QAAoD;AAAE;AAA7D;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqG,4BAAT,CAAsCt0M,IAAtC,EAA4C;AACxC,SAAO,CAACA,IAAI,CAACiuM,KAAD,CAAJ,GAAc;AAAG;AAAlB,QAAiD;AAAG;AAA3D;AACH;AACD;;;AACA,SAASsG,uBAAT,CAAiCv0M,IAAjC,EAAuC;AACnC,SAAOyvM,YAAY,CAACzvM,IAAI,CAACkuM,MAAD,CAAL,CAAnB;AACH;;AACD,SAASsG,WAAT,CAAqBlK,MAArB,EAA6BzoM,KAA7B,EAAoC;AAChC,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKkjB,SAAhC,EACI,OAAO,IAAP;AACJ6/H,EAAAA,SAAS,IAAIsgD,kBAAkB,CAACoF,MAAD,EAASzoM,KAAT,CAA/B;AACA,SAAOyoM,MAAM,CAACzoM,KAAD,CAAb;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS4yM,sBAAT,CAAgCzE,KAAhC,EAAuC;AACnCA,EAAAA,KAAK,CAACf,mBAAD,CAAL,GAA6B,CAA7B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyF,2BAAT,CAAqCC,UAArC,EAAiDC,MAAjD,EAAyD;AACrDD,EAAAA,UAAU,CAACvG,6BAAD,CAAV,IAA6CwG,MAA7C;AACA,MAAIC,eAAe,GAAGF,UAAtB;AACA,MAAIxhM,MAAM,GAAGwhM,UAAU,CAACzG,MAAD,CAAvB;;AACA,SAAO/6L,MAAM,KAAK,IAAX,KACDyhM,MAAM,KAAK,CAAX,IAAgBC,eAAe,CAACzG,6BAAD,CAAf,KAAmD,CAApE,IACIwG,MAAM,KAAK,CAAC,CAAZ,IAAiBC,eAAe,CAACzG,6BAAD,CAAf,KAAmD,CAFtE,CAAP,EAEkF;AAC9Ej7L,IAAAA,MAAM,CAACi7L,6BAAD,CAAN,IAAyCwG,MAAzC;AACAC,IAAAA,eAAe,GAAG1hM,MAAlB;AACAA,IAAAA,MAAM,GAAGA,MAAM,CAAC+6L,MAAD,CAAf;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM4G,gBAAgB,GAAG;AACrBC,EAAAA,MAAM,eAAEC,YAAY,CAAC,IAAD,CADC;AAErBC,EAAAA,eAAe,EAAE;AAFI,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,uBAAuB,GAAG,KAA9B;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,+BAAT,GAA2C;AACvC,SAAOL,gBAAgB,CAACC,MAAjB,CAAwB5hM,MAAxB,KAAmC,IAA1C;AACH;;AACD,SAASiiM,oBAAT,GAAgC;AAC5B,SAAON,gBAAgB,CAACC,MAAjB,CAAwBM,iBAA/B;AACH;;AACD,SAASC,yBAAT,GAAqC;AACjCR,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASE,yBAAT,GAAqC;AACjCT,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASG,kBAAT,GAA8B;AAC1B,SAAOV,gBAAgB,CAACG,eAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,gBAAT,GAA4B;AACxBX,EAAAA,gBAAgB,CAACG,eAAjB,GAAmC,IAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,iBAAT,GAA6B;AACzBZ,EAAAA,gBAAgB,CAACG,eAAjB,GAAmC,KAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASU,QAAT,GAAoB;AAChB,SAAOb,gBAAgB,CAACC,MAAjB,CAAwB/E,KAA/B;AACH;AACD;AACA;AACA;;;AACA,SAAS4F,QAAT,GAAoB;AAChB,SAAOd,gBAAgB,CAACC,MAAjB,CAAwBlN,KAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgO,aAAT,CAAuBC,aAAvB,EAAsC;AAClChB,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuCD,aAAvC;AACA,SAAOA,aAAa,CAACvH,OAAD,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyH,WAAT,CAAqB/mN,KAArB,EAA4B;AACxB6lN,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuC,IAAvC;AACA,SAAO9mN,KAAP;AACH;;AACD,SAASgnN,eAAT,GAA2B;AACvB,MAAIC,YAAY,GAAGC,4BAA4B,EAA/C;;AACA,SAAOD,YAAY,KAAK,IAAjB,IAAyBA,YAAY,CAACv8M,IAAb,KAAsB;AAAG;AAAzD,IAAsF;AAClFu8M,IAAAA,YAAY,GAAGA,YAAY,CAAC/iM,MAA5B;AACH;;AACD,SAAO+iM,YAAP;AACH;;AACD,SAASC,4BAAT,GAAwC;AACpC,SAAOrB,gBAAgB,CAACC,MAAjB,CAAwBmB,YAA/B;AACH;;AACD,SAASE,qBAAT,GAAiC;AAC7B,MAAMrB,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACA,MAAMmB,YAAY,GAAGnB,MAAM,CAACmB,YAA5B;AACA,SAAOnB,MAAM,CAACrE,QAAP,GAAkBwF,YAAlB,GAAiCA,YAAY,CAAC/iM,MAArD;AACH;;AACD,SAASkjM,eAAT,CAAyBzO,KAAzB,EAAgC8I,QAAhC,EAA0C;AACtC9rD,EAAAA,SAAS,IAAIgjD,KAAb,IAAsBqI,mBAAmB,CAACrI,KAAD,EAAQkN,gBAAgB,CAACC,MAAjB,CAAwBlN,KAAhC,CAAzC;AACA,MAAMkN,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACAA,EAAAA,MAAM,CAACmB,YAAP,GAAsBtO,KAAtB;AACAmN,EAAAA,MAAM,CAACrE,QAAP,GAAkBA,QAAlB;AACH;;AACD,SAAS4F,oBAAT,GAAgC;AAC5B,SAAOxB,gBAAgB,CAACC,MAAjB,CAAwBrE,QAA/B;AACH;;AACD,SAAS6F,0BAAT,GAAsC;AAClCzB,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBrE,QAAxB,GAAmC,KAAnC;AACH;;AACD,SAAS8F,uBAAT,GAAmC;AAC/B1B,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBrE,QAAxB,GAAmC,IAAnC;AACH;;AACD,SAAS+F,eAAT,GAA2B;AACvB,MAAMV,YAAY,GAAGjB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAA7C;AACAnxD,EAAAA,SAAS,IAAImgD,aAAa,CAACgR,YAAD,EAAe,+BAAf,CAA1B;AACA,SAAOA,YAAP;AACH;;AACD,SAASW,sBAAT,GAAkC;AAC9B,GAAC9xD,SAAD,IAAc1X,UAAU,CAAC,yCAAD,CAAxB;AACA,SAAOgoE,uBAAP;AACH;;AACD,SAASyB,yBAAT,CAAmCv4M,IAAnC,EAAyC;AACrC,GAACwmJ,SAAD,IAAc1X,UAAU,CAAC,yCAAD,CAAxB;AACAgoE,EAAAA,uBAAuB,GAAG92M,IAA1B;AACH,EACD;;;AACA,SAASw4M,cAAT,GAA0B;AACtB,MAAM7B,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACA,MAAIlzM,KAAK,GAAGkzM,MAAM,CAAC8B,gBAAnB;;AACA,MAAIh1M,KAAK,KAAK,CAAC,CAAf,EAAkB;AACdA,IAAAA,KAAK,GAAGkzM,MAAM,CAAC8B,gBAAP,GAA0B9B,MAAM,CAAClN,KAAP,CAAa0J,iBAA/C;AACH;;AACD,SAAO1vM,KAAP;AACH;;AACD,SAASi1M,eAAT,GAA2B;AACvB,SAAOhC,gBAAgB,CAACC,MAAjB,CAAwBgC,YAA/B;AACH;;AACD,SAASC,eAAT,CAAyB/nN,KAAzB,EAAgC;AAC5B,SAAO6lN,gBAAgB,CAACC,MAAjB,CAAwBgC,YAAxB,GAAuC9nN,KAA9C;AACH;;AACD,SAASgoN,gBAAT,GAA4B;AACxB,SAAOnC,gBAAgB,CAACC,MAAjB,CAAwBgC,YAAxB,EAAP;AACH;;AACD,SAASG,qBAAT,CAA+BtjN,KAA/B,EAAsC;AAClC,MAAMmhN,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACA,MAAMlzM,KAAK,GAAGkzM,MAAM,CAACgC,YAArB;AACAhC,EAAAA,MAAM,CAACgC,YAAP,GAAsBhC,MAAM,CAACgC,YAAP,GAAsBnjN,KAA5C;AACA,SAAOiO,KAAP;AACH;;AACD,SAASs1M,aAAT,GAAyB;AACrB,SAAOrC,gBAAgB,CAACC,MAAjB,CAAwBqC,MAA/B;AACH;;AACD,SAASC,cAAT,CAAwBF,aAAxB,EAAuC;AACnCrC,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBqC,MAAxB,GAAiCD,aAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,6BAAT,CAAuCT,gBAAvC,EAAyDU,qBAAzD,EAAgF;AAC5E,MAAMxC,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACAA,EAAAA,MAAM,CAACgC,YAAP,GAAsBhC,MAAM,CAAC8B,gBAAP,GAA0BA,gBAAhD;AACAW,EAAAA,wBAAwB,CAACD,qBAAD,CAAxB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASE,wBAAT,GAAoC;AAChC,SAAO3C,gBAAgB,CAACC,MAAjB,CAAwBwC,qBAA/B;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,wBAAT,CAAkCD,qBAAlC,EAAyD;AACrDzC,EAAAA,gBAAgB,CAACC,MAAjB,CAAwBwC,qBAAxB,GAAgDA,qBAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,sBAAT,CAAgCC,KAAhC,EAAuC;AACnC,MAAMJ,qBAAqB,GAAGzC,gBAAgB,CAACC,MAAjB,CAAwBwC,qBAAtD;AACA,SAAOA,qBAAqB,KAAK,CAAC,CAA3B,GAA+B,IAA/B,GAAsCI,KAAK,CAACJ,qBAAD,CAAlD;AACH;;AACD,SAASK,oBAAT,GAAgC;AAC5B,SAAO9C,gBAAgB,CAACC,MAAjB,CAAwB97C,iBAA/B;AACH;;AACD,SAAS4+C,oBAAT,CAA8B5oN,KAA9B,EAAqC;AACjC6lN,EAAAA,gBAAgB,CAACC,MAAjB,CAAwB97C,iBAAxB,GAA4ChqK,KAA5C;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS6oN,mBAAT,CAA6B9H,KAA7B,EAAoC;AAChC,MAAMnI,KAAK,GAAGmI,KAAK,CAAChC,KAAD,CAAnB,CADgC,CAEhC;;AACA,MAAInG,KAAK,CAACluM,IAAN,KAAe;AAAE;AAArB,IAA+C;AAC3CirJ,MAAAA,SAAS,IAAImgD,aAAa,CAAC8C,KAAK,CAACkQ,SAAP,EAAkB,kDAAlB,CAA1B;AACA,aAAOlQ,KAAK,CAACkQ,SAAb;AACH,KAN+B,CAOhC;AACA;AACA;;;AACA,MAAIlQ,KAAK,CAACluM,IAAN,KAAe;AAAE;AAArB,IAAgD;AAC5C,aAAOq2M,KAAK,CAAC3B,MAAD,CAAZ;AACH,KAZ+B,CAahC;;;AACA,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2J,OAAT,CAAiBhI,KAAjB,EAAwBpI,KAAxB,EAA+B7mG,KAA/B,EAAsC;AAClC6jD,EAAAA,SAAS,IAAIksD,sBAAsB,CAACd,KAAD,CAAnC;;AACA,MAAIjvG,KAAK,GAAGolG,WAAW,CAAC8R,QAAxB,EAAkC;AAC9BrzD,IAAAA,SAAS,IAAIqrD,mBAAmB,CAACrI,KAAD,EAAQoI,KAAK,CAAChC,KAAD,CAAb,CAAhC;AACA,QAAIkK,WAAW,GAAGtQ,KAAlB;AACA,QAAIuQ,WAAW,GAAGnI,KAAlB;;AACA,WAAO,IAAP,EAAa;AACTprD,MAAAA,SAAS,IAAImgD,aAAa,CAACmT,WAAD,EAAc,gCAAd,CAA1B;AACAA,MAAAA,WAAW,GAAGA,WAAW,CAAC/kM,MAA1B;;AACA,UAAI+kM,WAAW,KAAK,IAAhB,IAAwB,EAAEn3G,KAAK,GAAGolG,WAAW,CAACjzB,IAAtB,CAA5B,EAAyD;AACrDglC,QAAAA,WAAW,GAAGJ,mBAAmB,CAACK,WAAD,CAAjC;AACA,YAAID,WAAW,KAAK,IAApB,EACI,MAHiD,CAIrD;AACA;;AACAtzD,QAAAA,SAAS,IAAImgD,aAAa,CAACoT,WAAD,EAAc,gCAAd,CAA1B;AACAA,QAAAA,WAAW,GAAGA,WAAW,CAACrJ,gBAAD,CAAzB,CAPqD,CAQrD;AACA;AACA;;AACA,YAAIoJ,WAAW,CAACv+M,IAAZ,IAAoB;AAAE;AAAF,UAA4B;AAAE;AAAlD,SAAJ,EAAyF;AACrF;AACH;AACJ,OAdD,MAeK;AACD;AACH;AACJ;;AACD,QAAIu+M,WAAW,KAAK,IAApB,EAA0B;AACtB;AACA,aAAO,KAAP;AACH,KAHD,MAIK;AACDtQ,MAAAA,KAAK,GAAGsQ,WAAR;AACAlI,MAAAA,KAAK,GAAGmI,WAAR;AACH;AACJ;;AACDvzD,EAAAA,SAAS,IAAImrD,mBAAmB,CAACnI,KAAD,EAAQoI,KAAR,CAAhC;AACA,MAAM+E,MAAM,GAAGD,gBAAgB,CAACC,MAAjB,GAA0BqD,WAAW,EAApD;AACArD,EAAAA,MAAM,CAACmB,YAAP,GAAsBtO,KAAtB;AACAmN,EAAAA,MAAM,CAAC/E,KAAP,GAAeA,KAAf;AACA,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqI,SAAT,CAAmBC,OAAnB,EAA4B;AACxB1zD,EAAAA,SAAS,IAAI6/C,cAAc,CAAC6T,OAAO,CAAC,CAAD,CAAR,EAAaA,OAAO,CAAC,CAAD,CAApB,EAAyB,MAAzB,CAA3B;AACA1zD,EAAAA,SAAS,IAAIksD,sBAAsB,CAACwH,OAAD,CAAnC;AACA,MAAMC,SAAS,GAAGH,WAAW,EAA7B;;AACA,MAAIxzD,SAAJ,EAAe;AACX2/C,IAAAA,WAAW,CAACgU,SAAS,CAAC7H,QAAX,EAAqB,IAArB,EAA2B,uBAA3B,CAAX;AACAnM,IAAAA,WAAW,CAACgU,SAAS,CAACvI,KAAX,EAAkB,IAAlB,EAAwB,uBAAxB,CAAX;AACAzL,IAAAA,WAAW,CAACgU,SAAS,CAAC1Q,KAAX,EAAkB,IAAlB,EAAwB,uBAAxB,CAAX;AACAtD,IAAAA,WAAW,CAACgU,SAAS,CAACC,aAAX,EAA0B,CAAC,CAA3B,EAA8B,uBAA9B,CAAX;AACAjU,IAAAA,WAAW,CAACgU,SAAS,CAAClD,iBAAX,EAA8B,CAA9B,EAAiC,uBAAjC,CAAX;AACA9Q,IAAAA,WAAW,CAACgU,SAAS,CAAChB,qBAAX,EAAkC,CAAC,CAAnC,EAAsC,uBAAtC,CAAX;AACAhT,IAAAA,WAAW,CAACgU,SAAS,CAACE,gBAAX,EAA6B,IAA7B,EAAmC,uBAAnC,CAAX;AACAlU,IAAAA,WAAW,CAACgU,SAAS,CAAC1B,gBAAX,EAA6B,CAAC,CAA9B,EAAiC,uBAAjC,CAAX;AACAtS,IAAAA,WAAW,CAACgU,SAAS,CAACt/C,iBAAX,EAA8B,CAA9B,EAAiC,uBAAjC,CAAX;AACH;;AACD,MAAM4uC,KAAK,GAAGyQ,OAAO,CAACtK,KAAD,CAArB;AACA8G,EAAAA,gBAAgB,CAACC,MAAjB,GAA0BwD,SAA1B;AACA3zD,EAAAA,SAAS,IAAIijD,KAAK,CAAC5xI,UAAnB,IAAiCg6I,mBAAmB,CAACpI,KAAK,CAAC5xI,UAAP,EAAmB4xI,KAAnB,CAApD;AACA0Q,EAAAA,SAAS,CAACrC,YAAV,GAAyBrO,KAAK,CAAC5xI,UAA/B;AACAsiJ,EAAAA,SAAS,CAACvI,KAAV,GAAkBsI,OAAlB;AACAC,EAAAA,SAAS,CAAC1Q,KAAV,GAAkBA,KAAlB;AACA0Q,EAAAA,SAAS,CAACxC,YAAV,GAAyBuC,OAAzB;AACAC,EAAAA,SAAS,CAACxB,YAAV,GAAyBlP,KAAK,CAAC0J,iBAA/B;AACAgH,EAAAA,SAAS,CAACnB,MAAV,GAAmB,KAAnB;AACH;AACD;AACA;AACA;;;AACA,SAASgB,WAAT,GAAuB;AACnB,MAAMM,aAAa,GAAG5D,gBAAgB,CAACC,MAAvC;AACA,MAAM4D,WAAW,GAAGD,aAAa,KAAK,IAAlB,GAAyB,IAAzB,GAAgCA,aAAa,CAACtsK,KAAlE;AACA,MAAMmsK,SAAS,GAAGI,WAAW,KAAK,IAAhB,GAAuB3D,YAAY,CAAC0D,aAAD,CAAnC,GAAqDC,WAAvE;AACA,SAAOJ,SAAP;AACH;;AACD,SAASvD,YAAT,CAAsB7hM,MAAtB,EAA8B;AAC1B,MAAM4hM,MAAM,GAAG;AACXmB,IAAAA,YAAY,EAAE,IADH;AAEXxF,IAAAA,QAAQ,EAAE,IAFC;AAGXV,IAAAA,KAAK,EAAE,IAHI;AAIXnI,IAAAA,KAAK,EAAE,IAJI;AAKX2Q,IAAAA,aAAa,EAAE,CAAC,CALL;AAMXzC,IAAAA,YAAY,EAAE,IANH;AAOXV,IAAAA,iBAAiB,EAAE,CAPR;AAQXoD,IAAAA,gBAAgB,EAAE,IARP;AASXlB,IAAAA,qBAAqB,EAAE,CAAC,CATb;AAUXV,IAAAA,gBAAgB,EAAE,CAAC,CAVR;AAWXE,IAAAA,YAAY,EAAE,CAAC,CAXJ;AAYX99C,IAAAA,iBAAiB,EAAE,CAZR;AAaX9lJ,IAAAA,MAAM,EAAEA,MAbG;AAcXi5B,IAAAA,KAAK,EAAE,IAdI;AAeXgrK,IAAAA,MAAM,EAAE;AAfG,GAAf;AAiBAjkM,EAAAA,MAAM,KAAK,IAAX,KAAoBA,MAAM,CAACi5B,KAAP,GAAe2oK,MAAnC,EAlB0B,CAkBkB;;AAC5C,SAAOA,MAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6D,cAAT,GAA0B;AACtB,MAAMC,SAAS,GAAG/D,gBAAgB,CAACC,MAAnC;AACAD,EAAAA,gBAAgB,CAACC,MAAjB,GAA0B8D,SAAS,CAAC1lM,MAApC;AACA0lM,EAAAA,SAAS,CAAC3C,YAAV,GAAyB,IAAzB;AACA2C,EAAAA,SAAS,CAAC7I,KAAV,GAAkB,IAAlB;AACA,SAAO6I,SAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,OAAO,GAAGF,cAAhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASG,SAAT,GAAqB;AACjB,MAAMF,SAAS,GAAGD,cAAc,EAAhC;AACAC,EAAAA,SAAS,CAACnI,QAAV,GAAqB,IAArB;AACAmI,EAAAA,SAAS,CAAChR,KAAV,GAAkB,IAAlB;AACAgR,EAAAA,SAAS,CAACL,aAAV,GAA0B,CAAC,CAA3B;AACAK,EAAAA,SAAS,CAAC9C,YAAV,GAAyB,IAAzB;AACA8C,EAAAA,SAAS,CAACxD,iBAAV,GAA8B,CAA9B;AACAwD,EAAAA,SAAS,CAACtB,qBAAV,GAAkC,CAAC,CAAnC;AACAsB,EAAAA,SAAS,CAACJ,gBAAV,GAA6B,IAA7B;AACAI,EAAAA,SAAS,CAAChC,gBAAV,GAA6B,CAAC,CAA9B;AACAgC,EAAAA,SAAS,CAAC9B,YAAV,GAAyB,CAAC,CAA1B;AACA8B,EAAAA,SAAS,CAAC5/C,iBAAV,GAA8B,CAA9B;AACH;;AACD,SAAS+/C,eAAT,CAAyBC,KAAzB,EAAgC;AAC5B,MAAMlD,YAAY,GAAGjB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GACjBmD,WAAW,CAACD,KAAD,EAAQnE,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAhC,CADf;AAEA,SAAOA,YAAY,CAACxH,OAAD,CAAnB;AACH;;AACD,SAAS2K,WAAT,CAAqBC,YAArB,EAAmCC,WAAnC,EAAgD;AAC5C,SAAOD,YAAY,GAAG,CAAtB,EAAyB;AACrBv0D,IAAAA,SAAS,IACLmgD,aAAa,CAACqU,WAAW,CAACtK,gBAAD,CAAZ,EAAgC,wEAAhC,CADjB;AAEAsK,IAAAA,WAAW,GAAGA,WAAW,CAACtK,gBAAD,CAAzB;AACAqK,IAAAA,YAAY;AACf;;AACD,SAAOC,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,GAA4B;AACxB,SAAOvE,gBAAgB,CAACC,MAAjB,CAAwByD,aAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASc,gBAAT,CAA0Bz3M,KAA1B,EAAiC;AAC7B+iJ,EAAAA,SAAS,IAAI/iJ,KAAK,KAAK,CAAC,CAAxB,IACIuiM,wBAAwB,CAACviM,KAAD,EAAQwtM,aAAR,EAAuB,2CAAvB,CAD5B;AAEAzqD,EAAAA,SAAS,IACLggD,cAAc,CAAC/iM,KAAD,EAAQizM,gBAAgB,CAACC,MAAjB,CAAwB/E,KAAxB,CAA8BxiN,MAAtC,EAA8C,sCAA9C,CADlB;AAEAsnN,EAAAA,gBAAgB,CAACC,MAAjB,CAAwByD,aAAxB,GAAwC32M,KAAxC;AACH;AACD;AACA;AACA;;;AACA,SAAS03M,gBAAT,GAA4B;AACxB,MAAMxE,MAAM,GAAGD,gBAAgB,CAACC,MAAhC;AACA,SAAOf,QAAQ,CAACe,MAAM,CAAClN,KAAR,EAAekN,MAAM,CAACyD,aAAtB,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASgB,cAAT,GAA0B;AACtB1E,EAAAA,gBAAgB,CAACC,MAAjB,CAAwB0D,gBAAxB,GAA2CpF,aAA3C;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASoG,iBAAT,GAA6B;AACzB3E,EAAAA,gBAAgB,CAACC,MAAjB,CAAwB0D,gBAAxB,GAA2ClF,iBAA3C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmG,eAAT,GAA2B;AACvBC,EAAAA,qBAAqB;AACxB;AACD;AACA;AACA;AACA;;;AACA,SAASA,qBAAT,GAAiC;AAC7B7E,EAAAA,gBAAgB,CAACC,MAAjB,CAAwB0D,gBAAxB,GAA2C,IAA3C;AACH;;AACD,SAASmB,cAAT,GAA0B;AACtB,SAAO9E,gBAAgB,CAACC,MAAjB,CAAwB0D,gBAA/B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoB,qBAAT,CAA+BC,cAA/B,EAA+CC,YAA/C,EAA6DlS,KAA7D,EAAoE;AAChEjjD,EAAAA,SAAS,IAAIosD,qBAAqB,CAACnJ,KAAD,CAAlC;AACA,8BAA6CkS,YAAY,CAACpgN,IAAb,CAAkBjN,SAA/D;AAAA,MAAQ2lN,WAAR,yBAAQA,WAAR;AAAA,MAAqB2H,QAArB,yBAAqBA,QAArB;AAAA,MAA+BC,SAA/B,yBAA+BA,SAA/B;;AACA,MAAI5H,WAAJ,EAAiB;AACb,QAAM6H,gBAAgB,GAAG9H,sBAAsB,CAAC2H,YAAD,CAA/C;AACA,KAAClS,KAAK,CAACsS,aAAN,KAAwBtS,KAAK,CAACsS,aAAN,GAAsB,EAA9C,CAAD,EAAoDzpN,IAApD,CAAyDopN,cAAzD,EAAyEI,gBAAzE;AACA,KAACrS,KAAK,CAACuS,kBAAN,KAA6BvS,KAAK,CAACuS,kBAAN,GAA2B,EAAxD,CAAD,EACK1pN,IADL,CACUopN,cADV,EAC0BI,gBAD1B;AAEH;;AACD,MAAIF,QAAJ,EAAc;AACV,KAACnS,KAAK,CAACsS,aAAN,KAAwBtS,KAAK,CAACsS,aAAN,GAAsB,EAA9C,CAAD,EAAoDzpN,IAApD,CAAyD,IAAIopN,cAA7D,EAA6EE,QAA7E;AACH;;AACD,MAAIC,SAAJ,EAAe;AACX,KAACpS,KAAK,CAACsS,aAAN,KAAwBtS,KAAK,CAACsS,aAAN,GAAsB,EAA9C,CAAD,EAAoDzpN,IAApD,CAAyDopN,cAAzD,EAAyEG,SAAzE;AACA,KAACpS,KAAK,CAACuS,kBAAN,KAA6BvS,KAAK,CAACuS,kBAAN,GAA2B,EAAxD,CAAD,EAA8D1pN,IAA9D,CAAmEopN,cAAnE,EAAmFG,SAAnF;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,sBAAT,CAAgCxS,KAAhC,EAAuCD,KAAvC,EAA8C;AAC1ChjD,EAAAA,SAAS,IAAIosD,qBAAqB,CAACnJ,KAAD,CAAlC,CAD0C,CAE1C;AACA;AACA;;AACA,OAAK,IAAIp5M,CAAC,GAAGm5M,KAAK,CAAC0S,cAAd,EAA8B/8M,GAAG,GAAGqqM,KAAK,CAAC2S,YAA/C,EAA6D9rN,CAAC,GAAG8O,GAAjE,EAAsE9O,CAAC,EAAvE,EAA2E;AACvE,QAAMsrN,YAAY,GAAGlS,KAAK,CAAC/3M,IAAN,CAAWrB,CAAX,CAArB;AACAm2J,IAAAA,SAAS,IAAImgD,aAAa,CAACgV,YAAD,EAAe,wBAAf,CAA1B;AACA,QAAMS,cAAc,GAAGT,YAAY,CAACpgN,IAAb,CAAkBjN,SAAzC;AACA,QAAQ+tN,kBAAR,GAAwGD,cAAxG,CAAQC,kBAAR;AAAA,QAA4BC,qBAA5B,GAAwGF,cAAxG,CAA4BE,qBAA5B;AAAA,QAAmDC,eAAnD,GAAwGH,cAAxG,CAAmDG,eAAnD;AAAA,QAAoEC,kBAApE,GAAwGJ,cAAxG,CAAoEI,kBAApE;AAAA,QAAwFtN,WAAxF,GAAwGkN,cAAxG,CAAwFlN,WAAxF;;AACA,QAAImN,kBAAJ,EAAwB;AACpB,OAAC5S,KAAK,CAACgT,YAAN,KAAuBhT,KAAK,CAACgT,YAAN,GAAqB,EAA5C,CAAD,EAAkDnqN,IAAlD,CAAuD,CAACjC,CAAxD,EAA2DgsN,kBAA3D;AACH;;AACD,QAAIC,qBAAJ,EAA2B;AACvB,OAAC7S,KAAK,CAACgT,YAAN,KAAuBhT,KAAK,CAACgT,YAAN,GAAqB,EAA5C,CAAD,EAAkDnqN,IAAlD,CAAuDjC,CAAvD,EAA0DisN,qBAA1D;AACA,OAAC7S,KAAK,CAACiT,iBAAN,KAA4BjT,KAAK,CAACiT,iBAAN,GAA0B,EAAtD,CAAD,EAA4DpqN,IAA5D,CAAiEjC,CAAjE,EAAoEisN,qBAApE;AACH;;AACD,QAAIC,eAAJ,EAAqB;AACjB,OAAC9S,KAAK,CAACkT,SAAN,KAAoBlT,KAAK,CAACkT,SAAN,GAAkB,EAAtC,CAAD,EAA4CrqN,IAA5C,CAAiD,CAACjC,CAAlD,EAAqDksN,eAArD;AACH;;AACD,QAAIC,kBAAJ,EAAwB;AACpB,OAAC/S,KAAK,CAACkT,SAAN,KAAoBlT,KAAK,CAACkT,SAAN,GAAkB,EAAtC,CAAD,EAA4CrqN,IAA5C,CAAiDjC,CAAjD,EAAoDmsN,kBAApD;AACA,OAAC/S,KAAK,CAACmT,cAAN,KAAyBnT,KAAK,CAACmT,cAAN,GAAuB,EAAhD,CAAD,EAAsDtqN,IAAtD,CAA2DjC,CAA3D,EAA8DmsN,kBAA9D;AACH;;AACD,QAAItN,WAAW,IAAI,IAAnB,EAAyB;AACrB,OAACzF,KAAK,CAACoT,YAAN,KAAuBpT,KAAK,CAACoT,YAAN,GAAqB,EAA5C,CAAD,EAAkDvqN,IAAlD,CAAuDjC,CAAvD,EAA0D6+M,WAA1D;AACH;AACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4N,iBAAT,CAA2BlL,KAA3B,EAAkCmL,KAAlC,EAAyCjH,SAAzC,EAAoD;AAChDkH,EAAAA,SAAS,CAACpL,KAAD,EAAQmL,KAAR,EAAe;AAAE;AAAjB,IAA0DjH,SAA1D,CAAT;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmH,wBAAT,CAAkCrL,KAAlC,EAAyCmL,KAAzC,EAAgDG,SAAhD,EAA2DpH,SAA3D,EAAsE;AAClEtvD,EAAAA,SAAS,IACL6/C,cAAc,CAAC6W,SAAD,EAAY;AAAE;AAAd,IAAuD,0DAAvD,CADlB;;AAEA,MAAI,CAACtL,KAAK,CAAC/B,KAAD,CAAL,GAAe;AAAE;AAAlB,QAA2DqN,SAA/D,EAA0E;AACtEF,IAAAA,SAAS,CAACpL,KAAD,EAAQmL,KAAR,EAAeG,SAAf,EAA0BpH,SAA1B,CAAT;AACH;AACJ;;AACD,SAASqH,uBAAT,CAAiCvL,KAAjC,EAAwCsL,SAAxC,EAAmD;AAC/C12D,EAAAA,SAAS,IACL6/C,cAAc,CAAC6W,SAAD,EAAY;AAAE;AAAd,IAAuD,gFAAvD,CADlB;AAEA,MAAIv6G,KAAK,GAAGivG,KAAK,CAAC/B,KAAD,CAAjB;;AACA,MAAI,CAACltG,KAAK,GAAG;AAAE;AAAX,QAAoDu6G,SAAxD,EAAmE;AAC/Dv6G,IAAAA,KAAK,IAAI;AAAK;AAAd;AACAA,IAAAA,KAAK,IAAI;AAAE;AAAX;AACAivG,IAAAA,KAAK,CAAC/B,KAAD,CAAL,GAAeltG,KAAf;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq6G,SAAT,CAAmBhC,WAAnB,EAAgChrD,GAAhC,EAAqCktD,SAArC,EAAgDE,gBAAhD,EAAkE;AAC9D52D,EAAAA,SAAS,IACL2/C,WAAW,CAACmS,sBAAsB,EAAvB,EAA2B,KAA3B,EAAkC,0DAAlC,CADf;AAEA,MAAMjgM,UAAU,GAAG+kM,gBAAgB,KAAKz2L,SAArB,GACdq0L,WAAW,CAACnK,mBAAD,CAAX,GAAmC;AAAM;AAD3B,IAEf,CAFJ;AAGA,MAAMwM,cAAc,GAAGD,gBAAgB,IAAI,IAApB,GAA2BA,gBAA3B,GAA8C,CAAC,CAAtE;AACA,MAAMrsN,GAAG,GAAGi/J,GAAG,CAAC5gK,MAAJ,GAAa,CAAzB,CAP8D,CAOlC;;AAC5B,MAAIkuN,kBAAkB,GAAG,CAAzB;;AACA,OAAK,IAAIjtN,CAAC,GAAGgoB,UAAb,EAAyBhoB,CAAC,GAAGU,GAA7B,EAAkCV,CAAC,EAAnC,EAAuC;AACnC,QAAMktN,IAAI,GAAGvtD,GAAG,CAAC3/J,CAAC,GAAG,CAAL,CAAhB;;AACA,QAAI,OAAOktN,IAAP,KAAgB,QAApB,EAA8B;AAC1BD,MAAAA,kBAAkB,GAAGttD,GAAG,CAAC3/J,CAAD,CAAxB;;AACA,UAAI+sN,gBAAgB,IAAI,IAApB,IAA4BE,kBAAkB,IAAIF,gBAAtD,EAAwE;AACpE;AACH;AACJ,KALD,MAMK;AACD,UAAMI,UAAU,GAAGxtD,GAAG,CAAC3/J,CAAD,CAAH,GAAS,CAA5B;AACA,UAAImtN,UAAJ,EACIxC,WAAW,CAACnK,mBAAD,CAAX,IAAoC;AAAM;AAA1C;;AACJ,UAAIyM,kBAAkB,GAAGD,cAArB,IAAuCA,cAAc,IAAI,CAAC,CAA9D,EAAiE;AAC7DI,QAAAA,QAAQ,CAACzC,WAAD,EAAckC,SAAd,EAAyBltD,GAAzB,EAA8B3/J,CAA9B,CAAR;AACA2qN,QAAAA,WAAW,CAACnK,mBAAD,CAAX,GACI,CAACmK,WAAW,CAACnK,mBAAD,CAAX,GAAmC;AAAW;AAA/C,YAAsGxgN,CAAtG,GACI,CAFR;AAGH;;AACDA,MAAAA,CAAC;AACJ;AACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASotN,QAAT,CAAkBzC,WAAlB,EAA+BkC,SAA/B,EAA0CltD,GAA1C,EAA+C3/J,CAA/C,EAAkD;AAC9C,MAAMmtN,UAAU,GAAGxtD,GAAG,CAAC3/J,CAAD,CAAH,GAAS,CAA5B;AACA,MAAMktN,IAAI,GAAGvtD,GAAG,CAAC3/J,CAAC,GAAG,CAAL,CAAhB;AACA,MAAMqrN,cAAc,GAAG8B,UAAU,GAAG,CAACxtD,GAAG,CAAC3/J,CAAD,CAAP,GAAa2/J,GAAG,CAAC3/J,CAAD,CAAjD;AACA,MAAMqtN,SAAS,GAAG1C,WAAW,CAACU,cAAD,CAA7B;;AACA,MAAI8B,UAAJ,EAAgB;AACZ,QAAMG,qBAAqB,GAAG3C,WAAW,CAACnL,KAAD,CAAX,IAAsB;AAAG;AAAvD,KADY,CAEZ;;AACA,QAAI8N,qBAAqB,GACpB3C,WAAW,CAACnK,mBAAD,CAAX,IAAoC;AAAG;AADxC,OAEA,CAACmK,WAAW,CAACnL,KAAD,CAAX,GAAqB;AAAE;AAAxB,UAAiEqN,SAFrE,EAEgF;AAC5ElC,MAAAA,WAAW,CAACnL,KAAD,CAAX,IAAsB;AAAK;AAA3B;AACAkF,MAAAA,QAAQ,CAAC;AAAE;AAAH,QAA2C2I,SAA3C,EAAsDH,IAAtD,CAAR;;AACA,UAAI;AACAA,QAAAA,IAAI,CAAC7qN,IAAL,CAAUgrN,SAAV;AACH,OAFD,SAGQ;AACJ3I,QAAAA,QAAQ,CAAC;AAAE;AAAH,UAAyC2I,SAAzC,EAAoDH,IAApD,CAAR;AACH;AACJ;AACJ,GAfD,MAgBK;AACDxI,IAAAA,QAAQ,CAAC;AAAE;AAAH,MAA2C2I,SAA3C,EAAsDH,IAAtD,CAAR;;AACA,QAAI;AACAA,MAAAA,IAAI,CAAC7qN,IAAL,CAAUgrN,SAAV;AACH,KAFD,SAGQ;AACJ3I,MAAAA,QAAQ,CAAC;AAAE;AAAH,QAAyC2I,SAAzC,EAAoDH,IAApD,CAAR;AACH;AACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMK,kBAAkB,GAAG,CAAC,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC,6PACF;AACA;AACJ;AACA;AACI/oM,OAJA;AAKA;AACJ;AACA;AACIgpM,cARA,EAQgBC,oBARhB,EAQsC;AAAA;;AAClC,OAAKjpM,OAAL,GAAeA,OAAf;AACA;AACR;AACA;AACA;;AACQ,OAAKkpM,SAAL,GAAiB,KAAjB;AACAx3D,EAAAA,SAAS,IAAImgD,aAAa,CAAC7xL,OAAD,EAAU,uBAAV,CAA1B;AACA0xI,EAAAA,SAAS,IAAI2/C,WAAW,CAAC,OAAOrxL,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;AACA,OAAKmpM,mBAAL,GAA2BH,cAA3B;AACA,OAAKI,UAAL,GAAkBH,oBAAlB;AACH;;AAEL,SAASI,SAAT,CAAmB/8D,GAAnB,EAAwB;AACpB,SAAOA,GAAG,YAAYy8D,mBAAtB;AACH,EACD;AACA;;;AACA,IAAMO,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;;AACA,SAASC,mBAAT,CAA6BC,SAA7B,EAAwC;AACpC,MAAItlN,IAAI,GAAG,EAAX;AACCslN,EAAAA,SAAS,GAAG;AAAE;AAAf,MAAyCtlN,IAAI,IAAI,OAAjD;AACCslN,EAAAA,SAAS,GAAG;AAAE;AAAf,MAA4CtlN,IAAI,IAAI,UAApD;AACCslN,EAAAA,SAAS,GAAG;AAAE;AAAf,MAA8CtlN,IAAI,IAAI,YAAtD;AACCslN,EAAAA,SAAS,GAAG;AAAE;AAAf,MAA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Btb,IAAAA,iBAAiB,EAAE;AAAA,aAAMwZ,iBAAiB,CAAC8B,aAAD,CAAvB;AAAA;AAApC,GAApB;AAAA,CAAd,CAApC;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;AACA;;IACMnzC;AACF;AACJ;AACA;AACA;AACA;AACA;AACI,0BAAYozC,KAAZ,EAAmBj+H,OAAnB,EAA4B;AAAA;;AACxB,SAAKi+H,KAAL,GAAaA,KAAb;AACA;;AACA,SAAKhB,cAAL,GAAsB,gBAAtB;AACA,SAAK54D,KAAL,GAAazmI,SAAb;;AACA,QAAI,OAAOoiE,OAAP,IAAkB,QAAtB,EAAgC;AAC5B,OAAC,OAAOy9D,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACIggD,cAAc,CAACz9G,OAAD,EAAU,CAAV,EAAa,0CAAb,CADlB,CAD4B,CAG5B;AACA;;AACA,WAAK0iH,iBAAL,GAAyB1iH,OAAzB;AACH,KAND,MAOK,IAAIA,OAAO,KAAKpiE,SAAhB,EAA2B;AAC5B,WAAKymI,KAAL,GAAamoB,kBAAkB,CAAC;AAC5Br1J,QAAAA,KAAK,EAAE,IADqB;AAE5B+2K,QAAAA,UAAU,EAAEluG,OAAO,CAACkuG,UAAR,IAAsB,MAFN;AAG5BniL,QAAAA,OAAO,EAAEi0E,OAAO,CAACj0E;AAHW,OAAD,CAA/B;AAKH;AACJ;AACD;AACJ;AACA;;;;;SACI,eAAY;AACR,aAAO,IAAP;AACH;;;WACD,oBAAW;AACP,sCAAyB,KAAKkyM,KAA9B;AACH;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AAwB;AACpB,MAAM3kB,KAAK,GAAG2F,QAAQ,EAAtB;AACA,SAAO3F,KAAK,IAAIA,KAAK,CAACrB,SAAD,CAArB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMsnB,uBAAuB,gBAAG,IAAIjkD,cAAJ,CAAmB,yBAAnB,CAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMkkD,QAAQ,gBAAG,IAAIlkD,cAAJ,CAAmB,UAAnB,EACjB;AACA;AACA,CAAC;AAAE;AAHc,CAAjB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMmkD,kBAAkB,gBAAG,IAAInkD,cAAJ,CAAmB,oBAAnB,CAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMokD;;;;;;;WACF,aAAI93M,KAAJ,EAA+C;AAAA,UAApCmoL,aAAoC,uEAApBwjB,kBAAoB;;AAC3C,UAAIxjB,aAAa,KAAKwjB,kBAAtB,EAA0C;AACtC,YAAMh2N,KAAK,GAAG,IAAIkjB,KAAJ,8CAAgDoF,SAAS,CAAC+B,KAAD,CAAzD,OAAd;AACArqB,QAAAA,KAAK,CAAC6E,IAAN,GAAa,mBAAb;AACA,cAAM7E,KAAN;AACH;;AACD,aAAOwyM,aAAP;AACH;;;;;AAGL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4vB,mBAAT,GAAyC;AAAA,qCAAThmG,OAAS;AAATA,IAAAA,OAAS;AAAA;;AACrC,SAAO;AAAEqzE,IAAAA,UAAU,EAAE4yB,2BAA2B,CAAC,IAAD,EAAOjmG,OAAP;AAAzC,GAAP;AACH;;AACD,SAASimG,2BAAT,CAAqCC,qBAArC,EAAwE;AACpE,MAAMC,YAAY,GAAG,EAArB;AACA,MAAMC,KAAK,GAAG,IAAIpxN,GAAJ,EAAd,CAFoE,CAE3C;;AACzB,MAAIqxN,0BAAJ;;AAHoE,qCAATrmG,OAAS;AAATA,IAAAA,OAAS;AAAA;;AAIpEq2F,EAAAA,WAAW,CAACr2F,OAAD,EAAU,UAAAzvH,MAAM,EAAI;AAC3B,QAAI,CAAC,OAAOgkJ,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmD2xE,qBAAvD,EAA8E;AAC1E,UAAMI,MAAM,GAAGzqB,eAAe,CAACtrM,MAAD,CAA9B;;AACA,UAAI+1N,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAAC1sB,UAA3D,EAAuE;AACnE,cAAM,IAAIpH,YAAJ,CAAiB;AAAI;AAArB,kHAA8KK,iBAAiB,CAACtiM,MAAD,CAA/L,QAAN;AACH;AACJ,KAN0B,CAO3B;;;AACA,QAAMg2N,cAAc,GAAGh2N,MAAvB;;AACA,QAAIi2N,gBAAgB,CAACD,cAAD,EAAiBJ,YAAjB,EAA+B,EAA/B,EAAmCC,KAAnC,CAApB,EAA+D;AAC3DC,MAAAA,0BAA0B,KAAKA,0BAA0B,GAAG,EAAlC,CAA1B;AACAA,MAAAA,0BAA0B,CAAChmO,IAA3B,CAAgCkmO,cAAhC;AACH;AACJ,GAbU,CAAX,CAJoE,CAkBpE;;AACA,MAAIF,0BAA0B,KAAK3xM,SAAnC,EAA8C;AAC1C+xM,IAAAA,iCAAiC,CAACJ,0BAAD,EAA6BF,YAA7B,CAAjC;AACH;;AACD,SAAOA,YAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASM,iCAAT,CAA2CC,kBAA3C,EAA+DP,YAA/D,EAA6E;AAAA,6BAChE/nO,CADgE;AAErE,gCAAgCsoO,kBAAkB,CAACtoO,CAAD,CAAlD;AAAA,QAAQ47L,QAAR,yBAAQA,QAAR;AAAA,QAAkBiX,SAAlB,yBAAkBA,SAAlB;AACAolB,IAAAA,WAAW,CAACplB,SAAD,EAAY,UAAAkC,QAAQ,EAAI;AAC/B5+C,MAAAA,SAAS,IAAIoyE,gBAAgB,CAACxzB,QAAD,EAAWlC,SAAS,IAAI8H,WAAxB,EAAqC/e,QAArC,CAA7B;AACAmsC,MAAAA,YAAY,CAAC9lO,IAAb,CAAkB8yM,QAAlB;AACH,KAHU,CAAX;AAHqE;;AACzE,OAAK,IAAI/0M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsoO,kBAAkB,CAACvpO,MAAvC,EAA+CiB,CAAC,EAAhD,EAAoD;AAAA,UAA3CA,CAA2C;AAMnD;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASooO,gBAAT,CAA0B79M,SAA1B,EAAqCw9M,YAArC,EAAmD1kK,OAAnD,EAA4D2kK,KAA5D,EAAmE;AAC/Dz9M,EAAAA,SAAS,GAAG0pL,iBAAiB,CAAC1pL,SAAD,CAA7B;AACA,MAAI,CAACA,SAAL,EACI,OAAO,KAAP,CAH2D,CAI/D;AACA;;AACA,MAAIi+M,OAAO,GAAG,IAAd;AACA,MAAIC,MAAM,GAAGpxB,cAAc,CAAC9sL,SAAD,CAA3B;AACA,MAAM29M,MAAM,GAAG,CAACO,MAAD,IAAWhrB,eAAe,CAAClzL,SAAD,CAAzC;;AACA,MAAI,CAACk+M,MAAD,IAAW,CAACP,MAAhB,EAAwB;AACpB;AACA;AACA;AACA;AACA;AACA,QAAMtsC,QAAQ,GAAGrxK,SAAS,CAACqxK,QAA3B;AACA6sC,IAAAA,MAAM,GAAGpxB,cAAc,CAACzb,QAAD,CAAvB;;AACA,QAAI6sC,MAAJ,EAAY;AACRD,MAAAA,OAAO,GAAG5sC,QAAV;AACH,KAFD,MAGK;AACD;AACA,aAAO,KAAP;AACH;AACJ,GAfD,MAgBK,IAAIssC,MAAM,IAAI,CAACA,MAAM,CAAC1sB,UAAtB,EAAkC;AACnC,WAAO,KAAP;AACH,GAFI,MAGA;AACDgtB,IAAAA,OAAO,GAAGj+M,SAAV;AACH,GA9B8D,CA+B/D;;;AACA,MAAI4rI,SAAS,IAAI9yF,OAAO,CAACt5C,OAAR,CAAgBy+M,OAAhB,MAA6B,CAAC,CAA/C,EAAkD;AAC9C,QAAME,OAAO,GAAG56M,SAAS,CAAC06M,OAAD,CAAzB;AACA,QAAMzgO,IAAI,GAAGs7D,OAAO,CAACllE,GAAR,CAAY2vB,SAAZ,CAAb;AACA4mL,IAAAA,0BAA0B,CAACg0B,OAAD,EAAU3gO,IAAV,CAA1B;AACH,GApC8D,CAqC/D;;;AACA,MAAM4gO,WAAW,GAAGX,KAAK,CAACvyN,GAAN,CAAU+yN,OAAV,CAApB;;AACA,MAAIN,MAAJ,EAAY;AACR,QAAIS,WAAJ,EAAiB;AACb;AACA,aAAO,KAAP;AACH;;AACDX,IAAAA,KAAK,CAAClxN,GAAN,CAAU0xN,OAAV;;AACA,QAAIN,MAAM,CAAC1yI,YAAX,EAAyB;AACrB,UAAMynI,IAAI,GAAG,OAAOiL,MAAM,CAAC1yI,YAAd,KAA+B,UAA/B,GAA4C0yI,MAAM,CAAC1yI,YAAP,EAA5C,GAAoE0yI,MAAM,CAAC1yI,YAAxF;;AADqB,+PAEHynI,IAFG;AAAA;;AAAA;AAErB,+DAAwB;AAAA,cAAbC,GAAa;AACpBkL,UAAAA,gBAAgB,CAAClL,GAAD,EAAM6K,YAAN,EAAoB1kK,OAApB,EAA6B2kK,KAA7B,CAAhB;AACH;AAJoB;AAAA;AAAA;AAAA;AAAA;AAKxB;AACJ,GAZD,MAaK,IAAIS,MAAJ,EAAY;AACb;AACA,QAAIA,MAAM,CAAC7yF,OAAP,IAAkB,IAAlB,IAA0B,CAAC+yF,WAA/B,EAA4C;AACxC;AACA;AACAxyE,MAAAA,SAAS,IAAI9yF,OAAO,CAACphE,IAAR,CAAaumO,OAAb,CAAb,CAHwC,CAIxC;;AACAR,MAAAA,KAAK,CAAClxN,GAAN,CAAU0xN,OAAV;AACA,UAAII,wBAAJ;;AACA,UAAI;AACA3Q,QAAAA,WAAW,CAACwQ,MAAM,CAAC7yF,OAAR,EAAiB,UAAAizF,QAAQ,EAAI;AACpC,cAAIT,gBAAgB,CAACS,QAAD,EAAWd,YAAX,EAAyB1kK,OAAzB,EAAkC2kK,KAAlC,CAApB,EAA8D;AAC1DY,YAAAA,wBAAwB,KAAKA,wBAAwB,GAAG,EAAhC,CAAxB,CAD0D,CAE1D;AACA;;AACAA,YAAAA,wBAAwB,CAAC3mO,IAAzB,CAA8B4mO,QAA9B;AACH;AACJ,SAPU,CAAX;AAQH,OATD,SAUQ;AACJ;AACA1yE,QAAAA,SAAS,IAAI9yF,OAAO,CAACvhE,GAAR,EAAb;AACH,OApBuC,CAqBxC;AACA;AACA;;;AACA,UAAI8mO,wBAAwB,KAAKtyM,SAAjC,EAA4C;AACxC+xM,QAAAA,iCAAiC,CAACO,wBAAD,EAA2Bb,YAA3B,CAAjC;AACH;AACJ;;AACD,QAAI,CAACY,WAAL,EAAkB;AACd;AACA;AACA,UAAMlkN,OAAO,GAAG6+L,aAAa,CAACklB,OAAD,CAAb,IAA2B;AAAA,eAAM,IAAIA,OAAJ,EAAN;AAAA,OAA3C,CAHc,CAId;AACA;AACA;;;AACAT,MAAAA,YAAY,CAAC9lO,IAAb,EACA;AACA;AAAE6wM,QAAAA,OAAO,EAAE01B,OAAX;AAAoBn1B,QAAAA,UAAU,EAAE5uL,OAAhC;AAAyCw4M,QAAAA,IAAI,EAAEtiB;AAA/C,OAFA,EAGA;AACA;AAAE7H,QAAAA,OAAO,EAAE40B,kBAAX;AAA+B10B,QAAAA,QAAQ,EAAEw1B,OAAzC;AAAkDrtE,QAAAA,KAAK,EAAE;AAAzD,OAJA,EAKA;AACA;AAAE23C,QAAAA,OAAO,EAAE00B,uBAAX;AAAoCx0B,QAAAA,QAAQ,EAAE;AAAA,iBAAMxvB,QAAQ,CAACglD,OAAD,CAAd;AAAA,SAA9C;AAAuErtE,QAAAA,KAAK,EAAE;AAA9E,OANA,CAMqF;AANrF;AAQH,KA7CY,CA8Cb;;;AACA,QAAM2tE,YAAY,GAAGL,MAAM,CAAC51B,SAA5B;;AACA,QAAIi2B,YAAY,IAAI,IAAhB,IAAwB,CAACH,WAA7B,EAA0C;AACtC,UAAMI,YAAY,GAAGx+M,SAArB;AACA0tM,MAAAA,WAAW,CAAC6Q,YAAD,EAAe,UAAA/zB,QAAQ,EAAI;AAClC5+C,QAAAA,SAAS,IAAIoyE,gBAAgB,CAACxzB,QAAD,EAAW+zB,YAAX,EAAyBC,YAAzB,CAA7B;AACAhB,QAAAA,YAAY,CAAC9lO,IAAb,CAAkB8yM,QAAlB;AACH,OAHU,CAAX;AAIH;AACJ,GAvDI,MAwDA;AACD;AACA,WAAO,KAAP;AACH;;AACD,SAAQyzB,OAAO,KAAKj+M,SAAZ,IACJA,SAAS,CAACsoL,SAAV,KAAwBv8K,SAD5B;AAEH;;AACD,SAASiyM,gBAAT,CAA0BxzB,QAA1B,EAAoClC,SAApC,EAA+Cm2B,aAA/C,EAA8D;AAC1D,MAAIC,cAAc,CAACl0B,QAAD,CAAd,IAA4Bm0B,eAAe,CAACn0B,QAAD,CAA3C,IAAyDo0B,iBAAiB,CAACp0B,QAAD,CAA1E,IACAq0B,kBAAkB,CAACr0B,QAAD,CADtB,EACkC;AAC9B;AACH,GAJyD,CAK1D;;;AACA,MAAMs0B,QAAQ,GAAGp1B,iBAAiB,CAACc,QAAQ,KAAKA,QAAQ,CAAChC,QAAT,IAAqBgC,QAAQ,CAACjC,OAAnC,CAAT,CAAlC;;AACA,MAAI,CAACu2B,QAAL,EAAe;AACXx0B,IAAAA,yBAAyB,CAACm0B,aAAD,EAAgBn2B,SAAhB,EAA2BkC,QAA3B,CAAzB;AACH;AACJ;;AACD,IAAMu0B,WAAW,gBAAG91B,sBAAsB,CAAC;AAAEV,EAAAA,OAAO,EAAEj0K,MAAX;AAAmBm0K,EAAAA,QAAQ,EAAEQ;AAA7B,CAAD,CAA1C;;AACA,SAAS01B,eAAT,CAAyB1oO,KAAzB,EAAgC;AAC5B,SAAOA,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,IAAgB,QAAlC,IAA8C8oO,WAAW,IAAI9oO,KAApE;AACH;;AACD,SAAS4oO,kBAAT,CAA4B5oO,KAA5B,EAAmC;AAC/B,SAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAACyyM,WAAjB,CAAR;AACH;;AACD,SAASk2B,iBAAT,CAA2B3oO,KAA3B,EAAkC;AAC9B,SAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAAC6yM,UAAjB,CAAR;AACH;;AACD,SAAS41B,cAAT,CAAwBzoO,KAAxB,EAA+B;AAC3B,SAAO,OAAOA,KAAP,KAAiB,UAAxB;AACH;;AACD,SAAS+oO,eAAT,CAAyB/oO,KAAzB,EAAgC;AAC5B,SAAO,CAAC,CAACA,KAAK,CAACuyM,QAAf;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMy2B,cAAc,gBAAG,IAAIjmD,cAAJ,CAAmB,qBAAnB,CAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA,IAAMkmD,OAAO,GAAG,EAAhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,QAAQ,GAAG,EAAjB;AACA;AACA;AACA;;AACA,IAAIC,eAAe,GAAGrzM,SAAtB;;AACA,SAASszM,eAAT,GAA2B;AACvB,MAAID,eAAe,KAAKrzM,SAAxB,EAAmC;AAC/BqzM,IAAAA,eAAe,GAAG,IAAIhC,YAAJ,EAAlB;AACH;;AACD,SAAOgC,eAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;IACME;;;;IAEAC;;;;;AACF,sBAAYj3B,SAAZ,EAAuBnuL,MAAvB,EAA+BvS,MAA/B,EAAuC43N,MAAvC,EAA+C;AAAA;;AAAA;;AAC3C;AACA,WAAKrlN,MAAL,GAAcA,MAAd;AACA,WAAKvS,MAAL,GAAcA,MAAd;AACA,WAAK43N,MAAL,GAAcA,MAAd;AACA;AACR;AACA;AACA;AACA;;AACQ,WAAKC,OAAL,GAAe,IAAIz0N,GAAJ,EAAf;AACA;AACR;AACA;;AACQ,WAAK00N,iBAAL,GAAyB,IAAIrzN,GAAJ,EAAzB;AACA,WAAKszN,eAAL,GAAuB,EAAvB;AACA,WAAKr2E,UAAL,GAAkB,KAAlB,CAhB2C,CAiB3C;;AACAs2E,IAAAA,qBAAqB,CAACt3B,SAAD,EAAY,UAAAkC,QAAQ;AAAA,aAAI,OAAKq1B,eAAL,CAAqBr1B,QAArB,CAAJ;AAAA,KAApB,CAArB,CAlB2C,CAmB3C;;AACA,WAAKi1B,OAAL,CAAa30N,GAAb,CAAiBoyN,QAAjB,EAA2B4C,UAAU,CAAC/zM,SAAD,8OAArC,EApB2C,CAqB3C;;;AACA,QAAIyzM,MAAM,CAACt0N,GAAP,CAAW,aAAX,CAAJ,EAA+B;AAC3B,aAAKu0N,OAAL,CAAa30N,GAAb,CAAiBw0N,mBAAjB,EAAsCQ,UAAU,CAAC/zM,SAAD,8OAAhD;AACH,KAxB0C,CAyB3C;AACA;;;AACA,QAAMqkK,MAAM,GAAG,OAAKqvC,OAAL,CAAat0N,GAAb,CAAiB8zN,cAAjB,CAAf;;AACA,QAAI7uC,MAAM,IAAI,IAAV,IAAkB,OAAOA,MAAM,CAACn6L,KAAd,KAAwB,QAA9C,EAAwD;AACpD,aAAKupO,MAAL,CAAYjzN,GAAZ,CAAgB6jL,MAAM,CAACn6L,KAAvB;AACH;;AACD,WAAK8pO,gBAAL,GACI,IAAI1zN,GAAJ,CAAQ,OAAKlB,GAAL,CAASgyN,kBAAkB,CAACvsE,KAA5B,EAAmCw/C,WAAnC,EAAgDjD,WAAW,CAACma,IAA5D,CAAR,CADJ;AA/B2C;AAiC9C;AACD;AACJ;AACA;;;;;SACI,eAAgB;AACZ,aAAO,KAAKh+D,UAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;WACI,mBAAU;AACN,WAAK02E,kBAAL,GADM,CAEN;;AACA,WAAK12E,UAAL,GAAkB,IAAlB;;AACA,UAAI;AACA;AADA,iQAEsB,KAAKo2E,iBAF3B;AAAA;;AAAA;AAEA,iEAA8C;AAAA,gBAAnCO,OAAmC;AAC1CA,YAAAA,OAAO,CAAC3rB,WAAR;AACH;AAJD;AAAA;AAAA;AAAA;AAAA;;AAAA,iQAKmB,KAAKqrB,eALxB;AAAA;;AAAA;AAKA,iEAAyC;AAAA,gBAA9Bhd,IAA8B;AACrCA,YAAAA,IAAI;AACP;AAPD;AAAA;AAAA;AAAA;AAAA;AAQH,OARD,SASQ;AACJ;AACA,aAAK8c,OAAL,CAAa36N,KAAb;;AACA,aAAK46N,iBAAL,CAAuB56N,KAAvB;;AACA,aAAKi7N,gBAAL,CAAsBj7N,KAAtB;AACA,aAAK66N,eAAL,CAAqBnrO,MAArB,GAA8B,CAA9B;AACH;AACJ;;;WACD,mBAAU6oB,QAAV,EAAoB;AAChB,WAAKsiN,eAAL,CAAqBjoO,IAArB,CAA0B2lB,QAA1B;AACH;;;WACD,sBAAay6G,EAAb,EAAiB;AACb,WAAKkoG,kBAAL;AACA,UAAME,gBAAgB,GAAGzO,kBAAkB,CAAC,IAAD,CAA3C;AACA,UAAMjK,4BAA4B,GAAGla,uBAAuB,CAACvhL,SAAD,CAA5D;;AACA,UAAI;AACA,eAAO+rG,EAAE,EAAT;AACH,OAFD,SAGQ;AACJ25F,QAAAA,kBAAkB,CAACyO,gBAAD,CAAlB;AACA5yB,QAAAA,uBAAuB,CAACka,4BAAD,CAAvB;AACH;AACJ;;;WACD,aAAIliM,KAAJ,EAA4E;AAAA,UAAjEmoL,aAAiE,uEAAjDwjB,kBAAiD;AAAA,UAA7BlpH,KAA6B,uEAArBolG,WAAW,CAACc,OAAS;AACxE,WAAK+xB,kBAAL,GADwE,CAExE;;AACA,UAAME,gBAAgB,GAAGzO,kBAAkB,CAAC,IAAD,CAA3C;AACA,UAAMjK,4BAA4B,GAAGla,uBAAuB,CAACvhL,SAAD,CAA5D;;AACA,UAAI;AACA;AACA,YAAI,EAAEg8E,KAAK,GAAGolG,WAAW,CAAC8R,QAAtB,CAAJ,EAAqC;AACjC;AACA,cAAI7uB,MAAM,GAAG,KAAKqvC,OAAL,CAAat0N,GAAb,CAAiBma,KAAjB,CAAb;;AACA,cAAI8qK,MAAM,KAAKrkK,SAAf,EAA0B;AACtB;AACA;AACA,gBAAMutI,GAAG,GAAG6mE,qBAAqB,CAAC76M,KAAD,CAArB,IAAgCmnL,gBAAgB,CAACnnL,KAAD,CAA5D;;AACA,gBAAIg0I,GAAG,IAAI,KAAK8mE,oBAAL,CAA0B9mE,GAA1B,CAAX,EAA2C;AACvC;AACA;AACA82B,cAAAA,MAAM,GAAG0vC,UAAU,CAACO,iCAAiC,CAAC/6M,KAAD,CAAlC,EAA2C45M,OAA3C,CAAnB;AACH,aAJD,MAKK;AACD9uC,cAAAA,MAAM,GAAG,IAAT;AACH;;AACD,iBAAKqvC,OAAL,CAAa30N,GAAb,CAAiBwa,KAAjB,EAAwB8qK,MAAxB;AACH,WAhBgC,CAiBjC;;;AACA,cAAIA,MAAM,IAAI;AAAK;AAAnB,YAAgD;AAC5C,qBAAO,KAAKkwC,OAAL,CAAah7M,KAAb,EAAoB8qK,MAApB,CAAP;AACH;AACJ,SAvBD,CAwBA;AACA;;;AACA,YAAMmwC,YAAY,GAAG,EAAEx4H,KAAK,GAAGolG,WAAW,CAACma,IAAtB,IAA8B,KAAKntM,MAAnC,GAA4CklN,eAAe,EAAhF,CA1BA,CA2BA;AACA;;AACA5xB,QAAAA,aAAa,GAAI1lG,KAAK,GAAGolG,WAAW,CAAC/zB,QAArB,IAAkCq0B,aAAa,KAAKwjB,kBAApD,GACZ,IADY,GAEZxjB,aAFJ;AAGA,eAAO8yB,YAAY,CAACp1N,GAAb,CAAiBma,KAAjB,EAAwBmoL,aAAxB,CAAP;AACH,OAjCD,CAkCA,OAAOttM,CAAP,EAAU;AACN,YAAIA,CAAC,CAACL,IAAF,KAAW,mBAAf,EAAoC;AAChC,cAAMtC,IAAI,GAAG2C,CAAC,CAACgxN,kBAAD,CAAD,GAAwBhxN,CAAC,CAACgxN,kBAAD,CAAD,IAAyB,EAA9D;AACA3zN,UAAAA,IAAI,CAACogB,OAAL,CAAa2F,SAAS,CAAC+B,KAAD,CAAtB;;AACA,cAAI46M,gBAAJ,EAAsB;AAClB;AACA,kBAAM//N,CAAN;AACH,WAHD,MAIK;AACD;AACA,mBAAOgyN,kBAAkB,CAAChyN,CAAD,EAAImlB,KAAJ,EAAW,iBAAX,EAA8B,KAAK1d,MAAnC,CAAzB;AACH;AACJ,SAXD,MAYK;AACD,gBAAMzH,CAAN;AACH;AACJ,OAlDD,SAmDQ;AACJ;AACAmtM,QAAAA,uBAAuB,CAACka,4BAAD,CAAvB;AACAiK,QAAAA,kBAAkB,CAACyO,gBAAD,CAAlB;AACH;AACJ;AACD;;;;WACA,uCAA8B;AAC1B,UAAMA,gBAAgB,GAAGzO,kBAAkB,CAAC,IAAD,CAA3C;AACA,UAAMjK,4BAA4B,GAAGla,uBAAuB,CAACvhL,SAAD,CAA5D;;AACA,UAAI;AACA,YAAMy0M,YAAY,GAAG,KAAKr1N,GAAL,CAAS8xN,uBAAuB,CAACrsE,KAAjC,EAAwCw/C,WAAxC,EAAqDjD,WAAW,CAACma,IAAjE,CAArB;;AACA,YAAI17D,SAAS,IAAI,CAACn4J,KAAK,CAAC0D,OAAN,CAAcqpO,YAAd,CAAlB,EAA+C;AAC3C,gBAAM,IAAI32B,YAAJ,CAAiB;AAAI;AAArB,YAAoE,wGACvC,OAAO22B,YADgC,WAEtE,2EAFsE,GAGtE,yBAHE,CAAN;AAIH;;AAPD,iQAQ0BA,YAR1B;AAAA;;AAAA;AAQA,iEAAwC;AAAA,gBAA7Bn2H,WAA6B;AACpCA,YAAAA,WAAW;AACd;AAVD;AAAA;AAAA;AAAA;AAAA;AAWH,OAXD,SAYQ;AACJonH,QAAAA,kBAAkB,CAACyO,gBAAD,CAAlB;AACA5yB,QAAAA,uBAAuB,CAACka,4BAAD,CAAvB;AACH;AACJ;;;WACD,oBAAW;AACP,UAAMl/D,MAAM,GAAG,EAAf;AACA,UAAMm3E,OAAO,GAAG,KAAKA,OAArB;;AAFO,+PAGaA,OAAO,CAACn8N,IAAR,EAHb;AAAA;;AAAA;AAGP,+DAAoC;AAAA,cAAzBgiB,KAAyB;AAChCgjI,UAAAA,MAAM,CAAC5wJ,IAAP,CAAY6rB,SAAS,CAAC+B,KAAD,CAArB;AACH;AALM;AAAA;AAAA;AAAA;AAAA;;AAMP,kCAAqBgjI,MAAM,CAAC9kI,IAAP,CAAY,IAAZ,CAArB;AACH;;;WACD,8BAAqB;AACjB,UAAI,KAAK8lI,UAAT,EAAqB;AACjB,cAAM,IAAIugD,YAAJ,CAAiB;AAAI;AAArB,UAAwEj+C,SAAS,IAAI,sCAArF,CAAN;AACH;AACJ;AACD;AACJ;AACA;;;;WACI,yBAAgB4+C,QAAhB,EAA0B;AACtB;AACA;AACAA,MAAAA,QAAQ,GAAGd,iBAAiB,CAACc,QAAD,CAA5B;AACA,UAAIllL,KAAK,GAAGo5M,cAAc,CAACl0B,QAAD,CAAd,GAA2BA,QAA3B,GAAsCd,iBAAiB,CAACc,QAAQ,IAAIA,QAAQ,CAACjC,OAAtB,CAAnE,CAJsB,CAKtB;;AACA,UAAMnY,MAAM,GAAGqwC,gBAAgB,CAACj2B,QAAD,CAA/B;;AACA,UAAI,CAACk0B,cAAc,CAACl0B,QAAD,CAAf,IAA6BA,QAAQ,CAAC55C,KAAT,KAAmB,IAApD,EAA0D;AACtD;AACA;AACA,YAAI8vE,WAAW,GAAG,KAAKjB,OAAL,CAAat0N,GAAb,CAAiBma,KAAjB,CAAlB;;AACA,YAAIo7M,WAAJ,EAAiB;AACb;AACA,cAAI90E,SAAS,IAAI80E,WAAW,CAAC9vE,KAAZ,KAAsB7kI,SAAvC,EAAkD;AAC9Cs+K,YAAAA,4BAA4B;AAC/B;AACJ,SALD,MAMK;AACDq2B,UAAAA,WAAW,GAAGZ,UAAU,CAAC/zM,SAAD,EAAYmzM,OAAZ,EAAqB,IAArB,CAAxB;;AACAwB,UAAAA,WAAW,CAACxmN,OAAZ,GAAsB;AAAA,mBAAM43M,UAAU,CAAC4O,WAAW,CAAC9vE,KAAb,CAAhB;AAAA,WAAtB;;AACA,eAAK6uE,OAAL,CAAa30N,GAAb,CAAiBwa,KAAjB,EAAwBo7M,WAAxB;AACH;;AACDp7M,QAAAA,KAAK,GAAGklL,QAAR;AACAk2B,QAAAA,WAAW,CAAC9vE,KAAZ,CAAkBl5J,IAAlB,CAAuB8yM,QAAvB;AACH,OAjBD,MAkBK;AACD,YAAM1K,QAAQ,GAAG,KAAK2/B,OAAL,CAAat0N,GAAb,CAAiBma,KAAjB,CAAjB;;AACA,YAAIsmI,SAAS,IAAIk0C,QAAb,IAAyBA,QAAQ,CAAClvC,KAAT,KAAmB7kI,SAAhD,EAA2D;AACvDs+K,UAAAA,4BAA4B;AAC/B;AACJ;;AACD,WAAKo1B,OAAL,CAAa30N,GAAb,CAAiBwa,KAAjB,EAAwB8qK,MAAxB;AACH;;;WACD,iBAAQ9qK,KAAR,EAAe8qK,MAAf,EAAuB;AACnB,UAAIxkC,SAAS,IAAIwkC,MAAM,CAACn6L,KAAP,KAAiBkpO,QAAlC,EAA4C;AACxCh1B,QAAAA,0BAA0B,CAAC5mL,SAAS,CAAC+B,KAAD,CAAV,CAA1B;AACH,OAFD,MAGK,IAAI8qK,MAAM,CAACn6L,KAAP,KAAiBipO,OAArB,EAA8B;AAC/B9uC,QAAAA,MAAM,CAACn6L,KAAP,GAAekpO,QAAf;AACA/uC,QAAAA,MAAM,CAACn6L,KAAP,GAAem6L,MAAM,CAACl2K,OAAP,EAAf;AACH;;AACD,UAAI,OAAOk2K,MAAM,CAACn6L,KAAd,KAAwB,QAAxB,IAAoCm6L,MAAM,CAACn6L,KAA3C,IAAoD0qO,YAAY,CAACvwC,MAAM,CAACn6L,KAAR,CAApE,EAAoF;AAChF,aAAKypO,iBAAL,CAAuBnzN,GAAvB,CAA2B6jL,MAAM,CAACn6L,KAAlC;AACH;;AACD,aAAOm6L,MAAM,CAACn6L,KAAd;AACH;;;WACD,8BAAqBqjK,GAArB,EAA0B;AACtB,UAAI,CAACA,GAAG,CAAC+iC,UAAT,EAAqB;AACjB,eAAO,KAAP;AACH;;AACD,UAAMA,UAAU,GAAGqN,iBAAiB,CAACpwC,GAAG,CAAC+iC,UAAL,CAApC;;AACA,UAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;AAChC,eAAOA,UAAU,KAAK,KAAf,IAAyB,KAAKmjC,MAAL,CAAYt0N,GAAZ,CAAgBmxL,UAAhB,CAAhC;AACH,OAFD,MAGK;AACD,eAAO,KAAK0jC,gBAAL,CAAsB70N,GAAtB,CAA0BmxL,UAA1B,CAAP;AACH;AACJ;;;;EA/OoBijC;;AAiPzB,SAASe,iCAAT,CAA2C/6M,KAA3C,EAAkD;AAC9C;AACA,MAAMooL,aAAa,GAAGjB,gBAAgB,CAACnnL,KAAD,CAAtC;AACA,MAAMpL,OAAO,GAAGwzL,aAAa,KAAK,IAAlB,GAAyBA,aAAa,CAACxzL,OAAvC,GAAiD6+L,aAAa,CAACzzL,KAAD,CAA9E;;AACA,MAAIpL,OAAO,KAAK,IAAhB,EAAsB;AAClB,WAAOA,OAAP;AACH,GAN6C,CAO9C;AACA;;;AACA,MAAIoL,KAAK,YAAY0zJ,cAArB,EAAqC;AACjC,UAAM,IAAI6wB,YAAJ,CAAiB;AAAI;AAArB,MAAqEj+C,SAAS,oBAAaroI,SAAS,CAAC+B,KAAD,CAAtB,yCAA9E,CAAN;AACH,GAX6C,CAY9C;;;AACA,MAAIA,KAAK,YAAYjC,QAArB,EAA+B;AAC3B,WAAOu9M,+BAA+B,CAACt7M,KAAD,CAAtC;AACH,GAf6C,CAgB9C;;;AACA,QAAM,IAAIukL,YAAJ,CAAiB;AAAI;AAArB,IAAqEj+C,SAAS,IAAI,aAAlF,CAAN;AACH;;AACD,SAASg1E,+BAAT,CAAyCt7M,KAAzC,EAAgD;AAC5C;AACA,MAAMu7M,WAAW,GAAGv7M,KAAK,CAAC9wB,MAA1B;;AACA,MAAIqsO,WAAW,GAAG,CAAlB,EAAqB;AACjB,QAAMh8N,IAAI,GAAGgpN,QAAQ,CAACgT,WAAD,EAAc,GAAd,CAArB;AACA,UAAM,IAAIh3B,YAAJ,CAAiB;AAAI;AAArB,MAAqEj+C,SAAS,+CAAwCroI,SAAS,CAAC+B,KAAD,CAAjD,gBAA8DzgB,IAAI,CAAC2e,IAAL,CAAU,IAAV,CAA9D,OAA9E,CAAN;AACH,GAN2C,CAO5C;AACA;AACA;AACA;AACA;;;AACA,MAAMs9M,sBAAsB,GAAGj0B,yBAAyB,CAACvnL,KAAD,CAAxD;;AACA,MAAIw7M,sBAAsB,KAAK,IAA/B,EAAqC;AACjC,WAAO;AAAA,aAAMA,sBAAsB,CAAC5mN,OAAvB,CAA+BoL,KAA/B,CAAN;AAAA,KAAP;AACH,GAFD,MAGK;AACD,WAAO;AAAA,aAAM,IAAIA,KAAJ,EAAN;AAAA,KAAP;AACH;AACJ;;AACD,SAASm7M,gBAAT,CAA0Bj2B,QAA1B,EAAoC;AAChC,MAAIm0B,eAAe,CAACn0B,QAAD,CAAnB,EAA+B;AAC3B,WAAOs1B,UAAU,CAAC/zM,SAAD,EAAYy+K,QAAQ,CAAC/B,QAArB,CAAjB;AACH,GAFD,MAGK;AACD,QAAMvuL,OAAO,GAAG6mN,iBAAiB,CAACv2B,QAAD,CAAjC;AACA,WAAOs1B,UAAU,CAAC5lN,OAAD,EAAUglN,OAAV,CAAjB;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS6B,iBAAT,CAA2Bv2B,QAA3B,EAAqCD,YAArC,EAAmDjC,SAAnD,EAA8D;AAC1D,MAAIpuL,OAAO,GAAG6R,SAAd;;AACA,MAAI6/H,SAAS,IAAIo1E,2BAA2B,CAACx2B,QAAD,CAA5C,EAAwD;AACpDF,IAAAA,yBAAyB,CAACv+K,SAAD,EAAYu8K,SAAZ,EAAuBkC,QAAvB,CAAzB;AACH;;AACD,MAAIk0B,cAAc,CAACl0B,QAAD,CAAlB,EAA8B;AAC1B,QAAMy2B,iBAAiB,GAAGv3B,iBAAiB,CAACc,QAAD,CAA3C;AACA,WAAOuO,aAAa,CAACkoB,iBAAD,CAAb,IAAoCZ,iCAAiC,CAACY,iBAAD,CAA5E;AACH,GAHD,MAIK;AACD,QAAItC,eAAe,CAACn0B,QAAD,CAAnB,EAA+B;AAC3BtwL,MAAAA,OAAO,GAAG;AAAA,eAAMwvL,iBAAiB,CAACc,QAAQ,CAAC/B,QAAV,CAAvB;AAAA,OAAV;AACH,KAFD,MAGK,IAAIm2B,iBAAiB,CAACp0B,QAAD,CAArB,EAAiC;AAClCtwL,MAAAA,OAAO,GAAG;AAAA,eAAMswL,QAAQ,CAAC1B,UAAT,OAAA0B,QAAQ,kOAAesnB,UAAU,CAACtnB,QAAQ,CAACkoB,IAAT,IAAiB,EAAlB,CAAzB,EAAd;AAAA,OAAV;AACH,KAFI,MAGA,IAAImM,kBAAkB,CAACr0B,QAAD,CAAtB,EAAkC;AACnCtwL,MAAAA,OAAO,GAAG;AAAA,eAAM++J,QAAQ,CAACywB,iBAAiB,CAACc,QAAQ,CAAC9B,WAAV,CAAlB,CAAd;AAAA,OAAV;AACH,KAFI,MAGA;AACD,UAAMo2B,QAAQ,GAAGp1B,iBAAiB,CAACc,QAAQ,KACtCA,QAAQ,CAAChC,QAAT,IAAqBgC,QAAQ,CAACjC,OADQ,CAAT,CAAlC;;AAEA,UAAI38C,SAAS,IAAI,CAACkzE,QAAlB,EAA4B;AACxBx0B,QAAAA,yBAAyB,CAACC,YAAD,EAAejC,SAAf,EAA0BkC,QAA1B,CAAzB;AACH;;AACD,UAAI02B,OAAO,CAAC12B,QAAD,CAAX,EAAuB;AACnBtwL,QAAAA,OAAO,GAAG;AAAA,yOAAW4kN,QAAX,kOAAwBhN,UAAU,CAACtnB,QAAQ,CAACkoB,IAAV,CAAlC;AAAA,SAAV;AACH,OAFD,MAGK;AACD,eAAO3Z,aAAa,CAAC+lB,QAAD,CAAb,IAA2BuB,iCAAiC,CAACvB,QAAD,CAAnE;AACH;AACJ;AACJ;;AACD,SAAO5kN,OAAP;AACH;;AACD,SAAS4lN,UAAT,CAAoB5lN,OAApB,EAA6BjkB,KAA7B,EAAmD;AAAA,MAAf26J,KAAe,uEAAP,KAAO;AAC/C,SAAO;AACH12I,IAAAA,OAAO,EAAEA,OADN;AAEHjkB,IAAAA,KAAK,EAAEA,KAFJ;AAGH26J,IAAAA,KAAK,EAAEA,KAAK,GAAG,EAAH,GAAQ7kI;AAHjB,GAAP;AAKH;;AACD,SAASm1M,OAAT,CAAiBjrO,KAAjB,EAAwB;AACpB,SAAO,CAAC,CAACA,KAAK,CAACy8N,IAAf;AACH;;AACD,SAASiO,YAAT,CAAsB1qO,KAAtB,EAA6B;AACzB,SAAOA,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,KAAiB,QAAnC,IACH,OAAOA,KAAK,CAACq+M,WAAb,KAA6B,UADjC;AAEH;;AACD,SAAS6rB,qBAAT,CAA+BlqO,KAA/B,EAAsC;AAClC,SAAQ,OAAOA,KAAP,KAAiB,UAAlB,IACF,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAY+iL,cADnD;AAEH;;AACD,SAASgoD,2BAAT,CAAqCx2B,QAArC,EAA+C;AAC3C,SAAO,CAAC,CAACA,QAAQ,CAACE,UAAlB;AACH;;AACD,SAASk1B,qBAAT,CAA+Bt3B,SAA/B,EAA0CxwE,EAA1C,EAA8C;AAAA,2PACnBwwE,SADmB;AAAA;;AAAA;AAC1C,2DAAkC;AAAA,UAAvBkC,QAAuB;;AAC9B,UAAI/2M,KAAK,CAAC0D,OAAN,CAAcqzM,QAAd,CAAJ,EAA6B;AACzBo1B,QAAAA,qBAAqB,CAACp1B,QAAD,EAAW1yE,EAAX,CAArB;AACH,OAFD,MAGK,IAAIkpG,2BAA2B,CAACx2B,QAAD,CAA/B,EAA2C;AAC5Co1B,QAAAA,qBAAqB,CAACp1B,QAAQ,CAACE,UAAV,EAAsB5yE,EAAtB,CAArB;AACH,OAFI,MAGA;AACDA,QAAAA,EAAE,CAAC0yE,QAAD,CAAF;AACH;AACJ;AAXyC;AAAA;AAAA;AAAA;AAAA;AAY7C;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM22B;;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,uBAAT,CAAiC/N,SAAjC,EAA4C;AACxC,MAAMr4N,KAAK,GAAGkjB,KAAK,0CAAmCoF,SAAS,CAAC+vM,SAAD,CAA5C,oDAAnB;AACAr4N,EAAAA,KAAK,CAACqmO,eAAD,CAAL,GAAyBhO,SAAzB;AACA,SAAOr4N,KAAP;AACH;;AACD,IAAMqmO,eAAe,GAAG,aAAxB;;AACA,SAASC,cAAT,CAAwBtmO,KAAxB,EAA+B;AAC3B,SAAOA,KAAK,CAACqmO,eAAD,CAAZ;AACH;;IACKE;;;;;;;WACF,iCAAwBlO,SAAxB,EAAmC;AAC/B,YAAM+N,uBAAuB,CAAC/N,SAAD,CAA7B;AACH;;;;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMmO;MAAAA;;;;AAENA,EAAAA,0BAA0B,CAACC,IAA3B,GAAoC,eAAe,IAAIF,6BAAJ,EAAnD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;SAfMC;;;AAgBN,SAASE,gBAAT,GAA4B;AACxB,SAAOC,gBAAgB,CAAC3kB,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,CAAvB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASilB,gBAAT,CAA0BhzB,KAA1B,EAAiCoI,KAAjC,EAAwC;AACpC,SAAO,IAAIlmB,UAAJ,CAAegqB,gBAAgB,CAAClM,KAAD,EAAQoI,KAAR,CAA/B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMlmB;MAAAA,oPACF,oBAAYH,aAAZ,EAA2B;AAAA;;AACvB,SAAKA,aAAL,GAAqBA,aAArB;AACH;;AAEL;AACA;AACA;AACA;AACAG,EAAAA,UAAU,CAAC+f,iBAAX,GAA+B8wB,gBAA/B;AACA;AACA;AACA;AACA;AACA;AACA;;SAfM7wC;;;AAgBN,SAAS+wC,gBAAT,CAA0B5rO,KAA1B,EAAiC;AAC7B,SAAOA,KAAK,YAAY66L,UAAjB,GAA8B76L,KAAK,CAAC06L,aAApC,GAAoD16L,KAA3D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM6rO,oBAAoB,gBAAG,IAAI9oD,cAAJ,CAAmB,sBAAnB,CAA7B;AACA;AACA;AACA;AACA;AACA;;IACM+oD;;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMhxC;MAAAA;;;;AAEN;AACA;AACA;AACA;AACAA,EAAAA,SAAS,CAAC8f,iBAAV,GAA8B;AAAA,WAA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nB;AACAtrJ,EAAAA,KAAK,CAACspO,oBAAD,CAAL,GAA8BE,aAA9B;AACA,SAAOxpO,KAAP;AACH;;AACD,SAASypO,gBAAT,CAA0BzpO,KAA1B,EAAiC;AAC7B,SAAOA,KAAK,CAACspO,oBAAD,CAAZ;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMI;AACF,0BAAc;AAAA;;AACV;AACR;AACA;AACQ,SAAKC,QAAL,GAAgB90I,OAAhB;AACH;;;;WACD,qBAAY70F,KAAZ,EAAmB;AACf,UAAMwpO,aAAa,GAAG,KAAKI,kBAAL,CAAwB5pO,KAAxB,CAAtB;;AACA,WAAK2pO,QAAL,CAAc3pO,KAAd,CAAoB,OAApB,EAA6BA,KAA7B;;AACA,UAAIwpO,aAAJ,EAAmB;AACf,aAAKG,QAAL,CAAc3pO,KAAd,CAAoB,gBAApB,EAAsCwpO,aAAtC;AACH;AACJ;AACD;;;;WACA,4BAAmBxpO,KAAnB,EAA0B;AACtB,UAAIkF,CAAC,GAAGlF,KAAK,IAAIypO,gBAAgB,CAACzpO,KAAD,CAAjC;;AACA,aAAOkF,CAAC,IAAIukO,gBAAgB,CAACvkO,CAAD,CAA5B,EAAiC;AAC7BA,QAAAA,CAAC,GAAGukO,gBAAgB,CAACvkO,CAAD,CAApB;AACH;;AACD,aAAOA,CAAC,IAAI,IAAZ;AACH;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM2kO,kBAAkB,GAAG,4BAA3B;AACA;AACA;AACA;;AACA,IAAMC,iBAAiB,GAAG,OAA1B;AACA,IAAMC,yBAAyB,GAAG,gBAAlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,iBAA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f;AACH;AACJ;;AACD,aAAK8iP,wBAAL,GAAgC,KAAhC;AACH;;AACD7e,MAAAA,YAAY,CAAC,KAAKpjB,MAAL,CAAY1U,KAAZ,CAAD,EAAqB,KAAK0U,MAA1B,CAAZ;AACH;;;WACD,mBAAUrsM,QAAV,EAAoB;AAChB6nO,MAAAA,uBAAuB,CAAC,KAAKx7B,MAAL,CAAY1U,KAAZ,CAAD,EAAqB,KAAK0U,MAA1B,EAAkC,IAAlC,EAAwCrsM,QAAxC,CAAvB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,wBAAe;AACXssO,MAAAA,aAAa,CAAC,KAAK8B,mBAAL,IAA4B,KAAK/hC,MAAlC,CAAb;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,kBAAS;AACL,WAAKA,MAAL,CAAYzU,KAAZ,KAAsB,CAAC;AAAG;AAA1B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,oBAAW;AACP,WAAKyU,MAAL,CAAYzU,KAAZ,KAAsB;AAAG;AAAzB;AACH;AACD;AACJ;AA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sBAAsB,CAAC7+P,MAA3C,GAAoD,CAA9G,SAAoH6+P,sBAApH;AACH;AACJ;;AACD,SAAOwE,sBAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,mEAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+Bp5C,KAA/B,EAAsC/P,KAAtC,EAA6CopD,qBAA7C,EAAoEnvP,KAApE,EAA2EovP,aAA3E,EAA0FC,cAA1F,EAA0G;AACtGtsG,EAAAA,SAAS,IAAIssD,qBAAqB,CAAC0E,QAAQ,EAAT,CAAlC;AACA,MAAIu7C,SAAS,GAAGD,cA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4D,iBAAiB,CAAC,cAAD,EAAiB,UAACrvE,SAAD,EAAY53I,IAAZ;AAAA,SAAsB;AAAE43I,IAAAA,SAAS,EAATA,SAAF;AAAa53I,IAAAA,IAAI,EAAJA;AAAb,GAAtB;AAAA,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,IAAM41K,QAAQ,gBAAGgwC,aAAa,CAAC,UAAD,EAAa,UAACp5B,QAAD;AAAA,SAAcA,QAAd;AAAA,CAAb,EAAqCtlK,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAACprB,IAAD,EAAOurN,IAAP;AAAA,SAAgB0xD,eAAe,CAACj9Q,IAAD,EAAOurN,IAAP,CAA/B;AAAA,CAZ8B,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASxvM,IAAT,GAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAMynQ,gBAAgB,GAAG,IAAzB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,eAAe,gBAAG,IAAIprG,cAAJ,CAAmB,yBAAnB,CAAxB;AACA;AACA;AACA;AACA;AACA;;IACMqrG;MAAAA;AACF,mCAAYC,QAAZ,EAAsB;AAAA;;AAAA;;AAClB,WAAKA,QAAL,GAAgBA,QAAhB;AACA,WAAKr4P,OAAL,GAAevP,IAAf;AACA,WAAKwP,MAAL,GAAcxP,IAAd;AACA,WAAK4tF,WAAL,GAAmB,KAAnB;AACA,WAAK4U,IAAL,GAAY,KAAZ;AACA,WAAKqlK,WAAL,GAAmB,IAAIv4P,OAAJ,CAAY,UAAC61J,GAAD,EAAM2iG,GAAN,EAAc;AACzC,eAAI,CAACv4P,OAAL,GAAe41J,GAAf;AACA,eAAI,CAAC31J,MAAL,GAAcs4P,GAAd;AACH,OAHkB,CAAnB;AAIH;AACD;;;;;aACA,2BAAkB;AAAA;;AACd,YAAI,KAAKl6K,WAAT,EAAsB;AAClB;AACH;;AACD,YAAMm6K,iBAAiB,GAAG,EAA1B;;AACA,YAAMjwI,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACnB,iBAAI,CAACt1B,IAAL,GAAY,IAAZ;;AACA,iBAAI,CAACjzF,OAAL;AACH,SAHD;;AAIA,YAAI,KAAKq4P,QAAT,EAAmB;AAAA,uCACN7uR,CADM;AAEX,gBAAMivR,UAAU,GAAG,OAAI,CAACJ,QAAL,CAAc7uR,CAAd,GAAnB;;AACA,gBAAIkvJ,SAAS,CAAC+/H,UAAD,CAAb,EAA2B;AACvBD,cAAAA,iBAAiB,CAAC/sR,IAAlB,CAAuBgtR,UAAvB;AACH,aAFD,MAGK,IAAI5vB,YAAY,CAAC4vB,UAAD,CAAhB,EAA8B;AAC/B,kBAAMC,mBAAmB,GAAG,IAAI34P,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACzDw4P,gBAAAA,UAAU,CAACrvI,SAAX,CAAqB;AAAEb,kBAAAA,QAAQ,EAAEvoH,OAAZ;AAAqBhxB,kBAAAA,KAAK,EAAEixB;AAA5B,iBAArB;AACH,eAF2B,CAA5B;AAGAu4P,cAAAA,iBAAiB,CAAC/sR,IAAlB,CAAuBitR,mBAAvB;AACH;AAXU;;AACf,eAAK,IAAIlvR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK6uR,QAAL,CAAc9vR,MAAlC,EAA0CiB,CAAC,EAA3C,EAA+C;AAAA,mBAAtCA,CAAsC;AAW9C;AACJ;;AACDu2B,QAAAA,OAAO,CAAC6nM,GAAR,CAAY4wD,iBAAZ,EACK94P,IADL,CACU,YAAM;AACZ6oH,UAAAA,QAAQ;AACX,SAHD,EAIKowI,KAJL,CAIW,UAAAzkR,CAAC,EAAI;AACZ,iBAAI,CAAC+rB,MAAL,CAAY/rB,CAAZ;AACH,SAND;;AAOA,YAAIskR,iBAAiB,CAACjwR,MAAlB,KAA6B,CAAjC,EAAoC;AAChCggJ,UAAAA,QAAQ;AACX;;AACD,aAAKlqC,WAAL,GAAmB,IAAnB;AACH;;;;;;AAEL+5K,EAAAA,qBAAqB,CAAC9xH,IAAtB,GAA6B,SAASsyH,6BAAT,CAAuCzqR,CAAvC,EAA0C;AAAE,WAAO,KAAKA,CAAC,IAAIiqR,qBAAV,EAAiCprG,QAAQ,CAACmrG,eAAD,EAAkB,CAAlB,CAAzC,CAAP;AAAwE,GAAjJ;;AACAC,EAAAA,qBAAqB,CAAC7xH,KAAtB,GAA8B,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAE++P,qBAAT;AAAgCnqQ,IAAAA,OAAO,EAAEmqQ,qBAAqB,CAAC9xH,IAA/D;AAAqE8pC,IAAAA,UAAU,EAAE;AAAjF,GAAD,CAA9D;SAlDMgoF;;;AAmDN;AAAA,CAAC,YAAY;AACT,GAAC,OAAOz4H,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAACoR,qBAAD,EAAwB,CAAC;AACpF1jR,IAAAA,IAAI,EAAE8qJ,UAD8E;AAEpF5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAF8E,GAAD,CAAxB,EAG3D,YAAY;AAChB,WAAO,CAAC;AAAE17L,MAAAA,IAAI,EAAEorB,SAAR;AAAmB6jM,MAAAA,UAAU,EAAE,CAAC;AACxBjvN,QAAAA,IAAI,EAAEu4K,MADkB;AAExBr0K,QAAAA,IAAI,EAAE,CAACu/Q,eAAD;AAFkB,OAAD,EAGxB;AACCzjR,QAAAA,IAAI,EAAEy4K;AADP,OAHwB;AAA/B,KAAD,CAAP;AAMH,GAVkE,EAUhE,IAVgE,CAAnE;AAWH,CAZD;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM0rG,MAAM,gBAAG,IAAI9rG,cAAJ,CAAmB,OAAnB,EAA4B;AACvCqjB,EAAAA,UAAU,EAAE,MAD2B;AAEvCniL,EAAAA,OAAO,EAAE6qQ;AAF8B,CAA5B,CAAf;;AAIA,SAASA,2BAAT,GAAuC;AACnC,mBAAUC,WAAW,EAArB,SAA0BA,WAAW,EAArC,SAA0CA,WAAW,EAArD;AACH;AACD;AACA;AACA;AACA;;;AACA,IAAMC,sBAAsB,GAAG;AAC3B18E,EAAAA,OAAO,EAAEu8E,MADkB;AAE3Bh8E,EAAAA,UAAU,EAAEi8E,2BAFe;AAG3BryD,EAAAA,IAAI,EAAE;AAHqB,CAA/B;;AAKA,SAASsyD,WAAT,GAAuB;AACnB,SAAO1wP,MAAM,CAAC0gE,YAAP,CAAoB,KAAKn/F,IAAI,CAACgE,KAAL,CAAWhE,IAAI,CAACwE,MAAL,KAAgB,EAA3B,CAAzB,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,IAAM6qR,oBAAoB,gBAAG,IAAIlsG,cAAJ,CAAmB,sBAAnB,CAA7B;AACA;AACA;AACA;AACA;;AACA,IAAM+lB,WAAW,gBAAG,IAAI/lB,cAAJ,CAAmB,aAAnB,EAAkC;AAClDqjB,EAAAA,UAAU,EAAE,UADsC;AAElDniL,EAAAA,OAAO,EAAE;AAAA,WAAM,SAAN;AAAA,GAFyC,CAExB;;AAFwB,CAAlC,CAApB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMirQ,sBAAsB,gBAAG,IAAInsG,cAAJ,CAAmB,sBAAnB,CAA/B;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMosG,gBAAgB,gBAAG,IAAIpsG,cAAJ,CAAmB,+BAAnB,CAAzB,EACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMqsG,qBAAqB,gBAAG,IAAIrsG,cAAJ,CAAmB,qBAAnB,CAA9B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMssG;MAAAA;;;;;;;aACF,aAAIr4L,OAAJ,EAAa;AACT;AACA6C,QAAAA,OAAO,CAACv1F,GAAR,CAAY0yF,OAAZ;AACH,QACD;;;;aACA,cAAKA,OAAL,EAAc;AACV;AACA6C,QAAAA,OAAO,CAACC,IAAR,CAAa9C,OAAb;AACH;;;;;;AAELq4L,EAAAA,OAAO,CAAC/yH,IAAR,GAAe,SAASgzH,eAAT,CAAyBnrR,CAAzB,EAA4B;AAAE,WAAO,KAAKA,CAAC,IAAIkrR,OAAV,GAAP;AAA8B,GAA3E;;AACAA,EAAAA,OAAO,CAAC9yH,KAAR,GAAgB,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAEggQ,OAAT;AAAkBprQ,IAAAA,OAAO,EAAEorQ,OAAO,CAAC/yH,IAAnC;AAAyC8pC,IAAAA,UAAU,EAAE;AAArD,GAAD,CAAhD;SAZMipF;;;AAaN;AAAA,CAAC,YAAY;AACT,GAAC,OAAO15H,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAACqS,OAAD,EAAU,CAAC;AACtE3kR,IAAAA,IAAI,EAAE8qJ,UADgE;AAEtE5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFgE,GAAD,CAAV,EAG3D,IAH2D,EAGrD,IAHqD,CAAnE;AAIH,CALD;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmpF,eAAT,GAA2B;AACvB,MAAI,OAAOjlB,iBAAP,KAA6B,WAA7B,IAA4CA,iBAA5C,IACA,OAAOC,IAAP,KAAgB,WADhB,IAC+BA,IAAI,CAACilB,MAAL,KAAgB,IADnD,EACyD;AACrD;AACA;AACA;AACA,WAAOjlB,IAAI,CAACilB,MAAZ;AACH,GAND,MAOK;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAQ,OAAOC,SAAP,KAAqB,WAArB,IAAoCA,SAAS,CAACj0P,MAA/C,IAA0DiwO,iBAAjE;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMhoF,SAAS,gBAAG,IAAIV,cAAJ,CAAmB,UAAnB,EAA+B;AAC7CqjB,EAAAA,UAAU,EAAE,MADiC;AAE7CniL,EAAAA,OAAO,EAAE;AAAA,WAAMi/J,MAAM,CAACO,SAAD,EAAYyzB,WAAW,CAAC/zB,QAAZ,GAAuB+zB,WAAW,CAAC8R,QAA/C,CAAN,IAAkEumE,eAAe,EAAvF;AAAA;AAFoC,CAA/B,CAAlB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMhrG,qBAAqB,gBAAG,IAAIxB,cAAJ,CAAmB,qBAAnB,EAA0C;AACpEqjB,EAAAA,UAAU,EAAE,MADwD;AAEpEniL,EAAAA,OAAO,EAAE;AAAA,WAAMynP,iBAAN;AAAA;AAF2D,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMgkB,YAAY,gBAAG,IAAI3sG,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM4sG,mBAAmB,gBAAG,IAAI5sG,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAI6sG,0BAA0B;AAA1BA,EAAAA,0BAA0B,GAA1BA,0BAA0B;AAE1BA,EAAAA,0BAA0B,CAACA,0BAA0B,CAAC,OAAD,CAA1B,GAAsC,CAAvC,CAA1B,GAAsE,OAAtE;AACAA,EAAAA,0BAA0B,CAACA,0BAA0B,CAAC,SAAD,CAA1B,GAAwC,CAAzC,CAA1B,GAAwE,SAAxE;AACAA,EAAAA,0BAA0B,CAACA,0BAA0B,CAAC,QAAD,CAA1B,GAAuC,CAAxC,CAA1B,GAAuE,QAAvE;AAJ0B,SAA1BA,0BAA0B;AAAA,IAA9B;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMC,sQACF,sCAAYv0F,eAAZ,EAA6Bw0F,kBAA7B,EAAiD;AAAA;;AAC7C,OAAKx0F,eAAL,GAAuBA,eAAvB;AACA,OAAKw0F,kBAAL,GAA0BA,kBAA1B;AACH;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC;MAAAA;;;;;;;;AACF;AACJ;AACA;AACA;AACI,iCAAkBtV,UAAlB,EAA8B;AAC1B,eAAO,IAAID,eAAJ,CAAoBC,UAApB,CAAP;AACH;AACD;AACJ;AACA;;;;aACI,4BAAmBA,UAAnB,EAA+B;AAC3B,eAAO1kP,OAAO,CAACC,OAAR,CAAgB,KAAKg6P,iBAAL,CAAuBvV,UAAvB,CAAhB,CAAP;AACH;AACD;AACJ;AACA;;;;aACI,2CAAkCA,UAAlC,EAA8C;AAC1C,YAAMn/E,eAAe,GAAG,KAAK00F,iBAAL,CAAuBvV,UAAvB,CAAxB;AACA,YAAMwV,SAAS,GAAGtyE,cAAc,CAAC88D,UAAD,CAAhC;AACA,YAAMqV,kBAAkB,GAAG39C,aAAa,CAAC89C,SAAS,CAAC3yE,YAAX,CAAb,CACtBp+M,MADsB,CACf,UAACwrP,SAAD,EAAYg9B,WAAZ,EAA4B;AACpC,cAAMx5C,YAAY,GAAGjxB,eAAe,CAACyqE,WAAD,CAApC;AACAx5C,UAAAA,YAAY,IAAIwc,SAAS,CAACjpP,IAAV,CAAe,IAAIs0P,gBAAJ,CAAqB7nB,YAArB,CAAf,CAAhB;AACA,iBAAOwc,SAAP;AACH,SAL0B,EAKxB,EALwB,CAA3B;AAMA,eAAO,IAAImlC,4BAAJ,CAAiCv0F,eAAjC,EAAkDw0F,kBAAlD,CAAP;AACH;AACD;AACJ;AACA;;;;aACI,4CAAmCrV,UAAnC,EAA+C;AAC3C,eAAO1kP,OAAO,CAACC,OAAR,CAAgB,KAAKk6P,iCAAL,CAAuCzV,UAAvC,CAAhB,CAAP;AACH;AACD;AACJ;AACA;;;;aACI,sBAAa,CAAG;AAChB;AACJ;AACA;;;;aACI,uBAAc/vQ,IAAd,EAAoB,CAAG;AACvB;AACJ;AACA;;;;aACI,qBAAY+vQ,UAAZ,EAAwB;AACpB,eAAO3kP,SAAP;AACH;;;;;;AAELi6P,EAAAA,QAAQ,CAACzzH,IAAT,GAAgB,SAAS6zH,gBAAT,CAA0BhsR,CAA1B,EAA6B;AAAE,WAAO,KAAKA,CAAC,IAAI4rR,QAAV,GAAP;AAA+B,GAA9E;;AACAA,EAAAA,QAAQ,CAACxzH,KAAT,GAAiB,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAE0gQ,QAAT;AAAmB9rQ,IAAAA,OAAO,EAAE8rQ,QAAQ,CAACzzH,IAArC;AAA2C8pC,IAAAA,UAAU,EAAE;AAAvD,GAAD,CAAjD;SAlDM2pF;;;AAmDN;AAAA,CAAC,YAAY;AACT,GAAC,OAAOp6H,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAAC+S,QAAD,EAAW,CAAC;AACvErlR,IAAAA,IAAI,EAAE8qJ,UADiE;AAEvE5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFiE,GAAD,CAAX,EAG3D,IAH2D,EAGrD,IAHqD,CAAnE;AAIH,CALD;AAMA;AACA;AACA;AACA;AACA;;;AACA,IAAMgqF,gBAAgB,gBAAG,IAAIrtG,cAAJ,CAAmB,iBAAnB,CAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMstG;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAsBjzD,SAAtB,EAAiC;AAC7BigC,EAAAA,SAAS,CAACjgC,SAAD,CAAT;AACAm+C,EAAAA,iBAAiB,CAACn+C,SAAD,CAAjB,CAA6B9qN,OAA7B,CAAqC,UAAA4+N,aAAa;AAAA,WAAIksB,aAAa,CAAClsB,aAAD,CAAjB;AAAA,GAAlD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,IAAMo/C,0BAA0B,GAAG,IAAnC;AACA,IAAIC,UAAU,GAAG,KAAjB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,2BAAT,GAAuC;AACnC,MAAI,CAACD,UAAL,EAAiB;AACbA,IAAAA,UAAU,GAAG,IAAb;AACA;AACR;AACA;AACA;AACA;;AACQE,IAAAA,iBAAiB,CAAC,cAAD,EAAiBzsE,WAAjB,CAAjB;AACAysE,IAAAA,iBAAiB,CAAC,sBAAD,EAAyB3U,sBAAzB,CAAjB;AACA2U,IAAAA,iBAAiB,CAAC,cAAD,EAAiBvV,YAAjB,CAAjB;AACAuV,IAAAA,iBAAiB,CAAC,YAAD,EAAerV,UAAf,CAAjB;AACAqV,IAAAA,iBAAiB,CAAC,cAAD,EAAiBrU,YAAjB,CAAjB;AACAqU,IAAAA,iBAAiB,CAAC,oBAAD,EAAuBpV,kBAAvB,CAAjB;AACAoV,IAAAA,iBAAiB,CAAC,gBAAD,EAAmBxU,cAAnB,CAAjB;AACAwU,IAAAA,iBAAiB,CAAC,aAAD,EAAgBjV,WAAhB,CAAjB;AACAiV,IAAAA,iBAAiB,CAAC,mBAAD,EAAsBlV,iBAAtB,CAAjB;AACAkV,IAAAA,iBAAiB,CAAC,eAAD,EAAkB7U,aAAlB,CAAjB;AACA6U,IAAAA,iBAAiB,CAAC,cAAD,EAAiBJ,YAAjB,CAAjB;AACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASI,iBAAT,CAA2B7mR,IAA3B,EAAiCg4H,EAAjC,EAAqC;AACjC,MAAI,OAAO8uJ,QAAP,KAAoB,WAApB,IAAmC,CAACA,QAAxC,EAAkD;AAC9C;AACA;AACA;AACA;AACA,QAAMxlR,CAAC,GAAGgtM,OAAV;AACAxiD,IAAAA,SAAS,IAAImgD,aAAa,CAACj0E,EAAD,EAAK,sBAAL,CAA1B;;AACA,QAAI12H,CAAJ,EAAO;AACH,UAAI4e,SAAS,GAAG5e,CAAC,CAAColR,0BAAD,CAAjB;;AACA,UAAI,CAACxmQ,SAAL,EAAgB;AACZA,QAAAA,SAAS,GAAG5e,CAAC,CAAColR,0BAAD,CAAD,GAAgC,EAA5C;AACH;;AACDxmQ,MAAAA,SAAS,CAAClgB,IAAD,CAAT,GAAkBg4H,EAAlB;AACH;AACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM4uB,OAAO,gBAAI;AAAA,SAAM16H,OAAO,CAACC,OAAR,CAAgB,CAAhB,CAAN;AAAA,CAAD,EAAhB;;AACA,SAAS68H,iBAAT,CAA2BhxB,EAA3B,EAA+B;AAC3B,MAAI,OAAO+uJ,IAAP,KAAgB,WAApB,EAAiC;AAC7B;AACAngI,IAAAA,OAAO,CAAC/6H,IAAR,CAAa,YAAM;AACfmsG,MAAAA,EAAE,IAAIA,EAAE,CAAC96H,KAAH,CAAS,IAAT,EAAe,IAAf,CAAN;AACH,KAFD;AAGH,GALD,MAMK;AACD6pR,IAAAA,IAAI,CAAC3lP,OAAL,CAAa4nH,iBAAb,CAA+B,mBAA/B,EAAoDhxB,EAApD;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgvJ,8BAAT,GAA0C;AACtC,MAAIC,2BAA2B,GAAG34E,OAAO,CAAC,uBAAD,CAAzC;AACA,MAAI44E,0BAA0B,GAAG54E,OAAO,CAAC,sBAAD,CAAxC;;AACA,MAAI,OAAOy4E,IAAP,KAAgB,WAAhB,IAA+BE,2BAA/B,IAA8DC,0BAAlE,EAA8F;AAC1F;AACA;AACA,QAAMC,8BAA8B,GAAGF,2BAA2B,CAACF,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAlE;;AACA,QAAID,8BAAJ,EAAoC;AAChCF,MAAAA,2BAA2B,GAAGE,8BAA9B;AACH;;AACD,QAAME,6BAA6B,GAAGH,0BAA0B,CAACH,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAhE;;AACA,QAAIC,6BAAJ,EAAmC;AAC/BH,MAAAA,0BAA0B,GAAGG,6BAA7B;AACH;AACJ;;AACD,SAAO;AAAEJ,IAAAA,2BAA2B,EAA3BA,2BAAF;AAA+BC,IAAAA,0BAA0B,EAA1BA;AAA/B,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMI;AACF,wBAAoI;AAAA,qCAAtHC,oBAAsH;AAAA,QAAtHA,oBAAsH,sCAA/F,KAA+F;AAAA,qCAAxFC,kCAAwF;AAAA,QAAxFA,kCAAwF,sCAAnD,KAAmD;AAAA,qCAA5CC,gCAA4C;AAAA,QAA5CA,gCAA4C,sCAAT,KAAS;;AAAA;;AAChI,SAAKC,oBAAL,GAA4B,KAA5B;AACA,SAAKC,oBAAL,GAA4B,KAA5B;AACA;AACR;AACA;;AACQ,SAAKC,QAAL,GAAgB,IAAhB;AACA;AACR;AACA;;AACQ,SAAKC,UAAL,GAAkB,IAAItuG,YAAJ,CAAiB,KAAjB,CAAlB;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAKuuG,gBAAL,GAAwB,IAAIvuG,YAAJ,CAAiB,KAAjB,CAAxB;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAKwuG,QAAL,GAAgB,IAAIxuG,YAAJ,CAAiB,KAAjB,CAAhB;AACA;AACR;AACA;;AACQ,SAAKorB,OAAL,GAAe,IAAIprB,YAAJ,CAAiB,KAAjB,CAAf;;AACA,QAAI,OAAOwtG,IAAP,IAAe,WAAnB,EAAgC;AAC5B,YAAM,IAAIh9E,YAAJ,CAAiB;AAAI;AAArB,QAA4Dj+C,SAAS,oDAArE,CAAN;AACH;;AACDi7H,IAAAA,IAAI,CAACiB,iBAAL;AACA,QAAMtnM,IAAI,GAAG,IAAb;AACAA,IAAAA,IAAI,CAACunM,QAAL,GAAgB,CAAhB;AACAvnM,IAAAA,IAAI,CAACwnM,MAAL,GAAcxnM,IAAI,CAACynM,MAAL,GAAcpB,IAAI,CAAC3lP,OAAjC;;AACA,QAAI2lP,IAAI,CAAC,2BAAD,CAAR,EAAuC;AACnC,UAAMqB,yBAAyB,GAAGrB,IAAI,CAAC,2BAAD,CAAtC;AACArmM,MAAAA,IAAI,CAACynM,MAAL,GAAcznM,IAAI,CAACynM,MAAL,CAAY9mH,IAAZ,CAAiB,IAAI+mH,yBAAJ,CAA8B,SAA9B,CAAjB,CAAd;AACH;;AACD,QAAIrB,IAAI,CAAC,sBAAD,CAAR,EAAkC;AAC9BrmM,MAAAA,IAAI,CAACynM,MAAL,GAAcznM,IAAI,CAACynM,MAAL,CAAY9mH,IAAZ,CAAiB,IAAI0lH,IAAI,CAAC,sBAAD,CAAR,EAAjB,CAAd;AACH;;AACD,QAAIQ,oBAAoB,IAAIR,IAAI,CAAC,wBAAD,CAAhC,EAA4D;AACxDrmM,MAAAA,IAAI,CAACynM,MAAL,GAAcznM,IAAI,CAACynM,MAAL,CAAY9mH,IAAZ,CAAiB0lH,IAAI,CAAC,wBAAD,CAArB,CAAd;AACH,KA3C+H,CA4ChI;AACA;;;AACArmM,IAAAA,IAAI,CAAC8mM,kCAAL,GACI,CAACC,gCAAD,IAAqCD,kCADzC;AAEA9mM,IAAAA,IAAI,CAAC+mM,gCAAL,GAAwCA,gCAAxC;AACA/mM,IAAAA,IAAI,CAAC2nM,2BAAL,GAAmC,CAAC,CAApC;AACA3nM,IAAAA,IAAI,CAACumM,2BAAL,GAAmCD,8BAA8B,GAAGC,2BAApE;AACAqB,IAAAA,gCAAgC,CAAC5nM,IAAD,CAAhC;AACH;;;;;AAeD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,iBAAIs3C,EAAJ,EAAQuwJ,SAAR,EAAmBC,SAAnB,EAA8B;AAC1B,aAAO,KAAKL,MAAL,CAAYM,GAAZ,CAAgBzwJ,EAAhB,EAAoBuwJ,SAApB,EAA+BC,SAA/B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,iBAAQxwJ,EAAR,EAAYuwJ,SAAZ,EAAuBC,SAAvB,EAAkCxoR,IAAlC,EAAwC;AACpC,UAAM8nL,IAAI,GAAG,KAAKqgG,MAAlB;AACA,UAAMO,IAAI,GAAG5gG,IAAI,CAAC6gG,iBAAL,CAAuB,kBAAkB3oR,IAAzC,EAA+Cg4H,EAA/C,EAAmD4wJ,aAAnD,EAAkEhsQ,IAAlE,EAAwEA,IAAxE,CAAb;;AACA,UAAI;AACA,eAAOkrK,IAAI,CAAC+gG,OAAL,CAAaH,IAAb,EAAmBH,SAAnB,EAA8BC,SAA9B,CAAP;AACH,OAFD,SAGQ;AACJ1gG,QAAAA,IAAI,CAACghG,UAAL,CAAgBJ,IAAhB;AACH;AACJ;AACD;AACJ;AACA;AACA;;;;WACI,oBAAW1wJ,EAAX,EAAeuwJ,SAAf,EAA0BC,SAA1B,EAAqC;AACjC,aAAO,KAAKL,MAAL,CAAYY,UAAZ,CAAuB/wJ,EAAvB,EAA2BuwJ,SAA3B,EAAsCC,SAAtC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,2BAAkBxwJ,EAAlB,EAAsB;AAClB,aAAO,KAAKkwJ,MAAL,CAAYO,GAAZ,CAAgBzwJ,EAAhB,CAAP;AACH;;;WAzED,2BAAyB;AACrB;AACA,aAAO,OAAO+uJ,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,CAAC3lP,OAAL,CAAa/1B,GAAb,CAAiB,eAAjB,MAAsC,IAA5E;AACH;;;WACD,+BAA6B;AACzB,UAAI,CAACi8Q,MAAM,CAAC0B,eAAP,EAAL,EAA+B;AAC3B,cAAM,IAAIj/E,YAAJ,CAAiB;AAAI;AAArB,UAAmEj+C,SAAS,IAAI,gDAAhF,CAAN;AACH;AACJ;;;WACD,kCAAgC;AAC5B,UAAIw7H,MAAM,CAAC0B,eAAP,EAAJ,EAA8B;AAC1B,cAAM,IAAIj/E,YAAJ,CAAiB;AAAI;AAArB,UAAmEj+C,SAAS,IAAI,gDAAhF,CAAN;AACH;AACJ;;;;;;AA8DL,IAAM88H,aAAa,GAAG,EAAtB;;AACA,SAASK,WAAT,CAAqBnhG,IAArB,EAA2B;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAIA,IAAI,CAACmgG,QAAL,IAAiB,CAAjB,IAAsB,CAACngG,IAAI,CAAC6/F,oBAA5B,IAAoD,CAAC7/F,IAAI,CAAC8/F,QAA9D,EAAwE;AACpE,QAAI;AACA9/F,MAAAA,IAAI,CAACmgG,QAAL;AACAngG,MAAAA,IAAI,CAACggG,gBAAL,CAAsBljR,IAAtB,CAA2B,IAA3B;AACH,KAHD,SAIQ;AACJkjL,MAAAA,IAAI,CAACmgG,QAAL;;AACA,UAAI,CAACngG,IAAI,CAAC6/F,oBAAV,EAAgC;AAC5B,YAAI;AACA7/F,UAAAA,IAAI,CAACohG,iBAAL,CAAuB;AAAA,mBAAMphG,IAAI,CAACigG,QAAL,CAAcnjR,IAAd,CAAmB,IAAnB,CAAN;AAAA,WAAvB;AACH,SAFD,SAGQ;AACJkjL,UAAAA,IAAI,CAAC8/F,QAAL,GAAgB,IAAhB;AACH;AACJ;AACJ;AACJ;AACJ;;AACD,SAASuB,6BAAT,CAAuCrhG,IAAvC,EAA6C;AACzC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,MAAIA,IAAI,CAACshG,oBAAL,IAA6BthG,IAAI,CAACugG,2BAAL,KAAqC,CAAC,CAAvE,EAA0E;AACtE;AACH;;AACDvgG,EAAAA,IAAI,CAACugG,2BAAL,GAAmCvgG,IAAI,CAACm/F,2BAAL,CAAiCjvR,IAAjC,CAAsCs2M,OAAtC,EAA+C,YAAM;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAI,CAACxmB,IAAI,CAACuhG,gBAAV,EAA4B;AACxBvhG,MAAAA,IAAI,CAACuhG,gBAAL,GAAwBtC,IAAI,CAAC1lQ,IAAL,CAAUsnQ,iBAAV,CAA4B,kBAA5B,EAAgD,YAAM;AAC1E7gG,QAAAA,IAAI,CAACugG,2BAAL,GAAmC,CAAC,CAApC;AACAiB,QAAAA,qBAAqB,CAACxhG,IAAD,CAArB;AACAA,QAAAA,IAAI,CAACshG,oBAAL,GAA4B,IAA5B;AACAH,QAAAA,WAAW,CAACnhG,IAAD,CAAX;AACAA,QAAAA,IAAI,CAACshG,oBAAL,GAA4B,KAA5B;AACH,OANuB,EAMrBn9P,SANqB,EAMV,YAAM,CAAG,CANC,EAMC,YAAM,CAAG,CANV,CAAxB;AAOH;;AACD67J,IAAAA,IAAI,CAACuhG,gBAAL,CAAsBlgJ,MAAtB;AACH,GApBkC,CAAnC;AAqBAmgJ,EAAAA,qBAAqB,CAACxhG,IAAD,CAArB;AACH;;AACD,SAASwgG,gCAAT,CAA0CxgG,IAA1C,EAAgD;AAC5C,MAAMyhG,qCAAqC,GAAG,SAAxCA,qCAAwC,GAAM;AAChDJ,IAAAA,6BAA6B,CAACrhG,IAAD,CAA7B;AACH,GAFD;;AAGAA,EAAAA,IAAI,CAACqgG,MAAL,GAAcrgG,IAAI,CAACqgG,MAAL,CAAY9mH,IAAZ,CAAiB;AAC3BrhK,IAAAA,IAAI,EAAE,SADqB;AAE3BqoI,IAAAA,UAAU,EAAE;AAAE,uBAAiB;AAAnB,KAFe;AAG3BmhJ,IAAAA,YAAY,EAAE,sBAAChkI,QAAD,EAAWpkH,OAAX,EAAoB3gC,MAApB,EAA4BioR,IAA5B,EAAkCH,SAAlC,EAA6CC,SAA7C,EAA2D;AACrE,UAAI;AACAiB,QAAAA,OAAO,CAAC3hG,IAAD,CAAP;AACA,eAAOtiC,QAAQ,CAACkkI,UAAT,CAAoBjpR,MAApB,EAA4BioR,IAA5B,EAAkCH,SAAlC,EAA6CC,SAA7C,CAAP;AACH,OAHD,SAIQ;AACJ,YAAK1gG,IAAI,CAAC0/F,kCAAL,IAA2CkB,IAAI,CAAC7nR,IAAL,KAAc,WAA1D,IACAinL,IAAI,CAAC2/F,gCADT,EAC2C;AACvC8B,UAAAA,qCAAqC;AACxC;;AACDI,QAAAA,OAAO,CAAC7hG,IAAD,CAAP;AACH;AACJ,KAf0B;AAgB3B8hG,IAAAA,QAAQ,EAAE,kBAACpkI,QAAD,EAAWpkH,OAAX,EAAoB3gC,MAApB,EAA4B8c,QAA5B,EAAsCgrQ,SAAtC,EAAiDC,SAAjD,EAA4D1gR,MAA5D,EAAuE;AAC7E,UAAI;AACA2hR,QAAAA,OAAO,CAAC3hG,IAAD,CAAP;AACA,eAAOtiC,QAAQ,CAACrc,MAAT,CAAgB1oI,MAAhB,EAAwB8c,QAAxB,EAAkCgrQ,SAAlC,EAA6CC,SAA7C,EAAwD1gR,MAAxD,CAAP;AACH,OAHD,SAIQ;AACJ,YAAIggL,IAAI,CAAC2/F,gCAAT,EAA2C;AACvC8B,UAAAA,qCAAqC;AACxC;;AACDI,QAAAA,OAAO,CAAC7hG,IAAD,CAAP;AACH;AACJ,KA3B0B;AA4B3B+hG,IAAAA,SAAS,EAAE,mBAACrkI,QAAD,EAAWpkH,OAAX,EAAoB3gC,MAApB,EAA4BqpR,YAA5B,EAA6C;AACpDtkI,MAAAA,QAAQ,CAACukI,OAAT,CAAiBtpR,MAAjB,EAAyBqpR,YAAzB;;AACA,UAAI1oP,OAAO,KAAK3gC,MAAhB,EAAwB;AACpB;AACA;AACA,YAAIqpR,YAAY,CAACxxO,MAAb,IAAuB,WAA3B,EAAwC;AACpCwvI,UAAAA,IAAI,CAACkiG,qBAAL,GAA6BF,YAAY,CAACG,SAA1C;AACAX,UAAAA,qBAAqB,CAACxhG,IAAD,CAArB;AACAmhG,UAAAA,WAAW,CAACnhG,IAAD,CAAX;AACH,SAJD,MAKK,IAAIgiG,YAAY,CAACxxO,MAAb,IAAuB,WAA3B,EAAwC;AACzCwvI,UAAAA,IAAI,CAAC4/F,oBAAL,GAA4BoC,YAAY,CAACI,SAAzC;AACH;AACJ;AACJ,KA1C0B;AA2C3BC,IAAAA,aAAa,EAAE,uBAAC3kI,QAAD,EAAWpkH,OAAX,EAAoB3gC,MAApB,EAA4BtF,KAA5B,EAAsC;AACjDqqJ,MAAAA,QAAQ,CAAC6kG,WAAT,CAAqB5pP,MAArB,EAA6BtF,KAA7B;AACA2sL,MAAAA,IAAI,CAACohG,iBAAL,CAAuB;AAAA,eAAMphG,IAAI,CAAC6c,OAAL,CAAa//L,IAAb,CAAkBzJ,KAAlB,CAAN;AAAA,OAAvB;AACA,aAAO,KAAP;AACH;AA/C0B,GAAjB,CAAd;AAiDH;;AACD,SAASmuR,qBAAT,CAA+BxhG,IAA/B,EAAqC;AACjC,MAAIA,IAAI,CAACkiG,qBAAL,IACC,CAACliG,IAAI,CAAC0/F,kCAAL,IAA2C1/F,IAAI,CAAC2/F,gCAAjD,KACG3/F,IAAI,CAACugG,2BAAL,KAAqC,CAAC,CAF9C,EAEkD;AAC9CvgG,IAAAA,IAAI,CAAC6/F,oBAAL,GAA4B,IAA5B;AACH,GAJD,MAKK;AACD7/F,IAAAA,IAAI,CAAC6/F,oBAAL,GAA4B,KAA5B;AACH;AACJ;;AACD,SAAS8B,OAAT,CAAiB3hG,IAAjB,EAAuB;AACnBA,EAAAA,IAAI,CAACmgG,QAAL;;AACA,MAAIngG,IAAI,CAAC8/F,QAAT,EAAmB;AACf9/F,IAAAA,IAAI,CAAC8/F,QAAL,GAAgB,KAAhB;AACA9/F,IAAAA,IAAI,CAAC+/F,UAAL,CAAgBjjR,IAAhB,CAAqB,IAArB;AACH;AACJ;;AACD,SAAS+kR,OAAT,CAAiB7hG,IAAjB,EAAuB;AACnBA,EAAAA,IAAI,CAACmgG,QAAL;AACAgB,EAAAA,WAAW,CAACnhG,IAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;IACMsiG;AACF,wBAAc;AAAA;;AACV,SAAKzC,oBAAL,GAA4B,KAA5B;AACA,SAAKD,oBAAL,GAA4B,KAA5B;AACA,SAAKE,QAAL,GAAgB,IAAhB;AACA,SAAKC,UAAL,GAAkB,IAAItuG,YAAJ,EAAlB;AACA,SAAKuuG,gBAAL,GAAwB,IAAIvuG,YAAJ,EAAxB;AACA,SAAKwuG,QAAL,GAAgB,IAAIxuG,YAAJ,EAAhB;AACA,SAAKorB,OAAL,GAAe,IAAIprB,YAAJ,EAAf;AACH;;;;WACD,aAAIvhD,EAAJ,EAAQuwJ,SAAR,EAAmBC,SAAnB,EAA8B;AAC1B,aAAOxwJ,EAAE,CAAC96H,KAAH,CAASqrR,SAAT,EAAoBC,SAApB,CAAP;AACH;;;WACD,oBAAWxwJ,EAAX,EAAeuwJ,SAAf,EAA0BC,SAA1B,EAAqC;AACjC,aAAOxwJ,EAAE,CAAC96H,KAAH,CAASqrR,SAAT,EAAoBC,SAApB,CAAP;AACH;;;WACD,2BAAkBxwJ,EAAlB,EAAsB;AAClB,aAAOA,EAAE,EAAT;AACH;;;WACD,iBAAQA,EAAR,EAAYuwJ,SAAZ,EAAuBC,SAAvB,EAAkCxoR,IAAlC,EAAwC;AACpC,aAAOg4H,EAAE,CAAC96H,KAAH,CAASqrR,SAAT,EAAoBC,SAApB,CAAP;AACH;;;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM6B,WAAW,gBAAG,IAAInxG,cAAJ,CAAmB,EAAnB,CAApB;AACA;AACA;AACA;;AACA,IAAMoxG,kBAAkB,gBAAG,IAAIpxG,cAAJ,CAAmB,EAAnB,CAA3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMqxG;MAAAA;AACF,yBAAYC,OAAZ,EAAqBjiC,QAArB,EAA+BkiC,iBAA/B,EAAkD;AAAA;;AAAA;;AAC9C,WAAKD,OAAL,GAAeA,OAAf;AACA,WAAKjiC,QAAL,GAAgBA,QAAhB;AACA,WAAKmiC,aAAL,GAAqB,CAArB;AACA,WAAKC,aAAL,GAAqB,IAArB;AACA;AACR;AACA;AACA;AACA;AACA;;AACQ,WAAKC,QAAL,GAAgB,KAAhB;AACA,WAAKC,UAAL,GAAkB,EAAlB;AACA,WAAKC,gBAAL,GAAwB,IAAxB,CAb8C,CAc9C;AACA;;AACA,UAAI,CAACC,kBAAL,EAAyB;AACrBC,QAAAA,oBAAoB,CAACP,iBAAD,CAApB;AACAA,QAAAA,iBAAiB,CAACQ,WAAlB,CAA8B1iC,QAA9B;AACH;;AACD,WAAK2iC,mBAAL;;AACAV,MAAAA,OAAO,CAAC/B,GAAR,CAAY,YAAM;AACd,eAAI,CAACqC,gBAAL,GACI,OAAO/D,IAAP,IAAe,WAAf,GAA6B,IAA7B,GAAoCA,IAAI,CAAC3lP,OAAL,CAAa/1B,GAAb,CAAiB,kBAAjB,CADxC;AAEH,OAHD;AAIH;;;;aACD,+BAAsB;AAAA;;AAClB,aAAKm/Q,OAAL,CAAa3C,UAAb,CAAwBtyI,SAAxB,CAAkC;AAC9BtlH,UAAAA,IAAI,EAAE,gBAAM;AACR,mBAAI,CAAC26P,QAAL,GAAgB,IAAhB;AACA,mBAAI,CAACD,aAAL,GAAqB,KAArB;AACH;AAJ6B,SAAlC;;AAMA,aAAKH,OAAL,CAAatB,iBAAb,CAA+B,YAAM;AACjC,iBAAI,CAACsB,OAAL,CAAazC,QAAb,CAAsBxyI,SAAtB,CAAgC;AAC5BtlH,YAAAA,IAAI,EAAE,gBAAM;AACRq3P,cAAAA,MAAM,CAAC6D,sBAAP;AACAniI,cAAAA,iBAAiB,CAAC,YAAM;AACpB,uBAAI,CAAC2hI,aAAL,GAAqB,IAArB;;AACA,uBAAI,CAACS,oBAAL;AACH,eAHgB,CAAjB;AAIH;AAP2B,WAAhC;AASH,SAVD;AAWH;AACD;AACJ;AACA;AACA;;;;aACI,uCAA8B;AAC1B,aAAKV,aAAL,IAAsB,CAAtB;AACA,aAAKE,QAAL,GAAgB,IAAhB;AACA,eAAO,KAAKF,aAAZ;AACH;AACD;AACJ;AACA;AACA;;;;aACI,uCAA8B;AAC1B,aAAKA,aAAL,IAAsB,CAAtB;;AACA,YAAI,KAAKA,aAAL,GAAqB,CAAzB,EAA4B;AACxB,gBAAM,IAAIrsQ,KAAJ,CAAU,mCAAV,CAAN;AACH;;AACD,aAAK+sQ,oBAAL;;AACA,eAAO,KAAKV,aAAZ;AACH;AACD;AACJ;AACA;;;;aACI,oBAAW;AACP,eAAO,KAAKC,aAAL,IAAsB,KAAKD,aAAL,KAAuB,CAA7C,IAAkD,CAAC,KAAKF,OAAL,CAAa9C,oBAAvE;AACH;;;aACD,gCAAuB;AAAA;;AACnB,YAAI,KAAKE,QAAL,EAAJ,EAAqB;AACjB;AACA5+H,UAAAA,iBAAiB,CAAC,YAAM;AACpB,mBAAO,OAAI,CAAC6hI,UAAL,CAAgBn2R,MAAhB,KAA2B,CAAlC,EAAqC;AACjC,kBAAIurC,EAAE,GAAG,OAAI,CAAC4qP,UAAL,CAAgBpzR,GAAhB,EAAT;;AACA6P,cAAAA,YAAY,CAAC24B,EAAE,CAACorP,SAAJ,CAAZ;AACAprP,cAAAA,EAAE,CAACqrP,MAAH,CAAU,OAAI,CAACV,QAAf;AACH;;AACD,mBAAI,CAACA,QAAL,GAAgB,KAAhB;AACH,WAPgB,CAAjB;AAQH,SAVD,MAWK;AACD;AACA,cAAI3lI,OAAO,GAAG,KAAKsmI,eAAL,EAAd;AACA,eAAKV,UAAL,GAAkB,KAAKA,UAAL,CAAgBjsR,MAAhB,CAAuB,UAACqhC,EAAD,EAAQ;AAC7C,gBAAIA,EAAE,CAACurP,QAAH,IAAevrP,EAAE,CAACurP,QAAH,CAAYvmI,OAAZ,CAAnB,EAAyC;AACrC39I,cAAAA,YAAY,CAAC24B,EAAE,CAACorP,SAAJ,CAAZ;AACA,qBAAO,KAAP;AACH;;AACD,mBAAO,IAAP;AACH,WANiB,CAAlB;AAOA,eAAKT,QAAL,GAAgB,IAAhB;AACH;AACJ;;;aACD,2BAAkB;AACd,YAAI,CAAC,KAAKE,gBAAV,EAA4B;AACxB,iBAAO,EAAP;AACH,SAHa,CAId;;;AACA,eAAO,KAAKA,gBAAL,CAAsBW,UAAtB,CAAiC33R,GAAjC,CAAqC,UAACwG,CAAD,EAAO;AAC/C,iBAAO;AACHwN,YAAAA,MAAM,EAAExN,CAAC,CAACwN,MADP;AAEH;AACA;AACA4jR,YAAAA,gBAAgB,EAAEpxR,CAAC,CAACoxR,gBAJjB;AAKH10R,YAAAA,IAAI,EAAEsD,CAAC,CAACtD;AALL,WAAP;AAOH,SARM,CAAP;AASH;;;aACD,qBAAYipC,EAAZ,EAAgB66C,OAAhB,EAAyB0wM,QAAzB,EAAmC;AAAA;;AAC/B,YAAIH,SAAS,GAAG,CAAC,CAAjB;;AACA,YAAIvwM,OAAO,IAAIA,OAAO,GAAG,CAAzB,EAA4B;AACxBuwM,UAAAA,SAAS,GAAG9jR,UAAU,CAAC,YAAM;AACzB,mBAAI,CAACsjR,UAAL,GAAkB,OAAI,CAACA,UAAL,CAAgBjsR,MAAhB,CAAuB,UAACqhC,EAAD;AAAA,qBAAQA,EAAE,CAACorP,SAAH,KAAiBA,SAAzB;AAAA,aAAvB,CAAlB;AACAprP,YAAAA,EAAE,CAAC,OAAI,CAAC2qP,QAAN,EAAgB,OAAI,CAACW,eAAL,EAAhB,CAAF;AACH,WAHqB,EAGnBzwM,OAHmB,CAAtB;AAIH;;AACD,aAAK+vM,UAAL,CAAgBjzR,IAAhB,CAAqB;AAAE0zR,UAAAA,MAAM,EAAErrP,EAAV;AAAcorP,UAAAA,SAAS,EAAEA,SAAzB;AAAoCG,UAAAA,QAAQ,EAAEA;AAA9C,SAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,oBAAWF,MAAX,EAAmBxwM,OAAnB,EAA4B0wM,QAA5B,EAAsC;AAClC,YAAIA,QAAQ,IAAI,CAAC,KAAKV,gBAAtB,EAAwC;AACpC,gBAAM,IAAIzsQ,KAAJ,CAAU,uEACZ,0DADE,CAAN;AAEH,SAJiC,CAKlC;;;AACA,aAAKstQ,WAAL,CAAiBL,MAAjB,EAAyBxwM,OAAzB,EAAkC0wM,QAAlC;;AACA,aAAKJ,oBAAL;AACH;AACD;AACJ;AACA;AACA;;;;aACI,kCAAyB;AACrB,eAAO,KAAKV,aAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,6BAAoBllQ,KAApB,EAA2B;AACvB,aAAK+iO,QAAL,CAAcqjC,mBAAd,CAAkCpmQ,KAAlC,EAAyC,IAAzC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,+BAAsBA,KAAtB,EAA6B;AACzB,aAAK+iO,QAAL,CAAcsjC,qBAAd,CAAoCrmQ,KAApC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,uBAAcsmQ,KAAd,EAAqBphF,QAArB,EAA+BqhF,UAA/B,EAA2C;AACvC;AACA,eAAO,EAAP;AACH;;;;;;AAELxB,EAAAA,WAAW,CAAC93H,IAAZ,GAAmB,SAASu5H,mBAAT,CAA6B1xR,CAA7B,EAAgC;AAAE,WAAO,KAAKA,CAAC,IAAIiwR,WAAV,EAAuBpxG,QAAQ,CAACmuG,MAAD,CAA/B,EAAyCnuG,QAAQ,CAAC8yG,mBAAD,CAAjD,EAAwE9yG,QAAQ,CAACmxG,kBAAD,CAAhF,CAAP;AAA+G,GAApK;;AACAC,EAAAA,WAAW,CAAC73H,KAAZ,GAAoB,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAE+kQ,WAAT;AAAsBnwQ,IAAAA,OAAO,EAAEmwQ,WAAW,CAAC93H;AAA3C,GAAD,CAApD;SArLM83H;;;AAsLN;AAAA,CAAC,YAAY;AACT,GAAC,OAAOz+H,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAACoX,WAAD,EAAc,CAAC;AAC1E1pR,IAAAA,IAAI,EAAE8qJ;AADoE,GAAD,CAAd,EAE3D,YAAY;AAChB,WAAO,CAAC;AAAE9qJ,MAAAA,IAAI,EAAEymR;AAAR,KAAD,EAAmB;AAAEzmR,MAAAA,IAAI,EAAEorR;AAAR,KAAnB,EAAkD;AAAEprR,MAAAA,IAAI,EAAEorB,SAAR;AAAmB6jM,MAAAA,UAAU,EAAE,CAAC;AACzEjvN,QAAAA,IAAI,EAAEu4K,MADmE;AAEzEr0K,QAAAA,IAAI,EAAE,CAACulR,kBAAD;AAFmE,OAAD;AAA/B,KAAlD,CAAP;AAIH,GAPkE,EAOhE,IAPgE,CAAnE;AAQH,CATD;AAUA;AACA;AACA;AACA;;;IACM2B;MAAAA;AACF,mCAAc;AAAA;;AACV;AACA,WAAKC,aAAL,GAAqB,IAAIhhR,GAAJ,EAArB;AACH;AACD;AACJ;AACA;AACA;AACA;;;;;aACI,6BAAoBsa,KAApB,EAA2B2mQ,WAA3B,EAAwC;AACpC,aAAKD,aAAL,CAAmBlhR,GAAnB,CAAuBwa,KAAvB,EAA8B2mQ,WAA9B;AACH;AACD;AACJ;AACA;AACA;;;;aACI,+BAAsB3mQ,KAAtB,EAA6B;AACzB,aAAK0mQ,aAAL,CAAmBnxH,MAAnB,CAA0Bv1I,KAA1B;AACH;AACD;AACJ;AACA;;;;aACI,qCAA4B;AACxB,aAAK0mQ,aAAL,CAAmBlnR,KAAnB;AACH;AACD;AACJ;AACA;AACA;;;;aACI,wBAAeosJ,IAAf,EAAqB;AACjB,eAAO,KAAK86H,aAAL,CAAmB7gR,GAAnB,CAAuB+lJ,IAAvB,KAAgC,IAAvC;AACH;AACD;AACJ;AACA;;;;aACI,+BAAsB;AAClB,eAAOz9J,KAAK,CAAC2oC,IAAN,CAAW,KAAK4vP,aAAL,CAAmB12R,MAAnB,EAAX,CAAP;AACH;AACD;AACJ;AACA;;;;aACI,8BAAqB;AACjB,eAAO7B,KAAK,CAAC2oC,IAAN,CAAW,KAAK4vP,aAAL,CAAmB1oR,IAAnB,EAAX,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;aACI,+BAAsB4tJ,IAAtB,EAAoD;AAAA,YAAxBg7H,eAAwB,uEAAN,IAAM;;AAChD,YAAI5pH,EAAJ;;AACA,eAAO,CAACA,EAAE,GAAGuoH,kBAAkB,KAAK,IAAvB,IAA+BA,kBAAkB,KAAK,KAAK,CAA3D,GAA+D,KAAK,CAApE,GAAwEA,kBAAkB,CAACsB,qBAAnB,CAAyC,IAAzC,EAA+Cj7H,IAA/C,EAAqDg7H,eAArD,CAA9E,MAAyJ,IAAzJ,IAAiK5pH,EAAE,KAAK,KAAK,CAA7K,GAAiLA,EAAjL,GAAsL,IAA7L;AACH;;;;;;AAELypH,EAAAA,mBAAmB,CAACx5H,IAApB,GAA2B,SAAS65H,2BAAT,CAAqChyR,CAArC,EAAwC;AAAE,WAAO,KAAKA,CAAC,IAAI2xR,mBAAV,GAAP;AAA0C,GAA/G;;AACAA,EAAAA,mBAAmB,CAACv5H,KAApB,GAA4B,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAEymQ,mBAAT;AAA8B7xQ,IAAAA,OAAO,EAAE6xQ,mBAAmB,CAACx5H,IAA3D;AAAiE8pC,IAAAA,UAAU,EAAE;AAA7E,GAAD,CAA5D;SAzDM0vF;;;AA0DN;AAAA,CAAC,YAAY;AACT,GAAC,OAAOngI,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAAC8Y,mBAAD,EAAsB,CAAC;AAClFprR,IAAAA,IAAI,EAAE8qJ,UAD4E;AAElF5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAF4E,GAAD,CAAtB,EAG3D,IAH2D,EAGrD,IAHqD,CAAnE;AAIH,CALD;AAMA;AACA;AACA;AACA;;;AACA,SAASyuF,oBAAT,CAA8BuB,MAA9B,EAAsC;AAClCxB,EAAAA,kBAAkB,GAAGwB,MAArB;AACH;;AACD,IAAIxB,kBAAJ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIyB,iBAAiB,GAAG,IAAxB;AACA;AACA;AACA;AACA;;AACA,IAAMC,wBAAwB,gBAAG,IAAIvzG,cAAJ,CAAmB,oBAAnB,CAAjC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMwzG,0BAA0B,gBAAG,IAAIxzG,cAAJ,CAAmB,0BAAnB,CAAnC;AACA,IAAMriB,WAAW,GAAG,OAAO/K,SAAP,KAAqB,WAArB,IAAoCA,SAAxD;;AACA,SAAS6gI,sBAAT,CAAgC/6F,QAAhC,EAA0CvjG,OAA1C,EAAmDuiL,UAAnD,EAA+D;AAC3D9kH,EAAAA,SAAS,IAAI4rD,kBAAkB,CAACk5D,UAAD,CAA/B;AACA,MAAMgc,aAAa,GAAG,IAAIjc,eAAJ,CAAoBC,UAApB,CAAtB,CAF2D,CAG3D;;AACA,MAAI,OAAOic,SAAP,KAAqB,WAArB,IAAoC,CAACA,SAAzC,EAAoD;AAChD,WAAO3gQ,OAAO,CAACC,OAAR,CAAgBygQ,aAAhB,CAAP;AACH;;AACD,MAAME,eAAe,GAAGl7F,QAAQ,CAACvmL,GAAT,CAAak7Q,gBAAb,EAA+B,EAA/B,EAAmC1oQ,MAAnC,CAA0CwwE,OAA1C,CAAxB,CAP2D,CAQ3D;AACA;AACA;;AACA0uL,EAAAA,aAAa,CAAC;AACVC,IAAAA,oBAAoB,EAAE+P,YAAY,CAACD,eAAe,CAACh5R,GAAhB,CAAoB,UAAA04M,IAAI;AAAA,aAAIA,IAAI,CAACwwE,oBAAT;AAAA,KAAxB,CAAD,CADxB;AAEVC,IAAAA,mBAAmB,EAAE8P,YAAY,CAACD,eAAe,CAACh5R,GAAhB,CAAoB,UAAA04M,IAAI;AAAA,aAAIA,IAAI,CAACywE,mBAAT;AAAA,KAAxB,CAAD;AAFvB,GAAD,CAAb;;AAIA,MAAIzoD,uCAAuC,EAA3C,EAA+C;AAC3C,WAAOtoM,OAAO,CAACC,OAAR,CAAgBygQ,aAAhB,CAAP;AACH;;AACD,MAAMI,iBAAiB,GAAGC,YAAY,CAACH,eAAe,CAACh5R,GAAhB,CAAoB,UAAA0X,CAAC;AAAA,WAAIA,CAAC,CAACg9L,SAAN;AAAA,GAArB,CAAD,CAAtC,CAlB2D,CAmB3D;AACA;AACA;AACA;;;AACA,MAAIwkF,iBAAiB,CAACt4R,MAAlB,KAA6B,CAAjC,EAAoC;AAChC,WAAOw3B,OAAO,CAACC,OAAR,CAAgBygQ,aAAhB,CAAP;AACH;;AACD,MAAM34C,QAAQ,GAAG/mB,iBAAiB,CAAC;AAC/BG,IAAAA,KAAK,EAAE;AAAE;AADsB;AAE/B94E,IAAAA,IAAI,EAAE,UAFyB;AAG/B1zI,IAAAA,IAAI,EAAE+vQ;AAHyB,GAAD,CAAlC;AAKA,MAAMsc,gBAAgB,GAAG9kF,QAAQ,CAAC7tL,MAAT,CAAgB;AAAEiuL,IAAAA,SAAS,EAAEwkF;AAAb,GAAhB,CAAzB;AACA,MAAMG,cAAc,GAAGD,gBAAgB,CAAC7hR,GAAjB,CAAqB4oO,QAAQ,CAACm5C,cAA9B,CAAvB,CAhC2D,CAiC3D;AACA;;AACA,SAAOp6D,yBAAyB,CAAC,UAAA/jI,GAAG;AAAA,WAAI/iE,OAAO,CAACC,OAAR,CAAgBghQ,cAAc,CAAC9hR,GAAf,CAAmB4jF,GAAnB,CAAhB,CAAJ;AAAA,GAAJ,CAAzB,CACFpjE,IADE,CACG;AAAA,WAAM+gQ,aAAN;AAAA,GADH,CAAP;AAEH;;AACD,SAASS,yBAAT,GAAqC;AACjCvhI,EAAAA,SAAS,IAAI86H,2BAA2B,EAAxC;AACH;;AACD,SAASj6B,eAAT,CAAyB2gC,EAAzB,EAA6B;AACzB,SAAOA,EAAE,CAAC3gC,eAAV;AACH;AACD;AACA;AACA;AACA;AACA;;;IACM4gC,sPACF,sBAAYvtR,IAAZ,EAAkBwlB,KAAlB,EAAyB;AAAA;;AACrB,OAAKxlB,IAAL,GAAYA,IAAZ;AACA,OAAKwlB,KAAL,GAAaA,KAAb;AACH;AAEL;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgoQ,cAAT,CAAwB57F,QAAxB,EAAkC;AAC9B,MAAI46F,iBAAiB,IAAI,CAACA,iBAAiB,CAACnhR,GAAlB,CAAsBohR,wBAAtB,EAAgD,KAAhD,CAA1B,EAAkF;AAC9E,UAAM,IAAI1iF,YAAJ,CAAiB;AAAI;AAArB,MAAgEj+C,SAAS,IAC3E,+EADE,CAAN;AAEH;;AACDuhI,EAAAA,yBAAyB;AACzBb,EAAAA,iBAAiB,GAAG56F,QAApB;AACA,MAAM2V,QAAQ,GAAG3V,QAAQ,CAACvmL,GAAT,CAAaoiR,WAAb,CAAjB;AACAC,EAAAA,uBAAuB,CAAC97F,QAAD,CAAvB;AACA,SAAO2V,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASomF,6BAAT,GAAuD;AAAA,MAAhBnlF,SAAgB,uEAAJ,EAAI;AACnD;AACA;AACA,MAAIgkF,iBAAJ,EACI,OAAOA,iBAAP,CAJ+C,CAKnD;;AACA,MAAM56F,QAAQ,GAAGg8F,sBAAsB,CAACplF,SAAD,CAAvC;AACAgkF,EAAAA,iBAAiB,GAAG56F,QAApB;AACAy7F,EAAAA,yBAAyB;AACzBK,EAAAA,uBAAuB,CAAC97F,QAAD,CAAvB;AACA,SAAOA,QAAP;AACH;;AACD,SAAS87F,uBAAT,CAAiC97F,QAAjC,EAA2C;AACvC,MAAMi8F,KAAK,GAAGj8F,QAAQ,CAACvmL,GAAT,CAAa+5Q,oBAAb,EAAmC,IAAnC,CAAd;;AACA,MAAIyI,KAAJ,EAAW;AACPA,IAAAA,KAAK,CAACnlR,OAAN,CAAc,UAACijB,IAAD;AAAA,aAAUA,IAAI,EAAd;AAAA,KAAd;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmiQ,4BAAT,CAAsCz4I,MAAtC,EAA8C;AAC1C,MAAQiyF,aAAR,GAA2DjyF,MAA3D,CAAQiyF,aAAR;AAAA,MAAuBymD,YAAvB,GAA2D14I,MAA3D,CAAuB04I,YAAvB;AAAA,MAAqCC,iBAArC,GAA2D34I,MAA3D,CAAqC24I,iBAArC;AACAn3H,EAAAA,WAAW,IAAI0xE,6BAA6B,CAACjB,aAAD,CAA5C;AACA,MAAM2mD,gBAAgB,GAAGN,6BAA6B,CAACK,iBAAD,CAAtD;AACA,MAAME,MAAM,GAAG,IAAI5G,MAAJ,CAAW6G,gBAAgB,EAA3B,CAAf;AACA,SAAOD,MAAM,CAACzF,GAAP,CAAW,YAAM;AACpB;AACA;AACA,QAAM2F,eAAe,IACjB;AAAE3lF,MAAAA,OAAO,EAAE6+E,MAAX;AAAmB3+E,MAAAA,QAAQ,EAAEulF;AAA7B,KADiB,yOAEbH,YAAY,IAAI,EAFH,EAArB;AAIA,QAAMM,WAAW,GAAGvd,yBAAyB,CAACsd,eAAD,EAAkBH,gBAAlB,EAAoC,sBAApC,CAA7C;AACA,QAAMK,gBAAgB,GAAGD,WAAW,CAAChjR,GAAZ,CAAgBw5N,YAAhB,EAA8B,IAA9B,CAAzB;;AACA,QAAIhuE,WAAW,IAAI,CAACy3H,gBAApB,EAAsC;AAClC,YAAM,IAAIvkF,YAAJ,CAAiB;AAAI;AAArB,QAAqE,2DAArE,CAAN;AACH;;AACD,QAAIwkF,mBAAJ;AACAL,IAAAA,MAAM,CAAChF,iBAAP,CAAyB,YAAM;AAC3BqF,MAAAA,mBAAmB,GAAGL,MAAM,CAACvpF,OAAP,CAAepvD,SAAf,CAAyB;AAC3CtlH,QAAAA,IAAI,EAAE,cAAC90B,KAAD,EAAW;AACbmzR,UAAAA,gBAAgB,CAACjkC,WAAjB,CAA6BlvP,KAA7B;AACH;AAH0C,OAAzB,CAAtB;AAKH,KAND;AAOA,WAAOqzR,4BAA4B,CAACF,gBAAD,EAAmBJ,MAAnB,EAA2B,YAAM;AAChE,UAAMO,UAAU,GAAGJ,WAAW,CAAChjR,GAAZ,CAAgBk5Q,qBAAhB,CAAnB;AACAkK,MAAAA,UAAU,CAACC,eAAX;AACA,aAAOD,UAAU,CAAChK,WAAX,CAAuB54P,IAAvB,CAA4B,YAAM;AACrC,YAAMk5J,QAAQ,GAAGspG,WAAW,CAAChjR,GAAZ,CAAgBuuK,SAAhB,EAA2BgoF,iBAA3B,CAAjB;AACAO,QAAAA,WAAW,CAACp9E,QAAQ,IAAI68E,iBAAb,CAAX;AACA,YAAM7V,MAAM,GAAGsiC,WAAW,CAAChjR,GAAZ,CAAgBsjR,cAAhB,CAAf,CAHqC,CAIrC;AACA;;AACA,YAAMC,eAAe,GAAG,SAAlBA,eAAkB;AAAA,iBAAM7iC,MAAM,CAAC/gG,OAAP,EAAN;AAAA,SAAxB;;AACA,YAAM6jI,0BAA0B,GAAGZ,gBAAgB,CAAC5iR,GAAjB,CAAqBqhR,0BAArB,EAAiD,IAAjD,CAAnC;AACAmC,QAAAA,0BAA0B,KAAK,IAA/B,IAAuCA,0BAA0B,KAAK,KAAK,CAA3E,GAA+E,KAAK,CAApF,GAAwFA,0BAA0B,CAACpiR,GAA3B,CAA+BmiR,eAA/B,CAAxF;AACA7iC,QAAAA,MAAM,CAACphG,SAAP,CAAiB,YAAM;AACnBkkI,UAAAA,0BAA0B,KAAK,IAA/B,IAAuCA,0BAA0B,KAAK,KAAK,CAA3E,GAA+E,KAAK,CAApF,GAAwFA,0BAA0B,CAAC9zH,MAA3B,CAAkC6zH,eAAlC,CAAxF;AACAL,UAAAA,mBAAmB,CAACt6I,WAApB;AACH,SAHD;AAIA83G,QAAAA,MAAM,CAACv4C,SAAP,CAAiB8zB,aAAjB;AACA,eAAOykB,MAAP;AACH,OAfM,CAAP;AAgBH,KAnBkC,CAAnC;AAoBH,GAxCM,CAAP;AAyCH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+iC,qBAAT,CAA+BC,qBAA/B,EAAsD/uR,IAAtD,EAA4E;AAAA,MAAhBwoM,SAAgB,uEAAJ,EAAI;AACxE,MAAMwmF,IAAI,uBAAgBhvR,IAAhB,CAAV;AACA,MAAM0kN,MAAM,GAAG,IAAIxrC,cAAJ,CAAmB81G,IAAnB,CAAf;AACA,SAAO,YAAyB;AAAA,QAAxBC,cAAwB,uEAAP,EAAO;AAC5B,QAAI1nF,QAAQ,GAAG2nF,WAAW,EAA1B;;AACA,QAAI,CAAC3nF,QAAD,IAAaA,QAAQ,CAAC3V,QAAT,CAAkBvmL,GAAlB,CAAsBohR,wBAAtB,EAAgD,KAAhD,CAAjB,EAAyE;AACrE,UAAMuB,iBAAiB,6OAChBxlF,SADgB,mOAEhBymF,cAFgB,IAGnB;AAAExmF,QAAAA,OAAO,EAAEic,MAAX;AAAmB/b,QAAAA,QAAQ,EAAE;AAA7B,OAHmB,EAAvB;;AAKA,UAAIomF,qBAAJ,EAA2B;AACvBA,QAAAA,qBAAqB,CAACf,iBAAD,CAArB;AACH,OAFD,MAGK;AACDR,QAAAA,cAAc,CAACI,sBAAsB,CAACI,iBAAD,EAAoBgB,IAApB,CAAvB,CAAd;AACH;AACJ;;AACD,WAAOG,cAAc,CAACzqE,MAAD,CAArB;AACH,GAhBD;AAiBH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASyqE,cAAT,CAAwBC,aAAxB,EAAuC;AACnC,MAAM7nF,QAAQ,GAAG2nF,WAAW,EAA5B;;AACA,MAAI,CAAC3nF,QAAL,EAAe;AACX,UAAM,IAAIwC,YAAJ,CAAiB;AAAI;AAArB,MAAgEj+C,SAAS,IAAI,qBAA7E,CAAN;AACH;;AACD,MAAI,CAAC,OAAOA,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACA,CAACy7C,QAAQ,CAAC3V,QAAT,CAAkBvmL,GAAlB,CAAsB+jR,aAAtB,EAAqC,IAArC,CADL,EACiD;AAC7C,UAAM,IAAIrlF,YAAJ,CAAiB;AAAI;AAArB,MAAgE,sFAAhE,CAAN;AACH;;AACD,SAAOxC,QAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASqmF,sBAAT,GAAsD;AAAA,MAAtBplF,SAAsB,uEAAV,EAAU;AAAA,MAANxoM,IAAM;AAClD,SAAOooM,QAAQ,CAAC7tL,MAAT,CAAgB;AACnBva,IAAAA,IAAI,EAAJA,IADmB;AAEnBwoM,IAAAA,SAAS,GACL;AAAEC,MAAAA,OAAO,EAAE02B,cAAX;AAA2Bx2B,MAAAA,QAAQ,EAAE;AAArC,KADK,EAEL;AAAEF,MAAAA,OAAO,EAAEikF,0BAAX;AAAuC/jF,MAAAA,QAAQ,EAAE,IAAIp8L,GAAJ,CAAQ,CAAC;AAAA,eAAMigR,iBAAiB,GAAG,IAA1B;AAAA,OAAD,CAAR;AAAjD,KAFK,yOAGFhkF,SAHE;AAFU,GAAhB,CAAP;AAQH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6mF,eAAT,GAA2B;AACvB,MAAI7sH,EAAJ;;AACA,GAACA,EAAE,GAAG0sH,WAAW,EAAjB,MAAyB,IAAzB,IAAiC1sH,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAACxX,OAAH,EAA1D;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASkkI,WAAT,GAAuB;AACnB,MAAI1sH,EAAJ;;AACA,SAAO,CAACA,EAAE,GAAGgqH,iBAAiB,KAAK,IAAtB,IAA8BA,iBAAiB,KAAK,KAAK,CAAzD,GAA6D,KAAK,CAAlE,GAAsEA,iBAAiB,CAACnhR,GAAlB,CAAsBoiR,WAAtB,CAA5E,MAAoH,IAApH,IAA4HjrH,EAAE,KAAK,KAAK,CAAxI,GAA4IA,EAA5I,GAAiJ,IAAxJ;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMirH;MAAAA;AACF;AACA,yBAAYxc,SAAZ,EAAuB;AAAA;;AACnB,WAAKA,SAAL,GAAiBA,SAAjB;AACA,WAAKqe,QAAL,GAAgB,EAAhB;AACA,WAAKC,iBAAL,GAAyB,EAAzB;AACA,WAAK/lI,UAAL,GAAkB,KAAlB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;;;aACI,gCAAuBojI,aAAvB,EAAsCv+L,OAAtC,EAA+C;AAAA;;AAC3C;AACA;AACA;AACA;AACA,YAAM6/L,MAAM,GAAGsB,SAAS,CAACnhM,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyC,KAAK,CAA9C,GAAkDA,OAAO,CAAC6/L,MAA3D,EAAmEC,gBAAgB,CAAC9/L,OAAD,CAAnF,CAAxB;AACA,YAAMm6G,SAAS,GAAG,CAAC;AAAEC,UAAAA,OAAO,EAAE6+E,MAAX;AAAmB3+E,UAAAA,QAAQ,EAAEulF;AAA7B,SAAD,CAAlB,CAN2C,CAO3C;AACA;AACA;AACA;;AACA,eAAOA,MAAM,CAACzF,GAAP,CAAW,YAAM;AACpB,cAAMgH,cAAc,GAAGrnF,QAAQ,CAAC7tL,MAAT,CAAgB;AAAEiuL,YAAAA,SAAS,EAAEA,SAAb;AAAwBnuL,YAAAA,MAAM,EAAE,OAAI,CAACu3K,QAArC;AAA+C5xL,YAAAA,IAAI,EAAE4sR,aAAa,CAAChc,UAAd,CAAyB5wQ;AAA9E,WAAhB,CAAvB;AACA,cAAM0vR,SAAS,GAAG9C,aAAa,CAACryQ,MAAd,CAAqBk1Q,cAArB,CAAlB;AACA,cAAMnB,gBAAgB,GAAGoB,SAAS,CAAC99F,QAAV,CAAmBvmL,GAAnB,CAAuBw5N,YAAvB,EAAqC,IAArC,CAAzB;;AACA,cAAI,CAACypD,gBAAL,EAAuB;AACnB,kBAAM,IAAIvkF,YAAJ,CAAiB;AAAI;AAArB,cAAqEj+C,SAAS,IAAI,+DAAlF,CAAN;AACH;;AACDoiI,UAAAA,MAAM,CAAChF,iBAAP,CAAyB,YAAM;AAC3B,gBAAM11I,YAAY,GAAG06I,MAAM,CAACvpF,OAAP,CAAepvD,SAAf,CAAyB;AAC1CtlH,cAAAA,IAAI,EAAE,cAAC90B,KAAD,EAAW;AACbmzR,gBAAAA,gBAAgB,CAACjkC,WAAjB,CAA6BlvP,KAA7B;AACH;AAHyC,aAAzB,CAArB;AAKAu0R,YAAAA,SAAS,CAAC/kI,SAAV,CAAoB,YAAM;AACtBhsJ,cAAAA,MAAM,CAAC,OAAI,CAAC2wR,QAAN,EAAgBI,SAAhB,CAAN;AACAl8I,cAAAA,YAAY,CAACS,WAAb;AACH,aAHD;AAIH,WAVD;AAWA,iBAAOu6I,4BAA4B,CAACF,gBAAD,EAAmBJ,MAAnB,EAA2B,YAAM;AAChE,gBAAMO,UAAU,GAAGiB,SAAS,CAAC99F,QAAV,CAAmBvmL,GAAnB,CAAuBk5Q,qBAAvB,CAAnB;AACAkK,YAAAA,UAAU,CAACC,eAAX;AACA,mBAAOD,UAAU,CAAChK,WAAX,CAAuB54P,IAAvB,CAA4B,YAAM;AACrC;AACA,kBAAMk5J,QAAQ,GAAG2qG,SAAS,CAAC99F,QAAV,CAAmBvmL,GAAnB,CAAuBuuK,SAAvB,EAAkCgoF,iBAAlC,CAAjB;AACAO,cAAAA,WAAW,CAACp9E,QAAQ,IAAI68E,iBAAb,CAAX;;AACA,qBAAI,CAAC+tB,kBAAL,CAAwBD,SAAxB;;AACA,qBAAOA,SAAP;AACH,aANM,CAAP;AAOH,WAVkC,CAAnC;AAWH,SA7BM,CAAP;AA8BH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,yBAAgB9e,UAAhB,EAAkD;AAAA;;AAAA,YAAtBkc,eAAsB,uEAAJ,EAAI;AAC9C,YAAMz+L,OAAO,GAAGuhM,cAAc,CAAC,EAAD,EAAK9C,eAAL,CAA9B;AACA,eAAOH,sBAAsB,CAAC,KAAK/6F,QAAN,EAAgBvjG,OAAhB,EAAyBuiL,UAAzB,CAAtB,CACF/kP,IADE,CACG,UAAA+gQ,aAAa;AAAA,iBAAI,OAAI,CAACiD,sBAAL,CAA4BjD,aAA5B,EAA2Cv+L,OAA3C,CAAJ;AAAA,SADhB,CAAP;AAEH;;;aACD,4BAAmBqhM,SAAnB,EAA8B;AAC1B,YAAM3jC,MAAM,GAAG2jC,SAAS,CAAC99F,QAAV,CAAmBvmL,GAAnB,CAAuBsjR,cAAvB,CAAf;;AACA,YAAIe,SAAS,CAAClf,oBAAV,CAA+B97Q,MAA/B,GAAwC,CAA5C,EAA+C;AAC3Cg7R,UAAAA,SAAS,CAAClf,oBAAV,CAA+B9nQ,OAA/B,CAAuC,UAAA1T,CAAC;AAAA,mBAAI+2P,MAAM,CAACv4C,SAAP,CAAiBx+M,CAAjB,CAAJ;AAAA,WAAxC;AACH,SAFD,MAGK,IAAI06R,SAAS,CAAC71E,QAAV,CAAmBi2E,aAAvB,EAAsC;AACvCJ,UAAAA,SAAS,CAAC71E,QAAV,CAAmBi2E,aAAnB,CAAiC/jC,MAAjC;AACH,SAFI,MAGA;AACD,gBAAM,IAAIhiD,YAAJ,CAAiB;AAAI;AAArB,YAA4Ej+C,SAAS,IACvF,qBAAcroI,SAAS,CAACisQ,SAAS,CAAC71E,QAAV,CAAmB1uM,WAApB,CAAvB,wJADE,CAAN;AAIH;;AACD,aAAKmkR,QAAL,CAAc13R,IAAd,CAAmB83R,SAAnB;AACH;AACD;AACJ;AACA;;;;aACI,mBAAUnyQ,QAAV,EAAoB;AAChB,aAAKgyQ,iBAAL,CAAuB33R,IAAvB,CAA4B2lB,QAA5B;AACH;AACD;AACJ;AACA;AACA;;;;WACI,eAAe;AACX,eAAO,KAAK0zP,SAAZ;AACH;AACD;AACJ;AACA;AACA;;;;aACI,mBAAU;AACN,YAAI,KAAKznH,UAAT,EAAqB;AACjB,gBAAM,IAAIugD,YAAJ,CAAiB;AAAI;AAArB,YAAwEj+C,SAAS,IAAI,0CAArF,CAAN;AACH;;AACD,aAAKwjI,QAAL,CAAcz7R,KAAd,GAAsB6U,OAAtB,CAA8B,UAAAoiF,MAAM;AAAA,iBAAIA,MAAM,CAACkgE,OAAP,EAAJ;AAAA,SAApC;;AACA,aAAKukI,iBAAL,CAAuB7mR,OAAvB,CAA+B,UAAAq1D,QAAQ;AAAA,iBAAIA,QAAQ,EAAZ;AAAA,SAAvC;;AACA,YAAMgyN,gBAAgB,GAAG,KAAK9e,SAAL,CAAe5lQ,GAAf,CAAmBqhR,0BAAnB,EAA+C,IAA/C,CAAzB;;AACA,YAAIqD,gBAAJ,EAAsB;AAClBA,UAAAA,gBAAgB,CAACrnR,OAAjB,CAAyB,UAAAq1D,QAAQ;AAAA,mBAAIA,QAAQ,EAAZ;AAAA,WAAjC;AACAgyN,UAAAA,gBAAgB,CAAC/qR,KAAjB;AACH;;AACD,aAAKwkJ,UAAL,GAAkB,IAAlB;AACH;AACD;AACJ;AACA;;;;WACI,eAAgB;AACZ,eAAO,KAAKA,UAAZ;AACH;;;;;;AAELikI,EAAAA,WAAW,CAACh7H,IAAZ,GAAmB,SAASu9H,mBAAT,CAA6B11R,CAA7B,EAAgC;AAAE,WAAO,KAAKA,CAAC,IAAImzR,WAAV,EAAuBt0G,QAAQ,CAACivB,QAAD,CAA/B,CAAP;AAAoD,GAAzG;;AACAqlF,EAAAA,WAAW,CAAC/6H,KAAZ,GAAoB,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAEioQ,WAAT;AAAsBrzQ,IAAAA,OAAO,EAAEqzQ,WAAW,CAACh7H,IAA3C;AAAiD8pC,IAAAA,UAAU,EAAE;AAA7D,GAAD,CAApD;SAnIMkxF;;;AAoIN;AAAA,CAAC,YAAY;AACT,GAAC,OAAO3hI,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAACsa,WAAD,EAAc,CAAC;AAC1E5sR,IAAAA,IAAI,EAAE8qJ,UADoE;AAE1E5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFoE,GAAD,CAAd,EAG3D,YAAY;AAAE,WAAO,CAAC;AAAE17L,MAAAA,IAAI,EAAEunM;AAAR,KAAD,CAAP;AAA8B,GAHe,EAGb,IAHa,CAAnE;AAIH,CALD,KAMA;AACA;AACA;;;AACA,SAAS+lF,gBAAT,CAA0B9/L,OAA1B,EAAmC;AAC/B,SAAO;AACHk5L,IAAAA,oBAAoB,EAAE,OAAOz7H,SAAP,KAAqB,WAArB,GAAmC,KAAnC,GAA2C,CAAC,CAACA,SADhE;AAEH07H,IAAAA,kCAAkC,EAAE,CAAC,EAAEn5L,OAAO,IAAIA,OAAO,CAAC4hM,qBAArB,CAAD,IAAgD,KAFjF;AAGHxI,IAAAA,gCAAgC,EAAE,CAAC,EAAEp5L,OAAO,IAAIA,OAAO,CAAC6hM,mBAArB,CAAD,IAA8C;AAH7E,GAAP;AAKH;;AACD,SAASV,SAAT,CAAmBW,WAAnB,EAAgC9hM,OAAhC,EAAyC;AACrC,MAAI6/L,MAAJ;;AACA,MAAIiC,WAAW,KAAK,MAApB,EAA4B;AACxBjC,IAAAA,MAAM,GAAG,IAAI9D,UAAJ,EAAT;AACH,GAFD,MAGK;AACD8D,IAAAA,MAAM,GAAG,CAACiC,WAAW,KAAK,SAAhB,GAA4BlkQ,SAA5B,GAAwCkkQ,WAAzC,KAAyD,IAAI7I,MAAJ,CAAWj5L,OAAX,CAAlE;AACH;;AACD,SAAO6/L,MAAP;AACH;;AACD,SAASM,4BAAT,CAAsCvjC,YAAtC,EAAoDijC,MAApD,EAA4D3wQ,QAA5D,EAAsE;AAClE,MAAI;AACA,QAAMtR,MAAM,GAAGsR,QAAQ,EAAvB;;AACA,QAAIsnI,SAAS,CAAC54I,MAAD,CAAb,EAAuB;AACnB,aAAOA,MAAM,CAAC64Q,KAAP,CAAa,UAACzkR,CAAD,EAAO;AACvB6tR,QAAAA,MAAM,CAAChF,iBAAP,CAAyB;AAAA,iBAAMj+B,YAAY,CAACZ,WAAb,CAAyBhqP,CAAzB,CAAN;AAAA,SAAzB,EADuB,CAEvB;;AACA,cAAMA,CAAN;AACH,OAJM,CAAP;AAKH;;AACD,WAAO4L,MAAP;AACH,GAVD,CAWA,OAAO5L,CAAP,EAAU;AACN6tR,IAAAA,MAAM,CAAChF,iBAAP,CAAyB;AAAA,aAAMj+B,YAAY,CAACZ,WAAb,CAAyBhqP,CAAzB,CAAN;AAAA,KAAzB,EADM,CAEN;;AACA,UAAMA,CAAN;AACH;AACJ;;AACD,SAASuvR,cAAT,CAAwBhrE,GAAxB,EAA6Bm0B,IAA7B,EAAmC;AAC/B,MAAIplP,KAAK,CAAC0D,OAAN,CAAc0hP,IAAd,CAAJ,EAAyB;AACrBn0B,IAAAA,GAAG,GAAGm0B,IAAI,CAAC1jP,MAAL,CAAYu6R,cAAZ,EAA4BhrE,GAA5B,CAAN;AACH,GAFD,MAGK;AACDA,IAAAA,GAAG,GAAG3tM,MAAM,CAACC,MAAP,CAAcD,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB0tM,GAAlB,CAAd,EAAsCm0B,IAAtC,CAAN;AACH;;AACD,SAAOn0B,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM+pE;MAAAA;AACF;AACA,4BAAYyB,KAAZ,EAAmBnf,SAAnB,EAA8Bof,iBAA9B,EAAiD;AAAA;;AAAA;;AAC7C,WAAKD,KAAL,GAAaA,KAAb;AACA,WAAKnf,SAAL,GAAiBA,SAAjB;AACA,WAAKof,iBAAL,GAAyBA,iBAAzB;AACA;;AACA,WAAKC,mBAAL,GAA2B,EAA3B;AACA,WAAKC,MAAL,GAAc,EAAd;AACA,WAAKC,YAAL,GAAoB,KAApB;AACA,WAAKC,OAAL,GAAe,IAAf;AACA,WAAKjnI,UAAL,GAAkB,KAAlB;AACA,WAAK+lI,iBAAL,GAAyB,EAAzB;AACA;AACR;AACA;AACA;;AACQ,WAAKmB,cAAL,GAAsB,EAAtB;AACA;AACR;AACA;;AACQ,WAAKt8L,UAAL,GAAkB,EAAlB;AACA,WAAKu8L,6BAAL,GAAqC,KAAKP,KAAL,CAAWtI,gBAAX,CAA4BvyI,SAA5B,CAAsC;AACvEtlH,QAAAA,IAAI,EAAE,gBAAM;AACR,iBAAI,CAACmgQ,KAAL,CAAW3H,GAAX,CAAe,YAAM;AACjB,mBAAI,CAAC7qR,IAAL;AACH,WAFD;AAGH;AALsE,OAAtC,CAArC;AAOA,UAAMgzR,iBAAiB,GAAG,IAAIt7I,6CAAJ,CAAe,UAACb,QAAD,EAAc;AACnD,eAAI,CAACg8I,OAAL,GAAe,OAAI,CAACL,KAAL,CAAWxI,QAAX,IAAuB,CAAC,OAAI,CAACwI,KAAL,CAAW1I,oBAAnC,IACX,CAAC,OAAI,CAAC0I,KAAL,CAAWzI,oBADhB;;AAEA,eAAI,CAACyI,KAAL,CAAWlH,iBAAX,CAA6B,YAAM;AAC/Bz0I,UAAAA,QAAQ,CAACxkH,IAAT,CAAc,OAAI,CAACwgQ,OAAnB;AACAh8I,UAAAA,QAAQ,CAACC,QAAT;AACH,SAHD;AAIH,OAPyB,CAA1B;AAQA,UAAMkzI,QAAQ,GAAG,IAAItyI,6CAAJ,CAAe,UAACb,QAAD,EAAc;AAC1C;AACA;AACA,YAAIo8I,SAAJ;;AACA,eAAI,CAACT,KAAL,CAAWlH,iBAAX,CAA6B,YAAM;AAC/B2H,UAAAA,SAAS,GAAG,OAAI,CAACT,KAAL,CAAWrI,QAAX,CAAoBxyI,SAApB,CAA8B,YAAM;AAC5C+xI,YAAAA,MAAM,CAAC6D,sBAAP,GAD4C,CAE5C;AACA;;AACAniI,YAAAA,iBAAiB,CAAC,YAAM;AACpB,kBAAI,CAAC,OAAI,CAACynI,OAAN,IAAiB,CAAC,OAAI,CAACL,KAAL,CAAW1I,oBAA7B,IACA,CAAC,OAAI,CAAC0I,KAAL,CAAWzI,oBADhB,EACsC;AAClC,uBAAI,CAAC8I,OAAL,GAAe,IAAf;AACAh8I,gBAAAA,QAAQ,CAACxkH,IAAT,CAAc,IAAd;AACH;AACJ,aANgB,CAAjB;AAOH,WAXW,CAAZ;AAYH,SAbD;;AAcA,YAAM6gQ,WAAW,GAAG,OAAI,CAACV,KAAL,CAAWvI,UAAX,CAAsBtyI,SAAtB,CAAgC,YAAM;AACtD+xI,UAAAA,MAAM,CAACyJ,mBAAP;;AACA,cAAI,OAAI,CAACN,OAAT,EAAkB;AACd,mBAAI,CAACA,OAAL,GAAe,KAAf;;AACA,mBAAI,CAACL,KAAL,CAAWlH,iBAAX,CAA6B,YAAM;AAC/Bz0I,cAAAA,QAAQ,CAACxkH,IAAT,CAAc,KAAd;AACH,aAFD;AAGH;AACJ,SARmB,CAApB;;AASA,eAAO,YAAM;AACT4gQ,UAAAA,SAAS,CAAC58I,WAAV;AACA68I,UAAAA,WAAW,CAAC78I,WAAZ;AACH,SAHD;AAIH,OA/BgB,CAAjB;AAgCA,WAAK2zI,QAAL,GACI1+E,4CAAO,CAAC0nF,iBAAD,EAAoBhJ,QAAQ,CAACzrI,IAAT,CAAciG,sDAAK,EAAnB,CAApB,CADX;AAEH;AACD;AACJ;AACA;;;;;WACI,eAAgB;AACZ,eAAO,KAAKoH,UAAZ;AACH;AACD;AACJ;AACA;;;;WACI,eAAe;AACX,eAAO,KAAKynH,SAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,mBAAU+f,kBAAV,EAA8BpkC,kBAA9B,EAAkD;AAAA;;AAC9C/1F,QAAAA,WAAW,IAAI,KAAKo6H,eAAL,EAAf;AACA,YAAMjZ,kBAAkB,GAAGgZ,kBAAkB,YAAY1vD,kBAAzD;;AACA,YAAMmtD,UAAU,GAAG,KAAKxd,SAAL,CAAe5lQ,GAAf,CAAmBk5Q,qBAAnB,CAAnB;;AACA,YAAI,CAACkK,UAAU,CAACrvK,IAAhB,EAAsB;AAClB,cAAM+xF,UAAU,GAAG,CAAC6mE,kBAAD,IAAuBoG,YAAY,CAAC4S,kBAAD,CAAtD;AACA,cAAM59F,YAAY,GAAG,4EAChB+d,UAAU,GAAG,EAAH,GACP,yEAFa,CAArB;AAGA,gBAAM,IAAIpH,YAAJ,CAAiB;AAAI;AAArB,YAA8ElzC,WAAW,IAAIu8B,YAA7F,CAAN;AACH;;AACD,YAAI6kF,gBAAJ;;AACA,YAAID,kBAAJ,EAAwB;AACpBC,UAAAA,gBAAgB,GAAG+Y,kBAAnB;AACH,SAFD,MAGK;AACD,cAAMxrJ,QAAQ,GAAG,KAAKyrI,SAAL,CAAe5lQ,GAAf,CAAmBs2N,0BAAnB,CAAjB;;AACAs2C,UAAAA,gBAAgB,GAAGzyI,QAAQ,CAAC0rJ,uBAAT,CAAiCF,kBAAjC,CAAnB;AACH;;AACD,aAAKN,cAAL,CAAoB94R,IAApB,CAAyBqgR,gBAAgB,CAACvrB,aAA1C,EAnB8C,CAoB9C;;AACA,YAAMn7D,QAAQ,GAAGo7D,eAAe,CAACsrB,gBAAD,CAAf,GAAoChsP,SAApC,GAAgD,KAAKglP,SAAL,CAAe5lQ,GAAf,CAAmBglQ,aAAnB,CAAjE;AACA,YAAM8gB,cAAc,GAAGvkC,kBAAkB,IAAIqrB,gBAAgB,CAAC3iN,QAA9D;AACA,YAAM87N,OAAO,GAAGnZ,gBAAgB,CAAC19P,MAAjB,CAAwB6tL,QAAQ,CAACw5B,IAAjC,EAAuC,EAAvC,EAA2CuvD,cAA3C,EAA2D5/F,QAA3D,CAAhB;AACA,YAAMV,aAAa,GAAGugG,OAAO,CAACxpM,QAAR,CAAiBipG,aAAvC;AACA,YAAMs7F,WAAW,GAAGiF,OAAO,CAACx/F,QAAR,CAAiBvmL,GAAjB,CAAqBg/Q,WAArB,EAAkC,IAAlC,CAApB;AACA8B,QAAAA,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,WAAW,CAACP,mBAAZ,CAAgC/6F,aAAhC,CAA1D;AACAugG,QAAAA,OAAO,CAACzmI,SAAR,CAAkB,YAAM;AACpB,iBAAI,CAACiiF,UAAL,CAAgBwkD,OAAO,CAAC/1E,QAAxB;;AACA18M,UAAAA,MAAM,CAAC,OAAI,CAACy1F,UAAN,EAAkBg9L,OAAlB,CAAN;AACAjF,UAAAA,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,WAAW,CAACN,qBAAZ,CAAkCh7F,aAAlC,CAA1D;AACH,SAJD;;AAKA,aAAKwgG,cAAL,CAAoBD,OAApB;;AACA,YAAI,OAAOtlI,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;AAC/C,cAAMg5E,QAAQ,GAAG,KAAKmsC,SAAL,CAAe5lQ,GAAf,CAAmBm6Q,OAAnB,CAAjB;;AACA1gD,UAAAA,QAAQ,CAACrqO,GAAT;AACH;;AACD,eAAO22R,OAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,gBAAO;AAAA;;AACHv6H,QAAAA,WAAW,IAAI,KAAKo6H,eAAL,EAAf;;AACA,YAAI,KAAKT,YAAT,EAAuB;AACnB,gBAAM,IAAIzmF,YAAJ,CAAiB;AAAI;AAArB,YAA4Ej+C,SAAS,IAAI,2CAAzF,CAAN;AACH;;AACD,YAAI;AACA,eAAK0kI,YAAL,GAAoB,IAApB;;AADA,oQAEiB,KAAKD,MAFtB;AAAA;;AAAA;AAEA,sEAA8B;AAAA,kBAArBrpR,MAAqB;;AAC1BA,cAAAA,MAAI,CAACssP,aAAL;AACH;AAJD;AAAA;AAAA;AAAA;AAAA;;AAKA,cAAI,OAAO1nG,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;AAAA,sQAC9B,KAAKykI,MADyB;AAAA;;AAAA;AAC/C,wEAA8B;AAAA,oBAArBrpR,IAAqB;AAC1BA,gBAAAA,IAAI,CAACoqR,cAAL;AACH;AAH8C;AAAA;AAAA;AAAA;AAAA;AAIlD;AACJ,SAVD,CAWA,OAAOjxR,CAAP,EAAU;AACN;AACA,eAAK+vR,KAAL,CAAWlH,iBAAX,CAA6B;AAAA,mBAAM,OAAI,CAACmH,iBAAL,CAAuBhmC,WAAvB,CAAmChqP,CAAnC,CAAN;AAAA,WAA7B;AACH,SAdD,SAeQ;AACJ,eAAKmwR,YAAL,GAAoB,KAApB;AACH;AACJ;AACD;AACJ;AACA;AACA;AACA;;;;aACI,oBAAWz8F,OAAX,EAAoB;AAChBl9B,QAAAA,WAAW,IAAI,KAAKo6H,eAAL,EAAf;AACA,YAAM/pR,IAAI,GAAG6sL,OAAb;;AACA,aAAKw8F,MAAL,CAAY34R,IAAZ,CAAiBsP,IAAjB;;AACAA,QAAAA,IAAI,CAACqqR,cAAL,CAAoB,IAApB;AACH;AACD;AACJ;AACA;;;;aACI,oBAAWx9F,OAAX,EAAoB;AAChBl9B,QAAAA,WAAW,IAAI,KAAKo6H,eAAL,EAAf;AACA,YAAM/pR,IAAI,GAAG6sL,OAAb;AACAp1L,QAAAA,MAAM,CAAC,KAAK4xR,MAAN,EAAcrpR,IAAd,CAAN;AACAA,QAAAA,IAAI,CAACsqR,gBAAL;AACH;;;aACD,wBAAerZ,YAAf,EAA6B;AACzB,aAAKsZ,UAAL,CAAgBtZ,YAAY,CAAC98D,QAA7B;AACA,aAAKz9M,IAAL;AACA,aAAKw2F,UAAL,CAAgBx8F,IAAhB,CAAqBugR,YAArB,EAHyB,CAIzB;;AACA,YAAM10Q,SAAS,GAAG,KAAKwtQ,SAAL,CAAe5lQ,GAAf,CAAmBg6Q,sBAAnB,EAA2C,EAA3C,EAA+CxnQ,MAA/C,CAAsD,KAAKyyQ,mBAA3D,CAAlB;;AACA7sR,QAAAA,SAAS,CAACiF,OAAV,CAAkB,UAACq1D,QAAD;AAAA,iBAAcA,QAAQ,CAACo6M,YAAD,CAAtB;AAAA,SAAlB;AACH;AACD;;;;aACA,uBAAc;AACV,YAAI,KAAK3uH,UAAT,EACI;;AACJ,YAAI;AACA;AACA,eAAK+lI,iBAAL,CAAuB7mR,OAAvB,CAA+B,UAAAq1D,QAAQ;AAAA,mBAAIA,QAAQ,EAAZ;AAAA,WAAvC,EAFA,CAGA;;;AACA,eAAKwyN,MAAL,CAAY18R,KAAZ,GAAoB6U,OAApB,CAA4B,UAACxB,IAAD;AAAA,mBAAUA,IAAI,CAAC8jJ,OAAL,EAAV;AAAA,WAA5B;;AACA,eAAK2lI,6BAAL,CAAmC18I,WAAnC;AACH,SAND,SAOQ;AACJ;AACA,eAAKuV,UAAL,GAAkB,IAAlB,CAFI,CAGJ;;AACA,eAAK+mI,MAAL,GAAc,EAAd;AACA,eAAKD,mBAAL,GAA2B,EAA3B;AACA,eAAKf,iBAAL,GAAyB,EAAzB;AACH;AACJ;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;aACI,mBAAUhyQ,QAAV,EAAoB;AAAA;;AAChBs5I,QAAAA,WAAW,IAAI,KAAKo6H,eAAL,EAAf;;AACA,aAAK1B,iBAAL,CAAuB33R,IAAvB,CAA4B2lB,QAA5B;;AACA,eAAO;AAAA,iBAAM5e,MAAM,CAAC,OAAI,CAAC4wR,iBAAN,EAAyBhyQ,QAAzB,CAAZ;AAAA,SAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;;aACI,mBAAU;AACN,YAAI,KAAKisI,UAAT,EAAqB;AACjB,gBAAM,IAAIugD,YAAJ,CAAiB;AAAI;AAArB,YAA+Ej+C,SAAS,IAAI,mEAA5F,CAAN;AACH;;AACD,YAAM8lC,QAAQ,GAAG,KAAKq/E,SAAtB,CAJM,CAKN;;AACA,YAAIr/E,QAAQ,CAAC5mC,OAAT,IAAoB,CAAC4mC,QAAQ,CAAC3kB,SAAlC,EAA6C;AACzC;AACA;AACA2kB,UAAAA,QAAQ,CAAC5mC,OAAT;AACH;AACJ;AACD;AACJ;AACA;;;;WACI,eAAgB;AACZ,eAAO,KAAKulI,MAAL,CAAY77R,MAAnB;AACH;;;aACD,2BAAkB;AACd,YAAImiK,WAAW,IAAI,KAAKrN,UAAxB,EAAoC;AAChCx5D,UAAAA,OAAO,CAACC,IAAR,CAAa+5G,kBAAkB,CAAC;AAAI;AAAL,YAA+D,mEAA/D,CAA/B;AACH;AACJ;;;;;;AAEL2kF,EAAAA,cAAc,CAACl8H,IAAf,GAAsB,SAASi/H,sBAAT,CAAgCp3R,CAAhC,EAAmC;AAAE,WAAO,KAAKA,CAAC,IAAIq0R,cAAV,EAA0Bx1G,QAAQ,CAACmuG,MAAD,CAAlC,EAA4CnuG,QAAQ,CAACqmD,mBAAD,CAApD,EAA2ErmD,QAAQ,CAAC0rD,YAAD,CAAnF,CAAP;AAA4G,GAAvK;;AACA8pD,EAAAA,cAAc,CAACj8H,KAAf,GAAuB,aAAcmoB,kBAAkB,CAAC;AAAEr1J,IAAAA,KAAK,EAAEmpQ,cAAT;AAAyBv0Q,IAAAA,OAAO,EAAEu0Q,cAAc,CAACl8H,IAAjD;AAAuD8pC,IAAAA,UAAU,EAAE;AAAnE,GAAD,CAAvD;SA7RMoyF;;;AA8RN;AAAA,CAAC,YAAY;AACT,GAAC,OAAO7iI,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KAAmDqnH,gBAAgB,CAACwb,cAAD,EAAiB,CAAC;AAC7E9tR,IAAAA,IAAI,EAAE8qJ,UADuE;AAE7E5mJ,IAAAA,IAAI,EAAE,CAAC;AAAEw3L,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFuE,GAAD,CAAjB,EAG3D,YAAY;AAAE,WAAO,CAAC;AAAE17L,MAAAA,IAAI,EAAEymR;AAAR,KAAD,EAAmB;AAAEzmR,MAAAA,IAAI,EAAE2+N;AAAR,KAAnB,EAAkD;AAAE3+N,MAAAA,IAAI,EAAEgkO;AAAR,KAAlD,CAAP;AAAmF,GAHtC,EAGwC,IAHxC,CAAnE;AAIH,CALD;;AAMA,SAASlmO,MAAT,CAAgBg5D,IAAhB,EAAsBwlI,EAAtB,EAA0B;AACtB,MAAMp0L,KAAK,GAAG4uD,IAAI,CAACj4C,OAAL,CAAay9K,EAAb,CAAd;;AACA,MAAIp0L,KAAK,GAAG,CAAC,CAAb,EAAgB;AACZ4uD,IAAAA,IAAI,CAACzjB,MAAL,CAAYnrC,KAAZ,EAAmB,CAAnB;AACH;AACJ;;AACD,SAASgkR,YAAT,CAAsBhoR,IAAtB,EAA4B;AACxB,OAAK,IAAIpP,CAAC,GAAGoP,IAAI,CAACrQ,MAAL,GAAc,CAA3B,EAA8BiB,CAAC,IAAI,CAAnC,EAAsCA,CAAC,EAAvC,EAA2C;AACvC,QAAIoP,IAAI,CAACpP,CAAD,CAAJ,KAAYs2B,SAAhB,EAA2B;AACvB,aAAOlnB,IAAI,CAACpP,CAAD,CAAX;AACH;AACJ;;AACD,SAAOs2B,SAAP;AACH;;AACD,SAASghQ,YAAT,CAAsB9rL,KAAtB,EAA6B;AACzB,MAAMl1F,MAAM,GAAG,EAAf;AACAk1F,EAAAA,KAAK,CAACz4F,OAAN,CAAc,UAACw+I,IAAD;AAAA,WAAUA,IAAI,IAAIj7I,MAAM,CAACrU,IAAP,OAAAqU,MAAM,kOAASi7I,IAAT,EAAxB;AAAA,GAAd;AACA,SAAOj7I,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAI0lR,QAAQ,GAAG,IAAf;AACA,IAAIC,cAAc,GAAG,KAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT,GAAqB;AACjBD,EAAAA,cAAc,GAAG,IAAjB;AACA,SAAOD,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,cAAT,GAA0B;AACtB,MAAIF,cAAJ,EAAoB;AAChB,UAAM,IAAIvzQ,KAAJ,CAAU,+CAAV,CAAN;AACH,GAHqB,CAItB;AACA;;;AACA,MAAI,OAAOytI,SAAP,KAAqB7/H,SAArB,IAAkC,CAAC,CAAC6/H,SAAxC,EAAmD;AAC/CwiD,IAAAA,OAAO,CAAC,WAAD,CAAP,GAAuB,KAAvB;AACH;;AACDqjF,EAAAA,QAAQ,GAAG,KAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,gBAAT,CAA0B9wQ,EAA1B,EAA8B;AAC1B,MAAMpgB,IAAI,GAAGk0N,yBAAyB,CAAC9zM,EAAD,CAAtC;AACA,MAAI,CAACpgB,IAAL,EACI,MAAMmxR,aAAa,CAAC/wQ,EAAD,CAAnB;AACJ,SAAO,IAAI0vP,eAAJ,CAAoB9vQ,IAApB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoxR,eAAT,CAAyBhxQ,EAAzB,EAA6B;AACzB,MAAMpgB,IAAI,GAAGk0N,yBAAyB,CAAC9zM,EAAD,CAAtC;AACA,MAAI,CAACpgB,IAAL,EACI,MAAMmxR,aAAa,CAAC/wQ,EAAD,CAAnB;AACJ,SAAOpgB,IAAP;AACH;;AACD,SAASmxR,aAAT,CAAuB/wQ,EAAvB,EAA2B;AACvB,SAAO,IAAI5C,KAAJ,6BAA+B4C,EAA/B,aAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMk4K;MAAAA;;;;AAEN;AACA;AACA;AACA;AACAA,EAAAA,iBAAiB,CAAC4X,iBAAlB,GAAsCmhF,uBAAtC;AACA;;SAPM/4F;;;AAQN,SAAS+4F,uBAAT,CAAiCjqL,KAAjC,EAAwC;AACpC,SAAOkqL,aAAa,CAACh1E,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,EAAgC,CAAC50G,KAAK,GAAG;AAAG;AAAZ,QAAmD;AAAG;AAAtF,GAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkqL,aAAT,CAAuBrjF,KAAvB,EAA8BoI,KAA9B,EAAqCk7E,MAArC,EAA6C;AACzC,MAAIv7E,eAAe,CAAC/H,KAAD,CAAf,IAA0B,CAACsjF,MAA/B,EAAuC;AACnC;AACA;AACA,QAAMhrD,aAAa,GAAGjsB,wBAAwB,CAACrM,KAAK,CAAC/lM,KAAP,EAAcmuM,KAAd,CAA9C,CAHmC,CAGiC;;AACpE,WAAO,IAAIw0C,SAAJ,CAActkB,aAAd,EAA6BA,aAA7B,CAAP;AACH,GALD,MAMK,IAAIt4B,KAAK,CAACjuM,IAAN,IAAc;AAAE;AAAF,IAA6B;AAAG;AAAhC,IAA+D;AAAG;AAAhF,GAAJ,EAA0G;AAC3G;AACA;AACA,QAAMwxR,iBAAiB,GAAGn7E,KAAK,CAACjB,0BAAD,CAA/B,CAH2G,CAG9C;;AAC7D,WAAO,IAAIy1C,SAAJ,CAAc2mC,iBAAd,EAAiCn7E,KAAjC,CAAP;AACH;;AACD,SAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMo7E;;;;;;;;;;;;EAAgBn5F;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMo5F;;;;;;;;;;;;EAAwBD;AAG9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIE,6BAA6B,GAAG,EAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;IACMC,4PACF,4BAAYzyR,IAAZ,EAAkBud,QAAlB,EAA4B;AAAA;;AACxB,OAAKvd,IAAL,GAA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2I,iBAAT,CAA2B1sS,KAA3B,EAAkC;AAC9B;AACJ;AACA;AACA;AACA;AACI,SAAOA,KAAK,IAAI,IAAT,IACF,CAAC,OAAOA,KAAP,KAAiB,QAAjB,IAA6BxC,KAAK,CAAC0D,OAAN,CAAclB,KAAd,CAA9B,KAAuDA,KAAK,CAACzB,MAAN,KAAiB,CAD7E;AAEH;;AACD,SAASouS,cAAT,CAAwB3sS,KAAxB,EAA+B;AAC3B;AACA,SAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAK,CAACzB,MAAb,KAAwB,QAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMquS,aAAa,gBAAG,IAAI7pH,0DAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM8pH,mBAAmB,gBAAG,IAAI9pH,0DAAJ,CAAmB,mBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM+pH,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC;;;;;;;;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,iBAAW9sS,IAAX,EAAgB;AACZ,aAAO+sS,YAAY,CAAC/sS,IAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,aAAWC,IAAX,EAAgB;AACZ,aAAO+sS,YAAY,CAAC/sS,IAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,kBAAgBgtS,OAAhB,EAAyB;AACrB,aAAOC,iBAAiB,CAACD,OAAD,CAAxB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,sBAAoBA,OAApB,EAA6B;AACzB,aAAOE,qBAAqB,CAACF,OAAD,CAA5B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,eAAaA,OAAb,EAAsB;AAClB,aAAOG,cAAc,CAACH,OAAD,CAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,mBAAiBI,UAAjB,EAA4B;AACxB,aAAOC,kBAAkB,CAACD,UAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,mBAAiBj2K,UAAjB,EAA4B;AACxB,aAAOm2K,kBAAkB,CAACn2K,UAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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UAAnB,EAA+B;AAC3B,WAAKqB,mBAAL,GAA2BrB,UAA3B;AACA,WAAKsC,yBAAL,GAAiC2C,sBAAsB,CAACjF,UAAD,CAAvD;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,uBAAcA,UAAd,EAA0B;AACtB,WAAKiG,aAAL,CAAmBzE,cAAa,CAACxB,UAAD,EAAa,KAAKmB,cAAlB,CAAhC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,4BAAmBnB,UAAnB,EAA+B;AAC3B,WAAKkG,kBAAL,CAAwB1E,cAAa,CAACxB,UAAD,EAAa,KAAKqB,mBAAlB,CAArC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,0BAAiBrB,UAAjB,EAA6B;AACzB,WAAKiG,aAAL,CAAmBtE,iBAAgB,CAAC3B,UAAD,EAAa,KAAKmB,cAAlB,CAAnC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,+BAAsBnB,UAAtB,EAAkC;AAC9B,WAAKkG,kBAAL,CAAwBvE,iBAAgB,CAAC3B,UAAD,EAAa,KAAKqB,mBAAlB,CAAxC;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,sBAAab,SAAb,EAAwB;AACpB,aAAOe,aAAY,CAAC,KAAKJ,cAAN,EAAsBX,SAAtB,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,2BAAkBA,SAAlB,EAA6B;AACzB,aAAOe,aAAY,CAAC,KAAKF,mBAAN,EAA2Bb,SAA3B,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,2BAAkB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMosS;;;;;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,qBAAYlD,QAAZ,EAAsBT,eAAtB,EAAuCI,cAAvC,EAAuD;AAAA;;AAAA;;AACnD,gCAAML,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACC,cAAD,EAAiBJ,eAAjB,CAA1D;AACA,WAAKS,QAAL,GAAgBA,QAAhB;;AACA,WAAKmD,gBAAL;;AACA,WAAKC,kBAAL,CAAwB7D,eAAxB;;AACA,WAAK8D,cAAL;;AACA,WAAKtB,sBAAL,CAA4B;AACxBhB,MAAAA,QAAQ,EAAE,IADc;AAExB;AACA;AACA;AACAQ,MAAAA,SAAS,EAAE,CAAC,CAAC,OAAK5B;AALM,KAA5B;;AANmD;AAatD;;;;WACD,yBAAgB7oS,IAAhB,EAAsBqjS,OAAtB,EAA+B;AAC3B,UAAI,KAAK6F,QAAL,CAAclpS,IAAd,CAAJ,EACI,OAAO,KAAKkpS,QAAL,CAAclpS,IAAd,CAAP;AACJ,WAAKkpS,QAAL,CAAclpS,IAAd,IAAsBqjS,OAAtB;AACAA,MAAAA,OAAO,CAACmJ,SAAR,CAAkB,IAAlB;;AACAnJ,MAAAA,OAAO,CAACoJ,2BAAR,CAAoC,KAAKhD,mBAAzC;;AACA,aAAOpG,OAAP;AACH;;;WACD,oBAAWrjS,IAAX,EAAiBqjS,OAAjB,EAAwC;AAAA,UAAdh1M,OAAc,uEAAJ,EAAI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AAC;AAAA,WAAMqnG,MAAN;AAAA,GAAD;AAFK,CAAhC;;AAIA,IAAMC,iBAAiB,gBAAI;AAAA,SAAM9kR,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAN;AAAA,CAAD,EAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM4kR;MAAAA;;;;;AACF,oBAAYjN,UAAZ,EAAwBgF,eAAxB,EAAyC;AAAA;;AAAA;;AACrC;AACA;AACR;AACA;AACA;;AACQ,cAAKjC,SAAL,GAAiB,KAAjB;AACA,cAAKoK,WAAL,GAAmB,IAAI1kS,GAAJ,EAAnB;AACA;AACR;AACA;AACA;;AACQ,cAAK2kS,QAAL,GAAgB,IAAI33H,wDAAJ,EAAhB;AACA,cAAK0N,IAAL,GACI,IAAImlH,SAAJ,CAAc,EAAd,EAAkBzH,iBAAiB,CAACb,UAAD,CAAnC,EAAiDc,sBAAsB,CAACkE,eAAD,CAAvE,CADJ;AAbqC;AAexC;AACD;;;;;aACA,2BAAkB;AACd,aAAKwD,kBAAL;AACH;AACD;AACJ;AACA;AACA;;;;WACI,eAAoB;AAChB,eAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;;;;WACI,eAAc;AACV,eAAO,KAAKrlH,IAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;;;;WACI,eAAW;AACP,eAAO,EAAP;AACH;AACD;AACJ;AACA;AACA;;;;WACI,eAAe;AACX,eAAO,KAAKA,IAAL,CAAUiiH,QAAjB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;aACI,oBAAW9jL,GAAX,EAAgB;AAAA;;AACZ4rL,QAAAA,iBAAiB,CAACnlR,IA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B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM3uG,eAAe,gBAAI;AAAA,SAAMp4K,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAN;AAAA,CAAD,EAAxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACM8mR;MAAAA;;;;;AACF,qBAAY54R,MAAZ,EAAoBypR,UAApB,EAAgCgF,eAAhC,EAAiDuH,cAAjD,EAAiE6C,kBAAjE,EAAqF;AAAA;;AAAA;;AACjF;AACA,cAAKA,kBAAL,GAA0BA,kBAA1B;AACA,cAAK7P,OAAL,GAAe,IAAIqO,WAAJ,EAAf;AACA;;AACA,cAAKyB,WAAL,GAAmB,KAAnB;AACA;AACR;AACA;AACA;AACA;;AACQ,cAAK16O,MAAL,GAAc,IAAI8gH,wDAAJ,EAAd;AACA,cAAKl/G,OAAL,GAAehgD,MAAf;;AACA,cAAKy4R,cAAL,CAAoBhP,UAApB;;AACA,cAAKiP,mBAAL,CAAyBjK,eAAzB;;AACA,cAAKtC,aAAL,GAAqB4J,mBAAmB,CAAC,8OAAMC,cAAP,CAAxC;AAfiF;AAgBpF;AACD;;;;;aACA,qBAAYjgH,OAAZ,EAAqB;AACjB,aAAKgjH,eAAL;;AACA,YAAI,CAAC,KAAKD,WAAN,IAAqB,UAAU/iH,OAAnC,EAA4C;AACxC,cAAI,KAAK+iH,WAAT,EAAsB;AAClB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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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACME;;;;;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,qBAAYtR,QAAZ,EAAsBT,eAAtB,EAAuCI,cAAvC,EAAuD;AAAA;;AAAA;;AACnD,kCAAML,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACC,cAAD,EAAiBJ,eAAjB,CAA1D;AACA,YAAKS,QAAL,GAAgBA,QAAhB;;AACA,YAAKmD,gBAAL;;AACA,YAAKC,kBAAL,CAAwB7D,eAAxB;;AACA,YAAK8D,cAAL;;AACA,YAAKtB,sBAAL,CAA4B;AACxBhB,MAAAA,QAAQ,EAAE,IADc;AAExB;AACA;AACA;AACA;AACAQ,MAAAA,SAAS,EAAE,CAAC,CAAC,QAAK5B;AANM,KAA5B;;AANmD;AActD;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;WACI,YAAG9/R,KAAH,EAAU;AACN,aAAO,KAAKmgS,QAAL,CAAc,KAAKzwB,YAAL,CAAkB1vQ,KAAlB,CAAd,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,cAAKs6R,OAAL,EAA4B;AAAA,UAAdh1M,OAAc,uEAAJ,EAAI;AACxB,WAAK66M,QAAL,CAActxS,IAAd,CAAmByrS,OAAnB;;AACA,WAAKoX,gBAAL,CAAsBpX,OAAtB;;AACA,WAAK4H,sBAAL,CAA4B;AAAER,QAAAA,SAAS,EAAEp8M,OAAO,CAACo8M;AAArB,OAA5B;;AACA,WAAKhB,mBAAL;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,gBAAO1gS,KAAP,EAAcs6R,OAAd,EAAqC;AAAA,UAAdh1M,OAA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B,CAAC1rS,cAApB,CAAmCzN,GAAnC,CAAlD,EAA2F;AACvF;AACA;AACA;AACAA,QAAAA,GAAG,GAAGm5S,mBAAmB,CAACn5S,GAAD,CAAzB;AACH;AACJ;AACJ;;AACD,SAAOk5S,OAAO,CAACl5S,GAAD,CAAP,IAAgBA,GAAvB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM+rJ,WAAW,GAAG,OAAO/K,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASq5J,oBAAT,CAA8B79E,aAA9B,EAA6Cj5I,OAA7C,EAAsD;AAClD,MAAIm0E,EAAJ;;AACA,SAAOy9H,+EAA6B,CAAC;AACjC34D,IAAAA,aAAa,EAAbA,aADiC;AAEjCymD,IAAAA,YAAY,YACLq3B,wBADK,kOAEJ,CAAC5iJ,EAAE,GAAGn0E,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyC,KAAK,CAA9C,GAAkDA,OAAO,CAACm6G,SAAhE,MAA+E,IAA/E,IAAuFhmC,EAAE,KAAK,KAAK,CAAnG,GAAuGA,EAAvG,GAA4G,EAFxG,EAFqB;AAMjCwrH,IAAAA,iBAAiB,EAAEq3B;AANc,GAAD,CAApC;AAQH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,+BAAT,GAA2C;AACvC;AACA;AACA,mBAAWC,qBAAX;AACH;;AACD,SAASC,cAAT,GAA0B;AACtB9G,EAAAA,iBAAiB,CAAC+G,WAAlB;AACH;;AACD,SAASx6D,YAAT,GAAwB;AACp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68U,kBAAnG;AAAA;AAAA;AAAA;AAAA;AA3uG+F78U,QAAAA,wDA2uG/F;AAAA,iBAAmG,0FAAnG;AAAA;AAAA;;AAAA;AA3uG+FA,QAAAA,yDA2uG/F,yCA3uG+FA,2DA2uG/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eA3uG+FA,kEA2uG/F;AAAA;SA/EM68U;;;AAgFN;AAAA;AAAA;AAAA;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACME;MAAAA;AACF,8BAAYnG,MAAZ,EAAoB1uQ,OAApB,EAA6BymJ,QAA7B,EAAuCquH,GAAvC,EAA4CjjT,IAA5C,EAAkDkjT,YAAlD,EAAgE;AAAA;;AAAA;;AAC5D,WAAKrG,MAAL,GAAcA,MAAd;AACA,WAAK1uQ,OAAL,GAAeA,OAAf;AACA,WAAKymJ,QAAL,GAAgBA,QAAhB;AACA,WAAKquH,GAAL,GAAWA,GAAX;AACA,WAAKjjT,IAAL,GAAYA,IAAZ;AACA,WAAKkjT,YAAL,GAAoBA,YAApB;AACA,WAAKtrH,OAAL,GAAe,EAAf;AACA,WAAKurH,QAAL,GAAgB,KAAhB;AACA;AACR;AACA;AACA;AACA;AACA;AACA;;AACQ,WAAKC,uBAAL,GAA+B;AAAEC,QAAAA,KAAK,EAAE;AAAT,OAA/B;AACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACQ,WAAKC,cAAL,GAA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AD4B;AAE5BozW,QAAAA,eAAe,EAAfA,eAF4B;AAG5BgE,QAAAA,WAAW,EAAE;AAHe,OAAhB,CADhB;AAMA,aAAOzJ,wEAAiB,CAACuJ,WAAD,EAAcvqY,IAAd,EAAoBioY,GAApB,CAAxB;AACD;AAED;AACF;AACA;;;;WACE,2BAAyBjoY,IAAzB,EAA+BioY,GAA/B,EAAkD;AAAA,UAAdl4S,OAAc,uEAAJ,EAAI;AAChD,aAAOwyS,QAAQ,CAAC0I,iBAAT,CAA2BjrY,IAA3B,EAAiCioY,GAAjC,EAAsCl4S,OAAtC,CAAP;AACD,MAED;;AAEA;AACF;AACA;AACA;;;;SACE,eAAwB;AACtB,aAAO4xS,yDAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAsB;AACpB,aAAOA,uDAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAmC;AACjC,aAAOA,oEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAuB;AACrB,aAAOA,wDAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAuB;AACrB,aAAOA,wDAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAyB;AACvB,aAAOA,0DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA+B;AAC7B,aAAOA,gEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAoC;AAClC,aAAOA,qEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAmC;AACjC,aAAOA,oEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA4B;AAC1B,aAAOA,6DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAkC;AAChC,aAAOA,mEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAuC;AACrC,aAAOA,wEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAsC;AACpC,aAAOA,uEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA4B;AAC1B,aAAOA,6DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAyC;AACvC,aAAOA,0EAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA0B;AACxB,aAAOA,2DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAuC;AACrC,aAAOA,wEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAuC;AACrC,aAAOA,wEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA2B;AACzB,aAAOA,4DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAwC;AACtC,aAAOA,yEAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA2B;AACzB,aAAOA,4DAAP;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAwC;AACtC,aAAOA,yEAAP;AACD;;;;;AAGH;AACA;AACA;;;;AACO,SAAS4K,gBAAT,CAA0BC,WAA1B,EAAuC;AAC5C,MAAIjK,QAAQ,CAACyI,UAAT,CAAoBwB,WAApB,CAAJ,EAAsC;AACpC,WAAOA,WAAP;AACD,GAFD,MAEO,IAAIA,WAAW,IAAIA,WAAW,CAACx1W,OAA3B,IAAsC8xG,wDAAQ,CAAC0jQ,WAAW,CAACx1W,OAAZ,EAAD,CAAlD,EAA2E;AAChF,WAAOurW,QAAQ,CAACkK,UAAT,CAAoBD,WAApB,CAAP;AACD,GAFM,MAEA,IAAIA,WAAW,IAAI,OAAOA,WAAP,KAAuB,QAA1C,EAAoD;AACzD,WAAOjK,QAAQ,CAAC3/L,UAAT,CAAoB4pM,WAApB,CAAP;AACD,GAFM,MAEA;AACL,UAAM,IAAI5K,6DAAJ,sCAC0B4K,WAD1B,uBACkD,OAAOA,WADzD,EAAN;AAGD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvsED;AACA;AACA;AACA;AACA;AACA;AAQA;AAEA,IAAMziG,OAAO,GAAG,kBAAhB,EAEA;;AACO,IAAM+iG,cAAc,GAAG;AAC1B1J,EAAAA,KAAK,EAAE;AACL30T,IAAAA,IAAI,EAAE,CADD;AAEL1oD,IAAAA,KAAK,EAAE,IAAI,EAFN;AAGLE,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAHb;AAILE,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAJlB;AAKLE,IAAAA,YAAY,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAd,GAAmB;AAL5B,GADmB;AAQ1BooD,EAAAA,IAAI,EAAE;AACJ1oD,IAAAA,KAAK,EAAE,EADH;AAEJE,IAAAA,OAAO,EAAE,KAAK,EAFV;AAGJE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAHf;AAIJE,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe;AAJzB,GARoB;AAc1BN,EAAAA,KAAK,EAAE;AAAEE,IAAAA,OAAO,EAAE,EAAX;AAAeE,IAAAA,OAAO,EAAE,KAAK,EAA7B;AAAiCE,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU;AAAzD,GAdmB;AAe1BJ,EAAAA,OAAO,EAAE;AAAEE,IAAAA,OAAO,EAAE,EAAX;AAAeE,IAAAA,YAAY,EAAE,KAAK;AAAlC,GAfiB;AAgB1BF,EAAAA,OAAO,EAAE;AAAEE,IAAAA,YAAY,EAAE;AAAhB;AAhBiB,CAAvB;AAAA,IAkBL0mX,YAAY,GAAG;AACbxyT,EAAAA,KAAK,EAAE;AACL4oT,IAAAA,QAAQ,EAAE,CADL;AAELx0T,IAAAA,MAAM,EAAE,EAFH;AAGLy0T,IAAAA,KAAK,EAAE,EAHF;AAIL30T,IAAAA,IAAI,EAAE,GAJD;AAKL1oD,IAAAA,KAAK,EAAE,MAAM,EALR;AAMLE,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EANf;AAOLE,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EAPpB;AAQLE,IAAAA,YAAY,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EAAhB,GAAqB;AAR9B,GADG;AAWV88W,EAAAA,QAAQ,EAAE;AACRx0T,IAAAA,MAAM,EAAE,CADA;AAERy0T,IAAAA,KAAK,EAAE,EAFC;AAGR30T,IAAAA,IAAI,EAAE,EAHE;AAIR1oD,IAAAA,KAAK,EAAE,KAAK,EAJJ;AAKRE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EALX;AAMRE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EANhB;AAORE,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;AAP1B,GAXA;AAoBVsoD,EAAAA,MAAM,EAAE;AACNy0T,IAAAA,KAAK,EAAE,CADD;AAEN30T,IAAAA,IAAI,EAAE,EAFA;AAGN1oD,IAAAA,KAAK,EAAE,KAAK,EAHN;AAINE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAJb;AAKNE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EALlB;AAMNE,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;AAN5B;AApBE,GA6BPymX,cA7BO,CAlBP;AAAA,IAiDLE,kBAAkB,GAAG,WAAW,GAjD3B;AAAA,IAkDLC,mBAAmB,GAAG,WAAW,IAlD5B;AAAA,IAmDLC,cAAc,GAAG;AACf3yT,EAAAA,KAAK,EAAE;AACL4oT,IAAAA,QAAQ,EAAE,CADL;AAELx0T,IAAAA,MAAM,EAAE,EAFH;AAGLy0T,IAAAA,KAAK,EAAE4J,kBAAkB,GAAG,CAHvB;AAILv+T,IAAAA,IAAI,EAAEu+T,kBAJD;AAKLjnX,IAAAA,KAAK,EAAEinX,kBAAkB,GAAG,EALvB;AAML/mX,IAAAA,OAAO,EAAE+mX,kBAAkB,GAAG,EAArB,GAA0B,EAN9B;AAOL7mX,IAAAA,OAAO,EAAE6mX,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAPnC;AAQL3mX,IAAAA,YAAY,EAAE2mX,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC;AAR7C,GADK;AAWZ7J,EAAAA,QAAQ,EAAE;AACRx0T,IAAAA,MAAM,EAAE,CADA;AAERy0T,IAAAA,KAAK,EAAE4J,kBAAkB,GAAG,EAFpB;AAGRv+T,IAAAA,IAAI,EAAEu+T,kBAAkB,GAAG,CAHnB;AAIRjnX,IAAAA,KAAK,EAAGinX,kBAAkB,GAAG,EAAtB,GAA4B,CAJ3B;AAKR/mX,IAAAA,OAAO,EAAG+mX,kBAAkB,GAAG,EAArB,GAA0B,EAA3B,GAAiC,CALlC;AAMR7mX,IAAAA,OAAO,EAAG6mX,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAAhC,GAAsC,CANvC;AAOR3mX,IAAAA,YAAY,EAAG2mX,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC,IAArC,GAA6C;AAPnD,GAXE;AAoBZr+T,EAAAA,MAAM,EAAE;AACNy0T,IAAAA,KAAK,EAAE6J,mBAAmB,GAAG,CADvB;AAENx+T,IAAAA,IAAI,EAAEw+T,mBAFA;AAGNlnX,IAAAA,KAAK,EAAEknX,mBAAmB,GAAG,EAHvB;AAINhnX,IAAAA,OAAO,EAAEgnX,mBAAmB,GAAG,EAAtB,GAA2B,EAJ9B;AAKN9mX,IAAAA,OAAO,EAAE8mX,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EALnC;AAMN5mX,IAAAA,YAAY,EAAE4mX,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EAAhC,GAAqC;AAN7C;AApBI,GA4BTH,cA5BS,CAnDT,EAkFP;;AACA,IAAMjI,YAAY,GAAG,CACnB,OADmB,EAEnB,UAFmB,EAGnB,QAHmB,EAInB,OAJmB,EAKnB,MALmB,EAMnB,OANmB,EAOnB,SAPmB,EAQnB,SARmB,EASnB,cATmB,CAArB;AAYA,IAAMsI,YAAY,GAAGtI,YAAY,CAACtvY,KAAb,CAAmB,CAAnB,EAAsBkH,OAAtB,EAArB,EAEA;;AACA,SAASk9D,KAAT,CAAeqpU,GAAf,EAAoBV,IAApB,EAAyC;AAAA,MAAf57X,KAAe,uEAAP,KAAO;AACvC;AACA,MAAM0mY,IAAI,GAAG;AACXl2Y,IAAAA,MAAM,EAAEwP,KAAK,GAAG47X,IAAI,CAACprY,MAAR,+bAAsB8rY,GAAG,CAAC9rY,MAA1B,GAAsCorY,IAAI,CAACprY,MAAL,IAAe,EAArD,CADF;AAEXs6S,IAAAA,GAAG,EAAEwxF,GAAG,CAACxxF,GAAJ,CAAQ73O,KAAR,CAAc2oU,IAAI,CAAC9wF,GAAnB,CAFM;AAGX67F,IAAAA,kBAAkB,EAAE/K,IAAI,CAAC+K,kBAAL,IAA2BrK,GAAG,CAACqK,kBAHxC;AAIXpwY,IAAAA,MAAM,EAAEqlY,IAAI,CAACrlY,MAAL,IAAe+lY,GAAG,CAAC/lY;AAJhB,GAAb;AAMA,SAAO,IAAI0iY,QAAJ,CAAayN,IAAb,CAAP;AACD;;AAED,SAASE,SAAT,CAAmB11Y,CAAnB,EAAsB;AACpB,SAAOA,CAAC,GAAG,CAAJ,GAAQH,IAAI,CAACgE,KAAL,CAAW7D,CAAX,CAAR,GAAwBH,IAAI,CAACuB,IAAL,CAAUpB,CAAV,CAA/B;AACD,EAED;;;AACA,SAASkvB,OAAT,CAAiB7pB,MAAjB,EAAyBswY,OAAzB,EAAkCC,QAAlC,EAA4CC,KAA5C,EAAmDC,MAAnD,EAA2D;AACzD,MAAMC,IAAI,GAAG1wY,MAAM,CAACywY,MAAD,CAAN,CAAeF,QAAf,CAAb;AAAA,MACEjvK,GAAG,GAAGgvK,OAAO,CAACC,QAAD,CAAP,GAAoBG,IAD5B;AAAA,MAEEC,QAAQ,GAAGn2Y,IAAI,CAACi9B,IAAL,CAAU6pM,GAAV,MAAmB9mO,IAAI,CAACi9B,IAAL,CAAU+4W,KAAK,CAACC,MAAD,CAAf,CAFhC;AAAA,MAGE;AACAG,EAAAA,KAAK,GACH,CAACD,QAAD,IAAaH,KAAK,CAACC,MAAD,CAAL,KAAkB,CAA/B,IAAoCj2Y,IAAI,CAACsF,GAAL,CAASwhO,GAAT,KAAiB,CAArD,GAAyD+uK,SAAS,CAAC/uK,GAAD,CAAlE,GAA0E9mO,IAAI,CAACyrY,KAAL,CAAW3kK,GAAX,CAL9E;AAMAkvK,EAAAA,KAAK,CAACC,MAAD,CAAL,IAAiBG,KAAjB;AACAN,EAAAA,OAAO,CAACC,QAAD,CAAP,IAAqBK,KAAK,GAAGF,IAA7B;AACD,EAED;;;AACA,SAASG,eAAT,CAAyB7wY,MAAzB,EAAiCqtY,IAAjC,EAAuC;AACrC6C,EAAAA,YAAY,CAACp2Y,MAAb,CAAoB,UAAC8hD,QAAD,EAAW/V,OAAX,EAAuB;AACzC,QAAI,CAACqmG,2DAAW,CAACmhQ,IAAI,CAACxnW,OAAD,CAAL,CAAhB,EAAiC;AAC/B,UAAI+V,QAAJ,EAAc;AACZ/xB,QAAAA,OAAO,CAAC7pB,MAAD,EAASqtY,IAAT,EAAezxV,QAAf,EAAyByxV,IAAzB,EAA+BxnW,OAA/B,CAAP;AACD;;AACD,aAAOA,OAAP;AACD,KALD,MAKO;AACL,aAAO+V,QAAP;AACD;AACF,GATD,EASG,IATH;AAUD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACqB8mV;AACnB;AACF;AACA;AACE,oBAAY5oP,MAAZ,EAAoB;AAAA;;AAClB,QAAMg3P,QAAQ,GAAGh3P,MAAM,CAACs2P,kBAAP,KAA8B,UAA9B,IAA4C,KAA7D;AACA,QAAIpwY,MAAM,GAAG8wY,QAAQ,GAAGb,cAAH,GAAoBH,YAAzC;;AAEA,QAAIh2P,MAAM,CAAC95I,MAAX,EAAmB;AACjBA,MAAAA,MAAM,GAAG85I,MAAM,CAAC95I,MAAhB;AACD;AAED;AACJ;AACA;;;AACI,SAAK/F,MAAL,GAAc6/I,MAAM,CAAC7/I,MAArB;AACA;AACJ;AACA;;AACI,SAAKs6S,GAAL,GAAWz6J,MAAM,CAACy6J,GAAP,IAAc+0D,8DAAA,EAAzB;AACA;AACJ;AACA;;AACI,SAAK8mC,kBAAL,GAA0BU,QAAQ,GAAG,UAAH,GAAgB,QAAlD;AACA;AACJ;AACA;;AACI,SAAKxmG,OAAL,GAAexwJ,MAAM,CAACwwJ,OAAP,IAAkB,IAAjC;AACA;AACJ;AACA;;AACI,SAAKtqS,MAAL,GAAcA,MAAd;AACA;AACJ;AACA;;AACI,SAAK+wY,eAAL,GAAuB,IAAvB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AA6KE;AACF;AACA;AACA;AACE,mBAAa;AACX,aAAO,KAAKnK,OAAL,GAAe,KAAKryF,GAAL,CAASn+Q,MAAxB,GAAiC,IAAxC;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAsB;AACpB,aAAO,KAAKwwW,OAAL,GAAe,KAAKryF,GAAL,CAASi1F,eAAxB,GAA0C,IAAjD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAASwB,GAAT,EAAyB;AAAA,UAAX/5L,IAAW,uEAAJ,EAAI;;AACvB;AACA,UAAM+/L,OAAO,GAAG,4bACX//L,IADQ;AAEXzyM,QAAAA,KAAK,EAAEyyM,IAAI,CAACpwM,KAAL,KAAe,KAAf,IAAwBowM,IAAI,CAACzyM,KAAL,KAAe;AAFnC,QAAb;;AAIA,aAAO,KAAKooY,OAAL,GACH9D,iEAAA,CAAiB,KAAKvuF,GAAtB,EAA2By8F,OAA3B,EAAoCC,wBAApC,CAA6D,IAA7D,EAAmEjG,GAAnE,CADG,GAEHl+F,OAFJ;AAGD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,mBAAmB;AAAA;;AAAA,UAAX77F,IAAW,uEAAJ,EAAI;AACjB,UAAM10L,CAAC,GAAGqrX,YAAY,CACnBrvY,GADO,CACH,UAACg5D,IAAD,EAAU;AACb,YAAMiqC,GAAG,GAAG,KAAI,CAACvhG,MAAL,CAAYs3D,IAAZ,CAAZ;;AACA,YAAI26E,2DAAW,CAAC1wC,GAAD,CAAf,EAAsB;AACpB,iBAAO,IAAP;AACD;;AACD,eAAO,KAAI,CAAC+4M,GAAL,CACJ28F,eADI;AACcpoY,UAAAA,KAAK,EAAE,MADrB;AAC6BqoY,UAAAA,WAAW,EAAE;AAD1C,WACqDlgM,IADrD;AAC2D1/I,UAAAA,IAAI,EAAEA,IAAI,CAACj5D,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf;AADjE,YAEJsJ,MAFI,CAEG45F,GAFH,CAAP;AAGD,OATO,EAUPn4F,MAVO,CAUA,UAAC1I,CAAD;AAAA,eAAOA,CAAP;AAAA,OAVA,CAAV;AAYA,aAAO,KAAK45S,GAAL,CACJ68F,aADI;AACY9rY,QAAAA,IAAI,EAAE,aADlB;AACiCwD,QAAAA,KAAK,EAAEmoM,IAAI,CAACogM,SAAL,IAAkB;AAD1D,SACuEpgM,IADvE,GAEJrvM,MAFI,CAEG2a,CAFH,CAAP;AAGD;AAED;AACF;AACA;AACA;AACA;;;;WACE,oBAAW;AACT,UAAI,CAAC,KAAKqqX,OAAV,EAAmB,OAAO,EAAP;AACnB,6OAAY,KAAK3sY,MAAjB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,iBAAQ;AACN;AACA,UAAI,CAAC,KAAK2sY,OAAV,EAAmB,OAAO,IAAP;AAEnB,UAAI9gY,CAAC,GAAG,GAAR;AACA,UAAI,KAAKw3E,KAAL,KAAe,CAAnB,EAAsBx3E,CAAC,IAAI,KAAKw3E,KAAL,GAAa,GAAlB;AACtB,UAAI,KAAK5L,MAAL,KAAgB,CAAhB,IAAqB,KAAKw0T,QAAL,KAAkB,CAA3C,EAA8CpgY,CAAC,IAAI,KAAK4rE,MAAL,GAAc,KAAKw0T,QAAL,GAAgB,CAA9B,GAAkC,GAAvC;AAC9C,UAAI,KAAKC,KAAL,KAAe,CAAnB,EAAsBrgY,CAAC,IAAI,KAAKqgY,KAAL,GAAa,GAAlB;AACtB,UAAI,KAAK30T,IAAL,KAAc,CAAlB,EAAqB1rE,CAAC,IAAI,KAAK0rE,IAAL,GAAY,GAAjB;AACrB,UAAI,KAAK1oD,KAAL,KAAe,CAAf,IAAoB,KAAKE,OAAL,KAAiB,CAArC,IAA0C,KAAKE,OAAL,KAAiB,CAA3D,IAAgE,KAAKE,YAAL,KAAsB,CAA1F,EACEtjB,CAAC,IAAI,GAAL;AACF,UAAI,KAAKgjB,KAAL,KAAe,CAAnB,EAAsBhjB,CAAC,IAAI,KAAKgjB,KAAL,GAAa,GAAlB;AACtB,UAAI,KAAKE,OAAL,KAAiB,CAArB,EAAwBljB,CAAC,IAAI,KAAKkjB,OAAL,GAAe,GAApB;AACxB,UAAI,KAAKE,OAAL,KAAiB,CAAjB,IAAsB,KAAKE,YAAL,KAAsB,CAAhD,EACE;AACA;AACAtjB,QAAAA,CAAC,IAAIy9X,uDAAO,CAAC,KAAKr6W,OAAL,GAAe,KAAKE,YAAL,GAAoB,IAApC,EAA0C,CAA1C,CAAP,GAAsD,GAA3D;AACF,UAAItjB,CAAC,KAAK,GAAV,EAAeA,CAAC,IAAI,KAAL;AACf,aAAOA,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAqB;AAAA,UAAXmrM,IAAW,uEAAJ,EAAI;AACnB,UAAI,CAAC,KAAK21L,OAAV,EAAmB,OAAO,IAAP;AAEnB,UAAM0K,MAAM,GAAG,KAAKzF,QAAL,EAAf;AACA,UAAIyF,MAAM,GAAG,CAAT,IAAcA,MAAM,IAAI,QAA5B,EAAsC,OAAO,IAAP;AAEtCrgM,MAAAA,IAAI,GAAG;AACLk2L,QAAAA,oBAAoB,EAAE,KADpB;AAEFD,QAAAA,eAAe,EAAE,KAFf;AAGFoE,QAAAA,aAAa,EAAE,KAHb;AAIF1pY,QAAAA,MAAM,EAAE;AAJN,SAKCqvM,IALD,CAAJ;AAQA,UAAMr2M,KAAK,GAAG,KAAK22Y,OAAL,CAAa,OAAb,EAAsB,SAAtB,EAAiC,SAAjC,EAA4C,cAA5C,CAAd;AAEA,UAAIvG,GAAG,GAAG/5L,IAAI,CAACrvM,MAAL,KAAgB,OAAhB,GAA0B,MAA1B,GAAmC,OAA7C;;AAEA,UAAI,CAACqvM,IAAI,CAACi2L,eAAN,IAAyBtsY,KAAK,CAACsuB,OAAN,KAAkB,CAA3C,IAAgDtuB,KAAK,CAACwuB,YAAN,KAAuB,CAA3E,EAA8E;AAC5E4hX,QAAAA,GAAG,IAAI/5L,IAAI,CAACrvM,MAAL,KAAgB,OAAhB,GAA0B,IAA1B,GAAiC,KAAxC;;AACA,YAAI,CAACqvM,IAAI,CAACk2L,oBAAN,IAA8BvsY,KAAK,CAACwuB,YAAN,KAAuB,CAAzD,EAA4D;AAC1D4hX,UAAAA,GAAG,IAAI,MAAP;AACD;AACF;;AAED,UAAIt/O,GAAG,GAAG9wJ,KAAK,CAAC42Y,QAAN,CAAexG,GAAf,CAAV;;AAEA,UAAI/5L,IAAI,CAACq6L,aAAT,EAAwB;AACtB5/O,QAAAA,GAAG,GAAG,MAAMA,GAAZ;AACD;;AAED,aAAOA,GAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,kBAAS;AACP,aAAO,KAAKkgP,KAAL,EAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACT,aAAO,KAAKA,KAAL,EAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACT,aAAO,KAAKl5E,EAAL,CAAQ,cAAR,CAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,mBAAU;AACR,aAAO,KAAKm5E,QAAL,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,cAAK1lV,QAAL,EAAe;AACb,UAAI,CAAC,KAAKygV,OAAV,EAAmB,OAAO,IAAP;AAEnB,UAAMb,GAAG,GAAGrD,QAAQ,CAACmI,gBAAT,CAA0B1kV,QAA1B,CAAZ;AAAA,UACEz1C,MAAM,GAAG,EADX;;AAHa,8PAMGk3X,YANH;AAAA;;AAAA;AAMb,4DAA8B;AAAA,cAAnBpmY,CAAmB;;AAC5B,cAAIwb,8DAAc,CAAC+oX,GAAG,CAAC9rY,MAAL,EAAauH,CAAb,CAAd,IAAiCwb,8DAAc,CAAC,KAAK/iB,MAAN,EAAcuH,CAAd,CAAnD,EAAqE;AACnEkP,YAAAA,MAAM,CAAClP,CAAD,CAAN,GAAYukY,GAAG,CAACj2X,GAAJ,CAAQtO,CAAR,IAAa,KAAKsO,GAAL,CAAStO,CAAT,CAAzB;AACD;AACF;AAVY;AAAA;AAAA;AAAA;AAAA;;AAYb,aAAOk7D,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAEyW;AAAV,OAAP,EAA2B,IAA3B,CAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,eAAMy1C,QAAN,EAAgB;AACd,UAAI,CAAC,KAAKygV,OAAV,EAAmB,OAAO,IAAP;AAEnB,UAAMb,GAAG,GAAGrD,QAAQ,CAACmI,gBAAT,CAA0B1kV,QAA1B,CAAZ;AACA,aAAO,KAAK4kV,IAAL,CAAUhF,GAAG,CAAC39P,MAAJ,EAAV,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS3L,EAAT,EAAa;AACX,UAAI,CAAC,KAAKmqQ,OAAV,EAAmB,OAAO,IAAP;AACnB,UAAMl2X,MAAM,GAAG,EAAf;;AACA,sCAAgBgL,MAAM,CAACzT,IAAP,CAAY,KAAKhO,MAAjB,CAAhB,kCAA0C;AAArC,YAAMuH,CAAC,mBAAP;AACHkP,QAAAA,MAAM,CAAClP,CAAD,CAAN,GAAYouY,wDAAQ,CAACnzQ,EAAE,CAAC,KAAKxiI,MAAL,CAAYuH,CAAZ,CAAD,EAAiBA,CAAjB,CAAH,CAApB;AACD;;AACD,aAAOk7D,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAEyW;AAAV,OAAP,EAA2B,IAA3B,CAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,aAAI6gD,IAAJ,EAAU;AACR,aAAO,KAAKmxU,QAAQ,CAACqF,aAAT,CAAuBx2U,IAAvB,CAAL,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,aAAIt3D,MAAJ,EAAY;AACV,UAAI,CAAC,KAAK2sY,OAAV,EAAmB,OAAO,IAAP;;AAEnB,UAAMgE,KAAK,GAAG,4bAAK,KAAK3wY,MAAb,GAAwBqpY,+DAAe,CAACrpY,MAAD,EAASyoY,QAAQ,CAACqF,aAAlB,CAAvC,CAAX;;AACA,aAAOrrU,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAE2wY;AAAV,OAAP,CAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAA0E;AAAA,qFAAJ,EAAI;AAAA,UAA5Dx0W,MAA4D,QAA5DA,MAA4D;AAAA,UAApDozW,eAAoD,QAApDA,eAAoD;AAAA,UAAnC4G,kBAAmC,QAAnCA,kBAAmC;AAAA,UAAfpwY,MAAe,QAAfA,MAAe;;AACxE,UAAMu0S,GAAG,GAAG,KAAKA,GAAL,CAAS73O,KAAT,CAAe;AAAEtmC,QAAAA,MAAM,EAANA,MAAF;AAAUozW,QAAAA,eAAe,EAAfA;AAAV,OAAf,CAAZ;AACA,UAAMv4L,IAAI,GAAG;AAAEsjG,QAAAA,GAAG,EAAHA,GAAF;AAAOv0S,QAAAA,MAAM,EAANA,MAAP;AAAeowY,QAAAA,kBAAkB,EAAlBA;AAAf,OAAb;AACA,aAAO1zU,KAAK,CAAC,IAAD,EAAOu0I,IAAP,CAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,YAAG1/I,IAAH,EAAS;AACP,aAAO,KAAKq1U,OAAL,GAAe,KAAK2K,OAAL,CAAahgV,IAAb,EAAmBzhD,GAAnB,CAAuByhD,IAAvB,CAAf,GAA8C74D,GAArD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,qBAAY;AACV,UAAI,CAAC,KAAKkuY,OAAV,EAAmB,OAAO,IAAP;AACnB,UAAMyG,IAAI,GAAG,KAAKjD,QAAL,EAAb;AACAyG,MAAAA,eAAe,CAAC,KAAK7wY,MAAN,EAAcqtY,IAAd,CAAf;AACA,aAAO3wU,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAEozY;AAAV,OAAP,EAAyB,IAAzB,CAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,mBAAkB;AAAA,wCAAPrE,KAAO;AAAPA,QAAAA,KAAO;AAAA;;AAChB,UAAI,CAAC,KAAKpC,OAAV,EAAmB,OAAO,IAAP;;AAEnB,UAAIoC,KAAK,CAAC7vY,MAAN,KAAiB,CAArB,EAAwB;AACtB,eAAO,IAAP;AACD;;AAED6vY,MAAAA,KAAK,GAAGA,KAAK,CAACzwY,GAAN,CAAU,UAACwjC,CAAD;AAAA,eAAO2mW,QAAQ,CAACqF,aAAT,CAAuBhsW,CAAvB,CAAP;AAAA,OAAV,CAAR;AAEA,UAAM01W,KAAK,GAAG,EAAd;AAAA,UACEC,WAAW,GAAG,EADhB;AAAA,UAEErE,IAAI,GAAG,KAAKjD,QAAL,EAFT;AAGA,UAAIuH,QAAJ;;AAZgB,+PAcA/J,YAdA;AAAA;;AAAA;AAchB,+DAA8B;AAAA,cAAnBpmY,CAAmB;;AAC5B,cAAIwnY,KAAK,CAAC7kX,OAAN,CAAc3iB,CAAd,KAAoB,CAAxB,EAA2B;AACzBmwY,YAAAA,QAAQ,GAAGnwY,CAAX;AAEA,gBAAIowY,GAAG,GAAG,CAAV,CAHyB,CAKzB;;AACA,iBAAK,IAAMC,EAAX,IAAiBH,WAAjB,EAA8B;AAC5BE,cAAAA,GAAG,IAAI,KAAK5xY,MAAL,CAAY6xY,EAAZ,EAAgBrwY,CAAhB,IAAqBkwY,WAAW,CAACG,EAAD,CAAvC;AACAH,cAAAA,WAAW,CAACG,EAAD,CAAX,GAAkB,CAAlB;AACD,aATwB,CAWzB;;;AACA,gBAAIhmQ,wDAAQ,CAACwhQ,IAAI,CAAC7rY,CAAD,CAAL,CAAZ,EAAuB;AACrBowY,cAAAA,GAAG,IAAIvE,IAAI,CAAC7rY,CAAD,CAAX;AACD;;AAED,gBAAMpH,CAAC,GAAGI,IAAI,CAACyrY,KAAL,CAAW2L,GAAX,CAAV;AACAH,YAAAA,KAAK,CAACjwY,CAAD,CAAL,GAAWpH,CAAX;AACAs3Y,YAAAA,WAAW,CAAClwY,CAAD,CAAX,GAAiB,CAACowY,GAAG,GAAG,IAAN,GAAax3Y,CAAC,GAAG,IAAlB,IAA0B,IAA3C,CAlByB,CAoBzB;;AACA,iBAAK,IAAM03Y,IAAX,IAAmBzE,IAAnB,EAAyB;AACvB,kBAAIzF,YAAY,CAACzjX,OAAb,CAAqB2tX,IAArB,IAA6BlK,YAAY,CAACzjX,OAAb,CAAqB3iB,CAArB,CAAjC,EAA0D;AACxDqoB,gBAAAA,OAAO,CAAC,KAAK7pB,MAAN,EAAcqtY,IAAd,EAAoByE,IAApB,EAA0BL,KAA1B,EAAiCjwY,CAAjC,CAAP;AACD;AACF,aAzBwB,CA0BzB;;AACD,WA3BD,MA2BO,IAAIqqI,wDAAQ,CAACwhQ,IAAI,CAAC7rY,CAAD,CAAL,CAAZ,EAAuB;AAC5BkwY,YAAAA,WAAW,CAAClwY,CAAD,CAAX,GAAiB6rY,IAAI,CAAC7rY,CAAD,CAArB;AACD;AACF,SA7Ce,CA+ChB;AACA;;AAhDgB;AAAA;AAAA;AAAA;AAAA;;AAiDhB,WAAK,IAAM+N,GAAX,IAAkBmiY,WAAlB,EAA+B;AAC7B,YAAIA,WAAW,CAACniY,GAAD,CAAX,KAAqB,CAAzB,EAA4B;AAC1BkiY,UAAAA,KAAK,CAACE,QAAD,CAAL,IACEpiY,GAAG,KAAKoiY,QAAR,GAAmBD,WAAW,CAACniY,GAAD,CAA9B,GAAsCmiY,WAAW,CAACniY,GAAD,CAAX,GAAmB,KAAKvP,MAAL,CAAY2xY,QAAZ,EAAsBpiY,GAAtB,CAD3D;AAED;AACF;;AAED,aAAOmtD,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAEw3Y;AAAV,OAAP,EAA0B,IAA1B,CAAL,CAAqCjgV,SAArC,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAAS;AACP,UAAI,CAAC,KAAKo1U,OAAV,EAAmB,OAAO,IAAP;AACnB,UAAMmL,OAAO,GAAG,EAAhB;;AACA,wCAAgBr2X,MAAM,CAACzT,IAAP,CAAY,KAAKhO,MAAjB,CAAhB,qCAA0C;AAArC,YAAMuH,CAAC,qBAAP;AACHuwY,QAAAA,OAAO,CAACvwY,CAAD,CAAP,GAAa,KAAKvH,MAAL,CAAYuH,CAAZ,MAAmB,CAAnB,GAAuB,CAAvB,GAA2B,CAAC,KAAKvH,MAAL,CAAYuH,CAAZ,CAAzC;AACD;;AACD,aAAOk7D,KAAK,CAAC,IAAD,EAAO;AAAEziE,QAAAA,MAAM,EAAE83Y;AAAV,OAAP,EAA4B,IAA5B,CAAZ;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAY;AACV,aAAO,KAAKnL,OAAL,GAAe,KAAK3sY,MAAL,CAAYqjF,KAAZ,IAAqB,CAApC,GAAwC5kF,GAA/C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAe;AACb,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYisY,QAAZ,IAAwB,CAAvC,GAA2CxtY,GAAlD;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAa;AACX,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYy3E,MAAZ,IAAsB,CAArC,GAAyCh5E,GAAhD;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAY;AACV,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYksY,KAAZ,IAAqB,CAApC,GAAwCztY,GAA/C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAW;AACT,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYu3E,IAAZ,IAAoB,CAAnC,GAAuC94E,GAA9C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAY;AACV,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAY6uB,KAAZ,IAAqB,CAApC,GAAwCpwB,GAA/C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAc;AACZ,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAY+uB,OAAZ,IAAuB,CAAtC,GAA0CtwB,GAAjD;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAc;AACZ,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYivB,OAAZ,IAAuB,CAAtC,GAA0CxwB,GAAjD;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKkuY,OAAL,GAAe,KAAK3sY,MAAL,CAAYmvB,YAAZ,IAA4B,CAA3C,GAA+C1wB,GAAtD;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAc;AACZ,aAAO,KAAK4xS,OAAL,KAAiB,IAAxB;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKA,OAAL,GAAe,KAAKA,OAAL,CAAa2vB,MAA5B,GAAqC,IAA5C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAyB;AACvB,aAAO,KAAK3vB,OAAL,GAAe,KAAKA,OAAL,CAAai/F,WAA5B,GAA0C,IAAjD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gBAAO7jW,KAAP,EAAc;AACZ,UAAI,CAAC,KAAKkhW,OAAN,IAAiB,CAAClhW,KAAK,CAACkhW,OAA5B,EAAqC;AACnC,eAAO,KAAP;AACD;;AAED,UAAI,CAAC,KAAKryF,GAAL,CAAS60F,MAAT,CAAgB1jW,KAAK,CAAC6uQ,GAAtB,CAAL,EAAiC;AAC/B,eAAO,KAAP;AACD;;AAED,eAASlnL,EAAT,CAAY1qG,EAAZ,EAAgBy9B,EAAhB,EAAoB;AAClB;AACA,YAAIz9B,EAAE,KAAK+N,SAAP,IAAoB/N,EAAE,KAAK,CAA/B,EAAkC,OAAOy9B,EAAE,KAAK1vB,SAAP,IAAoB0vB,EAAE,KAAK,CAAlC;AAClC,eAAOz9B,EAAE,KAAKy9B,EAAd;AACD;;AAbW,+PAeIwnV,YAfJ;AAAA;;AAAA;AAeZ,+DAA8B;AAAA,cAAnB7rW,CAAmB;;AAC5B,cAAI,CAACsxF,EAAE,CAAC,KAAKpzH,MAAL,CAAY8hC,CAAZ,CAAD,EAAiB2J,KAAK,CAACzrC,MAAN,CAAa8hC,CAAb,CAAjB,CAAP,EAA0C;AACxC,mBAAO,KAAP;AACD;AACF;AAnBW;AAAA;AAAA;AAAA;AAAA;;AAoBZ,aAAO,IAAP;AACD;;;WAhrBD,oBAAkBx8B,KAAlB,EAAyB0xM,IAAzB,EAA+B;AAC7B,aAAOyxL,QAAQ,CAAC/8L,UAAT,CAAoB;AAAEv8K,QAAAA,YAAY,EAAE7pB;AAAhB,OAApB,EAA6C0xM,IAA7C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAkB9lD,GAAlB,EAAkC;AAAA,UAAX8lD,IAAW,uEAAJ,EAAI;;AAChC,UAAI9lD,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAAlC,EAA4C;AAC1C,cAAM,IAAIw5O,4DAAJ,uEAEFx5O,GAAG,KAAK,IAAR,GAAe,MAAf,GAAwB,OAAOA,GAF7B,EAAN;AAKD;;AAED,aAAO,IAAIu3O,QAAJ,CAAa;AAClBzoY,QAAAA,MAAM,EAAEqpY,+DAAe,CAACn4O,GAAD,EAAMu3O,QAAQ,CAACqF,aAAf,CADL;AAElBxzF,QAAAA,GAAG,EAAE+0D,kEAAA,CAAkBr4J,IAAlB,CAFa;AAGlBm/L,QAAAA,kBAAkB,EAAEn/L,IAAI,CAACm/L,kBAHP;AAIlBpwY,QAAAA,MAAM,EAAEixM,IAAI,CAACjxM;AAJK,OAAb,CAAP;AAMD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,0BAAwBgyY,YAAxB,EAAsC;AACpC,UAAInmQ,wDAAQ,CAACmmQ,YAAD,CAAZ,EAA4B;AAC1B,eAAOtP,QAAQ,CAACuP,UAAT,CAAoBD,YAApB,CAAP;AACD,OAFD,MAEO,IAAItP,QAAQ,CAACwP,UAAT,CAAoBF,YAApB,CAAJ,EAAuC;AAC5C,eAAOA,YAAP;AACD,OAFM,MAEA,IAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AAC3C,eAAOtP,QAAQ,CAAC/8L,UAAT,CAAoBqsM,YAApB,CAAP;AACD,OAFM,MAEA;AACL,cAAM,IAAIrN,4DAAJ,qCACyBqN,YADzB,sBACiD,OAAOA,YADxD,EAAN;AAGD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,iBAAejvY,IAAf,EAAqBkuM,IAArB,EAA2B;AACzB,8BAAiBy+L,sEAAgB,CAAC3sY,IAAD,CAAjC;AAAA;AAAA,UAAOoxG,MAAP;;AACA,UAAIA,MAAJ,EAAY;AACV,eAAOuuR,QAAQ,CAAC/8L,UAAT,CAAoBxxF,MAApB,EAA4B88F,IAA5B,CAAP;AACD,OAFD,MAEO;AACL,eAAOyxL,QAAQ,CAACp4F,OAAT,CAAiB,YAAjB,wBAA6CvnS,IAA7C,oCAAP;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAmBA,IAAnB,EAAyBkuM,IAAzB,EAA+B;AAC7B,8BAAiB0+L,sEAAgB,CAAC5sY,IAAD,CAAjC;AAAA;AAAA,UAAOoxG,MAAP;;AACA,UAAIA,MAAJ,EAAY;AACV,eAAOuuR,QAAQ,CAAC/8L,UAAT,CAAoBxxF,MAApB,EAA4B88F,IAA5B,CAAP;AACD,OAFD,MAEO;AACL,eAAOyxL,QAAQ,CAACp4F,OAAT,CAAiB,YAAjB,wBAA6CvnS,IAA7C,oCAAP;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iBAAek3T,MAAf,EAA2C;AAAA,UAApBsvE,WAAoB,uEAAN,IAAM;;AACzC,UAAI,CAACtvE,MAAL,EAAa;AACX,cAAM,IAAI0qE,4DAAJ,CAAyB,kDAAzB,CAAN;AACD;;AAED,UAAMr6F,OAAO,GAAG2vB,MAAM,YAAY8qE,wDAAlB,GAA4B9qE,MAA5B,GAAqC,IAAI8qE,wDAAJ,CAAY9qE,MAAZ,EAAoBsvE,WAApB,CAArD;;AAEA,UAAI3G,oEAAJ,EAA6B;AAC3B,cAAM,IAAI6M,4DAAJ,CAAyBnlG,OAAzB,CAAN;AACD,OAFD,MAEO;AACL,eAAO,IAAIo4F,QAAJ,CAAa;AAAEp4F,UAAAA,OAAO,EAAPA;AAAF,SAAb,CAAP;AACD;AACF;AAED;AACF;AACA;;;;WACE,uBAAqB/4O,IAArB,EAA2B;AACzB,UAAM+qL,UAAU,GAAG;AACjB3zN,QAAAA,IAAI,EAAE,OADW;AAEjB20D,QAAAA,KAAK,EAAE,OAFU;AAGjB0qT,QAAAA,OAAO,EAAE,UAHQ;AAIjB9B,QAAAA,QAAQ,EAAE,UAJO;AAKjB3uU,QAAAA,KAAK,EAAE,QALU;AAMjBma,QAAAA,MAAM,EAAE,QANS;AAOjBla,QAAAA,IAAI,EAAE,OAPW;AAQjB2uU,QAAAA,KAAK,EAAE,OARU;AASjB1uU,QAAAA,GAAG,EAAE,MATY;AAUjB+Z,QAAAA,IAAI,EAAE,MAVW;AAWjB9Z,QAAAA,IAAI,EAAE,OAXW;AAYjB5uC,QAAAA,KAAK,EAAE,OAZU;AAajB6uC,QAAAA,MAAM,EAAE,SAbS;AAcjB3uC,QAAAA,OAAO,EAAE,SAdQ;AAejB4uC,QAAAA,MAAM,EAAE,SAfS;AAgBjB1uC,QAAAA,OAAO,EAAE,SAhBQ;AAiBjB2uC,QAAAA,WAAW,EAAE,cAjBI;AAkBjBzuC,QAAAA,YAAY,EAAE;AAlBG,QAmBjBmoC,IAAI,GAAGA,IAAI,CAAC90C,WAAL,EAAH,GAAwB80C,IAnBX,CAAnB;AAqBA,UAAI,CAAC+qL,UAAL,EAAiB,MAAM,IAAIuoJ,wDAAJ,CAAqBtzU,IAArB,CAAN;AAEjB,aAAO+qL,UAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,oBAAkBrsO,CAAlB,EAAqB;AACnB,aAAQA,CAAC,IAAIA,CAAC,CAAC8gY,eAAR,IAA4B,KAAnC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnYH;;AAEA;AACA;AACA;IACMoB;;;;;;;;;;;;8OAAmBrvX;AAEzB;AACA;AACA;;;AACO,IAAMgiX,oBAAb;AAAA;;AAAA;;AACE,gCAAY7qE,MAAZ,EAAoB;AAAA;;AAAA,0DACSA,MAAM,CAACm4E,SAAP,EADT;AAEnB;;AAHH;AAAA,EAA0CD,UAA1C;AAMA;AACA;AACA;;AACO,IAAME,oBAAb;AAAA;;AAAA;;AACE,gCAAYp4E,MAAZ,EAAoB;AAAA;;AAAA,0DACSA,MAAM,CAACm4E,SAAP,EADT;AAEnB;;AAHH;AAAA,EAA0CD,UAA1C;AAMA;AACA;AACA;;AACO,IAAM1C,oBAAb;AAAA;;AAAA;;AACE,gCAAYx1E,MAAZ,EAAoB;AAAA;;AAAA,0DACSA,MAAM,CAACm4E,SAAP,EADT;AAEnB;;AAHH;AAAA,EAA0CD,UAA1C;AAMA;AACA;AACA;;AACO,IAAMvN,6BAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA,EAAmDuN,UAAnD;AAEA;AACA;AACA;;AACO,IAAMtN,gBAAb;AAAA;;AAAA;;AACE,4BAAYtzU,IAAZ,EAAkB;AAAA;;AAAA,qDACMA,IADN;AAEjB;;AAHH;AAAA,EAAsC4gV,UAAtC;AAMA;AACA;AACA;;AACO,IAAMxN,oBAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA,EAA0CwN,UAA1C;AAEA;AACA;AACA;;AACO,IAAMG,mBAAb;AAAA;;AAAA;;AACE,iCAAc;AAAA;;AAAA,8BACN,2BADM;AAEb;;AAHH;AAAA,EAAyCH,UAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;ACxDA;AASA;AAEA,IAAMM,aAAa,GAAG,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,CAAtB;AAAA,IACEC,UAAU,GAAG,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,CADf;;AAGA,SAASC,cAAT,CAAwBphV,IAAxB,EAA8B32D,KAA9B,EAAqC;AACnC,SAAO,IAAImqY,mDAAJ,CACL,mBADK,0BAEYnqY,KAFZ,uBAE8B,OAAOA,KAFrC,oBAEoD22D,IAFpD,wBAAP;AAID;;AAED,SAASqhV,SAAT,CAAmBjqX,IAAnB,EAAyB4uC,KAAzB,EAAgCE,GAAhC,EAAqC;AACnC,MAAM/9D,CAAC,GAAG,IAAI8sB,IAAJ,CAASA,IAAI,CAACyyC,GAAL,CAAStwC,IAAT,EAAe4uC,KAAK,GAAG,CAAvB,EAA0BE,GAA1B,CAAT,CAAV;;AAEA,MAAI9uC,IAAI,GAAG,GAAP,IAAcA,IAAI,IAAI,CAA1B,EAA6B;AAC3BjvB,IAAAA,CAAC,CAACu5E,cAAF,CAAiBv5E,CAAC,CAAC4vB,cAAF,KAAqB,IAAtC;AACD;;AAED,MAAMupX,EAAE,GAAGn5Y,CAAC,CAACsgF,SAAF,EAAX;AAEA,SAAO64T,EAAE,KAAK,CAAP,GAAW,CAAX,GAAeA,EAAtB;AACD;;AAED,SAASC,cAAT,CAAwBnqX,IAAxB,EAA8B4uC,KAA9B,EAAqCE,GAArC,EAA0C;AACxC,SAAOA,GAAG,GAAG,CAAC2rU,oDAAU,CAACz6W,IAAD,CAAV,GAAmB+pX,UAAnB,GAAgCD,aAAjC,EAAgDl7U,KAAK,GAAG,CAAxD,CAAb;AACD;;AAED,SAASw7U,gBAAT,CAA0BpqX,IAA1B,EAAgCooC,OAAhC,EAAyC;AACvC,MAAMiiV,KAAK,GAAG5P,oDAAU,CAACz6W,IAAD,CAAV,GAAmB+pX,UAAnB,GAAgCD,aAA9C;AAAA,MACEQ,MAAM,GAAGD,KAAK,CAACnvQ,SAAN,CAAgB,UAACzpI,CAAD;AAAA,WAAOA,CAAC,GAAG22D,OAAX;AAAA,GAAhB,CADX;AAAA,MAEE0G,GAAG,GAAG1G,OAAO,GAAGiiV,KAAK,CAACC,MAAD,CAFvB;AAGA,SAAO;AAAE17U,IAAAA,KAAK,EAAE07U,MAAM,GAAG,CAAlB;AAAqBx7U,IAAAA,GAAG,EAAHA;AAArB,GAAP;AACD;AAED;AACA;AACA;;;AAEO,SAASysU,eAAT,CAAyBgP,OAAzB,EAAkC;AACvC,MAAQvqX,IAAR,GAA6BuqX,OAA7B,CAAQvqX,IAAR;AAAA,MAAc4uC,KAAd,GAA6B27U,OAA7B,CAAc37U,KAAd;AAAA,MAAqBE,GAArB,GAA6By7U,OAA7B,CAAqBz7U,GAArB;AAAA,MACE1G,OADF,GACY+hV,cAAc,CAACnqX,IAAD,EAAO4uC,KAAP,EAAcE,GAAd,CAD1B;AAAA,MAEE2nB,OAFF,GAEYwzT,SAAS,CAACjqX,IAAD,EAAO4uC,KAAP,EAAcE,GAAd,CAFrB;AAIA,MAAIiwU,UAAU,GAAGltY,IAAI,CAACgE,KAAL,CAAW,CAACuyD,OAAO,GAAGquB,OAAV,GAAoB,EAArB,IAA2B,CAAtC,CAAjB;AAAA,MACEsqT,QADF;;AAGA,MAAIhC,UAAU,GAAG,CAAjB,EAAoB;AAClBgC,IAAAA,QAAQ,GAAG/gX,IAAI,GAAG,CAAlB;AACA++W,IAAAA,UAAU,GAAGrE,yDAAe,CAACqG,QAAD,CAA5B;AACD,GAHD,MAGO,IAAIhC,UAAU,GAAGrE,yDAAe,CAAC16W,IAAD,CAAhC,EAAwC;AAC7C+gX,IAAAA,QAAQ,GAAG/gX,IAAI,GAAG,CAAlB;AACA++W,IAAAA,UAAU,GAAG,CAAb;AACD,GAHM,MAGA;AACLgC,IAAAA,QAAQ,GAAG/gX,IAAX;AACD;;AAED;AAAS+gX,IAAAA,QAAQ,EAARA,QAAT;AAAmBhC,IAAAA,UAAU,EAAVA,UAAnB;AAA+BtoT,IAAAA,OAAO,EAAPA;AAA/B,KAA2CozT,oDAAU,CAACU,OAAD,CAArD;AACD;AAEM,SAAS/O,eAAT,CAAyBiB,QAAzB,EAAmC;AACxC,MAAQsE,QAAR,GAA0CtE,QAA1C,CAAQsE,QAAR;AAAA,MAAkBhC,UAAlB,GAA0CtC,QAA1C,CAAkBsC,UAAlB;AAAA,MAA8BtoT,OAA9B,GAA0CgmT,QAA1C,CAA8BhmT,OAA9B;AAAA,MACE+zT,aADF,GACkBP,SAAS,CAAClJ,QAAD,EAAW,CAAX,EAAc,CAAd,CAD3B;AAAA,MAEE0J,UAFF,GAEejQ,oDAAU,CAACuG,QAAD,CAFzB;AAIA,MAAI34U,OAAO,GAAG22U,UAAU,GAAG,CAAb,GAAiBtoT,OAAjB,GAA2B+zT,aAA3B,GAA2C,CAAzD;AAAA,MACExqX,IADF;;AAGA,MAAIooC,OAAO,GAAG,CAAd,EAAiB;AACfpoC,IAAAA,IAAI,GAAG+gX,QAAQ,GAAG,CAAlB;AACA34U,IAAAA,OAAO,IAAIoyU,oDAAU,CAACx6W,IAAD,CAArB;AACD,GAHD,MAGO,IAAIooC,OAAO,GAAGqiV,UAAd,EAA0B;AAC/BzqX,IAAAA,IAAI,GAAG+gX,QAAQ,GAAG,CAAlB;AACA34U,IAAAA,OAAO,IAAIoyU,oDAAU,CAACuG,QAAD,CAArB;AACD,GAHM,MAGA;AACL/gX,IAAAA,IAAI,GAAG+gX,QAAP;AACD;;AAED,0BAAuBqJ,gBAAgB,CAACpqX,IAAD,EAAOooC,OAAP,CAAvC;AAAA,MAAQwG,KAAR,qBAAQA,KAAR;AAAA,MAAeE,GAAf,qBAAeA,GAAf;;AACA;AAAS9uC,IAAAA,IAAI,EAAJA,IAAT;AAAe4uC,IAAAA,KAAK,EAALA,KAAf;AAAsBE,IAAAA,GAAG,EAAHA;AAAtB,KAA8B+6U,oDAAU,CAACpN,QAAD,CAAxC;AACD;AAEM,SAAShB,kBAAT,CAA4BiP,QAA5B,EAAsC;AAC3C,MAAQ1qX,IAAR,GAA6B0qX,QAA7B,CAAQ1qX,IAAR;AAAA,MAAc4uC,KAAd,GAA6B87U,QAA7B,CAAc97U,KAAd;AAAA,MAAqBE,GAArB,GAA6B47U,QAA7B,CAAqB57U,GAArB;AACA,MAAM1G,OAAO,GAAG+hV,cAAc,CAACnqX,IAAD,EAAO4uC,KAAP,EAAcE,GAAd,CAA9B;AACA;AAAS9uC,IAAAA,IAAI,EAAJA,IAAT;AAAeooC,IAAAA,OAAO,EAAPA;AAAf,KAA2ByhV,oDAAU,CAACa,QAAD,CAArC;AACD;AAEM,SAAShP,kBAAT,CAA4BiP,WAA5B,EAAyC;AAC9C,MAAQ3qX,IAAR,GAA0B2qX,WAA1B,CAAQ3qX,IAAR;AAAA,MAAcooC,OAAd,GAA0BuiV,WAA1B,CAAcviV,OAAd;;AACA,2BAAuBgiV,gBAAgB,CAACpqX,IAAD,EAAOooC,OAAP,CAAvC;AAAA,MAAQwG,KAAR,sBAAQA,KAAR;AAAA,MAAeE,GAAf,sBAAeA,GAAf;;AACA;AAAS9uC,IAAAA,IAAI,EAAJA,IAAT;AAAe4uC,IAAAA,KAAK,EAALA,KAAf;AAAsBE,IAAAA,GAAG,EAAHA;AAAtB,KAA8B+6U,oDAAU,CAACc,WAAD,CAAxC;AACD;AAEM,SAAS/O,kBAAT,CAA4Bp5O,GAA5B,EAAiC;AACtC,MAAMooP,SAAS,GAAG7nQ,mDAAS,CAACyf,GAAG,CAACu+O,QAAL,CAA3B;AAAA,MACE8J,SAAS,GAAGjB,wDAAc,CAACpnP,GAAG,CAACu8O,UAAL,EAAiB,CAAjB,EAAoBrE,yDAAe,CAACl4O,GAAG,CAACu+O,QAAL,CAAnC,CAD5B;AAAA,MAEE+J,YAAY,GAAGlB,wDAAc,CAACpnP,GAAG,CAAC/rE,OAAL,EAAc,CAAd,EAAiB,CAAjB,CAF/B;;AAIA,MAAI,CAACm0T,SAAL,EAAgB;AACd,WAAOZ,cAAc,CAAC,UAAD,EAAaxnP,GAAG,CAACu+O,QAAjB,CAArB;AACD,GAFD,MAEO,IAAI,CAAC8J,SAAL,EAAgB;AACrB,WAAOb,cAAc,CAAC,MAAD,EAASxnP,GAAG,CAAC3zF,IAAb,CAArB;AACD,GAFM,MAEA,IAAI,CAACi8U,YAAL,EAAmB;AACxB,WAAOd,cAAc,CAAC,SAAD,EAAYxnP,GAAG,CAAC/rE,OAAhB,CAArB;AACD,GAFM,MAEA,OAAO,KAAP;AACR;AAEM,SAASolT,qBAAT,CAA+Br5O,GAA/B,EAAoC;AACzC,MAAMooP,SAAS,GAAG7nQ,mDAAS,CAACyf,GAAG,CAACxiI,IAAL,CAA3B;AAAA,MACE+qX,YAAY,GAAGnB,wDAAc,CAACpnP,GAAG,CAACp6F,OAAL,EAAc,CAAd,EAAiBoyU,oDAAU,CAACh4O,GAAG,CAACxiI,IAAL,CAA3B,CAD/B;;AAGA,MAAI,CAAC4qX,SAAL,EAAgB;AACd,WAAOZ,cAAc,CAAC,MAAD,EAASxnP,GAAG,CAACxiI,IAAb,CAArB;AACD,GAFD,MAEO,IAAI,CAAC+qX,YAAL,EAAmB;AACxB,WAAOf,cAAc,CAAC,SAAD,EAAYxnP,GAAG,CAACp6F,OAAhB,CAArB;AACD,GAFM,MAEA,OAAO,KAAP;AACR;AAEM,SAASuzU,uBAAT,CAAiCn5O,GAAjC,EAAsC;AAC3C,MAAMooP,SAAS,GAAG7nQ,mDAAS,CAACyf,GAAG,CAACxiI,IAAL,CAA3B;AAAA,MACEgrX,UAAU,GAAGpB,wDAAc,CAACpnP,GAAG,CAAC5zF,KAAL,EAAY,CAAZ,EAAe,EAAf,CAD7B;AAAA,MAEEq8U,QAAQ,GAAGrB,wDAAc,CAACpnP,GAAG,CAAC1zF,GAAL,EAAU,CAAV,EAAayrU,qDAAW,CAAC/3O,GAAG,CAACxiI,IAAL,EAAWwiI,GAAG,CAAC5zF,KAAf,CAAxB,CAF3B;;AAIA,MAAI,CAACg8U,SAAL,EAAgB;AACd,WAAOZ,cAAc,CAAC,MAAD,EAASxnP,GAAG,CAACxiI,IAAb,CAArB;AACD,GAFD,MAEO,IAAI,CAACgrX,UAAL,EAAiB;AACtB,WAAOhB,cAAc,CAAC,OAAD,EAAUxnP,GAAG,CAAC5zF,KAAd,CAArB;AACD,GAFM,MAEA,IAAI,CAACq8U,QAAL,EAAe;AACpB,WAAOjB,cAAc,CAAC,KAAD,EAAQxnP,GAAG,CAAC1zF,GAAZ,CAArB;AACD,GAFM,MAEA,OAAO,KAAP;AACR;AAEM,SAASgtU,kBAAT,CAA4Bt5O,GAA5B,EAAiC;AACtC,MAAQzzF,IAAR,GAA8CyzF,GAA9C,CAAQzzF,IAAR;AAAA,MAAcC,MAAd,GAA8CwzF,GAA9C,CAAcxzF,MAAd;AAAA,MAAsBC,MAAtB,GAA8CuzF,GAA9C,CAAsBvzF,MAAtB;AAAA,MAA8BC,WAA9B,GAA8CszF,GAA9C,CAA8BtzF,WAA9B;AACA,MAAMg8U,SAAS,GACXtB,wDAAc,CAAC76U,IAAD,EAAO,CAAP,EAAU,EAAV,CAAd,IACCA,IAAI,KAAK,EAAT,IAAeC,MAAM,KAAK,CAA1B,IAA+BC,MAAM,KAAK,CAA1C,IAA+CC,WAAW,KAAK,CAFpE;AAAA,MAGEi8U,WAAW,GAAGvB,wDAAc,CAAC56U,MAAD,EAAS,CAAT,EAAY,EAAZ,CAH9B;AAAA,MAIEo8U,WAAW,GAAGxB,wDAAc,CAAC36U,MAAD,EAAS,CAAT,EAAY,EAAZ,CAJ9B;AAAA,MAKEo8U,gBAAgB,GAAGzB,wDAAc,CAAC16U,WAAD,EAAc,CAAd,EAAiB,GAAjB,CALnC;;AAOA,MAAI,CAACg8U,SAAL,EAAgB;AACd,WAAOlB,cAAc,CAAC,MAAD,EAASj7U,IAAT,CAArB;AACD,GAFD,MAEO,IAAI,CAACo8U,WAAL,EAAkB;AACvB,WAAOnB,cAAc,CAAC,QAAD,EAAWh7U,MAAX,CAArB;AACD,GAFM,MAEA,IAAI,CAACo8U,WAAL,EAAkB;AACvB,WAAOpB,cAAc,CAAC,QAAD,EAAW/6U,MAAX,CAArB;AACD,GAFM,MAEA,IAAI,CAACo8U,gBAAL,EAAuB;AAC5B,WAAOrB,cAAc,CAAC,aAAD,EAAgB96U,WAAhB,CAArB;AACD,GAFM,MAEA,OAAO,KAAP;AACR;;;;;;;;;;;;;;;;;;;;;;AChKD;;AAEA,SAASo8U,OAAT,CAAiB9H,OAAjB,EAA0BC,KAA1B,EAAiC;AAC/B,MAAM8H,WAAW,GAAG,SAAdA,WAAc,CAAC/O,EAAD;AAAA,WAAQA,EAAE,CAACoG,KAAH,CAAS,CAAT,EAAY;AAAExB,MAAAA,aAAa,EAAE;AAAjB,KAAZ,EAAqChB,OAArC,CAA6C,KAA7C,EAAoDhvW,OAApD,EAAR;AAAA,GAApB;AAAA,MACE40J,EAAE,GAAGulN,WAAW,CAAC9H,KAAD,CAAX,GAAqB8H,WAAW,CAAC/H,OAAD,CADvC;;AAEA,SAAO3xY,IAAI,CAACgE,KAAL,CAAWkkY,+DAAA,CAAoB/zM,EAApB,EAAwB+jI,EAAxB,CAA2B,MAA3B,CAAX,CAAP;AACD;;AAED,SAASyhF,cAAT,CAAwBxxJ,MAAxB,EAAgCypJ,KAAhC,EAAuCpD,KAAvC,EAA8C;AAC5C,MAAMlqM,OAAO,GAAG,CACd,CAAC,OAAD,EAAU,UAACtmM,CAAD,EAAIC,CAAJ;AAAA,WAAUA,CAAC,CAACkwB,IAAF,GAASnwB,CAAC,CAACmwB,IAArB;AAAA,GAAV,CADc,EAEd,CAAC,UAAD,EAAa,UAACnwB,CAAD,EAAIC,CAAJ;AAAA,WAAUA,CAAC,CAACuvY,OAAF,GAAYxvY,CAAC,CAACwvY,OAAxB;AAAA,GAAb,CAFc,EAGd,CAAC,QAAD,EAAW,UAACxvY,CAAD,EAAIC,CAAJ;AAAA,WAAUA,CAAC,CAAC8+D,KAAF,GAAU/+D,CAAC,CAAC++D,KAAZ,GAAoB,CAAC9+D,CAAC,CAACkwB,IAAF,GAASnwB,CAAC,CAACmwB,IAAZ,IAAoB,EAAlD;AAAA,GAAX,CAHc,EAId,CACE,OADF,EAEE,UAACnwB,CAAD,EAAIC,CAAJ,EAAU;AACR,QAAM+4E,IAAI,GAAGyiU,OAAO,CAACz7Y,CAAD,EAAIC,CAAJ,CAApB;AACA,WAAO,CAAC+4E,IAAI,GAAIA,IAAI,GAAG,CAAhB,IAAsB,CAA7B;AACD,GALH,CAJc,EAWd,CAAC,MAAD,EAASyiU,OAAT,CAXc,CAAhB;AAcA,MAAM7tO,OAAO,GAAG,EAAhB;AACA,MAAIguO,WAAJ,EAAiBC,SAAjB;;AAEA,8BAA6Bv1M,OAA7B,8BAAsC;AAAjC;AAAA,QAAOvtI,IAAP;AAAA,QAAa0tI,MAAb;;AACH,QAAI+pM,KAAK,CAAC7kX,OAAN,CAAcotC,IAAd,KAAuB,CAA3B,EAA8B;AAC5B6iV,MAAAA,WAAW,GAAG7iV,IAAd;AAEA,UAAIrxD,KAAK,GAAG++L,MAAM,CAAC0jD,MAAD,EAASypJ,KAAT,CAAlB;AACAiI,MAAAA,SAAS,GAAG1xJ,MAAM,CAACooJ,IAAP,kOAAex5U,IAAf,EAAsBrxD,KAAtB,EAAZ;;AAEA,UAAIm0Y,SAAS,GAAGjI,KAAhB,EAAuB;AACrBzpJ,QAAAA,MAAM,GAAGA,MAAM,CAACooJ,IAAP,kOAAex5U,IAAf,EAAsBrxD,KAAK,GAAG,CAA9B,EAAT;AACAA,QAAAA,KAAK,IAAI,CAAT;AACD,OAHD,MAGO;AACLyiP,QAAAA,MAAM,GAAG0xJ,SAAT;AACD;;AAEDjuO,MAAAA,OAAO,CAAC70G,IAAD,CAAP,GAAgBrxD,KAAhB;AACD;AACF;;AAED,SAAO,CAACyiP,MAAD,EAASv8E,OAAT,EAAkBiuO,SAAlB,EAA6BD,WAA7B,CAAP;AACD;;AAED,6BAAe,oCAAUjI,OAAV,EAAmBC,KAAnB,EAA0BpD,KAA1B,EAAiC/3L,IAAjC,EAAuC;AACpD,wBAAgDkjM,cAAc,CAAChI,OAAD,EAAUC,KAAV,EAAiBpD,KAAjB,CAA9D;AAAA;AAAA,MAAKrmJ,MAAL;AAAA,MAAav8E,OAAb;AAAA,MAAsBiuO,SAAtB;AAAA,MAAiCD,WAAjC;;AAEA,MAAME,eAAe,GAAGlI,KAAK,GAAGzpJ,MAAhC;AAEA,MAAM4xJ,eAAe,GAAGvL,KAAK,CAAC3lY,MAAN,CACtB,UAAC04B,CAAD;AAAA,WAAO,CAAC,OAAD,EAAU,SAAV,EAAqB,SAArB,EAAgC,cAAhC,EAAgD5X,OAAhD,CAAwD4X,CAAxD,KAA8D,CAArE;AAAA,GADsB,CAAxB;;AAIA,MAAIw4W,eAAe,CAACp7Y,MAAhB,KAA2B,CAA/B,EAAkC;AAChC,QAAIk7Y,SAAS,GAAGjI,KAAhB,EAAuB;AACrBiI,MAAAA,SAAS,GAAG1xJ,MAAM,CAACooJ,IAAP,kOAAeqJ,WAAf,EAA6B,CAA7B,EAAZ;AACD;;AAED,QAAIC,SAAS,KAAK1xJ,MAAlB,EAA0B;AACxBv8E,MAAAA,OAAO,CAACguO,WAAD,CAAP,GAAuB,CAAChuO,OAAO,CAACguO,WAAD,CAAP,IAAwB,CAAzB,IAA8BE,eAAe,IAAID,SAAS,GAAG1xJ,MAAhB,CAApE;AACD;AACF;;AAED,MAAMx8L,QAAQ,GAAGu8U,+DAAA,CAAoBt8N,OAApB,EAA6B6qC,IAA7B,CAAjB;;AAEA,MAAIsjM,eAAe,CAACp7Y,MAAhB,GAAyB,CAA7B,EAAgC;AAAA;;AAC9B,WAAO,wBAAAupY,+DAAA,CAAoB4R,eAApB,EAAqCrjM,IAArC,GACJsgM,OADI,6PACOgD,eADP,GAEJxJ,IAFI,CAEC5kV,QAFD,CAAP;AAGD,GAJD,MAIO;AACL,WAAOA,QAAP;AACD;AACF;;;;;;;;;;;;;;;;;;AC3ED,IAAMquV,gBAAgB,GAAG;AACvBC,EAAAA,IAAI,EAAE,iBADiB;AAEvBC,EAAAA,OAAO,EAAE,iBAFc;AAGvBC,EAAAA,IAAI,EAAE,iBAHiB;AAIvBC,EAAAA,IAAI,EAAE,iBAJiB;AAKvBC,EAAAA,IAAI,EAAE,iBALiB;AAMvBC,EAAAA,QAAQ,EAAE,iBANa;AAOvBC,EAAAA,IAAI,EAAE,iBAPiB;AAQvBC,EAAAA,OAAO,EAAE,uBARc;AASvBC,EAAAA,IAAI,EAAE,iBATiB;AAUvBC,EAAAA,IAAI,EAAE,iBAViB;AAWvBC,EAAAA,IAAI,EAAE,iBAXiB;AAYvBC,EAAAA,IAAI,EAAE,iBAZiB;AAavBC,EAAAA,IAAI,EAAE,iBAbiB;AAcvBC,EAAAA,IAAI,EAAE,iBAdiB;AAevBC,EAAAA,IAAI,EAAE,iBAfiB;AAgBvBC,EAAAA,IAAI,EAAE,iBAhBiB;AAiBvBC,EAAAA,OAAO,EAAE,iBAjBc;AAkBvBC,EAAAA,IAAI,EAAE,iBAlBiB;AAmBvBC,EAAAA,IAAI,EAAE,iBAnBiB;AAoBvBC,EAAAA,IAAI,EAAE,iBApBiB;AAqBvBC,EAAAA,IAAI,EAAE;AArBiB,CAAzB;AAwBA,IAAMC,qBAAqB,GAAG;AAC5BrB,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CADsB;AAE5BC,EAAAA,OAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAFmB;AAG5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAHsB;AAI5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAJsB;AAK5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CALsB;AAM5BC,EAAAA,QAAQ,EAAE,CAAC,KAAD,EAAQ,KAAR,CANkB;AAO5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAPsB;AAQ5BE,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CARsB;AAS5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CATsB;AAU5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAVsB;AAW5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAXsB;AAY5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAZsB;AAa5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAbsB;AAc5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAdsB;AAe5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAfsB;AAgB5BC,EAAAA,OAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAhBmB;AAiB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAjBsB;AAkB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAlBsB;AAmB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP;AAnBsB,CAA9B;AAsBA,IAAMG,YAAY,GAAGvB,gBAAgB,CAACQ,OAAjB,CAAyBzuX,OAAzB,CAAiC,UAAjC,EAA6C,EAA7C,EAAiDrC,KAAjD,CAAuD,EAAvD,CAArB;AAEO,SAAS8xX,WAAT,CAAqBtqP,GAArB,EAA0B;AAC/B,MAAI9wJ,KAAK,GAAG+hB,QAAQ,CAAC+uI,GAAD,EAAM,EAAN,CAApB;;AACA,MAAI3tJ,KAAK,CAACnD,KAAD,CAAT,EAAkB;AAChBA,IAAAA,KAAK,GAAG,EAAR;;AACA,SAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsxJ,GAAG,CAACvyJ,MAAxB,EAAgCiB,CAAC,EAAjC,EAAqC;AACnC,UAAMwnC,IAAI,GAAG8pH,GAAG,CAAC9hI,UAAJ,CAAexvB,CAAf,CAAb;;AAEA,UAAIsxJ,GAAG,CAACtxJ,CAAD,CAAH,CAAO+2I,MAAP,CAAcqjQ,gBAAgB,CAACQ,OAA/B,MAA4C,CAAC,CAAjD,EAAoD;AAClDp6Y,QAAAA,KAAK,IAAIm7Y,YAAY,CAAC5xX,OAAb,CAAqBunI,GAAG,CAACtxJ,CAAD,CAAxB,CAAT;AACD,OAFD,MAEO;AACL,aAAK,IAAMmV,GAAX,IAAkBumY,qBAAlB,EAAyC;AACvC,iQAAmBA,qBAAqB,CAACvmY,GAAD,CAAxC;AAAA,cAAO1U,GAAP;AAAA,cAAYC,GAAZ;;AACA,cAAI8mC,IAAI,IAAI/mC,GAAR,IAAe+mC,IAAI,IAAI9mC,GAA3B,EAAgC;AAC9BF,YAAAA,KAAK,IAAIgnC,IAAI,GAAG/mC,GAAhB;AACD;AACF;AACF;AACF;;AACD,WAAO8hB,QAAQ,CAAC/hB,KAAD,EAAQ,EAAR,CAAf;AACD,GAjBD,MAiBO;AACL,WAAOA,KAAP;AACD;AACF;AAEM,SAASq7Y,UAAT,OAAsD;AAAA,MAAhCzM,eAAgC,QAAhCA,eAAgC;AAAA,MAAb7mY,MAAa,uEAAJ,EAAI;AAC3D,SAAO,IAAIkP,MAAJ,WAAc2iY,gBAAgB,CAAChL,eAAe,IAAI,MAApB,CAA9B,SAA4D7mY,MAA5D,EAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1ED;AACA;;AAEA,SAASulB,SAAT,CAAmBijI,GAAnB,EAAwB;AACtB,SAAOljI,IAAI,CAACC,SAAL,CAAeijI,GAAf,EAAoBzvI,MAAM,CAACzT,IAAP,CAAYkjJ,GAAZ,EAAiBltJ,IAAjB,EAApB,CAAP;AACD;AAED;AACA;AACA;;;AAEO,IAAMi4Y,UAAU,GAAG,CACxB,SADwB,EAExB,UAFwB,EAGxB,OAHwB,EAIxB,OAJwB,EAKxB,KALwB,EAMxB,MANwB,EAOxB,MAPwB,EAQxB,QARwB,EASxB,WATwB,EAUxB,SAVwB,EAWxB,UAXwB,EAYxB,UAZwB,CAAnB;AAeA,IAAMC,WAAW,GAAG,CACzB,KADyB,EAEzB,KAFyB,EAGzB,KAHyB,EAIzB,KAJyB,EAKzB,KALyB,EAMzB,KANyB,EAOzB,KAPyB,EAQzB,KARyB,EASzB,KATyB,EAUzB,KAVyB,EAWzB,KAXyB,EAYzB,KAZyB,CAApB;AAeA,IAAMC,YAAY,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,EAAwD,GAAxD,CAArB;AAEA,SAAS1kU,MAAT,CAAgBv4E,MAAhB,EAAwB;AAC7B,UAAQA,MAAR;AACE,SAAK,QAAL;AACE,uBAAWi9Y,YAAX;;AACF,SAAK,OAAL;AACE,uBAAWD,WAAX;;AACF,SAAK,MAAL;AACE,uBAAWD,UAAX;;AACF,SAAK,SAAL;AACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,IAA9C,EAAoD,IAApD,EAA0D,IAA1D,CAAP;;AACF,SAAK,SAAL;AACE,aAAO,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,IAAvD,EAA6D,IAA7D,EAAmE,IAAnE,CAAP;;AACF;AACE,aAAO,IAAP;AAZJ;AAcD;AAEM,IAAMG,YAAY,GAAG,CAC1B,QAD0B,EAE1B,SAF0B,EAG1B,WAH0B,EAI1B,UAJ0B,EAK1B,QAL0B,EAM1B,UAN0B,EAO1B,QAP0B,CAArB;AAUA,IAAMC,aAAa,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,CAAtB;AAEA,IAAMC,cAAc,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAvB;AAEA,SAAStO,QAAT,CAAkB9uY,MAAlB,EAA0B;AAC/B,UAAQA,MAAR;AACE,SAAK,QAAL;AACE,uBAAWo9Y,cAAX;;AACF,SAAK,OAAL;AACE,uBAAWD,aAAX;;AACF,SAAK,MAAL;AACE,uBAAWD,YAAX;;AACF,SAAK,SAAL;AACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAP;;AACF;AACE,aAAO,IAAP;AAVJ;AAYD;AAEM,IAAMG,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;AAEA,IAAMC,QAAQ,GAAG,CAAC,eAAD,EAAkB,aAAlB,CAAjB;AAEA,IAAMC,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;AAEA,IAAMC,UAAU,GAAG,CAAC,GAAD,EAAM,GAAN,CAAnB;AAEA,SAASC,IAAT,CAAcz9Y,MAAd,EAAsB;AAC3B,UAAQA,MAAR;AACE,SAAK,QAAL;AACE,uBAAWw9Y,UAAX;;AACF,SAAK,OAAL;AACE,uBAAWD,SAAX;;AACF,SAAK,MAAL;AACE,uBAAWD,QAAX;;AACF;AACE,aAAO,IAAP;AARJ;AAUD;AAEM,SAASI,mBAAT,CAA6B1R,EAA7B,EAAiC;AACtC,SAAOqR,SAAS,CAACrR,EAAE,CAACztU,IAAH,GAAU,EAAV,GAAe,CAAf,GAAmB,CAApB,CAAhB;AACD;AAEM,SAASo/U,kBAAT,CAA4B3R,EAA5B,EAAgChsY,MAAhC,EAAwC;AAC7C,SAAO8uY,QAAQ,CAAC9uY,MAAD,CAAR,CAAiBgsY,EAAE,CAAC/lT,OAAH,GAAa,CAA9B,CAAP;AACD;AAEM,SAAS23T,gBAAT,CAA0B5R,EAA1B,EAA8BhsY,MAA9B,EAAsC;AAC3C,SAAOu4E,MAAM,CAACv4E,MAAD,CAAN,CAAegsY,EAAE,CAAC5tU,KAAH,GAAW,CAA1B,CAAP;AACD;AAEM,SAASy/U,cAAT,CAAwB7R,EAAxB,EAA4BhsY,MAA5B,EAAoC;AACzC,SAAOy9Y,IAAI,CAACz9Y,MAAD,CAAJ,CAAagsY,EAAE,CAACx8W,IAAH,GAAU,CAAV,GAAc,CAAd,GAAkB,CAA/B,CAAP;AACD;AAEM,SAASsuX,kBAAT,CAA4B1lV,IAA5B,EAAkChyD,KAAlC,EAA6E;AAAA,MAApCmtY,OAAoC,uEAA1B,QAA0B;AAAA,MAAhBwK,MAAgB,uEAAP,KAAO;AAClF,MAAMlO,KAAK,GAAG;AACZ1rT,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CADK;AAEZ4oT,IAAAA,QAAQ,EAAE,CAAC,SAAD,EAAY,MAAZ,CAFE;AAGZx0T,IAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,KAAV,CAHI;AAIZy0T,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CAJK;AAKZ30T,IAAAA,IAAI,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,CALM;AAMZ1oD,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CANK;AAOZE,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX,CAPG;AAQZE,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX;AARG,GAAd;AAWA,MAAMiuX,QAAQ,GAAG,CAAC,OAAD,EAAU,SAAV,EAAqB,SAArB,EAAgChzX,OAAhC,CAAwCotC,IAAxC,MAAkD,CAAC,CAApE;;AAEA,MAAIm7U,OAAO,KAAK,MAAZ,IAAsByK,QAA1B,EAAoC;AAClC,QAAMC,KAAK,GAAG7lV,IAAI,KAAK,MAAvB;;AACA,YAAQhyD,KAAR;AACE,WAAK,CAAL;AACE,eAAO63Y,KAAK,GAAG,UAAH,kBAAwBpO,KAAK,CAACz3U,IAAD,CAAL,CAAY,CAAZ,CAAxB,CAAZ;;AACF,WAAK,CAAC,CAAN;AACE,eAAO6lV,KAAK,GAAG,WAAH,kBAAyBpO,KAAK,CAACz3U,IAAD,CAAL,CAAY,CAAZ,CAAzB,CAAZ;;AACF,WAAK,CAAL;AACE,eAAO6lV,KAAK,GAAG,OAAH,kBAAqBpO,KAAK,CAACz3U,IAAD,CAAL,CAAY,CAAZ,CAArB,CAAZ;;AACF,cAPF,CAOW;;AAPX;AASD;;AAED,MAAM8lV,QAAQ,GAAG37X,MAAM,CAAC05O,EAAP,CAAU71P,KAAV,EAAiB,CAAC,CAAlB,KAAwBA,KAAK,GAAG,CAAjD;AAAA,MACE+3Y,QAAQ,GAAG98Y,IAAI,CAACsF,GAAL,CAASP,KAAT,CADb;AAAA,MAEEg4Y,QAAQ,GAAGD,QAAQ,KAAK,CAF1B;AAAA,MAGEE,QAAQ,GAAGxO,KAAK,CAACz3U,IAAD,CAHlB;AAAA,MAIEkmV,OAAO,GAAGP,MAAM,GACZK,QAAQ,GACNC,QAAQ,CAAC,CAAD,CADF,GAENA,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAHb,GAIZD,QAAQ,GACRvO,KAAK,CAACz3U,IAAD,CAAL,CAAY,CAAZ,CADQ,GAERA,IAVN;AAWA,SAAO8lV,QAAQ,aAAMC,QAAN,cAAkBG,OAAlB,yBAAwCH,QAAxC,cAAoDG,OAApD,CAAf;AACD;AAEM,SAASC,YAAT,CAAsBC,WAAtB,EAAmC;AACxC;AACA;AACA,MAAMz1D,QAAQ,GAAGr9N,8CAAI,CAAC8yR,WAAD,EAAc,CAC/B,SAD+B,EAE/B,KAF+B,EAG/B,MAH+B,EAI/B,OAJ+B,EAK/B,KAL+B,EAM/B,MAN+B,EAO/B,QAP+B,EAQ/B,QAR+B,EAS/B,cAT+B,EAU/B,WAV+B,CAAd,CAArB;AAAA,MAYEpoY,GAAG,GAAG2Y,SAAS,CAACg6T,QAAD,CAZjB;AAAA,MAaE01D,YAAY,GAAG,4BAbjB;;AAcA,UAAQroY,GAAR;AACE,SAAK2Y,SAAS,CAACw8W,mDAAD,CAAd;AACE,aAAO,UAAP;;AACF,SAAKx8W,SAAS,CAACw8W,iDAAD,CAAd;AACE,aAAO,aAAP;;AACF,SAAKx8W,SAAS,CAACw8W,8DAAD,CAAd;AACE,aAAO,kBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,kDAAD,CAAd;AACE,aAAO,cAAP;;AACF,SAAKx8W,SAAS,CAACw8W,kDAAD,CAAd;AACE,aAAO,oBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,oDAAD,CAAd;AACE,aAAO,QAAP;;AACF,SAAKx8W,SAAS,CAACw8W,0DAAD,CAAd;AACE,aAAO,WAAP;;AACF,SAAKx8W,SAAS,CAACw8W,+DAAD,CAAd;AACE,aAAO,QAAP;;AACF,SAAKx8W,SAAS,CAACw8W,8DAAD,CAAd;AACE,aAAO,QAAP;;AACF,SAAKx8W,SAAS,CAACw8W,uDAAD,CAAd;AACE,aAAO,OAAP;;AACF,SAAKx8W,SAAS,CAACw8W,6DAAD,CAAd;AACE,aAAO,UAAP;;AACF,SAAKx8W,SAAS,CAACw8W,kEAAD,CAAd;AACE,aAAO,OAAP;;AACF,SAAKx8W,SAAS,CAACw8W,iEAAD,CAAd;AACE,aAAO,OAAP;;AACF,SAAKx8W,SAAS,CAACw8W,uDAAD,CAAd;AACE,aAAO,kBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,qDAAD,CAAd;AACE,aAAO,qBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,sDAAD,CAAd;AACE,aAAO,sBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,sDAAD,CAAd;AACE,aAAOkT,YAAP;;AACF,SAAK1vX,SAAS,CAACw8W,oEAAD,CAAd;AACE,aAAO,qBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,kEAAD,CAAd;AACE,aAAO,wBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,kEAAD,CAAd;AACE,aAAO,yBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,mEAAD,CAAd;AACE,aAAO,yBAAP;;AACF,SAAKx8W,SAAS,CAACw8W,mEAAD,CAAd;AACE,aAAO,+BAAP;;AACF;AACE,aAAOkT,YAAP;AA9CJ;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxOD;AACA;AACA;AAEA,IAAMj9Y,CAAC,GAAG,SAAV;AAAA,IACEmL,CAAC,GAAG,OADN;AAAA,IAEEyW,CAAC,GAAG,MAFN;AAIO,IAAM4uX,UAAU,GAAG;AACxBxiX,EAAAA,IAAI,EAAEhuB,CADkB;AAExB48D,EAAAA,KAAK,EAAE58D,CAFiB;AAGxB88D,EAAAA,GAAG,EAAE98D;AAHmB,CAAnB;AAMA,IAAMszY,QAAQ,GAAG;AACtBtlX,EAAAA,IAAI,EAAEhuB,CADgB;AAEtB48D,EAAAA,KAAK,EAAEzxD,CAFe;AAGtB2xD,EAAAA,GAAG,EAAE98D;AAHiB,CAAjB;AAMA,IAAMuzY,qBAAqB,GAAG;AACnCvlX,EAAAA,IAAI,EAAEhuB,CAD6B;AAEnC48D,EAAAA,KAAK,EAAEzxD,CAF4B;AAGnC2xD,EAAAA,GAAG,EAAE98D,CAH8B;AAInCykF,EAAAA,OAAO,EAAEt5E;AAJ0B,CAA9B;AAOA,IAAMqoY,SAAS,GAAG;AACvBxlX,EAAAA,IAAI,EAAEhuB,CADiB;AAEvB48D,EAAAA,KAAK,EAAEh7C,CAFgB;AAGvBk7C,EAAAA,GAAG,EAAE98D;AAHkB,CAAlB;AAMA,IAAMyzY,SAAS,GAAG;AACvBzlX,EAAAA,IAAI,EAAEhuB,CADiB;AAEvB48D,EAAAA,KAAK,EAAEh7C,CAFgB;AAGvBk7C,EAAAA,GAAG,EAAE98D,CAHkB;AAIvBykF,EAAAA,OAAO,EAAE7iE;AAJc,CAAlB;AAOA,IAAM8xX,WAAW,GAAG;AACzB32U,EAAAA,IAAI,EAAE/8D,CADmB;AAEzBg9D,EAAAA,MAAM,EAAEh9D;AAFiB,CAApB;AAKA,IAAM2zY,iBAAiB,GAAG;AAC/B52U,EAAAA,IAAI,EAAE/8D,CADyB;AAE/Bg9D,EAAAA,MAAM,EAAEh9D,CAFuB;AAG/Bi9D,EAAAA,MAAM,EAAEj9D;AAHuB,CAA1B;AAMA,IAAM4zY,sBAAsB,GAAG;AACpC72U,EAAAA,IAAI,EAAE/8D,CAD8B;AAEpCg9D,EAAAA,MAAM,EAAEh9D,CAF4B;AAGpCi9D,EAAAA,MAAM,EAAEj9D,CAH4B;AAIpCk9Y,EAAAA,YAAY,EAAE/xY;AAJsB,CAA/B;AAOA,IAAM0oY,qBAAqB,GAAG;AACnC92U,EAAAA,IAAI,EAAE/8D,CAD6B;AAEnCg9D,EAAAA,MAAM,EAAEh9D,CAF2B;AAGnCi9D,EAAAA,MAAM,EAAEj9D,CAH2B;AAInCk9Y,EAAAA,YAAY,EAAEt7X;AAJqB,CAA9B;AAOA,IAAMkyX,cAAc,GAAG;AAC5B/2U,EAAAA,IAAI,EAAE/8D,CADsB;AAE5Bg9D,EAAAA,MAAM,EAAEh9D,CAFoB;AAG5Bm9Y,EAAAA,SAAS,EAAE;AAHiB,CAAvB;AAMA,IAAMpJ,oBAAoB,GAAG;AAClCh3U,EAAAA,IAAI,EAAE/8D,CAD4B;AAElCg9D,EAAAA,MAAM,EAAEh9D,CAF0B;AAGlCi9D,EAAAA,MAAM,EAAEj9D,CAH0B;AAIlCm9Y,EAAAA,SAAS,EAAE;AAJuB,CAA7B;AAOA,IAAMnJ,yBAAyB,GAAG;AACvCj3U,EAAAA,IAAI,EAAE/8D,CADiC;AAEvCg9D,EAAAA,MAAM,EAAEh9D,CAF+B;AAGvCi9D,EAAAA,MAAM,EAAEj9D,CAH+B;AAIvCm9Y,EAAAA,SAAS,EAAE,KAJ4B;AAKvCD,EAAAA,YAAY,EAAE/xY;AALyB,CAAlC;AAQA,IAAM8oY,wBAAwB,GAAG;AACtCl3U,EAAAA,IAAI,EAAE/8D,CADgC;AAEtCg9D,EAAAA,MAAM,EAAEh9D,CAF8B;AAGtCi9D,EAAAA,MAAM,EAAEj9D,CAH8B;AAItCm9Y,EAAAA,SAAS,EAAE,KAJ2B;AAKtCD,EAAAA,YAAY,EAAEt7X;AALwB,CAAjC;AAQA,IAAMsyX,cAAc,GAAG;AAC5BlmX,EAAAA,IAAI,EAAEhuB,CADsB;AAE5B48D,EAAAA,KAAK,EAAE58D,CAFqB;AAG5B88D,EAAAA,GAAG,EAAE98D,CAHuB;AAI5B+8D,EAAAA,IAAI,EAAE/8D,CAJsB;AAK5Bg9D,EAAAA,MAAM,EAAEh9D;AALoB,CAAvB;AAQA,IAAMm0Y,2BAA2B,GAAG;AACzCnmX,EAAAA,IAAI,EAAEhuB,CADmC;AAEzC48D,EAAAA,KAAK,EAAE58D,CAFkC;AAGzC88D,EAAAA,GAAG,EAAE98D,CAHoC;AAIzC+8D,EAAAA,IAAI,EAAE/8D,CAJmC;AAKzCg9D,EAAAA,MAAM,EAAEh9D,CALiC;AAMzCi9D,EAAAA,MAAM,EAAEj9D;AANiC,CAApC;AASA,IAAMo0Y,YAAY,GAAG;AAC1BpmX,EAAAA,IAAI,EAAEhuB,CADoB;AAE1B48D,EAAAA,KAAK,EAAEzxD,CAFmB;AAG1B2xD,EAAAA,GAAG,EAAE98D,CAHqB;AAI1B+8D,EAAAA,IAAI,EAAE/8D,CAJoB;AAK1Bg9D,EAAAA,MAAM,EAAEh9D;AALkB,CAArB;AAQA,IAAMq0Y,yBAAyB,GAAG;AACvCrmX,EAAAA,IAAI,EAAEhuB,CADiC;AAEvC48D,EAAAA,KAAK,EAAEzxD,CAFgC;AAGvC2xD,EAAAA,GAAG,EAAE98D,CAHkC;AAIvC+8D,EAAAA,IAAI,EAAE/8D,CAJiC;AAKvCg9D,EAAAA,MAAM,EAAEh9D,CAL+B;AAMvCi9D,EAAAA,MAAM,EAAEj9D;AAN+B,CAAlC;AASA,IAAMs0Y,yBAAyB,GAAG;AACvCtmX,EAAAA,IAAI,EAAEhuB,CADiC;AAEvC48D,EAAAA,KAAK,EAAEzxD,CAFgC;AAGvC2xD,EAAAA,GAAG,EAAE98D,CAHkC;AAIvCykF,EAAAA,OAAO,EAAEt5E,CAJ8B;AAKvC4xD,EAAAA,IAAI,EAAE/8D,CALiC;AAMvCg9D,EAAAA,MAAM,EAAEh9D;AAN+B,CAAlC;AASA,IAAMu0Y,aAAa,GAAG;AAC3BvmX,EAAAA,IAAI,EAAEhuB,CADqB;AAE3B48D,EAAAA,KAAK,EAAEh7C,CAFoB;AAG3Bk7C,EAAAA,GAAG,EAAE98D,CAHsB;AAI3B+8D,EAAAA,IAAI,EAAE/8D,CAJqB;AAK3Bg9D,EAAAA,MAAM,EAAEh9D,CALmB;AAM3Bk9Y,EAAAA,YAAY,EAAE/xY;AANa,CAAtB;AASA,IAAMqpY,0BAA0B,GAAG;AACxCxmX,EAAAA,IAAI,EAAEhuB,CADkC;AAExC48D,EAAAA,KAAK,EAAEh7C,CAFiC;AAGxCk7C,EAAAA,GAAG,EAAE98D,CAHmC;AAIxC+8D,EAAAA,IAAI,EAAE/8D,CAJkC;AAKxCg9D,EAAAA,MAAM,EAAEh9D,CALgC;AAMxCi9D,EAAAA,MAAM,EAAEj9D,CANgC;AAOxCk9Y,EAAAA,YAAY,EAAE/xY;AAP0B,CAAnC;AAUA,IAAMspY,aAAa,GAAG;AAC3BzmX,EAAAA,IAAI,EAAEhuB,CADqB;AAE3B48D,EAAAA,KAAK,EAAEh7C,CAFoB;AAG3Bk7C,EAAAA,GAAG,EAAE98D,CAHsB;AAI3BykF,EAAAA,OAAO,EAAE7iE,CAJkB;AAK3Bm7C,EAAAA,IAAI,EAAE/8D,CALqB;AAM3Bg9D,EAAAA,MAAM,EAAEh9D,CANmB;AAO3Bk9Y,EAAAA,YAAY,EAAEt7X;AAPa,CAAtB;AAUA,IAAM8yX,0BAA0B,GAAG;AACxC1mX,EAAAA,IAAI,EAAEhuB,CADkC;AAExC48D,EAAAA,KAAK,EAAEh7C,CAFiC;AAGxCk7C,EAAAA,GAAG,EAAE98D,CAHmC;AAIxCykF,EAAAA,OAAO,EAAE7iE,CAJ+B;AAKxCm7C,EAAAA,IAAI,EAAE/8D,CALkC;AAMxCg9D,EAAAA,MAAM,EAAEh9D,CANgC;AAOxCi9D,EAAAA,MAAM,EAAEj9D,CAPgC;AAQxCk9Y,EAAAA,YAAY,EAAEt7X;AAR0B,CAAnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtKP;AACA;AACA;;AAEA,SAASy7X,eAAT,CAAyBC,MAAzB,EAAiCC,aAAjC,EAAgD;AAC9C,MAAIpyY,CAAC,GAAG,EAAR;;AAD8C,0PAE1BmyY,MAF0B;AAAA;;AAAA;AAE9C,wDAA4B;AAAA,UAAjBhuX,KAAiB;;AAC1B,UAAIA,KAAK,CAACsiI,OAAV,EAAmB;AACjBzmJ,QAAAA,CAAC,IAAImkB,KAAK,CAACuxE,GAAX;AACD,OAFD,MAEO;AACL11F,QAAAA,CAAC,IAAIoyY,aAAa,CAACjuX,KAAK,CAACuxE,GAAP,CAAlB;AACD;AACF;AAR6C;AAAA;AAAA;AAAA;AAAA;;AAS9C,SAAO11F,CAAP;AACD;;AAED,IAAMqyY,uBAAsB,GAAG;AAC7Bj6X,EAAAA,CAAC,EAAEwmX,mDAD0B;AAE7B0T,EAAAA,EAAE,EAAE1T,iDAFyB;AAG7B2T,EAAAA,GAAG,EAAE3T,kDAHwB;AAI7B4T,EAAAA,IAAI,EAAE5T,kDAJuB;AAK7B3lY,EAAAA,CAAC,EAAE2lY,oDAL0B;AAM7B6T,EAAAA,EAAE,EAAE7T,0DANyB;AAO7B8T,EAAAA,GAAG,EAAE9T,+DAPwB;AAQ7B+T,EAAAA,IAAI,EAAE/T,8DARuB;AAS7BrgX,EAAAA,CAAC,EAAEqgX,uDAT0B;AAU7BgU,EAAAA,EAAE,EAAEhU,6DAVyB;AAW7BiU,EAAAA,GAAG,EAAEjU,kEAXwB;AAY7BkU,EAAAA,IAAI,EAAElU,iEAZuB;AAa7BjrY,EAAAA,CAAC,EAAEirY,uDAb0B;AAc7BmU,EAAAA,EAAE,EAAEnU,qDAdyB;AAe7BoU,EAAAA,GAAG,EAAEpU,sDAfwB;AAgB7BqU,EAAAA,IAAI,EAAErU,sDAhBuB;AAiB7BsU,EAAAA,CAAC,EAAEtU,oEAjB0B;AAkB7BuU,EAAAA,EAAE,EAAEvU,kEAlByB;AAmB7BwU,EAAAA,GAAG,EAAExU,mEAnBwB;AAoB7ByU,EAAAA,IAAI,EAAEzU,mEAAkC2K;AApBX,CAA/B;AAuBA;AACA;AACA;;IAEqBvM;AA2CnB,qBAAY1sW,MAAZ,EAAoB80W,UAApB,EAAgC;AAAA;;AAC9B,SAAKj6L,IAAL,GAAYi6L,UAAZ;AACA,SAAK32F,GAAL,GAAWn+Q,MAAX;AACA,SAAKgjX,SAAL,GAAiB,IAAjB;AACD;;;;WAED,iCAAwBjU,EAAxB,EAA4Bl0L,IAA5B,EAAkC;AAChC,UAAI,KAAKmoM,SAAL,KAAmB,IAAvB,EAA6B;AAC3B,aAAKA,SAAL,GAAiB,KAAK7kG,GAAL,CAAS8kG,iBAAT,EAAjB;AACD;;AACD,UAAMC,EAAE,GAAG,KAAKF,SAAL,CAAeG,WAAf,CAA2BpU,EAA3B,8bAAoC,KAAKl0L,IAAzC,GAAkDA,IAAlD,EAAX;AACA,aAAOqoM,EAAE,CAAC13Y,MAAH,EAAP;AACD;;;WAED,wBAAeujY,EAAf,EAA8B;AAAA,UAAXl0L,IAAW,uEAAJ,EAAI;AAC5B,UAAMqoM,EAAE,GAAG,KAAK/kG,GAAL,CAASglG,WAAT,CAAqBpU,EAArB,8bAA8B,KAAKl0L,IAAnC,GAA4CA,IAA5C,EAAX;AACA,aAAOqoM,EAAE,CAAC13Y,MAAH,EAAP;AACD;;;WAED,6BAAoBujY,EAApB,EAAmC;AAAA,UAAXl0L,IAAW,uEAAJ,EAAI;AACjC,UAAMqoM,EAAE,GAAG,KAAK/kG,GAAL,CAASglG,WAAT,CAAqBpU,EAArB,8bAA8B,KAAKl0L,IAAnC,GAA4CA,IAA5C,EAAX;AACA,aAAOqoM,EAAE,CAACE,aAAH,EAAP;AACD;;;WAED,yBAAgBrU,EAAhB,EAA+B;AAAA,UAAXl0L,IAAW,uEAAJ,EAAI;AAC7B,UAAMqoM,EAAE,GAAG,KAAK/kG,GAAL,CAASglG,WAAT,CAAqBpU,EAArB,8bAA8B,KAAKl0L,IAAnC,GAA4CA,IAA5C,EAAX;AACA,aAAOqoM,EAAE,CAACxP,eAAH,EAAP;AACD;;;WAED,aAAInvY,CAAJ,EAAc;AAAA,UAAP0D,CAAO,uEAAH,CAAG;;AACZ;AACA,UAAI,KAAK4yM,IAAL,CAAU41L,WAAd,EAA2B;AACzB,eAAOt3P,kDAAQ,CAAC50I,CAAD,EAAI0D,CAAJ,CAAf;AACD;;AAED,UAAM4yM,IAAI,GAAG,gOAAK,KAAKA,IAAb,CAAV;;AAEA,UAAI5yM,CAAC,GAAG,CAAR,EAAW;AACT4yM,QAAAA,IAAI,CAACwoM,KAAL,GAAap7Y,CAAb;AACD;;AAED,aAAO,KAAKk2S,GAAL,CAAS28F,eAAT,CAAyBjgM,IAAzB,EAA+BrvM,MAA/B,CAAsCjH,CAAtC,CAAP;AACD;;;WAED,kCAAyBwqY,EAAzB,EAA6B6F,GAA7B,EAAkC;AAAA;;AAChC,UAAM0O,YAAY,GAAG,KAAKnlG,GAAL,CAASolG,WAAT,OAA2B,IAAhD;AAAA,UACEC,oBAAoB,GAAG,KAAKrlG,GAAL,CAASk1F,cAAT,IAA2B,KAAKl1F,GAAL,CAASk1F,cAAT,KAA4B,SADhF;AAAA,UAEEjkV,MAAM,GAAG,SAATA,MAAS,CAACyrJ,IAAD,EAAO0hI,OAAP;AAAA,eAAmB,KAAI,CAACp+B,GAAL,CAASo+B,OAAT,CAAiBwyD,EAAjB,EAAqBl0L,IAArB,EAA2B0hI,OAA3B,CAAnB;AAAA,OAFX;AAAA,UAGEknE,YAAY,GAAG,SAAfA,YAAe,CAAC5oM,IAAD,EAAU;AACvB,YAAIk0L,EAAE,CAACmC,aAAH,IAAoBnC,EAAE,CAACxkY,MAAH,KAAc,CAAlC,IAAuCswM,IAAI,CAAC01L,MAAhD,EAAwD;AACtD,iBAAO,GAAP;AACD;;AAED,eAAOxB,EAAE,CAACyB,OAAH,GAAazB,EAAE,CAAC54M,IAAH,CAAQstN,YAAR,CAAqB1U,EAAE,CAACz0U,EAAxB,EAA4BugJ,IAAI,CAACrvM,MAAjC,CAAb,GAAwD,EAA/D;AACD,OATH;AAAA,UAUEk4Y,QAAQ,GAAG,SAAXA,QAAW;AAAA,eACTJ,YAAY,GACR3B,4DAAA,CAA4B5S,EAA5B,CADQ,GAER3/U,MAAM,CAAC;AAAEkS,UAAAA,IAAI,EAAE,SAAR;AAAmBogV,UAAAA,SAAS,EAAE;AAA9B,SAAD,EAAwC,WAAxC,CAHD;AAAA,OAVb;AAAA,UAcEvgV,KAAK,GAAG,SAARA,KAAQ,CAACp+D,MAAD,EAASy8M,UAAT;AAAA,eACN8jM,YAAY,GACR3B,yDAAA,CAAyB5S,EAAzB,EAA6BhsY,MAA7B,CADQ,GAERqsD,MAAM,CAACowJ,UAAU,GAAG;AAAEr+I,UAAAA,KAAK,EAAEp+D;AAAT,SAAH,GAAuB;AAAEo+D,UAAAA,KAAK,EAAEp+D,MAAT;AAAiBs+D,UAAAA,GAAG,EAAE;AAAtB,SAAlC,EAAqE,OAArE,CAHJ;AAAA,OAdV;AAAA,UAkBE2nB,OAAO,GAAG,SAAVA,OAAU,CAACjmF,MAAD,EAASy8M,UAAT;AAAA,eACR8jM,YAAY,GACR3B,2DAAA,CAA2B5S,EAA3B,EAA+BhsY,MAA/B,CADQ,GAERqsD,MAAM,CACJowJ,UAAU,GAAG;AAAEx2H,UAAAA,OAAO,EAAEjmF;AAAX,SAAH,GAAyB;AAAEimF,UAAAA,OAAO,EAAEjmF,MAAX;AAAmBo+D,UAAAA,KAAK,EAAE,MAA1B;AAAkCE,UAAAA,GAAG,EAAE;AAAvC,SAD/B,EAEJ,SAFI,CAHF;AAAA,OAlBZ;AAAA,UAyBEsiV,UAAU,GAAG,SAAbA,UAAa,CAAC9vX,KAAD,EAAW;AACtB,YAAMihX,UAAU,GAAGpI,SAAS,CAACqV,sBAAV,CAAiCluX,KAAjC,CAAnB;;AACA,YAAIihX,UAAJ,EAAgB;AACd,iBAAO,KAAI,CAAC8O,uBAAL,CAA6B7U,EAA7B,EAAiC+F,UAAjC,CAAP;AACD,SAFD,MAEO;AACL,iBAAOjhX,KAAP;AACD;AACF,OAhCH;AAAA,UAiCEgwX,GAAG,GAAG,SAANA,GAAM,CAAC9gZ,MAAD;AAAA,eACJugZ,YAAY,GAAG3B,uDAAA,CAAuB5S,EAAvB,EAA2BhsY,MAA3B,CAAH,GAAwCqsD,MAAM,CAAC;AAAEy0V,UAAAA,GAAG,EAAE9gZ;AAAP,SAAD,EAAkB,KAAlB,CADtD;AAAA,OAjCR;AAAA,UAmCE++Y,aAAa,GAAG,SAAhBA,aAAgB,CAACjuX,KAAD,EAAW;AACzB;AACA,gBAAQA,KAAR;AACE;AACA,eAAK,GAAL;AACE,mBAAO,KAAI,CAACggF,GAAL,CAASk7R,EAAE,CAACttU,WAAZ,CAAP;;AACF,eAAK,GAAL,CAJF,CAKE;;AACA,eAAK,KAAL;AACE,mBAAO,KAAI,CAACoyC,GAAL,CAASk7R,EAAE,CAACttU,WAAZ,EAAyB,CAAzB,CAAP;AACF;;AACA,eAAK,GAAL;AACE,mBAAO,KAAI,CAACoyC,GAAL,CAASk7R,EAAE,CAACvtU,MAAZ,CAAP;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAACqyC,GAAL,CAASk7R,EAAE,CAACvtU,MAAZ,EAAoB,CAApB,CAAP;AACF;;AACA,eAAK,IAAL;AACE,mBAAO,KAAI,CAACqyC,GAAL,CAASzvG,IAAI,CAACgE,KAAL,CAAW2mY,EAAE,CAACttU,WAAH,GAAiB,EAA5B,CAAT,EAA0C,CAA1C,CAAP;;AACF,eAAK,KAAL;AACE,mBAAO,KAAI,CAACoyC,GAAL,CAASzvG,IAAI,CAACgE,KAAL,CAAW2mY,EAAE,CAACttU,WAAH,GAAiB,GAA5B,CAAT,CAAP;AACF;;AACA,eAAK,GAAL;AACE,mBAAO,KAAI,CAACoyC,GAAL,CAASk7R,EAAE,CAACxtU,MAAZ,CAAP;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAACsyC,GAAL,CAASk7R,EAAE,CAACxtU,MAAZ,EAAoB,CAApB,CAAP;AACF;;AACA,eAAK,GAAL;AACE,mBAAO,KAAI,CAACsyC,GAAL,CAASk7R,EAAE,CAACztU,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0BytU,EAAE,CAACztU,IAAH,GAAU,EAA7C,CAAP;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAACuyC,GAAL,CAASk7R,EAAE,CAACztU,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0BytU,EAAE,CAACztU,IAAH,GAAU,EAA7C,EAAiD,CAAjD,CAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAI,CAACuyC,GAAL,CAASk7R,EAAE,CAACztU,IAAZ,CAAP;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAACuyC,GAAL,CAASk7R,EAAE,CAACztU,IAAZ,EAAkB,CAAlB,CAAP;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAOmiV,YAAY,CAAC;AAAEj4Y,cAAAA,MAAM,EAAE,QAAV;AAAoB+kY,cAAAA,MAAM,EAAE,KAAI,CAAC11L,IAAL,CAAU01L;AAAtC,aAAD,CAAnB;;AACF,eAAK,IAAL;AACE;AACA,mBAAOkT,YAAY,CAAC;AAAEj4Y,cAAAA,MAAM,EAAE,OAAV;AAAmB+kY,cAAAA,MAAM,EAAE,KAAI,CAAC11L,IAAL,CAAU01L;AAArC,aAAD,CAAnB;;AACF,eAAK,KAAL;AACE;AACA,mBAAOkT,YAAY,CAAC;AAAEj4Y,cAAAA,MAAM,EAAE,QAAV;AAAoB+kY,cAAAA,MAAM,EAAE,KAAI,CAAC11L,IAAL,CAAU01L;AAAtC,aAAD,CAAnB;;AACF,eAAK,MAAL;AACE;AACA,mBAAOxB,EAAE,CAAC54M,IAAH,CAAQq9M,UAAR,CAAmBzE,EAAE,CAACz0U,EAAtB,EAA0B;AAAE9uD,cAAAA,MAAM,EAAE,OAAV;AAAmBw0B,cAAAA,MAAM,EAAE,KAAI,CAACm+Q,GAAL,CAASn+Q;AAApC,aAA1B,CAAP;;AACF,eAAK,OAAL;AACE;AACA,mBAAO+uW,EAAE,CAAC54M,IAAH,CAAQq9M,UAAR,CAAmBzE,EAAE,CAACz0U,EAAtB,EAA0B;AAAE9uD,cAAAA,MAAM,EAAE,MAAV;AAAkBw0B,cAAAA,MAAM,EAAE,KAAI,CAACm+Q,GAAL,CAASn+Q;AAAnC,aAA1B,CAAP;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAO+uW,EAAE,CAAC+U,QAAV;AACF;;AACA,eAAK,GAAL;AACE,mBAAOJ,QAAQ,EAAf;AACF;;AACA,eAAK,GAAL;AACE,mBAAOF,oBAAoB,GAAGp0V,MAAM,CAAC;AAAEiS,cAAAA,GAAG,EAAE;AAAP,aAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAACwyC,GAAL,CAASk7R,EAAE,CAAC1tU,GAAZ,CAAlE;;AACF,eAAK,IAAL;AACE,mBAAOmiV,oBAAoB,GAAGp0V,MAAM,CAAC;AAAEiS,cAAAA,GAAG,EAAE;AAAP,aAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAACwyC,GAAL,CAASk7R,EAAE,CAAC1tU,GAAZ,EAAiB,CAAjB,CAAlE;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAO,KAAI,CAACwyC,GAAL,CAASk7R,EAAE,CAAC/lT,OAAZ,CAAP;;AACF,eAAK,KAAL;AACE;AACA,mBAAOA,OAAO,CAAC,OAAD,EAAU,IAAV,CAAd;;AACF,eAAK,MAAL;AACE;AACA,mBAAOA,OAAO,CAAC,MAAD,EAAS,IAAT,CAAd;;AACF,eAAK,OAAL;AACE;AACA,mBAAOA,OAAO,CAAC,QAAD,EAAW,IAAX,CAAd;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAO,KAAI,CAAC6qB,GAAL,CAASk7R,EAAE,CAAC/lT,OAAZ,CAAP;;AACF,eAAK,KAAL;AACE;AACA,mBAAOA,OAAO,CAAC,OAAD,EAAU,KAAV,CAAd;;AACF,eAAK,MAAL;AACE;AACA,mBAAOA,OAAO,CAAC,MAAD,EAAS,KAAT,CAAd;;AACF,eAAK,OAAL;AACE;AACA,mBAAOA,OAAO,CAAC,QAAD,EAAW,KAAX,CAAd;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAOw6T,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE+R,cAAAA,KAAK,EAAE,SAAT;AAAoBE,cAAAA,GAAG,EAAE;AAAzB,aAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAACwyC,GAAL,CAASk7R,EAAE,CAAC5tU,KAAZ,CAFJ;;AAGF,eAAK,IAAL;AACE;AACA,mBAAOqiV,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE+R,cAAAA,KAAK,EAAE,SAAT;AAAoBE,cAAAA,GAAG,EAAE;AAAzB,aAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAACwyC,GAAL,CAASk7R,EAAE,CAAC5tU,KAAZ,EAAmB,CAAnB,CAFJ;;AAGF,eAAK,KAAL;AACE;AACA,mBAAOA,KAAK,CAAC,OAAD,EAAU,IAAV,CAAZ;;AACF,eAAK,MAAL;AACE;AACA,mBAAOA,KAAK,CAAC,MAAD,EAAS,IAAT,CAAZ;;AACF,eAAK,OAAL;AACE;AACA,mBAAOA,KAAK,CAAC,QAAD,EAAW,IAAX,CAAZ;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAOqiV,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE+R,cAAAA,KAAK,EAAE;AAAT,aAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC0yC,GAAL,CAASk7R,EAAE,CAAC5tU,KAAZ,CAFJ;;AAGF,eAAK,IAAL;AACE;AACA,mBAAOqiV,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE+R,cAAAA,KAAK,EAAE;AAAT,aAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC0yC,GAAL,CAASk7R,EAAE,CAAC5tU,KAAZ,EAAmB,CAAnB,CAFJ;;AAGF,eAAK,KAAL;AACE;AACA,mBAAOA,KAAK,CAAC,OAAD,EAAU,KAAV,CAAZ;;AACF,eAAK,MAAL;AACE;AACA,mBAAOA,KAAK,CAAC,MAAD,EAAS,KAAT,CAAZ;;AACF,eAAK,OAAL;AACE;AACA,mBAAOA,KAAK,CAAC,QAAD,EAAW,KAAX,CAAZ;AACF;;AACA,eAAK,GAAL;AACE;AACA,mBAAOqiV,oBAAoB,GAAGp0V,MAAM,CAAC;AAAE78B,cAAAA,IAAI,EAAE;AAAR,aAAD,EAAsB,MAAtB,CAAT,GAAyC,KAAI,CAACshF,GAAL,CAASk7R,EAAE,CAACx8W,IAAZ,CAApE;;AACF,eAAK,IAAL;AACE;AACA,mBAAOixX,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE78B,cAAAA,IAAI,EAAE;AAAR,aAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAACshF,GAAL,CAASk7R,EAAE,CAACx8W,IAAH,CAAQtM,QAAR,GAAmB/jB,KAAnB,CAAyB,CAAC,CAA1B,CAAT,EAAuC,CAAvC,CAFJ;;AAGF,eAAK,MAAL;AACE;AACA,mBAAOshZ,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE78B,cAAAA,IAAI,EAAE;AAAR,aAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAACshF,GAAL,CAASk7R,EAAE,CAACx8W,IAAZ,EAAkB,CAAlB,CAFJ;;AAGF,eAAK,QAAL;AACE;AACA,mBAAOixX,oBAAoB,GACvBp0V,MAAM,CAAC;AAAE78B,cAAAA,IAAI,EAAE;AAAR,aAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAACshF,GAAL,CAASk7R,EAAE,CAACx8W,IAAZ,EAAkB,CAAlB,CAFJ;AAGF;;AACA,eAAK,GAAL;AACE;AACA,mBAAOsxX,GAAG,CAAC,OAAD,CAAV;;AACF,eAAK,IAAL;AACE;AACA,mBAAOA,GAAG,CAAC,MAAD,CAAV;;AACF,eAAK,OAAL;AACE,mBAAOA,GAAG,CAAC,QAAD,CAAV;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAAChwS,GAAL,CAASk7R,EAAE,CAACuE,QAAH,CAAYrtX,QAAZ,GAAuB/jB,KAAvB,CAA6B,CAAC,CAA9B,CAAT,EAA2C,CAA3C,CAAP;;AACF,eAAK,MAAL;AACE,mBAAO,KAAI,CAAC2xG,GAAL,CAASk7R,EAAE,CAACuE,QAAZ,EAAsB,CAAtB,CAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAI,CAACz/R,GAAL,CAASk7R,EAAE,CAACuC,UAAZ,CAAP;;AACF,eAAK,IAAL;AACE,mBAAO,KAAI,CAACz9R,GAAL,CAASk7R,EAAE,CAACuC,UAAZ,EAAwB,CAAxB,CAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAI,CAACz9R,GAAL,CAASk7R,EAAE,CAACp0U,OAAZ,CAAP;;AACF,eAAK,KAAL;AACE,mBAAO,KAAI,CAACk5C,GAAL,CAASk7R,EAAE,CAACp0U,OAAZ,EAAqB,CAArB,CAAP;;AACF,eAAK,GAAL;AACE;AACA,mBAAO,KAAI,CAACk5C,GAAL,CAASk7R,EAAE,CAAC6C,OAAZ,CAAP;;AACF,eAAK,IAAL;AACE;AACA,mBAAO,KAAI,CAAC/9R,GAAL,CAASk7R,EAAE,CAAC6C,OAAZ,EAAqB,CAArB,CAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAI,CAAC/9R,GAAL,CAASzvG,IAAI,CAACgE,KAAL,CAAW2mY,EAAE,CAACz0U,EAAH,GAAQ,IAAnB,CAAT,CAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAI,CAACu5C,GAAL,CAASk7R,EAAE,CAACz0U,EAAZ,CAAP;;AACF;AACE,mBAAOqpV,UAAU,CAAC9vX,KAAD,CAAjB;AAjLJ;AAmLD,OAxNH;;AA0NA,aAAO+tX,eAAe,CAAClV,SAAS,CAAC+K,WAAV,CAAsB7C,GAAtB,CAAD,EAA6BkN,aAA7B,CAAtB;AACD;;;WAED,kCAAyBnS,GAAzB,EAA8BiF,GAA9B,EAAmC;AAAA;;AACjC,UAAMmP,YAAY,GAAG,SAAfA,YAAe,CAAClwX,KAAD,EAAW;AAC5B,gBAAQA,KAAK,CAAC,CAAD,CAAb;AACE,eAAK,GAAL;AACE,mBAAO,aAAP;;AACF,eAAK,GAAL;AACE,mBAAO,QAAP;;AACF,eAAK,GAAL;AACE,mBAAO,QAAP;;AACF,eAAK,GAAL;AACE,mBAAO,MAAP;;AACF,eAAK,GAAL;AACE,mBAAO,KAAP;;AACF,eAAK,GAAL;AACE,mBAAO,MAAP;;AACF,eAAK,GAAL;AACE,mBAAO,OAAP;;AACF,eAAK,GAAL;AACE,mBAAO,MAAP;;AACF;AACE,mBAAO,IAAP;AAlBJ;AAoBD,OArBH;AAAA,UAsBEiuX,aAAa,GAAG,SAAhBA,aAAgB,CAACkC,MAAD;AAAA,eAAY,UAACnwX,KAAD,EAAW;AACrC,cAAMm6G,MAAM,GAAG+1Q,YAAY,CAAClwX,KAAD,CAA3B;;AACA,cAAIm6G,MAAJ,EAAY;AACV,mBAAO,MAAI,CAACn6B,GAAL,CAASmwS,MAAM,CAACtqY,GAAP,CAAWs0H,MAAX,CAAT,EAA6Bn6G,KAAK,CAAC9wB,MAAnC,CAAP;AACD,WAFD,MAEO;AACL,mBAAO8wB,KAAP;AACD;AACF,SAPe;AAAA,OAtBlB;AAAA,UA8BEgjI,MAAM,GAAG61O,SAAS,CAAC+K,WAAV,CAAsB7C,GAAtB,CA9BX;AAAA,UA+BEqP,UAAU,GAAGptP,MAAM,CAACnzJ,MAAP,CACX,UAAC64K,KAAD;AAAA,YAAUpmB,OAAV,QAAUA,OAAV;AAAA,YAAmB/wD,GAAnB,QAAmBA,GAAnB;AAAA,eAA8B+wD,OAAO,GAAGomB,KAAH,GAAWA,KAAK,CAACrwJ,MAAN,CAAak5E,GAAb,CAAhD;AAAA,OADW,EAEX,EAFW,CA/Bf;AAAA,UAmCEwhS,SAAS,GAAG+I,GAAG,CAACwL,OAAJ,OAAAxL,GAAG,kOAAYsU,UAAU,CAAC9hZ,GAAX,CAAe4hZ,YAAf,EAA6B92Y,MAA7B,CAAoC,UAACtE,CAAD;AAAA,eAAOA,CAAP;AAAA,OAApC,CAAZ,EAnCjB;;AAoCA,aAAOi5Y,eAAe,CAAC/qP,MAAD,EAASirP,aAAa,CAAClb,SAAD,CAAtB,CAAtB;AACD;;;WA1VD,gBAAc5mW,MAAd,EAAiC;AAAA,UAAX66K,IAAW,uEAAJ,EAAI;AAC/B,aAAO,IAAI6xL,SAAJ,CAAc1sW,MAAd,EAAsB66K,IAAtB,CAAP;AACD;;;WAED,qBAAmB+5L,GAAnB,EAAwB;AACtB,UAAInlW,OAAO,GAAG,IAAd;AAAA,UACEy0W,WAAW,GAAG,EADhB;AAAA,UAEEC,SAAS,GAAG,KAFd;AAGA,UAAMtC,MAAM,GAAG,EAAf;;AACA,WAAK,IAAI79Y,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wY,GAAG,CAAC7xY,MAAxB,EAAgCiB,CAAC,EAAjC,EAAqC;AACnC,YAAMkmB,CAAC,GAAG0qX,GAAG,CAACtxT,MAAJ,CAAWt/E,CAAX,CAAV;;AACA,YAAIkmB,CAAC,KAAK,GAAV,EAAe;AACb,cAAIg6X,WAAW,CAACnhZ,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B8+Y,YAAAA,MAAM,CAAC57Y,IAAP,CAAY;AAAEkwJ,cAAAA,OAAO,EAAEguP,SAAX;AAAsB/+S,cAAAA,GAAG,EAAE8+S;AAA3B,aAAZ;AACD;;AACDz0W,UAAAA,OAAO,GAAG,IAAV;AACAy0W,UAAAA,WAAW,GAAG,EAAd;AACAC,UAAAA,SAAS,GAAG,CAACA,SAAb;AACD,SAPD,MAOO,IAAIA,SAAJ,EAAe;AACpBD,UAAAA,WAAW,IAAIh6X,CAAf;AACD,SAFM,MAEA,IAAIA,CAAC,KAAKulB,OAAV,EAAmB;AACxBy0W,UAAAA,WAAW,IAAIh6X,CAAf;AACD,SAFM,MAEA;AACL,cAAIg6X,WAAW,CAACnhZ,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B8+Y,YAAAA,MAAM,CAAC57Y,IAAP,CAAY;AAAEkwJ,cAAAA,OAAO,EAAE,KAAX;AAAkB/wD,cAAAA,GAAG,EAAE8+S;AAAvB,aAAZ;AACD;;AACDA,UAAAA,WAAW,GAAGh6X,CAAd;AACAulB,UAAAA,OAAO,GAAGvlB,CAAV;AACD;AACF;;AAED,UAAIg6X,WAAW,CAACnhZ,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B8+Y,QAAAA,MAAM,CAAC57Y,IAAP,CAAY;AAAEkwJ,UAAAA,OAAO,EAAEguP,SAAX;AAAsB/+S,UAAAA,GAAG,EAAE8+S;AAA3B,SAAZ;AACD;;AAED,aAAOrC,MAAP;AACD;;;WAED,gCAA8BhuX,KAA9B,EAAqC;AACnC,aAAOkuX,uBAAsB,CAACluX,KAAD,CAA7B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;ICpFkB86W;AACnB,mBAAY9qE,MAAZ,EAAoBsvE,WAApB,EAAiC;AAAA;;AAC/B,SAAKtvE,MAAL,GAAcA,MAAd;AACA,SAAKsvE,WAAL,GAAmBA,WAAnB;AACD;;;;WAED,qBAAY;AACV,UAAI,KAAKA,WAAT,EAAsB;AACpB,yBAAU,KAAKtvE,MAAf,eAA0B,KAAKsvE,WAA/B;AACD,OAFD,MAEO;AACL,eAAO,KAAKtvE,MAAZ;AACD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZH;AACA;AACA;AACA;CAGA;;AAEA,IAAIygF,WAAW,GAAG,EAAlB;;AACA,SAASC,WAAT,CAAqBC,SAArB,EAA2C;AAAA,MAAX3pM,IAAW,uEAAJ,EAAI;AACzC,MAAM1hM,GAAG,GAAG0Y,IAAI,CAACC,SAAL,CAAe,CAAC0yX,SAAD,EAAY3pM,IAAZ,CAAf,CAAZ;AACA,MAAI4pM,GAAG,GAAGH,WAAW,CAACnrY,GAAD,CAArB;;AACA,MAAI,CAACsrY,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAG,IAAIC,IAAI,CAACC,UAAT,CAAoBH,SAApB,EAA+B3pM,IAA/B,CAAN;AACAypM,IAAAA,WAAW,CAACnrY,GAAD,CAAX,GAAmBsrY,GAAnB;AACD;;AACD,SAAOA,GAAP;AACD;;AAED,IAAIG,WAAW,GAAG,EAAlB;;AACA,SAASC,YAAT,CAAsBL,SAAtB,EAA4C;AAAA,MAAX3pM,IAAW,uEAAJ,EAAI;AAC1C,MAAM1hM,GAAG,GAAG0Y,IAAI,CAACC,SAAL,CAAe,CAAC0yX,SAAD,EAAY3pM,IAAZ,CAAf,CAAZ;AACA,MAAI4pM,GAAG,GAAGG,WAAW,CAACzrY,GAAD,CAArB;;AACA,MAAI,CAACsrY,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAG,IAAIC,IAAI,CAACx0N,cAAT,CAAwBs0N,SAAxB,EAAmC3pM,IAAnC,CAAN;AACA+pM,IAAAA,WAAW,CAACzrY,GAAD,CAAX,GAAmBsrY,GAAnB;AACD;;AACD,SAAOA,GAAP;AACD;;AAED,IAAIK,YAAY,GAAG,EAAnB;;AACA,SAASC,YAAT,CAAsBP,SAAtB,EAA4C;AAAA,MAAX3pM,IAAW,uEAAJ,EAAI;AAC1C,MAAM1hM,GAAG,GAAG0Y,IAAI,CAACC,SAAL,CAAe,CAAC0yX,SAAD,EAAY3pM,IAAZ,CAAf,CAAZ;AACA,MAAImqM,GAAG,GAAGF,YAAY,CAAC3rY,GAAD,CAAtB;;AACA,MAAI,CAAC6rY,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAG,IAAIN,IAAI,CAACO,YAAT,CAAsBT,SAAtB,EAAiC3pM,IAAjC,CAAN;AACAiqM,IAAAA,YAAY,CAAC3rY,GAAD,CAAZ,GAAoB6rY,GAApB;AACD;;AACD,SAAOA,GAAP;AACD;;AAED,IAAIE,YAAY,GAAG,EAAnB;;AACA,SAASC,YAAT,CAAsBX,SAAtB,EAA4C;AAAA,MAAX3pM,IAAW,uEAAJ,EAAI;;AAC1C,MAAQx+I,IAAR,GAAkCw+I,IAAlC,CAAQx+I,IAAR;AAAA,MAAiB+oV,YAAjB,yOAAkCvqM,IAAlC,aAD0C,CACF;;;AACxC,MAAM1hM,GAAG,GAAG0Y,IAAI,CAACC,SAAL,CAAe,CAAC0yX,SAAD,EAAYY,YAAZ,CAAf,CAAZ;AACA,MAAIJ,GAAG,GAAGE,YAAY,CAAC/rY,GAAD,CAAtB;;AACA,MAAI,CAAC6rY,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAG,IAAIN,IAAI,CAACW,kBAAT,CAA4Bb,SAA5B,EAAuC3pM,IAAvC,CAAN;AACAqqM,IAAAA,YAAY,CAAC/rY,GAAD,CAAZ,GAAoB6rY,GAApB;AACD;;AACD,SAAOA,GAAP;AACD;;AAED,IAAIM,cAAc,GAAG,IAArB;;AACA,SAASC,YAAT,GAAwB;AACtB,MAAID,cAAJ,EAAoB;AAClB,WAAOA,cAAP;AACD,GAFD,MAEO;AACLA,IAAAA,cAAc,GAAG,IAAIZ,IAAI,CAACx0N,cAAT,GAA0BwjN,eAA1B,GAA4C1zW,MAA7D;AACA,WAAOslX,cAAP;AACD;AACF;;AAED,SAASE,iBAAT,CAA2BC,SAA3B,EAAsC;AACpC;AACA;AACA;AAEA;AACA;AACA;AAEA,MAAMC,MAAM,GAAGD,SAAS,CAAC13X,OAAV,CAAkB,KAAlB,CAAf;;AACA,MAAI23X,MAAM,KAAK,CAAC,CAAhB,EAAmB;AACjB,WAAO,CAACD,SAAD,CAAP;AACD,GAFD,MAEO;AACL,QAAI/oT,OAAJ;AACA,QAAMipT,OAAO,GAAGF,SAAS,CAAC7kX,SAAV,CAAoB,CAApB,EAAuB8kX,MAAvB,CAAhB;;AACA,QAAI;AACFhpT,MAAAA,OAAO,GAAGmoT,YAAY,CAACY,SAAD,CAAZ,CAAwB/R,eAAxB,EAAV;AACD,KAFD,CAEE,OAAOhlY,CAAP,EAAU;AACVguF,MAAAA,OAAO,GAAGmoT,YAAY,CAACc,OAAD,CAAZ,CAAsBjS,eAAtB,EAAV;AACD;;AAED,mBAAsCh3S,OAAtC;AAAA,QAAQ02S,eAAR,YAAQA,eAAR;AAAA,QAAyBlyU,QAAzB,YAAyBA,QAAzB,CATK,CAUL;;AACA,WAAO,CAACykV,OAAD,EAAUvS,eAAV,EAA2BlyU,QAA3B,CAAP;AACD;AACF;;AAED,SAAS0kV,gBAAT,CAA0BH,SAA1B,EAAqCrS,eAArC,EAAsDC,cAAtD,EAAsE;AACpE,MAAIA,cAAc,IAAID,eAAtB,EAAuC;AACrCqS,IAAAA,SAAS,IAAI,IAAb;;AAEA,QAAIpS,cAAJ,EAAoB;AAClBoS,MAAAA,SAAS,kBAAWpS,cAAX,CAAT;AACD;;AAED,QAAID,eAAJ,EAAqB;AACnBqS,MAAAA,SAAS,kBAAWrS,eAAX,CAAT;AACD;;AACD,WAAOqS,SAAP;AACD,GAXD,MAWO;AACL,WAAOA,SAAP;AACD;AACF;;AAED,SAASI,SAAT,CAAmBxiZ,CAAnB,EAAsB;AACpB,MAAMk1L,EAAE,GAAG,EAAX;;AACA,OAAK,IAAIv0L,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,EAArB,EAAyBA,CAAC,EAA1B,EAA8B;AAC5B,QAAM+qY,EAAE,GAAGG,wDAAA,CAAa,IAAb,EAAmBlrY,CAAnB,EAAsB,CAAtB,CAAX;AACAu0L,IAAAA,EAAE,CAACtyL,IAAH,CAAQ5C,CAAC,CAAC0rY,EAAD,CAAT;AACD;;AACD,SAAOx2M,EAAP;AACD;;AAED,SAASwtN,WAAT,CAAqB1iZ,CAArB,EAAwB;AACtB,MAAMk1L,EAAE,GAAG,EAAX;;AACA,OAAK,IAAIv0L,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EAA6B;AAC3B,QAAM+qY,EAAE,GAAGG,wDAAA,CAAa,IAAb,EAAmB,EAAnB,EAAuB,KAAKlrY,CAA5B,CAAX;AACAu0L,IAAAA,EAAE,CAACtyL,IAAH,CAAQ5C,CAAC,CAAC0rY,EAAD,CAAT;AACD;;AACD,SAAOx2M,EAAP;AACD;;AAED,SAASytN,SAAT,CAAmB7nG,GAAnB,EAAwBp7S,MAAxB,EAAgCkjZ,SAAhC,EAA2CC,SAA3C,EAAsDC,MAAtD,EAA8D;AAC5D,MAAMxyY,IAAI,GAAGwqS,GAAG,CAAColG,WAAJ,CAAgB0C,SAAhB,CAAb;;AAEA,MAAItyY,IAAI,KAAK,OAAb,EAAsB;AACpB,WAAO,IAAP;AACD,GAFD,MAEO,IAAIA,IAAI,KAAK,IAAb,EAAmB;AACxB,WAAOuyY,SAAS,CAACnjZ,MAAD,CAAhB;AACD,GAFM,MAEA;AACL,WAAOojZ,MAAM,CAACpjZ,MAAD,CAAb;AACD;AACF;;AAED,SAASqjZ,mBAAT,CAA6BjoG,GAA7B,EAAkC;AAChC,MAAIA,GAAG,CAACi1F,eAAJ,IAAuBj1F,GAAG,CAACi1F,eAAJ,KAAwB,MAAnD,EAA2D;AACzD,WAAO,KAAP;AACD,GAFD,MAEO;AACL,WACEj1F,GAAG,CAACi1F,eAAJ,KAAwB,MAAxB,IACA,CAACj1F,GAAG,CAACn+Q,MADL,IAEAm+Q,GAAG,CAACn+Q,MAAJ,CAAWy5G,UAAX,CAAsB,IAAtB,CAFA,IAGA,IAAIirQ,IAAI,CAACx0N,cAAT,CAAwBiuH,GAAG,CAACkoG,IAA5B,EAAkC3S,eAAlC,GAAoDN,eAApD,KAAwE,MAJ1E;AAMD;AACF;AAED;AACA;AACA;;;IAEMkT;AACJ,+BAAYD,IAAZ,EAAkB5V,WAAlB,EAA+B51L,IAA/B,EAAqC;AAAA;;AACnC,SAAKwoM,KAAL,GAAaxoM,IAAI,CAACwoM,KAAL,IAAc,CAA3B;AACA,SAAKj7Y,KAAL,GAAayyM,IAAI,CAACzyM,KAAL,IAAc,KAA3B;;AAEA,QAAQi7Y,KAAR,GAAuCxoM,IAAvC,CAAQwoM,KAAR;AAAA,QAAej7Y,KAAf,GAAuCyyM,IAAvC,CAAezyM,KAAf;AAAA,QAAyBm+Y,SAAzB,yOAAuC1rM,IAAvC;;AAEA,QAAI,CAAC41L,WAAD,IAAgBnrX,MAAM,CAACzT,IAAP,CAAY00Y,SAAZ,EAAuBxjZ,MAAvB,GAAgC,CAApD,EAAuD;AACrD,UAAMyjZ,QAAQ,GAAG;AAAEC,QAAAA,WAAW,EAAE;AAAlB,SAA4B5rM,IAA5B,CAAd;;AACA,UAAIA,IAAI,CAACwoM,KAAL,GAAa,CAAjB,EAAoBmD,QAAQ,CAACE,oBAAT,GAAgC7rM,IAAI,CAACwoM,KAArC;AACpB,WAAK2B,GAAL,GAAWD,YAAY,CAACsB,IAAD,EAAOG,QAAP,CAAvB;AACD;AACF;;;;WAED,gBAAOxiZ,CAAP,EAAU;AACR,UAAI,KAAKghZ,GAAT,EAAc;AACZ,YAAMttC,KAAK,GAAG,KAAKtvW,KAAL,GAAahE,IAAI,CAACgE,KAAL,CAAWpE,CAAX,CAAb,GAA6BA,CAA3C;AACA,eAAO,KAAKghZ,GAAL,CAASx5Y,MAAT,CAAgBksW,KAAhB,CAAP;AACD,OAHD,MAGO;AACL;AACA,YAAMA,MAAK,GAAG,KAAKtvW,KAAL,GAAahE,IAAI,CAACgE,KAAL,CAAWpE,CAAX,CAAb,GAA6BmpY,iDAAO,CAACnpY,CAAD,EAAI,CAAJ,CAAlD;;AACA,eAAOm1I,kDAAQ,CAACu+N,MAAD,EAAQ,KAAK2rC,KAAb,CAAf;AACD;AACF;;;;;AAGH;AACA;AACA;;;IAEMsD;AACJ,6BAAY5X,EAAZ,EAAgBsX,IAAhB,EAAsBxrM,IAAtB,EAA4B;AAAA;;AAC1B,SAAKA,IAAL,GAAYA,IAAZ;AAEA,QAAI/wL,CAAJ;;AACA,QAAIilX,EAAE,CAAC54M,IAAH,CAAQs9M,WAAZ,EAAyB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,UAAMmT,SAAS,GAAG,CAAC,CAAD,IAAM7X,EAAE,CAACxkY,MAAH,GAAY,EAAlB,CAAlB;AACA,UAAMs8Y,OAAO,GAAGD,SAAS,IAAI,CAAb,qBAA4BA,SAA5B,qBAAoDA,SAApD,CAAhB;;AACA,UAAI7X,EAAE,CAACxkY,MAAH,KAAc,CAAd,IAAmB85Y,iEAAA,CAAgBwC,OAAhB,EAAyB5yG,KAAhD,EAAuD;AACrDnqR,QAAAA,CAAC,GAAG+8X,OAAJ;AACA,aAAK9X,EAAL,GAAUA,EAAV;AACD,OAHD,MAGO;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACAjlX,QAAAA,CAAC,GAAG,KAAJ;;AACA,YAAI+wL,IAAI,CAAC4mM,YAAT,EAAuB;AACrB,eAAK1S,EAAL,GAAUA,EAAV;AACD,SAFD,MAEO;AACL,eAAKA,EAAL,GAAUA,EAAE,CAACxkY,MAAH,KAAc,CAAd,GAAkBwkY,EAAlB,GAAuBG,+DAAA,CAAoBH,EAAE,CAACz0U,EAAH,GAAQy0U,EAAE,CAACxkY,MAAH,GAAY,EAAZ,GAAiB,IAA7C,CAAjC;AACD;AACF;AACF,KA3BD,MA2BO,IAAIwkY,EAAE,CAAC54M,IAAH,CAAQjnL,IAAR,KAAiB,QAArB,EAA+B;AACpC,WAAK6/X,EAAL,GAAUA,EAAV;AACD,KAFM,MAEA;AACL,WAAKA,EAAL,GAAUA,EAAV;AACAjlX,MAAAA,CAAC,GAAGilX,EAAE,CAAC54M,IAAH,CAAQ9nL,IAAZ;AACD;;AAED,QAAMm4Y,QAAQ,GAAG,gOAAK,KAAK3rM,IAAb,CAAd;;AACA,QAAI/wL,CAAJ,EAAO;AACL08X,MAAAA,QAAQ,CAACM,QAAT,GAAoBh9X,CAApB;AACD;;AACD,SAAK26X,GAAL,GAAWI,YAAY,CAACwB,IAAD,EAAOG,QAAP,CAAvB;AACD;;;;WAED,kBAAS;AACP,aAAO,KAAK/B,GAAL,CAASj5Y,MAAT,CAAgB,KAAKujY,EAAL,CAAQ2G,QAAR,EAAhB,CAAP;AACD;;;WAED,yBAAgB;AACd,aAAO,KAAK+O,GAAL,CAASrB,aAAT,CAAuB,KAAKrU,EAAL,CAAQ2G,QAAR,EAAvB,CAAP;AACD;;;WAED,2BAAkB;AAChB,aAAO,KAAK+O,GAAL,CAAS/Q,eAAT,EAAP;AACD;;;;;AAGH;AACA;AACA;;;IACMqT;AACJ,4BAAYV,IAAZ,EAAkBW,SAAlB,EAA6BnsM,IAA7B,EAAmC;AAAA;;AACjC,SAAKA,IAAL;AAAcnoM,MAAAA,KAAK,EAAE;AAArB,OAAgCmoM,IAAhC;;AACA,QAAI,CAACmsM,SAAD,IAAc5C,qDAAW,EAA7B,EAAiC;AAC/B,WAAK6C,GAAL,GAAW9B,YAAY,CAACkB,IAAD,EAAOxrM,IAAP,CAAvB;AACD;AACF;;;;WAED,gBAAO1xM,KAAP,EAAcgyD,IAAd,EAAoB;AAClB,UAAI,KAAK8rV,GAAT,EAAc;AACZ,eAAO,KAAKA,GAAL,CAASz7Y,MAAT,CAAgBrC,KAAhB,EAAuBgyD,IAAvB,CAAP;AACD,OAFD,MAEO;AACL,eAAOwmV,2DAAA,CAA2BxmV,IAA3B,EAAiChyD,KAAjC,EAAwC,KAAK0xM,IAAL,CAAUy7L,OAAlD,EAA2D,KAAKz7L,IAAL,CAAUnoM,KAAV,KAAoB,MAA/E,CAAP;AACD;AACF;;;WAED,uBAAcvJ,KAAd,EAAqBgyD,IAArB,EAA2B;AACzB,UAAI,KAAK8rV,GAAT,EAAc;AACZ,eAAO,KAAKA,GAAL,CAAS7D,aAAT,CAAuBj6Y,KAAvB,EAA8BgyD,IAA9B,CAAP;AACD,OAFD,MAEO;AACL,eAAO,EAAP;AACD;AACF;;;;;AAGH;AACA;AACA;;;IAEqB+3S;AAyBnB,kBAAYlzU,MAAZ,EAAoBknX,SAApB,EAA+B7T,cAA/B,EAA+C8T,eAA/C,EAAgE;AAAA;;AAC9D,6BAAoE3B,iBAAiB,CAACxlX,MAAD,CAArF;AAAA;AAAA,QAAOonX,YAAP;AAAA,QAAqBC,qBAArB;AAAA,QAA4CC,oBAA5C;;AAEA,SAAKtnX,MAAL,GAAconX,YAAd;AACA,SAAKhU,eAAL,GAAuB8T,SAAS,IAAIG,qBAAb,IAAsC,IAA7D;AACA,SAAKhU,cAAL,GAAsBA,cAAc,IAAIiU,oBAAlB,IAA0C,IAAhE;AACA,SAAKjB,IAAL,GAAYT,gBAAgB,CAAC,KAAK5lX,MAAN,EAAc,KAAKozW,eAAnB,EAAoC,KAAKC,cAAzC,CAA5B;AAEA,SAAKkU,aAAL,GAAqB;AAAE/7Y,MAAAA,MAAM,EAAE,EAAV;AAAcg0M,MAAAA,UAAU,EAAE;AAA1B,KAArB;AACA,SAAKgoM,WAAL,GAAmB;AAAEh8Y,MAAAA,MAAM,EAAE,EAAV;AAAcg0M,MAAAA,UAAU,EAAE;AAA1B,KAAnB;AACA,SAAKioM,aAAL,GAAqB,IAArB;AACA,SAAKC,QAAL,GAAgB,EAAhB;AAEA,SAAKP,eAAL,GAAuBA,eAAvB;AACA,SAAKQ,iBAAL,GAAyB,IAAzB;AACD;;;;SAED,eAAkB;AAChB,UAAI,KAAKA,iBAAL,IAA0B,IAA9B,EAAoC;AAClC,aAAKA,iBAAL,GAAyBvB,mBAAmB,CAAC,IAAD,CAA5C;AACD;;AAED,aAAO,KAAKuB,iBAAZ;AACD;;;WAED,uBAAc;AACZ,UAAMC,YAAY,GAAG,KAAKZ,SAAL,EAArB;AACA,UAAMa,cAAc,GAClB,CAAC,KAAKzU,eAAL,KAAyB,IAAzB,IAAiC,KAAKA,eAAL,KAAyB,MAA3D,MACC,KAAKC,cAAL,KAAwB,IAAxB,IAAgC,KAAKA,cAAL,KAAwB,SADzD,CADF;AAGA,aAAOuU,YAAY,IAAIC,cAAhB,GAAiC,IAAjC,GAAwC,MAA/C;AACD;;;WAED,eAAM5Y,IAAN,EAAY;AACV,UAAI,CAACA,IAAD,IAAS3pX,MAAM,CAAC44O,mBAAP,CAA2B+wI,IAA3B,EAAiClsY,MAAjC,KAA4C,CAAzD,EAA4D;AAC1D,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAOmwW,MAAM,CAACtqV,MAAP,CACLqmX,IAAI,CAACjvW,MAAL,IAAe,KAAKmnX,eADf,EAELlY,IAAI,CAACmE,eAAL,IAAwB,KAAKA,eAFxB,EAGLnE,IAAI,CAACoE,cAAL,IAAuB,KAAKA,cAHvB,EAILpE,IAAI,CAACmI,WAAL,IAAoB,KAJf,CAAP;AAMD;AACF;;;WAED,yBAAyB;AAAA,UAAXnI,IAAW,uEAAJ,EAAI;AACvB,aAAO,KAAK3oU,KAAL,6bAAgB2oU,IAAhB;AAAsBmI,QAAAA,WAAW,EAAE;AAAnC,SAAP;AACD;;;WAED,6BAA6B;AAAA,UAAXnI,IAAW,uEAAJ,EAAI;AAC3B,aAAO,KAAK3oU,KAAL,6bAAgB2oU,IAAhB;AAAsBmI,QAAAA,WAAW,EAAE;AAAnC,SAAP;AACD;;;WAED,gBAAOr0Y,MAAP,EAAiD;AAAA;;AAAA,UAAlCyI,MAAkC,uEAAzB,KAAyB;AAAA,UAAlBy6Y,SAAkB,uEAAN,IAAM;AAC/C,aAAOD,SAAS,CAAC,IAAD,EAAOjjZ,MAAP,EAAekjZ,SAAf,EAA0BtE,+CAA1B,EAA0C,YAAM;AAC9D,YAAM0E,IAAI,GAAG76Y,MAAM,GAAG;AAAE21D,UAAAA,KAAK,EAAEp+D,MAAT;AAAiBs+D,UAAAA,GAAG,EAAE;AAAtB,SAAH,GAAuC;AAAEF,UAAAA,KAAK,EAAEp+D;AAAT,SAA1D;AAAA,YACE+kZ,SAAS,GAAGt8Y,MAAM,GAAG,QAAH,GAAc,YADlC;;AAEA,YAAI,CAAC,KAAI,CAACg8Y,WAAL,CAAiBM,SAAjB,EAA4B/kZ,MAA5B,CAAL,EAA0C;AACxC,eAAI,CAACykZ,WAAL,CAAiBM,SAAjB,EAA4B/kZ,MAA5B,IAAsC8iZ,SAAS,CAAC,UAAC9W,EAAD;AAAA,mBAAQ,KAAI,CAACxyD,OAAL,CAAawyD,EAAb,EAAiBsX,IAAjB,EAAuB,OAAvB,CAAR;AAAA,WAAD,CAA/C;AACD;;AACD,eAAO,KAAI,CAACmB,WAAL,CAAiBM,SAAjB,EAA4B/kZ,MAA5B,CAAP;AACD,OAPe,CAAhB;AAQD;;;WAED,kBAASA,MAAT,EAAmD;AAAA;;AAAA,UAAlCyI,MAAkC,uEAAzB,KAAyB;AAAA,UAAlBy6Y,SAAkB,uEAAN,IAAM;AACjD,aAAOD,SAAS,CAAC,IAAD,EAAOjjZ,MAAP,EAAekjZ,SAAf,EAA0BtE,iDAA1B,EAA4C,YAAM;AAChE,YAAM0E,IAAI,GAAG76Y,MAAM,GACb;AAAEw9E,UAAAA,OAAO,EAAEjmF,MAAX;AAAmBwvB,UAAAA,IAAI,EAAE,SAAzB;AAAoC4uC,UAAAA,KAAK,EAAE,MAA3C;AAAmDE,UAAAA,GAAG,EAAE;AAAxD,SADa,GAEb;AAAE2nB,UAAAA,OAAO,EAAEjmF;AAAX,SAFN;AAAA,YAGE+kZ,SAAS,GAAGt8Y,MAAM,GAAG,QAAH,GAAc,YAHlC;;AAIA,YAAI,CAAC,MAAI,CAAC+7Y,aAAL,CAAmBO,SAAnB,EAA8B/kZ,MAA9B,CAAL,EAA4C;AAC1C,gBAAI,CAACwkZ,aAAL,CAAmBO,SAAnB,EAA8B/kZ,MAA9B,IAAwCgjZ,WAAW,CAAC,UAAChX,EAAD;AAAA,mBAClD,MAAI,CAACxyD,OAAL,CAAawyD,EAAb,EAAiBsX,IAAjB,EAAuB,SAAvB,CADkD;AAAA,WAAD,CAAnD;AAGD;;AACD,eAAO,MAAI,CAACkB,aAAL,CAAmBO,SAAnB,EAA8B/kZ,MAA9B,CAAP;AACD,OAXe,CAAhB;AAYD;;;WAED,qBAA4B;AAAA;;AAAA,UAAlBkjZ,SAAkB,uEAAN,IAAM;AAC1B,aAAOD,SAAS,CACd,IADc,EAEd1rX,SAFc,EAGd2rX,SAHc,EAId;AAAA,eAAMtE,kDAAN;AAAA,OAJc,EAKd,YAAM;AACJ;AACA;AACA,YAAI,CAAC,MAAI,CAAC8F,aAAV,EAAyB;AACvB,cAAMpB,IAAI,GAAG;AAAE/kV,YAAAA,IAAI,EAAE,SAAR;AAAmBogV,YAAAA,SAAS,EAAE;AAA9B,WAAb;AACA,gBAAI,CAAC+F,aAAL,GAAqB,CAACvY,wDAAA,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,CAA3B,CAAD,EAAgCA,wDAAA,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,CAAhC,EAAgE/sY,GAAhE,CACnB,UAAC4sY,EAAD;AAAA,mBAAQ,MAAI,CAACxyD,OAAL,CAAawyD,EAAb,EAAiBsX,IAAjB,EAAuB,WAAvB,CAAR;AAAA,WADmB,CAArB;AAGD;;AAED,eAAO,MAAI,CAACoB,aAAZ;AACD,OAhBa,CAAhB;AAkBD;;;WAED,cAAK1kZ,MAAL,EAA+B;AAAA;;AAAA,UAAlBkjZ,SAAkB,uEAAN,IAAM;AAC7B,aAAOD,SAAS,CAAC,IAAD,EAAOjjZ,MAAP,EAAekjZ,SAAf,EAA0BtE,6CAA1B,EAAwC,YAAM;AAC5D,YAAM0E,IAAI,GAAG;AAAExC,UAAAA,GAAG,EAAE9gZ;AAAP,SAAb,CAD4D,CAG5D;AACA;;AACA,YAAI,CAAC,MAAI,CAAC2kZ,QAAL,CAAc3kZ,MAAd,CAAL,EAA4B;AAC1B,gBAAI,CAAC2kZ,QAAL,CAAc3kZ,MAAd,IAAwB,CAACmsY,wDAAA,CAAa,CAAC,EAAd,EAAkB,CAAlB,EAAqB,CAArB,CAAD,EAA0BA,wDAAA,CAAa,IAAb,EAAmB,CAAnB,EAAsB,CAAtB,CAA1B,EAAoD/sY,GAApD,CAAwD,UAAC4sY,EAAD;AAAA,mBAC9E,MAAI,CAACxyD,OAAL,CAAawyD,EAAb,EAAiBsX,IAAjB,EAAuB,KAAvB,CAD8E;AAAA,WAAxD,CAAxB;AAGD;;AAED,eAAO,MAAI,CAACqB,QAAL,CAAc3kZ,MAAd,CAAP;AACD,OAZe,CAAhB;AAaD;;;WAED,iBAAQgsY,EAAR,EAAYyX,QAAZ,EAAsBh+T,KAAtB,EAA6B;AAC3B,UAAM06T,EAAE,GAAG,KAAKC,WAAL,CAAiBpU,EAAjB,EAAqByX,QAArB,CAAX;AAAA,UACEx2O,OAAO,GAAGkzO,EAAE,CAACE,aAAH,EADZ;AAAA,UAEE2E,QAAQ,GAAG/3O,OAAO,CAAC5yI,IAAR,CAAa,UAACx3B,CAAD;AAAA,eAAOA,CAAC,CAACsJ,IAAF,CAAOmX,WAAP,OAAyBmiE,KAAhC;AAAA,OAAb,CAFb;AAGA,aAAOu/T,QAAQ,GAAGA,QAAQ,CAACvjZ,KAAZ,GAAoB,IAAnC;AACD;;;WAED,2BAA2B;AAAA,UAAXq2M,IAAW,uEAAJ,EAAI;AACzB;AACA;AACA,aAAO,IAAIyrM,mBAAJ,CAAwB,KAAKD,IAA7B,EAAmCxrM,IAAI,CAAC41L,WAAL,IAAoB,KAAKuX,WAA5D,EAAyEntM,IAAzE,CAAP;AACD;;;WAED,qBAAYk0L,EAAZ,EAA+B;AAAA,UAAfyX,QAAe,uEAAJ,EAAI;AAC7B,aAAO,IAAIG,iBAAJ,CAAsB5X,EAAtB,EAA0B,KAAKsX,IAA/B,EAAqCG,QAArC,CAAP;AACD;;;WAED,wBAAwB;AAAA,UAAX3rM,IAAW,uEAAJ,EAAI;AACtB,aAAO,IAAIksM,gBAAJ,CAAqB,KAAKV,IAA1B,EAAgC,KAAKW,SAAL,EAAhC,EAAkDnsM,IAAlD,CAAP;AACD;;;WAED,yBAAyB;AAAA,UAAXA,IAAW,uEAAJ,EAAI;AACvB,aAAO0pM,WAAW,CAAC,KAAK8B,IAAN,EAAYxrM,IAAZ,CAAlB;AACD;;;WAED,qBAAY;AACV,aACE,KAAK76K,MAAL,KAAgB,IAAhB,IACA,KAAKA,MAAL,CAAY3Z,WAAZ,OAA8B,OAD9B,IAEA,IAAIq+X,IAAI,CAACx0N,cAAT,CAAwB,KAAKm2N,IAA7B,EAAmC3S,eAAnC,GAAqD1zW,MAArD,CAA4Dy5G,UAA5D,CAAuE,OAAvE,CAHF;AAKD;;;WAED,gBAAOnqG,KAAP,EAAc;AACZ,aACE,KAAKtP,MAAL,KAAgBsP,KAAK,CAACtP,MAAtB,IACA,KAAKozW,eAAL,KAAyB9jW,KAAK,CAAC8jW,eAD/B,IAEA,KAAKC,cAAL,KAAwB/jW,KAAK,CAAC+jW,cAHhC;AAKD;;;WApLD,kBAAgBx4L,IAAhB,EAAsB;AACpB,aAAOq4J,MAAM,CAACtqV,MAAP,CAAciyL,IAAI,CAAC76K,MAAnB,EAA2B66K,IAAI,CAACu4L,eAAhC,EAAiDv4L,IAAI,CAACw4L,cAAtD,EAAsEx4L,IAAI,CAACu8L,WAA3E,CAAP;AACD;;;WAED,gBAAcp3W,MAAd,EAAsBozW,eAAtB,EAAuCC,cAAvC,EAA4E;AAAA,UAArB+D,WAAqB,uEAAP,KAAO;AAC1E,UAAM+P,eAAe,GAAGnnX,MAAM,IAAIwsW,kEAAlC,CAD0E,CAE1E;;AACA,UAAMyb,OAAO,GAAGd,eAAe,KAAK/P,WAAW,GAAG,OAAH,GAAamO,YAAY,EAAzC,CAA/B;AACA,UAAM2C,gBAAgB,GAAG9U,eAAe,IAAI5G,2EAA5C;AACA,UAAM4b,eAAe,GAAG/U,cAAc,IAAI7G,0EAA1C;AACA,aAAO,IAAIt5B,MAAJ,CAAW+0C,OAAX,EAAoBC,gBAApB,EAAsCE,eAAtC,EAAuDjB,eAAvD,CAAP;AACD;;;WAED,sBAAoB;AAClB7B,MAAAA,cAAc,GAAG,IAAjB;AACAV,MAAAA,WAAW,GAAG,EAAd;AACAE,MAAAA,YAAY,GAAG,EAAf;AACAI,MAAAA,YAAY,GAAG,EAAf;AACD;;;WAED,sBAAoE;AAAA,qFAAJ,EAAI;AAAA,UAAhDllX,MAAgD,QAAhDA,MAAgD;AAAA,UAAxCozW,eAAwC,QAAxCA,eAAwC;AAAA,UAAvBC,cAAuB,QAAvBA,cAAuB;;AAClE,aAAOngC,MAAM,CAACtqV,MAAP,CAAcoX,MAAd,EAAsBozW,eAAtB,EAAuCC,cAAvC,CAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1SH;AASA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASuV,cAAT,GAAoC;AAAA,oCAATC,OAAS;AAATA,IAAAA,OAAS;AAAA;;AAClC,MAAMn4K,IAAI,GAAGm4K,OAAO,CAACnlZ,MAAR,CAAe,UAACL,CAAD,EAAIwjB,CAAJ;AAAA,WAAUxjB,CAAC,GAAGwjB,CAAC,CAAC1Q,MAAhB;AAAA,GAAf,EAAuC,EAAvC,CAAb;AACA,SAAOsF,MAAM,YAAKi1N,IAAL,OAAb;AACD;;AAED,SAASo4K,iBAAT,GAA0C;AAAA,qCAAZC,UAAY;AAAZA,IAAAA,UAAY;AAAA;;AACxC,SAAO,UAACnjZ,CAAD;AAAA,WACLmjZ,UAAU,CACPrlZ,MADH,CAEI,gBAAmCg8I,EAAnC,EAA0C;AAAA;AAAA,UAAxCspQ,UAAwC;AAAA,UAA5BC,UAA4B;AAAA,UAAhB18J,MAAgB;;AACxC,gBAA0B7sG,EAAE,CAAC95I,CAAD,EAAI2mP,MAAJ,CAA5B;AAAA;AAAA,UAAOnnJ,GAAP;AAAA,UAAY+wF,IAAZ;AAAA,UAAkB73J,IAAlB;;AACA,aAAO,CAAC,4bAAK0qX,UAAN,GAAqB5jT,GAArB,GAA4B+wF,IAAI,IAAI8yN,UAApC,EAAgD3qX,IAAhD,CAAP;AACD,KALL,EAMI,CAAC,EAAD,EAAK,IAAL,EAAW,CAAX,CANJ,EAQGp8B,KARH,CAQS,CART,EAQY,CARZ,CADK;AAAA,GAAP;AAUD;;AAED,SAASuuB,KAAT,CAAe/gB,CAAf,EAA+B;AAC7B,MAAIA,CAAC,IAAI,IAAT,EAAe;AACb,WAAO,CAAC,IAAD,EAAO,IAAP,CAAP;AACD;;AAH4B,qCAAVw5Y,QAAU;AAAVA,IAAAA,QAAU;AAAA;;AAK7B,+BAAiCA,QAAjC,+BAA2C;AAAtC;AAAA,QAAOlnP,KAAP;AAAA,QAAcmnP,SAAd;;AACH,QAAMvjZ,CAAC,GAAGo8J,KAAK,CAAC17I,IAAN,CAAW5W,CAAX,CAAV;;AACA,QAAI9J,CAAJ,EAAO;AACL,aAAOujZ,SAAS,CAACvjZ,CAAD,CAAhB;AACD;AACF;;AACD,SAAO,CAAC,IAAD,EAAO,IAAP,CAAP;AACD;;AAED,SAASwjZ,WAAT,GAA8B;AAAA,qCAANv3Y,IAAM;AAANA,IAAAA,IAAM;AAAA;;AAC5B,SAAO,UAACoe,KAAD,EAAQs8N,MAAR,EAAmB;AACxB,QAAM88J,GAAG,GAAG,EAAZ;AACA,QAAIrlZ,CAAJ;;AAEA,SAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG6N,IAAI,CAAC9O,MAArB,EAA6BiB,CAAC,EAA9B,EAAkC;AAChCqlZ,MAAAA,GAAG,CAACx3Y,IAAI,CAAC7N,CAAD,CAAL,CAAH,GAAewkZ,sDAAY,CAACv4X,KAAK,CAACs8N,MAAM,GAAGvoP,CAAV,CAAN,CAA3B;AACD;;AACD,WAAO,CAACqlZ,GAAD,EAAM,IAAN,EAAY98J,MAAM,GAAGvoP,CAArB,CAAP;AACD,GARD;AASD,EAED;;;AACA,IAAMslZ,WAAW,GAAG,iCAApB;AACA,IAAMC,eAAe,gBAASD,WAAW,CAACnzY,MAArB,qBAAsCuyY,sDAAtC,aAArB;AACA,IAAMc,gBAAgB,GAAG,qDAAzB;AACA,IAAMC,YAAY,GAAGhuY,MAAM,WAAI+tY,gBAAgB,CAACrzY,MAArB,SAA8BozY,eAA9B,EAA3B;AACA,IAAMG,qBAAqB,GAAGjuY,MAAM,eAAQguY,YAAY,CAACtzY,MAArB,QAApC;AACA,IAAMwzY,WAAW,GAAG,6CAApB;AACA,IAAMC,YAAY,GAAG,6BAArB;AACA,IAAMC,eAAe,GAAG,kBAAxB;AACA,IAAMC,kBAAkB,GAAGV,WAAW,CAAC,UAAD,EAAa,YAAb,EAA2B,SAA3B,CAAtC;AACA,IAAMW,qBAAqB,GAAGX,WAAW,CAAC,MAAD,EAAS,SAAT,CAAzC;AACA,IAAMY,WAAW,GAAG,uBAApB,EAA6C;;AAC7C,IAAMC,YAAY,GAAGxuY,MAAM,WACtB+tY,gBAAgB,CAACrzY,MADK,kBACSmzY,WAAW,CAACnzY,MADrB,eACgCuyY,sDADhC,SAA3B;AAGA,IAAMwB,qBAAqB,GAAGzuY,MAAM,eAAQwuY,YAAY,CAAC9zY,MAArB,QAApC;;AAEA,SAASg0Y,GAAT,CAAal6X,KAAb,EAAoB6rK,GAApB,EAAyBnE,QAAzB,EAAmC;AACjC,MAAM/xL,CAAC,GAAGqqB,KAAK,CAAC6rK,GAAD,CAAf;AACA,SAAOhmD,qDAAW,CAAClwI,CAAD,CAAX,GAAiB+xL,QAAjB,GAA4B6wN,sDAAY,CAAC5iZ,CAAD,CAA/C;AACD;;AAED,SAASwkZ,aAAT,CAAuBn6X,KAAvB,EAA8Bs8N,MAA9B,EAAsC;AACpC,MAAMvwI,IAAI,GAAG;AACXzpF,IAAAA,IAAI,EAAE43X,GAAG,CAACl6X,KAAD,EAAQs8N,MAAR,CADE;AAEXprL,IAAAA,KAAK,EAAEgpV,GAAG,CAACl6X,KAAD,EAAQs8N,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFC;AAGXlrL,IAAAA,GAAG,EAAE8oV,GAAG,CAACl6X,KAAD,EAAQs8N,MAAM,GAAG,CAAjB,EAAoB,CAApB;AAHG,GAAb;AAMA,SAAO,CAACvwI,IAAD,EAAO,IAAP,EAAauwI,MAAM,GAAG,CAAtB,CAAP;AACD;;AAED,SAAS89J,cAAT,CAAwBp6X,KAAxB,EAA+Bs8N,MAA/B,EAAuC;AACrC,MAAMvwI,IAAI,GAAG;AACXtpF,IAAAA,KAAK,EAAEy3X,GAAG,CAACl6X,KAAD,EAAQs8N,MAAR,EAAgB,CAAhB,CADC;AAEX35N,IAAAA,OAAO,EAAEu3X,GAAG,CAACl6X,KAAD,EAAQs8N,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFD;AAGXz5N,IAAAA,OAAO,EAAEq3X,GAAG,CAACl6X,KAAD,EAAQs8N,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAHD;AAIXv5N,IAAAA,YAAY,EAAEy1X,qDAAW,CAACx4X,KAAK,CAACs8N,MAAM,GAAG,CAAV,CAAN;AAJd,GAAb;AAOA,SAAO,CAACvwI,IAAD,EAAO,IAAP,EAAauwI,MAAM,GAAG,CAAtB,CAAP;AACD;;AAED,SAAS+9J,gBAAT,CAA0Br6X,KAA1B,EAAiCs8N,MAAjC,EAAyC;AACvC,MAAMr7O,KAAK,GAAG,CAAC+e,KAAK,CAACs8N,MAAD,CAAN,IAAkB,CAACt8N,KAAK,CAACs8N,MAAM,GAAG,CAAV,CAAtC;AAAA,MACEg+J,UAAU,GAAGhC,sDAAY,CAACt4X,KAAK,CAACs8N,MAAM,GAAG,CAAV,CAAN,EAAoBt8N,KAAK,CAACs8N,MAAM,GAAG,CAAV,CAAzB,CAD3B;AAAA,MAEEp2D,IAAI,GAAGjlL,KAAK,GAAG,IAAH,GAAUy7X,0EAAA,CAAyB4d,UAAzB,CAFxB;AAGA,SAAO,CAAC,EAAD,EAAKp0N,IAAL,EAAWo2D,MAAM,GAAG,CAApB,CAAP;AACD;;AAED,SAASi+J,eAAT,CAAyBv6X,KAAzB,EAAgCs8N,MAAhC,EAAwC;AACtC,MAAMp2D,IAAI,GAAGlmK,KAAK,CAACs8N,MAAD,CAAL,GAAgB83J,iEAAA,CAAgBp0X,KAAK,CAACs8N,MAAD,CAArB,CAAhB,GAAiD,IAA9D;AACA,SAAO,CAAC,EAAD,EAAKp2D,IAAL,EAAWo2D,MAAM,GAAG,CAApB,CAAP;AACD,EAED;;;AAEA,IAAMk+J,WAAW,GAAGhvY,MAAM,cAAO+tY,gBAAgB,CAACrzY,MAAxB,OAA1B,EAEA;;AAEA,IAAMu0Y,WAAW,GACf,8PADF;;AAGA,SAASC,kBAAT,CAA4B16X,KAA5B,EAAmC;AACjC,2OACEA,KADF;AAAA,MAAOvgB,CAAP;AAAA,MAAUk7Y,OAAV;AAAA,MAAmBC,QAAnB;AAAA,MAA6BC,OAA7B;AAAA,MAAsCC,MAAtC;AAAA,MAA8CC,OAA9C;AAAA,MAAuDC,SAAvD;AAAA,MAAkEC,SAAlE;AAAA,MAA6EC,eAA7E;;AAGA,MAAMC,iBAAiB,GAAG17Y,CAAC,CAAC,CAAD,CAAD,KAAS,GAAnC;AACA,MAAM27Y,eAAe,GAAGH,SAAS,IAAIA,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAtD;;AAEA,MAAMI,WAAW,GAAG,SAAdA,WAAc,CAACz3S,GAAD;AAAA,QAAMr4E,KAAN,uEAAc,KAAd;AAAA,WAClBq4E,GAAG,KAAKv5E,SAAR,KAAsBkB,KAAK,IAAKq4E,GAAG,IAAIu3S,iBAAvC,IAA6D,CAACv3S,GAA9D,GAAoEA,GADlD;AAAA,GAApB;;AAGA,SAAO,CACL;AACE3sB,IAAAA,KAAK,EAAEokU,WAAW,CAAC3C,uDAAa,CAACiC,OAAD,CAAd,CADpB;AAEEtvU,IAAAA,MAAM,EAAEgwU,WAAW,CAAC3C,uDAAa,CAACkC,QAAD,CAAd,CAFrB;AAGE9a,IAAAA,KAAK,EAAEub,WAAW,CAAC3C,uDAAa,CAACmC,OAAD,CAAd,CAHpB;AAIE1vU,IAAAA,IAAI,EAAEkwU,WAAW,CAAC3C,uDAAa,CAACoC,MAAD,CAAd,CAJnB;AAKEr4X,IAAAA,KAAK,EAAE44X,WAAW,CAAC3C,uDAAa,CAACqC,OAAD,CAAd,CALpB;AAMEp4X,IAAAA,OAAO,EAAE04X,WAAW,CAAC3C,uDAAa,CAACsC,SAAD,CAAd,CANtB;AAOEn4X,IAAAA,OAAO,EAAEw4X,WAAW,CAAC3C,uDAAa,CAACuC,SAAD,CAAd,EAA2BA,SAAS,KAAK,IAAzC,CAPtB;AAQEl4X,IAAAA,YAAY,EAAEs4X,WAAW,CAAC7C,qDAAW,CAAC0C,eAAD,CAAZ,EAA+BE,eAA/B;AAR3B,GADK,CAAP;AAYD,EAED;AACA;AACA;;;AACA,IAAME,UAAU,GAAG;AACjBC,EAAAA,GAAG,EAAE,CADY;AAEjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAFO;AAGjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAHO;AAIjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAJO;AAKjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EALO;AAMjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EANO;AAOjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAPO;AAQjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EARO;AASjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK;AATO,CAAnB;;AAYA,SAASC,WAAT,CAAqBC,UAArB,EAAiCtB,OAAjC,EAA0CC,QAA1C,EAAoDE,MAApD,EAA4DC,OAA5D,EAAqEC,SAArE,EAAgFC,SAAhF,EAA2F;AACzF,MAAM5wY,MAAM,GAAG;AACbiY,IAAAA,IAAI,EAAEq4X,OAAO,CAAC7nZ,MAAR,KAAmB,CAAnB,GAAuBulZ,wDAAc,CAACE,sDAAY,CAACoC,OAAD,CAAb,CAArC,GAA+DpC,sDAAY,CAACoC,OAAD,CADpE;AAEbzpV,IAAAA,KAAK,EAAEwgV,4DAAA,CAA4BkJ,QAA5B,IAAwC,CAFlC;AAGbxpV,IAAAA,GAAG,EAAEmnV,sDAAY,CAACuC,MAAD,CAHJ;AAIbzpV,IAAAA,IAAI,EAAEknV,sDAAY,CAACwC,OAAD,CAJL;AAKbzpV,IAAAA,MAAM,EAAEinV,sDAAY,CAACyC,SAAD;AALP,GAAf;AAQA,MAAIC,SAAJ,EAAe5wY,MAAM,CAACknD,MAAP,GAAgBgnV,sDAAY,CAAC0C,SAAD,CAA5B;;AACf,MAAIgB,UAAJ,EAAgB;AACd5xY,IAAAA,MAAM,CAAC0uE,OAAP,GACEkjU,UAAU,CAACnpZ,MAAX,GAAoB,CAApB,GACI4+Y,6DAAA,CAA6BuK,UAA7B,IAA2C,CAD/C,GAEIvK,8DAAA,CAA8BuK,UAA9B,IAA4C,CAHlD;AAID;;AAED,SAAO5xY,MAAP;AACD,EAED;;;AACA,IAAM6xY,OAAO,GACX,iMADF;;AAGA,SAASC,cAAT,CAAwBn8X,KAAxB,EAA+B;AAC7B,4OAaMA,KAbN;AAAA,MAEIi8X,UAFJ;AAAA,MAGInB,MAHJ;AAAA,MAIIF,QAJJ;AAAA,MAKID,OALJ;AAAA,MAMII,OANJ;AAAA,MAOIC,SAPJ;AAAA,MAQIC,SARJ;AAAA,MASImB,SATJ;AAAA,MAUIC,SAVJ;AAAA,MAWIC,UAXJ;AAAA,MAYIC,YAZJ;AAAA,MAcElyY,MAdF,GAcW2xY,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CAdtB;;AAgBA,MAAI3gZ,MAAJ;;AACA,MAAI8hZ,SAAJ,EAAe;AACb9hZ,IAAAA,MAAM,GAAGghZ,UAAU,CAACc,SAAD,CAAnB;AACD,GAFD,MAEO,IAAIC,SAAJ,EAAe;AACpB/hZ,IAAAA,MAAM,GAAG,CAAT;AACD,GAFM,MAEA;AACLA,IAAAA,MAAM,GAAGg+Y,sDAAY,CAACgE,UAAD,EAAaC,YAAb,CAArB;AACD;;AAED,SAAO,CAAClyY,MAAD,EAAS,IAAIqyX,iEAAJ,CAAoBpiY,MAApB,CAAT,CAAP;AACD;;AAED,SAASkiZ,iBAAT,CAA2B/8Y,CAA3B,EAA8B;AAC5B;AACA,SAAOA,CAAC,CACLygB,OADI,CACI,mBADJ,EACyB,GADzB,EAEJA,OAFI,CAEI,UAFJ,EAEgB,GAFhB,EAGJ/J,IAHI,EAAP;AAID,EAED;;;AAEA,IAAMsmY,OAAO,GACT,4HADJ;AAAA,IAEEC,MAAM,GACJ,wJAHJ;AAAA,IAIEC,KAAK,GACH,2HALJ;;AAOA,SAASC,mBAAT,CAA6B58X,KAA7B,EAAoC;AAClC,4OAAiFA,KAAjF;AAAA,MAASi8X,UAAT;AAAA,MAAqBnB,MAArB;AAAA,MAA6BF,QAA7B;AAAA,MAAuCD,OAAvC;AAAA,MAAgDI,OAAhD;AAAA,MAAyDC,SAAzD;AAAA,MAAoEC,SAApE;AAAA,MACE5wY,MADF,GACW2xY,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CADtB;;AAEA,SAAO,CAAC5wY,MAAD,EAASqyX,6EAAT,CAAP;AACD;;AAED,SAASmgB,YAAT,CAAsB78X,KAAtB,EAA6B;AAC3B,4OAAiFA,KAAjF;AAAA,MAASi8X,UAAT;AAAA,MAAqBrB,QAArB;AAAA,MAA+BE,MAA/B;AAAA,MAAuCC,OAAvC;AAAA,MAAgDC,SAAhD;AAAA,MAA2DC,SAA3D;AAAA,MAAsEN,OAAtE;AAAA,MACEtwY,MADF,GACW2xY,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CADtB;;AAEA,SAAO,CAAC5wY,MAAD,EAASqyX,6EAAT,CAAP;AACD;;AAED,IAAMogB,4BAA4B,GAAGnE,cAAc,CAACe,WAAD,EAAcD,qBAAd,CAAnD;AACA,IAAMsD,6BAA6B,GAAGpE,cAAc,CAACgB,YAAD,EAAeF,qBAAf,CAApD;AACA,IAAMuD,gCAAgC,GAAGrE,cAAc,CAACiB,eAAD,EAAkBH,qBAAlB,CAAvD;AACA,IAAMwD,oBAAoB,GAAGtE,cAAc,CAACa,YAAD,CAA3C;AAEA,IAAM0D,0BAA0B,GAAGrE,iBAAiB,CAClDsB,aADkD,EAElDC,cAFkD,EAGlDC,gBAHkD,EAIlDE,eAJkD,CAApD;AAMA,IAAM4C,2BAA2B,GAAGtE,iBAAiB,CACnDgB,kBADmD,EAEnDO,cAFmD,EAGnDC,gBAHmD,EAInDE,eAJmD,CAArD;AAMA,IAAM6C,4BAA4B,GAAGvE,iBAAiB,CACpDiB,qBADoD,EAEpDM,cAFoD,EAGpDC,gBAHoD,EAIpDE,eAJoD,CAAtD;AAMA,IAAM8C,uBAAuB,GAAGxE,iBAAiB,CAC/CuB,cAD+C,EAE/CC,gBAF+C,EAG/CE,eAH+C,CAAjD;AAMA;AACA;AACA;;AAEO,SAASjd,YAAT,CAAsB79X,CAAtB,EAAyB;AAC9B,SAAO+gB,KAAK,CACV/gB,CADU,EAEV,CAACq9Y,4BAAD,EAA+BI,0BAA/B,CAFU,EAGV,CAACH,6BAAD,EAAgCI,2BAAhC,CAHU,EAIV,CAACH,gCAAD,EAAmCI,4BAAnC,CAJU,EAKV,CAACH,oBAAD,EAAuBI,uBAAvB,CALU,CAAZ;AAOD;AAEM,SAAShgB,gBAAT,CAA0B59X,CAA1B,EAA6B;AAClC,SAAO+gB,KAAK,CAACg8X,iBAAiB,CAAC/8Y,CAAD,CAAlB,EAAuB,CAACy8Y,OAAD,EAAUC,cAAV,CAAvB,CAAZ;AACD;AAEM,SAAS5e,aAAT,CAAuB99X,CAAvB,EAA0B;AAC/B,SAAO+gB,KAAK,CACV/gB,CADU,EAEV,CAACg9Y,OAAD,EAAUG,mBAAV,CAFU,EAGV,CAACF,MAAD,EAASE,mBAAT,CAHU,EAIV,CAACD,KAAD,EAAQE,YAAR,CAJU,CAAZ;AAMD;AAEM,SAASxT,gBAAT,CAA0B5pY,CAA1B,EAA6B;AAClC,SAAO+gB,KAAK,CAAC/gB,CAAD,EAAI,CAACg7Y,WAAD,EAAcC,kBAAd,CAAJ,CAAZ;AACD;AAED,IAAM4C,kBAAkB,GAAGzE,iBAAiB,CAACuB,cAAD,CAA5C;AAEO,SAAS9Q,gBAAT,CAA0B7pY,CAA1B,EAA6B;AAClC,SAAO+gB,KAAK,CAAC/gB,CAAD,EAAI,CAAC+6Y,WAAD,EAAc8C,kBAAd,CAAJ,CAAZ;AACD;AAED,IAAMC,4BAA4B,GAAG5E,cAAc,CAACoB,WAAD,EAAcE,qBAAd,CAAnD;AACA,IAAMuD,oBAAoB,GAAG7E,cAAc,CAACqB,YAAD,CAA3C;AAEA,IAAMyD,+BAA+B,GAAG5E,iBAAiB,CACvDuB,cADuD,EAEvDC,gBAFuD,EAGvDE,eAHuD,CAAzD;AAMO,SAAS/c,QAAT,CAAkB/9X,CAAlB,EAAqB;AAC1B,SAAO+gB,KAAK,CACV/gB,CADU,EAEV,CAAC89Y,4BAAD,EAA+BL,0BAA/B,CAFU,EAGV,CAACM,oBAAD,EAAuBC,+BAAvB,CAHU,CAAZ;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7UD;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMC,WAAW,GAAG,mDAApB;;AAEA,SAASC,OAAT,CAAiB5rP,KAAjB,EAAyC;AAAA,MAAjBge,IAAiB,uEAAV,UAACh8K,CAAD;AAAA,WAAOA,CAAP;AAAA,GAAU;AACvC,SAAO;AAAEg+J,IAAAA,KAAK,EAALA,KAAF;AAAS6rP,IAAAA,KAAK,EAAE;AAAA;AAAA,UAAEn+Y,CAAF;;AAAA,aAASswK,IAAI,CAAC4/N,uDAAW,CAAClwY,CAAD,CAAZ,CAAb;AAAA;AAAhB,GAAP;AACD;;AAED,IAAMo+Y,IAAI,GAAGjrX,MAAM,CAAC0gE,YAAP,CAAoB,GAApB,CAAb;AACA,IAAMwqT,WAAW,eAAQD,IAAR,MAAjB;AACA,IAAME,iBAAiB,GAAG,IAAIvyY,MAAJ,CAAWsyY,WAAX,EAAwB,GAAxB,CAA1B;;AAEA,SAASE,YAAT,CAAsBv+Y,CAAtB,EAAyB;AACvB;AACA;AACA,SAAOA,CAAC,CAACygB,OAAF,CAAU,KAAV,EAAiB,MAAjB,EAAyBA,OAAzB,CAAiC69X,iBAAjC,EAAoDD,WAApD,CAAP;AACD;;AAED,SAASG,oBAAT,CAA8Bx+Y,CAA9B,EAAiC;AAC/B,SAAOA,CAAC,CACLygB,OADI,CACI,KADJ,EACW,EADX,EACe;AADf,GAEJA,OAFI,CAEI69X,iBAFJ,EAEuB,GAFvB,EAE4B;AAF5B,GAGJ3nY,WAHI,EAAP;AAID;;AAED,SAAS8nY,KAAT,CAAeC,OAAf,EAAwBpiY,UAAxB,EAAoC;AAClC,MAAIoiY,OAAO,KAAK,IAAhB,EAAsB;AACpB,WAAO,IAAP;AACD,GAFD,MAEO;AACL,WAAO;AACLpsP,MAAAA,KAAK,EAAEvmJ,MAAM,CAAC2yY,OAAO,CAACjsZ,GAAR,CAAY8rZ,YAAZ,EAA0Bl8X,IAA1B,CAA+B,GAA/B,CAAD,CADR;AAEL87X,MAAAA,KAAK,EAAE;AAAA;AAAA,YAAEn+Y,CAAF;;AAAA,eACL0+Y,OAAO,CAAC3gR,SAAR,CAAkB,UAACzpI,CAAD;AAAA,iBAAOkqZ,oBAAoB,CAACx+Y,CAAD,CAApB,KAA4Bw+Y,oBAAoB,CAAClqZ,CAAD,CAAvD;AAAA,SAAlB,IAAgFgoB,UAD3E;AAAA;AAFF,KAAP;AAKD;AACF;;AAED,SAASzhB,MAAT,CAAgBy3J,KAAhB,EAAuBnrJ,MAAvB,EAA+B;AAC7B,SAAO;AAAEmrJ,IAAAA,KAAK,EAALA,KAAF;AAAS6rP,IAAAA,KAAK,EAAE;AAAA;AAAA,UAAI1mY,CAAJ;AAAA,UAAOvhB,CAAP;;AAAA,aAAc2iZ,sDAAY,CAACphY,CAAD,EAAIvhB,CAAJ,CAA1B;AAAA,KAAhB;AAAkDiR,IAAAA,MAAM,EAANA;AAAlD,GAAP;AACD;;AAED,SAASw3Y,MAAT,CAAgBrsP,KAAhB,EAAuB;AACrB,SAAO;AAAEA,IAAAA,KAAK,EAALA,KAAF;AAAS6rP,IAAAA,KAAK,EAAE;AAAA;AAAA,UAAEn+Y,CAAF;;AAAA,aAASA,CAAT;AAAA;AAAhB,GAAP;AACD;;AAED,SAAS4+Y,WAAT,CAAqB9pZ,KAArB,EAA4B;AAC1B,SAAOA,KAAK,CAAC2rB,OAAN,CAAc,6BAAd,EAA6C,MAA7C,CAAP;AACD;;AAED,SAASo+X,YAAT,CAAsB16X,KAAtB,EAA6BsqR,GAA7B,EAAkC;AAChC,MAAM3wP,GAAG,GAAGqyV,sDAAU,CAAC1hG,GAAD,CAAtB;AAAA,MACEzyQ,GAAG,GAAGm0W,sDAAU,CAAC1hG,GAAD,EAAM,KAAN,CADlB;AAAA,MAEEqwG,KAAK,GAAG3O,sDAAU,CAAC1hG,GAAD,EAAM,KAAN,CAFpB;AAAA,MAGEswG,IAAI,GAAG5O,sDAAU,CAAC1hG,GAAD,EAAM,KAAN,CAHnB;AAAA,MAIEuwG,GAAG,GAAG7O,sDAAU,CAAC1hG,GAAD,EAAM,KAAN,CAJlB;AAAA,MAKEwwG,QAAQ,GAAG9O,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CALvB;AAAA,MAMEywG,UAAU,GAAG/O,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CANzB;AAAA,MAOE0wG,QAAQ,GAAGhP,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CAPvB;AAAA,MAQE2wG,SAAS,GAAGjP,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CARxB;AAAA,MASE4wG,SAAS,GAAGlP,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CATxB;AAAA,MAUE6wG,SAAS,GAAGnP,sDAAU,CAAC1hG,GAAD,EAAM,OAAN,CAVxB;AAAA,MAWEhoJ,OAAO,GAAG,SAAVA,OAAU,CAACxtJ,CAAD;AAAA,WAAQ;AAAEq5J,MAAAA,KAAK,EAAEvmJ,MAAM,CAAC6yY,WAAW,CAAC3lZ,CAAC,CAACy8F,GAAH,CAAZ,CAAf;AAAqCyoT,MAAAA,KAAK,EAAE;AAAA;AAAA,YAAEn+Y,CAAF;;AAAA,eAASA,CAAT;AAAA,OAA5C;AAAwDymJ,MAAAA,OAAO,EAAE;AAAjE,KAAR;AAAA,GAXZ;AAAA,MAYE84P,OAAO,GAAG,SAAVA,OAAU,CAACtmZ,CAAD,EAAO;AACf,QAAIkrB,KAAK,CAACsiI,OAAV,EAAmB;AACjB,aAAOA,OAAO,CAACxtJ,CAAD,CAAd;AACD;;AACD,YAAQA,CAAC,CAACy8F,GAAV;AACE;AACA,WAAK,GAAL;AACE,eAAO+oT,KAAK,CAAChwG,GAAG,CAACqiG,IAAJ,CAAS,OAAT,EAAkB,KAAlB,CAAD,EAA2B,CAA3B,CAAZ;;AACF,WAAK,IAAL;AACE,eAAO2N,KAAK,CAAChwG,GAAG,CAACqiG,IAAJ,CAAS,MAAT,EAAiB,KAAjB,CAAD,EAA0B,CAA1B,CAAZ;AACF;;AACA,WAAK,GAAL;AACE,eAAOoN,OAAO,CAACiB,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOjB,OAAO,CAACmB,SAAD,EAAYzG,oDAAZ,CAAd;;AACF,WAAK,MAAL;AACE,eAAOsF,OAAO,CAACa,IAAD,CAAd;;AACF,WAAK,OAAL;AACE,eAAOb,OAAO,CAACoB,SAAD,CAAd;;AACF,WAAK,QAAL;AACE,eAAOpB,OAAO,CAACc,GAAD,CAAd;AACF;;AACA,WAAK,GAAL;AACE,eAAOd,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,KAAL;AACE,eAAOyiX,KAAK,CAAChwG,GAAG,CAAC7iO,MAAJ,CAAW,OAAX,EAAoB,IAApB,EAA0B,KAA1B,CAAD,EAAmC,CAAnC,CAAZ;;AACF,WAAK,MAAL;AACE,eAAO6yU,KAAK,CAAChwG,GAAG,CAAC7iO,MAAJ,CAAW,MAAX,EAAmB,IAAnB,EAAyB,KAAzB,CAAD,EAAkC,CAAlC,CAAZ;;AACF,WAAK,GAAL;AACE,eAAOsyU,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,KAAL;AACE,eAAOyiX,KAAK,CAAChwG,GAAG,CAAC7iO,MAAJ,CAAW,OAAX,EAAoB,KAApB,EAA2B,KAA3B,CAAD,EAAoC,CAApC,CAAZ;;AACF,WAAK,MAAL;AACE,eAAO6yU,KAAK,CAAChwG,GAAG,CAAC7iO,MAAJ,CAAW,MAAX,EAAmB,KAAnB,EAA0B,KAA1B,CAAD,EAAmC,CAAnC,CAAZ;AACF;;AACA,WAAK,GAAL;AACE,eAAOsyU,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;AACF;;AACA,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACgB,UAAD,CAAd;;AACF,WAAK,KAAL;AACE,eAAOhB,OAAO,CAACY,KAAD,CAAd;AACF;;AACA,WAAK,IAAL;AACE,eAAOZ,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOf,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACgB,UAAD,CAAd;;AACF,WAAK,KAAL;AACE,eAAOhB,OAAO,CAACY,KAAD,CAAd;;AACF,WAAK,GAAL;AACE,eAAOH,MAAM,CAACS,SAAD,CAAb;;AACF,WAAK,IAAL;AACE,eAAOT,MAAM,CAACM,QAAD,CAAb;;AACF,WAAK,KAAL;AACE,eAAOf,OAAO,CAACpgW,GAAD,CAAd;AACF;;AACA,WAAK,GAAL;AACE,eAAO2gW,KAAK,CAAChwG,GAAG,CAACiiG,SAAJ,EAAD,EAAkB,CAAlB,CAAZ;AACF;;AACA,WAAK,MAAL;AACE,eAAOwN,OAAO,CAACa,IAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOb,OAAO,CAACmB,SAAD,EAAYzG,oDAAZ,CAAd;AACF;;AACA,WAAK,GAAL;AACE,eAAOsF,OAAO,CAACe,QAAD,CAAd;;AACF,WAAK,IAAL;AACE,eAAOf,OAAO,CAACliX,GAAD,CAAd;AACF;;AACA,WAAK,GAAL;AACA,WAAK,GAAL;AACE,eAAOkiX,OAAO,CAACpgW,GAAD,CAAd;;AACF,WAAK,KAAL;AACE,eAAO2gW,KAAK,CAAChwG,GAAG,CAAC0zF,QAAJ,CAAa,OAAb,EAAsB,KAAtB,EAA6B,KAA7B,CAAD,EAAsC,CAAtC,CAAZ;;AACF,WAAK,MAAL;AACE,eAAOsc,KAAK,CAAChwG,GAAG,CAAC0zF,QAAJ,CAAa,MAAb,EAAqB,KAArB,EAA4B,KAA5B,CAAD,EAAqC,CAArC,CAAZ;;AACF,WAAK,KAAL;AACE,eAAOsc,KAAK,CAAChwG,GAAG,CAAC0zF,QAAJ,CAAa,OAAb,EAAsB,IAAtB,EAA4B,KAA5B,CAAD,EAAqC,CAArC,CAAZ;;AACF,WAAK,MAAL;AACE,eAAOsc,KAAK,CAAChwG,GAAG,CAAC0zF,QAAJ,CAAa,MAAb,EAAqB,IAArB,EAA2B,KAA3B,CAAD,EAAoC,CAApC,CAAZ;AACF;;AACA,WAAK,GAAL;AACA,WAAK,IAAL;AACE,eAAOtnY,MAAM,CAAC,IAAIkR,MAAJ,gBAAmBkzY,QAAQ,CAACx4Y,MAA5B,mBAA2Cu1B,GAAG,CAACv1B,MAA/C,SAAD,EAA8D,CAA9D,CAAb;;AACF,WAAK,KAAL;AACE,eAAO5L,MAAM,CAAC,IAAIkR,MAAJ,gBAAmBkzY,QAAQ,CAACx4Y,MAA5B,eAAuCu1B,GAAG,CAACv1B,MAA3C,QAAD,EAAyD,CAAzD,CAAb;AACF;AACA;;AACA,WAAK,GAAL;AACE,eAAOk4Y,MAAM,CAAC,oBAAD,CAAb;;AACF;AACE,eAAOl4P,OAAO,CAACxtJ,CAAD,CAAd;AA/GJ;AAiHD,GAjIH;;AAmIA,MAAMwyD,IAAI,GAAG8zV,OAAO,CAACp7X,KAAD,CAAP,IAAkB;AAC7Bq7X,IAAAA,aAAa,EAAEvB;AADc,GAA/B;AAIAxyV,EAAAA,IAAI,CAACtnC,KAAL,GAAaA,KAAb;AAEA,SAAOsnC,IAAP;AACD;;AAED,IAAMg0V,uBAAuB,GAAG;AAC9B58X,EAAAA,IAAI,EAAE;AACJ,eAAW,IADP;AAEJ+jX,IAAAA,OAAO,EAAE;AAFL,GADwB;AAK9Bn1U,EAAAA,KAAK,EAAE;AACLm1U,IAAAA,OAAO,EAAE,GADJ;AAEL,eAAW,IAFN;AAGLnjC,IAAAA,KAAK,EAAE,KAHF;AAILi8C,IAAAA,IAAI,EAAE;AAJD,GALuB;AAW9B/tV,EAAAA,GAAG,EAAE;AACHi1U,IAAAA,OAAO,EAAE,GADN;AAEH,eAAW;AAFR,GAXyB;AAe9BttT,EAAAA,OAAO,EAAE;AACPmqR,IAAAA,KAAK,EAAE,KADA;AAEPi8C,IAAAA,IAAI,EAAE;AAFC,GAfqB;AAmB9BC,EAAAA,SAAS,EAAE,GAnBmB;AAoB9BC,EAAAA,SAAS,EAAE,GApBmB;AAqB9BhuV,EAAAA,IAAI,EAAE;AACJg1U,IAAAA,OAAO,EAAE,GADL;AAEJ,eAAW;AAFP,GArBwB;AAyB9B/0U,EAAAA,MAAM,EAAE;AACN+0U,IAAAA,OAAO,EAAE,GADH;AAEN,eAAW;AAFL,GAzBsB;AA6B9B90U,EAAAA,MAAM,EAAE;AACN80U,IAAAA,OAAO,EAAE,GADH;AAEN,eAAW;AAFL,GA7BsB;AAiC9BmL,EAAAA,YAAY,EAAE;AACZ2N,IAAAA,IAAI,EAAE,OADM;AAEZj8C,IAAAA,KAAK,EAAE;AAFK;AAjCgB,CAAhC;;AAuCA,SAASo8C,YAAT,CAAsBh6P,IAAtB,EAA4Bv1H,MAA5B,EAAoC80W,UAApC,EAAgD;AAC9C,MAAQ5lY,IAAR,GAAwBqmJ,IAAxB,CAAQrmJ,IAAR;AAAA,MAAc1K,KAAd,GAAwB+wJ,IAAxB,CAAc/wJ,KAAd;;AAEA,MAAI0K,IAAI,KAAK,SAAb,EAAwB;AACtB,WAAO;AACLinJ,MAAAA,OAAO,EAAE,IADJ;AAEL/wD,MAAAA,GAAG,EAAE5gG;AAFA,KAAP;AAID;;AAED,MAAMkO,KAAK,GAAGoiY,UAAU,CAAC5lY,IAAD,CAAxB;AAEA,MAAIk2F,GAAG,GAAG+pT,uBAAuB,CAACjgZ,IAAD,CAAjC;;AACA,MAAI,OAAOk2F,GAAP,KAAe,QAAnB,EAA6B;AAC3BA,IAAAA,GAAG,GAAGA,GAAG,CAAC1yF,KAAD,CAAT;AACD;;AAED,MAAI0yF,GAAJ,EAAS;AACP,WAAO;AACL+wD,MAAAA,OAAO,EAAE,KADJ;AAEL/wD,MAAAA,GAAG,EAAHA;AAFK,KAAP;AAID;;AAED,SAAO9qE,SAAP;AACD;;AAED,SAASk1X,UAAT,CAAoB5c,KAApB,EAA2B;AACzB,MAAM7xW,EAAE,GAAG6xW,KAAK,CAACzwY,GAAN,CAAU,UAACwjC,CAAD;AAAA,WAAOA,CAAC,CAACq8H,KAAT;AAAA,GAAV,EAA0Bt+J,MAA1B,CAAiC,UAACL,CAAD,EAAIwjB,CAAJ;AAAA,qBAAaxjB,CAAb,cAAkBwjB,CAAC,CAAC1Q,MAApB;AAAA,GAAjC,EAAgE,EAAhE,CAAX;AACA,SAAO,YAAK4qB,EAAL,QAAY6xW,KAAZ,CAAP;AACD;;AAED,SAAS3iX,KAAT,CAAe9gB,KAAf,EAAsB6yJ,KAAtB,EAA6BytP,QAA7B,EAAuC;AACrC,MAAMxrV,OAAO,GAAG90D,KAAK,CAAC8gB,KAAN,CAAY+xI,KAAZ,CAAhB;;AAEA,MAAI/9F,OAAJ,EAAa;AACX,QAAMm+J,GAAG,GAAG,EAAZ;AACA,QAAIstL,UAAU,GAAG,CAAjB;;AACA,SAAK,IAAM1rZ,CAAX,IAAgByrZ,QAAhB,EAA0B;AACxB,UAAI7oY,wDAAc,CAAC6oY,QAAD,EAAWzrZ,CAAX,CAAlB,EAAiC;AAC/B,YAAMmjB,CAAC,GAAGsoY,QAAQ,CAACzrZ,CAAD,CAAlB;AAAA,YACE6S,MAAM,GAAGsQ,CAAC,CAACtQ,MAAF,GAAWsQ,CAAC,CAACtQ,MAAF,GAAW,CAAtB,GAA0B,CADrC;;AAEA,YAAI,CAACsQ,CAAC,CAACgvI,OAAH,IAAchvI,CAAC,CAAC0M,KAApB,EAA2B;AACzBuuM,UAAAA,GAAG,CAACj7M,CAAC,CAAC0M,KAAF,CAAQuxE,GAAR,CAAY,CAAZ,CAAD,CAAH,GAAsBj+E,CAAC,CAAC0mY,KAAF,CAAQ5pV,OAAO,CAAC/hE,KAAR,CAAcwtZ,UAAd,EAA0BA,UAAU,GAAG74Y,MAAvC,CAAR,CAAtB;AACD;;AACD64Y,QAAAA,UAAU,IAAI74Y,MAAd;AACD;AACF;;AACD,WAAO,CAACotD,OAAD,EAAUm+J,GAAV,CAAP;AACD,GAdD,MAcO;AACL,WAAO,CAACn+J,OAAD,EAAU,EAAV,CAAP;AACD;AACF;;AAED,SAAS0rV,mBAAT,CAA6B1rV,OAA7B,EAAsC;AACpC,MAAM2rV,OAAO,GAAG,SAAVA,OAAU,CAAC/7X,KAAD,EAAW;AACzB,YAAQA,KAAR;AACE,WAAK,GAAL;AACE,eAAO,aAAP;;AACF,WAAK,GAAL;AACE,eAAO,QAAP;;AACF,WAAK,GAAL;AACE,eAAO,QAAP;;AACF,WAAK,GAAL;AACA,WAAK,GAAL;AACE,eAAO,MAAP;;AACF,WAAK,GAAL;AACE,eAAO,KAAP;;AACF,WAAK,GAAL;AACE,eAAO,SAAP;;AACF,WAAK,GAAL;AACA,WAAK,GAAL;AACE,eAAO,OAAP;;AACF,WAAK,GAAL;AACE,eAAO,MAAP;;AACF,WAAK,GAAL;AACA,WAAK,GAAL;AACE,eAAO,SAAP;;AACF,WAAK,GAAL;AACE,eAAO,YAAP;;AACF,WAAK,GAAL;AACE,eAAO,UAAP;;AACF,WAAK,GAAL;AACE,eAAO,SAAP;;AACF;AACE,eAAO,IAAP;AA7BJ;AA+BD,GAhCD;;AAkCA,MAAIsiK,IAAI,GAAG,IAAX;AACA,MAAIg6M,cAAJ;;AACA,MAAI,CAACr6P,qDAAW,CAAC7xE,OAAO,CAACn6C,CAAT,CAAhB,EAA6B;AAC3BqsK,IAAAA,IAAI,GAAGkuN,iEAAA,CAAgBpgV,OAAO,CAACn6C,CAAxB,CAAP;AACD;;AAED,MAAI,CAACgsH,qDAAW,CAAC7xE,OAAO,CAACuf,CAAT,CAAhB,EAA6B;AAC3B,QAAI,CAAC2yG,IAAL,EAAW;AACTA,MAAAA,IAAI,GAAG,IAAIw2M,iEAAJ,CAAoB1oU,OAAO,CAACuf,CAA5B,CAAP;AACD;;AACD2sT,IAAAA,cAAc,GAAGlsU,OAAO,CAACuf,CAAzB;AACD;;AAED,MAAI,CAACsyD,qDAAW,CAAC7xE,OAAO,CAACj5C,CAAT,CAAhB,EAA6B;AAC3Bi5C,IAAAA,OAAO,CAAC5oB,CAAR,GAAY,CAAC4oB,OAAO,CAACj5C,CAAR,GAAY,CAAb,IAAkB,CAAlB,GAAsB,CAAlC;AACD;;AAED,MAAI,CAAC8qH,qDAAW,CAAC7xE,OAAO,CAAC98C,CAAT,CAAhB,EAA6B;AAC3B,QAAI88C,OAAO,CAAC98C,CAAR,GAAY,EAAZ,IAAkB88C,OAAO,CAAC7hE,CAAR,KAAc,CAApC,EAAuC;AACrC6hE,MAAAA,OAAO,CAAC98C,CAAR,IAAa,EAAb;AACD,KAFD,MAEO,IAAI88C,OAAO,CAAC98C,CAAR,KAAc,EAAd,IAAoB88C,OAAO,CAAC7hE,CAAR,KAAc,CAAtC,EAAyC;AAC9C6hE,MAAAA,OAAO,CAAC98C,CAAR,GAAY,CAAZ;AACD;AACF;;AAED,MAAI88C,OAAO,CAAC4rV,CAAR,KAAc,CAAd,IAAmB5rV,OAAO,CAAC75D,CAA/B,EAAkC;AAChC65D,IAAAA,OAAO,CAAC75D,CAAR,GAAY,CAAC65D,OAAO,CAAC75D,CAArB;AACD;;AAED,MAAI,CAAC0rI,qDAAW,CAAC7xE,OAAO,CAACt+B,CAAT,CAAhB,EAA6B;AAC3Bs+B,IAAAA,OAAO,CAAC1vD,CAAR,GAAYk0Y,qDAAW,CAACxkV,OAAO,CAACt+B,CAAT,CAAvB;AACD;;AAED,MAAMsxW,IAAI,GAAG3xX,MAAM,CAACzT,IAAP,CAAYoyD,OAAZ,EAAqBvgE,MAArB,CAA4B,UAACmjB,CAAD,EAAIzb,CAAJ,EAAU;AACjD,QAAM/H,CAAC,GAAGusZ,OAAO,CAACxkZ,CAAD,CAAjB;;AACA,QAAI/H,CAAJ,EAAO;AACLwjB,MAAAA,CAAC,CAACxjB,CAAD,CAAD,GAAO4gE,OAAO,CAAC74D,CAAD,CAAd;AACD;;AAED,WAAOyb,CAAP;AACD,GAPY,EAOV,EAPU,CAAb;AASA,SAAO,CAACowX,IAAD,EAAO9gN,IAAP,EAAag6M,cAAb,CAAP;AACD;;AAED,IAAI2f,kBAAkB,GAAG,IAAzB;;AAEA,SAASC,gBAAT,GAA4B;AAC1B,MAAI,CAACD,kBAAL,EAAyB;AACvBA,IAAAA,kBAAkB,GAAG5gB,+DAAA,CAAoB,aAApB,CAArB;AACD;;AAED,SAAO4gB,kBAAP;AACD;;AAED,SAASE,qBAAT,CAA+Bn8X,KAA/B,EAAsCmM,MAAtC,EAA8C;AAC5C,MAAInM,KAAK,CAACsiI,OAAV,EAAmB;AACjB,WAAOtiI,KAAP;AACD;;AAED,MAAMihX,UAAU,GAAGpI,4EAAA,CAAiC74W,KAAK,CAACuxE,GAAvC,CAAnB;AACA,MAAMyxD,MAAM,GAAG+2O,kBAAkB,CAACkH,UAAD,EAAa90W,MAAb,CAAjC;;AAEA,MAAI62H,MAAM,IAAI,IAAV,IAAkBA,MAAM,CAACv+C,QAAP,CAAgBh+E,SAAhB,CAAtB,EAAkD;AAChD,WAAOzG,KAAP;AACD;;AAED,SAAOgjI,MAAP;AACD;;AAEM,SAASg3O,iBAAT,CAA2Bh3O,MAA3B,EAAmC72H,MAAnC,EAA2C;AAAA;;AAChD,SAAO,oBAAAh+B,KAAK,CAACC,SAAN,EAAgBiqB,MAAhB,yPAA0B2qI,MAAM,CAAC10J,GAAP,CAAW,UAACwG,CAAD;AAAA,WAAOqnZ,qBAAqB,CAACrnZ,CAAD,EAAIq3B,MAAJ,CAA5B;AAAA,GAAX,CAA1B,EAAP;AACD;AAED;AACA;AACA;;AAEO,SAAS2tW,iBAAT,CAA2B3tW,MAA3B,EAAmC7wB,KAAnC,EAA0C3D,MAA1C,EAAkD;AACvD,MAAMqrJ,MAAM,GAAGg3O,iBAAiB,CAACnB,iEAAA,CAAsBlhY,MAAtB,CAAD,EAAgCw0B,MAAhC,CAAhC;AAAA,MACE4yW,KAAK,GAAG/7O,MAAM,CAAC10J,GAAP,CAAW,UAACwG,CAAD;AAAA,WAAO4lZ,YAAY,CAAC5lZ,CAAD,EAAIq3B,MAAJ,CAAnB;AAAA,GAAX,CADV;AAAA,MAEEiwX,iBAAiB,GAAGrd,KAAK,CAACx1W,IAAN,CAAW,UAACz0B,CAAD;AAAA,WAAOA,CAAC,CAACumZ,aAAT;AAAA,GAAX,CAFtB;;AAIA,MAAIe,iBAAJ,EAAuB;AACrB,WAAO;AAAE9gZ,MAAAA,KAAK,EAALA,KAAF;AAAS0nJ,MAAAA,MAAM,EAANA,MAAT;AAAiBq4P,MAAAA,aAAa,EAAEe,iBAAiB,CAACf;AAAlD,KAAP;AACD,GAFD,MAEO;AACL,sBAAgCM,UAAU,CAAC5c,KAAD,CAA1C;AAAA;AAAA,QAAOsd,WAAP;AAAA,QAAoBT,QAApB;AAAA,QACEztP,KADF,GACUvmJ,MAAM,CAACy0Y,WAAD,EAAc,GAAd,CADhB;AAAA,iBAE0BjgY,KAAK,CAAC9gB,KAAD,EAAQ6yJ,KAAR,EAAeytP,QAAf,CAF/B;AAAA;AAAA,QAEGU,UAFH;AAAA,QAEelsV,OAFf;AAAA,iBAGmCA,OAAO,GACpC0rV,mBAAmB,CAAC1rV,OAAD,CADiB,GAEpC,CAAC,IAAD,EAAO,IAAP,EAAa3pC,SAAb,CALN;AAAA;AAAA,QAGGhgB,MAHH;AAAA,QAGW67K,IAHX;AAAA,QAGiBg6M,cAHjB;;AAMA,QAAIvpX,wDAAc,CAACq9C,OAAD,EAAU,GAAV,CAAd,IAAgCr9C,wDAAc,CAACq9C,OAAD,EAAU,GAAV,CAAlD,EAAkE;AAChE,YAAM,IAAIuqU,qEAAJ,CACJ,uDADI,CAAN;AAGD;;AACD,WAAO;AAAEr/X,MAAAA,KAAK,EAALA,KAAF;AAAS0nJ,MAAAA,MAAM,EAANA,MAAT;AAAiBmL,MAAAA,KAAK,EAALA,KAAjB;AAAwBmuP,MAAAA,UAAU,EAAVA,UAAxB;AAAoClsV,MAAAA,OAAO,EAAPA,OAApC;AAA6C3pD,MAAAA,MAAM,EAANA,MAA7C;AAAqD67K,MAAAA,IAAI,EAAJA,IAArD;AAA2Dg6M,MAAAA,cAAc,EAAdA;AAA3D,KAAP;AACD;AACF;AAEM,SAASzC,eAAT,CAAyB1tW,MAAzB,EAAiC7wB,KAAjC,EAAwC3D,MAAxC,EAAgD;AACrD,2BAAwDmiY,iBAAiB,CAAC3tW,MAAD,EAAS7wB,KAAT,EAAgB3D,MAAhB,CAAzE;AAAA,MAAQ8O,MAAR,sBAAQA,MAAR;AAAA,MAAgB67K,IAAhB,sBAAgBA,IAAhB;AAAA,MAAsBg6M,cAAtB,sBAAsBA,cAAtB;AAAA,MAAsC+e,aAAtC,sBAAsCA,aAAtC;;AACA,SAAO,CAAC50Y,MAAD,EAAS67K,IAAT,EAAeg6M,cAAf,EAA+B+e,aAA/B,CAAP;AACD;AAEM,SAASthB,kBAAT,CAA4BkH,UAA5B,EAAwC90W,MAAxC,EAAgD;AACrD,MAAI,CAAC80W,UAAL,EAAiB;AACf,WAAO,IAAP;AACD;;AAED,MAAMx9M,SAAS,GAAGo1M,4DAAA,CAAiB1sW,MAAjB,EAAyB80W,UAAzB,CAAlB;AACA,MAAMtlS,KAAK,GAAG8nF,SAAS,CAAC09M,mBAAV,CAA8B+a,gBAAgB,EAA9C,CAAd;AACA,SAAOvgT,KAAK,CAACrtG,GAAN,CAAU,UAAC8F,CAAD;AAAA,WAAOsnZ,YAAY,CAACtnZ,CAAD,EAAI+3B,MAAJ,EAAY80W,UAAZ,CAAnB;AAAA,GAAV,CAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtbD;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;;AAEO,SAASh/P,WAAT,CAAqBj8H,CAArB,EAAwB;AAC7B,SAAO,OAAOA,CAAP,KAAa,WAApB;AACD;AAEM,SAAS47H,QAAT,CAAkB57H,CAAlB,EAAqB;AAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;AACD;AAEM,SAASy7H,SAAT,CAAmBz7H,CAAnB,EAAsB;AAC3B,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,GAAG,CAAJ,KAAU,CAA1C;AACD;AAEM,SAAS83H,QAAT,CAAkB93H,CAAlB,EAAqB;AAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;AACD;AAEM,SAASovG,MAAT,CAAgBpvG,CAAhB,EAAmB;AACxB,SAAOyL,MAAM,CAACrjB,SAAP,CAAiBgkB,QAAjB,CAA0B5f,IAA1B,CAA+BwT,CAA/B,MAAsC,eAA7C;AACD,EAED;;AAEO,SAASuqY,WAAT,GAAuB;AAC5B,MAAI;AACF,WAAO,OAAOM,IAAP,KAAgB,WAAhB,IAA+B,CAAC,CAACA,IAAI,CAACW,kBAA7C;AACD,GAFD,CAEE,OAAO32Y,CAAP,EAAU;AACV,WAAO,KAAP;AACD;AACF,EAED;;AAEO,SAASk+X,UAAT,CAAoBwjB,KAApB,EAA2B;AAChC,SAAOpuZ,KAAK,CAAC0D,OAAN,CAAc0qZ,KAAd,IAAuBA,KAAvB,GAA+B,CAACA,KAAD,CAAtC;AACD;AAEM,SAASvjB,MAAT,CAAgBlpO,GAAhB,EAAqB31H,EAArB,EAAyBlrC,OAAzB,EAAkC;AACvC,MAAI6gK,GAAG,CAAC5gK,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAOu3B,SAAP;AACD;;AACD,SAAOqpI,GAAG,CAACjgK,MAAJ,CAAW,UAAC2sZ,IAAD,EAAO/xX,IAAP,EAAgB;AAChC,QAAM/6B,IAAI,GAAG,CAACyqC,EAAE,CAAC1P,IAAD,CAAH,EAAWA,IAAX,CAAb;;AACA,QAAI,CAAC+xX,IAAL,EAAW;AACT,aAAO9sZ,IAAP;AACD,KAFD,MAEO,IAAIT,OAAO,CAACutZ,IAAI,CAAC,CAAD,CAAL,EAAU9sZ,IAAI,CAAC,CAAD,CAAd,CAAP,KAA8B8sZ,IAAI,CAAC,CAAD,CAAtC,EAA2C;AAChD,aAAOA,IAAP;AACD,KAFM,MAEA;AACL,aAAO9sZ,IAAP;AACD;AACF,GATM,EASJ,IATI,EASE,CATF,CAAP;AAUD;AAEM,SAASkrH,IAAT,CAAcsmC,GAAd,EAAmBljJ,IAAnB,EAAyB;AAC9B,SAAOA,IAAI,CAACnO,MAAL,CAAY,UAACtB,CAAD,EAAIgJ,CAAJ,EAAU;AAC3BhJ,IAAAA,CAAC,CAACgJ,CAAD,CAAD,GAAO2pJ,GAAG,CAAC3pJ,CAAD,CAAV;AACA,WAAOhJ,CAAP;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;AAEM,SAASwkB,cAAT,CAAwBmuI,GAAxB,EAA6Bjd,IAA7B,EAAmC;AACxC,SAAOxyH,MAAM,CAACrjB,SAAP,CAAiB2kB,cAAjB,CAAgCvgB,IAAhC,CAAqC0uJ,GAArC,EAA0Cjd,IAA1C,CAAP;AACD,EAED;;AAEO,SAASqkQ,cAAT,CAAwBiU,KAAxB,EAA+BpmZ,MAA/B,EAAuCD,GAAvC,EAA4C;AACjD,SAAOurI,SAAS,CAAC86Q,KAAD,CAAT,IAAoBA,KAAK,IAAIpmZ,MAA7B,IAAuComZ,KAAK,IAAIrmZ,GAAvD;AACD,EAED;;AACO,SAASumZ,QAAT,CAAkBrtZ,CAAlB,EAAqBsB,CAArB,EAAwB;AAC7B,SAAOtB,CAAC,GAAGsB,CAAC,GAAGH,IAAI,CAACgE,KAAL,CAAWnF,CAAC,GAAGsB,CAAf,CAAf;AACD;AAEM,SAAS40I,QAAT,CAAkBhqI,KAAlB,EAAgC;AAAA,MAAP5K,CAAO,uEAAH,CAAG;AACrC,MAAMgsZ,KAAK,GAAGphZ,KAAK,GAAG,CAAtB;AACA,MAAIqhZ,MAAJ;;AACA,MAAID,KAAJ,EAAW;AACTC,IAAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAACrhZ,KAAP,EAAcgqI,QAAd,CAAuB50I,CAAvB,EAA0B,GAA1B,CAAf;AACD,GAFD,MAEO;AACLisZ,IAAAA,MAAM,GAAG,CAAC,KAAKrhZ,KAAN,EAAagqI,QAAb,CAAsB50I,CAAtB,EAAyB,GAAzB,CAAT;AACD;;AACD,SAAOisZ,MAAP;AACD;AAEM,SAAShI,YAAT,CAAsBp5V,MAAtB,EAA8B;AACnC,MAAI0mF,WAAW,CAAC1mF,MAAD,CAAX,IAAuBA,MAAM,KAAK,IAAlC,IAA0CA,MAAM,KAAK,EAAzD,EAA6D;AAC3D,WAAO90B,SAAP;AACD,GAFD,MAEO;AACL,WAAO/T,QAAQ,CAAC6oC,MAAD,EAAS,EAAT,CAAf;AACD;AACF;AAEM,SAASu5V,aAAT,CAAuBv5V,MAAvB,EAA+B;AACpC,MAAI0mF,WAAW,CAAC1mF,MAAD,CAAX,IAAuBA,MAAM,KAAK,IAAlC,IAA0CA,MAAM,KAAK,EAAzD,EAA6D;AAC3D,WAAO90B,SAAP;AACD,GAFD,MAEO;AACL,WAAOi/E,UAAU,CAACnqD,MAAD,CAAjB;AACD;AACF;AAEM,SAASq5V,WAAT,CAAqB9sN,QAArB,EAA+B;AACpC;AACA,MAAI7lD,WAAW,CAAC6lD,QAAD,CAAX,IAAyBA,QAAQ,KAAK,IAAtC,IAA8CA,QAAQ,KAAK,EAA/D,EAAmE;AACjE,WAAOrhK,SAAP;AACD,GAFD,MAEO;AACL,QAAMj3B,CAAC,GAAGk2G,UAAU,CAAC,OAAOoiF,QAAR,CAAV,GAA8B,IAAxC;AACA,WAAOv3L,IAAI,CAACgE,KAAL,CAAW/E,CAAX,CAAP;AACD;AACF;AAEM,SAAS8pY,OAAT,CAAiBzlY,MAAjB,EAAyByqL,MAAzB,EAAqD;AAAA,MAApBs+N,UAAoB,uEAAP,KAAO;AAC1D,MAAMC,MAAM,YAAG,EAAH,EAASv+N,MAAT,CAAZ;AAAA,MACEw+N,OAAO,GAAGF,UAAU,GAAGrsZ,IAAI,CAACyrY,KAAR,GAAgBzrY,IAAI,CAACqG,KAD3C;AAEA,SAAOkmZ,OAAO,CAACjpZ,MAAM,GAAGgpZ,MAAV,CAAP,GAA2BA,MAAlC;AACD,EAED;;AAEO,SAAS1jB,UAAT,CAAoBz6W,IAApB,EAA0B;AAC/B,SAAOA,IAAI,GAAG,CAAP,KAAa,CAAb,KAAmBA,IAAI,GAAG,GAAP,KAAe,CAAf,IAAoBA,IAAI,GAAG,GAAP,KAAe,CAAtD,CAAP;AACD;AAEM,SAASw6W,UAAT,CAAoBx6W,IAApB,EAA0B;AAC/B,SAAOy6W,UAAU,CAACz6W,IAAD,CAAV,GAAmB,GAAnB,GAAyB,GAAhC;AACD;AAEM,SAASu6W,WAAT,CAAqBv6W,IAArB,EAA2B4uC,KAA3B,EAAkC;AACvC,MAAMyvV,QAAQ,GAAGN,QAAQ,CAACnvV,KAAK,GAAG,CAAT,EAAY,EAAZ,CAAR,GAA0B,CAA3C;AAAA,MACE0vV,OAAO,GAAGt+X,IAAI,GAAG,CAAC4uC,KAAK,GAAGyvV,QAAT,IAAqB,EADxC;;AAGA,MAAIA,QAAQ,KAAK,CAAjB,EAAoB;AAClB,WAAO5jB,UAAU,CAAC6jB,OAAD,CAAV,GAAsB,EAAtB,GAA2B,EAAlC;AACD,GAFD,MAEO;AACL,WAAO,CAAC,EAAD,EAAK,IAAL,EAAW,EAAX,EAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,EAA+B,EAA/B,EAAmC,EAAnC,EAAuC,EAAvC,EAA2C,EAA3C,EAA+C,EAA/C,EAAmDD,QAAQ,GAAG,CAA9D,CAAP;AACD;AACF,EAED;;AACO,SAASxjB,YAAT,CAAsBr4O,GAAtB,EAA2B;AAChC,MAAIzxJ,CAAC,GAAG8sB,IAAI,CAACyyC,GAAL,CACNkyF,GAAG,CAACxiI,IADE,EAENwiI,GAAG,CAAC5zF,KAAJ,GAAY,CAFN,EAGN4zF,GAAG,CAAC1zF,GAHE,EAIN0zF,GAAG,CAACzzF,IAJE,EAKNyzF,GAAG,CAACxzF,MALE,EAMNwzF,GAAG,CAACvzF,MANE,EAONuzF,GAAG,CAACtzF,WAPE,CAAR,CADgC,CAWhC;;AACA,MAAIszF,GAAG,CAACxiI,IAAJ,GAAW,GAAX,IAAkBwiI,GAAG,CAACxiI,IAAJ,IAAY,CAAlC,EAAqC;AACnCjvB,IAAAA,CAAC,GAAG,IAAI8sB,IAAJ,CAAS9sB,CAAT,CAAJ;AACAA,IAAAA,CAAC,CAACu5E,cAAF,CAAiBv5E,CAAC,CAAC4vB,cAAF,KAAqB,IAAtC;AACD;;AACD,SAAO,CAAC5vB,CAAR;AACD;AAEM,SAAS2pY,eAAT,CAAyBqG,QAAzB,EAAmC;AACxC,MAAM9jW,EAAE,GACJ,CAAC8jW,QAAQ,GACPlvY,IAAI,CAACgE,KAAL,CAAWkrY,QAAQ,GAAG,CAAtB,CADD,GAEClvY,IAAI,CAACgE,KAAL,CAAWkrY,QAAQ,GAAG,GAAtB,CAFD,GAGClvY,IAAI,CAACgE,KAAL,CAAWkrY,QAAQ,GAAG,GAAtB,CAHF,IAIA,CALJ;AAAA,MAMEr3Q,IAAI,GAAGq3Q,QAAQ,GAAG,CANpB;AAAA,MAOE76T,EAAE,GAAG,CAACwjD,IAAI,GAAG73H,IAAI,CAACgE,KAAL,CAAW6zH,IAAI,GAAG,CAAlB,CAAP,GAA8B73H,IAAI,CAACgE,KAAL,CAAW6zH,IAAI,GAAG,GAAlB,CAA9B,GAAuD73H,IAAI,CAACgE,KAAL,CAAW6zH,IAAI,GAAG,GAAlB,CAAxD,IAAkF,CAPzF;AAQA,SAAOzsF,EAAE,KAAK,CAAP,IAAYipC,EAAE,KAAK,CAAnB,GAAuB,EAAvB,GAA4B,EAAnC;AACD;AAEM,SAAS6vU,cAAT,CAAwB/1X,IAAxB,EAA8B;AACnC,MAAIA,IAAI,GAAG,EAAX,EAAe;AACb,WAAOA,IAAP;AACD,GAFD,MAEO,OAAOA,IAAI,GAAG,EAAP,GAAY,OAAOA,IAAnB,GAA0B,OAAOA,IAAxC;AACR,EAED;;AAEO,SAASu+X,aAAT,CAAuBx2V,EAAvB,EAA2By2V,YAA3B,EAAyC/wX,MAAzC,EAAkE;AAAA,MAAjB8mX,QAAiB,uEAAN,IAAM;AACvE,MAAMr0X,IAAI,GAAG,IAAIrC,IAAJ,CAASkqC,EAAT,CAAb;AAAA,MACEksV,QAAQ,GAAG;AACT9E,IAAAA,SAAS,EAAE,KADF;AAETnvX,IAAAA,IAAI,EAAE,SAFG;AAGT4uC,IAAAA,KAAK,EAAE,SAHE;AAITE,IAAAA,GAAG,EAAE,SAJI;AAKTC,IAAAA,IAAI,EAAE,SALG;AAMTC,IAAAA,MAAM,EAAE;AANC,GADb;;AAUA,MAAIulV,QAAJ,EAAc;AACZN,IAAAA,QAAQ,CAACM,QAAT,GAAoBA,QAApB;AACD;;AAED,MAAMkK,QAAQ,GAAG;AAAEvP,IAAAA,YAAY,EAAEsP;AAAnB,KAAoCvK,QAApC,CAAd;;AAEA,MAAMzoS,MAAM,GAAG,IAAI2mS,IAAI,CAACx0N,cAAT,CAAwBlwJ,MAAxB,EAAgCgxX,QAAhC,EACZ5N,aADY,CACE3wX,IADF,EAEZ2K,IAFY,CAEP,UAACx3B,CAAD;AAAA,WAAOA,CAAC,CAACsJ,IAAF,CAAOmX,WAAP,OAAyB,cAAhC;AAAA,GAFO,CAAf;AAGA,SAAO03F,MAAM,GAAGA,MAAM,CAACv5G,KAAV,GAAkB,IAA/B;AACD,EAED;;AACO,SAAS+jZ,YAAT,CAAsBgE,UAAtB,EAAkCC,YAAlC,EAAgD;AACrD,MAAIyE,OAAO,GAAG1qY,QAAQ,CAACgmY,UAAD,EAAa,EAAb,CAAtB,CADqD,CAGrD;;AACA,MAAI7pX,MAAM,CAAC/6B,KAAP,CAAaspZ,OAAb,CAAJ,EAA2B;AACzBA,IAAAA,OAAO,GAAG,CAAV;AACD;;AAED,MAAMC,MAAM,GAAG3qY,QAAQ,CAACimY,YAAD,EAAe,EAAf,CAAR,IAA8B,CAA7C;AAAA,MACE2E,YAAY,GAAGF,OAAO,GAAG,CAAV,IAAe3rY,MAAM,CAAC05O,EAAP,CAAUiyJ,OAAV,EAAmB,CAAC,CAApB,CAAf,GAAwC,CAACC,MAAzC,GAAkDA,MADnE;AAEA,SAAOD,OAAO,GAAG,EAAV,GAAeE,YAAtB;AACD,EAED;;AAEO,SAAS3X,QAAT,CAAkBh1Y,KAAlB,EAAyB;AAC9B,MAAM4sZ,YAAY,GAAG1uX,MAAM,CAACl+B,KAAD,CAA3B;AACA,MAAI,OAAOA,KAAP,KAAiB,SAAjB,IAA8BA,KAAK,KAAK,EAAxC,IAA8Ck+B,MAAM,CAAC/6B,KAAP,CAAaypZ,YAAb,CAAlD,EACE,MAAM,IAAI7iB,4DAAJ,8BAA+C/pY,KAA/C,EAAN;AACF,SAAO4sZ,YAAP;AACD;AAEM,SAASlkB,eAAT,CAAyBn4O,GAAzB,EAA8BwI,UAA9B,EAA0C;AAC/C,MAAM2oF,UAAU,GAAG,EAAnB;;AACA,OAAK,IAAMvgN,CAAX,IAAgBovH,GAAhB,EAAqB;AACnB,QAAInuI,cAAc,CAACmuI,GAAD,EAAMpvH,CAAN,CAAlB,EAA4B;AAC1B,UAAMxhC,CAAC,GAAG4wJ,GAAG,CAACpvH,CAAD,CAAb;AACA,UAAIxhC,CAAC,KAAKm2B,SAAN,IAAmBn2B,CAAC,KAAK,IAA7B,EAAmC;AACnC+hP,MAAAA,UAAU,CAAC3oF,UAAU,CAAC53H,CAAD,CAAX,CAAV,GAA4B6zW,QAAQ,CAACr1Y,CAAD,CAApC;AACD;AACF;;AACD,SAAO+hP,UAAP;AACD;AAEM,SAASu9J,YAAT,CAAsBl5Y,MAAtB,EAA8BiB,MAA9B,EAAsC;AAC3C,MAAMknB,KAAK,GAAGtuB,IAAI,CAACyrY,KAAL,CAAWzrY,IAAI,CAACsF,GAAL,CAASa,MAAM,GAAG,EAAlB,CAAX,CAAd;AAAA,MACEqoB,OAAO,GAAGxuB,IAAI,CAACyrY,KAAL,CAAWzrY,IAAI,CAACsF,GAAL,CAASa,MAAM,GAAG,EAAlB,CAAX,CADZ;AAAA,MAEE82B,IAAI,GAAG92B,MAAM,IAAI,CAAV,GAAc,GAAd,GAAoB,GAF7B;;AAIA,UAAQiB,MAAR;AACE,SAAK,OAAL;AACE,uBAAU61B,IAAV,SAAiB83G,QAAQ,CAACzmH,KAAD,EAAQ,CAAR,CAAzB,cAAuCymH,QAAQ,CAACvmH,OAAD,EAAU,CAAV,CAA/C;;AACF,SAAK,QAAL;AACE,uBAAUyO,IAAV,SAAiB3O,KAAjB,SAAyBE,OAAO,GAAG,CAAV,cAAkBA,OAAlB,IAA8B,EAAvD;;AACF,SAAK,QAAL;AACE,uBAAUyO,IAAV,SAAiB83G,QAAQ,CAACzmH,KAAD,EAAQ,CAAR,CAAzB,SAAsCymH,QAAQ,CAACvmH,OAAD,EAAU,CAAV,CAA9C;;AACF;AACE,YAAM,IAAIy+X,UAAJ,wBAA+B7lZ,MAA/B,0CAAN;AARJ;AAUD;AAEM,SAAS4wY,UAAT,CAAoBrnP,GAApB,EAAyB;AAC9B,SAAOtmC,IAAI,CAACsmC,GAAD,EAAM,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,EAA6B,aAA7B,CAAN,CAAX;AACD;AAEM,IAAM2zP,SAAS,GACpB,8EADK;;;;;;;;;;;;;;;;;;;;;AC/QP;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEO,SAASrb,aAAT,CAAuBl+X,KAAvB,EAA8BijY,WAA9B,EAA2C;AAChD,MAAI7nY,MAAJ;;AACA,MAAIurI,qDAAW,CAAC3mI,KAAD,CAAX,IAAsBA,KAAK,KAAK,IAApC,EAA0C;AACxC,WAAOijY,WAAP;AACD,GAFD,MAEO,IAAIjjY,KAAK,YAAYimR,gDAArB,EAA2B;AAChC,WAAOjmR,KAAP;AACD,GAFM,MAEA,IAAIwiI,kDAAQ,CAACxiI,KAAD,CAAZ,EAAqB;AAC1B,QAAMqiZ,OAAO,GAAGriZ,KAAK,CAACkX,WAAN,EAAhB;AACA,QAAImrY,OAAO,KAAK,SAAhB,EAA2B,OAAOpf,WAAP,CAA3B,KACK,IAAIof,OAAO,KAAK,OAAZ,IAAuBA,OAAO,KAAK,QAAvC,EAAiD,OAAOD,qEAAP,CAAjD,KACA,IAAIC,OAAO,KAAK,KAAZ,IAAqBA,OAAO,KAAK,KAArC,EAA4C,OAAO7kB,6EAAP,CAA5C,KACA,OAAOA,gFAAA,CAA+B6kB,OAA/B,KAA2CnN,iEAAA,CAAgBl1Y,KAAhB,CAAlD;AACN,GANM,MAMA,IAAIsmI,kDAAQ,CAACtmI,KAAD,CAAZ,EAAqB;AAC1B,WAAOw9X,0EAAA,CAAyBx9X,KAAzB,CAAP;AACD,GAFM,MAEA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC5E,MAAnC,IAA6C,OAAO4E,KAAK,CAAC5E,MAAb,KAAwB,QAAzE,EAAmF;AACxF;AACA;AACA,WAAO4E,KAAP;AACD,GAJM,MAIA;AACL,WAAO,IAAImiZ,6DAAJ,CAAgBniZ,KAAhB,CAAP;AACD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;ACjCD;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;IACqBs9X;;;;;;;;AACnB;AACF;AACA;AACA;AACA;AACE,sBAA2C;AAAA,UAA7Bt2M,IAA6B,uEAAtBq2M,gEAAsB;AACzC,UAAM3xX,KAAK,GAAGq0X,wDAAA,GAAekB,OAAf,CAAuBj6M,IAAvB,EAA6B98K,GAA7B,CAAiC;AAAE8nD,QAAAA,KAAK,EAAE;AAAT,OAAjC,CAAd;AAEA,aAAO,CAACg1H,IAAI,CAACs9M,WAAN,IAAqB54X,KAAK,CAACtQ,MAAN,KAAiBsQ,KAAK,CAACxB,GAAN,CAAU;AAAE8nD,QAAAA,KAAK,EAAE;AAAT,OAAV,EAAwB52D,MAArE;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,yBAAuB4rL,IAAvB,EAA6B;AAC3B,aAAOkuN,sEAAA,CAAqBluN,IAArB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAqBhnL,KAArB,EAA4B;AAC1B,aAAOk+X,gEAAa,CAACl+X,KAAD,EAAQq9X,gEAAR,CAApB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAGE;AAAA,UAFAzpY,MAEA,uEAFS,MAET;;AAAA,qFADuF,EACvF;AAAA,6BADEi9B,MACF;AAAA,UADEA,MACF,4BADW,IACX;AAAA,sCADiBozW,eACjB;AAAA,UADiBA,eACjB,qCADmC,IACnC;AAAA,6BADyCG,MACzC;AAAA,UADyCA,MACzC,4BADkD,IAClD;AAAA,qCADwDF,cACxD;AAAA,UADwDA,cACxD,oCADyE,SACzE;;AACA,aAAO,CAACE,MAAM,IAAIrgC,8DAAA,CAAclzU,MAAd,EAAsBozW,eAAtB,EAAuCC,cAAvC,CAAX,EAAmE/3T,MAAnE,CAA0Ev4E,MAA1E,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAGE;AAAA,UAFAA,MAEA,uEAFS,MAET;;AAAA,sFADuF,EACvF;AAAA,+BADEi9B,MACF;AAAA,UADEA,MACF,6BADW,IACX;AAAA,wCADiBozW,eACjB;AAAA,UADiBA,eACjB,sCADmC,IACnC;AAAA,+BADyCG,MACzC;AAAA,UADyCA,MACzC,6BADkD,IAClD;AAAA,uCADwDF,cACxD;AAAA,UADwDA,cACxD,qCADyE,SACzE;;AACA,aAAO,CAACE,MAAM,IAAIrgC,8DAAA,CAAclzU,MAAd,EAAsBozW,eAAtB,EAAuCC,cAAvC,CAAX,EAAmE/3T,MAAnE,CAA0Ev4E,MAA1E,EAAkF,IAAlF,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAgG;AAAA,UAAhFA,MAAgF,uEAAvE,MAAuE;;AAAA,sFAAJ,EAAI;AAAA,+BAA7Di9B,MAA6D;AAAA,UAA7DA,MAA6D,6BAApD,IAAoD;AAAA,wCAA9CozW,eAA8C;AAAA,UAA9CA,eAA8C,sCAA5B,IAA4B;AAAA,+BAAtBG,MAAsB;AAAA,UAAtBA,MAAsB,6BAAb,IAAa;;AAC9F,aAAO,CAACA,MAAM,IAAIrgC,8DAAA,CAAclzU,MAAd,EAAsBozW,eAAtB,EAAuC,IAAvC,CAAX,EAAyDvB,QAAzD,CAAkE9uY,MAAlE,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,0BAGE;AAAA,UAFAA,MAEA,uEAFS,MAET;;AAAA,sFAD2D,EAC3D;AAAA,+BADEi9B,MACF;AAAA,UADEA,MACF,6BADW,IACX;AAAA,wCADiBozW,eACjB;AAAA,UADiBA,eACjB,sCADmC,IACnC;AAAA,+BADyCG,MACzC;AAAA,UADyCA,MACzC,6BADkD,IAClD;;AACA,aAAO,CAACA,MAAM,IAAIrgC,8DAAA,CAAclzU,MAAd,EAAsBozW,eAAtB,EAAuC,IAAvC,CAAX,EAAyDvB,QAAzD,CAAkE9uY,MAAlE,EAA0E,IAA1E,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAyC;AAAA,sFAAJ,EAAI;AAAA,+BAAtBi9B,MAAsB;AAAA,UAAtBA,MAAsB,6BAAb,IAAa;;AACvC,aAAOkzU,8DAAA,CAAclzU,MAAd,EAAsBogX,SAAtB,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,gBAAsD;AAAA,UAA1Cr9Y,MAA0C,uEAAjC,OAAiC;;AAAA,sFAAJ,EAAI;AAAA,+BAAtBi9B,MAAsB;AAAA,UAAtBA,MAAsB,6BAAb,IAAa;;AACpD,aAAOkzU,8DAAA,CAAclzU,MAAd,EAAsB,IAAtB,EAA4B,SAA5B,EAAuCwgX,IAAvC,CAA4Cz9Y,MAA5C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAkB;AAChB,aAAO;AAAE2uZ,QAAAA,QAAQ,EAAEtN,0DAAW;AAAvB,OAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvKH;AACA;AACA;AACA;AACA;AAEA,IAAM1tG,OAAO,GAAG,kBAAhB,EAEA;;AACA,SAASi7G,gBAAT,CAA0BrpZ,KAA1B,EAAiCwK,GAAjC,EAAsC;AACpC,MAAI,CAACxK,KAAD,IAAU,CAACA,KAAK,CAACkoY,OAArB,EAA8B;AAC5B,WAAOjE,QAAQ,CAACr4F,OAAT,CAAiB,0BAAjB,CAAP;AACD,GAFD,MAEO,IAAI,CAACphS,GAAD,IAAQ,CAACA,GAAG,CAAC09X,OAAjB,EAA0B;AAC/B,WAAOjE,QAAQ,CAACr4F,OAAT,CAAiB,wBAAjB,CAAP;AACD,GAFM,MAEA,IAAIphS,GAAG,GAAGxK,KAAV,EAAiB;AACtB,WAAOikY,QAAQ,CAACr4F,OAAT,CACL,kBADK,8EAEgE5rS,KAAK,CAACktY,KAAN,EAFhE,sBAEyF1iY,GAAG,CAAC0iY,KAAJ,EAFzF,EAAP;AAID,GALM,MAKA;AACL,WAAO,IAAP;AACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACqBjJ;AACnB;AACF;AACA;AACE,oBAAY7oP,MAAZ,EAAoB;AAAA;;AAClB;AACJ;AACA;AACI,SAAKh0I,CAAL,GAASg0I,MAAM,CAACp7I,KAAhB;AACA;AACJ;AACA;;AACI,SAAKoG,CAAL,GAASg1I,MAAM,CAAC5wI,GAAhB;AACA;AACJ;AACA;;AACI,SAAKohS,OAAL,GAAexwJ,MAAM,CAACwwJ,OAAP,IAAkB,IAAjC;AACA;AACJ;AACA;;AACI,SAAK09G,eAAL,GAAuB,IAAvB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;;;AAoHE;AACF;AACA;AACA;AACE,mBAAY;AACV,aAAO,KAAKphB,OAAL,GAAe,KAAK9gY,CAApB,GAAwB,IAA/B;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAU;AACR,aAAO,KAAK8gY,OAAL,GAAe,KAAK9hY,CAApB,GAAwB,IAA/B;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAc;AACZ,aAAO,KAAKwgZ,aAAL,KAAuB,IAA9B;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKh7G,OAAL,GAAe,KAAKA,OAAL,CAAa2vB,MAA5B,GAAqC,IAA5C;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAyB;AACvB,aAAO,KAAK3vB,OAAL,GAAe,KAAKA,OAAL,CAAai/F,WAA5B,GAA0C,IAAjD;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAA8B;AAAA,UAAvBh4U,IAAuB,uEAAhB,cAAgB;AAC5B,aAAO,KAAKq1U,OAAL,GAAe,KAAKqhB,UAAL,aAAmB,CAAC12V,IAAD,CAAnB,EAA2BzhD,GAA3B,CAA+ByhD,IAA/B,CAAf,GAAsD74D,GAA7D;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,iBAA6B;AAAA,UAAvB64D,IAAuB,uEAAhB,cAAgB;AAC3B,UAAI,CAAC,KAAKq1U,OAAV,EAAmB,OAAOluY,GAAP;AACnB,UAAMgG,KAAK,GAAG,KAAKA,KAAL,CAAWqqY,OAAX,CAAmBx3U,IAAnB,CAAd;AAAA,UACEroD,GAAG,GAAG,KAAKA,GAAL,CAAS6/X,OAAT,CAAiBx3U,IAAjB,CADR;AAEA,aAAO/2D,IAAI,CAACgE,KAAL,CAAW0K,GAAG,CAACokL,IAAJ,CAAS5uL,KAAT,EAAgB6yD,IAAhB,EAAsBzhD,GAAtB,CAA0ByhD,IAA1B,CAAX,IAA8C,CAArD;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,iBAAQA,IAAR,EAAc;AACZ,aAAO,KAAKq1U,OAAL,GAAe,KAAKt7P,OAAL,MAAkB,KAAKxmI,CAAL,CAAO6xB,KAAP,CAAa,CAAb,EAAgBmyW,OAAhB,CAAwB,KAAKhjY,CAA7B,EAAgCyrD,IAAhC,CAAjC,GAAyE,KAAhF;AACD;AAED;AACF;AACA;AACA;;;;WACE,mBAAU;AACR,aAAO,KAAKzrD,CAAL,CAAOi0B,OAAP,OAAqB,KAAKj1B,CAAL,CAAOi1B,OAAP,EAA5B;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,iBAAQs3C,QAAR,EAAkB;AAChB,UAAI,CAAC,KAAKu1T,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,KAAK9gY,CAAL,GAASurE,QAAhB;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAASA,QAAT,EAAmB;AACjB,UAAI,CAAC,KAAKu1T,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,KAAK9hY,CAAL,IAAUusE,QAAjB;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAASA,QAAT,EAAmB;AACjB,UAAI,CAAC,KAAKu1T,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,KAAK9gY,CAAL,IAAUurE,QAAV,IAAsB,KAAKvsE,CAAL,GAASusE,QAAtC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,eAAyB;AAAA,qFAAJ,EAAI;AAAA,UAAnB3yE,KAAmB,QAAnBA,KAAmB;AAAA,UAAZwK,GAAY,QAAZA,GAAY;;AACvB,UAAI,CAAC,KAAK09X,OAAV,EAAmB,OAAO,IAAP;AACnB,aAAOjE,QAAQ,CAAC2J,aAAT,CAAuB5tY,KAAK,IAAI,KAAKoH,CAArC,EAAwCoD,GAAG,IAAI,KAAKpE,CAApD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,mBAAsB;AAAA;;AACpB,UAAI,CAAC,KAAK8hY,OAAV,EAAmB,OAAO,EAAP;;AADC,wCAAXkH,SAAW;AAAXA,QAAAA,SAAW;AAAA;;AAEpB,UAAM1zC,MAAM,GAAG0zC,SAAS,CACnBv1Y,GADU,CACN+2Y,0DADM,EAEVjsY,MAFU,CAEH,UAAC3J,CAAD;AAAA,eAAO,KAAI,CAACmnB,QAAL,CAAcnnB,CAAd,CAAP;AAAA,OAFG,EAGVuE,IAHU,EAAf;AAAA,UAIEmoK,OAAO,GAAG,EAJZ;AAKI,UAAEtgK,CAAF,GAAQ,IAAR,CAAEA,CAAF;AAAA,UACF1L,CADE,GACE,CADF;;AAGJ,aAAO0L,CAAC,GAAG,KAAKhB,CAAhB,EAAmB;AACjB,YAAM8rY,KAAK,GAAGx2C,MAAM,CAAChgW,CAAD,CAAN,IAAa,KAAK0K,CAAhC;AAAA,YACE4vB,IAAI,GAAG,CAACk8W,KAAD,GAAS,CAAC,KAAK9rY,CAAf,GAAmB,KAAKA,CAAxB,GAA4B8rY,KADrC;AAEAxqO,QAAAA,OAAO,CAAC/pK,IAAR,CAAasmY,QAAQ,CAAC2J,aAAT,CAAuBxmY,CAAvB,EAA0B4uB,IAA1B,CAAb;AACA5uB,QAAAA,CAAC,GAAG4uB,IAAJ;AACAt6B,QAAAA,CAAC,IAAI,CAAL;AACD;;AAED,aAAOgsK,OAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iBAAQjgH,QAAR,EAAkB;AAChB,UAAM4/U,GAAG,GAAGrD,qEAAA,CAA0Bv8U,QAA1B,CAAZ;;AAEA,UAAI,CAAC,KAAKygV,OAAN,IAAiB,CAACb,GAAG,CAACa,OAAtB,IAAiCb,GAAG,CAACrzE,EAAJ,CAAO,cAAP,MAA2B,CAAhE,EAAmE;AACjE,eAAO,EAAP;AACD;;AAEG,UAAE5sT,CAAF,GAAQ,IAAR,CAAEA,CAAF;AAAA,UACF0hJ,GADE,GACI,CADJ;AAAA,UAEF9yH,IAFE;AAIJ,UAAM0xI,OAAO,GAAG,EAAhB;;AACA,aAAOtgK,CAAC,GAAG,KAAKhB,CAAhB,EAAmB;AACjB,YAAM8rY,KAAK,GAAG,KAAKlyY,KAAL,CAAWqsY,IAAX,CAAgBhF,GAAG,CAACmiB,QAAJ,CAAa,UAAC7uZ,CAAD;AAAA,iBAAOA,CAAC,GAAGmuJ,GAAX;AAAA,SAAb,CAAhB,CAAd;AACA9yH,QAAAA,IAAI,GAAG,CAACk8W,KAAD,GAAS,CAAC,KAAK9rY,CAAf,GAAmB,KAAKA,CAAxB,GAA4B8rY,KAAnC;AACAxqO,QAAAA,OAAO,CAAC/pK,IAAR,CAAasmY,QAAQ,CAAC2J,aAAT,CAAuBxmY,CAAvB,EAA0B4uB,IAA1B,CAAb;AACA5uB,QAAAA,CAAC,GAAG4uB,IAAJ;AACA8yH,QAAAA,GAAG,IAAI,CAAP;AACD;;AAED,aAAO4e,OAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAAc+hP,aAAd,EAA6B;AAC3B,UAAI,CAAC,KAAKvhB,OAAV,EAAmB,OAAO,EAAP;AACnB,aAAO,KAAKwhB,OAAL,CAAa,KAAKjvZ,MAAL,KAAgBgvZ,aAA7B,EAA4C7vZ,KAA5C,CAAkD,CAAlD,EAAqD6vZ,aAArD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAASziX,KAAT,EAAgB;AACd,aAAO,KAAK5gC,CAAL,GAAS4gC,KAAK,CAAC5/B,CAAf,IAAoB,KAAKA,CAAL,GAAS4/B,KAAK,CAAC5gC,CAA1C;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,oBAAW4gC,KAAX,EAAkB;AAChB,UAAI,CAAC,KAAKkhW,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,CAAC,KAAK9hY,CAAN,KAAY,CAAC4gC,KAAK,CAAC5/B,CAA1B;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAAS4/B,KAAT,EAAgB;AACd,UAAI,CAAC,KAAKkhW,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,CAAClhW,KAAK,CAAC5gC,CAAP,KAAa,CAAC,KAAKgB,CAA1B;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,iBAAQ4/B,KAAR,EAAe;AACb,UAAI,CAAC,KAAKkhW,OAAV,EAAmB,OAAO,KAAP;AACnB,aAAO,KAAK9gY,CAAL,IAAU4/B,KAAK,CAAC5/B,CAAhB,IAAqB,KAAKhB,CAAL,IAAU4gC,KAAK,CAAC5gC,CAA5C;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,gBAAO4gC,KAAP,EAAc;AACZ,UAAI,CAAC,KAAKkhW,OAAN,IAAiB,CAAClhW,KAAK,CAACkhW,OAA5B,EAAqC;AACnC,eAAO,KAAP;AACD;;AAED,aAAO,KAAK9gY,CAAL,CAAOsjY,MAAP,CAAc1jW,KAAK,CAAC5/B,CAApB,KAA0B,KAAKhB,CAAL,CAAOskY,MAAP,CAAc1jW,KAAK,CAAC5gC,CAApB,CAAjC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAa4gC,KAAb,EAAoB;AAClB,UAAI,CAAC,KAAKkhW,OAAV,EAAmB,OAAO,IAAP;AACnB,UAAM9gY,CAAC,GAAG,KAAKA,CAAL,GAAS4/B,KAAK,CAAC5/B,CAAf,GAAmB,KAAKA,CAAxB,GAA4B4/B,KAAK,CAAC5/B,CAA5C;AAAA,UACEhB,CAAC,GAAG,KAAKA,CAAL,GAAS4gC,KAAK,CAAC5gC,CAAf,GAAmB,KAAKA,CAAxB,GAA4B4gC,KAAK,CAAC5gC,CADxC;;AAGA,UAAIgB,CAAC,IAAIhB,CAAT,EAAY;AACV,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAO69X,QAAQ,CAAC2J,aAAT,CAAuBxmY,CAAvB,EAA0BhB,CAA1B,CAAP;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAM4gC,KAAN,EAAa;AACX,UAAI,CAAC,KAAKkhW,OAAV,EAAmB,OAAO,IAAP;AACnB,UAAM9gY,CAAC,GAAG,KAAKA,CAAL,GAAS4/B,KAAK,CAAC5/B,CAAf,GAAmB,KAAKA,CAAxB,GAA4B4/B,KAAK,CAAC5/B,CAA5C;AAAA,UACEhB,CAAC,GAAG,KAAKA,CAAL,GAAS4gC,KAAK,CAAC5gC,CAAf,GAAmB,KAAKA,CAAxB,GAA4B4gC,KAAK,CAAC5gC,CADxC;AAEA,aAAO69X,QAAQ,CAAC2J,aAAT,CAAuBxmY,CAAvB,EAA0BhB,CAA1B,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;;AAuDE;AACF;AACA;AACA;AACA;AACE,0BAAyB;AAAA;;AAAA,yCAAXujZ,SAAW;AAAXA,QAAAA,SAAW;AAAA;;AACvB,aAAO1lB,QAAQ,CAACt8P,GAAT,CAAa,CAAC,IAAD,EAAO/jH,MAAP,CAAc+lY,SAAd,CAAb,EACJ9vZ,GADI,CACA,UAAC6B,CAAD;AAAA,eAAO,MAAI,CAAC40C,YAAL,CAAkB50C,CAAlB,CAAP;AAAA,OADA,EAEJiJ,MAFI,CAEG,UAACjJ,CAAD;AAAA,eAAOA,CAAC,IAAI,CAACA,CAAC,CAACkxI,OAAF,EAAb;AAAA,OAFH,CAAP;AAGD;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACT,UAAI,CAAC,KAAKs7P,OAAV,EAAmB,OAAO95F,OAAP;AACnB,wBAAW,KAAKhnS,CAAL,CAAO8lY,KAAP,EAAX,qBAA+B,KAAK9mY,CAAL,CAAO8mY,KAAP,EAA/B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAM36L,IAAN,EAAY;AACV,UAAI,CAAC,KAAK21L,OAAV,EAAmB,OAAO95F,OAAP;AACnB,uBAAU,KAAKhnS,CAAL,CAAO8lY,KAAP,CAAa36L,IAAb,CAAV,cAAgC,KAAKnsM,CAAL,CAAO8mY,KAAP,CAAa36L,IAAb,CAAhC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,qBAAY;AACV,UAAI,CAAC,KAAK21L,OAAV,EAAmB,OAAO95F,OAAP;AACnB,uBAAU,KAAKhnS,CAAL,CAAOihY,SAAP,EAAV,cAAgC,KAAKjiY,CAAL,CAAOiiY,SAAP,EAAhC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,mBAAU91L,IAAV,EAAgB;AACd,UAAI,CAAC,KAAK21L,OAAV,EAAmB,OAAO95F,OAAP;AACnB,uBAAU,KAAKhnS,CAAL,CAAOmhY,SAAP,CAAiBh2L,IAAjB,CAAV,cAAoC,KAAKnsM,CAAL,CAAOmiY,SAAP,CAAiBh2L,IAAjB,CAApC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS03J,UAAT,EAAiD;AAAA,sFAAJ,EAAI;AAAA,kCAA1BpkO,SAA0B;AAAA,UAA1BA,SAA0B,gCAAd,KAAc;;AAC/C,UAAI,CAAC,KAAKqiQ,OAAV,EAAmB,OAAO95F,OAAP;AACnB,uBAAU,KAAKhnS,CAAL,CAAO0rY,QAAP,CAAgB7oC,UAAhB,CAAV,SAAwCpkO,SAAxC,SAAoD,KAAKz/H,CAAL,CAAO0sY,QAAP,CAAgB7oC,UAAhB,CAApD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAWp3S,IAAX,EAAiB0/I,IAAjB,EAAuB;AACrB,UAAI,CAAC,KAAK21L,OAAV,EAAmB;AACjB,eAAOlE,4DAAA,CAAiB,KAAK4iB,aAAtB,CAAP;AACD;;AACD,aAAO,KAAKxgZ,CAAL,CAAOwoL,IAAP,CAAY,KAAKxnL,CAAjB,EAAoByrD,IAApB,EAA0B0/I,IAA1B,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAaq3M,KAAb,EAAoB;AAClB,aAAO3lB,QAAQ,CAAC2J,aAAT,CAAuBgc,KAAK,CAAC,KAAKxiZ,CAAN,CAA5B,EAAsCwiZ,KAAK,CAAC,KAAKxjZ,CAAN,CAA3C,CAAP;AACD;;;WA5hBD,iBAAem1T,MAAf,EAA2C;AAAA,UAApBsvE,WAAoB,uEAAN,IAAM;;AACzC,UAAI,CAACtvE,MAAL,EAAa;AACX,cAAM,IAAI0qE,4DAAJ,CAAyB,kDAAzB,CAAN;AACD;;AAED,UAAMr6F,OAAO,GAAG2vB,MAAM,YAAY8qE,wDAAlB,GAA4B9qE,MAA5B,GAAqC,IAAI8qE,wDAAJ,CAAY9qE,MAAZ,EAAoBsvE,WAApB,CAArD;;AAEA,UAAI3G,mEAAJ,EAA6B;AAC3B,cAAM,IAAIyP,4DAAJ,CAAyB/nG,OAAzB,CAAN;AACD,OAFD,MAEO;AACL,eAAO,IAAIq4F,QAAJ,CAAa;AAAEr4F,UAAAA,OAAO,EAAPA;AAAF,SAAb,CAAP;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,uBAAqB5rS,KAArB,EAA4BwK,GAA5B,EAAiC;AAC/B,UAAMq/Y,UAAU,GAAGjZ,8DAAgB,CAAC5wY,KAAD,CAAnC;AAAA,UACE8pZ,QAAQ,GAAGlZ,8DAAgB,CAACpmY,GAAD,CAD7B;AAGA,UAAMu/Y,aAAa,GAAGV,gBAAgB,CAACQ,UAAD,EAAaC,QAAb,CAAtC;;AAEA,UAAIC,aAAa,IAAI,IAArB,EAA2B;AACzB,eAAO,IAAI9lB,QAAJ,CAAa;AAClBjkY,UAAAA,KAAK,EAAE6pZ,UADW;AAElBr/Y,UAAAA,GAAG,EAAEs/Y;AAFa,SAAb,CAAP;AAID,OALD,MAKO;AACL,eAAOC,aAAP;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAa/pZ,KAAb,EAAoBynD,QAApB,EAA8B;AAC5B,UAAM4/U,GAAG,GAAGrD,qEAAA,CAA0Bv8U,QAA1B,CAAZ;AAAA,UACEg/U,EAAE,GAAGmK,8DAAgB,CAAC5wY,KAAD,CADvB;AAEA,aAAOikY,QAAQ,CAAC2J,aAAT,CAAuBnH,EAAvB,EAA2BA,EAAE,CAAC4F,IAAH,CAAQhF,GAAR,CAA3B,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gBAAc78X,GAAd,EAAmBi9C,QAAnB,EAA6B;AAC3B,UAAM4/U,GAAG,GAAGrD,qEAAA,CAA0Bv8U,QAA1B,CAAZ;AAAA,UACEg/U,EAAE,GAAGmK,8DAAgB,CAACpmY,GAAD,CADvB;AAEA,aAAOy5X,QAAQ,CAAC2J,aAAT,CAAuBnH,EAAE,CAACxuW,KAAH,CAASovW,GAAT,CAAvB,EAAsCZ,EAAtC,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,iBAAepiY,IAAf,EAAqBkuM,IAArB,EAA2B;AACzB,mBAAe,CAACluM,IAAI,IAAI,EAAT,EAAamhB,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,CAAf;AAAA;AAAA,UAAOpe,CAAP;AAAA,UAAUhB,CAAV;;AACA,UAAIgB,CAAC,IAAIhB,CAAT,EAAY;AACV,YAAIpG,KAAJ,EAAWgqZ,YAAX;;AACA,YAAI;AACFhqZ,UAAAA,KAAK,GAAG4mY,4DAAA,CAAiBx/X,CAAjB,EAAoBmrM,IAApB,CAAR;AACAy3M,UAAAA,YAAY,GAAGhqZ,KAAK,CAACkoY,OAArB;AACD,SAHD,CAGE,OAAO9hY,CAAP,EAAU;AACV4jZ,UAAAA,YAAY,GAAG,KAAf;AACD;;AAED,YAAIx/Y,GAAJ,EAAS0/Y,UAAT;;AACA,YAAI;AACF1/Y,UAAAA,GAAG,GAAGo8X,4DAAA,CAAiBxgY,CAAjB,EAAoBmsM,IAApB,CAAN;AACA23M,UAAAA,UAAU,GAAG1/Y,GAAG,CAAC09X,OAAjB;AACD,SAHD,CAGE,OAAO9hY,CAAP,EAAU;AACV8jZ,UAAAA,UAAU,GAAG,KAAb;AACD;;AAED,YAAIF,YAAY,IAAIE,UAApB,EAAgC;AAC9B,iBAAOjmB,QAAQ,CAAC2J,aAAT,CAAuB5tY,KAAvB,EAA8BwK,GAA9B,CAAP;AACD;;AAED,YAAIw/Y,YAAJ,EAAkB;AAChB,cAAM3iB,GAAG,GAAGrD,4DAAA,CAAiB59X,CAAjB,EAAoBmsM,IAApB,CAAZ;;AACA,cAAI80L,GAAG,CAACa,OAAR,EAAiB;AACf,mBAAOjE,QAAQ,CAACr3S,KAAT,CAAe5sF,KAAf,EAAsBqnY,GAAtB,CAAP;AACD;AACF,SALD,MAKO,IAAI6iB,UAAJ,EAAgB;AACrB,cAAM7iB,IAAG,GAAGrD,4DAAA,CAAiB58X,CAAjB,EAAoBmrM,IAApB,CAAZ;;AACA,cAAI80L,IAAG,CAACa,OAAR,EAAiB;AACf,mBAAOjE,QAAQ,CAACphU,MAAT,CAAgBr4D,GAAhB,EAAqB68X,IAArB,CAAP;AACD;AACF;AACF;;AACD,aAAOpD,QAAQ,CAACr4F,OAAT,CAAiB,YAAjB,wBAA6CvnS,IAA7C,oCAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,oBAAkBkN,CAAlB,EAAqB;AACnB,aAAQA,CAAC,IAAIA,CAAC,CAAC+3Y,eAAR,IAA4B,KAAnC;AACD;;;WAuRD,eAAaK,SAAb,EAAwB;AACtB,kCAAuBA,SAAS,CAC7BpqZ,IADoB,CACf,UAACzF,CAAD,EAAIC,CAAJ;AAAA,eAAUD,CAAC,CAACsN,CAAF,GAAMrN,CAAC,CAACqN,CAAlB;AAAA,OADe,EAEpBhM,MAFoB,CAGnB,iBAAmBs4G,IAAnB,EAA4B;AAAA;AAAA,YAA1By2S,KAA0B;AAAA,YAAnBhjX,OAAmB;;AAC1B,YAAI,CAACA,OAAL,EAAc;AACZ,iBAAO,CAACgjX,KAAD,EAAQz2S,IAAR,CAAP;AACD,SAFD,MAEO,IAAIvsE,OAAO,CAACijX,QAAR,CAAiB12S,IAAjB,KAA0BvsE,OAAO,CAACkjX,UAAR,CAAmB32S,IAAnB,CAA9B,EAAwD;AAC7D,iBAAO,CAACy2S,KAAD,EAAQhjX,OAAO,CAAC+/F,KAAR,CAAcxzB,IAAd,CAAR,CAAP;AACD,SAFM,MAEA;AACL,iBAAO,CAACy2S,KAAK,CAACvmY,MAAN,CAAa,CAACujB,OAAD,CAAb,CAAD,EAA0BusE,IAA1B,CAAP;AACD;AACF,OAXkB,EAYnB,CAAC,EAAD,EAAK,IAAL,CAZmB,CAAvB;AAAA;AAAA,UAAOugE,KAAP;AAAA,UAAcq2O,KAAd;;AAcA,UAAIA,KAAJ,EAAW;AACTr2O,QAAAA,KAAK,CAACt2K,IAAN,CAAW2sZ,KAAX;AACD;;AACD,aAAOr2O,KAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,aAAW01O,SAAX,EAAsB;AAAA;;AACpB,UAAI3pZ,KAAK,GAAG,IAAZ;AAAA,UACEuqZ,YAAY,GAAG,CADjB;;AAEA,UAAM7iP,OAAO,GAAG,EAAhB;AAAA,UACE8iP,IAAI,GAAGb,SAAS,CAAC9vZ,GAAV,CAAc,UAAC6B,CAAD;AAAA,eAAO,CAC1B;AAAEk3E,UAAAA,IAAI,EAAEl3E,CAAC,CAAC0L,CAAV;AAAaR,UAAAA,IAAI,EAAE;AAAnB,SAD0B,EAE1B;AAAEgsE,UAAAA,IAAI,EAAEl3E,CAAC,CAAC0K,CAAV;AAAaQ,UAAAA,IAAI,EAAE;AAAnB,SAF0B,CAAP;AAAA,OAAd,CADT;AAAA,UAKE6jZ,SAAS,GAAG,oBAAA/wZ,KAAK,CAACC,SAAN,EAAgBiqB,MAAhB,yPAA0B4mY,IAA1B,EALd;AAAA,UAMEnvP,GAAG,GAAGovP,SAAS,CAAClrZ,IAAV,CAAe,UAACzF,CAAD,EAAIC,CAAJ;AAAA,eAAUD,CAAC,CAAC84E,IAAF,GAAS74E,CAAC,CAAC64E,IAArB;AAAA,OAAf,CANR;;AAHoB,8PAWJyoF,GAXI;AAAA;;AAAA;AAWpB,4DAAqB;AAAA,cAAV3/J,CAAU;AACnB6uZ,UAAAA,YAAY,IAAI7uZ,CAAC,CAACkL,IAAF,KAAW,GAAX,GAAiB,CAAjB,GAAqB,CAAC,CAAtC;;AAEA,cAAI2jZ,YAAY,KAAK,CAArB,EAAwB;AACtBvqZ,YAAAA,KAAK,GAAGtE,CAAC,CAACk3E,IAAV;AACD,WAFD,MAEO;AACL,gBAAI5yE,KAAK,IAAI,CAACA,KAAD,KAAW,CAACtE,CAAC,CAACk3E,IAA3B,EAAiC;AAC/B80F,cAAAA,OAAO,CAAC/pK,IAAR,CAAasmY,QAAQ,CAAC2J,aAAT,CAAuB5tY,KAAvB,EAA8BtE,CAAC,CAACk3E,IAAhC,CAAb;AACD;;AAED5yE,YAAAA,KAAK,GAAG,IAAR;AACD;AACF;AAvBmB;AAAA;AAAA;AAAA;AAAA;;AAyBpB,aAAOikY,QAAQ,CAACxlY,KAAT,CAAeipK,OAAf,CAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7fH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMhyD,OAAO,GAAG,OAAhB;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AAEA;;AAEA,IAAI/0B,GAAG,GAAG;AAAA,SAAM74D,IAAI,CAAC64D,GAAL,EAAN;AAAA,CAAV;AAAA,IACEmpT,WAAW,GAAG,QADhB;AAAA,IAEElyW,aAAa,GAAG,IAFlB;AAAA,IAGEioX,sBAAsB,GAAG,IAH3B;AAAA,IAIEE,qBAAqB,GAAG,IAJ1B;AAAA,IAKE/Q,cALF;AAOA;AACA;AACA;;;IACqB9K;;;;;;;;AACnB;AACF;AACA;AACA;AACE,mBAAiB;AACf,aAAOvjT,GAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;SACE,aAAe1kF,CAAf,EAAkB;AAChB0kF,MAAAA,GAAG,GAAG1kF,CAAN;AACD;AAED;AACF;AACA;AACA;AACA;;;;;AAKE;AACF;AACA;AACA;AACA;AACE,mBAAyB;AACvB,aAAO8oY,gEAAa,CAAC+E,WAAD,EAAcmf,qEAAd,CAApB;AACD;AAED;AACF;AACA;AACA;;SAhBE,aAAuBp7N,IAAvB,EAA6B;AAC3Bi8M,MAAAA,WAAW,GAAGj8M,IAAd;AACD;;;SAeD,eAA2B;AACzB,aAAOj2J,aAAP;AACD;AAED;AACF;AACA;AACA;;SACE,aAAyBF,MAAzB,EAAiC;AAC/BE,MAAAA,aAAa,GAAGF,MAAhB;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAoC;AAClC,aAAOmoX,sBAAP;AACD;AAED;AACF;AACA;AACA;;SACE,aAAkC/U,eAAlC,EAAmD;AACjD+U,MAAAA,sBAAsB,GAAG/U,eAAzB;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAAmC;AACjC,aAAOiV,qBAAP;AACD;AAED;AACF;AACA;AACA;;SACE,aAAiChV,cAAjC,EAAiD;AAC/CgV,MAAAA,qBAAqB,GAAGhV,cAAxB;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA4B;AAC1B,aAAOiE,cAAP;AACD;AAED;AACF;AACA;AACA;;SACE,aAA0B3uY,CAA1B,EAA6B;AAC3B2uY,MAAAA,cAAc,GAAG3uY,CAAjB;AACD;AAED;AACF;AACA;AACA;;;;WACE,uBAAqB;AACnBuqW,MAAAA,kEAAA;AACAmxC,MAAAA,qEAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;AC7HH;AAEA;AACA;AACA;;IACqBjvH;;;;;;;;AACnB;AACF;AACA;AACA;AACA;AACE,mBAAW;AACT,YAAM,IAAI8mH,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAW;AACT,YAAM,IAAIA,2DAAJ,EAAN;AACD;;;SAED,eAAe;AACb,aAAO,KAAK7tY,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAkB;AAChB,YAAM,IAAI6tY,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAW5hV,EAAX,EAAeugJ,IAAf,EAAqB;AACnB,YAAM,IAAIqhM,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAa5hV,EAAb,EAAiB9uD,MAAjB,EAAyB;AACvB,YAAM,IAAI0wY,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gBAAO5hV,EAAP,EAAW;AACT,YAAM,IAAI4hV,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gBAAO+W,SAAP,EAAkB;AAChB,YAAM,IAAI/W,2DAAJ,EAAN;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAc;AACZ,YAAM,IAAIA,2DAAJ,EAAN;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzFH;AACA;AAEA,IAAIgX,QAAQ,GAAG,EAAf;;AACA,SAASC,OAAT,CAAiBh9N,IAAjB,EAAuB;AACrB,MAAI,CAAC+8N,QAAQ,CAAC/8N,IAAD,CAAb,EAAqB;AACnB+8N,IAAAA,QAAQ,CAAC/8N,IAAD,CAAR,GAAiB,IAAIuuN,IAAI,CAACx0N,cAAT,CAAwB,OAAxB,EAAiC;AAChDkjO,MAAAA,MAAM,EAAE,KADwC;AAEhDtM,MAAAA,QAAQ,EAAE3wN,IAFsC;AAGhD5jK,MAAAA,IAAI,EAAE,SAH0C;AAIhD4uC,MAAAA,KAAK,EAAE,SAJyC;AAKhDE,MAAAA,GAAG,EAAE,SAL2C;AAMhDC,MAAAA,IAAI,EAAE,SAN0C;AAOhDC,MAAAA,MAAM,EAAE,SAPwC;AAQhDC,MAAAA,MAAM,EAAE,SARwC;AAShDqiV,MAAAA,GAAG,EAAE;AAT2C,KAAjC,CAAjB;AAWD;;AACD,SAAOqP,QAAQ,CAAC/8N,IAAD,CAAf;AACD;;AAED,IAAMk9N,SAAS,GAAG;AAChB9gY,EAAAA,IAAI,EAAE,CADU;AAEhB4uC,EAAAA,KAAK,EAAE,CAFS;AAGhBE,EAAAA,GAAG,EAAE,CAHW;AAIhBwiV,EAAAA,GAAG,EAAE,CAJW;AAKhBviV,EAAAA,IAAI,EAAE,CALU;AAMhBC,EAAAA,MAAM,EAAE,CANQ;AAOhBC,EAAAA,MAAM,EAAE;AAPQ,CAAlB;;AAUA,SAAS8xV,WAAT,CAAqB7O,GAArB,EAA0BhyX,IAA1B,EAAgC;AACxB,MAAA8gY,SAAS,GAAG9O,GAAG,CAACj5Y,MAAJ,CAAWinB,IAAX,EAAiBtC,OAAjB,CAAyB,SAAzB,EAAoC,EAApC,CAAZ;AAAA,MACJ4tF,MADI,GACK,kDAAkDz3F,IAAlD,CAAuDitY,SAAvD,CADL;AAAA,4OAEwDx1S,MAFxD;AAAA,MAEDy1S,MAFC;AAAA,MAEOC,IAFP;AAAA,MAEaC,KAFb;AAAA,MAEoBC,OAFpB;AAAA,MAE6BC,KAF7B;AAAA,MAEoCC,OAFpC;AAAA,MAE6CC,OAF7C;;AAGN,SAAO,CAACJ,KAAD,EAAQF,MAAR,EAAgBC,IAAhB,EAAsBE,OAAtB,EAA+BC,KAA/B,EAAsCC,OAAtC,EAA+CC,OAA/C,CAAP;AACD;;AAED,SAASC,WAAT,CAAqBtP,GAArB,EAA0BhyX,IAA1B,EAAgC;AAC9B,MAAM8gY,SAAS,GAAG9O,GAAG,CAACrB,aAAJ,CAAkB3wX,IAAlB,CAAlB;AACA,MAAMuhY,MAAM,GAAG,EAAf;;AACA,OAAK,IAAIhwZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuvZ,SAAS,CAACxwZ,MAA9B,EAAsCiB,CAAC,EAAvC,EAA2C;AACzC,uBAAwBuvZ,SAAS,CAACvvZ,CAAD,CAAjC;AAAA,QAAQkL,IAAR,gBAAQA,IAAR;AAAA,QAAc1K,KAAd,gBAAcA,KAAd;AACA,QAAMs3L,GAAG,GAAGu3N,SAAS,CAACnkZ,IAAD,CAArB;;AAEA,QAAIA,IAAI,KAAK,KAAb,EAAoB;AAClB8kZ,MAAAA,MAAM,CAACl4N,GAAD,CAAN,GAAct3L,KAAd;AACD,KAFD,MAEO,IAAI,CAACsxI,0DAAW,CAACgmD,GAAD,CAAhB,EAAuB;AAC5Bk4N,MAAAA,MAAM,CAACl4N,GAAD,CAAN,GAAcv1K,QAAQ,CAAC/hB,KAAD,EAAQ,EAAR,CAAtB;AACD;AACF;;AACD,SAAOwvZ,MAAP;AACD;;AAED,IAAIC,aAAa,GAAG,EAApB;AACA;AACA;AACA;AACA;;IACqB5P;;;;;AAqDnB,oBAAYh2Y,IAAZ,EAAkB;AAAA;;AAAA;;AAChB;AACA;;AACA,UAAKy1Y,QAAL,GAAgBz1Y,IAAhB;AACA;;AACA,UAAK4lS,KAAL,GAAaowG,QAAQ,CAACoN,WAAT,CAAqBpjZ,IAArB,CAAb;AALgB;AAMjB;AAED;;;;;SACA,eAAW;AACT,aAAO,MAAP;AACD;AAED;;;;SACA,eAAW;AACT,aAAO,KAAKy1Y,QAAZ;AACD;AAED;;;;SACA,eAAkB;AAChB,aAAO,KAAP;AACD;AAED;;;;WACA,oBAAWxpV,EAAX,QAAmC;AAAA,UAAlB9uD,MAAkB,QAAlBA,MAAkB;AAAA,UAAVw0B,MAAU,QAAVA,MAAU;AACjC,aAAO8wX,4DAAa,CAACx2V,EAAD,EAAK9uD,MAAL,EAAaw0B,MAAb,EAAqB,KAAK3xB,IAA1B,CAApB;AACD;AAED;;;;WACA,sBAAaisD,EAAb,EAAiB9uD,MAAjB,EAAyB;AACvB,aAAOi4Y,2DAAY,CAAC,KAAKl5Y,MAAL,CAAY+vD,EAAZ,CAAD,EAAkB9uD,MAAlB,CAAnB;AACD;AAED;;;;WACA,gBAAO8uD,EAAP,EAAW;AACT,UAAM7nC,IAAI,GAAG,IAAIrC,IAAJ,CAASkqC,EAAT,CAAb;AAEA,UAAI3yD,KAAK,CAAC8qB,IAAD,CAAT,EAAiB,OAAOnwB,GAAP;AAEjB,UAAMmiZ,GAAG,GAAG0O,OAAO,CAAC,KAAK9kZ,IAAN,CAAnB;;AACA,kBAAuDo2Y,GAAG,CAACrB,aAAJ,GACnD2Q,WAAW,CAACtP,GAAD,EAAMhyX,IAAN,CADwC,GAEnD6gY,WAAW,CAAC7O,GAAD,EAAMhyX,IAAN,CAFf;AAAA;AAAA,UAAKF,IAAL;AAAA,UAAW4uC,KAAX;AAAA,UAAkBE,GAAlB;AAAA,UAAuB6yV,MAAvB;AAAA,UAA+B5yV,IAA/B;AAAA,UAAqCC,MAArC;AAAA,UAA6CC,MAA7C;;AAIA,UAAI0yV,MAAM,KAAK,IAAf,EAAqB;AACnB3hY,QAAAA,IAAI,GAAG,CAACnuB,IAAI,CAACsF,GAAL,CAAS6oB,IAAT,CAAD,GAAkB,CAAzB;AACD,OAZQ,CAcT;;;AACA,UAAM4hY,YAAY,GAAG7yV,IAAI,KAAK,EAAT,GAAc,CAAd,GAAkBA,IAAvC;AAEA,UAAM8yV,KAAK,GAAGhnB,2DAAY,CAAC;AACzB76W,QAAAA,IAAI,EAAJA,IADyB;AAEzB4uC,QAAAA,KAAK,EAALA,KAFyB;AAGzBE,QAAAA,GAAG,EAAHA,GAHyB;AAIzBC,QAAAA,IAAI,EAAE6yV,YAJmB;AAKzB5yV,QAAAA,MAAM,EAANA,MALyB;AAMzBC,QAAAA,MAAM,EAANA,MANyB;AAOzBC,QAAAA,WAAW,EAAE;AAPY,OAAD,CAA1B;AAUA,UAAI4yV,IAAI,GAAG,CAAC5hY,IAAZ;AACA,UAAMupH,IAAI,GAAGq4Q,IAAI,GAAG,IAApB;AACAA,MAAAA,IAAI,IAAIr4Q,IAAI,IAAI,CAAR,GAAYA,IAAZ,GAAmB,OAAOA,IAAlC;AACA,aAAO,CAACo4Q,KAAK,GAAGC,IAAT,KAAkB,KAAK,IAAvB,CAAP;AACD;AAED;;;;WACA,gBAAOpB,SAAP,EAAkB;AAChB,aAAOA,SAAS,CAAC/jZ,IAAV,KAAmB,MAAnB,IAA6B+jZ,SAAS,CAAC5kZ,IAAV,KAAmB,KAAKA,IAA5D;AACD;AAED;;;;SACA,eAAc;AACZ,aAAO,KAAK4lS,KAAZ;AACD;;;;AA/HD;AACF;AACA;AACA;AACE,oBAAc5lS,IAAd,EAAoB;AAClB,UAAI,CAAC4lZ,aAAa,CAAC5lZ,IAAD,CAAlB,EAA0B;AACxB4lZ,QAAAA,aAAa,CAAC5lZ,IAAD,CAAb,GAAsB,IAAIg2Y,QAAJ,CAAah2Y,IAAb,CAAtB;AACD;;AACD,aAAO4lZ,aAAa,CAAC5lZ,IAAD,CAApB;AACD;AAED;AACF;AACA;AACA;;;;WACE,sBAAoB;AAClB4lZ,MAAAA,aAAa,GAAG,EAAhB;AACAf,MAAAA,QAAQ,GAAG,EAAX;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,0BAAwBxjZ,CAAxB,EAA2B;AACzB,aAAO,KAAK+hZ,WAAL,CAAiB/hZ,CAAjB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAmBymL,IAAnB,EAAyB;AACvB,UAAI,CAACA,IAAL,EAAW;AACT,eAAO,KAAP;AACD;;AACD,UAAI;AACF,YAAIuuN,IAAI,CAACx0N,cAAT,CAAwB,OAAxB,EAAiC;AAAE42N,UAAAA,QAAQ,EAAE3wN;AAAZ,SAAjC,EAAqD3qL,MAArD;AACA,eAAO,IAAP;AACD,OAHD,CAGE,OAAOkD,CAAP,EAAU;AACV,eAAO,KAAP;AACD;AACF;;;;EAnDmC0mR;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3DtC;AACA;AAEA,IAAIk/H,SAAS,GAAG,IAAhB;AAEA;AACA;AACA;AACA;;IACqB3nB;;;;;AAuCnB,2BAAYpiY,MAAZ,EAAoB;AAAA;;AAAA;;AAClB;AACA;;AACA,UAAKmtW,KAAL,GAAantW,MAAb;AAHkB;AAInB;AAED;;;;;SACA,eAAW;AACT,aAAO,OAAP;AACD;AAED;;;;SACA,eAAW;AACT,aAAO,KAAKmtW,KAAL,KAAe,CAAf,GAAmB,KAAnB,gBAAiC+rC,2DAAY,CAAC,KAAK/rC,KAAN,EAAa,QAAb,CAA7C,CAAP;AACD;;;SAED,eAAe;AACb,UAAI,KAAKA,KAAL,KAAe,CAAnB,EAAsB;AACpB,eAAO,SAAP;AACD,OAFD,MAEO;AACL,gCAAiB+rC,2DAAY,CAAC,CAAC,KAAK/rC,KAAP,EAAc,QAAd,CAA7B;AACD;AACF;AAED;;;;WACA,sBAAa;AACX,aAAO,KAAKrpW,IAAZ;AACD;AAED;;;;WACA,sBAAaisD,EAAb,EAAiB9uD,MAAjB,EAAyB;AACvB,aAAOi4Y,2DAAY,CAAC,KAAK/rC,KAAN,EAAalsW,MAAb,CAAnB;AACD;AAED;;;;SACA,eAAkB;AAChB,aAAO,IAAP;AACD;AAED;;;;WACA,kBAAS;AACP,aAAO,KAAKksW,KAAZ;AACD;AAED;;;;WACA,gBAAOu7C,SAAP,EAAkB;AAChB,aAAOA,SAAS,CAAC/jZ,IAAV,KAAmB,OAAnB,IAA8B+jZ,SAAS,CAACv7C,KAAV,KAAoB,KAAKA,KAA9D;AACD;AAED;;;;SACA,eAAc;AACZ,aAAO,IAAP;AACD;;;;AA1FD;AACF;AACA;AACA;AACE,mBAAyB;AACvB,UAAI48C,SAAS,KAAK,IAAlB,EAAwB;AACtBA,QAAAA,SAAS,GAAG,IAAI3nB,eAAJ,CAAoB,CAApB,CAAZ;AACD;;AACD,aAAO2nB,SAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,kBAAgB/pZ,MAAhB,EAAwB;AACtB,aAAOA,MAAM,KAAK,CAAX,GAAeoiY,eAAe,CAAC4J,WAA/B,GAA6C,IAAI5J,eAAJ,CAAoBpiY,MAApB,CAApD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAAsBmF,CAAtB,EAAyB;AACvB,UAAIA,CAAJ,EAAO;AACL,YAAMmX,CAAC,GAAGnX,CAAC,CAACugB,KAAF,CAAQ,uCAAR,CAAV;;AACA,YAAIpJ,CAAJ,EAAO;AACL,iBAAO,IAAI8lX,eAAJ,CAAoB4b,2DAAY,CAAC1hY,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAhC,CAAP;AACD;AACF;;AACD,aAAO,IAAP;AACD;;;;EArC0CuuQ;;;;;;;;;;;;;;;;;;;;;;;;;;ACT7C;AAEA;AACA;AACA;AACA;;IACqBk8H;;;;;AACnB,uBAAYxN,QAAZ,EAAsB;AAAA;;AAAA;;AACpB;AACA;;AACA,UAAKA,QAAL,GAAgBA,QAAhB;AAHoB;AAIrB;AAED;;;;;SACA,eAAW;AACT,aAAO,SAAP;AACD;AAED;;;;SACA,eAAW;AACT,aAAO,KAAKA,QAAZ;AACD;AAED;;;;SACA,eAAkB;AAChB,aAAO,KAAP;AACD;AAED;;;;WACA,sBAAa;AACX,aAAO,IAAP;AACD;AAED;;;;WACA,wBAAe;AACb,aAAO,EAAP;AACD;AAED;;;;WACA,kBAAS;AACP,aAAOxhZ,GAAP;AACD;AAED;;;;WACA,kBAAS;AACP,aAAO,KAAP;AACD;AAED;;;;SACA,eAAc;AACZ,aAAO,KAAP;AACD;;;;EA7CsC8yR;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNzC;AACA;AAEA,IAAIk/H,SAAS,GAAG,IAAhB;AAEA;AACA;AACA;AACA;;IACqB/C;;;;;;;;;;;;;;AAYnB;AACA,mBAAW;AACT,aAAO,QAAP;AACD;AAED;;;;SACA,eAAW;AACT,aAAO,IAAI7M,IAAI,CAACx0N,cAAT,GAA0BwjN,eAA1B,GAA4CoT,QAAnD;AACD;AAED;;;;SACA,eAAkB;AAChB,aAAO,KAAP;AACD;AAED;;;;WACA,oBAAWxsV,EAAX,QAAmC;AAAA,UAAlB9uD,MAAkB,QAAlBA,MAAkB;AAAA,UAAVw0B,MAAU,QAAVA,MAAU;AACjC,aAAO8wX,4DAAa,CAACx2V,EAAD,EAAK9uD,MAAL,EAAaw0B,MAAb,CAApB;AACD;AAED;;;;WACA,sBAAas6B,EAAb,EAAiB9uD,MAAjB,EAAyB;AACvB,aAAOi4Y,2DAAY,CAAC,KAAKl5Y,MAAL,CAAY+vD,EAAZ,CAAD,EAAkB9uD,MAAlB,CAAnB;AACD;AAED;;;;WACA,gBAAO8uD,EAAP,EAAW;AACT,aAAO,CAAC,IAAIlqC,IAAJ,CAASkqC,EAAT,EAAaoqB,iBAAb,EAAR;AACD;AAED;;;;WACA,gBAAOuuU,SAAP,EAAkB;AAChB,aAAOA,SAAS,CAAC/jZ,IAAV,KAAmB,QAA1B;AACD;AAED;;;;SACA,eAAc;AACZ,aAAO,IAAP;AACD;;;;AAjDD;AACF;AACA;AACA;AACE,mBAAsB;AACpB,UAAIolZ,SAAS,KAAK,IAAlB,EAAwB;AACtBA,QAAAA,SAAS,GAAG,IAAI/C,UAAJ,EAAZ;AACD;;AACD,aAAO+C,SAAP;AACD;;;;EAVqCl/H;;;;;;;;;;;;;;;;;ACTzB;AACf;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACRe;AACf;AACA;;;;;;;;;;;;;;;;ACFqD;AACtC;AACf,iCAAiC,gEAAgB;AACjD;;;;;;;;;;;;;;;ACHe;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACNe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiD;AACoB;AACtD;AACf,MAAM,wEAAwB;AAC9B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAc;AAC/B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACjBA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACjByE;AAC1D;AACf;;AAEA;AACA,kCAAkC,0EAA0B;AAC5D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxDiD;AACoB;AACE;AACxD;AACf,kCAAkC,wEAAwB;AAC1D;AACA,gBAAgB,8DAAc;AAC9B;;AAEA;AACA,sBAAsB,8DAAc;AACpC;AACA,MAAM;AACN;AACA;;AAEA,WAAW,yEAAyB;AACpC;AACA;;;;;;;;;;;;;;;AClBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACb+C;AAChC;AACf;AACA;AACA,IAAI;AACJ;AACA,iBAAiB,6DAAa;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLiD;AAClC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,kBAAkB,8DAAc;AAChC;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;;AAEA;AACA,gFAAgF;AAChF;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;ACXe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;AC5Be;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;;ACFiD;;AAEjD;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,kBAAkB,sBAAsB;AACxC;AACA;AACA,MAAM,8DAAc;AACpB,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;;;;;;AC1B6E;AAC9D;AACf;AACA,eAAe,4EAA4B;AAC3C;;AAEA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;AClBe;AACf;AACA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACbkC;AAC6B;AAChD;AACf,eAAe,sDAAO;AACtB;AACA,IAAI;AACJ;AACA;;AAEA,SAAS,qEAAqB;AAC9B;;;;;;;;;;;;;;;ACVe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNiD;AACY;AACY;AACtB;AACpC;AACf,SAAS,8DAAc,SAAS,oEAAoB,YAAY,0EAA0B,YAAY,+DAAe;AACrH;;;;;;;;;;;;;;;;ACNiD;AAClC;AACf;AACA,aAAa,8DAAc;AAC3B;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACRiD;AACE;AACsB;AACtB;AACpC;AACf,SAAS,8DAAc,SAAS,+DAAe,SAAS,0EAA0B,SAAS,+DAAe;AAC1G;;;;;;;;;;;;;;;;;;;ACNuD;AACJ;AACsB;AAClB;AACxC;AACf,SAAS,iEAAiB,SAAS,+DAAe,SAAS,0EAA0B,SAAS,iEAAiB;AAC/G;;;;;;;;;;;;;;;ACNe;AACf;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACRqD;AACtC;AACf;AACA,oCAAoC,gEAAgB;AACpD;AACA;AACA;AACA,sFAAsF,gEAAgB;AACtG;;;;;;;;;;;;;;;;;;;ACRiD;AACA;AACI;AACd;AACxB;AACf;;AAEA;AACA,2BAA2B,gEAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,yDAAS,mBAAmB,8DAAc;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,8DAAc;AACzB;;AAEA;AACA","sources":["./src/app/activate-guard.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/components/action/lm-action.component.ts","./src/app/components/applicationmenu/asofdate/index.ts","./src/app/components/applicationmenu/asofdate/lm-application-menu-asofdate-dialog.component.ts","./src/app/components/applicationmenu/asofdate/lm-application-menu-asofdate-dialog.service.ts","./src/app/components/applicationmenu/dialog/index.ts","./src/app/components/applicationmenu/dialog/lm-application-menu-settings-dialog.component.ts","./src/app/components/applicationmenu/dialog/lm-application-menu-settings-dialog.component.html","./src/app/components/applicationmenu/dialog/lm-application-menu-usercontext-dialog.component.ts","./src/app/components/applicationmenu/dialog/lm-application-menu-usercontext-dialog.component.html","./src/app/components/applicationmenu/dialog/lm-application-menu-usercontext-dialog.service.ts","./src/app/components/applicationmenu/dialog/lm-application-menu-usercontext-field.component.ts","./src/app/components/applicationmenu/header/index.ts","./src/app/components/applicationmenu/header/lm-application-menu-header-component-ref.service.ts","./src/app/components/applicationmenu/header/lm-application-menu-header.component.ts","./src/app/components/applicationmenu/header/lm-application-menu-header.component.html","./src/app/components/applicationmenu/index.ts","./src/app/components/applicationmenu/lm-application-menu-base.directive.ts","./src/app/components/applicationmenu/menu/index.ts","./src/app/components/applicationmenu/menu/lm-application-menu.component.ts","./src/app/components/applicationmenu/menu/lm-application-menu.component.html","./src/app/components/applicationmenu/proxymenu/index.ts","./src/app/components/applicationmenu/proxymenu/lm-application-menu-proxy-menu.component.ts","./src/app/components/applicationmenu/proxymenu/lm-application-menu-proxy-menu.component.html","./src/app/components/applicationmenu/search/index.ts","./src/app/components/applicationmenu/search/lm-application-menu-search.component.ts","./src/app/components/applicationmenu/search/lm-application-menu-search.component.html","./src/app/components/applicationmenu/search/lm-application-menu-search.service.ts","./src/app/components/applicationmenu/services/index.ts","./src/app/components/applicationmenu/services/lm-application-menu-transaction.service.ts","./src/app/components/applicationmenu/services/lm-application-menu.service.ts","./src/app/components/applicationmenu/submenu/index.ts","./src/app/components/applicationmenu/submenu/lm-application-menu-submenu-base.directive.ts","./src/app/components/applicationmenu/submenu/lm-application-menu-submenu.component.ts","./src/app/components/applicationmenu/submenu/lm-application-menu-submenu.component.html","./src/app/components/applicationmenu/submenu/lm-application-menu-submenu.service.ts","./src/app/components/auditLog/index.ts","./src/app/components/auditLog/lm-audit-log-compare-dialog.component.ts","./src/app/components/auditLog/lm-audit-log.component.ts","./src/app/components/auditLog/lm-audit-log.component.html","./src/app/components/banner/index.ts","./src/app/components/banner/lm-banner-asofdate-dialog.component.ts","./src/app/components/banner/lm-banner-asofdate-dialog.service.ts","./src/app/components/banner/lm-banner-header-component-ref.service.ts","./src/app/components/banner/lm-banner-header.component.ts","./src/app/components/banner/lm-banner-header.component.html","./src/app/components/banner/lm-banner-masthead.component.ts","./src/app/components/banner/lm-banner-masthead.component.html","./src/app/components/banner/lm-banner-menu.component.ts","./src/app/components/banner/lm-banner-menu.component.html","./src/app/components/banner/lm-banner-menu.service.ts","./src/app/components/banner/lm-banner-nav.component.ts","./src/app/components/banner/lm-banner-nav.component.html","./src/app/components/banner/lm-banner-proxy-menu.component.ts","./src/app/components/banner/lm-banner-proxy-menu.component.html","./src/app/components/banner/lm-banner-search.component.ts","./src/app/components/banner/lm-banner-search.component.html","./src/app/components/banner/lm-banner-search.service.ts","./src/app/components/banner/lm-banner-transaction.service.ts","./src/app/components/banner/lm-banner-usercontext-dialog.component.ts","./src/app/components/banner/lm-banner-usercontext-dialog.component.html","./src/app/components/banner/lm-banner-usercontext-dialog.service.ts","./src/app/components/banner/lm-banner.service.ts","./src/app/components/banner/lm-swatch.directive.ts","./src/app/components/banner/lm-theme.service.ts","./src/app/components/base/index.ts","./src/app/components/base/lm-base-form.component.ts","./src/app/components/base/lm-base.component.ts","./src/app/components/base/lm-ctrl-shift-click-base.component.ts","./src/app/components/base/lm-ctrl-shift-click-event.ts","./src/app/components/blockgrid/index.ts","./src/app/components/blockgrid/lm-block-grid.component.ts","./src/app/components/blockgrid/lm-block-grid.component.html","./src/app/components/blockgrid/lm-block-item.component.ts","./src/app/components/blockgrid/lm-block-item.component.html","./src/app/components/card/index.ts","./src/app/components/card/lm-card-base.directive.ts","./src/app/components/card/lm-sectioned-card.component.ts","./src/app/components/card/lm-sectioned-card.component.html","./src/app/components/card/lm-simple-card.component.ts","./src/app/components/card/lm-simple-card.component.html","./src/app/components/chart/index.ts","./src/app/components/chart/lm-chart-bar.component.ts","./src/app/components/chart/lm-chart-base.ts","./src/app/components/chart/lm-chart-column.component.ts","./src/app/components/chart/lm-chart-line.component.ts","./src/app/components/chart/lm-chart-pie.component.ts","./src/app/components/chart/lm-chart-radar.component.ts","./src/app/components/componentInfo/index.ts","./src/app/components/componentInfo/lm-componentinfo.component.ts","./src/app/components/componentInfo/lm-componentinfo.component.html","./src/app/components/custom/index.ts","./src/app/components/custom/lm-view-more.component.ts","./src/app/components/custom/lm-view-more.component.html","./src/app/components/dashboard/index.ts","./src/app/components/dashboard/lm-dashboard-panel-base.component.ts","./src/app/components/dashboard/lm-dashboard-panel-card.component.ts","./src/app/components/dashboard/lm-dashboard-panel-card.component.html","./src/app/components/dashboard/lm-dashboard-panel-form-template.component.ts","./src/app/components/dashboard/lm-dashboard-panel-form-template.component.html","./src/app/components/dashboard/lm-dashboard-panel-form.component.ts","./src/app/components/dashboard/lm-dashboard-panel-form.component.html","./src/app/components/dashboard/lm-dashboard-panel-list.component.ts","./src/app/components/dashboard/lm-dashboard-panel-list.component.html","./src/app/components/dashboard/lm-dashboard-panel-url.component.ts","./src/app/components/dashboard/lm-dashboard-view.component.ts","./src/app/components/dashboard/lm-dashboard-view.component.html","./src/app/components/error/index.ts","./src/app/components/error/lm-access-denied-error.component.ts","./src/app/components/error/lm-access-denied-error.html","./src/app/components/error/lm-view-exception-details.component.ts","./src/app/components/error/lm-view-exception-details.component.html","./src/app/components/field/busclassfield/index.ts","./src/app/components/field/busclassfield/lm-busclassfield.component.ts","./src/app/components/field/busclassfield/lm-busclassfield.component.html","./src/app/components/field/busclassfield/lm-busclassfield.service.ts","./src/app/components/field/busclassfield/lm-preview-options-dialog.component.ts","./src/app/components/field/busclassfield/lm-preview-options-dialog.component.html","./src/app/components/field/button/index.ts","./src/app/components/field/button/lm-button.component.ts","./src/app/components/field/button/lm-button.component.html","./src/app/components/field/captchacontrol/index.ts","./src/app/components/field/captchacontrol/lm-captcha-control.component.ts","./src/app/components/field/captchacontrol/lm-captcha-control.component.html","./src/app/components/field/captchacontrol/lm-captcha-control.service.ts","./src/app/components/field/checkbox/index.ts","./src/app/components/field/checkbox/lm-checkbox.component.ts","./src/app/components/field/checkbox/lm-checkbox.component.html","./src/app/components/field/checkcontrol/index.ts","./src/app/components/field/checkcontrol/lm-checkcontrol.component.ts","./src/app/components/field/checkcontrol/lm-checkcontrol.component.html","./src/app/components/field/compoundfield/index.ts","./src/app/components/field/compoundfield/lm-compound-field.component.ts","./src/app/components/field/compoundfield/lm-compound-field.component.html","./src/app/components/field/date/index.ts","./src/app/components/field/date/lm-date.component.ts","./src/app/components/field/date/lm-date.component.html","./src/app/components/field/dropdown/index.ts","./src/app/components/field/dropdown/lm-dropdown.component.ts","./src/app/components/field/dropdown/lm-dropdown.component.html","./src/app/components/field/editor/index.ts","./src/app/components/field/editor/lm-field-editor-compare.component.ts","./src/app/components/field/editor/lm-field-editor-compare.component.html","./src/app/components/field/editor/lm-field-editor.component.ts","./src/app/components/field/editor/lm-field-editor.component.html","./src/app/components/field/fieldoptions/index.ts","./src/app/components/field/fieldoptions/lm-field-options.component.ts","./src/app/components/field/fieldoptions/lm-field-options.component.html","./src/app/components/field/fileupload/index.ts","./src/app/components/field/fileupload/lm-fileupload.component.ts","./src/app/components/field/fileupload/lm-fileupload.component.html","./src/app/components/field/hyperlink/index.ts","./src/app/components/field/hyperlink/lm-hyperlink.component.ts","./src/app/components/field/hyperlink/lm-hyperlink.component.html","./src/app/components/field/image/index.ts","./src/app/components/field/image/lm-image.component.ts","./src/app/components/field/image/lm-image.component.html","./src/app/components/field/index.ts","./src/app/components/field/label/index.ts","./src/app/components/field/label/lm-label.directive.ts","./src/app/components/field/label/lm-label.module.ts","./src/app/components/field/lm-field-base.component.ts","./src/app/components/field/lm-field-service-adapter.ts","./src/app/components/field/lm-field-style.directive.ts","./src/app/components/field/lm-field-subscription.service.ts","./src/app/components/field/lm-field-uppercase.directive.ts","./src/app/components/field/lm-mouse-over-text.component.ts","./src/app/components/field/lm-style-directive.base.ts","./src/app/components/field/lm-text-style.directive.ts","./src/app/components/field/lookup/index.ts","./src/app/components/field/lookup/lm-lookup-basic.component.ts","./src/app/components/field/lookup/lm-lookup-basic.component.html","./src/app/components/field/lookup/lm-lookup-dialog.component.ts","./src/app/components/field/lookup/lm-lookup-dialog.component.html","./src/app/components/field/lookup/lm-lookup-selection.event.ts","./src/app/components/field/lookup/lm-lookup.component.ts","./src/app/components/field/lookup/lm-lookup.component.html","./src/app/components/field/manualrepresentation/index.ts","./src/app/components/field/manualrepresentation/lm-manual-representation.component.ts","./src/app/components/field/manualrepresentation/lm-manual-representation.component.html","./src/app/components/field/menu/index.ts","./src/app/components/field/menu/lm-menu-field.component.ts","./src/app/components/field/menu/lm-menu-field.component.html","./src/app/components/field/processindicator/index.ts","./src/app/components/field/processindicator/lm-process-indicator-tooltip.pipe.ts","./src/app/components/field/processindicator/lm-process-indicator.component.ts","./src/app/components/field/processindicator/lm-process-indicator.component.html","./src/app/components/field/processindicator/lm-process-indicator.service.ts","./src/app/components/field/progress/index.ts","./src/app/components/field/progress/lm-progress.component.ts","./src/app/components/field/progress/lm-progress.component.html","./src/app/components/field/radiobutton/index.ts","./src/app/components/field/radiobutton/lm-radiobutton.component.ts","./src/app/components/field/radiobutton/lm-radiobutton.component.html","./src/app/components/field/rating/index.ts","./src/app/components/field/rating/lm-rating.component.ts","./src/app/components/field/rating/lm-rating.component.html","./src/app/components/field/richtext/index.ts","./src/app/components/field/richtext/lm-richtext.component.ts","./src/app/components/field/richtext/lm-richtext.component.html","./src/app/components/field/scanoptions/index.ts","./src/app/components/field/scanoptions/lm-scan-options.component.ts","./src/app/components/field/scanoptions/lm-scan-options.component.html","./src/app/components/field/services/index.ts","./src/app/components/field/services/lm-field-layout.service.ts","./src/app/components/field/services/lm-field-manual-rep.service.ts","./src/app/components/field/services/lm-field-options-toolbar.service.ts","./src/app/components/field/services/lm-field-options.service.ts","./src/app/components/field/simpleprogress/index.ts","./src/app/components/field/simpleprogress/lm-simple-progress.component.ts","./src/app/components/field/simpleprogress/lm-simple-progress.component.html","./src/app/components/field/text/index.ts","./src/app/components/field/text/lm-text.component.ts","./src/app/components/field/text/lm-text.component.html","./src/app/components/field/textarea/index.ts","./src/app/components/field/textarea/lm-textarea.component.ts","./src/app/components/field/textarea/lm-textarea.component.html","./src/app/components/field/time/index.ts","./src/app/components/field/time/lm-time.component.ts","./src/app/components/field/time/lm-time.component.html","./src/app/components/field/trackdirty/index.ts","./src/app/components/field/trackdirty/lm-trackdirty.directive.ts","./src/app/components/form/index.ts","./src/app/components/form/layout/index.ts","./src/app/components/form/layout/lm-blankline.component.ts","./src/app/components/form/layout/lm-columns-base.component.ts","./src/app/components/form/layout/lm-columns-distributed.component.ts","./src/app/components/form/layout/lm-columns-distributed.component.html","./src/app/components/form/layout/lm-columns-grid.component.ts","./src/app/components/form/layout/lm-columns-grid.component.html","./src/app/components/form/layout/lm-columns-image-first-column.component.ts","./src/app/components/form/layout/lm-columns-image-first-column.component.html","./src/app/components/form/layout/lm-columns-percent.component.ts","./src/app/components/form/layout/lm-columns-percent.component.html","./src/app/components/form/layout/lm-columns-table.component.ts","./src/app/components/form/layout/lm-columns-table.component.html","./src/app/components/form/layout/lm-columns-undistributed.component.ts","./src/app/components/form/layout/lm-columns-undistributed.component.html","./src/app/components/form/layout/lm-element-layout.component.ts","./src/app/components/form/layout/lm-element-layout.component.html","./src/app/components/form/layout/lm-field-layout.component.ts","./src/app/components/form/layout/lm-field-layout.component.html","./src/app/components/form/layout/lm-form-layout.component.ts","./src/app/components/form/layout/lm-form-layout.component.html","./src/app/components/form/layout/lm-header.component.ts","./src/app/components/form/layout/lm-header.component.html","./src/app/components/form/layout/lm-layout-util.directive.ts","./src/app/components/form/layout/lm-paragraph-layout.component.ts","./src/app/components/form/layout/lm-paragraph-layout.component.html","./src/app/components/form/lm-form-content-composite.component.ts","./src/app/components/form/lm-form-content-composite.component.html","./src/app/components/form/lm-form-content-form.component.ts","./src/app/components/form/lm-form-content-form.component.html","./src/app/components/form/lm-form-content-instance-count.component.ts","./src/app/components/form/lm-form-content-instance-count.component.html","./src/app/components/form/lm-form-content-manual-representation.component.ts","./src/app/components/form/lm-form-content-manual-representation.component.html","./src/app/components/form/lm-form-content-matrix.component.ts","./src/app/components/form/lm-form-content-matrix.component.html","./src/app/components/form/lm-form-content-menu.component.ts","./src/app/components/form/lm-form-content-menu.component.html","./src/app/components/form/lm-form-content-search.component.ts","./src/app/components/form/lm-form-content-search.component.html","./src/app/components/form/lm-form-content-stepprocess.component.ts","./src/app/components/form/lm-form-content-stepprocess.component.html","./src/app/components/form/lm-form-content-template.component.ts","./src/app/components/form/lm-form-content-template.component.html","./src/app/components/form/lm-form-content.component.ts","./src/app/components/form/lm-form-content.component.html","./src/app/components/form/lm-form-manual-rep.service.ts","./src/app/components/form/lm-form-panel-actionis.component.ts","./src/app/components/form/lm-form-panel-dashboard.component.ts","./src/app/components/form/lm-form-panel-form.component.ts","./src/app/components/form/lm-form-panel-independentform.component.ts","./src/app/components/form/lm-form-panel-list.component.ts","./src/app/components/form/lm-form-panel-multilist.component.ts","./src/app/components/form/lm-form-panel-multilist.component.html","./src/app/components/form/lm-form-panel-notfound.component.ts","./src/app/components/form/lm-form-panel-template.component.ts","./src/app/components/form/lm-form-panel-template.component.html","./src/app/components/form/lm-form-panel-text.component.ts","./src/app/components/form/lm-form-panel-text.component.html","./src/app/components/form/lm-form-panel-url.component.ts","./src/app/components/form/lm-form.component.ts","./src/app/components/form/lm-form.component.html","./src/app/components/form/lm-form.model.ts","./src/app/components/form/lm-template-form-record.component.ts","./src/app/components/form/model/index.ts","./src/app/components/form/model/lm-model-field.ts","./src/app/components/form/model/lm-model-service-adapter.ts","./src/app/components/form/model/lm-model-state.ts","./src/app/components/form/model/lm-model.ts","./src/app/components/form/services/index.ts","./src/app/components/form/services/lm-form-action-util.service.ts","./src/app/components/form/services/lm-form-layout.service.ts","./src/app/components/form/services/lm-form-matrix.service.ts","./src/app/components/form/services/lm-form-paging.service.ts","./src/app/components/form/services/lm-form-panel.service.ts","./src/app/components/form/services/lm-form-request.service.ts","./src/app/components/form/services/lm-form-spec-util.service.ts","./src/app/components/form/services/lm-form-toolbar.service.ts","./src/app/components/form/services/lm-form-transaction.service.ts","./src/app/components/form/services/lm-form.service.ts","./src/app/components/home/index.ts","./src/app/components/home/lm-home-page-util.service.ts","./src/app/components/home/lm-home-page.component.ts","./src/app/components/home/lm-suite-home-toolbar.service.ts","./src/app/components/home/lm-suite-home.component.ts","./src/app/components/home/lm-suite-home.component.html","./src/app/components/horizontalscroller/index.ts","./src/app/components/horizontalscroller/lm-horizontal-scroller.component.ts","./src/app/components/horizontalscroller/lm-horizontal-scroller.component.html","./src/app/components/html/index.ts","./src/app/components/html/lm-html-page-util.service.ts","./src/app/components/html/lm-html-page.component.ts","./src/app/components/html/lm-html-url-doc.component.ts","./src/app/components/index.ts","./src/app/components/list/code-block/index.ts","./src/app/components/list/code-block/lm-code-block.component.ts","./src/app/components/list/editors/index.ts","./src/app/components/list/editors/lm-barcode-click.function.ts","./src/app/components/list/editors/lm-bcd.serializer.ts","./src/app/components/list/editors/lm-boolean.serializer.ts","./src/app/components/list/editors/lm-checkcontrol-editable.editor.ts","./src/app/components/list/editors/lm-checkcontrol.serializer.ts","./src/app/components/list/editors/lm-code-block.editor.ts","./src/app/components/list/editors/lm-code-block.serializer.ts","./src/app/components/list/editors/lm-date-time.serializer.ts","./src/app/components/list/editors/lm-editor.service.ts","./src/app/components/list/editors/lm-fieldlookup-click.function.ts","./src/app/components/list/editors/lm-filter-clear-click.function.ts","./src/app/components/list/editors/lm-filter-dropdown-keydown.function.ts","./src/app/components/list/editors/lm-filter-lookup-click.function.ts","./src/app/components/list/editors/lm-is-editable.editor.ts","./src/app/components/list/editors/lm-lookup-click.function.ts","./src/app/components/list/editors/lm-maskoptions.function.ts","./src/app/components/list/editors/lm-percent.serializer.ts","./src/app/components/list/editors/lm-state-field.source.ts","./src/app/components/list/formatters/index.ts","./src/app/components/list/formatters/lm-button.formatter.ts","./src/app/components/list/formatters/lm-card-view.formatter.ts","./src/app/components/list/formatters/lm-checkbox.formatter.ts","./src/app/components/list/formatters/lm-code-block.formatter.ts","./src/app/components/list/formatters/lm-colspan.formatter.ts","./src/app/components/list/formatters/lm-favorite.formatter.ts","./src/app/components/list/formatters/lm-field.formatter.ts","./src/app/components/list/formatters/lm-formatter.service.ts","./src/app/components/list/formatters/lm-list-cell-tooltip.formatter.ts","./src/app/components/list/formatters/lm-matrixrow-formatter.ts","./src/app/components/list/formatters/lm-process-indicator.formatter.ts","./src/app/components/list/formatters/lm-progress.formatter.ts","./src/app/components/list/formatters/lm-rating.formatter.ts","./src/app/components/list/formatters/lm-tree.formatter.ts","./src/app/components/list/index.ts","./src/app/components/list/lm-datagrid-base.component.ts","./src/app/components/list/lm-detail-section-card.component.ts","./src/app/components/list/lm-detail-section-dashboard.component.ts","./src/app/components/list/lm-detail-section-form.component.ts","./src/app/components/list/lm-detail-section-list.component.ts","./src/app/components/list/lm-detail-section-list.component.html","./src/app/components/list/lm-detail-section-multilist.component.ts","./src/app/components/list/lm-detail-section-multilist.component.html","./src/app/components/list/lm-detail-section-notfound.component.ts","./src/app/components/list/lm-detail-section-url.component.ts","./src/app/components/list/lm-detail-sections.component.ts","./src/app/components/list/lm-detail-sections.component.html","./src/app/components/list/lm-list-audit-compare-panel.component.ts","./src/app/components/list/lm-list-audit-compare-panel.component.html","./src/app/components/list/lm-list-blockgrid-base.directive.ts","./src/app/components/list/lm-list-calendar.component.ts","./src/app/components/list/lm-list-calendar.component.html","./src/app/components/list/lm-list-card.component.ts","./src/app/components/list/lm-list-card.component.html","./src/app/components/list/lm-list-chart-aggregation.ts","./src/app/components/list/lm-list-chart-selectors.component.ts","./src/app/components/list/lm-list-chart-selectors.component.html","./src/app/components/list/lm-list-chart.component.ts","./src/app/components/list/lm-list-chart.component.html","./src/app/components/list/lm-list-content-base.component.ts","./src/app/components/list/lm-list-content-filterlist.component.ts","./src/app/components/list/lm-list-content-filterlist.component.html","./src/app/components/list/lm-list-content.component.ts","./src/app/components/list/lm-list-cube-viewer.component.ts","./src/app/components/list/lm-list-cube-viewer.component.html","./src/app/components/list/lm-list-gallery.component.ts","./src/app/components/list/lm-list-gallery.component.html","./src/app/components/list/lm-list-grid.component.ts","./src/app/components/list/lm-list-grid.component.html","./src/app/components/list/lm-list-hierarchy.component.ts","./src/app/components/list/lm-list-hierarchy.component.html","./src/app/components/list/lm-list-image.component.ts","./src/app/components/list/lm-list-image.component.html","./src/app/components/list/lm-list-lookup-dialog.component.ts","./src/app/components/list/lm-list-search-form-dialog.component.ts","./src/app/components/list/lm-list-search-form.directive.ts","./src/app/components/list/lm-list-searchtags.component.ts","./src/app/components/list/lm-list-searchtags.component.html","./src/app/components/list/lm-list-tree.component.ts","./src/app/components/list/lm-list-tree.component.html","./src/app/components/list/lm-list-view.component.ts","./src/app/components/list/lm-list-view.component.html","./src/app/components/list/lm-list.component.ts","./src/app/components/list/lm-list.component.html","./src/app/components/list/services/index.ts","./src/app/components/list/services/lm-list-action-form-dialog.service.ts","./src/app/components/list/services/lm-list-action-util.service.ts","./src/app/components/list/services/lm-list-card.service.ts","./src/app/components/list/services/lm-list-content-filterlist-util.service.ts","./src/app/components/list/services/lm-list-content-filterlist.service.ts","./src/app/components/list/services/lm-list-event.service.ts","./src/app/components/list/services/lm-list-grid-builder.service.ts","./src/app/components/list/services/lm-list-grid-paging.service.ts","./src/app/components/list/services/lm-list-grid-util.service.ts","./src/app/components/list/services/lm-list-hierarchy-service.ts","./src/app/components/list/services/lm-list-spec-util.service.ts","./src/app/components/list/services/lm-list-toolbar.service.ts","./src/app/components/list/services/lm-list-transaction.service.ts","./src/app/components/list/services/lm-list-util.service.ts","./src/app/components/list/services/lm-list.service.ts","./src/app/components/lmlistdropdown/index.ts","./src/app/components/lmlistdropdown/lm-list-dropdown.component.ts","./src/app/components/lmlistdropdown/lm-list-dropdown.component.html","./src/app/components/lmlistdropdown/lm-list-dropdown.service.ts","./src/app/components/locale/lm-locale-initializer.module.ts","./src/app/components/login/index.ts","./src/app/components/login/lm-login.component.ts","./src/app/components/login/lm-login.component.html","./src/app/components/login/lm-login.service.ts","./src/app/components/lplEditor/lm-lpl-editor-compare.component.ts","./src/app/components/lplEditor/lm-lpl-editor-compare.component.html","./src/app/components/lplEditor/lm-lpl-editor.component.ts","./src/app/components/lplEditor/lm-lpl-editor.component.html","./src/app/components/lplEditor/lm-lpl-editor.service.ts","./src/app/components/manual/index.ts","./src/app/components/manual/lm-manual.component.ts","./src/app/components/modal/compute-builder/index.ts","./src/app/components/modal/compute-builder/lm-compute-builder-row.component.ts","./src/app/components/modal/compute-builder/lm-compute-builder-row.component.html","./src/app/components/modal/compute-builder/lm-compute-builder.component.ts","./src/app/components/modal/compute-builder/lm-compute-builder.component.html","./src/app/components/modal/compute-builder/lm-derived-compute-builder.component.ts","./src/app/components/modal/compute-builder/lm-derived-compute-builder.component.html","./src/app/components/modal/compute-builder/services/index.ts","./src/app/components/modal/compute-builder/services/lm-compute-builder.service.ts","./src/app/components/modal/cube-cell-rel/index.ts","./src/app/components/modal/cube-cell-rel/lm-cube-cell-rel-test.component.ts","./src/app/components/modal/cube-cell-rel/lm-cube-cell-rel-test.component.html","./src/app/components/modal/cube-cell-rel/services/index.ts","./src/app/components/modal/cube-cell-rel/services/lm-cube-cell-rel.service.ts","./src/app/components/modal/cubes/cubes.module.ts","./src/app/components/modal/cubes/lm-cube-dimension-row.component.ts","./src/app/components/modal/cubes/lm-cube-dimension-row.component.html","./src/app/components/modal/cubes/lm-cube-dimensions-dialog.component.ts","./src/app/components/modal/cubes/lm-cube-dimensions-dialog.component.html","./src/app/components/modal/cubes/lm-cube-dimensions-mapping.component.ts","./src/app/components/modal/cubes/lm-cube-dimensions-mapping.component.html","./src/app/components/modal/cubes/lm-cube-period-dimension.component.ts","./src/app/components/modal/cubes/lm-cube-period-dimension.component.html","./src/app/components/modal/cubes/lm-cube-periodoverride-dialog.component.ts","./src/app/components/modal/cubes/lm-cube-periodoverride-dialog.component.html","./src/app/components/modal/cubes/lm-cube-structures.component.ts","./src/app/components/modal/cubes/lm-cube-structures.component.html","./src/app/components/modal/cubes/lm-cube-util.service.ts","./src/app/components/modal/field-picker/formatter/lm-fieldpicker.formatter.ts","./src/app/components/modal/field-picker/index.ts","./src/app/components/modal/field-picker/lm-field-picker.component.ts","./src/app/components/modal/field-picker/lm-field-picker.component.html","./src/app/components/modal/field-picker/services/index.ts","./src/app/components/modal/field-picker/services/lm-field-picker-service.ts","./src/app/components/modal/filter-builder/index.ts","./src/app/components/modal/filter-builder/lm-filter-builder-field-lookup.component.ts","./src/app/components/modal/filter-builder/lm-filter-builder-field-lookup.component.html","./src/app/components/modal/filter-builder/lm-filter-builder-row.component.ts","./src/app/components/modal/filter-builder/lm-filter-builder-row.component.html","./src/app/components/modal/filter-builder/lm-filter-builder.component.ts","./src/app/components/modal/filter-builder/lm-filter-builder.component.html","./src/app/components/modal/filter-builder/services/index.ts","./src/app/components/modal/filter-builder/services/lm-filter-builder.service.ts","./src/app/components/modal/index.ts","./src/app/components/modal/lm-action-form-dialog.component.ts","./src/app/components/modal/lm-action-form-dialog.service.ts","./src/app/components/modal/lm-compact-form-dialog.component.ts","./src/app/components/modal/lm-compact-form-dialog.service.ts","./src/app/components/modal/lm-confirmation-message.service.ts","./src/app/components/modal/lm-contextual-action-panel.service.ts","./src/app/components/modal/lm-dirty-check-dialog.component.ts","./src/app/components/modal/lm-field-validator.service.ts","./src/app/components/modal/lm-helper-list-dialog.component.ts","./src/app/components/modal/lm-helper-list-dialog.service.ts","./src/app/components/modal/lm-keyboard-shortcuts-dialog.component.ts","./src/app/components/modal/lm-keyboard-shortcuts-dialog.component.html","./src/app/components/modal/lm-pending-changes-dialog.component.ts","./src/app/components/modal/lm-report-personalization-dialog.component.ts","./src/app/components/modal/lm-report-personalization-dialog.component.html","./src/app/components/modal/lm-report-personalization-dialog.service.ts","./src/app/components/modal/lm-report-personalization-swaplist-service.ts","./src/app/components/modal/lm-response-required-modal-form.component.ts","./src/app/components/modal/lm-response-required.service.ts","./src/app/components/modal/lm-select-dialog.component.ts","./src/app/components/modal/lm-select-dialog.service.ts","./src/app/components/modal/lm-select-record-dialog.component.ts","./src/app/components/modal/lm-select-record-dialog.service.ts","./src/app/components/modal/lm-sub-form-dialog.component.ts","./src/app/components/modal/lm-sub-form-dialog.service.ts","./src/app/components/modal/print-dialog/csv/lm-print-csv-dialog.component.ts","./src/app/components/modal/print-dialog/csv/lm-print-csv-dialog.component.html","./src/app/components/modal/print-dialog/index.ts","./src/app/components/modal/print-dialog/lm-poll-and-print-dialog.component.ts","./src/app/components/modal/print-dialog/lm-poll-and-print-dialog.component.html","./src/app/components/modal/print-dialog/lm-print-dialog.service.ts","./src/app/components/modal/print-dialog/lm-print-request.service.ts","./src/app/components/modal/print-dialog/pdf/lm-print-pdf-dialog.component.ts","./src/app/components/modal/print-dialog/pdf/lm-print-pdf-dialog.component.html","./src/app/components/modal/print-dialog/schedule/lm-schedule-dialog.service.ts","./src/app/components/modal/saved-search/index.ts","./src/app/components/modal/saved-search/lm-saved-search-manage.component.ts","./src/app/components/modal/saved-search/lm-saved-search.component.ts","./src/app/components/modal/saved-search/lm-saved-search.component.html","./src/app/components/modal/saved-search/lm-saved-search.service.ts","./src/app/components/navigation/index.ts","./src/app/components/navigation/lm-navigation.component.ts","./src/app/components/navigation/lm-navigation.service.ts","./src/app/components/notification/index.ts","./src/app/components/notification/lm-notification.component.ts","./src/app/components/notification/lm-notification.component.html","./src/app/components/page/index.ts","./src/app/components/page/lm-page-pane-dashboard.component.ts","./src/app/components/page/lm-page-pane-dashboard.component.html","./src/app/components/page/lm-page-pane-list.component.ts","./src/app/components/page/lm-page-pane-list.component.html","./src/app/components/page/lm-page-pane-menu.component.ts","./src/app/components/page/lm-page-pane-menu.component.html","./src/app/components/page/lm-page-pane-multi-list.component.ts","./src/app/components/page/lm-page-pane-multi-list.component.html","./src/app/components/page/lm-page-pane-url.component.ts","./src/app/components/page/lm-page-panel-helper.service.ts","./src/app/components/page/lm-page-panel.component.ts","./src/app/components/page/lm-page-panel.component.html","./src/app/components/page/lm-page-spec-util.service.ts","./src/app/components/page/lm-page-toolbar.service.ts","./src/app/components/page/lm-page.component.ts","./src/app/components/page/lm-page.component.html","./src/app/components/routes/index.ts","./src/app/components/routes/lm-default-route.component.ts","./src/app/components/routes/lm-home-route.component.ts","./src/app/components/toolbar/index.ts","./src/app/components/toolbar/lm-dynamic-toolbar.service.ts","./src/app/components/toolbar/lm-toolbar-service-adapter.ts","./src/app/components/toolbar/lm-toolbar-service.base.ts","./src/app/components/toolbar/lm-toolbar.component.ts","./src/app/components/toolbar/lm-toolbar.component.html","./src/app/components/twelvecolumngrid/index.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-grid.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-grid.component.html","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-base.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-card.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-card.component.html","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-form-template.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-form-template.component.html","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-form.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-form.component.html","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-list.component.ts","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-list.component.html","./src/app/components/twelvecolumngrid/lm-twelve-column-panel-url.component.ts","./src/app/components/visiblewhen/index.ts","./src/app/components/visiblewhen/lm-visiblewhen.directive.ts","./src/app/deactivate-guard.ts","./src/app/drawer/breakpoint-change.service.ts","./src/app/drawer/drawer.module.ts","./src/app/drawer/lm-drawer-content/lm-drawer-content.component.ts","./src/app/drawer/lm-drawer-side-collapsed/lm-drawer-side-collapsed.component.ts","./src/app/drawer/lm-drawer-side/lm-drawer-side.component.ts","./src/app/drawer/lm-drawer/lm-drawer.component.ts","./src/app/http.intercepter.ts","./src/app/lm-common.module.ts","./src/app/lm-route-resuse-strategy.ts","./src/app/pipes/capitalize.pipe.ts","./src/app/pipes/index.ts","./src/app/pipes/keys.pipe.ts","./src/app/pipes/lm-boolean-as-switch-tooltip.pipe.ts","./src/app/pipes/lm-boolean-as-text.pipe.ts","./src/app/pipes/lm-field-operator.pipe.ts","./src/app/pipes/lm-format-label.pipe.ts","./src/app/pipes/lm-format-message.pipe.ts","./src/app/pipes/lm-model-field-is-blank.pipe.ts","./src/app/pipes/lm-model-field-to-display.pipe.ts","./src/app/pipes/lm-rich-text.pipe.ts","./src/app/pipes/lm-state-as-text.pipe.ts","./src/app/pipes/safeUrl.pipe.ts","./src/app/pipes/translate.pipe.ts","./src/app/resources/action.resource.ts","./src/app/resources/bidrill.resource.ts","./src/app/resources/document.resource.ts","./src/app/resources/drill.resource.ts","./src/app/resources/form.resource.ts","./src/app/resources/image.resource.ts","./src/app/resources/index.ts","./src/app/resources/keyed.resource.ts","./src/app/resources/list.resource.ts","./src/app/resources/menu.resource.ts","./src/app/resources/navigation.resource.ts","./src/app/resources/page.resource.ts","./src/app/resources/relation.resource.ts","./src/app/resources/resource.ts","./src/app/resources/select.resource.ts","./src/app/resources/sub-panel.resource.ts","./src/app/services/file-upload/lm-file-upload-progress.component.ts","./src/app/services/file-upload/lm-file-upload-progress.component.html","./src/app/services/file-upload/lm-fileupload.service.ts","./src/app/services/http.csrf.interceptor.service.ts","./src/app/services/http.sso.service.ts","./src/app/services/index.ts","./src/app/services/lm-action.service.ts","./src/app/services/lm-audit-log.service.ts","./src/app/services/lm-busyindicator.service.ts","./src/app/services/lm-componentinfo.service.ts","./src/app/services/lm-compound-field.service.ts","./src/app/services/lm-configuration.service.ts","./src/app/services/lm-context.service.ts","./src/app/services/lm-ctrl-shift-click.service.ts","./src/app/services/lm-data.service.ts","./src/app/services/lm-drill.service.ts","./src/app/services/lm-global-persistence.service.ts","./src/app/services/lm-harness.service.ts","./src/app/services/lm-html-url-doc.service.ts","./src/app/services/lm-http-intercepter.service.ts","./src/app/services/lm-keyboard-shortcut.service.ts","./src/app/services/lm-locale-initializer.service.ts","./src/app/services/lm-logger.service.ts","./src/app/services/lm-personalization-persistence.service.ts","./src/app/services/lm-relatedreport.service.ts","./src/app/services/lm-roamingUIProfile.service.ts","./src/app/services/lm-route-component.service.ts","./src/app/services/lm-spec.service.ts","./src/app/services/lm-state-helper.service.ts","./src/app/services/lm-state-persistence.service.ts","./src/app/services/lm-url-info-builder.service.ts","./src/app/services/lm-web-app-access.service.ts","./src/app/services/utils/http.param.encoder.service.ts","./src/app/services/utils/index.ts","./src/app/services/utils/lm-error-util.service.ts","./src/app/services/utils/lm-field-util.service.ts","./src/app/services/utils/lm-format-util.service.ts","./src/app/services/utils/lm-modal.service.ts","./src/app/services/utils/lm-url-util.service.ts","./src/app/states/index.ts","./src/app/states/models/index.ts","./src/app/states/models/lm-form-personalization.model.ts","./src/app/states/models/lm-form-state.model.ts","./src/app/states/models/lm-page-personalization.model.ts","./src/app/states/services/index.ts","./src/app/states/services/lm-form-personalization.service.ts","./src/app/states/services/lm-form-state.service.ts","./src/app/states/services/lm-global-personalization.service.ts","./src/app/states/services/lm-global-state.service.ts","./src/app/states/services/lm-global-storage.service.ts","./src/app/states/services/lm-list-personalization.service.ts","./src/app/states/services/lm-list-state.service.ts","./src/app/states/services/lm-page-personalization.service.ts","./src/app/states/services/lm-page-state.service.ts","./src/app/transaction/index.ts","./src/app/transaction/lm-transaction-state.ts","./src/app/transaction/lm-transaction.service.ts","./src/app/transaction/transaction.module.ts","./src/app/types/lm-worker.ts","./src/app/utils/app.constants.ts","./src/app/utils/index.ts","./src/app/utils/lm-browser-util.service.ts","./src/app/utils/lm-common-util.service.ts","./src/app/utils/lm-condition-util.service.ts","./src/app/utils/lm-context-util.service.ts","./src/app/utils/lm-global-util.service.ts","./src/app/utils/lm-locale-util.service.ts","./src/app/utils/lm-multi-list-save-worker.ts","./src/app/utils/lm-unique-id.service.ts","./src/directives/lm-new-theme-hover.directive.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/d3-array/src/array.js","./node_modules/d3-array/src/ascending.js","./node_modules/d3-array/src/bisect.js","./node_modules/d3-array/src/bisector.js","./node_modules/d3-array/src/constant.js","./node_modules/d3-array/src/cross.js","./node_modules/d3-array/src/descending.js","./node_modules/d3-array/src/deviation.js","./node_modules/d3-array/src/extent.js","./node_modules/d3-array/src/histogram.js","./node_modules/d3-array/src/identity.js","./node_modules/d3-array/src/index.js","./node_modules/d3-array/src/max.js","./node_modules/d3-array/src/mean.js","./node_modules/d3-array/src/median.js","./node_modules/d3-array/src/merge.js","./node_modules/d3-array/src/min.js","./node_modules/d3-array/src/number.js","./node_modules/d3-array/src/pairs.js","./node_modules/d3-array/src/permute.js","./node_modules/d3-array/src/quantile.js","./node_modules/d3-array/src/range.js","./node_modules/d3-array/src/scan.js","./node_modules/d3-array/src/shuffle.js","./node_modules/d3-array/src/sum.js","./node_modules/d3-array/src/threshold/freedmanDiaconis.js","./node_modules/d3-array/src/threshold/scott.js","./node_modules/d3-array/src/threshold/sturges.js","./node_modules/d3-array/src/ticks.js","./node_modules/d3-array/src/transpose.js","./node_modules/d3-array/src/variance.js","./node_modules/d3-array/src/zip.js","./node_modules/d3-axis/src/array.js","./node_modules/d3-axis/src/axis.js","./node_modules/d3-axis/src/identity.js","./node_modules/d3-axis/src/index.js","./node_modules/d3-brush/src/brush.js","./node_modules/d3-brush/src/constant.js","./node_modules/d3-brush/src/event.js","./node_modules/d3-brush/src/index.js","./node_modules/d3-brush/src/noevent.js","./node_modules/d3-chord/src/array.js","./node_modules/d3-chord/src/chord.js","./node_modules/d3-chord/src/constant.js","./node_modules/d3-chord/src/index.js","./node_modules/d3-chord/src/math.js","./node_modules/d3-chord/src/ribbon.js","./node_modules/d3-collection/src/entries.js","./node_modules/d3-collection/src/index.js","./node_modules/d3-collection/src/keys.js","./node_modules/d3-collection/src/map.js","./node_modules/d3-collection/src/nest.js","./node_modules/d3-collection/src/set.js","./node_modules/d3-collection/src/values.js","./node_modules/d3-color/src/color.js","./node_modules/d3-color/src/cubehelix.js","./node_modules/d3-color/src/define.js","./node_modules/d3-color/src/index.js","./node_modules/d3-color/src/lab.js","./node_modules/d3-color/src/math.js","./node_modules/d3-contour/src/area.js","./node_modules/d3-contour/src/array.js","./node_modules/d3-contour/src/ascending.js","./node_modules/d3-contour/src/blur.js","./node_modules/d3-contour/src/constant.js","./node_modules/d3-contour/src/contains.js","./node_modules/d3-contour/src/contours.js","./node_modules/d3-contour/src/density.js","./node_modules/d3-contour/src/index.js","./node_modules/d3-contour/src/noop.js","./node_modules/d3-dispatch/src/dispatch.js","./node_modules/d3-dispatch/src/index.js","./node_modules/d3-drag/src/constant.js","./node_modules/d3-drag/src/drag.js","./node_modules/d3-drag/src/event.js","./node_modules/d3-drag/src/index.js","./node_modules/d3-drag/src/nodrag.js","./node_modules/d3-drag/src/noevent.js","./node_modules/d3-dsv/src/autoType.js","./node_modules/d3-dsv/src/csv.js","./node_modules/d3-dsv/src/dsv.js","./node_modules/d3-dsv/src/index.js","./node_modules/d3-dsv/src/tsv.js","./node_modules/d3-ease/src/back.js","./node_modules/d3-ease/src/bounce.js","./node_modules/d3-ease/src/circle.js","./node_modules/d3-ease/src/cubic.js","./node_modules/d3-ease/src/elastic.js","./node_modules/d3-ease/src/exp.js","./node_modules/d3-ease/src/index.js","./node_modules/d3-ease/src/linear.js","./node_modules/d3-ease/src/math.js","./node_modules/d3-ease/src/poly.js","./node_modules/d3-ease/src/quad.js","./node_modules/d3-ease/src/sin.js","./node_modules/d3-fetch/src/blob.js","./node_modules/d3-fetch/src/buffer.js","./node_modules/d3-fetch/src/dsv.js","./node_modules/d3-fetch/src/image.js","./node_modules/d3-fetch/src/index.js","./node_modules/d3-fetch/src/json.js","./node_modules/d3-fetch/src/text.js","./node_modules/d3-fetch/src/xml.js","./node_modules/d3-force/src/center.js","./node_modules/d3-force/src/collide.js","./node_modules/d3-force/src/constant.js","./node_modules/d3-force/src/index.js","./node_modules/d3-force/src/jiggle.js","./node_modules/d3-force/src/link.js","./node_modules/d3-force/src/manyBody.js","./node_modules/d3-force/src/radial.js","./node_modules/d3-force/src/simulation.js","./node_modules/d3-force/src/x.js","./node_modules/d3-force/src/y.js","./node_modules/d3-format/src/defaultLocale.js","./node_modules/d3-format/src/exponent.js","./node_modules/d3-format/src/formatDecimal.js","./node_modules/d3-format/src/formatGroup.js","./node_modules/d3-format/src/formatNumerals.js","./node_modules/d3-format/src/formatPrefixAuto.js","./node_modules/d3-format/src/formatRounded.js","./node_modules/d3-format/src/formatSpecifier.js","./node_modules/d3-format/src/formatTrim.js","./node_modules/d3-format/src/formatTypes.js","./node_modules/d3-format/src/identity.js","./node_modules/d3-format/src/index.js","./node_modules/d3-format/src/locale.js","./node_modules/d3-format/src/precisionFixed.js","./node_modules/d3-format/src/precisionPrefix.js","./node_modules/d3-format/src/precisionRound.js","./node_modules/d3-geo/src/adder.js","./node_modules/d3-geo/src/area.js","./node_modules/d3-geo/src/bounds.js","./node_modules/d3-geo/src/cartesian.js","./node_modules/d3-geo/src/centroid.js","./node_modules/d3-geo/src/circle.js","./node_modules/d3-geo/src/clip/antimeridian.js","./node_modules/d3-geo/src/clip/buffer.js","./node_modules/d3-geo/src/clip/circle.js","./node_modules/d3-geo/src/clip/extent.js","./node_modules/d3-geo/src/clip/index.js","./node_modules/d3-geo/src/clip/line.js","./node_modules/d3-geo/src/clip/rectangle.js","./node_modules/d3-geo/src/clip/rejoin.js","./node_modules/d3-geo/src/compose.js","./node_modules/d3-geo/src/constant.js","./node_modules/d3-geo/src/contains.js","./node_modules/d3-geo/src/distance.js","./node_modules/d3-geo/src/graticule.js","./node_modules/d3-geo/src/identity.js","./node_modules/d3-geo/src/index.js","./node_modules/d3-geo/src/interpolate.js","./node_modules/d3-geo/src/length.js","./node_modules/d3-geo/src/math.js","./node_modules/d3-geo/src/noop.js","./node_modules/d3-geo/src/path/area.js","./node_modules/d3-geo/src/path/bounds.js","./node_modules/d3-geo/src/path/centroid.js","./node_modules/d3-geo/src/path/context.js","./node_modules/d3-geo/src/path/index.js","./node_modules/d3-geo/src/path/measure.js","./node_modules/d3-geo/src/path/string.js","./node_modules/d3-geo/src/pointEqual.js","./node_modules/d3-geo/src/polygonContains.js","./node_modules/d3-geo/src/projection/albers.js","./node_modules/d3-geo/src/projection/albersUsa.js","./node_modules/d3-geo/src/projection/azimuthal.js","./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","./node_modules/d3-geo/src/projection/conic.js","./node_modules/d3-geo/src/projection/conicConformal.js","./node_modules/d3-geo/src/projection/conicEqualArea.js","./node_modules/d3-geo/src/projection/conicEquidistant.js","./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","./node_modules/d3-geo/src/projection/equalEarth.js","./node_modules/d3-geo/src/projection/equirectangular.js","./node_modules/d3-geo/src/projection/fit.js","./node_modules/d3-geo/src/projection/gnomonic.js","./node_modules/d3-geo/src/projection/identity.js","./node_modules/d3-geo/src/projection/index.js","./node_modules/d3-geo/src/projection/mercator.js","./node_modules/d3-geo/src/projection/naturalEarth1.js","./node_modules/d3-geo/src/projection/orthographic.js","./node_modules/d3-geo/src/projection/resample.js","./node_modules/d3-geo/src/projection/stereographic.js","./node_modules/d3-geo/src/projection/transverseMercator.js","./node_modules/d3-geo/src/rotation.js","./node_modules/d3-geo/src/stream.js","./node_modules/d3-geo/src/transform.js","./node_modules/d3-hierarchy/src/accessors.js","./node_modules/d3-hierarchy/src/array.js","./node_modules/d3-hierarchy/src/cluster.js","./node_modules/d3-hierarchy/src/constant.js","./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","./node_modules/d3-hierarchy/src/hierarchy/count.js","./node_modules/d3-hierarchy/src/hierarchy/descendants.js","./node_modules/d3-hierarchy/src/hierarchy/each.js","./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","./node_modules/d3-hierarchy/src/hierarchy/index.js","./node_modules/d3-hierarchy/src/hierarchy/leaves.js","./node_modules/d3-hierarchy/src/hierarchy/links.js","./node_modules/d3-hierarchy/src/hierarchy/path.js","./node_modules/d3-hierarchy/src/hierarchy/sort.js","./node_modules/d3-hierarchy/src/hierarchy/sum.js","./node_modules/d3-hierarchy/src/index.js","./node_modules/d3-hierarchy/src/pack/enclose.js","./node_modules/d3-hierarchy/src/pack/index.js","./node_modules/d3-hierarchy/src/pack/siblings.js","./node_modules/d3-hierarchy/src/partition.js","./node_modules/d3-hierarchy/src/stratify.js","./node_modules/d3-hierarchy/src/tree.js","./node_modules/d3-hierarchy/src/treemap/binary.js","./node_modules/d3-hierarchy/src/treemap/dice.js","./node_modules/d3-hierarchy/src/treemap/index.js","./node_modules/d3-hierarchy/src/treemap/resquarify.js","./node_modules/d3-hierarchy/src/treemap/round.js","./node_modules/d3-hierarchy/src/treemap/slice.js","./node_modules/d3-hierarchy/src/treemap/sliceDice.js","./node_modules/d3-hierarchy/src/treemap/squarify.js","./node_modules/d3-interpolate/src/array.js","./node_modules/d3-interpolate/src/basis.js","./node_modules/d3-interpolate/src/basisClosed.js","./node_modules/d3-interpolate/src/color.js","./node_modules/d3-interpolate/src/constant.js","./node_modules/d3-interpolate/src/cubehelix.js","./node_modules/d3-interpolate/src/date.js","./node_modules/d3-interpolate/src/discrete.js","./node_modules/d3-interpolate/src/hcl.js","./node_modules/d3-interpolate/src/hsl.js","./node_modules/d3-interpolate/src/hue.js","./node_modules/d3-interpolate/src/index.js","./node_modules/d3-interpolate/src/lab.js","./node_modules/d3-interpolate/src/number.js","./node_modules/d3-interpolate/src/numberArray.js","./node_modules/d3-interpolate/src/object.js","./node_modules/d3-interpolate/src/piecewise.js","./node_modules/d3-interpolate/src/quantize.js","./node_modules/d3-interpolate/src/rgb.js","./node_modules/d3-interpolate/src/round.js","./node_modules/d3-interpolate/src/string.js","./node_modules/d3-interpolate/src/transform/decompose.js","./node_modules/d3-interpolate/src/transform/index.js","./node_modules/d3-interpolate/src/transform/parse.js","./node_modules/d3-interpolate/src/value.js","./node_modules/d3-interpolate/src/zoom.js","./node_modules/d3-path/src/index.js","./node_modules/d3-path/src/path.js","./node_modules/d3-polygon/src/area.js","./node_modules/d3-polygon/src/centroid.js","./node_modules/d3-polygon/src/contains.js","./node_modules/d3-polygon/src/cross.js","./node_modules/d3-polygon/src/hull.js","./node_modules/d3-polygon/src/index.js","./node_modules/d3-polygon/src/length.js","./node_modules/d3-quadtree/src/add.js","./node_modules/d3-quadtree/src/cover.js","./node_modules/d3-quadtree/src/data.js","./node_modules/d3-quadtree/src/extent.js","./node_modules/d3-quadtree/src/find.js","./node_modules/d3-quadtree/src/index.js","./node_modules/d3-quadtree/src/quad.js","./node_modules/d3-quadtree/src/quadtree.js","./node_modules/d3-quadtree/src/remove.js","./node_modules/d3-quadtree/src/root.js","./node_modules/d3-quadtree/src/size.js","./node_modules/d3-quadtree/src/visit.js","./node_modules/d3-quadtree/src/visitAfter.js","./node_modules/d3-quadtree/src/x.js","./node_modules/d3-quadtree/src/y.js","./node_modules/d3-random/src/bates.js","./node_modules/d3-random/src/defaultSource.js","./node_modules/d3-random/src/exponential.js","./node_modules/d3-random/src/index.js","./node_modules/d3-random/src/irwinHall.js","./node_modules/d3-random/src/logNormal.js","./node_modules/d3-random/src/normal.js","./node_modules/d3-random/src/uniform.js","./node_modules/d3-scale-chromatic/src/categorical/Accent.js","./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","./node_modules/d3-scale-chromatic/src/categorical/Paired.js","./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","./node_modules/d3-scale-chromatic/src/categorical/Set1.js","./node_modules/d3-scale-chromatic/src/categorical/Set2.js","./node_modules/d3-scale-chromatic/src/categorical/Set3.js","./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","./node_modules/d3-scale-chromatic/src/categorical/category10.js","./node_modules/d3-scale-chromatic/src/colors.js","./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","./node_modules/d3-scale-chromatic/src/index.js","./node_modules/d3-scale-chromatic/src/ramp.js","./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","./node_modules/d3-scale/src/array.js","./node_modules/d3-scale/src/band.js","./node_modules/d3-scale/src/constant.js","./node_modules/d3-scale/src/continuous.js","./node_modules/d3-scale/src/diverging.js","./node_modules/d3-scale/src/identity.js","./node_modules/d3-scale/src/index.js","./node_modules/d3-scale/src/init.js","./node_modules/d3-scale/src/linear.js","./node_modules/d3-scale/src/log.js","./node_modules/d3-scale/src/nice.js","./node_modules/d3-scale/src/number.js","./node_modules/d3-scale/src/ordinal.js","./node_modules/d3-scale/src/pow.js","./node_modules/d3-scale/src/quantile.js","./node_modules/d3-scale/src/quantize.js","./node_modules/d3-scale/src/sequential.js","./node_modules/d3-scale/src/sequentialQuantile.js","./node_modules/d3-scale/src/symlog.js","./node_modules/d3-scale/src/threshold.js","./node_modules/d3-scale/src/tickFormat.js","./node_modules/d3-scale/src/time.js","./node_modules/d3-scale/src/utcTime.js","./node_modules/d3-selection/src/constant.js","./node_modules/d3-selection/src/create.js","./node_modules/d3-selection/src/creator.js","./node_modules/d3-selection/src/index.js","./node_modules/d3-selection/src/local.js","./node_modules/d3-selection/src/matcher.js","./node_modules/d3-selection/src/mouse.js","./node_modules/d3-selection/src/namespace.js","./node_modules/d3-selection/src/namespaces.js","./node_modules/d3-selection/src/point.js","./node_modules/d3-selection/src/select.js","./node_modules/d3-selection/src/selectAll.js","./node_modules/d3-selection/src/selection/append.js","./node_modules/d3-selection/src/selection/attr.js","./node_modules/d3-selection/src/selection/call.js","./node_modules/d3-selection/src/selection/classed.js","./node_modules/d3-selection/src/selection/clone.js","./node_modules/d3-selection/src/selection/data.js","./node_modules/d3-selection/src/selection/datum.js","./node_modules/d3-selection/src/selection/dispatch.js","./node_modules/d3-selection/src/selection/each.js","./node_modules/d3-selection/src/selection/empty.js","./node_modules/d3-selection/src/selection/enter.js","./node_modules/d3-selection/src/selection/exit.js","./node_modules/d3-selection/src/selection/filter.js","./node_modules/d3-selection/src/selection/html.js","./node_modules/d3-selection/src/selection/index.js","./node_modules/d3-selection/src/selection/insert.js","./node_modules/d3-selection/src/selection/join.js","./node_modules/d3-selection/src/selection/lower.js","./node_modules/d3-selection/src/selection/merge.js","./node_modules/d3-selection/src/selection/node.js","./node_modules/d3-selection/src/selection/nodes.js","./node_modules/d3-selection/src/selection/on.js","./node_modules/d3-selection/src/selection/order.js","./node_modules/d3-selection/src/selection/property.js","./node_modules/d3-selection/src/selection/raise.js","./node_modules/d3-selection/src/selection/remove.js","./node_modules/d3-selection/src/selection/select.js","./node_modules/d3-selection/src/selection/selectAll.js","./node_modules/d3-selection/src/selection/size.js","./node_modules/d3-selection/src/selection/sort.js","./node_modules/d3-selection/src/selection/sparse.js","./node_modules/d3-selection/src/selection/style.js","./node_modules/d3-selection/src/selection/text.js","./node_modules/d3-selection/src/selector.js","./node_modules/d3-selection/src/selectorAll.js","./node_modules/d3-selection/src/sourceEvent.js","./node_modules/d3-selection/src/touch.js","./node_modules/d3-selection/src/touches.js","./node_modules/d3-selection/src/window.js","./node_modules/d3-shape/src/arc.js","./node_modules/d3-shape/src/area.js","./node_modules/d3-shape/src/areaRadial.js","./node_modules/d3-shape/src/array.js","./node_modules/d3-shape/src/constant.js","./node_modules/d3-shape/src/curve/basis.js","./node_modules/d3-shape/src/curve/basisClosed.js","./node_modules/d3-shape/src/curve/basisOpen.js","./node_modules/d3-shape/src/curve/bundle.js","./node_modules/d3-shape/src/curve/cardinal.js","./node_modules/d3-shape/src/curve/cardinalClosed.js","./node_modules/d3-shape/src/curve/cardinalOpen.js","./node_modules/d3-shape/src/curve/catmullRom.js","./node_modules/d3-shape/src/curve/catmullRomClosed.js","./node_modules/d3-shape/src/curve/catmullRomOpen.js","./node_modules/d3-shape/src/curve/linear.js","./node_modules/d3-shape/src/curve/linearClosed.js","./node_modules/d3-shape/src/curve/monotone.js","./node_modules/d3-shape/src/curve/natural.js","./node_modules/d3-shape/src/curve/radial.js","./node_modules/d3-shape/src/curve/step.js","./node_modules/d3-shape/src/descending.js","./node_modules/d3-shape/src/identity.js","./node_modules/d3-shape/src/index.js","./node_modules/d3-shape/src/line.js","./node_modules/d3-shape/src/lineRadial.js","./node_modules/d3-shape/src/link/index.js","./node_modules/d3-shape/src/math.js","./node_modules/d3-shape/src/noop.js","./node_modules/d3-shape/src/offset/diverging.js","./node_modules/d3-shape/src/offset/expand.js","./node_modules/d3-shape/src/offset/none.js","./node_modules/d3-shape/src/offset/silhouette.js","./node_modules/d3-shape/src/offset/wiggle.js","./node_modules/d3-shape/src/order/appearance.js","./node_modules/d3-shape/src/order/ascending.js","./node_modules/d3-shape/src/order/descending.js","./node_modules/d3-shape/src/order/insideOut.js","./node_modules/d3-shape/src/order/none.js","./node_modules/d3-shape/src/order/reverse.js","./node_modules/d3-shape/src/pie.js","./node_modules/d3-shape/src/point.js","./node_modules/d3-shape/src/pointRadial.js","./node_modules/d3-shape/src/stack.js","./node_modules/d3-shape/src/symbol.js","./node_modules/d3-shape/src/symbol/circle.js","./node_modules/d3-shape/src/symbol/cross.js","./node_modules/d3-shape/src/symbol/diamond.js","./node_modules/d3-shape/src/symbol/square.js","./node_modules/d3-shape/src/symbol/star.js","./node_modules/d3-shape/src/symbol/triangle.js","./node_modules/d3-shape/src/symbol/wye.js","./node_modules/d3-time-format/src/defaultLocale.js","./node_modules/d3-time-format/src/index.js","./node_modules/d3-time-format/src/isoFormat.js","./node_modules/d3-time-format/src/isoParse.js","./node_modules/d3-time-format/src/locale.js","./node_modules/d3-time/src/day.js","./node_modules/d3-time/src/duration.js","./node_modules/d3-time/src/hour.js","./node_modules/d3-time/src/index.js","./node_modules/d3-time/src/interval.js","./node_modules/d3-time/src/millisecond.js","./node_modules/d3-time/src/minute.js","./node_modules/d3-time/src/month.js","./node_modules/d3-time/src/second.js","./node_modules/d3-time/src/utcDay.js","./node_modules/d3-time/src/utcHour.js","./node_modules/d3-time/src/utcMinute.js","./node_modules/d3-time/src/utcMonth.js","./node_modules/d3-time/src/utcWeek.js","./node_modules/d3-time/src/utcYear.js","./node_modules/d3-time/src/week.js","./node_modules/d3-time/src/year.js","./node_modules/d3-timer/src/index.js","./node_modules/d3-timer/src/interval.js","./node_modules/d3-timer/src/timeout.js","./node_modules/d3-timer/src/timer.js","./node_modules/d3-transition/src/active.js","./node_modules/d3-transition/src/index.js","./node_modules/d3-transition/src/interrupt.js","./node_modules/d3-transition/src/selection/index.js","./node_modules/d3-transition/src/selection/interrupt.js","./node_modules/d3-transition/src/selection/transition.js","./node_modules/d3-transition/src/transition/attr.js","./node_modules/d3-transition/src/transition/attrTween.js","./node_modules/d3-transition/src/transition/delay.js","./node_modules/d3-transition/src/transition/duration.js","./node_modules/d3-transition/src/transition/ease.js","./node_modules/d3-transition/src/transition/end.js","./node_modules/d3-transition/src/transition/filter.js","./node_modules/d3-transition/src/transition/index.js","./node_modules/d3-transition/src/transition/interpolate.js","./node_modules/d3-transition/src/transition/merge.js","./node_modules/d3-transition/src/transition/on.js","./node_modules/d3-transition/src/transition/remove.js","./node_modules/d3-transition/src/transition/schedule.js","./node_modules/d3-transition/src/transition/select.js","./node_modules/d3-transition/src/transition/selectAll.js","./node_modules/d3-transition/src/transition/selection.js","./node_modules/d3-transition/src/transition/style.js","./node_modules/d3-transition/src/transition/styleTween.js","./node_modules/d3-transition/src/transition/text.js","./node_modules/d3-transition/src/transition/textTween.js","./node_modules/d3-transition/src/transition/transition.js","./node_modules/d3-transition/src/transition/tween.js","./node_modules/d3-voronoi/src/Beach.js","./node_modules/d3-voronoi/src/Cell.js","./node_modules/d3-voronoi/src/Circle.js","./node_modules/d3-voronoi/src/Diagram.js","./node_modules/d3-voronoi/src/Edge.js","./node_modules/d3-voronoi/src/RedBlackTree.js","./node_modules/d3-voronoi/src/constant.js","./node_modules/d3-voronoi/src/index.js","./node_modules/d3-voronoi/src/point.js","./node_modules/d3-voronoi/src/voronoi.js","./node_modules/d3-zoom/src/constant.js","./node_modules/d3-zoom/src/event.js","./node_modules/d3-zoom/src/index.js","./node_modules/d3-zoom/src/noevent.js","./node_modules/d3-zoom/src/transform.js","./node_modules/d3-zoom/src/zoom.js","./node_modules/d3/dist/package.js","./node_modules/d3/index.js","./node_modules/exifreader/src/byte-order.js","./node_modules/exifreader/src/constants.js","./node_modules/exifreader/src/dataview.js","./node_modules/exifreader/src/dom-parser.js","./node_modules/exifreader/src/errors.js","./node_modules/exifreader/src/exif-reader.js","./node_modules/exifreader/src/file-tags.js","./node_modules/exifreader/src/icc-tag-names.js","./node_modules/exifreader/src/icc-tags.js","./node_modules/exifreader/src/image-header-heic.js","./node_modules/exifreader/src/image-header-jpeg.js","./node_modules/exifreader/src/image-header-png.js","./node_modules/exifreader/src/image-header-tiff.js","./node_modules/exifreader/src/image-header-webp.js","./node_modules/exifreader/src/image-header.js","./node_modules/exifreader/src/iptc-tag-names.js","./node_modules/exifreader/src/iptc-tags.js","./node_modules/exifreader/src/png-file-tags.js","./node_modules/exifreader/src/tag-decoder.js","./node_modules/exifreader/src/tag-names-0th-ifd.js","./node_modules/exifreader/src/tag-names-common.js","./node_modules/exifreader/src/tag-names-exif-ifd.js","./node_modules/exifreader/src/tag-names-gps-ifd.js","./node_modules/exifreader/src/tag-names-interoperability-ifd.js","./node_modules/exifreader/src/tag-names-mpf-ifd.js","./node_modules/exifreader/src/tag-names-utils.js","./node_modules/exifreader/src/tag-names.js","./node_modules/exifreader/src/tags.js","./node_modules/exifreader/src/text-decoder.js","./node_modules/exifreader/src/thumbnail.js","./node_modules/exifreader/src/types.js","./node_modules/exifreader/src/utils.js","./node_modules/exifreader/src/xmp-tag-names.js","./node_modules/exifreader/src/xmp-tags.js","./node_modules/flatted/esm/index.js","./node_modules/lodash/lodash.js","./node_modules/lscache/lscache.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/url-template/lib/url-template.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/ids-enterprise-ng/fesm2015/ids-enterprise-ng.mjs","./node_modules/luxon/src/datetime.js","./node_modules/luxon/src/duration.js","./node_modules/luxon/src/errors.js","./node_modules/luxon/src/impl/conversions.js","./node_modules/luxon/src/impl/diff.js","./node_modules/luxon/src/impl/digits.js","./node_modules/luxon/src/impl/english.js","./node_modules/luxon/src/impl/formats.js","./node_modules/luxon/src/impl/formatter.js","./node_modules/luxon/src/impl/invalid.js","./node_modules/luxon/src/impl/locale.js","./node_modules/luxon/src/impl/regexParser.js","./node_modules/luxon/src/impl/tokenParser.js","./node_modules/luxon/src/impl/util.js","./node_modules/luxon/src/impl/zoneUtil.js","./node_modules/luxon/src/info.js","./node_modules/luxon/src/interval.js","./node_modules/luxon/src/luxon.js","./node_modules/luxon/src/settings.js","./node_modules/luxon/src/zone.js","./node_modules/luxon/src/zones/IANAZone.js","./node_modules/luxon/src/zones/fixedOffsetZone.js","./node_modules/luxon/src/zones/invalidZone.js","./node_modules/luxon/src/zones/systemZone.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/construct.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/createSuper.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/get.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/superPropBase.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/toArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"],"sourcesContent":["import { CanActivate } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ActivateGuard implements CanActivate {\n canActivate() {\n return true;\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { SohoApplicationMenuComponent, SohoBusyIndicatorDirective, SohoBusyIndicatorEvent, } from 'ids-enterprise-ng';\nimport {\n AppConstants,\n LMBrowserUtilService,\n LMCommonUtilService,\n LMConditionUtilService,\n LMContextUtilService,\n LMGlobalUtilService,\n LMLocaleUtilService,\n LMUniqueIdService,\n} from './utils';\nimport {\n LMAccessibleWebAppService,\n LMActionService,\n LMBusyIndicatorService,\n LMComponentInfoService,\n LMCompoundFieldService,\n LMConfigurationService,\n LMContextService,\n LMDataService,\n LMDrillService,\n LMErrorUtilService,\n LMFieldUtilService,\n LMFileUploadService,\n LMFormatUtilService,\n LMGlobalPersistenceService,\n LMHarnessService,\n LMLoggerService,\n LMPersonalizationPersistenceService,\n LMRelatedReportService,\n LMSpecService,\n LMStateHelperService,\n LMStatePersistenceService,\n LMUrlInfoBuilderService,\n LMUrlUtilService\n} from './services';\nimport {\n LMFormPersonalizationService,\n LMFormStateService,\n LMGlobalPersonalization,\n LMGlobalPersonalizationService,\n LMGlobalState,\n LMGlobalStateService,\n LMGlobalStorageService,\n LMListPersonalizationService,\n LMListStateService,\n LMPagePersonalizationService,\n} from './states';\nimport {\n LMActionFormDialogService,\n LMApplicationMenuAsOfDateDialogService,\n LMApplicationMenuHeaderComponentRef,\n LMApplicationMenuSearchComponent,\n LMApplicationMenuSearchService,\n LMApplicationMenuService,\n LMApplicationMenuTransactionService,\n LMApplicationMenuUserContextDialogService,\n LMBannerAsOfDateDialogService,\n LMBannerHeaderComponent,\n LMBannerHeaderComponentRef,\n LMBannerSearchService,\n LMBannerService,\n LMBannerTransactionService,\n LMBannerUserContextDialogService,\n LMCompactFormDialogService,\n LMComputeBuilderService,\n LMConfirmationMessageService,\n LMContextualActionPanelService,\n LMFieldPickerService,\n LMFormRequestService,\n LMFormSpecUtilService,\n LMHelperListDialogService,\n LMListActionUtilService,\n LMListContentFilterListUtilService,\n LMListGridPagingService,\n LMListGridUtilService,\n LMListTransactionService,\n LMListUtilService,\n LMLoginService,\n LMPrintDialogService,\n LMPrintRequestService,\n LMReportPersonalizationDialogService,\n LMResponseRequiredService,\n LMScheduleDialogService,\n LMSelectDialogService,\n LMSubFormDialogService\n} from './components';\nimport { LMFormTransactionService } from '@form/services/lm-form-transaction.service';\nimport { LMTransactionService } from './transaction';\n\nimport * as _ from 'lodash';\nimport { SaveRequired } from '@base/lm-base';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMListActionFormDialogService } from '@list/services/lm-list-action-form-dialog.service';\nimport { LMBannerNavComponent } from '@banner/lm-banner-nav.component';\nimport { LMPageStateService } from '@states/services/lm-page-state.service';\nimport { LMPageSpecUtilService } from '@page/lm-page-spec-util.service';\nimport { LMListSpecUtilService } from '@list/index';\nimport { LMBannerMenuService } from '@banner/lm-banner-menu.service';\nimport { LMAuditLogService } from '@services/lm-audit-log.service';\nimport { LMToolbarServiceAdapter } from '@toolbar/lm-toolbar-service-adapter';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMBannerSearchComponent } from '@banner/lm-banner-search.component';\nimport { LMListContentFilterListService } from '@list/services/lm-list-content-filterlist.service';\nimport { LMFieldOptionsToolbarService } from '@field/services';\nimport { LMThemeId, LMThemeService } from '@banner/lm-theme.service';\nimport { Router } from '@angular/router';\nimport { LMFilterBuilderService } from '@modal/filter-builder/services/lm-filter-builder.service';\nimport { UserWebRequestHttpInterceptor } from './http.intercepter';\nimport { LMHttpIntercepterService } from '@services/lm-http-intercepter.service';\nimport { LMLplEditorService } from '@lplEditor/lm-lpl-editor.service';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\nimport { LMCubeCellRelService } from '@modal/cube-cell-rel/services';\nimport { LMFieldValidatorService } from '@modal/lm-field-validator.service';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { LMProcessIndicatorService } from './components/field/processindicator/lm-process-indicator.service';\nimport { LMProcessIndicatorTooltipPipe } from './components/field/processindicator/lm-process-indicator-tooltip.pipe';\nimport { LMApplicationMenuComponent } from '@components/applicationmenu/menu';\nimport { LMApplicationMenuSubMenuService } from '@components/applicationmenu/submenu';\nimport { LMBusclassFieldService } from '@components/field/busclassfield/lm-busclassfield.service';\nimport { LMCaptchaControlService } from '@field/captchacontrol/lm-captcha-control.service';\nimport { LMListDropdownService } from '@components/lmlistdropdown';\n\nexport const appComponentProviders: any[] = [\n LMApplicationMenuAsOfDateDialogService,\n LMApplicationMenuHeaderComponentRef,\n LMApplicationMenuSubMenuService,\n LMApplicationMenuTransactionService,\n LMApplicationMenuService,\n LMApplicationMenuSearchService,\n LMApplicationMenuUserContextDialogService,\n LMRouteComponentService,\n LMHarnessService,\n LMAccessibleWebAppService,\n LMActionFormDialogService,\n LMActionService,\n LMAuditLogService,\n LMBannerAsOfDateDialogService,\n LMBannerHeaderComponentRef,\n LMBannerMenuService,\n LMBannerTransactionService,\n LMBannerService,\n LMBannerSearchService,\n LMBannerUserContextDialogService,\n LMGlobalPersonalizationService,\n LMGlobalStateService,\n LMBrowserUtilService,\n LMBusyIndicatorService,\n LMCommonUtilService,\n LMCompactFormDialogService,\n LMCompoundFieldService,\n\n LMConditionUtilService,\n LMConfirmationMessageService,\n LMContextUtilService,\n LMDataService,\n LMDrillService,\n LMErrorUtilService,\n LMContextualActionPanelService,\n\n LMFieldOptionsToolbarService,\n LMFieldUtilService,\n\n LMFieldPickerService,\n LMFilterBuilderService,\n\n LMFileUploadService,\n\n LMFormatUtilService,\n LMFormPersonalizationService,\n LMFormRequestService,\n LMFormSpecUtilService,\n LMFormStateService,\n LMFormTransactionService,\n\n LMGlobalPersonalizationService,\n LMGlobalStateService,\n LMGlobalStorageService,\n LMGlobalUtilService,\n LMHelperListDialogService,\n LMKeyboardShortcutService,\n\n LMContextualActionPanelService,\n LMListActionUtilService,\n LMListActionFormDialogService,\n LMListContentFilterListService,\n LMListContentFilterListUtilService,\n LMListGridPagingService,\n LMListGridUtilService,\n LMListPersonalizationService,\n LMListSpecUtilService,\n LMListStateService,\n LMListTransactionService,\n LMListUtilService,\n\n LMLocaleUtilService,\n LMLoggerService,\n LMLoginService,\n LMGlobalPersistenceService,\n LMNavigationService,\n\n LMPagePersonalizationService,\n LMPageSpecUtilService,\n LMPageStateService,\n\n LMPersonalizationPersistenceService,\n LMPrintDialogService,\n LMPrintRequestService,\n LMReportPersonalizationDialogService,\n LMResponseRequiredService,\n LMScheduleDialogService,\n LMSelectDialogService,\n LMSpecService,\n LMStatePersistenceService,\n LMStateHelperService,\n LMSubFormDialogService,\n LMToolbarServiceAdapter,\n LMThemeService,\n LMUrlInfoBuilderService,\n LMTransactionService,\n LMUrlUtilService,\n LMConfigurationService,\n LMRelatedReportService,\n LMComponentInfoService,\n LMUniqueIdService,\n UserWebRequestHttpInterceptor,\n LMLplEditorService,\n LMListDropdownService,\n LMCubeCellRelService,\n LMFieldValidatorService,\n LMComputeBuilderService,\n LMProcessIndicatorService,\n LMProcessIndicatorTooltipPipe,\n LMBusclassFieldService,\n LMCaptchaControlService\n];\n\nexport interface AppMenuComponent {\n version: 'v1' | 'v2';\n component: LMBannerNavComponent | LMApplicationMenuComponent;\n header: ElementRef;\n // eslint-disable-next-line @typescript-eslint/ban-types\n loadWebAppMenu: Function;\n menuSpecs: Array;\n}\n\nexport interface AppMenuSearchComponent {\n version: 'v1' | 'v2';\n component: LMBannerSearchComponent | LMApplicationMenuSearchComponent;\n}\n\n@Component({\n selector: 'lm-app',\n styleUrls: [ 'app.component.scss' ],\n templateUrl: 'app.component.html'\n})\nexport class AppComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n @ViewChild(LMBaseComponent) private baseComponent: LMBaseComponent;\n @ViewChild('SohoApplicationMenu') private sohoApplicationMenuComponent: SohoApplicationMenuComponent;\n @ViewChild('SohoApplicationMenuSearch') private sohoApplicationMenuSearchComponent: SohoApplicationMenuComponent;\n @ViewChild(LMBannerHeaderComponent) private _bannerHeaderComponent: LMBannerHeaderComponent;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(LMBannerNavComponent) private _bannerNavComponent: LMBannerNavComponent;\n @ViewChild(LMApplicationMenuComponent) private applicationMenuComponent: LMApplicationMenuComponent;\n @ViewChild(LMBannerSearchComponent) private _bannerSearchComponent: LMBannerSearchComponent;\n @ViewChild(LMApplicationMenuSearchComponent) private applicationMenuSearchComponent: LMApplicationMenuSearchComponent;\n\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeHolder: ViewContainerRef;\n @ViewChild('fullmaincontent', { read: ViewContainerRef, static: true }) fullmaincontent: ViewContainerRef;\n\n @HostBinding('class.no-scroll') get disallowOverflow() {\n return this.noScroll;\n };\n\n @HostBinding('class.modal-engaged') get modalEngaged() {\n return this.showOverlay;\n };\n\n @HostBinding('class.harness_3_5') get xiHarness() {\n return !this.isXiHarness;\n };\n\n @HostBinding('class.hasHeaderTabs') get headerTabs() {\n return this.hasHeaderTabs;\n };\n\n @HostListener('window:beforeunload', [ '$event' ]) beforeUnloadHander(event) {\n // let dialogText = 'Dialog text here';\n // event.returnValue = dialogText;\n console.log('@HostListener(\"window:beforeunload)\"');\n const component: SaveRequired = this.getRouteComponent();\n // todo sjw lets use an interface here that the top level components must implement.\n // todo sjw saveComponentState isn't generic enough, maybe componentWillUnload()??\n if (component) {\n component.saveComponentState(true);\n const isSave = !component.checkSaveRequired();\n return isSave;\n } else {\n // when component is null, since it's not a router outlet like access denied, returns true so the dialog is not prompted\n return true;\n }\n }\n\n @HostListener('document:keydown', [ '$event' ]) onKeyDown(e) {\n // TODO check to make sure a modal isn't open.\n if (!this.hideAppMenu) {\n const key = this.lmKeyboardShortcutService.onKeyDown(e);\n if (!key) {\n return;\n }\n\n if (key === LMKeyType.MENU) {\n if (this.sohoApplicationMenuSearchComponent && this.sohoApplicationMenuSearchComponent.isOpen()) {\n this.menuSearchMode = false;\n this.sohoApplicationMenuComponent.triggers = [ '.application-menu-trigger' ];\n this.sohoApplicationMenuComponent.openMenu(undefined, true, undefined);\n } else {\n if (this.sohoApplicationMenuComponent.isOpen()) {\n this.openOnLarge = false;\n this.sohoApplicationMenuComponent.closeMenu();\n } else {\n this.sohoApplicationMenuComponent.triggers = [ '.application-menu-trigger' ];\n // LMCLIENT-29807 appear to be hitting a timing issue when doing the openMenu. added setTimeout().\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.sohoApplicationMenuComponent.openMenu(undefined, true, undefined);\n }, 1);\n });\n }\n }\n }\n }\n }\n\n private showOverlay = false;\n private noScroll = true;\n\n public hideAppMenu = false;\n public hideTitle = false;\n public inMingleInbox = false;\n public inMingleWidget = false;\n public isXiFull = false;\n public isXiHarness = false;\n public is3xHarness = false;\n public hasHeaderTabs = false;\n public webAppsLoaded = false;\n public accessibleWebApps: LMWebAppSpec[];\n public searchString: string;\n public localeLoaded = false;\n public menuSearchMode = false;\n public menuSearchResultsByWebApp: LMBannerSearchResults;\n public dataSearchResults: Array;\n public reportSearchResults: Array;\n public menuSpecsByWebApp: Array; // todo: type me!\n public inUpliftTheme = false;\n public asOfDate: string;\n public showDeletedRecords: boolean;\n public useFullPageScrolling = false;\n private fPSChanged = false;\n private m_useFPScrolling = false;\n public showViewMoreNav = false;\n public onMobile = true;\n public openOnLarge;\n public uiLoadingIndicatorTimeout = 0;\n public applyColorToMenu = true;\n\n /**\n * V1 = Original banner menu\n * v2 = New application menu\n */\n public menuIsV1 = false;\n public menuIsV2 = false;\n\n public skipToMainContentLabel = 'skip to main content'; // todo i18n me!\n\n private globalState: LMGlobalState;\n private lmKeyDownObservable: Observable;\n private takeUntilSubject$: Subject;\n\n constructor(\n private location: Location,\n private ngZone: NgZone,\n private router: Router,\n private lmAccessibleWebAppService: LMAccessibleWebAppService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n private lmContextUtilService: LMContextUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmHarnessService: LMHarnessService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private currentComponent: LMRouteComponentService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmGlobalStateService: LMGlobalStateService,\n private lmLoggerService: LMLoggerService,\n private lmThemeService: LMThemeService,\n private lmKeyboardShortcutService: LMKeyboardShortcutService,\n private lmHttpIntercepterService: LMHttpIntercepterService,\n private lmBrowserUtilService: LMBrowserUtilService,\n private lmBannerService: LMBannerService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmApplicationMenuService: LMApplicationMenuService\n ) {\n this.menuIsV1 = this.lmContextService.isApplicationMenuV1();\n this.menuIsV2 = this.lmContextService.isApplicationMenuV2();\n\n // Method Cypress will call\n if ((window as any).Cypress) {\n (window as any).cypressNavigateByUrl = (url: string) => this.cypressNavigateByUrl(url);\n }\n\n // --------------------------------------------------------------------\n // bootstrap values sent in the html file into a these services.\n // This allows us to mock these services for testing.\n // --------------------------------------------------------------------\n this.lmBusyIndicatorService.appComponent = this;\n\n this.lmUrlUtilService.setBannerSpecUrlTemplate(bannerSpecUrl);\n this.lmUrlUtilService.setAccessibleWebAppsUrlTemplate(accessibleWebAppsUrl);\n\n this.hideAppMenu = this.lmContextService.inMingleWidget() || this.lmContextService.inMingleInbox() || this.lmContextService.isHideMenuBar();\n this.hideTitle = this.lmContextService.isHideTitlebar();\n this.isXiFull = this.lmHarnessService.isXiFull();\n this.isXiHarness = this.lmHarnessService.isXiHarness();\n this.is3xHarness = this.lmHarnessService.is3xHarness();\n this.inMingleWidget = this.lmContextService.inMingleWidget();\n this.inMingleInbox = this.lmContextService.inMingleInbox();\n this.onMobile = this.lmContextService.isMobileDevice();\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n\n // load global state here as getInitialAsOfDate needs it.\n this.loadGlobalState();\n\n // get the initial as of date based on the bootstrap html context object\n // or the as of date in global state.\n this.asOfDate = this.getInitialAsOfDate();\n this.checkAsOfDateInPast(this.asOfDate);\n this.setupShowDeletedRecords();\n\n // todo refactor asof date once the new spec urls are solely in place.\n // once we refactor to only send a asofdate (and not a csk.asofdate) on data urls,\n // we should only need to the commented code below to deal with the initial setting\n // of the asofdate from the bootstrap global context\n // // If asofdate is set it means it came in from a url param through the bootstrap global context.\n // // in that case replace the url in the history so csk.asofdate is no longer on it.\n // // We need this to avoid the user being able to go back to a url that has as of date set on it.\n // const newUrl = this.lmUrlUtilService.removeParam(window.location.href, AppConstants.PARAM_CSK_ASOFDATE);\n // this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(newUrl));\n\n // todo refactor asof date once the new spec urls are solely in place.\n // this code shoudl not be needed once we refactor to only send a asofdate\n // (and not a csk.asofdate) on data urls.\n // ensure that csk.asofdate is always removed from the browser\n // url when using server side generated spec urls\n\n this.location.onUrlChange(url => {\n if (this.lmUrlUtilService.hasParam(url, AppConstants.PARAM_CSK_ASOFDATE)\n || this.lmUrlUtilService.hasParam(url, AppConstants.PARAM_CSK_SHOWDELETEDRECORDS)) {\n const newUrl = this.lmUrlUtilService.removeParams(url, [ AppConstants.PARAM_CSK_ASOFDATE, AppConstants.PARAM_CSK_SHOWDELETEDRECORDS ]);\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(newUrl));\n }\n\n if (!this.hideAppMenu) {\n this.syncWebappMenu(url);\n }\n });\n\n const options = [\n ...(this.isXiHarness ? [ 'isXiHarness', true ] : []),\n ...(this.is3xHarness ? [ 'is3xHarness', true ] : []),\n ...(this.inMingleWidget ? [ 'inMingleWidget', true ] : [])\n ];\n\n this.lmLoggerService.log([ 'Starting Infor Landmark Xi', new Date(), ... options ]);\n\n if (this.inMingleWidget) {\n document.getElementsByTagName('body')[ 0 ].classList.add('in-mingle-widget');\n }\n\n if (this.lmContextService.inMingle()) {\n this.takeUntilSubject$ = new Subject();\n }\n\n // ------------------------------------------------------------\n // lmUrlUtilService must have the accessibleWebAppurl set\n // before this can be called.\n // ------------------------------------------------------------\n this.lmAccessibleWebAppService.getAccessibleApps().subscribe((response: any) => {\n this.lmContextService.setAccessibleWebApps(response);\n try {\n this.lmContextService.getCurrentWebAppSpec();\n this.webAppsLoaded = true;\n } catch (e) {\n this.lmErrorUtilService.showAccessDeniedError(e, this.placeHolder);\n }\n },\n (error: any) => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n });\n\n this.lmHttpIntercepterService.run(this.lmContextService.getContext());\n }\n\n public cypressNavigateByUrl(url: string) {\n this.ngZone.run(() => {\n // this.lmGlobalUtilService.navigate(url)\n this.router.navigateByUrl(url);\n });\n }\n\n /**\n * returns an initial as of date of either what's passed into the bootstrap\n * html through a csk.asofdate param or what's in the LMGlobalState object.\n * If the date of the csk doesn't match teh date of globalstate object then\n * the csk will be used and the global state will be updated.\n */\n private getInitialAsOfDate(): string {\n const ctxAsOfDate = this.lmContextService.getAsOfDate();\n\n // ------------------------------------------------------------------\n // if state is disabled then never use the asofdate from state.\n // ------------------------------------------------------------------\n if (this.lmContextService.disablePageState()) {\n return ctxAsOfDate || '';\n }\n\n // ------------------------------------------------------------------\n // if there is an asofdate in the context then use that.\n // ------------------------------------------------------------------\n if (ctxAsOfDate) {\n if (!this.globalState.asOfDate || this.globalState.asOfDate !== ctxAsOfDate) {\n // ------------------------------------------------------------------\n // if there is not a globalState AsOfDate ore it doesn't match\n // the ctxAsOfDate then update the globalState with the new value\n // ------------------------------------------------------------------\n this.globalState.asOfDate = ctxAsOfDate;\n this.saveGlobalState();\n }\n return ctxAsOfDate;\n }\n\n // ------------------------------------------------------------------\n // if not in the context but in global state then use that.\n // ------------------------------------------------------------------\n if (this.globalState.asOfDate) {\n this.lmContextService.setAsOfDate(this.globalState.asOfDate);\n return this.globalState.asOfDate;\n }\n\n return '';\n }\n\n /**\n * returns an initial showRecordsDoNotExist of either what's passed into the bootstrap\n * html through a csk param or what's in the LMGlobalState object.\n */\n private setupShowDeletedRecords() {\n if (!this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_ShowDeletedRecords)) {\n return false;\n }\n\n this.showDeletedRecords = this.globalState.showdeletedrecords;\n this.lmContextService.setShowDeletedRecords(this.showDeletedRecords);\n }\n\n ngOnInit() {\n this.setPersonalizations();\n this.searchString = Soho.Locale.translate('Search');\n }\n\n ngAfterViewInit() {\n /**\n * ngAfterViewInit is executed outside the angular zone.\n * Must be placed in a timeout so that an openOnLarge change will\n * get picked up by change detection.\n */\n setTimeout(() => this.setMenuPersonalization());\n\n /**\n * hookup the app menu trigger once the afterViewInit is called. This will\n * ensure that the lm-toolbar has had a chance to create the application-menu-trugger\n * button.\n */\n if (!this.inMingleWidget && this.sohoApplicationMenuComponent && !this.lmContextService.isHideMenuBar()) {\n this.sohoApplicationMenuComponent.triggers = [ '.application-menu-trigger' ];\n }\n\n if (this.lmBrowserUtilService.isIE11 && !this.lmContextService.inMingle()) {\n const title = Soho.Locale.translate('UnsupportedBrowser');\n const message = Soho.Locale.translate('UnsupportedBrowserMsg');\n this.lmGlobalUtilService.displayToastMessage(title, message, 'UnsupportedBrowser');\n }\n\n // Listen to keydown to set mingle activity cookie\n if (this.lmContextService.inMingle()) {\n this.lmKeyDownObservable = fromEvent(document, 'keypress');\n this.lmKeyDownObservable.pipe(takeUntil(this.takeUntilSubject$), debounceTime(3000)).subscribe(() => {\n this.lmContextUtilService.setMingleActivityCookie();\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.fPSChanged) {\n this.fPSChanged = false;\n\n if (this.useFullPageScrolling !== this.m_useFPScrolling) {\n setTimeout(() => this.useFullPageScrolling = this.m_useFPScrolling, 1);\n }\n }\n }\n\n ngOnDestroy(): void {\n this.lmThemeService.getThemeChangeSubject().unsubscribe();\n if (this.lmContextService.inMingle()) {\n this.takeUntilSubject$.next();\n this.takeUntilSubject$.complete();\n }\n }\n\n getRouteComponent(): any {\n return this.currentComponent.getRouteComponent();\n }\n\n public onActivate(component) {\n const url = this.router.url;\n\n if (this.inMingleWidget && (url.indexOf('nav=') >= 0 || url.indexOf('/list/') >= 0)) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.showViewMoreNav = true;\n }, 1);\n });\n }\n }\n\n public onMenuLoaded(event: MouseEvent) {\n this.sohoApplicationMenuComponent.updateLazy(this.sohoApplicationMenuComponent, event.target);\n }\n\n public onWebAppMenuLoaded(roleSwitcherMode: boolean) {\n const applicationMenu = this.sohoApplicationMenuComponent;\n const webAppMenuHeader = this.getMenuComponent().header;\n\n if (webAppMenuHeader) {\n this.expandPreviouslyOpenedMenus();\n\n if (!webAppMenuHeader.nativeElement.classList.contains('is-expanded')) {\n this.sohoApplicationMenuComponent.toggleAndSelectHeader(applicationMenu, webAppMenuHeader.nativeElement);\n }\n } else {\n if (roleSwitcherMode) {\n this.sohoApplicationMenuComponent.updated();\n this.expandPreviouslyOpenedMenus();\n }\n }\n }\n\n private expandPreviouslyOpenedMenus() {\n const expandedMenus = this.lmBannerService.getExpandedMenus();\n\n if (expandedMenus && expandedMenus.length > 0) {\n expandedMenus.forEach((menuIndex) => {\n // TODO: move to ids-enterprise-ng\n const accordionElement = jQuery(`[menuindex='${menuIndex}']`);\n\n if (!accordionElement.data('accordion')) {\n this.ngZone.runOutsideAngular(() => accordionElement.accordion());\n }\n\n const accordionControl = accordionElement.data('accordion');\n if (accordionControl) {\n this.ngZone.runOutsideAngular(() => accordionControl.expand(accordionElement, true));\n }\n\n if (accordionElement.attr('selected')) {\n this.ngZone.runOutsideAngular(() => accordionControl.select(accordionElement));\n }\n });\n }\n }\n\n public onMenuVisibility(visible: boolean) {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n bannerPersonalization.isMenuOpen = visible;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(bannerPersonalization);\n }\n\n public onAccordionExpand(result: any) {\n if (result) {\n const menuHeader = result[0];\n const webAppName = menuHeader.getAttribute('web-app-name');\n\n if (webAppName) {\n this.getMenuComponent().component.loadWebAppMenu(menuHeader);\n }\n }\n }\n\n public onSearchMenuVisibility() {\n if (!this.sohoApplicationMenuSearchComponent.isOpen()) {\n this.menuSearchMode = false;\n this.sohoApplicationMenuComponent.triggers = [ '.application-menu-trigger' ];\n }\n }\n\n private updateThemeIcons(themeId: LMThemeId) {\n if (this.lmThemeService.isUpliftTheme(themeId)) {\n this.inUpliftTheme = true;\n } else {\n this.inUpliftTheme = false;\n }\n }\n\n public onAsOfDateChanged(date: string) {\n if (date === '' || date === '00000000') {\n this.onAsOfDateCleared();\n return;\n }\n this.lmContextService.setAsOfDate(date);\n this.checkAsOfDateInPast(date);\n this.asOfDate = date;\n\n this.globalState.asOfDate = date;\n this.lmGlobalStateService.saveGlobalState(this.globalState);\n\n // force a reload of the route so that asofdate can be taken into\n // account by the route component (List, Form, Page, etc...).\n this.forceLocationReload();\n }\n\n private checkAsOfDateInPast(date: string): void {\n // only check if asOfDate in past if asOfDate is set\n if (!date || date.toString().length === 0) {\n return;\n }\n const today = new Date();\n // Need to get the date object from Soho.Locale.parseDate, otherwise the locale isn't taken into account\n // and new Date returns an invalid when not in USA date format\n const asOfDate = Soho.Locale.parseDate(this.lmFormatUtilService.yyyymmddToDisplay(date));\n if (asOfDate < today) {\n this.lmContextService.setAsOfDateInPast(true);\n } else {\n this.lmContextService.setAsOfDateInPast(false);\n }\n }\n\n public onAsOfDateCleared() {\n this.lmContextService.clearAsOfDate();\n this.lmContextService.setAsOfDateInPast(false);\n this.asOfDate = '';\n\n delete this.globalState.asOfDate;\n this.lmGlobalStateService.saveGlobalState(this.globalState);\n\n // force a reload of the route so that asofdate can be taken into\n // account by the route component (List, Form, Page, etc...).\n this.forceLocationReload();\n }\n\n public showDeletedRecordsCleared() {\n this.showDeletedRecordsChanged(false);\n }\n\n public showDeletedRecordsChanged(on: boolean) {\n this.lmContextService.setShowDeletedRecords(on);\n this.globalState.showdeletedrecords = on;\n this.lmGlobalStateService.saveGlobalState(this.globalState);\n\n // force reload of the route so that showdeleterrecords can be taken into\n // account by the route component (List, Form, Page, etc...).\n // this.forceLocationReload();\n this.lmGlobalUtilService.navigate(window.location.href, null, 'replace');\n }\n\n private forceLocationReload(): void {\n this.lmGlobalUtilService.navigateByUrl(window.location.href, { replaceUrl: true });\n }\n\n public fullPageScrolling(useFPS: boolean) {\n this.fPSChanged = true;\n this.m_useFPScrolling = useFPS;\n }\n\n public onMenuSearched(event: LMBannerSearchEvent) {\n this.menuSearchMode = true;\n this.menuSpecsByWebApp = event.menuSpecsByWebApp;\n this.menuSearchResultsByWebApp = event.menuSearchResultsByWebApp;\n this.dataSearchResults = event.dataSearchResults;\n this.reportSearchResults = event.reportSearchResults;\n this.searchString = event.searchString;\n\n // no need for change detection here. put setTimeout\n // outside Angular so change detection won't be fired.\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.sohoApplicationMenuComponent.closeMenu();\n this.sohoApplicationMenuSearchComponent.openMenu(undefined, true, undefined);\n\n const applicationMenuSearch = this.sohoApplicationMenuSearchComponent;\n const searchMenuHeaders = this.getSearchMenuComponent().component.searchMenuHeaders;\n if (searchMenuHeaders) {\n const header = searchMenuHeaders.toArray()[ 0 ];\n if (header) {\n if (this.isHeaderExpanded(header)) {\n this.sohoApplicationMenuSearchComponent.updated();\n } else {\n this.sohoApplicationMenuSearchComponent.toggleAndSelectHeader(applicationMenuSearch, header.nativeElement);\n }\n }\n } else {\n this.sohoApplicationMenuSearchComponent.updated();\n }\n });\n });\n }\n\n public onMenuSearchCleared() {\n this.menuSearchMode = false;\n this.sohoApplicationMenuComponent.triggers = [ '.application-menu-trigger' ];\n this.sohoApplicationMenuComponent.openMenu(undefined, true, undefined);\n\n this.menuSearchResultsByWebApp = {};\n this.dataSearchResults = [];\n this.reportSearchResults = [];\n this.getMenuComponent().menuSpecs = [];\n\n if (this.lmBannerService.getExpandedMenus() && this.lmBannerService.getExpandedMenus().length > 0) {\n this.lmBannerService.getExpandedMenus().forEach((menuIndex) => {\n this.ngZone.runOutsideAngular(() => {\n /**\n * TODO: Create ids-enterprise example for dynamically adding/removing HTML from the Application menu...\n * Timeout because of a timing conflict with ids-enterprise Application menu control\n * when search closes or opens the application menu, it then causes updateRequired to be flagged in ids-enterprise-ng wrapper\n * this then triggers an update event \"this.applicationmenu.updated()\" in ngAfterViewChecked(),\n * update then does a full rebuild of the application menu, which causes the panes to rebuild/toggle when they are already open\n */\n setTimeout(() => {\n const lmBannerMenuElement = document.querySelectorAll('[menuindex=\"' + menuIndex + '\"]')[0]?.nextElementSibling as HTMLElement;\n if (lmBannerMenuElement) {\n lmBannerMenuElement.style.height = 'auto';\n }\n }, 1);\n });\n });\n }\n }\n\n public onBusyComplete(event: SohoBusyIndicatorEvent) {\n // this.lmLoggerService.log([ this, 'onBusyComplete()', event ]);\n }\n\n roleSelected() {\n this.lmBannerService.clearExpandedMenus();\n this.sohoApplicationMenuComponent.closeSwitcherPanel();\n }\n\n private setPersonalizations() {\n const globalPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n // todo: uncomment once mingle actually deals with theme switching - Phillip 9/12/2019\n // const context = this.lmContextService.getContext();\n // if (context.theme) {\n // if (this.lmThemeService.isDefaultTheme(context.theme)) {\n // delete bannerPersonalization.theme;\n // } else {\n // bannerPersonalization.theme = context.theme as LMThemeId;\n // }\n // }\n // if (context.color) {\n // bannerPersonalization.color = context.theme as LMColorId;\n // }\n\n this.lmThemeService.getThemeChangeSubject().subscribe(themeId => {\n const id = themeId ? themeId: globalPersonalization.theme;\n this.updateThemeIcons(id as LMThemeId);\n });\n\n const accessibilityMode = globalPersonalization.accessibilityMode === undefined ? true : globalPersonalization.accessibilityMode;\n this.applyColorToMenu = globalPersonalization.applyColorToMenu;\n const useCompactFormLayout = globalPersonalization.useCompactFormLayout === undefined ?\n this.lmContextService.getCompactnessMode() === 'compact' : globalPersonalization.useCompactFormLayout;\n\n this.lmThemeService.setThemeAndColor(globalPersonalization.theme, globalPersonalization.color, useCompactFormLayout);\n\n // if theme and color were never set then set them to what setThemeAndColor chose by default\n if (this.lmThemeService.isCurrentThemeDefault()) {\n delete globalPersonalization.theme;\n } else {\n globalPersonalization.theme = this.lmThemeService.getCurrentThemeId();\n }\n globalPersonalization.color = this.lmThemeService.getCurrentColorId();\n globalPersonalization.useCompactFormLayout = useCompactFormLayout;\n globalPersonalization.accessibilityMode = accessibilityMode;\n // Have to save for other components retrieving from global personalization\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n private setMenuPersonalization() {\n if (this.lmContextService.isAnonymousUser() || this.lmContextService.getContext().webApp === 'web') {\n this.openOnLarge = false;\n return;\n }\n\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n if (!_.isEmpty(bannerPersonalization) && bannerPersonalization.isMenuOpen !== undefined) {\n if (bannerPersonalization.isMenuOpen) {\n if (this.sohoApplicationMenuComponent && !this.sohoApplicationMenuComponent.isOpen()) {\n this.openOnLarge = true;\n }\n } else {\n if (this.sohoApplicationMenuComponent && this.sohoApplicationMenuComponent.isOpen()) {\n this.openOnLarge = false;\n }\n }\n } else {\n const openOnLarge = this.isXiHarness ? true : false;\n if (this.sohoApplicationMenuComponent) {\n this.openOnLarge = openOnLarge;\n }\n bannerPersonalization.isMenuOpen = openOnLarge;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(bannerPersonalization);\n }\n }\n\n private isHeaderExpanded(header: any) {\n return header.nativeElement.getElementsByTagName('a')[ 0 ].getAttribute('aria-expanded') === 'true';\n }\n\n public onHasHeaderTabs(hasHeaderTabs: boolean) {\n this.hasHeaderTabs = hasHeaderTabs;\n }\n\n public onAppMenuTriggerEvent(event: MouseEvent) {\n if (this.sohoApplicationMenuSearchComponent && this.sohoApplicationMenuSearchComponent.isOpen()) {\n this.onMenuSearchCleared();\n }\n }\n\n private loadGlobalState() {\n if (this.lmContextService.disablePageState()) {\n this.globalState = {};\n return;\n }\n\n this.globalState = this.lmGlobalStateService.getGlobalState();\n }\n\n private saveGlobalState() {\n this.lmGlobalStateService.saveGlobalState(this.globalState);\n }\n\n /**\n * Sync web app was copied to lmApplicationMenuService\n * Functionality is the same\n * @param url\n * @private\n */\n private syncWebappMenu(url: string) {\n const menuComponent = this.getMenuComponent();\n\n if (menuComponent.version === 'v2') {\n this.lmApplicationMenuService.syncWebappMenu(url, menuComponent.component as LMApplicationMenuComponent);\n } else {\n this.lmGlobalUtilService.syncWebappMenu(url, menuComponent.component as LMBannerNavComponent);\n }\n }\n\n /**\n * Method used to switch between different application menu types\n * @private\n */\n private getMenuComponent(): AppMenuComponent {\n // New Application Menu\n if (this.lmContextService.isApplicationMenuV2()) {\n return {\n version: 'v2',\n component: this.applicationMenuComponent,\n header: this.applicationMenuComponent.webAppMenuHeader,\n loadWebAppMenu: this.applicationMenuComponent.loadWebAppMenu,\n menuSpecs: this.applicationMenuComponent.menuSpecs\n };\n }\n\n // Original Banner Nav\n return {\n version: 'v1',\n component: this._bannerNavComponent,\n header: this._bannerNavComponent.webAppMenuHeader,\n loadWebAppMenu: this._bannerNavComponent.loadWebAppMenu,\n menuSpecs: this._bannerNavComponent.menuSpecs\n };\n }\n\n private getSearchMenuComponent(): AppMenuSearchComponent {\n // New Application Menu\n if (this.lmContextService.isApplicationMenuV2()) {\n return {\n version: 'v2',\n component: this.applicationMenuSearchComponent\n };\n }\n\n // Original Banner Nav\n return {\n version: 'v1',\n component: this._bannerSearchComponent\n };\n }\n}\n","{{skipToMainContentLabel}}\n\n\n\n\n\n\n \n\n \n\n\n\n \n \n\n\n\n\n
\n \n \n \n\n\n \n \n \n
\n \n
\n\n
\n\n\n\n
\n
\n","import { APP_BASE_HREF, CommonModule, Location } from '@angular/common';\nimport { APP_INITIALIZER, ApplicationRef, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\nimport { HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\nimport { AppComponent, appComponentProviders } from './app.component';\nimport { appRouting, appRoutingProviders } from './app.routing';\nimport { DeactivateGuard } from './deactivate-guard';\nimport { ActivateGuard } from './activate-guard';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HttpSSOService, LMHarnessService, LMRouteComponentService } from './services';\nimport {\n CapitalizePipe,\n KeysPipe,\n LMBooleanAsSwitchTooltipPipe,\n LMBooleanAsTextPipe,\n LMFieldOperatorPipe,\n LMFormatLabelPipe,\n LMFormatMessagePipe,\n LMModelFieldIsBlankPipe,\n LMModelFieldToDisplayPipe,\n LMRichTextPipe,\n LMStateAsTextPipe\n} from './pipes';\n\nimport { SohoComponentsModule } from 'ids-enterprise-ng';\nimport { LMRouteReuseStrategy } from './lm-route-resuse-strategy';\n\nimport {\n AccessDeniedErrorComponent,\n LMActionFormDialogComponent,\n LMApplicationMenuAsOfDateDialogComponent,\n LMApplicationMenuComponent,\n LMApplicationMenuHeaderComponent,\n LMApplicationMenuProxyMenuComponent,\n LMApplicationMenuSearchComponent,\n LMApplicationMenuSettingsDialogComponent,\n LMApplicationMenuSubmenuComponent,\n LMApplicationMenuUserContextDialogComponent,\n LMApplicationMenuUserContextFieldComponent,\n LMAuditLogCompareDialogComponent,\n LMAuditLogComponent,\n LMBannerAsOfDateDialogComponent,\n LMBannerHeaderComponent,\n LMBannerMastheadComponent,\n LMBannerMenuComponent,\n LMBannerNavComponent,\n LMBannerProxyMenuComponent,\n LMBannerSearchComponent,\n LMBannerUserContextDialogComponent,\n LMBannerUserContextFieldComponent,\n LMBlankLineComponent,\n LMBusclassFieldComponent,\n LMButtonComponent,\n LMCaptchaControlComponent,\n LMChartBarComponent,\n LMChartColumnComponent,\n LMChartLineComponent,\n LMChartPieComponent,\n LMChartRadarComponent,\n LMCheckboxComponent,\n LMCheckcontrolComponent,\n LMCodeBlockComponent,\n LMCodeBlockEditorComponent,\n LMColumnsDistributedComponent,\n LMColumnsGridComponent,\n LMColumnsImageFirstColumnComponent,\n LMColumnsPercentComponent,\n LMColumnsTableComponent,\n LMColumnsUndistributedComponent,\n LMCompactFormDialogComponent,\n LMComponentInfoComponent,\n LMCompoundFieldComponent,\n LMComputeBuilderComponent,\n LMComputeBuilderRowComponent,\n LMDashboardPanelCardComponent,\n LMDashboardPanelFormComponent,\n LMDashboardPanelFormTemplateComponent,\n LMDashboardPanelListComponent,\n LMDashboardPanelUrlComponent,\n LMDashboardViewComponent,\n LMDateComponent,\n LMDefaultRouteComponent,\n LMDerivedComputeBuilderComponent,\n LMDetailSectionCardComponent,\n LMDetailSectionDashBoardComponent,\n LMDetailSectionFormComponent,\n LMDetailSectionListComponent,\n LMDetailSectionMultiListComponent,\n LMDetailSectionNotFoundComponent,\n LMDetailSectionsComponent,\n LMDetailSectionUrlComponent,\n LMDirtyCheckDialogComponent,\n LMDropdownComponent,\n LMElementLayoutComponent,\n LMFieldLayoutComponent,\n LMFieldOptionsComponent,\n LMFieldPickerComponent,\n LMFieldStyleDirective,\n LMFieldUpperCaseDirective,\n LMFileuploadComponent,\n LMFilterBuilderComponent,\n LMFilterBuilderFieldLookupComponent,\n LMFilterBuilderRowComponent,\n LMFormComponent,\n LMFormContentComponent,\n LMFormContentCompositeComponent,\n LMFormContentFormComponent,\n LMFormContentInstanceCountComponent,\n LMFormContentManualRepresentationComponent,\n LMFormContentMatrixComponent,\n LMFormContentMenuComponent,\n LMFormContentSearchComponent,\n LMFormContentStepprocessComponent,\n LMFormContentTemplateComponent,\n LMFormLayoutComponent,\n LMFormPanelActionIsComponent,\n LMFormPanelDashboardComponent,\n LMFormPanelFormComponent,\n LMFormPanelIndependentFormComponent,\n LMFormPanelListComponent,\n LMFormPanelMultiListComponent,\n LMFormPanelNotFoundComponent,\n LMFormPanelTemplateComponent,\n LMFormPanelTextComponent,\n LMFormPanelUrlComponent,\n LMHeaderComponent,\n LMHelperListDialogComponent,\n LMHomePageComponent,\n LMHomeRouteComponent,\n LMHorizontalScrollerComponent,\n LMHtmlPageComponent,\n LMHtmlUrlDocComponent,\n LMHyperlinkComponent,\n LMImageComponent,\n LMKeyboardShortcutsDialogComponent,\n LMLabelModule,\n LMLayoutUtilDirective,\n LMListCalendarComponent,\n LMListCardComponent,\n LMListChartComponent,\n LMListChartSelectorsComponent,\n LMListComponent,\n LMListContentComponent,\n LMListContentFilterListComponent,\n LMListCubeViewerComponent,\n LMListGalleryComponent,\n LMListGridComponent,\n LMListHierarchyComponent,\n LMListImageComponent,\n LMBlockItemComponent,\n LMListSearchFormDialogComponent,\n LMListSearchTagsComponent,\n LMListTreeComponent,\n LMListViewComponent,\n LMLoginComponent,\n LMLookupComponent,\n LMLookupDialogComponent,\n LMManualComponent,\n LMManualRepresentationComponent,\n LMMenuFieldComponent,\n LMMouseOverTextComponent,\n LMNavigationComponent,\n LMPageComponent,\n LMPagePaneDashBoardComponent,\n LMPagePanelComponent,\n LMPagePaneListComponent,\n LMPagePaneMenuComponent,\n LMPagePaneMultiListComponent,\n LMPagePaneUrlComponent,\n LMParagraphLayoutComponent,\n LMPendingChangesDialogComponent,\n LMPreviewOptionsDialogComponent,\n LMPrintCsvDialogComponent,\n LMPrintPdfDialogComponent,\n LMProcessIndicatorComponent,\n LMProgressComponent,\n LMRadiobuttonComponent,\n LMRatingComponent,\n LMReportPersonalizationDialogComponent,\n LMResponseRequiredModalFormComponent,\n LMRichtextComponent,\n LMSavedSearchManageComponent,\n LMScanOptionsComponent,\n LMSectionedCardComponent,\n LMSelectDialogComponent,\n LMSelectRecordDialogComponent,\n LMSimpleCardComponent,\n LMSimpleProgressComponent,\n LMSubFormDialogComponent,\n LMSuiteHomeComponent,\n LMSwatchDirective,\n LMTemplateFormRecordComponent,\n LMTextareaComponent,\n LMTextComponent,\n LMTextStyleDirective,\n LMTimeComponent,\n LMToolbarComponent,\n LMTrackDirtyDirective,\n LMTwelveColumnGridComponent,\n LMTwelveColumnPanelCardComponent,\n LMTwelveColumnPanelFormComponent,\n LMTwelveColumnPanelFormTemplateComponent,\n LMTwelveColumnPanelListComponent,\n LMTwelveColumnPanelUrlComponent,\n LMViewExceptionDetailsComponent,\n LMViewMoreComponent,\n LMVisibleWhenDirective\n} from './components';\n\nimport { SafePipe } from '@pipes/safeUrl.pipe';\nimport { LMListSearchFormDirective } from '@list/lm-list-search-form.directive';\nimport { LMListLookupDialogComponent } from '@list/lm-list-lookup-dialog.component';\nimport { LMContextService } from '@services/lm-context.service';\nimport { HttpCSRFInterceptorService } from '@services/http.csrf.interceptor.service';\nimport { LMListAuditComparePanelComponent } from '@list/lm-list-audit-compare-panel.component';\nimport { LMActionComponent } from '@action/lm-action.component';\nimport { LMLocaleInitializerModule } from '@locale/lm-locale-initializer.module';\nimport { DrawerModule } from '@drawer/drawer.module';\nimport { TransactionModule } from '@transaction/transaction.module';\nimport { CubesModule } from '@modal/cubes/cubes.module';\nimport { LMNotificationComponent } from '@notification/lm-notification.component';\nimport { UserWebRequestHttpInterceptor } from './http.intercepter';\nimport { LMHttpIntercepterService } from '@services/lm-http-intercepter.service';\nimport { LMLplEditorComponent } from '@lplEditor/lm-lpl-editor.component';\nimport { LMFieldEditorCompareComponent, LMFieldEditorComponent } from '@field/editor';\nimport { LMListChartAggregationComponent } from '@list/lm-list-chart-aggregation';\nimport { LMCubeCellRelTestComponent } from './components/modal/cube-cell-rel';\nimport { LMLplEditorCompareComponent } from '@lplEditor/lm-lpl-editor-compare.component';\nimport { LMFileUploadProgressComponent } from '@services/file-upload/lm-file-upload-progress.component';\nimport { LMProcessIndicatorTooltipPipe } from './components/field/processindicator/lm-process-indicator-tooltip.pipe';\nimport { LMCommonModule } from '@app/lm-common.module';\nimport { LMNewThemeHoverDirective } from '../directives/lm-new-theme-hover.directive';\nimport { LMSavedSearchComponent } from './components/modal/saved-search/lm-saved-search.component';\nimport { LMPollAndPrintDialogComponent } from '@modal/print-dialog/lm-poll-and-print-dialog.component';\nimport { LMListDropdownComponent } from '@components/lmlistdropdown';\nimport { LMBlockGridComponent } from '@components/blockgrid';\n\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions,@typescript-eslint/ban-types\nexport function contextServiceFactory(contextService: LMContextService): Function {\n return () => contextService.setContext(LandmarkContext);\n}\n\n@NgModule({\n imports: [\n // angular and 3rd party stuff\n HttpClientModule,\n HttpClientXsrfModule.withOptions({\n cookieName: 'SSO.CSRF',\n headerName: 'SSO.CSRF',\n }),\n BrowserModule,\n LMLocaleInitializerModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n BrowserAnimationsModule,\n appRouting,\n LMLabelModule,\n // soho imports down here\n SohoComponentsModule,\n DrawerModule,\n TransactionModule,\n LMCommonModule,\n CubesModule,\n ],\n declarations: [\n AppComponent,\n // Application Menu (previously lm-banner)\n LMApplicationMenuAsOfDateDialogComponent,\n LMApplicationMenuHeaderComponent,\n LMApplicationMenuProxyMenuComponent,\n LMApplicationMenuSearchComponent,\n LMApplicationMenuSettingsDialogComponent,\n LMApplicationMenuSubmenuComponent,\n LMApplicationMenuUserContextDialogComponent,\n LMApplicationMenuUserContextFieldComponent,\n LMApplicationMenuComponent,\n LMHtmlPageComponent,\n LMHtmlUrlDocComponent,\n LMHomePageComponent,\n LMSimpleCardComponent,\n LMSuiteHomeComponent,\n AccessDeniedErrorComponent,\n LMVisibleWhenDirective,\n // form stuff\n LMColumnsDistributedComponent,\n LMColumnsGridComponent,\n LMColumnsUndistributedComponent,\n LMColumnsPercentComponent,\n LMColumnsTableComponent,\n LMColumnsImageFirstColumnComponent,\n LMFormContentCompositeComponent,\n LMFormPanelActionIsComponent,\n LMFormPanelDashboardComponent,\n LMFormPanelFormComponent,\n LMFormPanelUrlComponent,\n LMFormPanelIndependentFormComponent,\n LMFormContentMatrixComponent,\n LMComponentInfoComponent,\n LMFormPanelListComponent,\n LMFormPanelMultiListComponent,\n LMFormContentTemplateComponent,\n LMFormPanelNotFoundComponent,\n LMFormContentInstanceCountComponent,\n LMFormContentManualRepresentationComponent,\n LMElementLayoutComponent,\n LMFieldLayoutComponent,\n LMFormComponent,\n LMFormContentComponent,\n LMFormContentSearchComponent,\n LMFormContentFormComponent,\n LMFormLayoutComponent,\n LMLayoutUtilDirective,\n LMFormPanelTemplateComponent,\n LMTemplateFormRecordComponent,\n LMFormPanelTextComponent,\n LMHeaderComponent,\n LMParagraphLayoutComponent,\n LMFormContentStepprocessComponent,\n LMManualComponent,\n KeysPipe,\n // list stuff\n LMChartColumnComponent,\n LMChartBarComponent,\n LMChartLineComponent,\n LMChartPieComponent,\n LMChartRadarComponent,\n LMListChartAggregationComponent,\n LMCodeBlockComponent,\n LMCodeBlockEditorComponent,\n LMListChartComponent,\n LMListChartSelectorsComponent,\n LMListCalendarComponent,\n LMListComponent,\n LMListViewComponent,\n LMListContentComponent,\n LMListCubeViewerComponent,\n LMListGridComponent,\n LMListImageComponent,\n LMBlockItemComponent,\n LMDetailSectionsComponent,\n LMDetailSectionCardComponent,\n LMDetailSectionDashBoardComponent,\n LMDetailSectionFormComponent,\n LMDetailSectionListComponent,\n LMDetailSectionMultiListComponent,\n LMDetailSectionUrlComponent,\n LMDetailSectionNotFoundComponent,\n LMListSearchTagsComponent,\n LMListTreeComponent,\n LMListHierarchyComponent,\n LMListLookupDialogComponent,\n LMListSearchFormDirective,\n LMListSearchFormDialogComponent,\n LMListContentFilterListComponent,\n LMListCardComponent,\n // page stuff\n LMPageComponent,\n LMPagePaneListComponent,\n LMPagePanelComponent,\n LMPagePaneDashBoardComponent,\n LMPagePaneMenuComponent,\n LMPagePaneMultiListComponent,\n LMPagePaneUrlComponent,\n // field stuff\n LMBusclassFieldComponent,\n LMButtonComponent,\n LMBlankLineComponent,\n LMCaptchaControlComponent,\n LMCheckboxComponent,\n LMCheckcontrolComponent,\n LMCompoundFieldComponent,\n LMFileuploadComponent,\n LMDateComponent,\n LMDropdownComponent,\n LMFieldEditorComponent,\n LMFieldEditorCompareComponent,\n LMFieldOptionsComponent,\n LMScanOptionsComponent,\n LMFieldStyleDirective,\n LMFieldUpperCaseDirective,\n LMImageComponent,\n LMLookupComponent,\n LMLookupDialogComponent,\n LMManualRepresentationComponent,\n LMMenuFieldComponent,\n LMMouseOverTextComponent,\n LMRadiobuttonComponent,\n LMRatingComponent,\n LMRichtextComponent,\n LMTextComponent,\n LMTextareaComponent,\n LMTextStyleDirective,\n LMTrackDirtyDirective,\n LMTimeComponent,\n LMProgressComponent,\n LMProcessIndicatorComponent,\n LMHyperlinkComponent,\n LMSimpleProgressComponent,\n LMViewExceptionDetailsComponent,\n // toolbar stuff\n LMToolbarComponent,\n // banner stuff\n LMBannerAsOfDateDialogComponent,\n LMBannerHeaderComponent,\n LMBannerNavComponent,\n LMBannerSearchComponent,\n LMBannerMenuComponent,\n LMBannerMastheadComponent,\n LMBannerUserContextDialogComponent,\n LMBannerUserContextFieldComponent,\n LMBannerProxyMenuComponent,\n LMSwatchDirective,\n // LMLegacySubMenuComponent,\n // routes components\n LMDefaultRouteComponent,\n LMHomeRouteComponent,\n LMNavigationComponent,\n LMActionComponent,\n // modal dialog\n LMActionFormDialogComponent,\n LMCompactFormDialogComponent,\n // LMComputeEditorDialogComponent,\n // LMFieldEditorDialogComponent,\n LMHelperListDialogComponent,\n LMReportPersonalizationDialogComponent,\n LMResponseRequiredModalFormComponent,\n LMLoginComponent,\n LMDirtyCheckDialogComponent,\n LMSubFormDialogComponent,\n LMSelectRecordDialogComponent,\n LMSelectDialogComponent,\n LMPendingChangesDialogComponent,\n LMPrintCsvDialogComponent,\n LMPrintPdfDialogComponent,\n LMPollAndPrintDialogComponent,\n LMKeyboardShortcutsDialogComponent,\n // pipes\n CapitalizePipe,\n SafePipe,\n // menu\n LMFormContentMenuComponent,\n // dashboards\n LMDashboardPanelCardComponent,\n LMDashboardPanelFormComponent,\n LMDashboardPanelFormTemplateComponent,\n LMDashboardPanelListComponent,\n LMDashboardPanelUrlComponent,\n LMDashboardViewComponent,\n // twelve column grid\n LMTwelveColumnGridComponent,\n LMTwelveColumnPanelCardComponent,\n LMTwelveColumnPanelFormComponent,\n LMTwelveColumnPanelFormTemplateComponent,\n LMTwelveColumnPanelListComponent,\n LMTwelveColumnPanelUrlComponent,\n // custom\n LMViewMoreComponent,\n LMLplEditorComponent,\n LMLplEditorCompareComponent,\n LMListDropdownComponent,\n // audit log\n LMAuditLogComponent,\n LMAuditLogCompareDialogComponent,\n LMListAuditComparePanelComponent,\n // pipes\n LMBooleanAsTextPipe,\n LMBooleanAsSwitchTooltipPipe,\n LMFormatLabelPipe,\n LMFormatMessagePipe,\n LMModelFieldToDisplayPipe,\n LMModelFieldIsBlankPipe,\n LMRichTextPipe,\n LMStateAsTextPipe,\n LMFieldOperatorPipe,\n LMProcessIndicatorTooltipPipe,\n LMFilterBuilderComponent,\n LMFilterBuilderFieldLookupComponent,\n LMFieldPickerComponent,\n LMFilterBuilderRowComponent,\n LMPreviewOptionsDialogComponent,\n LMCodeBlockComponent,\n LMCodeBlockEditorComponent,\n LMNotificationComponent,\n // Cube cell relation\n LMCubeCellRelTestComponent,\n // Compute Field UI\n LMComputeBuilderComponent,\n LMComputeBuilderRowComponent,\n LMFileUploadProgressComponent,\n LMDerivedComputeBuilderComponent,\n LMNewThemeHoverDirective,\n LMSavedSearchComponent,\n LMSavedSearchManageComponent,\n LMHorizontalScrollerComponent,\n LMListGalleryComponent,\n LMSectionedCardComponent,\n LMBlockGridComponent\n ],\n providers: [\n LMContextService,\n {\n provide: APP_INITIALIZER,\n useFactory: contextServiceFactory,\n deps: [ LMContextService ],\n multi: true\n },\n appRoutingProviders,\n appComponentProviders,\n { provide: ActivateGuard, useClass: ActivateGuard },\n { provide: DeactivateGuard, useClass: DeactivateGuard },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCSRFInterceptorService,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpSSOService,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: UserWebRequestHttpInterceptor,\n multi: true\n },\n { provide: APP_BASE_HREF, useValue: '/' },\n {\n provide: RouteReuseStrategy,\n useClass: LMRouteReuseStrategy\n },\n LMRouteComponentService,\n LMHarnessService,\n LMHttpIntercepterService,\n ],\n bootstrap: [ AppComponent ],\n exports: []\n})\n\nexport class AppModule {\n constructor(private location: Location, applicationRef: ApplicationRef) {\n // if (!environment.production) {\n //\n // const originalTick = applicationRef.tick;\n // applicationRef.tick = function() {\n // const before = window.performance.now();\n // const retValue = originalTick.apply(this, arguments);\n // const after = window.performance.now();\n // const runTime = after - before;\n //\n // console.log(`CHANGE DETECTION TIME: ${runTime}`);\n // // lmLoggerService.log(`CHANGE DETECTION TIME: ${runTime}`);\n //\n // return retValue;\n // };\n // }\n // console.log('START: Infor Landmark Xi');\n // tslint:disable-next-line:no-console\n // console.time('Infor Landmark Xi');\n\n // Allow () in the URL\n const path: string = location.path();\n location.replaceState(path.replace(/\\(/g, '%28').replace(/\\)/g, '%29'));\n }\n}\n","import { Routes, RouterModule, Route } from '@angular/router';\nimport { DeactivateGuard } from './deactivate-guard';\nimport { ActivateGuard } from './activate-guard';\n\nimport { LMDefaultRouteComponent } from '@routes/lm-default-route.component';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMHomePageComponent } from '@home/lm-home-page.component';\nimport { LMHomeRouteComponent } from '@routes/lm-home-route.component';\nimport { LMHtmlPageComponent } from '@html/lm-html-page.component';\nimport { LMListComponent } from '@list/lm-list.component';\nimport { LMPageComponent } from '@page/lm-page.component';\nimport { LMSuiteHomeComponent } from '@home/lm-suite-home.component';\nimport { LMAuditLogComponent } from '@auditlog/lm-audit-log.component';\nimport { LMNavigationComponent } from '@navigation/lm-navigation.component';\nimport { LMActionComponent } from '@action/lm-action.component';\n\nconst indexRoute: Route = {\n path: '',\n component: LMHomeRouteComponent\n};\n\nconst fallbackRoute: Route = {\n path: '**',\n component: LMDefaultRouteComponent\n};\n\nconst appRoutes: Routes = [\n { path: ':dataArea/web/home', component: LMSuiteHomeComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':dataArea/web/land/default', component: LMSuiteHomeComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n /***************************************************************\n * Special route definition to load url to routerOutlet\n **************************************************************/\n // runGuardsAndResolvers is enabled to allow search params to trigger the route guards to be run.\n { path: ':dataArea/:webApp/html/url', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard], runGuardsAndResolvers: 'always' },\n\n /***************************************************************\n * Standard dataarea route definitions\n **************************************************************/\n // runGuardsAndResolvers on lists is enabled to allow the list to be reloaded after a personalization since without the setting same urls are ignored. Vonny fix for LMCLIENT-22265\n { path: ':dataArea/:webApp/list/:resourceId', component: LMListComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard], runGuardsAndResolvers: 'always'},\n { path: ':dataArea/:webApp/form/:resourceId', component: LMFormComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':dataArea/:webApp/page/:resourceId', component: LMPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':dataArea/:webApp/audit/:resourceId', component: LMAuditLogComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n { path: ':dataArea/:webApp/home', component: LMHomePageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n // runGuardsAndResolvers is enabled to allow search params to trigger the route guards to be run.\n { path: ':dataArea/:webApp/html/:resourceId', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard], runGuardsAndResolvers: 'always' },\n { path: ':dataArea/:webApp/land/:resourceId', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':dataArea/:webApp/widgets/:resourceId/:resourceId', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n { path: ':dataArea/:webApp/navigation/:resourceId', component: LMNavigationComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':dataArea/:webApp/action/:resourceId', component: LMActionComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n /***************************************************************\n * GEN dataarea route definitions\n **************************************************************/\n { path: ':webApp/list/:resourceId', component: LMListComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':webApp/form/:resourceId', component: LMFormComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':webApp/page/:resourceId', component: LMPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':webApp/audit/:resourceId', component: LMAuditLogComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n { path: ':webApp/home', component: LMHomePageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':webApp/html/:resourceId', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n { path: ':webApp/land/:resourceId', component: LMHtmlPageComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n { path: ':webApp/navigation/:resourceId', component: LMNavigationComponent, canActivate: [ActivateGuard], canDeactivate: [DeactivateGuard] },\n\n indexRoute,\n fallbackRoute\n];\n\nexport const appRoutingProviders: any[] = []; //https://ngrefs.com/v8/router/extraoptions-interface\nexport const appRouting = RouterModule.forRoot(appRoutes, { onSameUrlNavigation: 'reload', enableTracing: false });\n","import { AfterViewInit, Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\n\n@Component({\n selector: 'lm-action',\n template: `
Redirecting...
`,\n})\nexport class LMActionComponent implements AfterViewInit {\n\n constructor(\n private router: Router,\n private lmNavigationService: LMNavigationService\n ) {}\n\n ngAfterViewInit() {\n this.redirect(this.router.url);\n }\n\n redirect(actionUrl: string) {\n const delimiter = actionUrl.indexOf('?') === -1 ? '?' : '&';\n actionUrl += delimiter + 'output=spec';\n this.lmNavigationService.runNavigation(actionUrl, undefined, { replaceUrl: true });\n }\n\n checkSaveRequired() {\n return false;\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n}\n","export * from './lm-application-menu-asofdate-dialog.component';\nexport * from './lm-application-menu-asofdate-dialog.service';\n","import {\n AfterViewInit,\n Component, Input,\n OnInit,\n} from '@angular/core';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\n\n@Component({\n selector: 'lm-application-menu-asofdate',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\nexport class LMApplicationMenuAsOfDateDialogComponent implements OnInit, AfterViewInit {\n constructor(private lmErrorUtilService: LMErrorUtilService) {}\n\n public pickerOptions: SohoDatePickerOptions = {\n mode: 'standard',\n dateFormat: Soho.Locale.calendar().dateFormat.short,\n showMonthYearPicker: true\n };\n @Input() asOfDate: string;\n public model = {\n value: ''\n };\n\n ngOnInit() {\n if (this.asOfDate) {\n this.model.value = this.asOfDate;\n }\n }\n\n ngAfterViewInit() {\n }\n\n onChange(event) {\n this.asOfDate = this.model.value;\n }\n\n public getDate() {\n return this.asOfDate;\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogService, SohoModalDialogRef, SohoMessageService } from 'ids-enterprise-ng';\nimport { Observable } from 'rxjs';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMApplicationMenuAsOfDateDialogComponent } from '@components/applicationmenu/asofdate/lm-application-menu-asofdate-dialog.component';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\nexport enum ApplicationMenuAsOfDateDialogStatus {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK\n}\n\nexport interface ApplicationMenuAsOfDateResult {\n status: ApplicationMenuAsOfDateDialogStatus;\n date: string;\n}\n\n@Injectable()\nexport class LMApplicationMenuAsOfDateDialogService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private sohoMessageService: SohoMessageService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n /**\n * Prompt Set 'As of Date' dialog\n * @param viewContainerRef\n *\n * @return Observable\n */\n public promptAsOfDateDialog(placeholder: ViewContainerRef, date?: string): Observable {\n let asOfDate: Observable = new Observable (observer => {\n let asOfDateComponent: LMApplicationMenuAsOfDateDialogComponent;\n let dialog: SohoModalDialogRef;\n\n const dialogId = 'AsOfDate';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n dialog.close( {\n status: ApplicationMenuAsOfDateDialogStatus.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n let currentDate = new Date();\n if (asOfDateComponent.getDate() === currentDate.toLocaleDateString()) {\n const messageDialogId = 'AsOfDateValidationMessage';\n this.sohoMessageService\n .error()\n .message(Soho.Locale.translate(messageDialogId))\n .title('')\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([messageDialogId, LMDialogButtonKey.CLOSE]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (evt, errorModal) => {\n errorModal.close(true);\n }\n }\n ])\n .open();\n } else {\n dialog.close( {\n status: ApplicationMenuAsOfDateDialogStatus.RESPONSE_OK,\n date: asOfDateComponent.getDate()\n });\n }\n },\n validate: false,\n isDefault: true\n }\n ];\n dialog = this.sohoModalDialogService\n .modal(LMApplicationMenuAsOfDateDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(Soho.Locale.translate('AsOfDateLabel'))\n .isAlert(false)\n .open()\n .apply((asOfDateForm: LMApplicationMenuAsOfDateDialogComponent) => {\n asOfDateComponent = asOfDateForm;\n if (asOfDate) {\n asOfDateComponent.asOfDate = date;\n }\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n return asOfDate;\n }\n}\n","export * from './lm-application-menu-settings-dialog.component';\nexport * from './lm-application-menu-usercontext-dialog.component';\nexport * from './lm-application-menu-usercontext-dialog.service';\nexport * from './lm-application-menu-usercontext-field.component';\n","import {\n Component,\n AfterViewInit,\n OnInit,\n ChangeDetectionStrategy,\n Renderer2, ViewChild, ViewContainerRef,\n} from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService, SohoModalDialogVetoableEventGuard } from 'ids-enterprise-ng';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { Router } from '@angular/router';\nimport { environment } from '@environments/environment';\nimport * as _ from 'lodash';\nimport { LMColorId, LMThemeService, LMThemeId } from '@banner/lm-theme.service';\nimport { LMDialogButtonKey, LMUniqueIdService, LMBrowserUtilService, AppConstants } from '@utils/index';\nimport { LMKeyboardShortcutsDialogComponent } from '@modal/lm-keyboard-shortcuts-dialog.component';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMRoamingUIProfileService, RoamingUIProfileResult, RoamingUIProfileResponse } from '@services/lm-roamingUIProfile.service';\nimport { LMGlobalStateService } from '@app/states';\n\n@Component({\n selector: 'lm-application-menu-settings-dialog',\n templateUrl: 'lm-application-menu-settings-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ LMRoamingUIProfileService ],\n})\nexport class LMApplicationMenuSettingsDialogComponent implements SohoModalDialogVetoableEventGuard, OnInit, AfterViewInit {\n\n @ViewChild('keyboardDialogPlaceholder', { read: ViewContainerRef, static: true }) placeHolder: ViewContainerRef;\n\n public JSON = JSON;\n public allowClose = false;\n public settings: LMGlobalPersonalization = {};\n public isCancelled: boolean;\n public availableApps: Array;\n public isProduction = environment.production;\n public isDeveloper = this.lmContextService.isDeveloper();\n public availableThemes: SohoTheme[];\n public themeColors: SohoPersonalizationColors;\n private dialog: SohoModalDialogRef;\n public displayShortcuts: boolean;\n public selectedPreferredApp: string;\n public displayPreferredApplication: boolean;\n public savedCompactFormLayout: boolean;\n public savedAppDisplay: string;\n public savedAccessibilityMode: boolean;\n public savedAutoFilter: string;\n public savedApplyColorToMenu: boolean;\n public savedToastMessagePosition: string;\n public toastMessageHasCustomPosition: boolean;\n public showDeletedRecords?: boolean;\n public showDeletedRecordEnabled?: boolean;\n public themeSelectAttributes: SohoAttributesArray;\n public colorSelectAttributes: SohoAttributesArray;\n public searchModeSelectAttributes: SohoAttributesArray;\n public toastMessagePositionSelectAttributes: SohoAttributesArray;\n public toastMessageDurationSelectAttributes: SohoAttributesArray;\n public maxWaitTimePDFSelectAttributes: SohoAttributesArray;\n public exportRecordLimitDefaultAttributes: SohoAttributesArray;\n\n constructor(\n private renderer: Renderer2,\n private router: Router,\n private logger: LMLoggerService,\n private lmContextService: LMContextService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmBrowserUtilService: LMBrowserUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n protected lmLoggerService: LMLoggerService,\n private lmRoamingUIProfileService: LMRoamingUIProfileService,\n private lmGlobalStateService: LMGlobalStateService\n ) {\n this.displayShortcuts = this.displayKeyboardShortcuts;\n this.displayPreferredApplication = this.displayPreferredApplicationSwitcher;\n }\n\n ngOnInit() {\n this.availableThemes = this.lmThemeService.getAvailableThemes();\n this.themeColors = this.lmThemeService.getThemeColors();\n\n this.themeSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-theme' } ];\n this.colorSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-color' } ];\n this.searchModeSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-filter-mode' } ];\n this.toastMessagePositionSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-toastMessagePosition' } ];\n this.toastMessageDurationSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-toastMessageDuration' } ];\n this.maxWaitTimePDFSelectAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-max-wait-time' } ];\n this.exportRecordLimitDefaultAttributes = [ { name: 'data-automation-id', value: 'lm-settings-dialog-export-record-limit-default' } ];\n\n const globalPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(globalPersonalization)) {\n this.selectedPreferredApp = globalPersonalization.preferredWebApp;\n this.settings = globalPersonalization;\n if (globalPersonalization.useCompactFormLayout === undefined) {\n this.settings.useCompactFormLayout = this.lmContextService.getCompactnessMode() === 'compact';\n } else {\n this.savedCompactFormLayout = globalPersonalization.useCompactFormLayout;\n }\n this.savedApplyColorToMenu = globalPersonalization.applyColorToMenu;\n this.savedAppDisplay = globalPersonalization.appDisplay;\n this.savedAccessibilityMode = globalPersonalization.accessibilityMode;\n this.showDeletedRecords = this.lmContextService.getShowDeletedRecords();\n this.showDeletedRecordEnabled = this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_ShowDeletedRecords);\n // check to see if the toast message was dragged.\n const toastMessageKey = (this.lmContextService.getActorUniqueId() === null) ? 'message' : this.lmContextService.getActorUniqueId();\n this.toastMessageHasCustomPosition = (localStorage.getItem('toast-' + toastMessageKey + '-usersettings-position')) ? true : false;\n if (this.toastMessageHasCustomPosition) {\n this.savedToastMessagePosition = 'BLANK';\n this.settings.toastMessagePosition = 'BLANK';\n } else {\n this.savedToastMessagePosition = (this.settings.toastMessagePosition) ? this.settings.toastMessagePosition : '';\n if (this.savedToastMessagePosition === '') {\n this.settings.toastMessagePosition = 'DEFAULT';\n }\n }\n\n if (globalPersonalization?.automaticSearch === undefined) {\n this.settings.automaticSearch = !this.lmContextService?.isFilterBarOnPowerMode() ? 'active' : 'passive';\n } else {\n this.savedAutoFilter = globalPersonalization.automaticSearch;\n }\n\n this.settings.maxWaitPDFCSV = (globalPersonalization?.maxWaitPDFCSV === undefined) ? 10 : globalPersonalization.maxWaitPDFCSV;\n this.settings.exportDefaultRecordLimit = globalPersonalization.exportDefaultRecordLimit === 'no-limit' ? 'no-limit' : 'system';\n\n if (!globalPersonalization.theme) {\n this.settings.theme = LMThemeService.DEFAULT_THEME;\n }\n\n if (!globalPersonalization.appDisplay && !globalPersonalization.color && !globalPersonalization.theme) {\n this.initializeAppMenuSettings();\n }\n } else {\n this.initializeAppMenuSettings();\n }\n this.availableApps = this.lmContextService.getAccessibleWebApps();\n // Sort by webApp name.\n this.availableApps.sort((a, b) => {\n if (a.webAppName < b.webAppName) {\n return -1;\n } else if (a.webAppName > b.webAppName) {\n return 1;\n } else {\n return 0;\n }\n });\n\n // remove any webApp without a title defined.\n for (let i = 0; i < this.availableApps.length; i++) {\n if (!this.availableApps[i].webAppTitle) {\n this.availableApps.splice(i, 1);\n i--;\n }\n }\n }\n\n ngAfterViewInit() {\n // Add a class to the overlay to override the opacity\n this.renderer.addClass(document.body, 'lm-overlay');\n\n // this.hasProxy = this.proxyUserUrls != undefined || this.proxyResetUrls!== undefined || this.proxyManagementLink !== undefined;\n // this.hasAsOfDate = this.asOfDate !== undefined;\n // this.hasUserContext = this.userContextFields !== undefined;\n // this.changeDetectorRef.detectChanges();\n }\n\n initializeAppMenuSettings() {\n this.settings.activeColorPalette = { uplift: true, soho: false };\n this.settings.theme = LMThemeService.DEFAULT_THEME;\n this.settings.useCompactFormLayout = this.lmContextService.getCompactnessMode() === 'compact';\n this.settings.color = LMColorId.default;\n this.settings.appDisplay = 'webapp';\n this.settings.preferredWebApp = '';\n this.settings.accessibilityMode = true;\n this.settings.automaticSearch = !this.lmContextService?.isFilterBarOnPowerMode() ? 'active' : 'passive';\n this.settings.applyColorToMenu = true;\n this.settings.maxWaitPDFCSV = 10;\n }\n\n beforeClose(): boolean {\n this.allowClose = true;\n this.logger.trace([ '@LMApplicationMenuSettingsDialogComponent settings are ', this.settings ]);\n\n if (!this.isCancelled) {\n if (this.settings.theme === LMThemeService.DEFAULT_THEME) {\n delete this.settings.theme;\n }\n\n if (this.settings.toastMessagePosition) {\n if (this.settings.toastMessagePosition === 'DEFAULT'\n || (this.settings.toastMessagePosition !== this.savedToastMessagePosition)) {\n const toastMessageKey = (this.lmContextService.getActorUniqueId() === null) ? 'message' : this.lmContextService.getActorUniqueId();\n localStorage.removeItem('toast-' + toastMessageKey + '-usersettings-position');\n }\n }\n\n if (this.settings.toastMessageDuration && this.settings.toastMessageDuration === 'BLANK') {\n delete this.settings.toastMessageDuration;\n }\n\n // eslint-disable-next-line eqeqeq\n if (this.settings.maxWaitPDFCSV && this.settings.maxWaitPDFCSV == 10) {\n delete this.settings.maxWaitPDFCSV;\n }\n\n if (this.settings.exportDefaultRecordLimit && this.settings.exportDefaultRecordLimit !== 'no-limit') {\n delete this.settings.exportDefaultRecordLimit;\n }\n\n // save the current value of useCompactFormLayout on the dialog box to compare it to the saved settings\n // to determine if a screen reload is needed.\n const showDeletedRecord = this.lmContextService.getShowDeletedRecords();\n const currentCompactFormLayout = this.settings.useCompactFormLayout;\n const currentAppDisplay = this.settings.appDisplay;\n const currentAccessibilityMode = this.settings.accessibilityMode;\n const currentAutoFilter = this.settings.automaticSearch;\n const currentApplyColorToMenu = this.settings.applyColorToMenu;\n const needsReload = this.showDeletedRecords !== showDeletedRecord\n || this.savedCompactFormLayout !== currentCompactFormLayout\n || this.savedAppDisplay !== currentAppDisplay\n || this.savedAccessibilityMode !== currentAccessibilityMode\n || this.savedAutoFilter !== currentAutoFilter\n || this.savedApplyColorToMenu !== currentApplyColorToMenu;\n\n if (this.settings.useCompactFormLayout === (this.lmContextService.getCompactnessMode() === 'compact')) {\n delete this.settings.useCompactFormLayout;\n }\n\n // need to update the global state so the browser refresh can restart\n // in the correct mode!\n const globalState = this.lmGlobalStateService.getGlobalState();\n globalState.showdeletedrecords = this.showDeletedRecords;\n this.lmGlobalStateService.saveGlobalState(globalState);\n this.lmContextService.setShowDeletedRecords(this.showDeletedRecords);\n\n if (this.settings.preferredWebApp !== this.selectedPreferredApp) {\n this.lmRoamingUIProfileService.setPreferredWebApp(this.settings.preferredWebApp)\n .subscribe(\n (results: RoamingUIProfileResponse) => {\n if (results.status === RoamingUIProfileResult.COMPLETED) {\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.settings);\n if (needsReload) {\n const currentRoute = document.location.href;\n this.lmGlobalUtilService.navigate(currentRoute, null, 'replace');\n }\n }\n });\n } else {\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.settings);\n // Reload the current route with the new setting enabled.\n // Need to reload to clear CSS cache and see theme changes applied properly\n if (needsReload) {\n const currentRoute = document.location.href;\n // window.location.replace(currentRoute);\n this.lmGlobalUtilService.navigate(currentRoute, null, 'replace');\n }\n }\n }\n\n if (this.isCancelled) {\n this.resetThemeOnCancel();\n }\n\n return this.allowClose;\n }\n\n theme(event) {\n const themeId: LMThemeId = event.currentTarget.value;\n this.lmThemeService.setTheme(themeId, this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout);\n\n this.themeColors = this.lmThemeService.getThemeColors();\n\n // save to settings\n this.settings.theme = this.lmThemeService.getCurrentThemeId();\n this.settings.color = this.lmThemeService.getCurrentColorId();\n\n if (this.lmThemeService.isUpliftTheme(themeId)) {\n // Safety\n if (this.settings.activeColorPalette) {\n this.settings.activeColorPalette.soho = false;\n this.settings.activeColorPalette.uplift = true;\n }\n } else {\n // Safety\n if (this.settings.activeColorPalette) {\n this.settings.activeColorPalette.soho = true;\n this.settings.activeColorPalette.uplift = false;\n }\n }\n }\n\n color(event) {\n const colorId: LMColorId = event.currentTarget.value;\n this.lmThemeService.setColor(colorId);\n this.settings.color = colorId;\n }\n\n setFilterBarMode(event) {\n const value = event?.currentTarget?.value;\n this.settings.automaticSearch = value;\n }\n\n appDisplay(event) {\n const value = event.currentTarget.value;\n this.settings.appDisplay = value;\n }\n\n toastMessagePosition(event) {\n const value = event.currentTarget.value;\n this.settings.toastMessagePosition = value;\n }\n\n toastMessageDuration(event) {\n const value = event.currentTarget.value;\n this.settings.toastMessageDuration = value;\n }\n\n setMaxWaitPDFCSV(event) {\n const value = event.currentTarget.value;\n this.settings.maxWaitPDFCSV = value;\n }\n\n preferredApp(event) {\n const value = event.currentTarget.value;\n this.settings.preferredWebApp = value;\n }\n\n private resetThemeOnCancel() {\n const globalPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(globalPersonalization)) {\n this.settings.activeColorPalette = globalPersonalization.activeColorPalette;\n this.settings.theme = globalPersonalization.theme;\n this.settings.color = globalPersonalization.color;\n } else {\n this.settings.activeColorPalette = { uplift: true, soho: false };\n delete this.settings.theme;\n this.settings.color = LMColorId.default;\n }\n\n this.lmThemeService.setThemeAndColor(this.settings.theme, this.settings.color, this.settings.useCompactFormLayout);\n }\n\n private get displayKeyboardShortcuts(): boolean {\n if (this.lmBrowserUtilService.isMobile) {\n return false;\n }\n return true;\n }\n\n private get displayPreferredApplicationSwitcher(): boolean {\n this.availableApps = this.lmContextService.getAccessibleWebApps();\n\n try {\n const context = this.lmContextService.getContext();\n const configuredFeatures = context.configuredFeatures;\n const changePreferredApplicationStartPage = configuredFeatures.indexOf(AppConstants.FEATURE_ChangePreferredApplicationStartPage) > -1;\n\n if (this.availableApps.length === 1 || !changePreferredApplicationStartPage) {\n return false;\n }\n return true;\n } catch (e) {\n this.lmLoggerService.log([ 'LMApplicationMenuSettingsDialog', 'displayPreferredApplicationSwitcher', e ]);\n return false;\n }\n }\n\n public openKeyboardShortcutsDialog() {\n const dialogId = 'KeyboardShortcuts';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n },\n isDefault: true\n }\n ];\n\n this.dialog = this.sohoModalDialogService\n .modal(LMKeyboardShortcutsDialogComponent, this.placeHolder, { fullsize: 'responsive' })\n .buttons(buttons)\n .title(Soho.Locale.translate('KeyboardShortcuts'))\n .open();\n }\n}\n","
\n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n
\n \n \n
\n\n \n
\n \n \n
\n\n \n
\n \n \n
\n\n \n \n
\n
\n\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { LMRouteComponentService } from '@services/index';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport { LMApplicationMenuUserContextResult } from './lm-application-menu-usercontext-dialog.service';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'lm-application-menu-user-context',\n templateUrl: 'lm-application-menu-usercontext-dialog.component.html',\n providers: [ LMRouteComponentService, LMFormRequestService, LMHtmlPageUtilService ]\n})\nexport class LMApplicationMenuUserContextDialogComponent implements OnInit {\n @Input() userContextFields: LMApplicationMenuUserContextField[];\n @Input() dialog$: Subject;\n\n contextFields: any;\n busyIndicator: boolean;\n model: { [ key: string ]: LMApplicationMenuUserContextModelField };\n\n get saveChanges(): boolean {\n let save = false;\n\n let modelKeys = Object.keys(this.model);\n for (let i = 0; i < modelKeys.length; i++) {\n if (this.model[ modelKeys[ i ] ].dirty) {\n return true;\n }\n }\n\n return save;\n }\n\n constructor() {}\n\n ngOnInit() {\n this.model = {};\n\n if (this.userContextFields) {\n this.userContextFields.forEach((contextField: any) => {\n this.model [ contextField.contextPropertyId ] = {\n dirty: false,\n value: contextField.value\n }\n });\n }\n }\n\n public onContextValueChanged(field: LMApplicationMenuUserContextField) {\n this.model [ field.contextPropertyId ].value = field.value;\n }\n\n public onModelDirty(modelFieldDirty: any) {\n let dirty = modelFieldDirty.dirty;\n let field = modelFieldDirty.field;\n\n this.model [ field.contextPropertyId ].dirty = dirty;\n }\n}\n","
\n \n
\n \n \n \n \n
\n\n \n\n\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { Observable, Subject } from 'rxjs';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMApplicationMenuUserContextDialogComponent } from './lm-application-menu-usercontext-dialog.component';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\nexport enum LMApplicationMenuUserContextDialogStatus {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK,\n RESPONSE_SAVED\n}\n\nexport interface LMApplicationMenuUserContextResult {\n status: LMApplicationMenuUserContextDialogStatus;\n userContextFields?: LMBannerUserContextField[];\n userContextProperties?: { [ key: string ]: LMBannerUserContextModelField };\n saveChanges: boolean;\n}\n\n@Injectable()\nexport class LMApplicationMenuUserContextDialogService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n }\n\n /**\n * Prompt User Context dialog\n * @param viewContainerRef\n *\n * @return Observable\n */\n public promptUserContextDialog(placeholder: ViewContainerRef, userContextFields: LMBannerUserContextField[]): Observable {\n return new Observable(observer => {\n this.lmLoggerService.log([ 'LMReportPersonalizationDialog', 'formService.getFormSpec()', 'Complete' ]);\n\n let userContextDialog$: Subject = new Subject();\n let dlgComponent: LMApplicationMenuUserContextDialogComponent;\n let dialog: SohoModalDialogRef;\n\n const dialogId = 'ActorContext';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n dialog.close({\n status: LMApplicationMenuUserContextDialogStatus.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n dialog.close({\n status: LMApplicationMenuUserContextDialogStatus.RESPONSE_OK,\n userContextFields: dlgComponent.userContextFields,\n userContextProperties: dlgComponent.model,\n saveChanges: dlgComponent.saveChanges\n });\n },\n validate: false,\n isDefault: true\n }\n ];\n dialog = this.sohoModalDialogService\n .modal(LMApplicationMenuUserContextDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(Soho.Locale.translate('ActorContextDialogTitle'))\n .isAlert(false)\n .open()\n .apply((UserContextForm: LMApplicationMenuUserContextDialogComponent) => {\n dlgComponent = UserContextForm;\n if (userContextFields) {\n dlgComponent.userContextFields = userContextFields;\n }\n dlgComponent.dialog$ = userContextDialog$;\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n\n userContextDialog$.subscribe((result: LMApplicationMenuUserContextResult) => {\n if (result.status === LMApplicationMenuUserContextDialogStatus.RESPONSE_SAVED) {\n userContextDialog$.complete();\n dialog.close(result);\n }\n });\n });\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { SohoBusyIndicatorDirective, SohoModalDialogService, SohoTrackDirtyDirective } from 'ids-enterprise-ng';\nimport { LMContextService, LMFormatUtilService, LMLoggerService, LMSpecService } from '@app/services';\nimport { LMFormRequestService } from '@form/services';\nimport * as urltemplate from 'url-template';\n\n@Component({\n selector: 'lm-application-menu-user-context-field',\n template: `\n

{{ userContextField.label }}

\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n `\n})\nexport class LMApplicationMenuUserContextFieldComponent implements OnInit {\n @Input() userContextField: LMApplicationMenuUserContextField;\n @Output() contextValueChanged: EventEmitter = new EventEmitter();\n @Output() modelDirty: EventEmitter<{ dirty: boolean, field: LMApplicationMenuUserContextField }> = new EventEmitter<{ dirty: boolean, field: LMApplicationMenuUserContextField }>();\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(SohoTrackDirtyDirective) trackDirty: SohoTrackDirtyDirective;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n id: string;\n overrideId: string;\n states: Array;\n isDirty: boolean;\n modelFieldDirty: {\n dirty: boolean,\n field: LMApplicationMenuUserContextField\n };\n noValueText: string;\n URLOverrideLabel: string;\n actorContextLabel: string;\n\n // private fieldLookupDialog: SohoModalDialogRef;\n // private lookupSelectionEvent: LMLookupSelectionEvent;\n // private lookupSelectionSubscription;\n\n constructor(\n private ngZone: NgZone,\n private changeDetectionRef: ChangeDetectorRef,\n private lmSpecService: LMSpecService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormRequestService: LMFormRequestService,\n private lmLoggerService: LMLoggerService,\n private lmContextService: LMContextService\n ) {}\n\n ngOnInit() {\n this.noValueText = Soho.Locale.translate('ActorContextNoValueText');\n this.actorContextLabel = Soho.Locale.translate('ActorContextActorContextLabel');\n this.URLOverrideLabel = Soho.Locale.translate('ActorContextURLContextSessionKeyLabel');\n\n this.isDirty = false;\n\n this.modelFieldDirty = {\n dirty: false,\n field: this.userContextField\n };\n this.id = this.userContextField.contextPropertyId;\n this.overrideId = this.id + 'Override';\n\n this.states = [];\n this.states.push({\n value: this.userContextField.value,\n label: this.userContextField.value\n });\n\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.trackDirty) {\n this.trackDirty.resetDirty();\n }\n }, 1)\n });\n\n }\n\n source = (response: any, searchTerm: any) => {\n this.busyIndicator.activated = true;\n\n const compiledFormRequestUrl = urltemplate.parse(this.userContextField.userDefinedStatesUrl);\n\n let dataView = {\n resourceId: this.userContextField.id,\n representativeText: '',\n status: '',\n name: '',\n action: '',\n busClassName: this.userContextField.id,\n navigations: [],\n contextProperties: null,\n actionMeta: null,\n fields: {}\n }\n\n // TODO: put this in service to be shared with lm-dropdown\n this.lmFormRequestService\n .getUserDefinedStates(this.userContextField.userDefinedStatesUrl, this.userContextField.fieldId, dataView)\n .subscribe((result: LMUserDefinedResponse) => {\n let optionsAry;\n if (this.lmContextService.userDefinedStatesPageSizeAndIndicator) {\n if (result && result.hasOwnProperty('states') && Array.isArray(result.states)) {\n let zeroOrBlankValue = this.lmFormatUtilService.fieldStateFormatZeroValue(this.userContextField.type);\n optionsAry = this.lmFormatUtilService.fieldStatesToOptionsArray(result.states, true, zeroOrBlankValue);\n\n this.states = optionsAry;\n\n setTimeout(() => {\n // indicate to sohoxi dropdown to not create option tags\n response(optionsAry, true);\n this.busyIndicator.activated = false;\n }, 1);\n\n return;\n }\n } else {\n if (Array.isArray(result)) {\n let zeroOrBlankValue = this.lmFormatUtilService.fieldStateFormatZeroValue(this.userContextField.type);\n optionsAry = this.lmFormatUtilService.fieldStatesToOptionsArray(result, true, zeroOrBlankValue);\n\n this.states = optionsAry;\n\n setTimeout(() => {\n // indicate to sohoxi dropdown to not create option tags\n response(optionsAry, true);\n this.busyIndicator.activated = false;\n }, 1);\n\n return;\n }\n }\n\n // an error\n this.busyIndicator.activated = false;\n this.lmLoggerService.error([ 'Error in getUserDefinedStates', this.userContextField.id, result ]);\n },\n (error) => {\n this.busyIndicator.activated = false;\n this.lmLoggerService.error([ 'Error in getUserDefinedStates', this.userContextField.id, error ]);\n });\n };\n\n trackByValue(index: number, state: LMStateValue) {\n return state.value;\n }\n\n onValueChanged() {\n this.contextValueChanged.emit(this.userContextField);\n }\n\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n this.isDirty = false;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n onDirty(event: SohoTrackDirtyEvent) {\n this.isDirty = true;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n onPristine(event: SohoTrackDirtyEvent) {\n this.isDirty = false;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n /**\n * Need this code for future implementation as these context fields are truly lookups\n * Currently having issues with xiharness with 3.5 content\n */\n // onLookupClick = (e, lookup) => {\n // this.busyIndicator.activated = true;\n //\n // const buttons: SohoModalButton[] = [\n // {\n // text: Soho.Locale.translate('Cancel'),\n // // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // click: (e, modal) => {\n // this.busyIndicator.activated = false;\n // modal.close(true);\n // }\n // },\n // {\n // text: Soho.Locale.translate('Ok'),\n // isDefault: true,\n // // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // click: (e, modal) => {\n // // this.handleSelection();\n // }\n // }\n // ];\n //\n // this.lmSpecService.getListSpec(this.userContextField.selectListUrl)\n // .subscribe((listSpec: LMListSpec) => {\n // this.fieldLookupDialog = this.sohoModalDialogService\n // .modal(LMLookupDialogComponent, this.placeholder)\n // .buttons(buttons)\n // .title(listSpec.busListSpec.name)\n // .isAlert(true)\n // .open()\n // .apply((lookupDialog: LMLookupDialogComponent) => {\n // this.ngZone.run(() => {\n // lookupDialog.listSpec = listSpec;\n // lookupDialog.selectRequestData = {\n // viewType: 'form',\n // viewName: listSpec.busListSpec.name,\n // dataView: {\n // resourceId: this.userContextField.id,\n // representativeText: '',\n // status: '',\n // name: '',\n // action: '',\n // busClassName: listSpec.busClassSpec.name,\n // navigations: [],\n // contextProperties: null,\n // actionMeta: null,\n // fields: {}\n // },\n // };\n //\n // // ---------------------------------------------------------------------\n // // need to markForCheck on the next tick() so angular picks up the\n // // the list that is added to the dialog in this apply method.\n // // ---------------------------------------------------------------------\n // this.changeDetectionRef.markForCheck();\n //\n // // need to listen for all occurrences as will get a row selection for a 'deselection'\n // this.lookupSelectionSubscription =\n // lookupDialog.lookupSelection.subscribe((event: LMLookupSelectionEvent) => {\n // this.lookupSelectionEvent = event;\n // });\n //\n // lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n // this.fieldLookupDialog.close();\n // });\n // })\n // })\n // .afterClose(result => {\n // this.busyIndicator.activated = false;\n //\n // if (this.lookupSelectionSubscription) {\n // this.lookupSelectionSubscription.unsubscribe();\n // this.lookupSelectionSubscription = null;\n // }\n //\n // this.lookupSelectionEvent = null;\n // this.fieldLookupDialog = null;\n // });\n // },\n // (error: any) => {\n // this.busyIndicator.activated = false;\n // this.lmLoggerService.log([ 'LMLookupDialog error', error ]);\n // });\n // }\n //\n // private handleSelection() {\n // if (this.lookupSelectionEvent) {\n // let result: Array = this.lookupSelectionEvent.rows;\n // if (result && Array.isArray(result) && result.length > 0) {\n // let dataView: LMDataView = result[ 0 ].data;\n // let fields = dataView.fields;\n //\n // this.sohoLookup.setValue(this.lookupSelectionEvent.rows);\n //\n // if (fields.hasOwnProperty(this.userContextField.id)) {\n // this.value = fields[ this.userContextField.id ].value as string;\n // }\n // }\n // }\n //\n // this.fieldLookupDialog.close();\n // }\n}\n","export * from './lm-application-menu-header.component';\nexport * from './lm-application-menu-header-component-ref.service';\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Subject, Observable } from 'rxjs';\n\nimport { LMApplicationMenuHeaderComponent } from '@components/applicationmenu/header/lm-application-menu-header.component';\n\n/**\n * Special service used by a \"root router-outlet component\": i.e. ListComponent, FormComponent. etc...\n * to set the applicationMenu headers toolbar options and state.\n */\n@Injectable()\nexport class LMApplicationMenuHeaderComponentRef {\n private m_applicationMenuHeaderComponent: LMApplicationMenuHeaderComponent;\n\n public set instance(applicationMenuHeaderComponent: LMApplicationMenuHeaderComponent) {\n this.m_applicationMenuHeaderComponent = applicationMenuHeaderComponent;\n }\n\n public get instance(): LMApplicationMenuHeaderComponent {\n return this.m_applicationMenuHeaderComponent;\n }\n\n constructor(private location: Location) {\n // TODO: WIP make browser back/forward button work\n // to bring back state of backReferences\n // this.location.subscribe((value: PopStateEvent) => {\n // console.log(value);\n // });\n }\n\n // back reference stack maintained in LIFO manner\n private backReferences: BackReference[] = [];\n private backRefChanges = new Subject();\n\n public get backReferenceChanges$(): Observable {\n return this.backRefChanges.asObservable();\n }\n\n public pushBackReference(id: string, title: string) {\n const backTitle = this.instance.toolbarSectionTitle;\n\n this.instance.showGoBack = true;\n this.instance.toolbarSectionTitle = title;\n\n const backReference = { id, backTitle };\n this.backReferences.push(backReference);\n this.backRefChanges.next({ action: 'push', backReference });\n\n // TODO: WIP make browser back/forward button work\n // const currentPath = this.location.path();\n // this.location.go(`${currentPath}#${id}`, '', backReference);\n }\n\n public popBackReference() {\n if (!this.backReferences.length) {\n return;\n };\n\n const backReference = this.backReferences.pop();\n this.instance.toolbarSectionTitle = backReference.backTitle;\n this.backRefChanges.next({ action: 'pop', backReference });\n\n if (!this.backReferences.length) {\n this.instance.showGoBack = false;\n }\n // TODO: WIP make browser back/forward button work\n // this.location.back();\n }\n\n public lastBackReference(): BackReference {\n const length = this.backReferences.length;\n if (!length) {\n return null;\n }\n\n return this.backReferences[ length - 1 ];\n }\n\n public resetBackReferences() {\n if (this.backReferences.length) {\n this.instance.toolbarSectionTitle = this.backReferences[0].backTitle;\n this.instance.showGoBack = false;\n this.backReferences = [];\n }\n this.backRefChanges.next({ action: 'reset' });\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { SohoHeaderComponent, SohoTabsComponent } from 'ids-enterprise-ng';\nimport { LMApplicationMenuHeaderComponentRef } from '@components/applicationmenu/header/lm-application-menu-header-component-ref.service';\nimport { LMApplicationMenuService } from '../services/lm-application-menu.service';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMGlobalStateService } from '@states/services/lm-global-state.service';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMGlobalState } from '@states/models/lm-global-state.model';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMHarnessService } from '@services/lm-harness.service';\nimport { Observable } from 'rxjs';\nimport { LMColorId } from '../../banner/lm-theme.service';\nimport { LMContextService, LMRouteComponentService } from '@services/index';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { AppConstants } from '@utils/app.constants';\n\n@Component({\n selector: 'lm-application-menu-header',\n templateUrl: 'lm-application-menu-header.component.html',\n styleUrls: [ 'lm-application-menu-header.component.scss' ],\n providers: [ LMApplicationMenuService ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LMApplicationMenuHeaderComponent implements AfterViewChecked {\n @HostListener('click', [ '$event' ]) onClick(event) {\n if ((event.ctrlKey || event.metaKey) && event.shiftKey) {\n event.stopPropagation();\n const currComp: Component = this.currentComponent.getRouteComponent();\n if (currComp instanceof LMBaseComponent) {\n const baseComp: LMBaseComponent = currComp as LMBaseComponent;\n baseComp.displayComponentInfo(event, baseComp);\n }\n }\n }\n\n @HostBinding('class.header') get header() { return true; };\n @HostBinding('class.is-personalizable') get isPersonalizable() { return true; };\n @HostBinding('class.has-toolbar') get hasToolbar() { return true; };\n @HostBinding('class.xiHarness') get isJustTools() { return !this.m_isXiHarness; };\n @HostBinding('class.as-of-date') get hasAsOfDate() { return this.asOfDate !== undefined && this.asOfDate !== ''; };\n @HostBinding('attr.id') get elementId(): string { return 'app_Header'; }\n\n @ViewChild(LMToolbarComponent, { static: true }) lmToolbarComponent: LMToolbarComponent;\n @ViewChild(SohoTabsComponent) sohoTabsComponent: SohoTabsComponent;\n @ViewChild('SohoHeader', { static: true }) sohoHeader: SohoHeaderComponent;\n\n @Input() set toolbarSectionTitle(toolbarSectionTitle) {\n this.m_toolbarSectionTitle = toolbarSectionTitle;\n this.markForRefresh();\n }\n get toolbarSectionTitle(): string {\n return this.m_toolbarSectionTitle;\n }\n\n @Input() set toolbarButtons(toolbarButtons: Observable>) {\n this.m_toolbarButtons = toolbarButtons;\n this.changeDetector.markForCheck();\n }\n get toolbarButtons(): Observable> {\n return this.m_toolbarButtons;\n }\n\n @Input() set toolbarSearchField(toolbarSearchField: LMToolbarSearchField) {\n this.m_toolbarSearchField = toolbarSearchField;\n this.changeDetector.markForCheck();\n }\n\n get toolbarSearchField(): LMToolbarSearchField {\n return this.m_toolbarSearchField;\n }\n\n @Input() set hasTabs(hasTabs: boolean) {\n this.m_hasTabs = hasTabs;\n if (hasTabs) {\n this.elementRef.nativeElement.classList.add('has-tabs');\n } else {\n this.elementRef.nativeElement.classList.remove('has-tabs');\n }\n\n this.hasHeaderTabs.emit(this.m_hasTabs);\n }\n get hasTabs() {\n return this.m_hasTabs;\n }\n\n @Input() set disabled(disabled: boolean) {\n this.m_disabled = disabled;\n this.markForRefresh();\n }\n get disabled(): boolean { return this.m_disabled; }\n\n @Input() set showGoBack(show: boolean) {\n this._showGoBack = show;\n this.markForRefresh();\n }\n get showGoBack(): boolean { return this._showGoBack; }\n\n @Input() resizeToolbar: boolean;\n @Input() isListViewDetail: boolean;\n @Input() maxVisibleButtons: number;\n @Input() asOfDate: string;\n @Input() tabsOptions: LMTabsOptions;\n @Input() toolbarMoreSettings: SohoPopupMenuOptions;\n @Input() screenAutomationId: string;\n\n private _screenId: string;\n @Input() set screenId(screenId: string) {\n this._screenId = screenId;\n\n if (!this.testVersion1) {\n const pagePanelTabsetId = screenId + '_tabs';\n this.headerTabAttributes.push({ name: 'id', value: pagePanelTabsetId });\n }\n this.headerTabsetAutomationId = 'lm-' + screenId + '-tabs';\n\n this.headerTabAttributes.push({ name: 'data-automation-id', value: this.headerTabsetAutomationId });\n }\n get screenId(): string {\n return this._screenId;\n }\n\n @Output() tabActivated = new EventEmitter();\n @Output() toolbarButtonEvent = new EventEmitter();\n @Output() toolbarSearchEvent = new EventEmitter();\n @Output() toolbarSearchClearedEvent = new EventEmitter();\n @Output() hasHeaderTabs = new EventEmitter();\n @Output() asOfDateChanged: EventEmitter = new EventEmitter();\n @Output() useFullPageScrolling: EventEmitter = new EventEmitter();\n @Output() asOfDateCleared: EventEmitter = new EventEmitter();\n\n private m_webAppTitle: string;\n private m_hasTabs = false;\n private m_toolbarSectionTitle: string;\n private m_is3_5 = false;\n private m_documentTitleChanged = false;\n private m_toolbarButtons: Observable>;\n private m_toolbarSearchField = null;\n private m_disabled = false;\n private m_isXiHarness = false;\n private m_fullPageScroll: boolean;\n\n private _showGoBack = false;\n private applicationMenuState: LMGlobalState = {};\n private applicationMenuPersonalization: LMGlobalPersonalization = { theme: 'theme-classic-light', color: LMColorId.default };\n public testVersion1: boolean;\n public headerTabAttributes: SohoAttributesArray = [];\n public headerTabsetAutomationId: string;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private titleService: Title,\n private lmApplicationMenuHeaderComponentRef: LMApplicationMenuHeaderComponentRef,\n private lmContextService: LMContextService,\n private currentComponent: LMRouteComponentService,\n private lmHarnessService: LMHarnessService,\n private lmGlobalStateService: LMGlobalStateService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n ) {\n this.lmApplicationMenuHeaderComponentRef.instance = this;\n this.loadComponentState();\n this.m_isXiHarness = this.lmHarnessService.isXiHarness();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.m_webAppTitle = this.lmContextService.getContext().webAppTitle;\n }\n\n ngAfterViewChecked() {\n if (!this.m_documentTitleChanged) {\n return;\n }\n\n if (this.toolbarSectionTitle?.length > 0) { // != null && this.toolbarSectionTitle.length && this.toolbarSectionTitle.length > 0) {\n this.titleService.setTitle(this.toolbarSectionTitle + ' / ' + this.m_webAppTitle);\n } else {\n this.titleService.setTitle(this.m_webAppTitle);\n }\n }\n\n onToolbarBackButtonEvent() {\n this.lmApplicationMenuHeaderComponentRef.popBackReference();\n }\n\n onToolbarButtonEvent(event) {\n this.toolbarButtonEvent.emit(event);\n }\n\n onToolbarSearchEvent(event) {\n this.toolbarSearchEvent.emit(event);\n }\n\n onToolbarSearchClearedEvent(event) {\n this.toolbarSearchClearedEvent.emit(event);\n }\n\n onTabActivated(tabActivatedEvent: any) {\n this.tabActivated.emit(tabActivatedEvent);\n }\n\n onAsOfDateChangedEvent(date: string) {\n this.asOfDate = date;\n this.asOfDateChanged.emit(date);\n }\n\n public onAsOfDateCleared(): void {\n this.asOfDateCleared.emit();\n }\n\n private markForRefresh() {\n this.m_documentTitleChanged = true;\n\n // ... make sure the change detector kicks in, otherwise if the inputs\n // were change programmatially the component may not be eligible for\n // updating.\n this.changeDetector.markForCheck();\n }\n\n public set is3_5(is3_5: boolean) {\n this.m_is3_5 = is3_5;\n }\n\n public get is3_5(): boolean {\n return this.m_is3_5;\n }\n\n public set fullPageScroll(fullPS: boolean) {\n this.m_fullPageScroll = fullPS;\n\n this.useFullPageScrolling.emit(fullPS);\n }\n\n loadComponentState(): void {\n this.applicationMenuState = this.lmGlobalStateService.getGlobalState();\n this.applicationMenuPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n }\n\n saveComponentState(): void {\n this.lmGlobalStateService.saveGlobalState(this.applicationMenuState);\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.applicationMenuPersonalization);\n }\n}\n","\n\n \n \n\n
\n
\n \n
\n
\n\n
\n","export * from './asofdate';\nexport * from './dialog';\nexport * from './header';\nexport * from './menu';\nexport * from './proxymenu';\nexport * from './search';\nexport * from './services';\nexport * from './submenu';\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Directive, ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input, OnDestroy, OnInit,\n Output, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoMessageService, SohoModalDialogRef,\n SohoModalDialogService,\n SohoToastService\n} from 'ids-enterprise-ng';\nimport {\n AsOfDateDialogStatus,\n AsOfDateResult, LMActionFormDialogResult, LMActionFormDialogResultCode,\n LMActionFormDialogService,\n LMApplicationMenuAsOfDateDialogService, LMApplicationMenuProxyMenuComponent,\n LMApplicationMenuSearchService,\n LMApplicationMenuService,\n LMApplicationMenuSettingsDialogComponent,\n LMApplicationMenuUserContextDialogService, LMApplicationMenuUserContextDialogStatus,\n LMApplicationMenuUserContextResult,\n LMFormRequestService,\n LMLoginService, LMReportPersonalizationDialogResult, LMReportPersonalizationDialogResultCode,\n LMReportPersonalizationDialogService, LoginDialogStatus, LoginResult\n} from '@app/components';\nimport {\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMSpecService, LMUrlUtilService\n} from '@app/services';\nimport {\n AppConstants,\n LMContextUtilService,\n LMDialogButtonKey,\n LMGlobalUtilService,\n LMUniqueIdService\n} from '@app/utils';\nimport { LMGlobalPersonalization, LMGlobalPersonalizationService } from '@app/states';\nimport { Router } from '@angular/router';\nimport { EMPTY, forkJoin, interval, Observable, Subject } from 'rxjs';\nimport { SubscriptionLike as ISubscription } from 'rxjs/internal/types';\nimport { debounceTime, first, switchMap, takeUntil } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport * as _ from 'lodash';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\ninterface ApplicationMenuButton {\n icon: string;\n label: string;\n id: string;\n url: string;\n automationId: string;\n}\n\n@Directive()\nexport abstract class LMApplicationMenuBaseDirective implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\n private notificationRefreshInterval: number;\n private unreadNotificationCount: number;\n private _displayRedDot = false;\n private m_asOfDate: string;\n private m_showDeletedRecords: boolean;\n private stopInterval$ = new Subject();\n private pause$ = new Subject();\n public searchFieldText$ = new Subject();\n private destroyer$ = new Subject();\n private dialog: SohoModalDialogRef;\n private subscriptionArray: Array = []; // todo: type me!\n\n public mingleMode: boolean;\n public applicationMenuSpecs: Array;\n public webAppMenuSpecs: Array; // todo: type me!\n public aboutLink: string;\n public appHelpLink: string;\n public notificationsUrl: string;\n public inBasketUrl: string;\n public jobsUrl: string;\n public printFilesUrl: string;\n public actionsUrl: string;\n public reportsUrl: string;\n public personalizationsUrl: string;\n public mySavedSearchesUrl: string;\n public actorName: string;\n public actorInitials: string;\n public actorInitialsColorClass: string;\n public anonymousUser: boolean;\n public proxyMode: boolean;\n public notificationEnabled: boolean;\n public inbasketEnabled: boolean;\n public personalizationEnabled: boolean;\n public enableSavedSearch: boolean;\n public proxyEnabled: boolean;\n public selectedMenuSpec: Array; // todo: type me!\n public menuSpecs: Array; // todo: type me!\n public searchMenuSpecs: Array;\n public webAppTitle: string;\n public webAppName: string;\n public selectedWebAppName: string;\n public webAppSuiteLink: string;\n public appSwitcher: LMApplicationMenuAppMenuMode;\n public webAppMenuNavigationUrl: string;\n public signOutLink: string;\n public signInLink: string;\n public registerLink: string;\n public changePasswordLink: string;\n public proxyManagementLink: string;\n public createReportUrl: string;\n public actorGroupSelectUrl: string;\n public roleSelectUrl: string;\n public roleGroupSelectUrl: string;\n public reportFieldSearchUrl: string;\n public enableUserContextMenu: boolean;\n public hasRegisterLink: boolean;\n public hasChangePasswordLink: boolean;\n public allowSetAsOfDate: boolean;\n public allowClearAsOfDate: boolean;\n public searchMode: boolean;\n public updateRequired: boolean;\n public roleSwitcher: boolean;\n public noCasualApps: number;\n public clientLogin: boolean;\n public actorUrl: string;\n public proxyUserUrls: any;\n public proxyWebApps: Array = []; // todo: type me!\n public proxyResetUrls: any;\n public menuSearchField: LMToolbarSearchField;\n public model = { searchFieldValue: '' };\n public menuSearchResultsByWebApp: LMApplicationMenuSearchResults;\n public reportSearchResult: Array;\n public dataSearchResult: Array;\n\n // Button menu\n public applicationMenuButtons: ApplicationMenuButton[] = [];\n\n // Single button\n public notificationsButton: ApplicationMenuButton;\n public createReportButton: ApplicationMenuButton;\n public printFilesButton: ApplicationMenuButton;\n public inbasketButton: ApplicationMenuButton;\n\n public showSearch: boolean;\n public isClassicTheme: boolean;\n public rolesPaneIsOpen = false;\n\n public get displayRedDot(): boolean {\n return this._displayRedDot;\n }\n\n public set displayRedDot(display: boolean) {\n this._displayRedDot = display;\n }\n\n public get isPasswordReset(): boolean {\n return this.lmContextService.getContext().completePasswordReset;\n }\n\n @Input() visibility: string;\n\n @Input() set asOfDate(date: string) {\n this.allowClearAsOfDate = date !== undefined && date !== '';\n\n this.m_asOfDate = date;\n\n // only load menu when initial load has been done\n if (this.applicationMenuSpecs) {\n this.menuSpecs = [];\n this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n }\n\n get asOfDate() {\n return this.m_asOfDate;\n }\n\n @Input() set showDeletedRecords(show: boolean) {\n this.m_showDeletedRecords = show;\n\n // only load menu when initial load has been done\n if (this.applicationMenuSpecs) {\n this.menuSpecs = [];\n this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n }\n\n get showDeletedRecords() {\n return this.m_showDeletedRecords;\n }\n\n @Input() applyColorToMenu: boolean;\n\n @HostBinding('style.visibility') get hostVisibility() {\n return this.visibility;\n };\n\n @HostBinding('style.overflow') get hostOverflow() {\n return this.rolesPaneIsOpen ? 'hidden' : null;\n }\n\n @Output() menuLoaded: EventEmitter = new EventEmitter();\n @Output() menuStateRestored: EventEmitter = new EventEmitter();\n @Output() webAppMenuLoaded: EventEmitter = new EventEmitter();\n @Output() menuSearched: EventEmitter = new EventEmitter();\n @Output() asOfDateChanged: EventEmitter = new EventEmitter();\n @Output() asOfDateCleared: EventEmitter = new EventEmitter();\n @Output() roleSelected = new EventEmitter();\n @Output() themeChanged: EventEmitter = new EventEmitter();\n\n @ViewChild('UserSettingsDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild('AccessDeniedDialog', { read: ViewContainerRef, static: true }) accessDeniedplaceholder: ViewContainerRef;\n @ViewChild('LoginDialog', { read: ViewContainerRef, static: true }) loginPlaceholder: ViewContainerRef;\n @ViewChild('ChangePasswordDialog', { read: ViewContainerRef, static: true }) changePasswordPlaceholder: ViewContainerRef;\n @ViewChild('DrillbackActionFormDialog', { read: ViewContainerRef, static: true }) drillbackPlaceholder: ViewContainerRef;\n @ViewChild('ReportPersonalizationDialog', { read: ViewContainerRef, static: true }) reportPlaceholder: ViewContainerRef;\n @ViewChild('SetAsOfDateDialog', { read: ViewContainerRef, static: true }) setAsOfDatePlaceholder: ViewContainerRef;\n @ViewChild('UserContextDialog', { read: ViewContainerRef, static: true }) userContextPlaceholder: ViewContainerRef;\n @ViewChild('webAppMenuHeader') private _webAppMenu: ElementRef;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n\n constructor(\n protected sohoModalDialogService: SohoModalDialogService,\n protected sohoToastService: SohoToastService,\n protected lmAsOfDateService: LMApplicationMenuAsOfDateDialogService,\n protected lmContextService: LMContextService,\n protected lmApplicationMenuService: LMApplicationMenuService,\n protected lmFormRequestService: LMFormRequestService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmSpecService: LMSpecService,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmGlobalUtilService: LMGlobalUtilService,\n protected lmLoginService: LMLoginService,\n protected lmContextUtilService: LMContextUtilService,\n protected lmReportPersonalizationDialogService: LMReportPersonalizationDialogService,\n protected lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n protected lmUniqueIdService: LMUniqueIdService,\n protected sohoMessageService: SohoMessageService,\n protected lmApplicationMenuSearchService: LMApplicationMenuSearchService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmUserContextService: LMApplicationMenuUserContextDialogService,\n @Inject(forwardRef(() => LMActionFormDialogService)) protected lmActionFormDialogService,\n protected changeDetectorRef: ChangeDetectorRef,\n protected router: Router,\n protected lmThemeService: LMThemeService\n ) {\n this.searchFieldText$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1000))\n .subscribe(value => {\n const length = value ? value.length : 0;\n if (length > 2) {\n this.applicationMenuSearch();\n }\n });\n }\n\n ngOnInit() {\n this.lmLoggerService.trace('@ApplicationMenuBaseDirective -> ngOnInit');\n this.searchMode = false;\n this.updateRequired = false;\n this.menuSpecs = [];\n this.roleSwitcher = false;\n this.webAppSwitcherButtonId = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ? 'trigger-btn' : 'webapp-menu';\n this.getApplicationMenuPersonalization();\n this.showSearch = !this.lmContextService.getContext().configuredFeatures.includes('HideMenuSearch');\n\n this.lmThemeService.getThemeChangeSubject().subscribe((theme) => {\n if (theme.includes('theme-classic') && !this.isClassicTheme) {\n this.isClassicTheme = true;\n this.changeDetectorRef.markForCheck();\n } else {\n this.isClassicTheme = false;\n this.changeDetectorRef.markForCheck();\n }\n });\n }\n\n ngAfterViewInit() {\n this.mingleMode = this.lmContextService.inMingle();\n this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.stopInterval$.next(true);\n this.stopInterval$.complete();\n this.pause$.complete();\n this.destroyer$.next();\n this.destroyer$.complete();\n }\n\n public ngAfterViewChecked(): void {\n if (this.updateRequired) {\n this.onWebAppMenuLoaded();\n this.updateRequired = false;\n }\n }\n\n /**\n * Set href url when a right click is executed\n * @param event\n * @param menuItem\n */\n public onRoleRightClick(event: MouseEvent, menuItem: LMMenuItemSpec) {\n if (menuItem && menuItem.webAppUrl) {\n (event.currentTarget as HTMLElement).setAttribute('href', menuItem.webAppUrl);\n }\n }\n\n public selectRole($event?: any) {\n this.menuSpecs = [];\n this.roleSwitcher = true;\n this.changeDetectorRef.detectChanges();\n this.roleSelected.emit();\n\n this.showBusyIndicator();\n\n const button: any = $event.currentTarget;\n let url = button.getAttribute('navigation-menu-url');\n\n this.webAppTitle = button.getAttribute('title');\n this.webAppName = button.getAttribute('web-app-name');\n\n // For webapp without a navigation menu\n if (!url) {\n this.selectedMenuSpec = [];\n this.webAppMenuSpecs = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n const currWebAppSpec = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n\n this.selectedMenuSpec.push(\n {\n resourceId: currWebAppSpec[ 0 ].webAppName,\n name: 'Home',\n link: currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n\n this.buildMenuSpecs(this.menuSpecs, this.webAppName, this.webAppTitle, this.selectedMenuSpec);\n this.markForRefresh();\n this.updateRequired = true;\n\n this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n this.lmGlobalUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n\n this.hideBusyIndicator();\n } else {\n\n const loadAllLevels = this.lmApplicationMenuService.loadAllLevels();\n\n if (loadAllLevels) {\n url = `${url}&allLevels=true`;\n }\n\n this.subscriptionArray.push(\n this.lmSpecService.getApplicationMenuSpec(url).subscribe(\n response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, this.selectedMenuSpec);\n\n this.signOutLink = response.signOutLink;\n\n this.resetMenuPersonalization();\n\n this.lmApplicationMenuService.setApplicationMenuSpec(this.selectedMenuSpec);\n\n this.lmApplicationMenuService.updateApplicationMenuSpec(response.menuSpecs, url);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.webAppMenuSpecs = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n\n const currWebAppSpec = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n\n this.lmGlobalUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n })\n );\n }\n }\n\n public get webAppMenuHeader(): ElementRef {\n const webAppMenuName = this.selectedWebAppName ? this.selectedWebAppName : this.webAppName;\n // @ts-ignore\n\n if (this._webAppMenu && this._webAppMenu.nativeElement.getAttribute('id') === webAppMenuName) {\n return this._webAppMenu;\n }\n return null;\n }\n\n public onMenuLoaded(event) {\n this.menuLoaded.emit(event);\n }\n\n public onWebAppMenuLoaded() {\n this.webAppMenuLoaded.emit(this.roleSwitcher);\n }\n\n public onMenuSearched(event: LMApplicationMenuSearchEvent) {\n this.menuSearched.emit(event);\n }\n\n public openUserSettingsDialog() {\n const dialogId = 'UserSettings';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.SAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SAVE),\n click: (e, modal) => {\n modal.close(true);\n },\n isDefault: true\n }\n ];\n\n const settingsModalAttributes: SohoAttributesArray = [\n { name: 'data-automation-id', value: 'lm-settings-modal' }\n ];\n\n this.dialog = this.sohoModalDialogService\n .modal(\n LMApplicationMenuSettingsDialogComponent,\n this.placeholder,\n { fullsize: 'responsive', attributes: settingsModalAttributes })\n .buttons(buttons)\n .title(Soho.Locale.translate(dialogId))\n .open();\n }\n\n public openSetAsOfDateDialog(): void {\n const date = this.lmContextService.getContext().asOfDate ? this.lmFormatUtilService.yyyymmddToDisplay(this.asOfDate) : null;\n this.lmAsOfDateService.promptAsOfDateDialog(this.setAsOfDatePlaceholder, date)\n .pipe(first())\n .subscribe((result: AsOfDateResult) => {\n if (result.status !== AsOfDateDialogStatus.RESPONSE_OK) {\n return;\n }\n this.lmLoggerService.log(result.date);\n const dbDate = this.lmFormatUtilService.yyyymmddToData(result.date);\n this.asOfDateChanged.emit(dbDate);\n });\n }\n\n public clearAsOfDate() {\n this.asOfDateCleared.emit();\n }\n\n public openSetUserContextDialog() {\n const userContextUrl = this.lmUrlUtilService.getUserContextUrl();\n\n this.lmSpecService.getApplicationMenuSpec(userContextUrl).subscribe(\n (response: any) => {\n const userContextDialog = this.lmUserContextService.promptUserContextDialog(this.userContextPlaceholder, response.userContextFields)\n .subscribe(\n (result: LMApplicationMenuUserContextResult) => {\n if (result.status === LMApplicationMenuUserContextDialogStatus.RESPONSE_OK) {\n if (result.userContextProperties && result.saveChanges) {\n\n const jsonContextPropertiesArray = [];\n Object.keys(result.userContextProperties).forEach(key => {\n const userContextModel: LMApplicationMenuUserContextModelField = result.userContextProperties[ key ];\n if (userContextModel.dirty) {\n const jsonContextProperty = {\n id: key,\n value: userContextModel.value\n };\n jsonContextPropertiesArray.push(jsonContextProperty);\n }\n });\n\n this.lmApplicationMenuService.updateActorContext(userContextUrl, jsonContextPropertiesArray).subscribe((ucResponse: any) => {\n if (ucResponse.status === 'COMPLETED') {\n window.location.href = this.lmContextService.getCurrentWebAppSpec().webAppUrl;\n }\n });\n }\n }\n }\n );\n this.markForRefresh();\n // this.updateRequired = true;\n this.subscriptionArray.push(userContextDialog);\n },\n error => {\n this._handleError(error);\n });\n return false;\n }\n\n public noActorUrl() { // tslint:disable-line (template)\n return (this.actorUrl === '#' || this.actorUrl == null);\n }\n\n public openLink(link: string) {\n const compiledTemplate = urltemplate.parse(link);\n link = compiledTemplate.expand({\n urlPdlOrDa: this.lmContextService.getUrlPdlOrDa(),\n webApp: this.lmContextService.getCurrentWebAppSpec().webAppName\n });\n this.lmGlobalUtilService.navigateByUrl(link);\n }\n\n public openHelpLink() {\n this.lmUrlUtilService.openExternalUrl(this.appHelpLink);\n }\n\n public openSecurityLink(link: string) {\n this.resetLastOpenedMenu();\n window.location.href = link;\n }\n\n private resetLastOpenedMenu() {\n const applicationMenuPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n if (!_.isEmpty(applicationMenuPersonalization) && applicationMenuPersonalization.lastOpenedMenu) {\n applicationMenuPersonalization.lastOpenedMenu = '';\n }\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(applicationMenuPersonalization);\n }\n\n public _loadMenu(url: string, syncWebApp?: boolean): void {\n this.lmLoggerService.trace('@ApplicationMenuBaseDirective -> loadApplicationMenuSpec');\n this.showBusyIndicator();\n\n if (syncWebApp) {\n this.webAppMenuSpecs = [];\n this.markForRefresh();\n this.updateRequired = true;\n }\n\n this.subscriptionArray.push(this.lmSpecService.getApplicationMenuSpec(url).subscribe(\n (applicationMenuSpec: LMApplicationMenuSpec) => {\n this.applicationMenuSpecs = applicationMenuSpec.webApps;\n this.appSwitcher = 'casual'; // applicationMenuSpec.appSwitcher || 'accordion';\n this.noCasualApps = applicationMenuSpec.noCasualApps;\n this.aboutLink = applicationMenuSpec.aboutLink;\n this.appHelpLink = applicationMenuSpec.appHelpLink;\n this.actionsUrl = applicationMenuSpec.myActionsUrl;\n this.inBasketUrl = applicationMenuSpec.myInBasketUrl;\n this.jobsUrl = applicationMenuSpec.myJobsUrl;\n this.notificationsUrl = applicationMenuSpec.myNotificationsUrl;\n this.printFilesUrl = applicationMenuSpec.myPrintFilesUrl;\n this.reportsUrl = applicationMenuSpec.myReportsUrl;\n this.personalizationsUrl = applicationMenuSpec.myPersonalizationsUrl;\n this.mySavedSearchesUrl = applicationMenuSpec.mySavedSearchesUrl;\n this.createReportUrl = applicationMenuSpec.createReportUrl;\n this.actorGroupSelectUrl = applicationMenuSpec.actorGroupSelectUrl;\n this.roleSelectUrl = applicationMenuSpec.roleSelectUrl;\n this.roleGroupSelectUrl = applicationMenuSpec.roleGroupSelectUrl;\n this.reportFieldSearchUrl = applicationMenuSpec.reportFieldSearchUrl;\n this.signOutLink = applicationMenuSpec.signOutLink;\n this.registerLink = applicationMenuSpec.registerLink;\n this.signInLink = applicationMenuSpec.signInLink;\n this.changePasswordLink = applicationMenuSpec.changePasswordLink;\n this.actorName = applicationMenuSpec.actorInfo.displayName[ 0 ];\n this.actorInitials = this.getActorInitials();\n this.actorInitialsColorClass = this.lmThemeService.getUniqueBackgroundColorClass(this.actorInitials);\n this.actorUrl = applicationMenuSpec.actorInfo.actorUrl[ 0 ];\n this.proxyUserUrls = applicationMenuSpec.proxyUserUrls;\n if (this.proxyUserUrls) {\n this.proxyWebApps = Object.keys(this.proxyUserUrls);\n }\n this.proxyResetUrls = applicationMenuSpec.proxyResetUrls;\n this.proxyMode = applicationMenuSpec.proxyMode || false;\n this.proxyEnabled = applicationMenuSpec.proxyEnabled || false;\n this.proxyManagementLink = applicationMenuSpec.proxyManagementLink;\n this.anonymousUser = applicationMenuSpec.anonymousUser || false;\n this.clientLogin = applicationMenuSpec.clientLogin || false;\n this.webAppMenuNavigationUrl = applicationMenuSpec.webAppMenuNavigationUrl;\n if (this.lmGlobalPersonalizationService.getGlobalPersonalization().preferredWebApp !== undefined) {\n const preferredAppName = this.lmGlobalPersonalizationService.getGlobalPersonalization().preferredWebApp;\n const preferredAppSpec = this.applicationMenuSpecs.find((preferredApp: LMWebAppSpec) => preferredApp.webAppName === preferredAppName);\n if ((this.lmContextService.getContext().webApp === preferredAppName) && preferredAppSpec !== undefined) {\n this.webAppMenuNavigationUrl = preferredAppSpec.navigationMenuUrl;\n }\n }\n this.webAppTitle = this.lmContextService.getContext().webAppTitle;\n this.webAppName = this.lmContextService.getContext().webApp;\n this.selectedWebAppName = this.webAppName;\n this.webAppSuiteLink = applicationMenuSpec.webAppSuiteLink;\n\n this.hasRegisterLink = (this.registerLink === '' || this.registerLink == null) ? false : true;\n this.hasChangePasswordLink = (this.changePasswordLink === '' || this.changePasswordLink == null) ? false : true;\n\n this.allowSetAsOfDate = applicationMenuSpec.allowSetAsOfDate;\n this.allowClearAsOfDate = this.asOfDate !== undefined && this.asOfDate !== '';\n\n this.enableUserContextMenu = applicationMenuSpec.enableUserContextMenu;\n\n // TODO: Akila, is this right? Seems to always be true. And ignores the config param setting\n this.inbasketEnabled = applicationMenuSpec.inbasketEnabled || true;\n this.notificationEnabled = applicationMenuSpec.notificationEnabled || true;\n this.personalizationEnabled = applicationMenuSpec.personalizationEnabled;\n this.enableSavedSearch = this.lmContextService.showUserListView();\n\n if (this.isPasswordReset) {\n this.hideBusyIndicator();\n this.markForRefresh();\n this.updateRequired = true;\n this.lmLoggerService.trace('@ApplicationMenuBaseDirective -> loadApplicationMenuSpec -> complete');\n return;\n }\n\n this.updateMenuButtons();\n\n if (this.notificationEnabled) {\n this.notificationRefreshInterval = (applicationMenuSpec.refreshIntervalMinutes) ? parseInt(applicationMenuSpec.refreshIntervalMinutes, 10) : 5;\n this.unreadNotificationCount = (applicationMenuSpec.unreadCount) ? parseInt(applicationMenuSpec.unreadCount, 10) : 0;\n this.displayRedDot = this.unreadNotificationCount > 0;\n\n // Poll to check unread notification count\n const interval$ = interval(this.notificationRefreshInterval * 60 * 1000).pipe(\n takeUntil(this.stopInterval$)\n );\n // Pause during async call to get the notification count.\n const pausable$ = this.pause$.pipe(\n switchMap(paused => paused ? EMPTY : interval$));\n\n this.subscriptionArray.push(pausable$.subscribe(() => {\n this.getUnreadNotificationCount();\n }));\n\n this.pause$.next(false);\n }\n\n if (!this.webAppMenuNavigationUrl) {\n if (this.useAppSwitcher()) {\n this.selectedMenuSpec = [];\n this.webAppMenuSpecs = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n if (this.webAppMenuSpecs.length === 0 || this.webAppMenuSpecs.length > this.noCasualApps - 1) {\n this.roleSwitcher = true;\n }\n\n const currWebAppSpec = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n this.selectedMenuSpec.push(\n {\n resourceId: this.webAppName,\n name: 'Home',\n link: this.webAppName === 'web' ? this.webAppSuiteLink : currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n\n this.buildMenuSpecs(this.menuSpecs, this.webAppName, this.webAppTitle, this.selectedMenuSpec);\n\n this.markForRefresh();\n this.updateRequired = true;\n } else {\n this.lmApplicationMenuService.updateApplicationMenuSpec(applicationMenuSpec.webApps);\n }\n } else {\n if (this.useAppSwitcher()) {\n this.loadWebAppMenuSpec();\n } else {\n this.lmApplicationMenuService.updateApplicationMenuSpec(applicationMenuSpec.webApps);\n }\n }\n\n this.hideBusyIndicator();\n this.lmLoggerService.trace('@ApplicationMenuBaseDirective -> loadApplicationMenuSpec -> complete');\n },\n error => {\n // acces denied error is handled in app.component.ts\n if (error.status !== 403) {\n this._handleError(error);\n }\n }));\n }\n\n private saveAllLevelsResponse(response) {\n const self = this;\n const expandedMenus = this.lmApplicationMenuService.getExpandedMenus();\n\n if (expandedMenus && expandedMenus.length > 0) {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n response.menuSpecs.map(function callback(menuItemSpec: LMMenuItemSpec) {\n if (expandedMenus.includes(menuItemSpec.menuIndex)) {\n menuItemSpec.expanded = true;\n }\n\n if (menuItemSpec.menuIndex === self.lmApplicationMenuService.getLastMenuItemClicked()) {\n menuItemSpec.selected = true;\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n menuItemSpec.menu.map(callback);\n }\n });\n }\n\n this.lmApplicationMenuService.saveAllLevelsResponse(response);\n }\n\n private loadWebAppMenuSpec() {\n const self = this;\n const loadAllLevels = this.lmApplicationMenuService.loadAllLevels();\n let webAppMenuNavigationUrl = this.webAppMenuNavigationUrl;\n\n if (loadAllLevels) {\n webAppMenuNavigationUrl = `${this.webAppMenuNavigationUrl}&allLevels=true`;\n }\n\n this.subscriptionArray.push(this.lmSpecService.getApplicationMenuSpec(webAppMenuNavigationUrl)\n .subscribe(async response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n } else {\n /**\n * Check state to see if there were previously expanded menus\n * Load all levels from previously expanded menus\n * Only do this if loadAllLevels is false\n */\n if (response.menuSpecs\n && (this.lmApplicationMenuService.getExpandedMenus()\n && this.lmApplicationMenuService.getExpandedMenus().length > 0)\n ) {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n await Promise.all(response.menuSpecs.map(async function callback(menuItemSpec: LMMenuItemSpec) {\n if (self.lmApplicationMenuService.getExpandedMenus().includes(menuItemSpec.menuIndex)) {\n menuItemSpec.menu = await self.getSubMenu(menuItemSpec.link);\n menuItemSpec.expanded = true;\n\n if (menuItemSpec.menuIndex === self.lmApplicationMenuService.getLastMenuItemClicked()) {\n menuItemSpec.selected = true;\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n await Promise.all(menuItemSpec.menu.map(callback));\n }\n }\n }));\n }\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, this.selectedMenuSpec);\n this.lmApplicationMenuService.updateApplicationMenuSpec(response.menuSpecs, this.webAppMenuNavigationUrl);\n this.webAppMenuSpecs = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n // if (this.webAppMenuSpecs.length === 0 || this.webAppMenuSpecs.length > this.noCasualApps - 1) {\n // this.roleSwitcher = true;\n // }\n\n // Role switcher true for multiple webapps in v2\n this.roleSwitcher = true;\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.lmContextUtilService.setDrillbackDialogElement(this.drillbackPlaceholder, this.lmActionFormDialogService);\n const dialogId = 'ApplicationMenuResponse';\n\n if (response.buildBaseMenuMessage) {\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate(response.buildBaseMenuMessage))\n .title('')\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n }\n },\n ])\n .open();\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n private async getSubMenu(url: string): Promise> {\n return new Promise((resolve, reject) => {\n this.lmSpecService.getApplicationMenuSpec(url).subscribe((response) => {\n resolve(response.menuSpecs);\n });\n });\n }\n\n /**\n * Data and reporting options are disabled by default.\n * And should display if included in the configured features list.\n * @param buttonName\n * @private\n */\n private showDataAndReportingOptions(buttonName: LMConfiguredFeatures): boolean {\n return this.lmContextService.getContext().configuredFeatures.includes(buttonName);\n }\n\n /**\n * Show if not in configured features list.\n * Application menu options are enabled by default.\n * If application menu option is in config features list then it was disabled and shouldn't be displayed\n * @param buttonName\n * @private\n */\n private showApplicationMenuOption(buttonName: LMConfiguredFeatures): boolean {\n return !this.lmContextService.getContext().configuredFeatures.includes(buttonName);\n }\n\n private updateMenuButtons() {\n const notificationsButton = {\n icon: 'notification',\n label: Soho.Locale.translate('Notifications'),\n id: 'Notifications_button',\n automationId: 'lm-appmenu-notifications-button',\n url: this.notificationsUrl\n };\n\n const createReportButton = {\n icon: '',\n label: Soho.Locale.translate('CreateReport'),\n id: 'CreateReport_link',\n automationId: 'lm-appmenu-create-report-button',\n url: ''\n };\n\n this.applicationMenuButtons = new Array();\n\n if (this.showApplicationMenuOption('HideMenuPrintFiles')) {\n if (this.mingleMode) {\n this.printFilesButton = {\n icon: 'print',\n label: Soho.Locale.translate('PrintFiles'),\n id: 'PrintFiles_button',\n automationId: 'lm-appmenu-print-files-button',\n url: this.printFilesUrl\n };\n } else {\n this.applicationMenuButtons.push({\n icon: 'print',\n label: Soho.Locale.translate('PrintFiles'),\n id: 'PrintFiles_button',\n automationId: 'lm-appmenu-print-files-button',\n url: this.printFilesUrl\n });\n }\n }\n\n // Notifications button V1 or old banner\n if (this.notificationEnabled && !this.lmContextService.isApplicationMenuV2()) {\n this.applicationMenuButtons.push(notificationsButton);\n }\n\n // Notifications button if v2\n if ((this.notificationEnabled && this.lmContextService.isApplicationMenuV2()) && this.showApplicationMenuOption('HideMenuNotifications')) {\n this.notificationsButton = notificationsButton;\n }\n\n // Reports button\n if (this.showDataAndReportingOptions('CreateReport')) {\n this.createReportButton = createReportButton;\n }\n\n if (this.inbasketEnabled && this.showApplicationMenuOption('HideMenuInbasket')) {\n if (this.mingleMode) {\n this.inbasketButton = {\n icon: 'download',\n label: Soho.Locale.translate('Inbasket'),\n id: 'Inbasket_button',\n automationId: 'lm-appmenu-in-basked-button',\n url: this.inBasketUrl\n };\n } else {\n this.applicationMenuButtons.push({\n icon: 'download',\n label: Soho.Locale.translate('Inbasket'),\n id: 'Inbasket_button',\n automationId: 'lm-appmenu-in-basket-button',\n url: this.inBasketUrl\n });\n }\n }\n\n if (this.showApplicationMenuOption('HideMenuJobs')) {\n this.applicationMenuButtons.push({\n icon: 'cascade-objects',\n label: Soho.Locale.translate('Jobs'),\n id: 'Jobs_button',\n automationId: 'lm-appmenu-jobs-button',\n url: this.jobsUrl\n });\n }\n\n if (this.showApplicationMenuOption('HideMenuReports')) {\n this.applicationMenuButtons.push({\n icon: 'report',\n label: Soho.Locale.translate('Reports'),\n id: 'Reports_button',\n automationId: 'lm-appmenu-reports-button',\n url: this.reportsUrl\n });\n }\n\n if (this.showApplicationMenuOption('HideMenuActions')) {\n this.applicationMenuButtons.push({\n icon: 'checkbox',\n label: Soho.Locale.translate('Actions'),\n id: 'Actions_button',\n automationId: 'lm-appmenu-actions-button',\n url: this.actionsUrl\n });\n }\n\n if (this.personalizationEnabled) {\n this.applicationMenuButtons.push({\n icon: 'quick-edit',\n label: Soho.Locale.translate('Personalizations'),\n id: 'Personalization_button',\n automationId: 'lm-appmenu-personalization-button',\n url: this.personalizationsUrl\n });\n }\n\n if (this.enableSavedSearch) {\n this.applicationMenuButtons.push({\n icon: 'print-preview',\n label: Soho.Locale.translate('SavedSearches'),\n id: 'SavedSearches_button',\n automationId: 'lm-appmenu-savedSearches-button',\n url: this.mySavedSearchesUrl\n });\n }\n }\n\n private useAppSwitcher(): boolean {\n return (this.appSwitcher === 'casual' || this.appSwitcher === 'popup' || this.appSwitcher === 'accordion' || this.appSwitcher === 'suite');\n }\n\n private markForRefresh() {\n this.changeDetectorRef.markForCheck();\n }\n\n private _handleError(error: any): void {\n this.lmErrorUtilService.handleUnexpectedError(error);\n }\n\n private getUnreadNotificationCount() {\n let unreadCountUrl = this.lmUrlUtilService.getBannerSpecUrl();\n unreadCountUrl += (unreadCountUrl.indexOf('?') > -1 ? '&' : '?') + 'requestType=unreadCount';\n this.pause$.next(true);\n this.lmSpecService.getApplicationMenuSpec(unreadCountUrl).subscribe(\n (response: any) => {\n this.pause$.next(false);\n this.unreadNotificationCount = (response.unreadCount) ? parseInt(response.unreadCount, 10) : 0;\n this.displayRedDot = this.unreadNotificationCount > 0;\n this.markForRefresh();\n },\n error => {\n // In 3.5, the error is logged in the console for unread count and not prompted in dialog.\n // So timeout or when server down will not open up a dialog for a background poll request.\n // this._handleError(error);\n this.lmLoggerService.log([ this, error.status, error.message, 'Get unread notification count failed.' ]);\n });\n }\n\n public applicationMenuSearch() {\n this.showBusyIndicator();\n const menuSearchUrl = this.lmApplicationMenuSearchService.getMenuSearchUrl(this.model.searchFieldValue);\n const observables: Observable[] = [];\n\n if (this.searchMenuSpecs === undefined) {\n this.searchMenuSpecs = [];\n }\n\n this.subscriptionArray.push(this.lmSpecService.getRedirectUrl(menuSearchUrl).subscribe(response => {\n const dataMenus = response.dataModules;\n const reports = response.reports;\n const totalWebAppMenu = this.applicationMenuSpecs.length + 1;\n\n if (totalWebAppMenu > this.searchMenuSpecs.length) {\n this.applicationMenuSpecs.forEach((webApp) => {\n const menu = this.searchMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === webApp.webAppName);\n if (webApp.navigationMenuUrl && menu.length === 0) {\n const url = this.lmUrlUtilService.appendToQueryString(webApp.navigationMenuUrl, 'allLevels=true');\n observables.push(this.lmSpecService.getApplicationMenuSpec(url));\n }\n });\n if (observables.length > 1) {\n this.subscriptionArray.push(forkJoin(observables).subscribe(results => {\n if (results.length > 0) {\n results.forEach((result) => {\n if (result && result.webApp) {\n this.buildMenuSpecs(this.searchMenuSpecs, result.webApp, result.webAppTitle, result.menuSpecs);\n }\n });\n }\n this.searchMenu(dataMenus, reports);\n }));\n } else {\n this.searchMenu(dataMenus, reports);\n }\n } else {\n this.searchMenu(dataMenus, reports);\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n private searchMenu(dataMenus: any, reports: any) {\n this.menuSearchResultsByWebApp = this.lmApplicationMenuSearchService.matchMultiMenus(this.menuSpecs, this.model.searchFieldValue);\n this.dataSearchResult = this.lmApplicationMenuSearchService.matchData(dataMenus);\n this.reportSearchResult = this.lmApplicationMenuSearchService.matchReports(reports);\n\n this.searchMode = true;\n\n const event: LMApplicationMenuSearchEvent = {\n searchString: this.model.searchFieldValue,\n menuSpecsByWebApp: this.menuSpecs,\n menuSearchResultsByWebApp: this.menuSearchResultsByWebApp,\n dataSearchResults: this.dataSearchResult,\n reportSearchResults: this.reportSearchResult,\n toggleMenu: Object.keys(this.menuSearchResultsByWebApp).length > 0 ? 'Applications' : this.reportSearchResult.length > 0 ? 'Reports' : 'Data'\n };\n this.model.searchFieldValue = '';\n this.menuSearched.emit(event);\n this.hideBusyIndicator();\n }\n\n autoSearchMenu(searchValue: string) {\n this.searchFieldText$.next(searchValue);\n }\n\n // Save this code for menu search implementation\n fireMenuSearchEvent(event: Event) {\n if (!this.model.searchFieldValue) {\n // if value is blank then fire clearSearchEvent event\n this.fireClearSearchEvent(event);\n } else {\n // if searchfieldvalue length is 3 or more the auto search with perform this.applicationMenuSearch();\n if (this.model.searchFieldValue.length <= 2) {\n this.applicationMenuSearch();\n }\n }\n }\n\n fireClearSearchEvent(event) {\n this.searchMode = false;\n\n const toolbarSearchEvent: LMToolbarSearchEvent = {\n event,\n searchField: this.menuSearchField\n };\n }\n\n public openProxyPage() {\n const dialogId = 'Proxy';\n let title: string;\n\n if (this.proxyEnabled) {\n title = Soho.Locale.translate('SwitchToProxy');\n } else if (this.proxyMode) {\n title = Soho.Locale.translate('SwitchBackFromProxy');\n } else {\n title = Soho.Locale.translate('ProxyManagement');\n }\n\n let proxyMenuComponent: LMApplicationMenuProxyMenuComponent;\n this.dialog = this.sohoModalDialogService\n .modal(LMApplicationMenuProxyMenuComponent, this.placeholder, { fullsize: 'responsive' })\n .apply((proxyMenu: LMApplicationMenuProxyMenuComponent) => {\n proxyMenuComponent = proxyMenu;\n if (this.proxyMode) {\n proxyMenuComponent.proxyMode = this.proxyMode;\n proxyMenuComponent.proxyResetUrls = this.proxyResetUrls;\n }\n if (this.proxyEnabled) {\n proxyMenuComponent.proxyEnabled = this.proxyEnabled;\n proxyMenuComponent.proxyUserUrls = this.proxyUserUrls;\n }\n if (this.proxyManagementLink) {\n proxyMenuComponent.proxyManagementLink = this.proxyManagementLink;\n }\n })\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n }\n }\n ])\n .title(title)\n .open();\n }\n\n // todo: vwiny spec-url-refactor doesn't seem to be used. - Phillip\n public openChangePasswordWindow() {\n const subscription = this.lmSpecService.getFormSpecFromRedirectActionUrl(this.changePasswordLink)\n .subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // TODO: This function is currently not in use. The caller of this function will determine what to do with busy indicator or how to display the error message.\n // this.lmBusyIndicatorService.hideBusyIndicator();\n // this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const actionName = (response as LMActionFormUrlResponse).action;\n const actionSpec: LMActionSpec = this.lmApplicationMenuService.getChangePasswordAction(formSpec.busClassSpec.actions, 'ChangePasswordUIMenu');\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId, actionName });\n\n this.lmActionFormDialogService.getActionFormDialogDataView(dataUrl).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n\n if (formDataView.status !== AppConstants.STATUS_COMPLETED) {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n return;\n }\n\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView)\n .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // nothing to do as successful and error message are handled where action is executed\n }\n });\n });\n });\n\n this.subscriptionArray.push(subscription);\n return false; // todo why return false?\n }\n\n public openLoginWindow() {\n const loginDialog = this.lmLoginService.promptLoginDialog(this.loginPlaceholder).subscribe((result: LoginResult) => {\n if (result.status === LoginDialogStatus.RESPONSE_OK) {\n this.lmLoggerService.log(result);\n }\n });\n\n this.subscriptionArray.push(loginDialog);\n return false; // todo why return false?\n }\n\n public webAppSwitcherButtonId: string;\n\n private onSwitchToProxyClicked(switchProxyUrl: string) {\n this.lmGlobalUtilService.navigate(switchProxyUrl, null, 'replace');\n }\n\n public runCreateReport(): void {\n this.lmReportPersonalizationDialogService.runReportPersonalizationDialog(\n 'report',\n this.reportPlaceholder,\n this.createReportUrl,\n this.actorGroupSelectUrl,\n this.roleSelectUrl,\n this.roleGroupSelectUrl,\n this.reportFieldSearchUrl\n ).subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED) {\n if (result.viewReport) {\n this.lmGlobalUtilService.navigateByUrl(result.reportUrl);\n } else {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n return;\n });\n }\n\n showBusyIndicator() {\n this.busyIndicator.open();\n }\n\n hideBusyIndicator() {\n this.busyIndicator.close(false);\n }\n\n public getApplicationMenuPersonalization() {\n const applicationMenuPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(applicationMenuPersonalization)) {\n\n if (applicationMenuPersonalization.lastOpenedMenu) {\n this.lmApplicationMenuService.lastOpenedMenuId = applicationMenuPersonalization.lastOpenedMenu;\n } else if (this.lmContextService.menuSearchOpenIndex() != null) {\n this.lmApplicationMenuService.saveLastMenuItemClicked(this.lmContextService.menuSearchOpenIndex());\n this.lmApplicationMenuService.addExpandedMenus(this.lmContextService.menuSearchOpenIndex());\n } else {\n this.lmApplicationMenuService.resetLastOpenedMenu();\n }\n }\n }\n\n public resetMenuPersonalization() {\n const applicationMenuPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n if (!_.isEmpty(applicationMenuPersonalization) && applicationMenuPersonalization.lastOpenedMenu) {\n applicationMenuPersonalization.lastOpenedMenu = '';\n }\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(applicationMenuPersonalization);\n\n this.lmApplicationMenuService.resetLastOpenedMenu();\n }\n\n public loadWebAppMenu(button: any): void {\n this.showBusyIndicator();\n const loadAllLevels = this.lmApplicationMenuService.loadAllLevels();\n\n let url = button.getAttribute('navigationmenuurl');\n\n const webAppTitle = button.getAttribute('title');\n this.selectedWebAppName = button.getAttribute('id');\n\n // For webapp without a navigation menu\n if (!url) {\n this.selectedMenuSpec = [];\n const currWebAppSpec = this.applicationMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.selectedWebAppName);\n\n this.selectedMenuSpec.push(\n {\n resourceId: currWebAppSpec.length === 0 && this.selectedWebAppName === 'web' ? this.selectedWebAppName : currWebAppSpec[ 0 ].webAppName,\n name: 'Home',\n link: currWebAppSpec.length === 0 && this.selectedWebAppName === 'web' ? url : currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n this.buildMenuSpecs(this.menuSpecs, this.selectedWebAppName, webAppTitle, this.selectedMenuSpec);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.hideBusyIndicator();\n } else {\n url = loadAllLevels\n ? `${button.getAttribute('navigationmenuurl')}&allLevels=true`\n : button.getAttribute('navigationmenuurl');\n\n this.subscriptionArray.push(this.lmSpecService.getApplicationMenuSpec(url).subscribe(\n response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, response.menuSpecs);\n\n this.lmApplicationMenuService.setApplicationMenuSpec(this.selectedMenuSpec);\n\n this.lmApplicationMenuService.updateApplicationMenuSpec(response.menuSpecs, url);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n }));\n }\n }\n\n public selectMenuSpec(webAppName: string) {\n const webAppMenu = this.menuSpecs.filter(webAppSpec => webAppSpec.webAppName === webAppName);\n if (webAppMenu.length === 1) {\n return webAppMenu[ 0 ].menuSpec;\n }\n return [];\n }\n\n private buildMenuSpecs(\n specs: Array,\n webAppName: string,\n webAppTitle: string,\n selectedMenuSpec: Array\n ) {\n let pushMenu = true;\n\n if (specs.length > 0) {\n const menuSpec = specs.filter(webAppSpec => webAppSpec.webAppName === webAppName);\n if (menuSpec.length > 0) {\n pushMenu = false;\n }\n }\n if (pushMenu) {\n this.menuSpecs.push({\n id: webAppName,\n webAppName,\n webAppTitle,\n menuSpec: selectedMenuSpec\n });\n }\n }\n\n public webAppId(webAppName: string): string {\n return webAppName + (this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V2 ? '_webapp' : '');\n }\n\n private getActorInitials(): string {\n const actorName = this.actorName;\n const parts = actorName.split(' ');\n const initials = [];\n\n parts.forEach((p) => {\n p.split('').forEach((s, index) => {\n if (index === 0) {\n initials.push(s);\n }\n });\n });\n\n return initials.join('');\n }\n}\n","export * from './lm-application-menu.component';\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef, HostListener,\n Inject,\n OnDestroy,\n OnInit, ViewChild,\n} from '@angular/core';\nimport {\n SohoMessageService,\n SohoModalDialogService,\n SohoToastService\n} from 'ids-enterprise-ng';\nimport { LMApplicationMenuService } from '@app/components';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMLoginService } from '@login/lm-login.service';\nimport { LMActionFormDialogService } from '@modal/lm-action-form-dialog.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { LMReportPersonalizationDialogService } from '@modal/lm-report-personalization-dialog.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { LMApplicationMenuAsOfDateDialogService } from '@components/applicationmenu/asofdate/lm-application-menu-asofdate-dialog.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMApplicationMenuSearchService } from '@components/applicationmenu/search/lm-application-menu-search.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMApplicationMenuUserContextDialogService } from '@app/components';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { Router } from '@angular/router';\nimport { LMApplicationMenuBaseDirective } from '@components/applicationmenu/lm-application-menu-base.directive';\nimport { LMBrowserUtilService, LMUniqueIdService } from '@app/utils';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LMRoamingUIProfileService, RoamingUIProfileResult, RoamingUIProfileResponse } from '@services/lm-roamingUIProfile.service';\n\n@Component({\n selector: 'lm-application-menu',\n templateUrl: 'lm-application-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: [ 'lm-application-menu.component.scss' ],\n providers: [ LMRoamingUIProfileService ],\n animations: [\n trigger('paneDisplay', [\n state('block', style({\n display: 'block',\n })),\n state('none', style({\n display: 'none',\n }))\n ]),\n ],\n})\nexport class LMApplicationMenuComponent extends LMApplicationMenuBaseDirective implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n @ViewChild('AppMenuSwitcher') appMenuSwitcher: ElementRef;\n @ViewChild('ExpandablePane') expandablePane: ElementRef;\n @ViewChild('AppMenuContent') appMenuContent: ElementRef;\n @ViewChild('ActionMenu') actionMenu: ElementRef;\n @ViewChild('SettingsGuide') settingsGuide: ElementRef;\n @ViewChild('AppSwitcherGuide') appSwitcherGuide: ElementRef;\n\n @HostListener('click', [ '$event' ]) onClick(event) {\n let closeActionMenu = true;\n\n event?.path.forEach((element) => {\n if (element?.classList?.contains('lm-application-action-menu') ||\n element?.classList?.contains('lm-application-menu-settings-btn')\n ) {\n closeActionMenu = false;\n }\n });\n\n if(closeActionMenu && this.actionMenuIsOpen) {\n this.closeActionMenu();\n }\n };\n\n public actionMenuIsOpen = false;\n public displayMenuGuide = this.showMenuGuide();\n\n constructor(\n protected sohoModalDialogService: SohoModalDialogService,\n protected sohoToastService: SohoToastService,\n protected lmAsOfDateService: LMApplicationMenuAsOfDateDialogService,\n protected lmContextService: LMContextService,\n protected lmApplicationMenuService: LMApplicationMenuService,\n protected lmFormRequestService: LMFormRequestService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmSpecService: LMSpecService,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmGlobalUtilService: LMGlobalUtilService,\n protected lmLoginService: LMLoginService,\n protected lmContextUtilService: LMContextUtilService,\n protected lmReportPersonalizationDialogService: LMReportPersonalizationDialogService,\n protected lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n protected lmUniqueIdService: LMUniqueIdService,\n protected sohoMessageService: SohoMessageService,\n protected lmApplicationMenuSearchService: LMApplicationMenuSearchService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmUserContextService: LMApplicationMenuUserContextDialogService,\n protected lmRoamingUIProfileService: LMRoamingUIProfileService,\n protected lmBrowserUtilService: LMBrowserUtilService,\n @Inject(forwardRef(() => LMActionFormDialogService)) protected lmActionFormDialogService, // LMActionFormDialogService,\n protected changeDetectorRef: ChangeDetectorRef,\n protected router: Router,\n protected lmThemeService: LMThemeService\n ) {\n super(\n sohoModalDialogService,\n sohoToastService,\n lmAsOfDateService,\n lmContextService,\n lmApplicationMenuService,\n lmFormRequestService,\n lmFormatUtilService,\n lmSpecService,\n lmErrorUtilService,\n lmLoggerService,\n lmUrlUtilService,\n lmGlobalUtilService,\n lmLoginService,\n lmContextUtilService,\n lmReportPersonalizationDialogService,\n lmGlobalPersonalizationService,\n lmUniqueIdService,\n sohoMessageService,\n lmApplicationMenuSearchService,\n lmBusyIndicatorService,\n lmUserContextService,\n lmActionFormDialogService,\n changeDetectorRef,\n router,\n lmThemeService\n );\n }\n\n public onAppMenuSwitcherClicked(e: Event) {\n this.toggleRoleSwitcherPanel();\n\n // Prevent app menu from closing\n e?.stopImmediatePropagation();\n }\n\n public onSelectRole(event) {\n this.selectRole(event);\n this.toggleRoleSwitcherPanel();\n }\n\n public toggleActionMenu() {\n this.actionMenu.nativeElement.style.display = this.actionMenuIsOpen ? 'none' : 'block';\n this.actionMenuIsOpen = !this.actionMenuIsOpen;\n }\n\n public dismissSettingsGuide() {\n this.settingsGuide.nativeElement.style.display = 'none';\n this.appSwitcherGuide.nativeElement.style.display = 'flex';\n }\n\n public dismissAppSwitcherGuide() {\n this.appSwitcherGuide.nativeElement.style.display = 'none';\n this.lmRoamingUIProfileService.setMenuV2Viewed()\n .subscribe(\n (results: RoamingUIProfileResponse) => {\n if (results.status === RoamingUIProfileResult.COMPLETED) {\n this.lmLoggerService.log('RoamingUIProfile Updated');\n }\n });\n }\n\n private showMenuGuide(): boolean {\n if (this.lmBrowserUtilService.isMobile || this.lmContextService.isAnonymousUser()) {\n return false;\n }\n\n const context = this.lmContextService.getContext();\n const webProfile = context.roamingUIProfile ? context.roamingUIProfile : {};\n\n if (context.showMenuGuide) {\n if (webProfile) {\n if (webProfile.menuV2GuideViewed === undefined || !webProfile.menuV2GuideViewed) {\n return true;\n } else {\n return false;\n }\n }\n } else {\n return false;\n }\n }\n\n public closeActionMenu() {\n this.actionMenu.nativeElement.style.display = 'none';\n this.actionMenuIsOpen = false;\n }\n\n public toggleRoleSwitcherPanel(): void {\n this.rolesPaneIsOpen = !this.rolesPaneIsOpen;\n }\n}\n","
\n
\n
\n
\n {{actorInitials}}\n \"\"/\n
\n
\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n
\n
\n
\n
\n
\n

{{ 'SettingsMenuGuideHeader' | translate }}

\n
\n
\n

{{ 'SettingsMenuGuideContent' | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n {{ 'Welcome' | translate }},\n

{{actorName}}

\n\n \n
\n \n \n
\n
\n\n
\n\n
\n 0) || (selectedMenuSpec && webAppMenuSpecs.length > noCasualApps); else SingleWebApp\">\n \n \n {{ webAppTitle }}\n\n \n \n \n\n \n \n \n \n \n\n \n
\n
\n
\n
\n
\n

{{ 'RoleSwitcherMenuGuideHeader' | translate }}

\n
\n
\n

{{ 'RoleSwitcherMenuGuideContent' | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n {{ webAppTitle }}\n
\n
\n
\n
\n\n\n
\n \n \n \n\n \n
\n \n \n \n \n \n
\n
\n
\n
\n\n \n
\n
\n

{{ webAppTitle }}

\n \n Close Role Switcher\n \n \n
\n \n
\n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n","export * from './lm-application-menu-proxy-menu.component';\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Input, OnInit\n} from '@angular/core';\nimport {\n LMLoggerService, LMSpecService, LMUrlUtilService,\n} from '@services/index';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\n@Component({\n selector: 'lm-application-menu-proxy-menu',\n templateUrl: 'lm-application-menu-proxy-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMApplicationMenuProxyMenuComponent implements AfterViewInit, OnInit {\n @Input() proxyUserUrls: { [ key: string ]: string };\n @Input() proxyResetUrls: [];\n @Input() proxyMode: boolean;\n @Input() proxyEnabled: boolean;\n @Input() proxyManagementLink: string;\n @Input() proxyManagementLinkMessage: string;\n\n proxyUsers: string[];\n proxyWebApps: any;\n\n constructor(\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmLoggerService: LMLoggerService,\n private lmSpecService: LMSpecService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private changeDetector: ChangeDetectorRef\n ) {\n this.lmLoggerService.trace('@ApplicationMenuProxyMenuComponent -> constructor');\n }\n\n ngOnInit() {\n this.proxyManagementLinkMessage = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ProxyManagementHyperlink'), Soho.Locale.translate('ProxyManagement'));\n }\n\n ngAfterViewInit(): void {\n if (this.proxyUserUrls) {\n this.proxyUsers = Object.keys(this.proxyUserUrls);\n this.proxyUsers.sort();\n }\n\n this.changeDetector.detectChanges();\n }\n\n onSwitchToProxyClicked(switchProxyUrl: string) {\n this.lmGlobalUtilService.navigate(switchProxyUrl, null, 'replace');\n }\n\n onProxyManagementLinkClicked(proxyManagementUrl: string) {\n this.lmGlobalUtilService.navigate(proxyManagementUrl, null, 'external');\n }\n\n onBeforeOpen(event: SohoPopupMenuEvent) {\n let user = event.e.currentTarget.getAttribute('user');\n this.proxyWebApps = this.proxyUserUrls[ user ];\n this.changeDetector.detectChanges();\n }\n\n onSelected(event: SohoPopupMenuEvent) {\n let webApp = event.args[0].getAttribute('webApp');\n let proxyWebApp = this.proxyWebApps.filter(proxyUser => proxyUser.proxyWebApp === webApp);\n window.location.href = proxyWebApp[0].proxyUserUrl;\n }\n\n}\n","
\n
\n
\n \n
\n
\n\n \n
\n \n
\n
\n
\n
\n
\n {{proxyManagementLinkMessage}}\n
\n
\n","export * from './lm-application-menu-search.component';\nexport * from './lm-application-menu-search.service';\n","import {\n Component,\n EventEmitter,\n OnInit,\n Output,\n NgZone,\n ViewChild,\n ElementRef, ViewChildren, QueryList, Input, ViewContainerRef, ChangeDetectorRef, OnDestroy, AfterViewInit,\n} from '@angular/core';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMApplicationMenuSearchService } from './lm-application-menu-search.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMApplicationMenuSubMenuService } from '@components/applicationmenu/submenu/lm-application-menu-submenu.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { Subject, SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'lm-application-menu-search',\n templateUrl: 'lm-application-menu-search.component.html',\n styleUrls: [ 'lm-application-menu-search.component.scss' ],\n})\nexport class LMApplicationMenuSearchComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() searchString: string;\n @Input() menuSpecsByWebApp: Array; // todo type me!!\n @Input() dataSearchResults: Array;\n @Input() reportSearchResults: Array;\n\n private _menuSearchResultsByWebApp: LMApplicationMenuSearchResults;\n @Input() set menuSearchResultsByWebApp(menuSearchResultsByWebApp: LMApplicationMenuSearchResults) {\n this._menuSearchResultsByWebApp = menuSearchResultsByWebApp;\n\n // todo ben, pwpatton, khollenbech, is there more efficient way to build the webAppSpecsWithSearchResults\n // when the menuSearchResultsByWebApp changes?\n this.webAppSpecsWithSearchResults = this.lmApplicationMenuSearchService.buildWebAppSpecsFromSearchResults(\n this.lmContextService.getAccessibleWebApps(), menuSearchResultsByWebApp, this.lmContextService.getWebApp());\n }\n get menuSearchResultsByWebApp(): LMApplicationMenuSearchResults {\n return this._menuSearchResultsByWebApp;\n }\n\n @Output() menuSearched: EventEmitter = new EventEmitter();\n @Output() menuSearchCleared: EventEmitter = new EventEmitter();\n\n @ViewChildren('searchMenuHeader') private _searchMenuHeaders: QueryList;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('menuFormDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild('searchField') searchField: ViewContainerRef;\n\n public accessibility = {\n announcement: ''\n };\n\n public webAppSpecsWithSearchResults: LMWebAppSpec[];\n public searchMode: boolean;\n public model = { searchFieldValue: '' };\n public reportTitle: string;\n public dataTitle: string;\n public applicationMenuSearchInfo: LMApplicationMenuSearchInfo;\n private subscriptionArray: Array = []; // todo: type me!\n private menuItemClicked$ = new Subject();\n public searchFieldText$ = new Subject();\n private destroyer$ = new Subject();\n public testVersion1: boolean;\n\n constructor(\n private routeComponent: LMRouteComponentService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private lmApplicationMenuSearchService: LMApplicationMenuSearchService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmContextService: LMContextService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmApplicationMenuSubMenuService: LMApplicationMenuSubMenuService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private elementRef: ElementRef,\n private zone: NgZone,\n private lmContextUtilService: LMContextUtilService,\n ) {\n this.searchFieldText$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1000))\n .subscribe(value => {\n this.fireMenuSearchEvent(event);\n });\n }\n\n ngOnInit() {\n this.lmLoggerService.trace('@ApplicationMenuSearchComponent -> ngOnInit');\n this.searchMode = false;\n this.model.searchFieldValue = this.searchString;\n this.applicationMenuSearchInfo = this.lmApplicationMenuSearchService.getApplicationMenuSearchInfo(this.model.searchFieldValue);\n this.setHeaderTitles();\n this.handleFocus();\n }\n\n ngAfterViewInit() {\n\n /**\n * LMCLIENT-37027\n * Trigger keyup event after DOM is finished loading\n * This will cause the \"x\" clear button to display in the search input without user interaction\n * The normal functionality for the search control only shows the clear button after a key event\n * Whereas in this use case we need it to show after initial load because the search has been pre-populated\n * And the search button closes the search overlay when clicked.\n */\n this.triggerKeyUpEventOnSearch();\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.destroyer$.next();\n this.destroyer$.complete();\n }\n\n get searchMenuHeaders(): QueryList {\n return this._searchMenuHeaders;\n }\n\n get limitSearch(): boolean {\n return this.applicationMenuSearchInfo.limitSearch;\n }\n\n onMenuSearched(event: Event) {\n this.menuSearched.emit(event);\n }\n\n onMenuSearchCleared(event: Event) {\n this.menuSearchCleared.emit(event);\n }\n\n fireClearSearchEvent(event) {\n this.searchMode = false;\n this.menuSearchCleared.emit(event);\n this.hideBusyIndicator();\n }\n\n autoSearchMenu(searchValue: string) {\n this.searchFieldText$.next(searchValue);\n }\n\n handleFocus() {\n // This needs to be in a timeout to ensure that the search field is set to focus\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const nativeElement = this.elementRef.nativeElement;\n nativeElement.querySelectorAll('input')[0].focus();\n return;\n }, 2);\n });\n }\n\n fireMenuSearchEvent(event: Event) {\n this.showBusyIndicator();\n\n this.menuSearchResultsByWebApp = {};\n this.dataSearchResults = [];\n this.reportSearchResults = [];\n\n this.applicationMenuSearchInfo = this.lmApplicationMenuSearchService.getApplicationMenuSearchInfo(this.model.searchFieldValue);\n\n // this.changeDetectorRef.markForCheck();\n\n if (!this.model.searchFieldValue) {\n // if value is blank then fire clearSearchEvent event\n this.fireClearSearchEvent(event);\n } else {\n this.applicationMenuSearch();\n }\n }\n\n private setHeaderTitles() {\n this.reportTitle = Soho.Locale.translate('SearchReportsTitle');\n this.reportTitle = this.reportSearchResults.length > 0 ? this.reportTitle + ' (' + this.reportSearchResults.length + ')' : this.reportTitle;\n\n this.dataTitle = Soho.Locale.translate('SearchDataTitle');\n this.dataTitle = this.dataSearchResults.length > 0 ? this.dataTitle + ' (' + this.dataSearchResults.length + ')' : this.dataTitle;\n }\n\n private applicationMenuSearch() {\n const menuSearchUrl = this.lmApplicationMenuSearchService.getMenuSearchUrl(this.model.searchFieldValue);\n\n // this.subscriptionArray.push(); // don't need to push into a subscription array as this observable will completed internally with each call.\n this.lmSpecService.getRedirectUrl(menuSearchUrl).subscribe(response => {\n const dataMenus = response.dataModules;\n const reports = response.reports;\n\n this.menuSearchResultsByWebApp = this.lmApplicationMenuSearchService.matchMultiMenus(this.menuSpecsByWebApp, this.model.searchFieldValue, this.applicationMenuSearchInfo);\n this.dataSearchResults = this.lmApplicationMenuSearchService.matchData(dataMenus);\n this.reportSearchResults = this.lmApplicationMenuSearchService.matchReports(reports);\n\n this.searchMode = true;\n\n const event: LMApplicationMenuSearchEvent = {\n searchString: this.model.searchFieldValue,\n menuSpecsByWebApp: this.menuSpecsByWebApp,\n menuSearchResultsByWebApp: this.menuSearchResultsByWebApp,\n dataSearchResults: this.dataSearchResults,\n reportSearchResults: this.reportSearchResults,\n toggleMenu: Object.keys(this.menuSearchResultsByWebApp).length > 0 ? 'Applications' : this.reportSearchResults.length > 0 ? 'Reports' : 'Data'\n };\n this.setHeaderTitles();\n\n this.menuSearched.emit(event);\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n });\n }\n\n showBusyIndicator() {\n this.lmBusyIndicatorService.showBusyIndicator(this.busyIndicator);\n }\n\n hideBusyIndicator() {\n this.lmBusyIndicatorService.hideBusyIndicator(this.busyIndicator);\n }\n\n openSearchMenuItem($event: any) {\n const anchor: any = $event.currentTarget;\n const menuUrl = anchor.getAttribute('searchMenuUrl');\n\n const routeComponent: LMRouteComponentService = this.routeComponent;\n this.subscriptionArray.push(this.lmSpecService.getApplicationMenuSpec(menuUrl).subscribe(\n response => {\n if (response.dialogUrl) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(response.dialogUrl);\n } else {\n this.lmApplicationMenuSubMenuService.requestActionFromPageMenu(response.dialogUrl, response.resourceId, this.placeholder);\n }\n } else if (response.redirectUrl) {\n this.lmContextService.setClearNextPageState(true);\n const url = response.redirectUrl;\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(url);\n const host = this.lmContextUtilService.getLocation(noDefaultPortUrl).host;\n if (response.external) {\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.embedded) {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n const isHtmlFragment = response.redirectUrl.indexOf('standalone=true') < 0;\n const webapp = this.lmContextService.getContext().webApp;\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n const autoLoadUrl = dataArea + '/' + webapp + '/menu/url?autoLoadUrl=' + encodeURIComponent(response.redirectUrl) + (isHtmlFragment ? '&isHtmlFragment=true' : '');\n this.lmGlobalUtilService.navigateByUrl(autoLoadUrl);\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n } else {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n window.location.href = response.redirectUrl;\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n }\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n public onMenuItemClicked(menuItem: any) {\n this.menuItemClicked$.next(menuItem);\n }\n\n public openSearchItemLink($event: any) {\n const anchor: any = $event.currentTarget;\n const menuUrl = anchor.getAttribute('searchMenuUrl');\n const resourceId = anchor.getAttribute('resourceId');\n\n const actionParam = this.lmUrlUtilService.getUrlParam(menuUrl, 'action');\n if (actionParam) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = this.routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(menuUrl);\n } else {\n this.lmApplicationMenuSubMenuService.requestActionFromPageMenu(menuUrl, resourceId, this.placeholder);\n }\n } else {\n this.lmGlobalUtilService.navigateByUrl(menuUrl);\n }\n }\n\n private _handleError(error: any): void {\n this.lmErrorUtilService.handleUnexpectedError(error);\n }\n\n private triggerKeyUpEventOnSearch() {\n const event = new KeyboardEvent('keyup', { bubbles:true });\n setTimeout(() => this.searchField.element.nativeElement.dispatchEvent(event));\n }\n\n public dataAutomationId(menuItem: LMBannerSearchResult) {\n // const automationId = menuItem.id.replace(/(_prd_)|(_)/g, '-');\n // return automationId + '-searchresult';\n return `lm-${menuItem.automationId}-searchresult`;\n }\n}\n","
\n
\n
\n
\n \n \n
\n

{{ 'SearchResultLimited' | translate }}

\n

\n {{ 'NoSearchResultsFound' | translate }}\n

\n\n
\n\n \n \n \n\n \n \n\n \n
0\" #searchMenuHeader class=\"accordion-header\">\n \n {{reportTitle}}\n
\n
0\" class=\"accordion-pane\">\n \n \n \n
\n\n \n
0\" #searchMenuHeader class=\"accordion-header\">\n \n {{dataTitle}}\n
\n
0\" class=\"accordion-pane\">\n \n \n \n
\n\n
\n
\n
\n
\n
\n \n
\n\n\n
\n {{ accessibility.announcement }}\n
\n","import { Injectable } from '@angular/core';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\n\n@Injectable()\nexport class LMApplicationMenuSearchService {\n static readonly NO_MENU_SEARCH_LIMIT = 5;\n\n public menuNameMatch = false;\n\n constructor(private lmUrlUtilService: LMUrlUtilService) {}\n\n public getMenuSearchUrl(menuSearchString: string): string {\n let menuSearchUrl = this.lmUrlUtilService.getBannerSpecUrl();\n\n const delimiter = (menuSearchUrl.indexOf('?') < 0) ? '?' : '&';\n menuSearchUrl += delimiter + 'requestType=searchMenu&menuSearch=' + menuSearchString;\n\n return menuSearchUrl;\n }\n\n public matchMultiMenus(menuSpecs: Array, searchString: string, applicationMenuSearchInfo?: LMApplicationMenuSearchInfo): {[ key: string ]: Array} {\n if (!applicationMenuSearchInfo) {\n applicationMenuSearchInfo = this.getApplicationMenuSearchInfo(searchString);\n }\n\n const menuResult: { [ key: string ]: Array } = {};\n\n menuSpecs.forEach(menuSpec => {\n let searchResult: Array = [];\n\n if (menuSpec.webAppName !== 'web') {\n if (!applicationMenuSearchInfo.limitSearch || searchResult.length < LMApplicationMenuSearchService.NO_MENU_SEARCH_LIMIT) {\n searchResult = this.matchMenus(menuSpec.menuSpec, applicationMenuSearchInfo.searchString, applicationMenuSearchInfo);\n if (searchResult.length > 0) {\n menuResult [ menuSpec.webAppName ] = searchResult;\n }\n }\n }\n });\n\n return menuResult;\n }\n\n private matchMenus(menuSpecs: Array, searchString: string, applicationMenuSearchInfo: LMApplicationMenuSearchInfo): Array {\n const searchResult: Array = [];\n\n for (let i = 0; i < menuSpecs.length; i++) {\n if (applicationMenuSearchInfo.limitSearch && searchResult.length >= LMApplicationMenuSearchService.NO_MENU_SEARCH_LIMIT) {\n break;\n }\n\n this.findMenuMatch(searchResult, menuSpecs[ i ], searchString, applicationMenuSearchInfo);\n\n this.menuNameMatch = false;\n }\n searchResult.sort((menu1: LMApplicationMenuSearchResult, menu2: LMApplicationMenuSearchResult) =>\n menu1.child.localeCompare(menu2.child));\n\n return searchResult;\n }\n\n public matchData(dataMenus: Array): Array {\n const searchResult: Array = [];\n\n if (dataMenus) {\n for (let i = 0; i < dataMenus.length; i++) {\n this.findDataMatch(searchResult, dataMenus[ i ]);\n }\n }\n return searchResult;\n }\n\n public matchReports(reports: Array): Array {\n const searchResult: Array = [];\n\n if (reports) {\n reports.forEach(report => this.findReportMatch(searchResult, report));\n }\n\n return searchResult;\n }\n\n // todo vonnyw - element id project - how to type menuSpec? why is it not just LMMenuItemSpec?\n private findMenuMatch(searchResult: Array, menuSpec: any, searchString: string, applicationMenuSearchInfo: LMApplicationMenuSearchInfo): void {\n if (menuSpec.menu) {\n for (let i = 0; i < menuSpec.menu.length; i++) {\n if (applicationMenuSearchInfo.limitSearch && searchResult.length >= LMApplicationMenuSearchService.NO_MENU_SEARCH_LIMIT) {\n break;\n }\n\n if (!this.menuNameMatch) {\n this.matchMenuName(searchResult, menuSpec, searchString, applicationMenuSearchInfo);\n }\n this.findMenuMatch(searchResult, menuSpec.menu[ i ], searchString, applicationMenuSearchInfo);\n }\n\n this.matchSearchTerm(searchResult, menuSpec, searchString, applicationMenuSearchInfo);\n } else {\n const menuSpecLabel: string = menuSpec.label as string;\n\n if (applicationMenuSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (applicationMenuSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(menuSpecLabel)) {\n const result: LMApplicationMenuSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link\n };\n searchResult.push(result);\n }\n\n this.matchSearchTerm(searchResult, menuSpec, searchString, applicationMenuSearchInfo);\n }\n }\n\n private findReportMatch(searchResult: Array, report: LMApplicationMenuReportMenu): void {\n searchResult.push({\n id: report.id,\n automationId: report.automationId,\n type: report.type,\n child: report.name,\n url: report.url\n });\n }\n\n private findDataMatch(searchResult: Array, dataMenu: LMApplicationMenuDataMenu): void {\n if (dataMenu.type === 'CLASS') {\n searchResult.push({\n automationId: dataMenu.automationId,\n id: LMApplicationMenuSearchService.toHtmlElementId(dataMenu.id),\n type: 'Data',\n parent: dataMenu.moduleName + ' / ' + 'Business Classes',\n child: dataMenu.name,\n url: dataMenu.url\n });\n } else if (dataMenu.type === 'TASK') {\n searchResult.push({\n automationId: dataMenu.automationId,\n id: LMApplicationMenuSearchService.toHtmlElementId(dataMenu.id),\n type: 'Data',\n parent: dataMenu.moduleName + ' / ' + 'Business Tasks' + ' / ' + dataMenu.name,\n child: dataMenu.name + '.' + dataMenu.command,\n url: dataMenu.url,\n resourceId: dataMenu.resourceId\n });\n }\n }\n\n public getApplicationMenuSearchInfo(menuSearchValue: string): LMApplicationMenuSearchInfo {\n let menuSearchType: LMApplicationMenuSearchType = null;\n let menuSearchString: string = null;\n\n if (menuSearchValue.startsWith('*')) {\n menuSearchType = 'STARTSWITH';\n menuSearchString = menuSearchValue.substring(1, menuSearchValue.length);\n } else if (menuSearchValue.endsWith('*')) {\n menuSearchType = 'ENDSWITH';\n menuSearchString = menuSearchValue.substring(0, menuSearchValue.length - 1);\n } else {\n menuSearchType = 'CONTAINS';\n menuSearchString = menuSearchValue;\n }\n\n return {\n searchString: menuSearchString,\n searchType: menuSearchType,\n limitSearch: menuSearchValue.length <= 2 ? true : false\n };\n }\n\n /**\n * @param accessibleWebApps\n * @param searchResultsByWebApp { [webAppName]: LMBannerSearchResults[] }\n * @param currentWebApp\n */\n public buildWebAppSpecsFromSearchResults(\n accessibleWebApps: LMWebAppSpec[],\n searchResultsByWebApp: { [ key: string ]: LMBannerSearchResult[] },\n currentWebApp: string\n ): LMWebAppSpec[] {\n const webAppsWithSearchResults: LMWebAppSpec[] = [];\n\n Object.keys(searchResultsByWebApp).forEach(webAppName => accessibleWebApps.find(webAppSpec => {\n if (webAppSpec.webAppName === webAppName) {\n if (webAppName === currentWebApp) {\n webAppsWithSearchResults.splice(0, 0, webAppSpec);\n } else {\n webAppsWithSearchResults.push(webAppSpec);\n }\n }\n }));\n\n return webAppsWithSearchResults;\n }\n\n private matchMenuName(searchResult: Array, menuSpec: any, searchString: string, applicationMenuSearchInfo: LMApplicationMenuSearchInfo): void {\n\n const menuSpecLabel: string = menuSpec.menu[0].parentLabel as string;\n if (applicationMenuSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (applicationMenuSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(menuSpecLabel) && (menuSpec.menu && menuSpec.menu.length > 0)) {\n const result: LMApplicationMenuSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu\n };\n searchResult.push(result);\n this.menuNameMatch = true;\n }\n }\n\n private matchSearchTerm(searchResult: Array, menuSpec: any, searchString: string, applicationMenuSearchInfo: LMApplicationMenuSearchInfo): void {\n\n if (menuSpec.menuItemTerms) {\n for (let n = 0; n < menuSpec.menuItemTerms.length; n++) {\n const searchTerm: string = menuSpec.menuItemTerms[n] as string;\n\n if (applicationMenuSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (applicationMenuSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(searchTerm) && (menuSpec.menu && menuSpec.menu.length > 0)) {\n const result: LMApplicationMenuSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu,\n searchTerm: searchTerm\n };\n searchResult.push(result);\n } else if (pattern.test(searchTerm)) {\n const result: LMApplicationMenuSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n searchTerm: searchTerm\n };\n searchResult.push(result);\n }\n }\n }\n\n if (menuSpec.menuTerms) {\n for (let n = 0; n < menuSpec.menuTerms.length; n++) {\n const searchTerm: string = menuSpec.menuTerms[n] as string;\n\n if (applicationMenuSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (applicationMenuSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(searchTerm)) {\n const result: LMApplicationMenuSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu,\n// searchTerm: searchTerm\n };\n searchResult.push(result);\n }\n }\n }\n\n\n }\n\n private static toHtmlElementId(id: string) {\n return id.replace('.', '_');\n }\n}\n","export * from './lm-application-menu-transaction.service';\nexport * from './lm-application-menu.service';\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, flatMap, map, tap } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMTransactionService, LMTransactionState } from '@transaction/index';\n\n@Injectable()\nexport class LMApplicationMenuTransactionService {\n constructor(\n private lmActionService: LMActionService,\n private lmTransactionService: LMTransactionService,\n ) {}\n\n private createTransactionUrl(transactionUrl: string, actionSpec: LMActionSpec, dataView: LMDataView) {\n return urltemplate.parse(transactionUrl).expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n }\n\n private runActionChecks(\n transactionState: LMTransactionState,\n actionUrlTemplate: string,\n busClassSpec: LMBusClassSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef\n ): Observable {\n return this.lmTransactionService.getScheduleView(actionSpec, busClassSpec.name).pipe(\n map((scheduleView: LMDataView) => {\n if (!scheduleView) {\n // Cancelled scheduling\n transactionState.cancel();\n return false;\n }\n const transactionRequest = this.lmActionService.buildActionRequestForDataView(\n dataView,\n actionSpec,\n null,\n null,\n null,\n scheduleView\n );\n transactionState.setRequestPayload([ transactionRequest ]);\n return true;\n }),\n // proceed if schedule is not cancelled; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transactionState, busClassSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transactionState)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n }\n\n public runMenuAction(\n transactionUrlTemplate: string,\n busClassSpec: LMBusClassSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef\n ): Observable {\n const transactionState: LMTransactionState = new LMTransactionState(this.createTransactionUrl(transactionUrlTemplate, actionSpec, dataView));\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [dataView], actionSpec });\n transactionState.setRequestPayload(transactionRequests);\n return this.runActionChecks(\n transactionState,\n transactionUrlTemplate,\n busClassSpec,\n actionSpec,\n dataView,\n placeholder\n ).pipe(\n flatMap((proceed: boolean) => proceed ?\n this.lmTransactionService.executeAction(transactionState) :\n of(transactionState)\n )\n );\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport * as _ from 'lodash';\nimport { LMContextService, LMLoggerService, LMUrlUtilService } from '@app/services';\nimport { LMApplicationMenuBaseDirective } from '@components/applicationmenu/lm-application-menu-base.directive';\n\n@Injectable()\nexport class LMApplicationMenuService {\n constructor(\n private http: HttpClient,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmLoggerService: LMLoggerService,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n public lastOpenedMenuId: string;\n public lastOpenedMenu: ElementRef;\n\n private applicationMenuSpec: Array = [];\n private expandedMenus: Array = [];\n\n // Cache the entire menu structure\n private allLevelsResponse: LMApplicationMenuSpec;\n\n public saveAllLevelsResponse(response: LMApplicationMenuSpec): void {\n this.allLevelsResponse = _.cloneDeep(response)\n }\n\n public getAllLevelsResponse(): LMApplicationMenuSpec {\n return this.allLevelsResponse;\n }\n\n // TODO: implement\n public loadAllLevels() {\n return true;\n }\n\n public addExpandedMenus(index: string): void {\n this.expandedMenus = [];\n\n const indexArray = index.split( '.');\n if (indexArray.length === 1) {\n this.expandedMenus.push(index);\n } else {\n let tempIndex = '';\n for (let i = 0; i < indexArray.length; i++) {\n if (i === 0) {\n tempIndex += indexArray[i];\n } else {\n tempIndex += '.' + indexArray[i];\n }\n this.expandedMenus.push(tempIndex);\n }\n }\n\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.expandedMenus = this.expandedMenus;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n /**\n * Keep track of expanded menus for pagestate\n * @param menuItem: LMMenuItemSpec\n */\n public saveExpandedMenus(menuItem: LMMenuItemSpec): void {\n this.updateApplicationMenuState(this.getApplicationMenuSpec(), menuItem);\n\n this.expandedMenus = [];\n this.saveApplicationMenuState(this.getApplicationMenuSpec());\n\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.expandedMenus = this.expandedMenus;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n /**\n * Used to clear when roles change\n */\n public clearExpandedMenus() {\n this.expandedMenus = [];\n\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.expandedMenus = this.expandedMenus;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n public getExpandedMenus(): Array {\n return this.lmGlobalPersonalizationService.getGlobalPersonalization().expandedMenus;\n }\n\n public saveLastMenuItemClicked(menuIndex: string) {\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.lastClickedMenuItem = menuIndex;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n public getLastMenuItemClicked() {\n return this.lmGlobalPersonalizationService.getGlobalPersonalization().lastClickedMenuItem;\n }\n\n public updateApplicationMenuSpec(ApplicationMenuSpec: Array, key?: string, menu?: Array): void {\n if (this.applicationMenuSpec.length === 0) {\n this.applicationMenuSpec = ApplicationMenuSpec;\n } else {\n let newMenu: Array = ApplicationMenuSpec;\n this._updateApplicationMenuSpec(this.applicationMenuSpec, newMenu, key);\n }\n }\n\n public getApplicationMenuSpec(): Array {\n return this.applicationMenuSpec;\n }\n\n public setApplicationMenuSpec(newMenuSpec: Array) {\n this.applicationMenuSpec = newMenuSpec;\n }\n\n public syncWebappMenu(url: string , applicationMenuComponent: LMApplicationMenuBaseDirective) {\n const urlWebAppName = this.lmUrlUtilService.getWebAppNameFromUrl(url);\n if (urlWebAppName !== this.lmContextService.getWebApp()) {\n this.lmLoggerService.log(\n `webApp change detected: new webApp: ${urlWebAppName}, old webapp: ${this.lmContextService.getWebApp()}`);\n\n // now switch the menu to the future webapp menu if it is different than the current urls\n const webApps: LMWebAppSpec[] = this.lmContextService.getAccessibleWebApps();\n let urlWebAppSpec = webApps ? webApps.filter(webAppSpec => webAppSpec.webAppName === urlWebAppName) : [];\n if (urlWebAppSpec && urlWebAppSpec.length === 1) {\n this.updateWebappMenu(urlWebAppName, applicationMenuComponent);\n }\n }\n }\n\n public updateWebappMenu(webAppName: string, applicationMenuComponent: LMApplicationMenuBaseDirective) {\n let accessableWebApps = this.lmContextService.getAccessibleWebApps();\n let urlWebAppSpec: LMWebAppSpec[] = accessableWebApps ? accessableWebApps.filter(webAppSpec => webAppSpec.webAppName === webAppName) : [];\n if (urlWebAppSpec.length === 1) {\n this.lmContextService.updateWebApp(urlWebAppSpec[0]);\n if (applicationMenuComponent) {\n applicationMenuComponent.getApplicationMenuPersonalization();\n applicationMenuComponent._loadMenu(this.lmUrlUtilService.getBannerSpecUrl(), true);\n }\n }\n }\n\n /**\n * Keep track of menu expanded/selected state\n * Later saved to state so accordions can be manually initialized and toggled\n * @param menuSpec\n * @param menuItem\n */\n private updateApplicationMenuState(menuSpec, menuItem) {\n menuSpec.forEach((ms) => {\n if (menuItem.parentIds && menuItem.parentIds.includes(ms.menuIndex)) {\n ms.childExpanded = true;\n menuItem.parentExpanded = true;\n }\n\n // Reset menu if parent and child is not expanded\n if ((menuItem.menuIndex !== ms.menuIndex && ms.expanded) && (!menuItem.parentExpanded && !ms.childExpanded)\n ) {\n ms.menu = ms.menu ? [] : undefined;\n ms.expanded = false;\n ms.childExpanded = false;\n ms.parentExpanded = false;\n }\n\n // Collapse if at the same level and not the currently expanded menuItem\n if ((ms.parentIds && menuItem.parentIds && ms.parentIds[ms.parentIds.length - 1] === menuItem.parentIds[menuItem.parentIds.length - 1])\n && ms.menuIndex !== menuItem.menuIndex\n ) {\n if (ms.menu && ms.menu.length > 0) {\n ms.menu = [];\n }\n ms.expanded = false;\n ms.childExpanded = false;\n ms.parentExpanded = false;\n }\n\n if (ms.menu && ms.menu.length > 0) {\n this.updateApplicationMenuState(ms.menu, menuItem);\n }\n })\n }\n\n private saveApplicationMenuState(menuSpec): void {\n menuSpec.forEach((menuSpecItem: LMMenuItemSpec) => {\n if (menuSpecItem.expanded) {\n this.expandedMenus.push(menuSpecItem.menuIndex)\n }\n\n if (menuSpecItem.menu && menuSpecItem.menu.length > 0) {\n this.saveApplicationMenuState(menuSpecItem.menu);\n }\n })\n }\n\n private _updateApplicationMenuSpec(menu: Array, newMenu: Array, key: string) {\n for (let i = 0, l = menu.length; i < l; i++) {\n let object = menu[ i ];\n for (let k in object) {\n if (object.hasOwnProperty(k)) {\n if (object[ k ] === key) {\n object.submenu = newMenu;\n } else if (object.submenu) {\n this._updateApplicationMenuSpec(object.submenu, newMenu, key);\n }\n }\n }\n }\n }\n\n public getLastOpenedMenuId(): string {\n return this.lastOpenedMenuId;\n }\n\n public setLastOpenedMenuId(menu: string) {\n this.lastOpenedMenuId = menu;\n }\n\n public getLastOpenedMenu(): ElementRef {\n return this.lastOpenedMenu;\n }\n\n public setLastOpenedMenu(menu: ElementRef) {\n this.lastOpenedMenu = menu;\n }\n\n public resetLastOpenedMenu() {\n this.lastOpenedMenu = null;\n this.lastOpenedMenuId = '';\n }\n\n public getChangePasswordAction(actions, name): LMActionSpec {\n if (!name) { // safety\n return null;\n }\n\n for (let i = 0; i < actions.length; i++) {\n if (actions[ i ].name === name) {\n return actions[ i ];\n }\n }\n return null;\n }\n\n public updateActorContext(applicationMenuUrl: string, userContextProperties: {}): Observable {\n let postContent: any = {\n requestType: 'updateActorContext',\n contextProperties: userContextProperties\n };\n\n return this.http.post(applicationMenuUrl, postContent).pipe(\n catchError(error => {\n return throwError(error || 'Server error');\n }));\n }\n\n}\n","export * from './lm-application-menu-submenu.service';\nexport * from './lm-application-menu-submenu.component';\n","import {\n AfterViewChecked, AfterViewInit,\n Directive,\n EventEmitter,\n HostBinding,\n Input, NgZone, OnDestroy, OnInit,\n Output,\n QueryList, ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { LMGlobalPersonalization, LMGlobalPersonalizationService } from '@app/states';\nimport { EMPTY, Subject } from 'rxjs';\nimport {\n LMApplicationMenuService,\n LMApplicationMenuTransactionService,\n LMCtrlShiftClickEvent,\n LMHtmlUrlDocComponent\n} from '@app/components';\nimport {\n LMBusyIndicatorService, LMComponentInfoService,\n LMContextService,\n LMErrorUtilService,\n LMLoggerService,\n LMRouteComponentService,\n LMSpecService, LMUrlUtilService\n} from '@app/services';\nimport { AppConstants, LMBrowserUtilService, LMContextUtilService, LMGlobalUtilService } from '@app/utils';\nimport { LMApplicationMenuSubMenuService } from '@components/applicationmenu/submenu/lm-application-menu-submenu.service';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Directive()\nexport abstract class LMApplicationMenuSubmenuBaseDirective implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n @HostBinding('style.display') display = 'block';\n\n @Input() inSearchResultsMenu: false;\n @Input() applicationMenuSpec: Array;\n @Output() menuStateRestored: EventEmitter = new EventEmitter();\n @Output() menuLoaded: EventEmitter = new EventEmitter();\n\n @ViewChildren('accordionHeader', { read: ViewContainerRef }) accordionHeaders: QueryList;\n @ViewChild('menuFormDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n public settings: LMGlobalPersonalization = {};\n private updateRequired: boolean;\n private throttleId: string = null; // this is used to avoid double clicks!!!\n\n private menuItemClicked$ = new Subject();\n private pause$ = new Subject();\n private destroy$ = new Subject();\n\n protected constructor(\n protected lmApplicationMenuService: LMApplicationMenuService,\n protected lmApplicationMenuTransactionService: LMApplicationMenuTransactionService,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmSpecService: LMSpecService,\n protected lmContextService: LMContextService,\n protected lmContextUtilService: LMContextUtilService,\n protected routeComponent: LMRouteComponentService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n protected lmGlobalUtilService: LMGlobalUtilService,\n protected lmApplicationMenuSubMenuService: LMApplicationMenuSubMenuService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected ngZone: NgZone,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmBrowserUtil: LMBrowserUtilService,\n protected lmThemeService: LMThemeService\n ) {\n this.lmLoggerService.trace('@ApplicationMenuSubMenuComponent -> constructor');\n }\n\n ngOnInit() {\n if (this.lmApplicationMenuService.loadAllLevels()) {\n this.clearSubMenus(this.applicationMenuSpec);\n }\n }\n\n ngAfterViewInit() {\n this.updateRequired = true;\n this.subscribeToMenuItemClick();\n }\n\n ngAfterViewChecked() {\n if (this.updateRequired && this.lmApplicationMenuService.lastOpenedMenuId && this.accordionHeaders.length > 0) {\n const lastMenu = this.accordionHeaders.filter((header => header.element.nativeElement.id === this.lmApplicationMenuService.lastOpenedMenuId));\n if (lastMenu.length > 0) {\n this.lmApplicationMenuService.setLastOpenedMenu(lastMenu[ 0 ].element.nativeElement);\n this.updateRequired = false;\n }\n }\n }\n\n public trackById(index: number, menuItem: any): string {\n return menuItem.id;\n }\n\n private throttleClickEvent(menuItem: any): boolean {\n if (this.throttleId && this.throttleId === menuItem.id) {\n return true;\n }\n\n this.throttleId = menuItem.id;\n\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.throttleId = null;\n }, 500);\n });\n return false;\n }\n\n private subscribeToMenuItemClick() {\n const pausable$ = this.pause$\n .pipe(\n\t\t\t switchMap(paused => paused ? EMPTY : this.menuItemClicked$),\n\t\t\t takeUntil(this.destroy$)\n );\n\n // this.pausableSubscription = pausable$.subscribe( (menuItem) => this.doMenuItemClicked(menuItem) );\n pausable$.subscribe( (menuItem) => {\n // this.menuTimerSubscription.unsubscribe();\n this.doMenuItemClicked(menuItem);\n });\n\n this.pause$.next(false);\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n // this.pausableSubscription.unsubscribe();\n this.pause$.complete();\n this.menuItemClicked$.complete();\n }\n\n public loadMenu(event: MouseEvent, menuItem: LMMenuItemSpec): void {\n if (menuItem.expanded) {\n return;\n }\n\n if (this.lmApplicationMenuService.loadAllLevels()) {\n const allLevelsResponse = _.cloneDeep(this.lmApplicationMenuService.getAllLevelsResponse());\n const menuItemSpecMenu = [];\n const self = this;\n\n if (allLevelsResponse) {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n allLevelsResponse.menuSpecs.forEach(function callback(menuItemSpec) {\n if (menuItemSpec.menuIndex === menuItem.menuIndex) {\n menuItemSpecMenu.push(menuItemSpec.menu);\n self.clearSubMenus(menuItemSpec.menu);\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n menuItemSpec.menu.forEach(callback);\n }\n });\n\n menuItem.menu = menuItemSpecMenu[0];\n }\n\n menuItem.expanded = true;\n\n this.lmApplicationMenuService.saveExpandedMenus(menuItem);\n this.onMenuLoaded(event);\n } else {\n this.lmSpecService.getApplicationMenuSpec(menuItem.link).subscribe((response: LMApplicationMenuSpec) => {\n menuItem.menu = response.menuSpecs;\n menuItem.expanded = true;\n\n this.lmApplicationMenuService.saveExpandedMenus(menuItem);\n this.onMenuLoaded(event);\n });\n }\n }\n\n public onMenuLoaded(event): void {\n this.menuLoaded.emit(event);\n }\n\n /**\n * Set href url when a right click is executed\n * @param event\n * @param menuItem\n */\n public onMenuItemRightClicked(event: MouseEvent, menuItem: LMMenuItemSpec) {\n if (menuItem && menuItem.link) {\n (event.currentTarget as HTMLElement).setAttribute('href', menuItem.link);\n }\n }\n\n public onMenuItemClicked(event: MouseEvent, menuItem: any) {\n // Reset href to hash for regular click events.\n (event.target as HTMLElement).setAttribute('href', '#');\n this.lmApplicationMenuService.saveLastMenuItemClicked(menuItem.menuIndex);\n\n if ((event.ctrlKey || event.metaKey) && event.shiftKey) {\n event.stopPropagation();\n // event.preventDefault();\n const isMenu = menuItem.menu !== false;\n const configInfo = menuItem.menu[menuItem.menuIndex] ? menuItem.menu[menuItem.menuIndex].configInfo : undefined;\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = isMenu && configInfo ? configInfo.personalization : false;\n compConfigInfo['configuration'] = isMenu && configInfo ? configInfo.configuration : false;\n compConfigInfo['configStamp'] = configInfo && configInfo.configStamp ? configInfo.configStamp : 0;\n compConfigInfo['classConfigStamp'] = configInfo && configInfo.classConfigStamp ? configInfo.classConfigStamp : 0;\n\n const compInfo: LMComponentInfo = {\n componentType: 'MENU',\n type: isMenu ? 'menuItem' : 'menu',\n name: menuItem.name,\n developer: this.lmContextService.isDeveloper(),\n id: menuItem.id,\n label: menuItem.label,\n link: menuItem.link,\n menuIndex: menuItem.menuIndex,\n parent: menuItem.parent,\n parentLabel: menuItem.parentLabel,\n resourceId: menuItem.resourceId,\n resourceType: menuItem.resourceType,\n resourceInfo: menuItem.resourceInfo ? menuItem.resourceInfo : undefined,\n target: menuItem.target,\n lpl: menuItem.lpl,\n configInfo: compConfigInfo,\n hasConfigAccess: isMenu ? this.lmContextService.hasConfigAccess() : false,\n };\n this.lmComponentInfoService.displayComponentInfo(event as LMCtrlShiftClickEvent, this.placeholder, compInfo);\n return false;\n // this.displayComponentInfo(event);\n }\n\n if (this.throttleClickEvent(menuItem)) {\n return;\n }\n\n this.setLastOpenedMenu(menuItem);\n\n if (menuItem.menu) {\n return;\n }\n this.menuItemClicked$.next(menuItem);\n }\n\n private doMenuItemClicked(menuItem: any) {\n const routeComponent: LMRouteComponentService = this.routeComponent;\n\n // Pause menu clicks\n this.pause$.next(true);\n // Resume menu clicks after 20 seconds. This is to prevent ApplicationMenu from locking up\n // if a back end call failed for some reason and we did not catch it.\n // Challenging to get this working, every click creates a timer and it gets out of control.\n // this.menuTimerSubscription = timer(20000).subscribe(() => this.pause$.next(false));\n\n this.lmBusyIndicatorService.showBusyIndicator(); // Dialog open will hide the busy indicator\n this.lmSpecService.getApplicationMenuSpec(menuItem.link).subscribe(\n response => {\n if (response.resourceType === 'action') {\n if (!this.isAsOfDateInPast()) {\n this.lmApplicationMenuSubMenuService.runAction(response.dialogUrl || response.redirectUrl, response.dataView, this.placeholder, this.pause$);\n }\n } else if (response.dialogUrl) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(response.dialogUrl);\n this.pause$.next(false);\n } else {\n if (!this.isAsOfDateInPast()) {\n this.lmApplicationMenuSubMenuService.requestActionFromPageMenu(response.dialogUrl, response.resourceId, this.placeholder, this.pause$);\n }\n }\n } else if (response.redirectUrl) {\n this.lmContextService.setClearNextPageState(true);\n const url = response.redirectUrl;\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(url);\n let host = this.lmContextUtilService.getLocation(noDefaultPortUrl).host;\n\n // In IE, the host value includes the port number, we need to strip it so it will match the window.location.host\n if (this.lmBrowserUtil.isIE) {\n host = this.lmUrlUtilService.stripDefaultPortFromHost(host);\n }\n\n const log = {\n codeLoc: 'lm-application-menu.component.td - onMenuItemClicked',\n url,\n noDefaultPortUrl,\n host,\n 'window.location.host': window.location.host,\n 'url.length': url.length,\n doHostsMatch: (host.toLowerCase() === window.location.host.toLowerCase()),\n };\n this.lmLoggerService.log(log);\n\n if (response.external) {\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.embedded) {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n const isHtmlFragment = response.redirectUrl.indexOf('standalone=true') < 0;\n const webapp = this.lmContextService.getContext().webApp;\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n let autoLoadUrl = dataArea + '/' + webapp + '/html/url?autoLoadUrl=' + encodeURIComponent(response.redirectUrl);\n autoLoadUrl = this.lmUrlUtilService.updateContextSessionKeyParams(autoLoadUrl);\n this.lmGlobalUtilService.navigateByUrl(autoLoadUrl);\n } else {\n this.lmGlobalUtilService.navigateByUrl(noDefaultPortUrl);\n }\n } else {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n window.location.href = response.redirectUrl;\n } else {\n this.lmGlobalUtilService.navigateByUrl(noDefaultPortUrl);\n }\n }\n this.pause$.next(false);\n } else {\n this._handleError(response);\n this.pause$.next(false);\n }\n },\n error => {\n this.pause$.next(false);\n this._handleError(error);\n });\n }\n\n private isAsOfDateInPast(): boolean {\n if (this.lmContextService.hasAsOfDateInPast()) {\n this.lmGlobalUtilService.displayAsOfDateInPastMessage();\n this.pause$.next(false);\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n }\n return false;\n }\n\n private setLastOpenedMenu(menuItem: any) {\n this.lmApplicationMenuService.lastOpenedMenuId = menuItem.appMenuId; // this.getMenuItemId(menuItem);\n\n const applicationMenuPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(applicationMenuPersonalization)) {\n this.settings = applicationMenuPersonalization;\n }\n this.settings.lastOpenedMenu = this.lmApplicationMenuService.lastOpenedMenuId;\n\n this.savePersonalization();\n }\n\n public savePersonalization(): void {\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.settings);\n }\n\n private _handleError(error: any) {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeholder);\n }\n\n public menuIdV1(menuItem: any) {\n return this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ? menuItem.id : null;\n }\n\n public menuIdV2(menuItem: any) {\n return this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V2 ? menuItem.id + '_menuitem' : null;\n }\n\n /**\n * Used for data-automation-id, this function will convert underscores _ and\n * _prd_ to a dash -\n * @param menuItem\n */\n public dataAutomationId(menuItem: LMBannerSearchResult) {\n // const automationId = menuItem.id.replace(/(_prd_)|(_)/g, '-');\n if (this.inSearchResultsMenu) {\n return `lm-${menuItem.automationId}-searchresult`;\n }\n return `lm-${menuItem.automationId}-menuitem`;\n }\n\n /**\n * Clear all menu arrays so the template does not render every level\n * @param menuSpec\n */\n private clearSubMenus(menuSpec: Array) {\n if (Array.isArray(menuSpec)) {\n menuSpec.map((menuSpecItem: LMMenuItemSpec) => {\n if (menuSpecItem.menu && !menuSpecItem.expanded) {\n menuSpecItem.menu = [];\n }\n\n return menuSpecItem;\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, NgZone } from '@angular/core';\nimport { LMBusyIndicatorService, LMComponentInfoService, LMContextService, LMLoggerService } from '@app/services';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMApplicationMenuService } from '../services/lm-application-menu.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMGlobalPersonalizationService } from '../../../states/services/lm-global-personalization.service';\nimport { LMApplicationMenuSubMenuService } from '@components/applicationmenu/submenu/lm-application-menu-submenu.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMBrowserUtilService, LMContextUtilService, LMGlobalUtilService } from '@app/utils';\nimport { LMApplicationMenuTransactionService } from '../services/lm-application-menu-transaction.service';\nimport { LMApplicationMenuSubmenuBaseDirective } from '@components/applicationmenu/submenu/lm-application-menu-submenu-base.directive';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-application-menu-submenu',\n templateUrl: 'lm-application-menu-submenu.component.html',\n styleUrls: [ 'lm-application-menu-submenu.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMApplicationMenuSubmenuComponent extends LMApplicationMenuSubmenuBaseDirective {\n constructor(\n protected lmApplicationMenuService: LMApplicationMenuService,\n protected lmApplicationMenuTransactionService: LMApplicationMenuTransactionService,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmSpecService: LMSpecService,\n protected lmContextService: LMContextService,\n protected lmContextUtilService: LMContextUtilService,\n protected routeComponent: LMRouteComponentService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n protected lmGlobalUtilService: LMGlobalUtilService,\n protected lmApplicationMenuSubMenuService: LMApplicationMenuSubMenuService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected ngZone: NgZone,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmBrowserUtil: LMBrowserUtilService,\n protected lmThemeService: LMThemeService\n ) {\n super(\n lmApplicationMenuService,\n lmApplicationMenuTransactionService,\n lmErrorUtilService,\n lmLoggerService,\n lmSpecService,\n lmContextService,\n lmContextUtilService,\n routeComponent,\n lmUrlUtilService,\n lmGlobalPersonalizationService,\n lmGlobalUtilService,\n lmApplicationMenuSubMenuService,\n lmBusyIndicatorService,\n ngZone,\n lmComponentInfoService,\n lmBrowserUtil,\n lmThemeService\n );\n }\n}\n","\n \n \n \n\n
\n \n
\n","import { forwardRef, Inject, ViewContainerRef, Injectable } from '@angular/core';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMErrorUtilService, LMFormatUtilService, LMUrlUtilService } from '@services/utils';\nimport { LMBusyIndicatorService, LMLoggerService, LMUrlInfoBuilderService } from '@app/services';\nimport { SohoToastService } from 'ids-enterprise-ng';\nimport * as urltemplate from 'url-template';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMApplicationMenuTransactionService } from '@app/components';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { Subject } from 'rxjs';\nimport { LMGlobalUtilService } from '@app/utils';\n\n@Injectable()\nexport class LMApplicationMenuSubMenuService {\n constructor(\n @Inject(forwardRef(() => SohoToastService)) private sohoToastService: SohoToastService,\n @Inject(forwardRef(() => LMBusyIndicatorService)) private lmBusyIndicatorService: LMBusyIndicatorService,\n @Inject(forwardRef(() => LMApplicationMenuTransactionService)) private lmApplicationMenuTransactionService: LMApplicationMenuTransactionService,\n @Inject(forwardRef(() => LMFormatUtilService)) private lmFormatUtilService: LMFormatUtilService,\n @Inject(forwardRef(() => LMNavigationService)) private lmNavigationService: LMNavigationService,\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService: LMActionFormDialogService,\n @Inject(forwardRef(() => LMSpecService)) private lmSpecService: LMSpecService,\n @Inject(forwardRef(() => LMUrlUtilService)) private lmUrlUtilService: LMUrlUtilService,\n @Inject(forwardRef(() => LMUrlInfoBuilderService)) private lmUrlInfoBuilderService: LMUrlUtilService,\n @Inject(forwardRef(() => LMLoggerService)) private lmLoggerService: LMLoggerService,\n @Inject(forwardRef(() => LMGlobalUtilService)) private lmGlobalUtilService: LMGlobalUtilService,\n @Inject(forwardRef(() => LMErrorUtilService)) private lmErrorUtilService: LMErrorUtilService,\n ) {}\n\n public runAction(dialogUrl: string, dataView: LMDataView, placeholder: ViewContainerRef, pause$?: Subject) {\n const actionName = this.lmUrlUtilService.getUrlParam(dialogUrl, 'action');\n\n if (!actionName) {\n this.lmLoggerService.log('unable to find action param in url');\n if (pause$) {\n pause$.next(false);\n }\n return null;\n }\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmSpecService.getFormSpec(dialogUrl).subscribe((formSpecResponse: LMFormSpecResponse) => {\n const formUrlInfo = formSpecResponse.formUrlInfo;\n const formSpec = formSpecResponse.formSpec;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions ?\n formSpec.busClassSpec.actions.find(action => action.name === actionName) : formSpec.busClassSpec.actionSpec;\n\n this.lmApplicationMenuTransactionService.runMenuAction(formUrlInfo.transactionUrl, formSpec.busClassSpec, actionSpec, dataView, placeholder).subscribe(\n transactionState => {\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (transactionState.isSuccess()) {\n const title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ActionCompletedSuccessfully'), [ result.actionSpec.label ]);\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n } else {\n this.lmErrorUtilService.handleError(\n result.message,\n result.details,\n result.status,\n result.message);\n }\n\n if (transactionState.actionFormDialogSaved && result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n }\n }\n\n if (pause$) {\n this.lmLoggerService.log([actionName, 'runAction from ApplicationMenu']);\n pause$.next(false);\n }\n });\n },\n error => {\n if (pause$) {\n this.lmLoggerService.log([actionName, 'runAction from ApplicationMenu']);\n pause$.next(false);\n }\n });\n }\n\n public requestActionFromPageMenu(dialogUrl: string, resourceId: string, placeholder: ViewContainerRef, pause$?: Subject) {\n const actionName = this.lmUrlUtilService.getUrlParam(dialogUrl, 'action');\n\n if (!actionName) {\n this.lmLoggerService.log('unable to find action param in url');\n if (pause$) {\n pause$.next(false);\n }\n return null;\n }\n\n this.lmLoggerService.log([ actionName, 'Getting formspec for dialog']);\n this.lmSpecService.getFormSpec(dialogUrl).subscribe((response: LMFormSpecResponse | LMSystemException) => {\n this.lmLoggerService.trace([this, 'LMFormService.getFormSpec2() complete', response]);\n\n // todo dboehm spec-url-refactor how to return an error from here? - Phillip\n // if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n // const statusText = (response as LMSystemException).statusText;\n // const details = (response as LMSystemException).details;\n // this.lmErrorUtilService.handleError(statusText, details);\n // return;\n // }\n\n const formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n const formSpec = (response as LMFormSpecResponse).formSpec;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions ?\n formSpec.busClassSpec.actions.find(a => a.name === actionName) : formSpec.busClassSpec.actionSpec;\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName });\n\n this.lmLoggerService.log([actionName, 'Getting dataview for dialog']);\n this.lmActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView)\n .subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const title = '';\n const message = result.transactionStateResult.completedTransactionList[ 0 ].message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (result.transactionStateResult.completedTransactionList[0].isCompletionNavigation && result.transactionStateResult.completedTransactionList[0].redirectUrl) {\n this.lmNavigationService.runNavigation(result.transactionStateResult.completedTransactionList[0].redirectUrl);\n }\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n if (pause$) {\n this.lmLoggerService.log([actionName, 'Resume ApplicationMenu click']);\n pause$.next(false);\n }\n });\n },\n error => {\n if (pause$) {\n this.lmLoggerService.log([actionName, 'Resume ApplicationMenu click']);\n pause$.next(false);\n }\n });\n }\n}\n","export * from './lm-audit-log.component';\nexport * from './lm-audit-log-compare-dialog.component';\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { SohoDataGridComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-audit-log-compare-dialog',\n template: `\n
\n `,\n // todo assuming this is here so comps in dialogs don't update the current component for the app provided LMRouteComponentService?\n // todo not a big fan, need to find a better way, would rather provide a useFor here that pointed at a stubbed out class.\n providers: [ LMRouteComponentService ]\n})\nexport class LMAuditLogCompareDialogComponent implements OnInit {\n @ViewChild(SohoDataGridComponent, { static: true }) dataGridComponent: SohoDataGridComponent;\n\n // @Input() dataset: LMAuditCompareChangedValues[];\n @Input() dataset: Object[];\n\n constructor() { }\n\n ngOnInit() {\n // Create column data\n const headerColumns: SohoDataGridColumn[] = [\n {\n name: Soho.Locale.translate('FieldName'),\n field: 'FieldName',\n sortable: false,\n formatter: 'Text',\n textOverflow: 'ellipsis',\n minWidth: 200,\n maxWidth: 300\n },\n {\n name: Soho.Locale.translate('ListLabel'),\n field: 'Label',\n sortable: false,\n formatter: 'Text',\n textOverflow: 'ellipsis',\n minWidth: 200,\n maxWidth: 300\n },\n {\n name: Soho.Locale.translate('OldValue'),\n field: 'FromValue',\n sortable: false,\n formatter: 'Editor',\n minWidth: 200,\n maxWidth: 500\n },\n {\n name: Soho.Locale.translate('NewValue'),\n field: 'ToValue',\n sortable: false,\n formatter: 'Editor',\n minWidth: 200,\n maxWidth: 500\n }\n ];\n\n // Construct grid options\n const gridOptions: SohoDataGridOptions = {\n columns: headerColumns,\n dataset: this.dataset,\n selectable: false,\n paging: false,\n // stickyHeader: true,\n cellNavigation: true,\n rowNavigation: true,\n enableTooltips: true,\n saveUserSettings: { columns: true }\n };\n\n this.dataGridComponent.gridOptions = gridOptions;\n }\n}\n","import {\n Component, OnInit, OnDestroy, AfterViewInit, ViewContainerRef, ViewChild,\n ChangeDetectorRef, Output, EventEmitter\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {SohoModalDialogService, SohoDataGridComponent} from 'ids-enterprise-ng';\nimport {LMAuditLogService} from '@services/lm-audit-log.service';\nimport {LMBaseComponent, SaveRequired} from '../base';\nimport {LMBusyIndicatorService, LMComponentInfoService} from '@services/index';\nimport {LMBannerHeaderComponentRef} from '@banner/lm-banner-header-component-ref.service';\nimport {LMToolbarComponent} from '@toolbar/lm-toolbar.component';\nimport {LMAuditLogCompareDialogComponent} from './lm-audit-log-compare-dialog.component';\nimport {LMFormatUtilService} from '@services/utils/lm-format-util.service';\nimport {environment} from '@environments/environment';\nimport {Subscription, SubscriptionLike} from 'rxjs';\nimport {LMContextService} from '@services/lm-context.service';\nimport {LMHtmlPageUtilService} from '@html/lm-html-page-util.service';\nimport {LMGlobalPersonalizationService} from '@states/services/lm-global-personalization.service';\nimport {LMFormManualRepService} from '@form/lm-form-manual-rep.service';\nimport {LMDialogButtonKey, LMUniqueIdService} from '@utils/index';\nimport {LMFieldUtilService} from '@services/utils/lm-field-util.service';\n\n@Component({\n selector: 'lm-audit-log',\n templateUrl: 'lm-audit-log.component.html',\n styleUrls: ['lm-audit-log.component.scss'],\n providers: [\n LMHtmlPageUtilService,\n LMFormManualRepService\n ]\n})\nexport class LMAuditLogComponent extends LMBaseComponent implements OnInit, OnDestroy, AfterViewInit, SaveRequired {\n\n @ViewChild(SohoDataGridComponent) dataGridComponent: SohoDataGridComponent;\n @ViewChild(LMToolbarComponent) toolBarComponent: LMToolbarComponent;\n\n @Output() titleChanged = new EventEmitter();\n\n public auditData: LMAuditData;\n private auditRows: LMAuditDataRow[];\n private auditTitle: string;\n private auditFetch: Subscription;\n public dataset: LMAuditDataRow[];\n private routeParams: SubscriptionLike;\n public isProduction = environment.production;\n public selectedRows: SohoDataGridSelectedRow[] = [];\n private actionType: LMToolbarActionType = 'standard';\n private actionName: string;\n public toolbarButtons: LMToolbarButton[] = [\n {\n actionReference: {\n id: 'compare_btn',\n type: this.actionType,\n label: 'Compare',\n name: 'Compare'\n },\n icon: 'queries',\n data: 'Compare',\n id: 'compare_btn',\n state: {disabled: true, visible: true},\n },\n {\n actionReference: {\n id: 'sort_btn',\n type: this.actionType,\n label: 'SortUp',\n name: 'Sort'\n },\n icon: 'sort-up',\n data: 'Sort',\n id: 'sort_btn',\n state: {disabled: false, visible: true}\n }\n ];\n\n\n private isFullAuditLog: boolean;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private lmAuditLogService: LMAuditLogService,\n private lmBannerHeaderComponentRef: LMBannerHeaderComponentRef,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected sohoModalDialogService: SohoModalDialogService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmContextService: LMContextService,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private changeDetectorRef: ChangeDetectorRef,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmFieldUtilService: LMFieldUtilService\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n }\n\n /**\n * Start: Inherited methods from LMBaseComponent\n */\n getComponentInfo(): LMComponentInfo {\n return undefined;\n }\n\n getComponentPlaceHolder(): ViewContainerRef {\n return undefined;\n }\n\n /**\n * End: Inherited methods from LMBaseComponent\n */\n\n ngOnInit() {\n this.showBusyIndicator();\n this.toolbarButtons[0].actionReference.label = Soho.Locale.translate('Compare');\n this.toolbarButtons[1].actionReference.label = Soho.Locale.translate('SortUp');\n\n this.routeParams = this.route.params\n .subscribe(params => {\n const resource: string[] = params.resourceId.split('.');\n this.actionName = resource[1] === 'viewAudit' ? Soho.Locale.translate('AuditLog') : Soho.Locale.translate('FullAuditLog');\n this.isFullAuditLog = this.actionName !== 'viewAudit';\n });\n\n const bannerPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const appDisplay = bannerPersonalization.appDisplay;\n // let unsupportedPattern = this.doesSpecContainUnsupported4_0Patterns(this.pageSpec);\n this.setLegacyVariables(false, appDisplay, this.lmContextService, this.lmHtmlPageUtilService);\n\n if (this.url3_5 && this.legacyWebUI) {\n this.changeDetectorRef.detectChanges();\n } else {\n this.auditFetch = this.lmAuditLogService.getAuditLogData(this.router.url)\n .subscribe((auditData: LMAuditData) => {\n this.auditData = auditData;\n\n this.auditTitle = this.lmFormatUtilService.formatMessage(this.actionName, this.auditData.resourceString);\n\n if (this.lmBannerHeaderComponentRef.instance) {\n this.lmBannerHeaderComponentRef.instance.toolbarSectionTitle = this.auditTitle;\n }\n\n const columns: SohoDataGridColumn[] = [];\n\n const checkBoxColumn: SohoDataGridColumn = {\n id: 'selectionCheckbox',\n sortable: false,\n resizable: false,\n formatter: Soho.Formatters.SelectionCheckbox,\n align: 'center'\n };\n\n const dataColumns: SohoDataGridColumn[] = this.auditData.fieldNames.map((fieldName: string, index: number) => ({\n name: this.auditData.labels[index] ? this.auditData.labels[index] : this.lmFieldUtilService.decodeFieldName(fieldName),\n field: fieldName + index,\n sortable: false,\n singleline: true,\n formatter: 'Editor'\n }));\n\n columns.push(checkBoxColumn);\n dataColumns.forEach((dataColumn: SohoDataGridColumn) => columns.push(dataColumn));\n\n this.dataset = this.auditData.rows.map((row: LMAuditRow[], index: number) => {\n const data = {} as LMAuditDataRow;\n for (let i = 0; i < row.length; i++) {\n const key = dataColumns[i].field;\n const currentRow = row[i];\n const classes = this.addAdditionalStyle(currentRow);\n const displayValue = this.lmFormatUtilService.toDisplayValue(currentRow.value, currentRow.type, {\n precision: currentRow.precision,\n decSize: currentRow.precision\n });\n\n data[key] = classes ? `${displayValue}` : displayValue;\n }\n\n data.index = index;\n return data;\n });\n\n const gridOptions: SohoDataGridOptions = {\n columns,\n selectable: 'multiple',\n dataset: this.dataset,\n paging: false\n };\n\n this.dataGridComponent.gridOptions = gridOptions;\n this.changeDetectorRef.detectChanges();\n\n this.auditRows = this.auditData.rows.map((row: LMAuditRow[]) => {\n const data = {} as LMAuditDataRow;\n for (let i = 0; i < row.length; i++) {\n const key = dataColumns[ i ].field;\n const currentRow = row[ i ];\n const displayValue = this.lmFormatUtilService.toDisplayValue(currentRow.value, currentRow.type, {precision: currentRow.precision, decSize: currentRow.precision});\n\n data[ key ] = displayValue ;\n }\n return data;\n });\n\n this.hideBusyIndicator();\n });\n }\n }\n\n ngOnDestroy() {\n this.routeParams.unsubscribe();\n\n if (!this.legacyWebUI && !this.url3_5) {\n this.auditFetch.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n if (this.lmBannerHeaderComponentRef.instance) {\n this.lmBannerHeaderComponentRef.instance.fullPageScroll = false;\n }\n\n if (this.lmBannerHeaderComponentRef.instance && this.lmBannerHeaderComponentRef.instance.is3_5 !== undefined) {\n this.lmBannerHeaderComponentRef.instance.is3_5 = (this.url3_5 && this.url3_5.length > 0) ? true : false;\n }\n }\n\n private decodeFieldLabel(label: string): string {\n label = label.replace(new RegExp('_op_', 'g'), '(');\n label = label.replace(new RegExp('_cp_', 'g'), ')');\n\n label = label.replace(new RegExp('_ob_', 'g'), '{');\n label = label.replace(new RegExp('_co_', 'g'), '}');\n\n label = label.replace(new RegExp('_ohb_', 'g'), '[');\n label = label.replace(new RegExp('_chb_', 'g'), ']');\n\n label = label.replace(new RegExp('_lab_', 'g'), '<');\n label = label.replace(new RegExp('_rab_', 'g'), '>');\n\n label = label.replace(new RegExp('_add_', 'g'), '+');\n label = label.replace(new RegExp('_div_', 'g'), '/');\n label = label.replace(new RegExp('_hat_', 'g'), '^');\n label = label.replace(new RegExp('_pct_', 'g'), '%');\n label = label.replace(new RegExp('_spc_', 'g'), ' ');\n label = label.replace(new RegExp('_col_', 'g'), ':');\n label = label.replace(new RegExp('_prd_', 'g'), '.');\n label = label.replace(new RegExp('_apo_', 'g'), '\\'');\n label = label.replace(new RegExp('_sc_', 'g'), '');\n label = label.replace(new RegExp('_quot_', 'g'), '\"');\n\n return label;\n }\n\n showBusyIndicator() {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n hideBusyIndicator() {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n\n checkSaveRequired() {\n return false;\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n\n saveComponentState(includeSubComponents?: boolean) {\n };\n\n displayUnsavedChanges() {\n return Promise.resolve(false);\n }\n\n modalOpen() {\n return false;\n }\n\n displayNavigationConfirmation() {\n return false;\n }\n\n onRowSelected(event: SohoDataGridSelectedEvent) {\n this.selectedRows = event.rows;\n const compareButton = this.toolbarButtons[0];\n\n if (compareButton.state.disabled !== (this.selectedRows.length !== 2)) {\n compareButton.state.disabled = !compareButton.state.disabled;\n this.toolBarComponent.forceUpdate();\n }\n }\n\n onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n if (toolbarButtonEvent.actionReference) {\n if (toolbarButtonEvent.actionReference.name === 'Compare') {\n this.showCompareLogDialog();\n } else if (toolbarButtonEvent.actionReference.name === 'Sort') {\n this.sortAuditLog();\n }\n }\n }\n\n private showCompareLogDialog() {\n\n // Create the row data\n const compareDataset = this.createCompareDialogData();\n const dialogId = 'CompareLog';\n\n // Create modal button\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CLOSE]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n },\n isDefault: true,\n }\n ];\n\n // Show the dialog button\n this.dialog = this.sohoModalDialogService\n .modal(LMAuditLogCompareDialogComponent)\n .options({fullsize: 'responsive'})\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .apply((dialogComponent) => {\n dialogComponent.dataset = compareDataset\n })\n .open();\n }\n\n private createCompareDialogData(): LMAuditCompareChangedValues[] {\n const rows = [];\n const row1Index = this.selectedRows[0].data.index;\n const row2Index = this.selectedRows[1].data.index;\n const newerRow = row1Index < row2Index ? this.auditRows[row1Index] : this.auditRows[row2Index];\n const olderRow = row1Index < row2Index ? this.auditRows[row2Index] : this.auditRows[row1Index];\n\n this.auditData.fieldNames.forEach((fieldName: string, index: number) => {\n const data = {} as LMAuditCompareChangedValues;\n const fieldNameWithIndex = fieldName + index;\n const newerRecordValue = newerRow[fieldNameWithIndex];\n const olderRecordValue = olderRow[fieldNameWithIndex];\n if (newerRecordValue !== olderRecordValue) {\n data ['FieldName'] = this.lmFieldUtilService.decodeFieldName(fieldName);\n data ['Label'] = this.auditData.labels[index];\n data ['FromValue'] = olderRecordValue;\n data ['ToValue'] = newerRecordValue;\n rows.push(data);\n }\n });\n\n return rows;\n }\n\n private addAdditionalStyle(data: LMAuditRow): string {\n let classes = '';\n if (this.isFullAuditLog\n && data.auditChanged) {\n // If full && Field has auditChange - Render a blue (Color(178, 229, 255)) background\n classes += ' auditCellBlueBG';\n }\n // Set italic font if correction\n if (data.correction) {\n classes += ' auditCellItalic';\n }\n if (data.unapplied) {\n classes += ' auditCellGreen';\n }\n if (data.fieldSuperseded && data.viewSuperseded) {\n // font strike through\n classes += ' auditCellStrikeThru';\n } else if (data.viewSuperseded) {\n // if view is superceded - red color and strike through\n classes += ' auditCellRed auditCellStrikeThru';\n }\n return classes;\n }\n\n private sortAuditLog() {\n this.showBusyIndicator();\n this.dataGridComponent.unSelectAllRows();\n this.dataset = this.dataset.reverse();\n this.dataGridComponent.dataset = this.dataset;\n this.toolbarButtons[1].icon = this.toolbarButtons[1].icon === 'sort-up' ? 'sort-down' : 'sort-up';\n this.toolbarButtons[1].actionReference.label = this.toolbarButtons[1].icon === 'sort-up' ? Soho.Locale.translate('SortUp') : Soho.Locale.translate('SortDown');\n this.hideBusyIndicator();\n }\n}\n","\n\n

\n CURRENTLY UNSUPPORTED SOHO XI PATTERN DETECTED\n

\n \n
\n\n\n
\n \n \n
\n
\n
\n
\n
\n","export * from './lm-banner-header.component';\nexport * from './lm-banner-masthead.component';\nexport * from './lm-banner-menu.component';\nexport * from './lm-banner-nav.component';\nexport * from './lm-banner-search.component';\nexport * from './lm-banner-header-component-ref.service';\nexport * from './lm-banner-asofdate-dialog.component';\nexport * from './lm-banner-usercontext-dialog.component';\nexport * from './lm-swatch.directive';\n\nexport * from './lm-banner.service';\nexport * from './lm-banner-search.service';\nexport * from './lm-banner-menu.service';\nexport * from './lm-banner-transaction.service';\nexport * from './lm-banner-asofdate-dialog.service';\nexport * from './lm-banner-usercontext-dialog.service';\nexport * from './lm-banner-proxy-menu.component';\n","/**\n * Created by vwiny on 8/17/2018.\n */\nimport {\n AfterViewInit,\n Component, Input,\n OnInit,\n} from '@angular/core';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\n\n@Component({\n selector: 'lm-set-asofdate',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\n\nexport class LMBannerAsOfDateDialogComponent implements OnInit, AfterViewInit {\n constructor(private lmErrorUtilService: LMErrorUtilService) {}\n\n public pickerOptions: SohoDatePickerOptions = {\n mode: 'standard',\n dateFormat: Soho.Locale.calendar().dateFormat.short,\n showMonthYearPicker: true\n };\n @Input() asOfDate: string;\n public model = {\n value: ''\n };\n\n ngOnInit() {\n if (this.asOfDate) {\n this.model.value = this.asOfDate;\n }\n }\n\n ngAfterViewInit() {\n }\n\n onChange(event) {\n this.asOfDate = this.model.value;\n }\n\n public getDate() {\n return this.asOfDate;\n }\n}\n","/**\n * Created by vwiny on 8/17/2018.\n */\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogService, SohoModalDialogRef, SohoMessageService } from 'ids-enterprise-ng';\nimport { Observable } from 'rxjs';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMBannerAsOfDateDialogComponent } from './lm-banner-asofdate-dialog.component';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\nexport enum AsOfDateDialogStatus {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK\n}\n\nexport interface AsOfDateResult {\n status: AsOfDateDialogStatus;\n date: string;\n}\n\n@Injectable()\nexport class LMBannerAsOfDateDialogService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private sohoMessageService: SohoMessageService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n /**\n * Prompt Set 'As of Date' dialog\n * @param viewContainerRef\n *\n * @return Observable\n */\n public promptAsOfDateDialog(placeholder: ViewContainerRef, date?: string): Observable {\n const asOfDate: Observable = new Observable (observer => {\n let asOfDateComponent: LMBannerAsOfDateDialogComponent;\n let dialog: SohoModalDialogRef;\n\n const dialogId = 'AsOfDate';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n dialog.close( {\n status: AsOfDateDialogStatus.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n const currentDate = new Date();\n if (asOfDateComponent.getDate() === currentDate.toLocaleDateString()) {\n const messageDialogId = 'AsOfDateValidationMessage';\n this.sohoMessageService\n .error()\n .message(Soho.Locale.translate(messageDialogId))\n .title('')\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([messageDialogId, LMDialogButtonKey.CLOSE]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (evt, errorModal) => {\n errorModal.close(true);\n }\n }\n ])\n .open();\n } else {\n dialog.close( {\n status: AsOfDateDialogStatus.RESPONSE_OK,\n date: asOfDateComponent.getDate()\n });\n }\n },\n validate: false,\n isDefault: true\n }\n ];\n dialog = this.sohoModalDialogService\n .modal(LMBannerAsOfDateDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(Soho.Locale.translate('AsOfDateLabel'))\n .isAlert(false)\n .open()\n .apply((asOfDateForm: LMBannerAsOfDateDialogComponent) => {\n asOfDateComponent = asOfDateForm;\n if (asOfDate) {\n asOfDateComponent.asOfDate = date;\n }\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n return asOfDate;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Subject, Observable } from 'rxjs';\n\nimport { LMBannerHeaderComponent } from './lm-banner-header.component';\n\n/**\n * Special service used by a \"root router-outlet component\": i.e. ListComponent, FormComponent. etc...\n * to set the banner headers toolbar options and state.\n */\n@Injectable()\nexport class LMBannerHeaderComponentRef {\n private m_bannerHeaderComponent: LMBannerHeaderComponent;\n\n public set instance(bannerHeaderComponent: LMBannerHeaderComponent) {\n this.m_bannerHeaderComponent = bannerHeaderComponent;\n }\n\n public get instance(): LMBannerHeaderComponent {\n return this.m_bannerHeaderComponent;\n }\n\n constructor(private location: Location) {\n // TODO: WIP make browser back/forward button work\n // to bring back state of backReferences\n // this.location.subscribe((value: PopStateEvent) => {\n // console.log(value);\n // });\n }\n\n // back reference stack maintained in LIFO manner\n private backReferences: BackReference[] = [];\n private backRefChanges = new Subject();\n\n public get backReferenceChanges$(): Observable {\n return this.backRefChanges.asObservable();\n }\n\n public pushBackReference(id: string, title: string) {\n const backTitle = this.instance.toolbarSectionTitle;\n\n this.instance.showGoBack = true;\n this.instance.toolbarSectionTitle = title;\n\n const backReference = { id, backTitle };\n this.backReferences.push(backReference);\n this.backRefChanges.next({ action: 'push', backReference });\n\n // TODO: WIP make browser back/forward button work\n // const currentPath = this.location.path();\n // this.location.go(`${currentPath}#${id}`, '', backReference);\n }\n\n public popBackReference() {\n if (!this.backReferences.length) {\n return;\n };\n\n const backReference = this.backReferences.pop();\n this.instance.toolbarSectionTitle = backReference.backTitle;\n this.backRefChanges.next({ action: 'pop', backReference });\n\n if (!this.backReferences.length) {\n this.instance.showGoBack = false;\n }\n // TODO: WIP make browser back/forward button work\n // this.location.back();\n }\n\n public lastBackReference(): BackReference {\n const length = this.backReferences.length;\n if (!length) {\n return null;\n }\n\n return this.backReferences[ length - 1 ];\n }\n\n public resetBackReferences() {\n if (this.backReferences.length) {\n this.instance.toolbarSectionTitle = this.backReferences[0].backTitle;\n this.instance.showGoBack = false;\n this.backReferences = [];\n }\n this.backRefChanges.next({ action: 'reset' });\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { SohoHeaderComponent, SohoTabsComponent } from 'ids-enterprise-ng';\nimport { LMBannerHeaderComponentRef } from './lm-banner-header-component-ref.service';\nimport { LMBannerService } from './lm-banner.service';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMGlobalStateService } from '@states/services/lm-global-state.service';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMGlobalState } from '@states/models/lm-global-state.model';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMHarnessService } from '@services/lm-harness.service';\nimport { Observable } from 'rxjs';\nimport { LMColorId } from './lm-theme.service';\nimport { LMContextService, LMRouteComponentService } from '@services/index';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { AppConstants } from '@utils/app.constants';\n\n@Component({\n selector: 'lm-banner-header',\n templateUrl: './lm-banner-header.component.html',\n styleUrls: [ 'lm-banner-header.component.scss' ],\n providers: [ LMBannerService ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LMBannerHeaderComponent implements AfterViewChecked {\n @HostListener('click', [ '$event' ]) onClick(event) {\n if ((event.ctrlKey || event.metaKey) && event.shiftKey) {\n event.stopPropagation();\n const currComp: Component = this.currentComponent.getRouteComponent();\n if (currComp instanceof LMBaseComponent) {\n const baseComp: LMBaseComponent = currComp as LMBaseComponent;\n baseComp.displayComponentInfo(event, baseComp);\n }\n }\n }\n\n @HostBinding('class.header') get header() {\n return true;\n };\n @HostBinding('class.is-personalizable') get isPersonalizable() {\n return true;\n };\n @HostBinding('class.has-toolbar') get hasToolbar() {\n return true;\n };\n @HostBinding('class.xiHarness') get isJustTools() {\n return !this.m_isXiHarness;\n };\n @HostBinding('class.as-of-date') get hasAsOfDate() {\n return this.asOfDate !== undefined && this.asOfDate !== '';\n };\n @HostBinding('attr.id') get elementId(): string {\n return 'app_Header';\n }\n\n @ViewChild(LMToolbarComponent, { static: true }) lmToolbarComponent: LMToolbarComponent;\n @ViewChild(SohoTabsComponent) sohoTabsComponent: SohoTabsComponent;\n @ViewChild('SohoHeader', { static: true }) sohoHeader: SohoHeaderComponent;\n\n @Input() set toolbarSectionTitle(toolbarSectionTitle) {\n this.m_toolbarSectionTitle = toolbarSectionTitle;\n this.markForRefresh();\n }\n get toolbarSectionTitle(): string {\n return this.m_toolbarSectionTitle;\n }\n\n @Input() set toolbarButtons(toolbarButtons: Observable>) {\n this.m_toolbarButtons = toolbarButtons;\n this.changeDetector.markForCheck();\n }\n get toolbarButtons(): Observable> {\n return this.m_toolbarButtons;\n }\n\n @Input() set toolbarSearchField(toolbarSearchField: LMToolbarSearchField) {\n this.m_toolbarSearchField = toolbarSearchField;\n this.changeDetector.markForCheck();\n }\n\n get toolbarSearchField(): LMToolbarSearchField {\n return this.m_toolbarSearchField;\n }\n\n @Input() set hasTabs(hasTabs: boolean) {\n this.m_hasTabs = hasTabs;\n if (hasTabs) {\n this.elementRef.nativeElement.classList.add('has-tabs');\n } else {\n this.elementRef.nativeElement.classList.remove('has-tabs');\n }\n\n this.hasHeaderTabs.emit(this.m_hasTabs);\n }\n get hasTabs() {\n return this.m_hasTabs;\n }\n\n @Input() set disabled(disabled: boolean) {\n this.m_disabled = disabled;\n this.markForRefresh();\n }\n get disabled(): boolean {\n return this.m_disabled;\n }\n\n @Input() set showGoBack(show: boolean) {\n this._showGoBack = show;\n this.markForRefresh();\n }\n get showGoBack(): boolean {\n return this._showGoBack;\n }\n\n @Input() resizeToolbar: boolean;\n @Input() isListViewDetail: boolean;\n @Input() maxVisibleButtons: number;\n @Input() asOfDate: string;\n @Input() tabsOptions: LMTabsOptions;\n @Input() toolbarMoreSettings: SohoPopupMenuOptions;\n @Input() screenAutomationId: string;\n\n private _screenId: string;\n @Input() set screenId(screenId: string) {\n this._screenId = screenId;\n\n if (!this.testVersion1) {\n this.headerTabsetId = screenId + '_tabs';\n this.headerTabAttributes.push({ name: 'id', value: this.headerTabsetId });\n }\n\n this.headerTabAttributes.push({ name: 'data-automation-id', value: 'lm-' + this.headerTabsetAutomationId + '-tabset' });\n }\n get screenId(): string {\n return this._screenId;\n }\n\n @Output() tabActivated = new EventEmitter();\n @Output() toolbarButtonEvent = new EventEmitter();\n @Output() toolbarSearchEvent = new EventEmitter();\n @Output() toolbarSearchClearedEvent = new EventEmitter();\n @Output() hasHeaderTabs = new EventEmitter();\n @Output() asOfDateChanged: EventEmitter = new EventEmitter();\n @Output() useFullPageScrolling: EventEmitter = new EventEmitter();\n @Output() asOfDateCleared: EventEmitter = new EventEmitter();\n @Output() appMenuTriggerEvent: EventEmitter = new EventEmitter();\n\n private m_webAppTitle: string;\n private m_hasTabs = false;\n private m_toolbarSectionTitle: string;\n private m_is3_5 = false;\n private m_documentTitleChanged = false;\n private m_toolbarButtons: Observable>;\n private m_toolbarSearchField = null;\n private m_disabled = false;\n private m_isXiHarness = false;\n private m_fullPageScroll: boolean;\n\n private _showGoBack = false;\n private bannerState: LMGlobalState = {};\n private bannerPersonalization: LMGlobalPersonalization = { theme: 'theme-classic-light', color: LMColorId.default };\n\n public testVersion1: boolean;\n public headerTabAttributes: SohoAttributesArray = [];\n\n public headerTabsetId: string;\n public headerTabsetAutomationId: string;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private titleService: Title,\n private lmBannerHeaderComponentRef: LMBannerHeaderComponentRef,\n private lmContextService: LMContextService,\n private currentComponent: LMRouteComponentService,\n private lmHarnessService: LMHarnessService,\n private lmGlobalStateService: LMGlobalStateService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n ) {\n this.lmBannerHeaderComponentRef.instance = this;\n this.loadComponentState();\n this.m_isXiHarness = this.lmHarnessService.isXiHarness();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.m_webAppTitle = this.lmContextService.getContext().webAppTitle;\n }\n\n ngAfterViewChecked() {\n if (!this.m_documentTitleChanged) {\n return;\n }\n\n if (this.toolbarSectionTitle?.length > 0) { // != null && this.toolbarSectionTitle.length && this.toolbarSectionTitle.length > 0) {\n this.titleService.setTitle(this.toolbarSectionTitle + ' / ' + this.m_webAppTitle);\n } else {\n this.titleService.setTitle(this.m_webAppTitle);\n }\n }\n\n onToolbarBackButtonEvent() {\n this.lmBannerHeaderComponentRef.popBackReference();\n }\n\n onAppMenuTriggerEvent(event: MouseEvent) {\n this.appMenuTriggerEvent.emit(event);\n }\n\n onToolbarButtonEvent(event) {\n this.toolbarButtonEvent.emit(event);\n }\n\n onToolbarSearchEvent(event) {\n this.toolbarSearchEvent.emit(event);\n }\n\n onToolbarSearchClearedEvent(event) {\n this.toolbarSearchClearedEvent.emit(event);\n }\n\n onTabActivated(tabActivatedEvent: any) {\n this.tabActivated.emit(tabActivatedEvent);\n }\n\n onAsOfDateChangedEvent(date: string) {\n this.asOfDate = date;\n this.asOfDateChanged.emit(date);\n }\n\n public onAsOfDateCleared(): void {\n this.asOfDateCleared.emit();\n }\n\n private markForRefresh() {\n this.m_documentTitleChanged = true;\n\n // ... make sure the change detector kicks in, otherwise if the inputs\n // were change programmatially the component may not be eligible for\n // updating.\n this.changeDetector.markForCheck();\n }\n\n public set is3_5(is3_5: boolean) {\n this.m_is3_5 = is3_5;\n }\n\n public get is3_5(): boolean {\n return this.m_is3_5;\n }\n\n public set fullPageScroll(fullPS: boolean) {\n this.m_fullPageScroll = fullPS;\n\n this.useFullPageScrolling.emit(fullPS);\n }\n\n loadComponentState(): void {\n this.bannerState = this.lmGlobalStateService.getGlobalState();\n this.bannerPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n }\n\n saveComponentState(): void {\n this.lmGlobalStateService.saveGlobalState(this.bannerState);\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.bannerPersonalization);\n }\n}\n","\n\n \n \n\n
\n
\n \n
\n
\n\n
\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, AfterViewInit } from '@angular/core';\nimport { LMContextService, } from '@services/lm-context.service';\n\n@Component({\n selector: 'lm-masthead',\n templateUrl: './lm-banner-masthead.component.html',\n styles: [ `:host {display:block;}` ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMBannerMastheadComponent implements AfterViewInit {\n\n public suiteTitle: string = this.lmContextService.getContext().suiteTitle;\n public goToHomeLabel: string = Soho.Locale.translate('GoToHome');\n\n constructor(\n private lmContextService: LMContextService,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this.changeDetectorRef.detach();\n }\n\n}\n","
\n
\n \n

{{suiteTitle}}

\n
\n\n \n
\n
\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n QueryList,\n OnInit,\n Output,\n OnDestroy,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMBusyIndicatorService, LMComponentInfoService, LMContextService, LMLoggerService } from '@services/index';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMBannerService } from './lm-banner.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport * as _ from 'lodash';\nimport { LMBannerMenuService } from './lm-banner-menu.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMBrowserUtilService, LMContextUtilService, LMGlobalUtilService } from '@utils/index';\nimport { LMBannerTransactionService } from './lm-banner-transaction.service';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { EMPTY, Subject } from 'rxjs';\nimport { LMCtrlShiftClickEvent } from '@base/lm-ctrl-shift-click-event';\n\n@Component({\n selector: 'lm-banner-menu',\n templateUrl: './lm-banner-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMBannerMenuComponent implements AfterViewInit, AfterViewChecked, OnDestroy, OnInit {\n @HostBinding('style.display') display = 'block';\n\n @Input() bannerMenuSpec: Array;\n @Output() menuStateRestored: EventEmitter = new EventEmitter();\n @Output() menuLoaded: EventEmitter = new EventEmitter();\n\n @ViewChildren('accordionHeader', { read: ViewContainerRef }) accordionHeaders: QueryList;\n @ViewChild('menuFormDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n public settings: LMGlobalPersonalization = {};\n private updateRequired: boolean;\n private throttleId: string = null; // this is used to avoid double clicks!!!\n\n private menuItemClicked$ = new Subject();\n private pause$ = new Subject();\n private destroy$ = new Subject();\n\n constructor(\n private lmBannerService: LMBannerService,\n private lmBannerTransactionService: LMBannerTransactionService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmLoggerService: LMLoggerService,\n private lmSpecService: LMSpecService,\n private lmContextService: LMContextService,\n private lmContextUtilService: LMContextUtilService,\n private routeComponent: LMRouteComponentService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmBannerMenuService: LMBannerMenuService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private ngZone: NgZone,\n protected lmComponentInfoService: LMComponentInfoService,\n private lmBrowserUtil: LMBrowserUtilService\n ) {\n this.lmLoggerService.trace('@BannerMenuComponent -> constructor');\n }\n\n ngOnInit() {\n if (this.lmBannerService.loadAllLevels()) {\n this.clearSubMenus(this.bannerMenuSpec);\n }\n }\n\n ngAfterViewInit() {\n this.updateRequired = true;\n this.subscribeToMenuItemClick();\n }\n\n ngAfterViewChecked() {\n if (this.updateRequired && this.lmBannerService.lastOpenedMenuId && this.accordionHeaders.length > 0) {\n const lastMenu = this.accordionHeaders.filter((header => header.element.nativeElement.id === this.lmBannerService.lastOpenedMenuId));\n if (lastMenu.length > 0) {\n this.lmBannerService.setLastOpenedMenu(lastMenu[ 0 ].element.nativeElement);\n this.updateRequired = false;\n }\n }\n }\n\n public trackById(index: number, menuItem: any): string {\n return menuItem.id;\n }\n\n // public getMenuItemId(menuItem: any) {\n // if (menuItem.parentMenus && menuItem.parentMenus.indexOf('/') > -1) {\n // let parentLabelArray = menuItem.parentMenus.split('/');\n // let lastParent = parentLabelArray[parentLabelArray.length - 2];\n // lastParent = lastParent.replace(/\\s/g, '');\n //\n // if (parentLabelArray.length > 3) {\n // let upperParent = parentLabelArray[parentLabelArray.length - 3];\n // upperParent = upperParent.replace(/\\s/g, '');\n // return 'appmenu_' + upperParent + '_prd_' + lastParent + '_prd_' + menuItem.id;\n // } else {\n // return 'appmenu_' + lastParent + '_prd_' + menuItem.id;\n // }\n // }\n // return 'appmenu_' + menuItem.id;\n // }\n\n private throttleClickEvent(menuItem: any): boolean {\n if (this.throttleId && this.throttleId === menuItem.id) {\n return true;\n }\n\n this.throttleId = menuItem.id;\n\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.throttleId = null;\n }, 500);\n });\n return false;\n }\n\n private subscribeToMenuItemClick() {\n const pausable$ = this.pause$\n .pipe(\n switchMap(paused => paused ? EMPTY : this.menuItemClicked$),\n takeUntil(this.destroy$)\n );\n\n // this.pausableSubscription = pausable$.subscribe( (menuItem) => this.doMenuItemClicked(menuItem) );\n pausable$.subscribe( (menuItem) => {\n // this.menuTimerSubscription.unsubscribe();\n this.doMenuItemClicked(menuItem)\n });\n\n this.pause$.next(false);\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n // this.pausableSubscription.unsubscribe();\n this.pause$.complete();\n this.menuItemClicked$.complete();\n }\n\n public loadMenu(event: MouseEvent, menuItem: LMMenuItemSpec): void {\n if (menuItem.expanded) {\n return;\n }\n\n if (this.lmBannerService.loadAllLevels()) {\n const allLevelsResponse = _.cloneDeep(this.lmBannerService.getAllLevelsResponse());\n const menuItemSpecMenu = [];\n const self = this;\n\n if (allLevelsResponse) {\n allLevelsResponse.menuSpecs.forEach(function callback(menuItemSpec) {\n if (menuItemSpec.menuIndex === menuItem.menuIndex) {\n menuItemSpecMenu.push(menuItemSpec.menu);\n self.clearSubMenus(menuItemSpec.menu);\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n menuItemSpec.menu.forEach(callback);\n }\n });\n\n menuItem.menu = menuItemSpecMenu[0];\n }\n\n menuItem.expanded = true;\n\n this.lmBannerService.saveExpandedMenus(menuItem);\n this.onMenuLoaded(event);\n } else {\n this.lmSpecService.getBannerSpec(menuItem.link).subscribe((response: LMBannerSpec) => {\n menuItem.menu = response.menuSpecs;\n menuItem.expanded = true;\n\n this.lmBannerService.saveExpandedMenus(menuItem);\n this.onMenuLoaded(event);\n });\n }\n }\n\n public onMenuLoaded(event): void {\n this.menuLoaded.emit(event);\n }\n\n /**\n * Set href url when a right click is executed\n * @param event\n * @param menuItem\n */\n public onMenuItemRightClicked(event: MouseEvent, menuItem: LMMenuItemSpec) {\n if (menuItem && menuItem.link) {\n (event.currentTarget as HTMLElement).setAttribute('href', menuItem.link);\n }\n }\n\n public onMenuItemClicked(event: MouseEvent, menuItem: any) {\n // Reset href to hash for regular click events.\n (event.target as HTMLElement).setAttribute('href', '#');\n this.lmBannerService.saveLastMenuItemClicked(menuItem.menuIndex);\n\n if ((event.ctrlKey || event.metaKey) && event.shiftKey) {\n event.stopPropagation();\n // event.preventDefault();\n const isMenu = menuItem.menu !== false;\n const configInfo = menuItem.menu[menuItem.menuIndex] ? menuItem.menu[menuItem.menuIndex].configInfo : undefined;\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = isMenu && configInfo ? configInfo.personalization : false;\n compConfigInfo['configuration'] = isMenu && configInfo ? configInfo.configuration : false;\n compConfigInfo['configStamp'] = configInfo && configInfo.configStamp ? configInfo.configStamp : 0;\n compConfigInfo['classConfigStamp'] = configInfo && configInfo.classConfigStamp ? configInfo.classConfigStamp : 0;\n\n const compInfo: LMComponentInfo = {\n componentType: 'MENU',\n type: isMenu ? 'menuItem' : 'menu',\n name: menuItem.name,\n developer: this.lmContextService.isDeveloper(),\n id: menuItem.id,\n label: menuItem.label,\n link: menuItem.link,\n menuIndex: menuItem.menuIndex,\n parent: menuItem.parent,\n parentLabel: menuItem.parentLabel,\n resourceId: menuItem.resourceId,\n resourceType: menuItem.resourceType,\n resourceInfo: menuItem.resourceInfo ? menuItem.resourceInfo : undefined,\n target: menuItem.target,\n lpl: menuItem.lpl,\n configInfo: compConfigInfo,\n hasConfigAccess: isMenu ? this.lmContextService.hasConfigAccess() : false,\n };\n this.lmComponentInfoService.displayComponentInfo(event as LMCtrlShiftClickEvent, this.placeholder, compInfo);\n return false;\n // this.displayComponentInfo(event);\n }\n\n if (this.throttleClickEvent(menuItem)) {\n return;\n }\n\n this.setLastOpenedMenu(menuItem);\n\n if (menuItem.menu) {\n return;\n }\n this.menuItemClicked$.next(menuItem);\n }\n\n private doMenuItemClicked(menuItem: any) {\n const routeComponent: LMRouteComponentService = this.routeComponent;\n\n // Pause menu clicks\n this.pause$.next(true);\n // Resume menu clicks after 20 seconds. This is to prevent banner from locking up\n // if a back end call failed for some reason and we did not catch it.\n // Challenging to get this working, every click creates a timer and it gets out of control.\n // this.menuTimerSubscription = timer(20000).subscribe(() => this.pause$.next(false));\n\n this.lmBusyIndicatorService.showBusyIndicator(); // Dialog open will hide the busy indicator\n this.lmSpecService.getBannerSpec(menuItem.link).subscribe(\n response => {\n if (response.resourceType === 'action') {\n if (!this.isAsOfDateInPast()) {\n this.lmBannerMenuService.runAction(response.dialogUrl || response.redirectUrl, response.dataView, this.placeholder, this.pause$)\n }\n } else if (response.dialogUrl) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(response.dialogUrl);\n this.pause$.next(false);\n } else {\n if (!this.isAsOfDateInPast()) {\n this.lmBannerMenuService.requestActionFromPageMenu(response.dialogUrl, response.resourceId, this.placeholder, this.pause$);\n }\n }\n } else if (response.redirectUrl) {\n this.lmContextService.setClearNextPageState(true);\n const url = response.redirectUrl;\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(url);\n let host = this.lmContextUtilService.getLocation(noDefaultPortUrl).host;\n\n // In IE, the host value includes the port number, we need to strip it so it will match the window.location.host\n if (this.lmBrowserUtil.isIE) {\n host = this.lmUrlUtilService.stripDefaultPortFromHost(host);\n }\n\n const log = {\n codeLoc: 'lm-banner-menu.component.td - onMenuItemClicked',\n url,\n noDefaultPortUrl,\n host,\n 'window.location.host': window.location.host,\n 'url.length': url.length,\n doHostsMatch: (host.toLowerCase() === window.location.host.toLowerCase()),\n }\n this.lmLoggerService.log(log);\n\n if (response.external) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.embedded) {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n const isHtmlFragment = response.redirectUrl.indexOf('standalone=true') < 0;\n const webapp = this.lmContextService.getContext().webApp;\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n let autoLoadUrl = dataArea + '/' + webapp + '/html/url?autoLoadUrl=' + encodeURIComponent(response.redirectUrl);\n autoLoadUrl = this.lmUrlUtilService.updateContextSessionKeyParams(autoLoadUrl);\n this.lmGlobalUtilService.navigateByUrl(autoLoadUrl);\n } else {\n this.lmGlobalUtilService.navigateByUrl(noDefaultPortUrl);\n }\n } else {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n window.location.href = response.redirectUrl;\n } else {\n this.lmGlobalUtilService.navigateByUrl(noDefaultPortUrl);\n }\n }\n this.pause$.next(false);\n } else {\n this._handleError(response);\n this.pause$.next(false);\n }\n },\n error => {\n this.pause$.next(false);\n this._handleError(error);\n });\n }\n\n private isAsOfDateInPast(): boolean {\n if (this.lmContextService.hasAsOfDateInPast()) {\n this.lmGlobalUtilService.displayAsOfDateInPastMessage();\n this.pause$.next(false);\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n }\n return false;\n }\n\n private setLastOpenedMenu(menuItem: any) {\n this.lmBannerService.lastOpenedMenuId = menuItem.appMenuId; // this.getMenuItemId(menuItem);\n\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(bannerPersonalization)) {\n this.settings = bannerPersonalization;\n }\n this.settings.lastOpenedMenu = this.lmBannerService.lastOpenedMenuId;\n\n this.savePersonalization();\n }\n\n public savePersonalization(): void {\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.settings);\n }\n\n private _handleError(error: any) {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeholder);\n }\n\n public menuIdV1(menuItem: any) {\n return this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ? menuItem.id : null;\n }\n\n public menuIdV2(menuItem: any) {\n return this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V2 ? menuItem.id + '_menuitem' : null;\n }\n\n /**\n * Clear all menu arrays so the template does not render every level\n * @param menuSpec\n */\n private clearSubMenus(menuSpec: Array) {\n if (Array.isArray(menuSpec)) {\n menuSpec.map((menuSpecItem: LMMenuItemSpec) => {\n if (menuSpecItem.menu && !menuSpecItem.expanded) {\n menuSpecItem.menu = [];\n }\n\n return menuSpecItem;\n });\n }\n }\n}\n","\n \n \n \n\n
\n \n
\n","/**\n * Created by vwiny on 2/6/2018.\n */\nimport { forwardRef, Inject, ViewContainerRef, Injectable } from '@angular/core';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMErrorUtilService, LMFormatUtilService, LMUrlUtilService } from '@services/utils/index';\nimport { LMBusyIndicatorService, LMLoggerService, LMUrlInfoBuilderService } from '@services/index';\nimport * as urltemplate from 'url-template';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMBannerTransactionService } from './lm-banner-transaction.service';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { Subject } from 'rxjs';\nimport { LMGlobalUtilService } from '@app/utils';\n\n@Injectable()\nexport class LMBannerMenuService {\n constructor(\n @Inject(forwardRef(() => LMBusyIndicatorService)) private lmBusyIndicatorService: LMBusyIndicatorService,\n @Inject(forwardRef(() => LMBannerTransactionService)) private lmBannerTransactionService: LMBannerTransactionService,\n @Inject(forwardRef(() => LMFormatUtilService)) private lmFormatUtilService: LMFormatUtilService,\n @Inject(forwardRef(() => LMNavigationService)) private lmNavigationService: LMNavigationService,\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService: LMActionFormDialogService,\n @Inject(forwardRef(() => LMSpecService)) private lmSpecService: LMSpecService,\n @Inject(forwardRef(() => LMUrlUtilService)) private lmUrlUtilService: LMUrlUtilService,\n @Inject(forwardRef(() => LMUrlInfoBuilderService)) private lmUrlInfoBuilderService: LMUrlUtilService,\n @Inject(forwardRef(() => LMLoggerService)) private lmLoggerService: LMLoggerService,\n @Inject(forwardRef(() => LMErrorUtilService)) private lmErrorUtilService: LMErrorUtilService,\n @Inject(forwardRef(() => LMGlobalUtilService)) private lmGlobalUtilService: LMGlobalUtilService,\n ) {}\n\n public runAction(dialogUrl: string, dataView: LMDataView, placeholder: ViewContainerRef, pause$?: Subject) {\n const actionName = this.lmUrlUtilService.getUrlParam(dialogUrl, 'action');\n\n if (!actionName) {\n this.lmLoggerService.log('unable to find action param in url');\n if (pause$) {\n pause$.next(false);\n }\n return null;\n }\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmSpecService.getFormSpec(dialogUrl).subscribe((formSpecResponse: LMFormSpecResponse) => {\n const formUrlInfo = formSpecResponse.formUrlInfo;\n const formSpec = formSpecResponse.formSpec;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions ?\n formSpec.busClassSpec.actions.find(action => action.name === actionName) : formSpec.busClassSpec.actionSpec;\n\n this.lmBannerTransactionService.runMenuAction(formUrlInfo.transactionUrl, formSpec.busClassSpec, actionSpec, dataView, placeholder).subscribe(\n transactionState => {\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (transactionState.isSuccess()) {\n const title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ActionCompletedSuccessfully'), [ result.actionSpec.label ]);\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n } else {\n this.lmErrorUtilService.handleError(\n result.message,\n result.details,\n result.status,\n result.message);\n }\n\n if (transactionState.actionFormDialogSaved && result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n }\n }\n\n if (pause$) {\n this.lmLoggerService.log([actionName, 'runAction from banner']);\n pause$.next(false);\n }\n });\n },\n error => {\n if (pause$) {\n this.lmLoggerService.log([actionName, 'runAction from banner']);\n pause$.next(false);\n }\n });\n }\n\n public requestActionFromPageMenu(dialogUrl: string, resourceId: string, placeholder: ViewContainerRef, pause$?: Subject) {\n const actionName = this.lmUrlUtilService.getUrlParam(dialogUrl, 'action');\n\n if (!actionName) {\n this.lmLoggerService.log('unable to find action param in url');\n if (pause$) {\n pause$.next(false);\n }\n return null;\n }\n\n this.lmLoggerService.time({\n id: 'TotalActionForm',\n description: 'TOTAL ACTION FORM',\n className: 'LMBannerMenuService',\n timingStart: 'LMBannerMenuService -> requestActionFromPageMenu()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n\n this.lmLoggerService.log([ actionName, 'Getting formspec for dialog']);\n this.lmSpecService.getFormSpec(dialogUrl).subscribe((response: LMFormSpecResponse | LMSystemException) => {\n this.lmLoggerService.trace([this, 'LMFormService.getFormSpec2() complete', response]);\n\n // todo dboehm spec-url-refactor how to return an error from here? - Phillip\n // if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n // const statusText = (response as LMSystemException).statusText;\n // const details = (response as LMSystemException).details;\n // this.lmErrorUtilService.handleError(statusText, details);\n // return;\n // }\n\n const formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n const formSpec = (response as LMFormSpecResponse).formSpec;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions ?\n formSpec.busClassSpec.actions.find(a => a.name === actionName) : formSpec.busClassSpec.actionSpec;\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName });\n\n this.lmLoggerService.log([actionName, 'Getting dataview for dialog']);\n this.lmActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView, null, null,true)\n .subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const title = '';\n const message = result.transactionStateResult.completedTransactionList[ 0 ].message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (result.transactionStateResult.completedTransactionList[0].isCompletionNavigation && result.transactionStateResult.completedTransactionList[0].redirectUrl) {\n this.lmNavigationService.runNavigation(result.transactionStateResult.completedTransactionList[0].redirectUrl);\n }\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n if (pause$) {\n this.lmLoggerService.log([actionName, 'Resume banner click']);\n pause$.next(false);\n }\n });\n },\n error => {\n if (pause$) {\n this.lmLoggerService.log([actionName, 'Resume banner click']);\n pause$.next(false);\n }\n });\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoMessageService,\n SohoModalDialogRef,\n SohoModalDialogService,\n} from 'ids-enterprise-ng';\nimport { LMBannerService } from './lm-banner.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMLoginService, LoginDialogStatus, LoginResult } from '@login/lm-login.service';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { EMPTY, forkJoin, interval, Observable, Subject, SubscriptionLike as ISubscription } from 'rxjs';\nimport { debounceTime, first, switchMap, takeUntil } from 'rxjs/operators';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport {\n LMReportPersonalizationDialogResult,\n LMReportPersonalizationDialogResultCode,\n LMReportPersonalizationDialogService\n} from '@modal/lm-report-personalization-dialog.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport * as _ from 'lodash';\nimport * as urltemplate from 'url-template';\nimport {\n AsOfDateDialogStatus,\n AsOfDateResult,\n LMBannerAsOfDateDialogService\n} from './lm-banner-asofdate-dialog.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMBannerSearchService } from './lm-banner-search.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport {\n LMBannerUserContextDialogService,\n LMBannerUserContextDialogStatus,\n LMBannerUserContextResult\n} from './lm-banner-usercontext-dialog.service';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { AppConstants, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { Router } from '@angular/router';\nimport { LMBannerProxyMenuComponent } from './lm-banner-proxy-menu.component';\nimport {LMApplicationMenuSettingsDialogComponent} from \"@app/components\";\n\ninterface MyMenuButton {\n icon: string;\n label: string;\n id: string;\n url: string;\n}\n\n@Component({\n selector: 'lm-banner-nav',\n templateUrl: './lm-banner-nav.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: [ 'lm-banner-nav.component.scss' ],\n})\nexport class LMBannerNavComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n @Input() visibility: string;\n\n @Input() set asOfDate(date: string) {\n this.allowClearAsOfDate = date !== undefined && date !== '';\n\n this.m_asOfDate = date;\n\n // only load menu when initial load has been done\n if (this.bannerMenuSpecs) {\n this.menuSpecs = [];\n this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n }\n\n get asOfDate() {\n return this.m_asOfDate;\n }\n\n @Input() applyColorToMenu: boolean;\n\n @HostBinding('style.visibility') get hostVisibility() {\n return this.visibility;\n };\n\n @HostListener('click', [ '$event' ]) onClick(event) {\n let closeActionMenu = true;\n\n event?.path.forEach((element) => {\n if (element?.classList?.contains('lm-banner-nav-action-menu') ||\n element?.classList?.contains('lm-banner-nav-menu-settings-btn')\n ) {\n closeActionMenu = false;\n }\n });\n\n if(closeActionMenu && this.actionMenuIsOpen) {\n this.closeActionMenu();\n }\n };\n\n @Output() menuLoaded: EventEmitter = new EventEmitter();\n @Output() menuStateRestored: EventEmitter = new EventEmitter();\n @Output() webAppMenuLoaded: EventEmitter = new EventEmitter();\n @Output() menuSearched: EventEmitter = new EventEmitter();\n @Output() asOfDateChanged: EventEmitter = new EventEmitter();\n @Output() asOfDateCleared: EventEmitter = new EventEmitter();\n @Output() onRoleSelected = new EventEmitter();\n @Output() themeChanged: EventEmitter = new EventEmitter();\n\n @ViewChild('UserSettingsDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild('AccessDeniedDialog', { read: ViewContainerRef, static: true }) accessDeniedplaceholder: ViewContainerRef;\n @ViewChild('LoginDialog', { read: ViewContainerRef, static: true }) loginPlaceholder: ViewContainerRef;\n @ViewChild('ChangePasswordDialog', { read: ViewContainerRef, static: true }) changePasswordPlaceholder: ViewContainerRef;\n @ViewChild('DrillbackActionFormDialog', { read: ViewContainerRef, static: true }) drillbackPlaceholder: ViewContainerRef;\n @ViewChild('ReportPersonalizationDialog', { read: ViewContainerRef, static: true }) reportPlaceholder: ViewContainerRef;\n @ViewChild('SetAsOfDateDialog', { read: ViewContainerRef, static: true }) setAsOfDatePlaceholder: ViewContainerRef;\n @ViewChild('UserContextDialog', { read: ViewContainerRef, static: true }) userContextPlaceholder: ViewContainerRef;\n @ViewChild('webAppMenuHeader') private _webAppMenu: ElementRef;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('ActionMenu') actionMenu: ElementRef;\n\n actionMenuIsOpen = false;\n mingleMode: boolean;\n bannerMenuSpecs: Array;\n webAppMenuSpecs: Array; // todo: type me!\n aboutLink: string;\n appHelpLink: string;\n myNotificationsUrl: string;\n myInBasketUrl: string;\n myJobsUrl: string;\n myPrintFilesUrl: string;\n myActionsUrl: string;\n myReportsUrl: string;\n myPersonalizationsUrl: string;\n mySavedSearchesUrl: string;\n actorName: string;\n anonymousUser: boolean;\n proxyMode: boolean;\n notificationEnabled: boolean;\n inbasketEnabled: boolean;\n personalizationEnabled: boolean;\n enableSavedSearch: boolean;\n proxyEnabled: boolean;\n selectedMenuSpec: Array; // todo: type me!\n menuSpecs: Array; // todo: type me!\n searchMenuSpecs: Array;\n webAppTitle: string;\n webAppName: string;\n selectedWebAppName: string;\n webAppSuiteLink: string;\n appSwitcher: LMBannerAppMenuMode;\n webAppMenuNavigationUrl: string;\n\n signOutLink: string;\n signInLink: string;\n registerLink: string;\n changePasswordLink: string;\n proxyManagementLink: string;\n createReportUrl: string;\n actorGroupSelectUrl: string;\n roleSelectUrl: string;\n roleGroupSelectUrl: string;\n reportFieldSearchUrl: string;\n enableUserContextMenu: boolean;\n\n hasRegisterLink: boolean;\n hasChangePasswordLink: boolean;\n\n allowSetAsOfDate: boolean;\n allowClearAsOfDate: boolean;\n\n searchMode: boolean;\n updateRequired: boolean;\n roleSwitcher: boolean;\n\n private notificationRefreshInterval: number;\n private unreadNotificationCount: number;\n private _displayRedDot = false;\n private m_asOfDate: string;\n public noCasualApps: number;\n\n public get displayRedDot(): boolean {\n return this._displayRedDot;\n }\n\n public set displayRedDot(display: boolean) {\n this._displayRedDot = display;\n }\n\n public get isPasswordReset(): boolean {\n return this.lmContextService.getContext().completePasswordReset;\n }\n\n private stopInterval$ = new Subject();\n private pause$ = new Subject();\n public searchFieldText$ = new Subject();\n private destroyer$ = new Subject();\n\n public clientLogin: boolean;\n public actorUrl: string;\n private dialog: SohoModalDialogRef;\n private subscriptionArray: Array = []; // todo: type me!\n public proxyUserUrls: any;\n public proxyWebApps: Array = []; // todo: type me!\n public proxyResetUrls: any;\n public menuSearchField: LMToolbarSearchField;\n public model = {\n searchFieldValue: ''\n };\n public menuSearchResultsByWebApp: LMBannerSearchResults;\n public reportSearchResult: Array;\n public dataSearchResult: Array;\n\n public myMenuButtons: MyMenuButton[] = [];\n public myOverflowMenuButtons: MyMenuButton[] = [];\n public searchIsNotDisabled: boolean;\n public showOverFlowMenuButton: boolean;\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmAsOfDateService: LMBannerAsOfDateDialogService,\n private lmContextService: LMContextService,\n private lmBannerService: LMBannerService,\n private lmFormRequestService: LMFormRequestService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmSpecService: LMSpecService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmLoginService: LMLoginService,\n private lmContextUtilService: LMContextUtilService,\n private lmReportPersonalizationDialogService: LMReportPersonalizationDialogService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmUniqueIdService: LMUniqueIdService,\n private sohoMessageService: SohoMessageService,\n private lmBannerSearchService: LMBannerSearchService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmUserContextService: LMBannerUserContextDialogService,\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService, // LMActionFormDialogService,\n private changeDetectorRef: ChangeDetectorRef,\n private router: Router\n ) {\n this.searchFieldText$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1000))\n .subscribe(value => {\n const length = value ? value.length : 0;\n if (length > 2) {\n this.bannerSearch();\n }\n });\n\n }\n\n ngOnInit() {\n this.lmLoggerService.trace('@BannerNavComponent -> ngOnInit');\n\n this.searchMode = false;\n this.updateRequired = false;\n this.menuSpecs = [];\n this.roleSwitcher = false;\n\n this.webAppSwitcherButtonId = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ? 'trigger-btn' : 'webapp-menu';\n\n this.getBannerPersonalization();\n this.searchIsNotDisabled = !this.lmContextService.getContext().configuredFeatures.includes('HideMenuSearch');\n\n }\n\n ngAfterViewInit() {\n this.mingleMode = this.lmContextService.inMingle();\n\n this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.stopInterval$.next(true);\n this.stopInterval$.complete();\n this.pause$.complete();\n this.destroyer$.next();\n this.destroyer$.complete();\n }\n\n /**\n * Set href url when a right click is executed\n * @param event\n * @param menuItem\n */\n public onRoleRightClick(event: MouseEvent, menuItem: LMMenuItemSpec) {\n if (menuItem && menuItem.webAppUrl) {\n (event.currentTarget as HTMLElement).setAttribute('href', menuItem.webAppUrl);\n }\n }\n\n public selectRole($event?: any) {\n // Reset href to hash for regular click events.\n if ($event) {\n ($event.currentTarget as HTMLElement).setAttribute('href', '#');\n }\n\n this.menuSpecs = [];\n this.roleSwitcher = true;\n this.changeDetectorRef.detectChanges();\n this.onRoleSelected.emit();\n\n this.showBusyIndicator();\n\n const button: any = $event.currentTarget;\n let url = button.getAttribute('navigation-menu-url');\n\n this.webAppTitle = button.getAttribute('title');\n this.webAppName = button.getAttribute('web-app-name');\n\n // For webapp without a navigation menu\n if (!url) {\n this.selectedMenuSpec = [];\n this.webAppMenuSpecs = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n const currWebAppSpec = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n\n this.selectedMenuSpec.push(\n {\n resourceId: currWebAppSpec[ 0 ].webAppName,\n name: 'Home',\n link: currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n\n this.buildMenuSpecs(this.menuSpecs, this.webAppName, this.webAppTitle, this.selectedMenuSpec);\n this.markForRefresh();\n this.updateRequired = true;\n\n this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n this.lmGlobalUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n\n this.hideBusyIndicator();\n } else {\n\n const loadAllLevels = this.lmBannerService.loadAllLevels();\n\n if (loadAllLevels) {\n url = `${url}&allLevels=true`;\n }\n\n this.subscriptionArray.push(\n this.lmSpecService.getBannerSpec(url).subscribe(\n response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, this.selectedMenuSpec);\n\n this.signOutLink = response.signOutLink;\n\n this.resetMenuPersonalization();\n\n this.lmBannerService.setBannerMenuSpec(this.selectedMenuSpec);\n\n this.lmBannerService.updateBannerMenuSpec(response.menuSpecs, url);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.webAppMenuSpecs = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n\n const currWebAppSpec = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n\n this.lmGlobalUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n })\n );\n }\n }\n\n public get webAppMenuHeader(): ElementRef {\n const webAppMenuName = this.selectedWebAppName ? this.selectedWebAppName : this.webAppName;\n // @ts-ignore\n\n if (this._webAppMenu && this._webAppMenu.nativeElement.getAttribute('id') === webAppMenuName) {\n return this._webAppMenu;\n }\n return null;\n }\n\n public onMenuLoaded(event) {\n this.menuLoaded.emit(event);\n }\n\n public onWebAppMenuLoaded() {\n this.webAppMenuLoaded.emit(this.roleSwitcher);\n }\n\n public onMenuSearched(event: LMBannerSearchEvent) {\n this.menuSearched.emit(event);\n }\n\n public openUserSettingsDialog() {\n const dialogId = 'UserSettings';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.SAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SAVE),\n click: (e, modal) => {\n modal.close(true);\n },\n isDefault: true\n }\n ];\n\n this.dialog = this.sohoModalDialogService\n .modal(LMApplicationMenuSettingsDialogComponent, this.placeholder, { fullsize: 'responsive' })\n .buttons(buttons)\n .title(Soho.Locale.translate(dialogId))\n .open();\n }\n\n public openSetAsOfDateDialog(): void {\n const date = this.lmContextService.getContext().asOfDate ? this.lmFormatUtilService.yyyymmddToDisplay(this.asOfDate) : null;\n this.lmAsOfDateService.promptAsOfDateDialog(this.setAsOfDatePlaceholder, date)\n .pipe(first())\n .subscribe((result: AsOfDateResult) => {\n if (result.status !== AsOfDateDialogStatus.RESPONSE_OK) {\n return;\n }\n this.lmLoggerService.log(result.date);\n const dbDate = this.lmFormatUtilService.yyyymmddToData(result.date);\n this.asOfDateChanged.emit(dbDate);\n });\n }\n\n public clearAsOfDate() {\n this.asOfDateCleared.emit();\n }\n\n public openSetUserContextDialog() {\n const userContextUrl = this.lmUrlUtilService.getUserContextUrl();\n\n this.lmSpecService.getBannerSpec(userContextUrl).subscribe(\n (response: any) => {\n const userContextDialog = this.lmUserContextService.promptUserContextDialog(this.userContextPlaceholder, response.userContextFields)\n .subscribe(\n (result: LMBannerUserContextResult) => {\n if (result.status === LMBannerUserContextDialogStatus.RESPONSE_OK) {\n if (result.userContextProperties && result.saveChanges) {\n\n const jsonContextPropertiesArray = [];\n Object.keys(result.userContextProperties).forEach(key => {\n const userContextModel: LMBannerUserContextModelField = result.userContextProperties[ key ];\n if (userContextModel.dirty) {\n const jsonContextProperty = {\n id: key,\n value: userContextModel.value\n };\n jsonContextPropertiesArray.push(jsonContextProperty);\n }\n });\n\n this.lmBannerService.updateActorContext(userContextUrl, jsonContextPropertiesArray).subscribe((ucResponse: any) => {\n if (ucResponse.status === 'COMPLETED') {\n window.location.href = this.lmContextService.getCurrentWebAppSpec().webAppUrl;\n }\n });\n }\n }\n }\n );\n this.markForRefresh();\n // this.updateRequired = true;\n this.subscriptionArray.push(userContextDialog);\n },\n error => {\n this._handleError(error);\n });\n return false;\n }\n\n public noActorUrl() { // tslint:disable-line (template)\n return (this.actorUrl === '#' || this.actorUrl == null);\n }\n\n public openLink(link: string) {\n const compiledTemplate = urltemplate.parse(link);\n link = compiledTemplate.expand({\n urlPdlOrDa: this.lmContextService.getUrlPdlOrDa(),\n webApp: this.lmContextService.getCurrentWebAppSpec().webAppName\n });\n this.lmGlobalUtilService.navigateByUrl(link);\n }\n\n public openHelpLink() {\n this.lmUrlUtilService.openExternalUrl(this.appHelpLink);\n }\n\n public openSecurityLink(link: string) {\n this.resetLastOpenedMenu();\n window.location.href = link;\n }\n\n private resetLastOpenedMenu() {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n if (!_.isEmpty(bannerPersonalization) && bannerPersonalization.lastOpenedMenu) {\n bannerPersonalization.lastOpenedMenu = '';\n }\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(bannerPersonalization);\n }\n\n public _loadMenu(url: string, syncWebApp?: boolean): void {\n this.lmLoggerService.trace('@BannerNavComponent -> loadBannerSpec');\n this.showBusyIndicator();\n\n if (syncWebApp) {\n this.webAppMenuSpecs = [];\n this.markForRefresh();\n this.updateRequired = true;\n }\n\n this.subscriptionArray.push(this.lmSpecService.getBannerSpec(url).subscribe(\n (bannerSpec: LMBannerSpec) => {\n this.bannerMenuSpecs = bannerSpec.webApps;\n this.appSwitcher = 'casual'; // bannerSpec.appSwitcher || 'accordion';\n this.noCasualApps = bannerSpec.noCasualApps;\n this.aboutLink = bannerSpec.aboutLink;\n this.appHelpLink = bannerSpec.appHelpLink;\n this.myActionsUrl = bannerSpec.myActionsUrl;\n this.myInBasketUrl = bannerSpec.myInBasketUrl;\n this.myJobsUrl = bannerSpec.myJobsUrl;\n this.myNotificationsUrl = bannerSpec.myNotificationsUrl;\n this.myPrintFilesUrl = bannerSpec.myPrintFilesUrl;\n this.myReportsUrl = bannerSpec.myReportsUrl;\n this.myPersonalizationsUrl = bannerSpec.myPersonalizationsUrl;\n this.mySavedSearchesUrl = bannerSpec.mySavedSearchesUrl;\n this.createReportUrl = bannerSpec.createReportUrl;\n this.actorGroupSelectUrl = bannerSpec.actorGroupSelectUrl;\n this.roleSelectUrl = bannerSpec.roleSelectUrl;\n this.roleGroupSelectUrl = bannerSpec.roleGroupSelectUrl;\n this.reportFieldSearchUrl = bannerSpec.reportFieldSearchUrl;\n this.signOutLink = bannerSpec.signOutLink;\n this.registerLink = bannerSpec.registerLink;\n this.signInLink = bannerSpec.signInLink;\n this.changePasswordLink = bannerSpec.changePasswordLink;\n this.actorName = bannerSpec.actorInfo.displayName[ 0 ];\n this.actorUrl = bannerSpec.actorInfo.actorUrl[ 0 ];\n this.proxyUserUrls = bannerSpec.proxyUserUrls;\n if (this.proxyUserUrls) {\n this.proxyWebApps = Object.keys(this.proxyUserUrls);\n }\n this.proxyResetUrls = bannerSpec.proxyResetUrls;\n this.proxyMode = bannerSpec.proxyMode || false;\n this.proxyEnabled = bannerSpec.proxyEnabled || false;\n this.proxyManagementLink = bannerSpec.proxyManagementLink;\n this.anonymousUser = bannerSpec.anonymousUser || false;\n this.clientLogin = bannerSpec.clientLogin || false;\n this.webAppMenuNavigationUrl = bannerSpec.webAppMenuNavigationUrl;\n if (this.lmGlobalPersonalizationService.getGlobalPersonalization().preferredWebApp !== undefined) {\n const preferredAppName = this.lmGlobalPersonalizationService.getGlobalPersonalization().preferredWebApp;\n const preferredAppSpec = this.bannerMenuSpecs.find((preferredApp: LMWebAppSpec) => preferredApp.webAppName === preferredAppName);\n if ((this.lmContextService.getContext().webApp === preferredAppName) && preferredAppSpec !== undefined) {\n this.webAppMenuNavigationUrl = preferredAppSpec.navigationMenuUrl;\n }\n }\n this.webAppTitle = this.lmContextService.getContext().webAppTitle;\n this.webAppName = this.lmContextService.getContext().webApp;\n this.selectedWebAppName = this.webAppName;\n this.webAppSuiteLink = bannerSpec.webAppSuiteLink;\n\n this.hasRegisterLink = (this.registerLink === '' || this.registerLink == null) ? false : true;\n this.hasChangePasswordLink = (this.changePasswordLink === '' || this.changePasswordLink == null) ? false : true;\n\n this.allowSetAsOfDate = bannerSpec.allowSetAsOfDate;\n this.allowClearAsOfDate = this.asOfDate !== undefined && this.asOfDate !== '';\n\n this.enableUserContextMenu = bannerSpec.enableUserContextMenu;\n\n this.inbasketEnabled = bannerSpec.inbasketEnabled || true;\n this.notificationEnabled = bannerSpec.notificationEnabled || true;\n this.personalizationEnabled = bannerSpec.personalizationEnabled;\n this.enableSavedSearch = this.lmContextService.showUserListView();\n\n if (this.isPasswordReset) {\n this.hideBusyIndicator();\n this.markForRefresh();\n this.updateRequired = true;\n this.lmLoggerService.trace('@BannerNavComponent -> loadBannerSpec -> complete');\n return;\n }\n\n this.updateMyMenuButtons();\n\n if (this.notificationEnabled) {\n this.notificationRefreshInterval = (bannerSpec.refreshIntervalMinutes) ? parseInt(bannerSpec.refreshIntervalMinutes, 10) : 5;\n this.unreadNotificationCount = (bannerSpec.unreadCount) ? parseInt(bannerSpec.unreadCount, 10) : 0;\n this.displayRedDot = this.unreadNotificationCount > 0;\n // Poll to check unread notification count\n const interval$ = interval(this.notificationRefreshInterval * 60 * 1000).pipe(\n takeUntil(this.stopInterval$)\n );\n // Pause during async call to get the notification count.\n const pausable$ = this.pause$.pipe(\n switchMap(paused => paused ? EMPTY : interval$));\n\n this.subscriptionArray.push(pausable$.subscribe(() => {\n this.getUnreadNotificationCount();\n }));\n\n this.pause$.next(false);\n }\n\n if (!this.webAppMenuNavigationUrl) {\n if (this.useAppSwitcher()) {\n this.selectedMenuSpec = [];\n this.webAppMenuSpecs = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n if (this.webAppMenuSpecs.length === 0 || this.webAppMenuSpecs.length > this.noCasualApps - 1) {\n this.roleSwitcher = true;\n } else {\n this.lmBannerService.clearExpandedMenus();\n }\n const currWebAppSpec = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n\n this.selectedMenuSpec.push(\n {\n resourceId: this.webAppName,\n name: 'Home',\n link: this.webAppName === 'web' ? this.webAppSuiteLink : currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n\n this.buildMenuSpecs(this.menuSpecs, this.webAppName, this.webAppTitle, this.selectedMenuSpec);\n\n this.markForRefresh();\n this.updateRequired = true;\n } else {\n this.lmBannerService.updateBannerMenuSpec(bannerSpec.webApps);\n }\n } else {\n if (this.useAppSwitcher()) {\n this.loadWebAppMenuSpec();\n } else {\n this.lmBannerService.updateBannerMenuSpec(bannerSpec.webApps);\n }\n }\n\n this.hideBusyIndicator();\n this.lmLoggerService.trace('@BannerNavComponent -> loadBannerSpec -> complete');\n },\n error => {\n // acces denied error is handled in app.component.ts\n if (error.status !== 403) {\n this._handleError(error);\n }\n }));\n }\n\n private saveAllLevelsResponse(response) {\n const self = this;\n const expandedMenus = this.lmBannerService.getExpandedMenus();\n\n if (expandedMenus && expandedMenus.length > 0) {\n response.menuSpecs.map(function callback(menuItemSpec: LMMenuItemSpec) {\n if (expandedMenus.includes(menuItemSpec.menuIndex)) {\n menuItemSpec.expanded = true;\n }\n\n if (menuItemSpec.menuIndex === self.lmBannerService.getLastMenuItemClicked()) {\n menuItemSpec.selected = true;\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n menuItemSpec.menu.map(callback);\n }\n });\n }\n\n this.lmBannerService.saveAllLevelsResponse(response);\n }\n\n private loadWebAppMenuSpec() {\n const self = this;\n const loadAllLevels = this.lmBannerService.loadAllLevels();\n let webAppMenuNavigationUrl = this.webAppMenuNavigationUrl;\n\n if (loadAllLevels) {\n webAppMenuNavigationUrl = `${this.webAppMenuNavigationUrl}&allLevels=true`;\n }\n\n this.subscriptionArray.push(this.lmSpecService.getBannerSpec(webAppMenuNavigationUrl)\n .subscribe(async response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n } else {\n /**\n * Check state to see if there were previously expanded menus\n * Load all levels from previously expanded menus\n * Only do this if loadAllLevels is false\n */\n if (response.menuSpecs\n && (this.lmBannerService.getExpandedMenus()\n && this.lmBannerService.getExpandedMenus().length > 0)\n ) {\n await Promise.all(response.menuSpecs.map(async function callback(menuItemSpec: LMMenuItemSpec) {\n if (self.lmBannerService.getExpandedMenus().includes(menuItemSpec.menuIndex)) {\n menuItemSpec.menu = await self.getSubMenu(menuItemSpec.link);\n menuItemSpec.expanded = true;\n\n if (menuItemSpec.menuIndex === self.lmBannerService.getLastMenuItemClicked()) {\n menuItemSpec.selected = true;\n }\n\n if (menuItemSpec.menu && menuItemSpec.menu.length > 0) {\n await Promise.all(menuItemSpec.menu.map(callback));\n }\n }\n }));\n }\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, this.selectedMenuSpec);\n this.lmBannerService.updateBannerMenuSpec(response.menuSpecs, this.webAppMenuNavigationUrl);\n this.webAppMenuSpecs = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n if (this.webAppMenuSpecs.length === 0 || this.webAppMenuSpecs.length > this.noCasualApps - 1) {\n this.roleSwitcher = true;\n } else {\n this.lmBannerService.clearExpandedMenus();\n }\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.lmContextUtilService.setDrillbackDialogElement(this.drillbackPlaceholder, this.lmActionFormDialogService);\n const dialogId = 'BannerResponse';\n\n if (response.buildBaseMenuMessage) {\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate(response.buildBaseMenuMessage))\n .title('')\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n }\n },\n ])\n .open();\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n private async getSubMenu(url: string): Promise> {\n return new Promise((resolve, reject) => {\n this.lmSpecService.getBannerSpec(url).subscribe((response) => {\n resolve(response.menuSpecs);\n });\n });\n }\n\n private updateMyMenuButtons() {\n\n // \n\n this.myMenuButtons = new Array();\n this.myOverflowMenuButtons = new Array();\n\n if (this.showMenuButtonOption('HideMenuPrintFiles')) {\n this.myMenuButtons.push({ icon: 'print', label: Soho.Locale.translate('MyPrintFiles'), id: 'MyPrintFiles_button', url: this.myPrintFilesUrl });\n }\n\n if (this.notificationEnabled && this.showMenuButtonOption('HideMenuNotifications')) {\n this.myMenuButtons.push({ icon: 'notification', label: Soho.Locale.translate('MyNotifications'), id: 'MyNotifications_button', url: this.myNotificationsUrl });\n }\n\n if (this.inbasketEnabled && this.showMenuButtonOption('HideMenuInbasket')) {\n this.myMenuButtons.push({ icon: 'download', label: Soho.Locale.translate('MyInbasket'), id: 'MyInbasket_button', url: this.myInBasketUrl });\n }\n\n if (this.showMenuButtonOption('HideMenuJobs')) {\n this.myMenuButtons.push({ icon: 'cascade-objects', label: Soho.Locale.translate('MyJobs'), id: 'MyJobs_button', url: this.myJobsUrl });\n }\n\n if (this.showMenuButtonOption('HideMenuReports')) {\n this.myMenuButtons.push({ icon: 'report', label: Soho.Locale.translate('MyReports'), id: 'MyReports_button', url: this.myReportsUrl });\n }\n\n if (this.showMenuButtonOption('HideMenuActions')) {\n this.myMenuButtons.push({ icon: 'checkbox', label: Soho.Locale.translate('MyActions'), id: 'MyActions_button', url: this.myActionsUrl });\n }\n\n if (this.personalizationEnabled) {\n if (this.myMenuButtons.length === 6 && !this.enableSavedSearch) {\n this.myMenuButtons.push({ icon: 'quick-edit', label: Soho.Locale.translate('MyPersonalizations'), id: 'MyPersonalization_button', url: this.myPersonalizationsUrl });\n } else if (this.myMenuButtons.length === 6 && this.enableSavedSearch) {\n this.showOverFlowMenuButton = true;\n this.myOverflowMenuButtons.push({ icon: 'quick-edit', label: Soho.Locale.translate('MyPersonalizations'), id: 'MyPersonalization_button', url: this.myPersonalizationsUrl });\n } else {\n this.myMenuButtons.push({ icon: 'quick-edit', label: Soho.Locale.translate('MyPersonalizations'), id: 'MyPersonalization_button', url: this.myPersonalizationsUrl });\n }\n }\n\n if (this.enableSavedSearch) {\n if (this.myMenuButtons.length === 6 && !this.personalizationEnabled) {\n this.myMenuButtons.push({ icon: 'print-preview', label: Soho.Locale.translate('MySavedSearches'), id: 'MySavedSearches_button', url: this.mySavedSearchesUrl });\n } else if (this.myOverflowMenuButtons.length === 1 && this.personalizationEnabled) {\n this.showOverFlowMenuButton = true;\n this.myOverflowMenuButtons.push({ icon: 'print-preview', label: Soho.Locale.translate('MySavedSearches'), id: 'MySavedSearches_button', url: this.mySavedSearchesUrl });\n } else {\n this.myMenuButtons.push({ icon: 'print-preview', label: Soho.Locale.translate('MySavedSearches'), id: 'MySavedSearches_button', url: this.mySavedSearchesUrl });\n }\n }\n }\n\n public toggleActionMenu(e: Event) {\n e?.stopImmediatePropagation();\n this.actionMenu.nativeElement.style.display = this.actionMenuIsOpen ? 'none' : 'block';\n this.actionMenuIsOpen = !this.actionMenuIsOpen;\n }\n\n public closeActionMenu() {\n this.actionMenu.nativeElement.style.display = 'none';\n this.actionMenuIsOpen = false;\n }\n\n private showMenuButtonOption(buttonName: LMConfiguredFeatures): boolean {\n return !this.lmContextService.getContext().configuredFeatures.includes(buttonName);\n }\n\n private useAppSwitcher(): boolean {\n return (this.appSwitcher === 'casual' || this.appSwitcher === 'popup' || this.appSwitcher === 'accordion' || this.appSwitcher === 'suite');\n }\n\n private markForRefresh() {\n this.changeDetectorRef.markForCheck();\n }\n\n private _handleError(error: any): void {\n this.lmErrorUtilService.handleUnexpectedError(error);\n }\n\n private getUnreadNotificationCount() {\n let unreadCountUrl = this.lmUrlUtilService.getBannerSpecUrl();\n unreadCountUrl += (unreadCountUrl.indexOf('?') > -1 ? '&' : '?') + 'requestType=unreadCount';\n this.pause$.next(true);\n this.lmSpecService.getBannerSpec(unreadCountUrl).subscribe(\n (response: any) => {\n this.pause$.next(false);\n this.unreadNotificationCount = (response.unreadCount) ? parseInt(response.unreadCount, 10) : 0;\n this.displayRedDot = this.unreadNotificationCount > 0;\n this.markForRefresh();\n },\n error => {\n // In 3.5, the error is logged in the console for unread count and not prompted in dialog.\n // So timeout or when server down will not open up a dialog for a background poll request.\n // this._handleError(error);\n this.lmLoggerService.log([ this, error.status, error.message, 'Get unread notification count failed.' ]);\n });\n }\n\n public bannerSearch() {\n this.showBusyIndicator();\n const menuSearchUrl = this.lmBannerSearchService.getMenuSearchUrl(this.model.searchFieldValue);\n const observables: Observable[] = [];\n\n if (this.searchMenuSpecs === undefined) {\n this.searchMenuSpecs = [];\n }\n\n this.subscriptionArray.push(this.lmSpecService.getRedirectUrl(menuSearchUrl).subscribe(response => {\n const dataMenus = response.dataModules;\n const reports = response.reports;\n const totalWebAppMenu = this.bannerMenuSpecs.length + 1;\n\n if (totalWebAppMenu > this.searchMenuSpecs.length) {\n this.bannerMenuSpecs.forEach((webApp) => {\n const menu = this.searchMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === webApp.webAppName);\n if (webApp.navigationMenuUrl && menu.length === 0) {\n const url = this.lmUrlUtilService.appendToQueryString(webApp.navigationMenuUrl, 'allLevels=true');\n observables.push(this.lmSpecService.getBannerSpec(url));\n }\n });\n if (observables.length > 1) {\n this.subscriptionArray.push(forkJoin(observables).subscribe(results => {\n if (results.length > 0) {\n results.forEach((result) => {\n if (result && result.webApp) {\n this.buildMenuSpecs(this.searchMenuSpecs, result.webApp, result.webAppTitle, result.menuSpecs);\n }\n });\n }\n this.searchMenu(dataMenus, reports);\n }));\n } else {\n this.searchMenu(dataMenus, reports);\n }\n } else {\n this.searchMenu(dataMenus, reports);\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n private searchMenu(dataMenus: any, reports: any) {\n this.menuSearchResultsByWebApp = this.lmBannerSearchService.matchMultiMenus(this.menuSpecs, this.model.searchFieldValue);\n this.dataSearchResult = this.lmBannerSearchService.matchData(dataMenus);\n this.reportSearchResult = this.lmBannerSearchService.matchReports(reports);\n\n this.searchMode = true;\n\n const event: LMBannerSearchEvent = {\n searchString: this.model.searchFieldValue,\n menuSpecsByWebApp: this.menuSpecs,\n menuSearchResultsByWebApp: this.menuSearchResultsByWebApp,\n dataSearchResults: this.dataSearchResult,\n reportSearchResults: this.reportSearchResult,\n toggleMenu: Object.keys(this.menuSearchResultsByWebApp).length > 0 ? 'Applications' : this.reportSearchResult.length > 0 ? 'Reports' : 'Data'\n };\n this.model.searchFieldValue = '';\n this.menuSearched.emit(event);\n this.hideBusyIndicator();\n }\n\n autoSearchMenu(searchValue: string) {\n this.searchFieldText$.next(searchValue);\n }\n\n // Save this code for menu search implementation\n fireMenuSearchEvent(event: Event) {\n if (!this.model.searchFieldValue) {\n // if value is blank then fire clearSearchEvent event\n this.fireClearSearchEvent(event);\n } else {\n // if searchfieldvalue length is 3 or more the auto search with perform this.bannerSearch();\n if (this.model.searchFieldValue.length <= 2) {\n this.bannerSearch();\n }\n }\n }\n\n fireClearSearchEvent(event) {\n this.searchMode = false;\n\n const toolbarSearchEvent: LMToolbarSearchEvent = {\n event,\n searchField: this.menuSearchField\n };\n }\n\n public openProxyPage() {\n const dialogId = 'Proxy';\n let title: string;\n\n if (this.proxyEnabled) {\n title = Soho.Locale.translate('SwitchToProxy');\n } else if (this.proxyMode) {\n title = Soho.Locale.translate('SwitchBackFromProxy');\n } else {\n title = Soho.Locale.translate('ProxyManagement')\n }\n\n let proxyMenuComponent: LMBannerProxyMenuComponent;\n this.dialog = this.sohoModalDialogService\n .modal(LMBannerProxyMenuComponent, this.placeholder, {fullsize: 'responsive'})\n .apply((proxyMenu: LMBannerProxyMenuComponent) => {\n proxyMenuComponent = proxyMenu;\n if (this.proxyMode) {\n proxyMenuComponent.proxyMode = this.proxyMode;\n proxyMenuComponent.proxyResetUrls = this.proxyResetUrls;\n }\n if (this.proxyEnabled) {\n proxyMenuComponent.proxyEnabled = this.proxyEnabled;\n proxyMenuComponent.proxyUserUrls = this.proxyUserUrls;\n }\n if (this.proxyManagementLink) {\n proxyMenuComponent.proxyManagementLink = this.proxyManagementLink;\n }\n })\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n }\n }\n ])\n .title(title)\n .open();\n }\n\n // todo: vwiny spec-url-refactor doesn't seem to be used. - Phillip\n public openChangePasswordWindow() {\n const subscription = this.lmSpecService.getFormSpecFromRedirectActionUrl(this.changePasswordLink)\n .subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // TODO: This function is currently not in use. The caller of this function will determine what to do with busy indicator or how to display the error message.\n // this.lmBusyIndicatorService.hideBusyIndicator();\n // this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const actionName = (response as LMActionFormUrlResponse).action;\n const actionSpec: LMActionSpec = this.lmBannerService.getChangePasswordAction(formSpec.busClassSpec.actions, 'ChangePasswordUIMenu');\n actionSpec.isChangePassword = true;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId, actionName });\n\n this.lmActionFormDialogService.getActionFormDialogDataView(dataUrl).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n\n if (formDataView.status !== AppConstants.STATUS_COMPLETED) {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n return;\n }\n\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView)\n .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // nothing to do as successful and error message are handled where action is executed\n }\n });\n });\n });\n\n this.subscriptionArray.push(subscription);\n return false; // todo why return false?\n }\n\n public openLoginWindow() {\n const loginDialog = this.lmLoginService.promptLoginDialog(this.loginPlaceholder).subscribe((result: LoginResult) => {\n if (result.status === LoginDialogStatus.RESPONSE_OK) {\n this.lmLoggerService.log(result);\n }\n });\n\n this.subscriptionArray.push(loginDialog);\n return false; // todo why return false?\n }\n\n // private onWebAppSelected($event?: any) {\n // this.busyIndicator.open();\n //\n // const button: any = $event.currentTarget;\n // const url = button.getAttribute('navigation-menu-url');\n // this.webAppTitle = button.getAttribute('title');\n // this.webAppName = button.getAttribute('web-app-name');\n //\n // // For webapp without a navigation menu\n // if (!url) {\n // this.selectedMenuSpec = [];\n // this.webAppMenuSpecs = this.bannerMenuSpec.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n // let currWebAppSpec = this.bannerMenuSpec.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n //\n // this.selectedMenuSpec.push(\n // {\n // resourceId: currWebAppSpec[ 0 ].webAppName,\n // name: 'Home',\n // link: currWebAppSpec[ 0 ].webAppUrl,\n // id: 'Home',\n // label: Soho.Locale.translate('Home'),\n // resourceType: 'page'\n // });\n // this.menuSpecs[ this.webAppName ] = this.selectedMenuSpec;\n //\n // this.markForRefresh();\n // this.updateRequired = true;\n //\n // this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n // this.lmUrlUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n //\n // this.busyIndicator.close(false);\n // } else {\n // this.lmSpecService.getBannerSpec(url).subscribe(\n // response => {\n // this.selectedMenuSpec = response.menuSpecs;\n //\n // this.menuSpecs[ this.webAppName ] = this.selectedMenuSpec;\n //\n // this.signOutLink = response.signOutLink;\n //\n // this.resetMenuPersonalization();\n //\n // this.lmBannerService.setBannerMenuSpec(this.selectedMenuSpec);\n //\n // this.lmBannerService.updateBannerMenuSpec(response.menuSpecs, url);\n //\n // this.markForRefresh();\n // this.updateRequired = true;\n //\n // this.webAppMenuSpecs = this.bannerMenuSpec.filter(webAppSpec => webAppSpec.webAppName !== this.webAppName && webAppSpec.webAppTitle);\n //\n // let currWebAppSpec = this.bannerMenuSpec.filter(webAppSpec => webAppSpec.webAppName === this.webAppName);\n // this.lmContextService.updateWebApp(currWebAppSpec[ 0 ]);\n //\n // this.lmUrlUtilService.navigateByUrl(currWebAppSpec[ 0 ].webAppUrl);\n //\n // this.busyIndicator.close(false);\n // },\n // error => {\n // this._handleError(error);\n // });\n // }\n // }\n public webAppSwitcherButtonId: string;\n\n private onSwitchToProxyClicked(switchProxyUrl: string) {\n this.lmGlobalUtilService.navigate(switchProxyUrl, null, 'replace');\n }\n\n public runCreateReport(): void {\n this.lmReportPersonalizationDialogService.runReportPersonalizationDialog(\n 'report',\n this.reportPlaceholder,\n this.createReportUrl,\n this.actorGroupSelectUrl,\n this.roleSelectUrl,\n this.roleGroupSelectUrl,\n this.reportFieldSearchUrl\n ).subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED) {\n if (result.viewReport) {\n this.lmGlobalUtilService.navigateByUrl(result.reportUrl);\n } else {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n return;\n });\n }\n\n showBusyIndicator() {\n this.busyIndicator.open();\n }\n\n hideBusyIndicator() {\n this.busyIndicator.close(false);\n }\n\n public getBannerPersonalization() {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(bannerPersonalization)) {\n\n if (bannerPersonalization.lastOpenedMenu) {\n this.lmBannerService.lastOpenedMenuId = bannerPersonalization.lastOpenedMenu;\n } else {\n this.lmBannerService.resetLastOpenedMenu();\n }\n }\n }\n\n public resetMenuPersonalization() {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n\n if (!_.isEmpty(bannerPersonalization) && bannerPersonalization.lastOpenedMenu) {\n bannerPersonalization.lastOpenedMenu = '';\n }\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(bannerPersonalization);\n\n this.lmBannerService.resetLastOpenedMenu();\n }\n\n public loadWebAppMenu(button: any) {\n this.showBusyIndicator();\n const loadAllLevels = this.lmBannerService.loadAllLevels();\n\n let url = button.getAttribute('navigationmenuurl');\n\n const webAppTitle = button.getAttribute('title');\n this.selectedWebAppName = button.getAttribute('id');\n\n if (!this.roleSwitcher) {\n this.lmBannerService.clearExpandedMenus();\n }\n // For webapp without a navigation menu\n if (!url) {\n this.selectedMenuSpec = [];\n // this.webAppMenuSpecs = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName !== this.selectedWebAppName && webAppSpec.webAppTitle);\n const currWebAppSpec = this.bannerMenuSpecs.filter(webAppSpec => webAppSpec.webAppName === this.selectedWebAppName);\n\n this.selectedMenuSpec.push(\n {\n resourceId: currWebAppSpec.length === 0 && this.selectedWebAppName === 'web' ? this.selectedWebAppName : currWebAppSpec[ 0 ].webAppName,\n name: 'Home',\n link: currWebAppSpec.length === 0 && this.selectedWebAppName === 'web' ? url : currWebAppSpec[ 0 ].webAppUrl,\n id: 'Home',\n label: Soho.Locale.translate('Home'),\n resourceType: 'page'\n });\n this.buildMenuSpecs(this.menuSpecs, this.selectedWebAppName, webAppTitle, this.selectedMenuSpec);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.hideBusyIndicator();\n } else {\n url = loadAllLevels\n ? `${button.getAttribute('navigationmenuurl')}&allLevels=true`\n : button.getAttribute('navigationmenuurl');\n\n this.subscriptionArray.push(this.lmSpecService.getBannerSpec(url).subscribe(\n response => {\n if (loadAllLevels) {\n this.saveAllLevelsResponse(response);\n }\n\n this.selectedMenuSpec = response.menuSpecs;\n\n this.buildMenuSpecs(this.menuSpecs, response.webApp, response.webAppTitle, response.menuSpecs);\n\n this.lmBannerService.setBannerMenuSpec(this.selectedMenuSpec);\n\n this.lmBannerService.updateBannerMenuSpec(response.menuSpecs, url);\n\n this.markForRefresh();\n this.updateRequired = true;\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n }));\n }\n }\n\n public selectMenuSpec(webAppName: string) {\n const webAppMenu = this.menuSpecs.filter(webAppSpec => webAppSpec.webAppName === webAppName);\n if (webAppMenu.length === 1) {\n return webAppMenu[ 0 ].menuSpec;\n }\n return [];\n }\n\n private buildMenuSpecs(\n specs: Array,\n webAppName: string,\n webAppTitle: string,\n selectedMenuSpec: Array\n ) {\n let pushMenu = true;\n\n if (specs.length > 0) {\n const menuSpec = specs.filter(webAppSpec => webAppSpec.webAppName === webAppName);\n if (menuSpec.length > 0) {\n pushMenu = false;\n }\n }\n if (pushMenu) {\n this.menuSpecs.push({\n id: webAppName,\n webAppName,\n webAppTitle,\n menuSpec: selectedMenuSpec\n });\n }\n }\n\n public ngAfterViewChecked(): void {\n if (this.updateRequired) {\n this.onWebAppMenuLoaded();\n this.updateRequired = false;\n }\n }\n\n public webAppId(webAppName: string): string {\n return webAppName + (this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V2 ? '_webapp' : '');\n }\n}\n","
\n
\n\n \n \n \n \"\"/\n \n 0) || (selectedMenuSpec && webAppMenuSpecs.length > noCasualApps)\">\n \n
\n \n
\n
\n {{actorName}}\n\n
\n
\n
\n\n \n \n \n \n \n \n\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n
\n \n \n \n\n \n \n
\n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n 0 && !this.roleSwitcher\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n
\n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n \n \n\n \n\n \n\n \n \n\n \n \n\n \n \n \n\n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
\n\n \n\n \n\n\n \n\n\n \n\n \n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n\n
\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Input\n} from '@angular/core';\nimport {\n LMLoggerService, LMSpecService, LMUrlUtilService,\n} from '@services/index';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\n@Component({\n selector: 'lm-banner-proxy-menu',\n templateUrl: './lm-banner-proxy-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMBannerProxyMenuComponent implements AfterViewInit{\n @Input() proxyUserUrls: { [ key: string ]: string };\n @Input() proxyResetUrls: [];\n @Input() proxyMode: boolean;\n @Input() proxyEnabled: boolean;\n @Input() proxyManagementLink: string;\n @Input() proxyManagementLinkMessage: string;\n\n proxyUsers: string[];\n proxyWebApps: any;\n\n constructor(\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmLoggerService: LMLoggerService,\n private lmSpecService: LMSpecService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private changeDetector: ChangeDetectorRef\n ) {\n this.lmLoggerService.trace('@BannerProxyMenuComponent -> constructor');\n }\n\n ngOnInit() {\n this.proxyManagementLinkMessage = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ProxyManagementHyperlink'), Soho.Locale.translate('ProxyManagement'));\n }\n\n ngAfterViewInit(): void {\n if (this.proxyUserUrls) {\n this.proxyUsers = Object.keys(this.proxyUserUrls);\n this.proxyUsers.sort();\n }\n\n this.changeDetector.detectChanges();\n }\n\n onSwitchToProxyClicked(switchProxyUrl: string) {\n this.lmGlobalUtilService.navigate(switchProxyUrl, null, 'replace');\n }\n\n onProxyManagementLinkClicked(proxyManagementUrl: string) {\n this.lmGlobalUtilService.navigate(proxyManagementUrl, null, 'external');\n }\n\n onBeforeOpen(event: SohoPopupMenuEvent) {\n const user = event.e.currentTarget.getAttribute('user');\n this.proxyWebApps = this.proxyUserUrls[ user ];\n this.changeDetector.detectChanges();\n }\n\n onSelected(event: SohoPopupMenuEvent) {\n const webApp = event.args[0].getAttribute('webApp');\n const proxyWebApp = this.proxyWebApps.filter(proxyUser => proxyUser.proxyWebApp === webApp);\n window.location.href = proxyWebApp[0].proxyUserUrl;\n }\n\n}\n","
\n
\n
\n \n
\n
\n\n \n
\n \n
\n
\n
\n
\n
\n {{proxyManagementLinkMessage}}\n
\n
\n","/**\n * Created by vwiny on 9/5/2018.\n */\nimport {\n Component,\n EventEmitter,\n OnInit,\n Output,\n NgZone,\n ViewChild,\n ElementRef, ViewChildren, QueryList, Input, ViewContainerRef, ChangeDetectorRef, OnDestroy, AfterViewInit,\n} from '@angular/core';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMBannerSearchService } from './lm-banner-search.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMBannerMenuService } from './lm-banner-menu.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { Subject, SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { AppConstants } from '@app/utils';\n\n@Component({\n selector: 'lm-banner-search',\n templateUrl: './lm-banner-search.component.html',\n styleUrls: [ 'lm-banner-search.component.scss' ],\n})\nexport class LMBannerSearchComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() searchString: string;\n @Input() menuSpecsByWebApp: Array; // todo type me!!\n @Input() dataSearchResults: Array;\n @Input() reportSearchResults: Array;\n\n // @Input() menuSearchResultsByWebApp: LMBannerSearchResults;\n private _menuSearchResultsByWebApp: LMBannerSearchResults;\n @Input() set menuSearchResultsByWebApp(menuSearchResultsByWebApp: LMBannerSearchResults) {\n this._menuSearchResultsByWebApp = menuSearchResultsByWebApp;\n\n // todo ben, pwpatton, khollenbech, is there more efficient way to build the webAppSpecsWithSearchResults\n // when the menuSearchResultsByWebApp changes?\n this.webAppSpecsWithSearchResults = this.lmBannerSearchService.buildWebAppSpecsFromSearchResults(\n this.lmContextService.getAccessibleWebApps(), menuSearchResultsByWebApp, this.lmContextService.getWebApp());\n }\n get menuSearchResultsByWebApp(): LMBannerSearchResults {\n return this._menuSearchResultsByWebApp;\n }\n\n @Output() menuSearched: EventEmitter = new EventEmitter();\n @Output() menuSearchCleared: EventEmitter = new EventEmitter();\n\n @ViewChildren('searchMenuHeader') private _searchMenuHeaders: QueryList;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('menuFormDialog', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild('searchField') searchField: ViewContainerRef;\n\n public accessibility = {\n announcement: ''\n };\n\n public webAppSpecsWithSearchResults: LMWebAppSpec[];\n public searchMode: boolean;\n // menuSearchField: LMToolbarSearchField;\n public model = { searchFieldValue: '' };\n public reportTitle: string;\n public dataTitle: string;\n public bannerSearchInfo: LMBannerSearchInfo;\n private subscriptionArray: Array = []; // todo: type me!\n private menuItemClicked$ = new Subject();\n public searchFieldText$ = new Subject();\n private destroyer$ = new Subject();\n public testVersion1: boolean;\n\n constructor(\n private routeComponent: LMRouteComponentService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private lmBannerSearchService: LMBannerSearchService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmContextService: LMContextService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmBannerMenuService: LMBannerMenuService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private elementRef: ElementRef,\n private zone: NgZone,\n private lmContextUtilService: LMContextUtilService,\n ) {\n this.searchFieldText$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1000))\n .subscribe(value => {\n this.fireMenuSearchEvent(event);\n });\n }\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.lmLoggerService.trace('@BannerNavComponent -> ngOnInit');\n this.searchMode = false;\n this.model.searchFieldValue = this.searchString;\n this.bannerSearchInfo = this.lmBannerSearchService.getBannerSearchInfo(this.model.searchFieldValue);\n this.setHeaderTitles();\n this.handleFocus();\n this.processAccessibility();\n }\n\n ngAfterViewInit() {\n\n /**\n * LMCLIENT-37027\n * Trigger keyup event after DOM is finished loading\n * This will cause the \"x\" clear button to display in the search input without user interaction\n * The normal functionality for the search control only shows the clear button after a key event\n * Whereas in this use case we need it to show after initial load because the search has been pre-populated\n * And the search button closes the search overlay when clicked.\n */\n this.triggerKeyUpEventOnSearch();\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.destroyer$.next();\n this.destroyer$.complete();\n }\n\n get searchMenuHeaders(): QueryList {\n return this._searchMenuHeaders;\n }\n\n get limitSearch(): boolean {\n return this.bannerSearchInfo.limitSearch;\n }\n\n onMenuSearched(event: Event) {\n this.menuSearched.emit(event);\n }\n\n onMenuSearchCleared(event: Event) {\n this.menuSearchCleared.emit(event);\n }\n\n fireClearSearchEvent(event) {\n this.searchMode = false;\n this.menuSearchCleared.emit(event);\n this.hideBusyIndicator();\n }\n\n autoSearchMenu(searchValue: string) {\n this.searchFieldText$.next(searchValue);\n }\n\n handleFocus() {\n // This needs to be in a timeout to ensure that the search field is set to focus\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const nativeElement = this.elementRef.nativeElement;\n nativeElement.querySelectorAll('input')[0].focus();\n return;\n }, 2);\n });\n }\n\n fireMenuSearchEvent(event: Event) {\n this.showBusyIndicator();\n\n this.menuSearchResultsByWebApp = {};\n this.dataSearchResults = [];\n this.reportSearchResults = [];\n\n this.bannerSearchInfo = this.lmBannerSearchService.getBannerSearchInfo(this.model.searchFieldValue);\n\n // this.changeDetectorRef.markForCheck();\n\n if (!this.model.searchFieldValue) {\n // if value is blank then fire clearSearchEvent event\n this.fireClearSearchEvent(event);\n } else {\n this.bannerSearch();\n }\n }\n\n private setHeaderTitles() {\n this.reportTitle = Soho.Locale.translate('SearchReportsTitle');\n this.reportTitle = this.reportSearchResults.length > 0 ? this.reportTitle + ' (' + this.reportSearchResults.length + ')' : this.reportTitle;\n\n this.dataTitle = Soho.Locale.translate('SearchDataTitle');\n this.dataTitle = this.dataSearchResults.length > 0 ? this.dataTitle + ' (' + this.dataSearchResults.length + ')' : this.dataTitle;\n }\n\n private bannerSearch() {\n const menuSearchUrl = this.lmBannerSearchService.getMenuSearchUrl(this.model.searchFieldValue);\n\n this.accessibility.announcement = '';\n\n // this.subscriptionArray.push(); // don't need to push into a subscription array as this observable will completed internally with each call.\n this.lmSpecService.getRedirectUrl(menuSearchUrl).subscribe(response => {\n const dataMenus = response.dataModules;\n const reports = response.reports;\n\n this.menuSearchResultsByWebApp = this.lmBannerSearchService.matchMultiMenus(this.menuSpecsByWebApp, this.model.searchFieldValue, this.bannerSearchInfo);\n // const searchResultsByWebApp = this.menuSearchResultsByWebApp;\n // const accessibleWebApps = this.lmContextService.getAccessibleWebApps();\n // this.webAppSpecsWithSearchResults = this.lmBannerSearchService.buildWebAppSpecsFromSearchResults(accessibleWebApps, searchResultsByWebApp);\n this.dataSearchResults = this.lmBannerSearchService.matchData(dataMenus);\n this.reportSearchResults = this.lmBannerSearchService.matchReports(reports);\n\n this.searchMode = true;\n\n const event: LMBannerSearchEvent = {\n searchString: this.model.searchFieldValue,\n menuSpecsByWebApp: this.menuSpecsByWebApp,\n menuSearchResultsByWebApp: this.menuSearchResultsByWebApp,\n dataSearchResults: this.dataSearchResults,\n reportSearchResults: this.reportSearchResults,\n toggleMenu: Object.keys(this.menuSearchResultsByWebApp).length > 0 ? 'Applications' : this.reportSearchResults.length > 0 ? 'Reports' : 'Data'\n };\n this.setHeaderTitles();\n\n this.menuSearched.emit(event);\n\n this.hideBusyIndicator();\n },\n error => {\n this._handleError(error);\n },\n () => {\n this.processAccessibility();\n });\n }\n\n showBusyIndicator() {\n this.lmBusyIndicatorService.showBusyIndicator(this.busyIndicator);\n }\n\n hideBusyIndicator() {\n this.lmBusyIndicatorService.hideBusyIndicator(this.busyIndicator);\n }\n\n openSearchMenuItem($event: any) {\n const anchor: any = $event.currentTarget;\n const menuUrl = anchor.getAttribute('searchMenuUrl');\n\n const routeComponent: LMRouteComponentService = this.routeComponent;\n this.subscriptionArray.push(this.lmSpecService.getBannerSpec(menuUrl).subscribe(\n response => {\n if (response.dialogUrl) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(response.dialogUrl);\n } else {\n this.lmBannerMenuService.requestActionFromPageMenu(response.dialogUrl, response.resourceId, this.placeholder);\n }\n } else if (response.redirectUrl) {\n this.lmContextService.setClearNextPageState(true);\n const url = response.redirectUrl;\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(url);\n const host = this.lmContextUtilService.getLocation(noDefaultPortUrl).host;\n if (response.external) {\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.embedded) {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n const isHtmlFragment = response.redirectUrl.indexOf('standalone=true') < 0;\n const webapp = this.lmContextService.getContext().webApp;\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n const autoLoadUrl = dataArea + '/' + webapp + '/menu/url?autoLoadUrl=' + encodeURIComponent(response.redirectUrl) + (isHtmlFragment ? '&isHtmlFragment=true' : '');\n this.lmGlobalUtilService.navigateByUrl(autoLoadUrl);\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n } else {\n if ((url.length > 0 && host !== window.location.host) || (response.redirectUrl.indexOf('.html') >= 0)) {\n window.location.href = response.redirectUrl;\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n }\n }\n },\n error => {\n this._handleError(error);\n }));\n }\n\n public onMenuItemClicked(menuItem: any) {\n this.menuItemClicked$.next(menuItem);\n }\n\n // public getMenuItemId(menuItem: any) {\n // if (menuItem.parentMenus && menuItem.parentMenus.indexOf('/') > -1) {\n // let parentLabelArray = menuItem.parentMenus.split('/');\n // let lastParent = parentLabelArray[parentLabelArray.length - 2];\n // lastParent = lastParent.replace(/\\s/g, '');\n // return 'appmenu_' + lastParent + '_prd_' + menuItem.id;\n // }\n // return 'appmenu_' + menuItem.id;\n // }\n\n public openSearchItemLink($event: any) {\n const anchor: any = $event.currentTarget;\n const menuUrl = anchor.getAttribute('searchMenuUrl');\n const resourceId = anchor.getAttribute('resourceId');\n\n const actionParam = this.lmUrlUtilService.getUrlParam(menuUrl, 'action');\n if (actionParam) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = this.routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(menuUrl);\n } else {\n this.lmBannerMenuService.requestActionFromPageMenu(menuUrl, resourceId, this.placeholder);\n }\n } else {\n this.lmGlobalUtilService.navigateByUrl(menuUrl);\n }\n }\n\n private processAccessibility(): void {\n if ([ ...this.webAppSpecsWithSearchResults, ...this.reportSearchResults, ...this.dataSearchResults ].length) {\n this.accessibility.announcement = Soho.Locale.translate('SearchResultsFound', this.model.searchFieldValue);\n\n if (this.limitSearch) {\n this.accessibility.announcement += `. ${Soho.Locale.translate('SearchResultLimited')}`;\n }\n } else {\n this.accessibility.announcement = Soho.Locale.translate('NoSearchResultsFound');\n }\n }\n\n private _handleError(error: any): void {\n this.lmErrorUtilService.handleUnexpectedError(error);\n }\n\n private triggerKeyUpEventOnSearch() {\n const event = new KeyboardEvent('keyup', { bubbles:true });\n setTimeout(() => this.searchField.element.nativeElement.dispatchEvent(event));\n }\n}\n","
\n
\n \n
\n \n \n
\n

{{ 'SearchResultLimited' | translate }}

\n

\n {{ 'NoSearchResultsFound' | translate }}\n

\n\n
\n\n \n \n \n\n \n \n\n \n
0\" #searchMenuHeader class=\"accordion-header\">\n \n {{reportTitle}}\n
\n
0\" class=\"accordion-pane\">\n \n \n \n
\n\n \n
0\" #searchMenuHeader class=\"accordion-header\">\n \n {{dataTitle}}\n
\n
0\" class=\"accordion-pane\">\n \n \n \n
\n\n
\n
\n
\n
\n
\n \n
\n\n\n
\n {{ accessibility.announcement }}\n
\n","import { Injectable } from '@angular/core';\n\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\n\n/**\n * Created by vwiny on 9/6/2018.\n */\n@Injectable()\nexport class LMBannerSearchService {\n constructor(private lmUrlUtilService: LMUrlUtilService) {}\n static readonly NO_MENU_SEARCH_LIMIT = 5;\n\n public menuNameMatch = false;\n\n public getMenuSearchUrl(menuSearchString: string): string {\n let menuSearchUrl = this.lmUrlUtilService.getBannerSpecUrl();\n\n const delimiter = (menuSearchUrl.indexOf('?') < 0) ? '?' : '&';\n menuSearchUrl += delimiter + 'requestType=searchMenu&menuSearch=' + menuSearchString;\n\n return menuSearchUrl;\n }\n\n public matchMultiMenus(menuSpecs: Array, searchString: string, bannerSearchInfo?: LMBannerSearchInfo): {[ key: string ]: Array} {\n if (!bannerSearchInfo) {\n bannerSearchInfo = this.getBannerSearchInfo(searchString);\n }\n\n const menuResult: { [ key: string ]: Array } = {};\n\n menuSpecs.forEach(menuSpec => {\n let searchResult: Array = [];\n\n if (menuSpec.webAppName !== 'web') {\n if (!bannerSearchInfo.limitSearch || searchResult.length < LMBannerSearchService.NO_MENU_SEARCH_LIMIT) {\n searchResult = this.matchMenus(menuSpec.menuSpec, bannerSearchInfo.searchString, bannerSearchInfo);\n if (searchResult.length > 0) {\n menuResult [ menuSpec.webAppName ] = searchResult;\n }\n }\n }\n });\n\n return menuResult;\n }\n\n private matchMenus(menuSpecs: Array, searchString: string, bannerSearchInfo: LMBannerSearchInfo): Array {\n const searchResult: Array = [];\n\n for (let i = 0; i < menuSpecs.length; i++) {\n if (bannerSearchInfo.limitSearch && searchResult.length >= LMBannerSearchService.NO_MENU_SEARCH_LIMIT) {\n break;\n }\n\n this.findMenuMatch(searchResult, menuSpecs[ i ], searchString, bannerSearchInfo);\n\n this.menuNameMatch = false;\n }\n searchResult.sort((menu1: LMBannerSearchResult, menu2: LMBannerSearchResult) => menu1.child.localeCompare(menu2.child));\n\n return searchResult;\n }\n\n public matchData(dataMenus: Array): Array {\n const searchResult: Array = [];\n\n if (dataMenus) {\n for (let i = 0; i < dataMenus.length; i++) {\n this.findDataMatch(searchResult, dataMenus[ i ]);\n }\n }\n return searchResult;\n }\n\n public matchReports(reports: Array): Array {\n const searchResult: Array = [];\n\n if (reports) {\n reports.forEach(report => this.findReportMatch(searchResult, report));\n }\n\n return searchResult;\n }\n\n // todo vonnyw - element id project - how to type menuSpec? why is it not just LMMenuItemSpec?\n private findMenuMatch(searchResult: Array, menuSpec: any, searchString: string, bannerSearchInfo: LMBannerSearchInfo): void {\n if (menuSpec.menu) {\n for (let i = 0; i < menuSpec.menu.length; i++) {\n if (bannerSearchInfo.limitSearch && searchResult.length >= LMBannerSearchService.NO_MENU_SEARCH_LIMIT) {\n break;\n }\n\n if (!this.menuNameMatch) {\n this.matchMenuName(searchResult, menuSpec, searchString, bannerSearchInfo);\n }\n this.findMenuMatch(searchResult, menuSpec.menu[ i ], searchString, bannerSearchInfo);\n }\n\n this.matchSearchTerm(searchResult, menuSpec, searchString, bannerSearchInfo);\n } else {\n const menuSpecLabel: string = menuSpec.label as string;\n\n if (bannerSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (bannerSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(menuSpecLabel)) {\n const result: LMBannerSearchResult = {\n id: menuSpec.id,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link\n }\n searchResult.push(result);\n }\n\n this.matchSearchTerm(searchResult, menuSpec, searchString, bannerSearchInfo);\n }\n }\n\n private findReportMatch(searchResult: Array, report: LMBannerReportMenu): void {\n searchResult.push({ id: report.id, type: report.type, child: report.name, url: report.url });\n }\n\n private findDataMatch(searchResult: Array, dataMenu: LMBannerDataMenu): void {\n if (dataMenu.type === 'CLASS') {\n searchResult.push({\n automationId: dataMenu.automationId,\n id: LMBannerSearchService.toHtmlElementId(dataMenu.id),\n type: 'Data',\n parent: dataMenu.moduleName + ' / ' + 'Business Classes',\n child: dataMenu.name,\n url: dataMenu.url\n });\n } else if (dataMenu.type === 'TASK') {\n searchResult.push({\n automationId: dataMenu.automationId,\n id: LMBannerSearchService.toHtmlElementId(dataMenu.id),\n type: 'Data',\n parent: dataMenu.moduleName + ' / ' + 'Business Tasks' + ' / ' + dataMenu.name,\n child: dataMenu.name + '.' + dataMenu.command,\n url: dataMenu.url,\n resourceId: dataMenu.resourceId\n });\n }\n }\n\n public getBannerSearchInfo(menuSearchValue: string): LMBannerSearchInfo {\n let menuSearchType: LMBannerSearchType = null;\n let menuSearchString: string = null;\n\n if (menuSearchValue.startsWith('*')) {\n menuSearchType = 'STARTSWITH';\n menuSearchString = menuSearchValue.substring(1, menuSearchValue.length);\n } else if (menuSearchValue.endsWith('*')) {\n menuSearchType = 'ENDSWITH';\n menuSearchString = menuSearchValue.substring(0, menuSearchValue.length - 1)\n } else {\n menuSearchType = 'CONTAINS';\n menuSearchString = menuSearchValue;\n }\n\n return {\n searchString: menuSearchString,\n searchType: menuSearchType,\n limitSearch: menuSearchValue.length <= 2 ? true : false\n };\n }\n\n /**\n * @param accessibleWebApps\n * @param searchResultsByWebApp { [webAppName]: LMBannerSearchResults[] }\n * @param currentWebApp\n */\n public buildWebAppSpecsFromSearchResults(\n accessibleWebApps: LMWebAppSpec[],\n searchResultsByWebApp: { [ key: string ]: LMBannerSearchResult[] },\n currentWebApp: string\n ): LMWebAppSpec[] {\n const webAppsWithSearchResults: LMWebAppSpec[] = [];\n\n Object.keys(searchResultsByWebApp).forEach(webAppName => accessibleWebApps.find(webAppSpec => {\n if (webAppSpec.webAppName === webAppName) {\n if (webAppName === currentWebApp) {\n webAppsWithSearchResults.splice(0, 0, webAppSpec);\n } else {\n webAppsWithSearchResults.push(webAppSpec);\n }\n }\n }));\n\n return webAppsWithSearchResults;\n }\n\n private matchMenuName(searchResult: Array, menuSpec: any, searchString: string, bannerSearchInfo: LMBannerSearchInfo): void {\n\n const menuSpecLabel: string = menuSpec.menu[0].parentLabel as string;\n if (bannerSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (bannerSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(menuSpecLabel) && (menuSpec.menu && menuSpec.menu.length > 0)) {\n const result: LMBannerSearchResult = {\n id: menuSpec.id,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu\n };\n searchResult.push(result);\n this.menuNameMatch = true;\n }\n }\n\n private matchSearchTerm(searchResult: Array, menuSpec: any, searchString: string, bannerSearchInfo: LMBannerSearchInfo): void {\n\n if (menuSpec.menuItemTerms) {\n for (let n = 0; n < menuSpec.menuItemTerms.length; n++) {\n const searchTerm: string = menuSpec.menuItemTerms[n] as string;\n\n if (bannerSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (bannerSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(searchTerm) && (menuSpec.menu && menuSpec.menu.length > 0)) {\n const result: LMBannerSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu,\n searchTerm: searchTerm\n };\n searchResult.push(result);\n } else if (pattern.test(searchTerm)) {\n const result: LMBannerSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n searchTerm: searchTerm\n };\n searchResult.push(result);\n }\n }\n }\n\n if (menuSpec.menuTerms) {\n for (let n = 0; n < menuSpec.menuTerms.length; n++) {\n const searchTerm: string = menuSpec.menuTerms[n] as string;\n\n if (bannerSearchInfo.searchType === 'STARTSWITH') {\n searchString = '^' + searchString;\n } else if (bannerSearchInfo.searchType === 'ENDSWITH') {\n searchString = searchString + '$';\n }\n\n const pattern = new RegExp(searchString.replace(/\\*/g, '.*'), 'i');\n\n if (pattern.test(searchTerm)) {\n const result: LMBannerSearchResult = {\n id: menuSpec.id,\n automationId: menuSpec.automationId,\n type: 'Applications',\n parent: menuSpec.parentLabel,\n child: menuSpec.label,\n url: menuSpec.link,\n menu: menuSpec.menu,\n// searchTerm: searchTerm\n };\n searchResult.push(result);\n }\n }\n }\n }\n\n private static toHtmlElementId(id: string) {\n return id.replace('.', '_');\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, flatMap, map, tap } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMTransactionService, LMTransactionState } from '@transaction/index';\n\n@Injectable()\nexport class LMBannerTransactionService {\n constructor(\n private lmActionService: LMActionService,\n private lmTransactionService: LMTransactionService,\n ) {}\n\n private createTransactionUrl(transactionUrl: string, actionSpec: LMActionSpec, dataView: LMDataView) {\n const transactionUrlTemplate = urltemplate.parse(transactionUrl);\n\n return transactionUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n }\n\n private runActionChecks(\n transactionState: LMTransactionState,\n actionUrlTemplate: string,\n busClassSpec: LMBusClassSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef\n ): Observable {\n return this.lmTransactionService.getScheduleView(actionSpec, busClassSpec.name).pipe(\n map((scheduleView: LMDataView) => {\n if (!scheduleView) {\n // Cancelled scheduling\n transactionState.cancel();\n return false;\n }\n const transactionRequest = this.lmActionService.buildActionRequestForDataView(\n dataView,\n actionSpec,\n null,\n null,\n null,\n scheduleView\n );\n transactionState.setRequestPayload([ transactionRequest ]);\n return true;\n }),\n // proceed if schedule is not cancelled; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transactionState, busClassSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transactionState)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n }\n\n public runMenuAction(\n transactionUrlTemplate: string,\n busClassSpec: LMBusClassSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef\n ): Observable {\n const transactionState: LMTransactionState = new LMTransactionState(this.createTransactionUrl(transactionUrlTemplate, actionSpec, dataView));\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({dataViewLists: [dataView], actionSpec });\n transactionState.setRequestPayload(transactionRequests);\n return this.runActionChecks(\n transactionState,\n transactionUrlTemplate,\n busClassSpec,\n actionSpec,\n dataView,\n placeholder\n ).pipe(\n flatMap((proceed: boolean) => proceed ?\n this.lmTransactionService.executeAction(transactionState) :\n of(transactionState)\n )\n );\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {\n LMContextService,\n LMFormatUtilService,\n LMLoggerService,\n LMRouteComponentService,\n LMSpecService\n} from '@services/index';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport {\n SohoBusyIndicatorDirective,\n SohoModalDialogService,\n SohoTrackDirtyDirective\n} from 'ids-enterprise-ng';\nimport * as urltemplate from 'url-template';\nimport { LMBannerUserContextResult } from './lm-banner-usercontext-dialog.service';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'lm-user-context-field',\n template: `\n

{{ userContextField.label }}

\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n `\n})\n\nexport class LMBannerUserContextFieldComponent implements OnInit {\n @Input() userContextField: LMBannerUserContextField;\n @Output() contextValueChanged: EventEmitter = new EventEmitter();\n @Output() modelDirty: EventEmitter<{ dirty: boolean, field: LMBannerUserContextField }> = new EventEmitter<{ dirty: boolean, field: LMBannerUserContextField }>();\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(SohoTrackDirtyDirective) trackDirty: SohoTrackDirtyDirective;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n id: string;\n overrideId: string;\n states: Array;\n isDirty: boolean;\n modelFieldDirty: {\n dirty: boolean,\n field: LMBannerUserContextField\n };\n noValueText: string;\n URLOverrideLabel: string;\n actorContextLabel: string;\n\n // private fieldLookupDialog: SohoModalDialogRef;\n // private lookupSelectionEvent: LMLookupSelectionEvent;\n // private lookupSelectionSubscription;\n\n constructor(\n private ngZone: NgZone,\n private changeDetectionRef: ChangeDetectorRef,\n private lmSpecService: LMSpecService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormRequestService: LMFormRequestService,\n private lmLoggerService: LMLoggerService,\n private lmContextService: LMContextService\n ) {}\n\n ngOnInit() {\n this.noValueText = Soho.Locale.translate('ActorContextNoValueText');\n this.actorContextLabel = Soho.Locale.translate('ActorContextActorContextLabel');\n this.URLOverrideLabel = Soho.Locale.translate('ActorContextURLContextSessionKeyLabel');\n\n this.isDirty = false;\n\n this.modelFieldDirty = {\n dirty: false,\n field: this.userContextField\n };\n this.id = this.userContextField.contextPropertyId;\n this.overrideId = this.id + 'Override';\n\n this.states = [];\n this.states.push({\n value: this.userContextField.value,\n label: this.userContextField.value\n });\n\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.trackDirty) {\n this.trackDirty.resetDirty();\n }\n }, 1)\n });\n\n }\n\n source = (response: any, searchTerm: any) => {\n this.busyIndicator.activated = true;\n\n const compiledFormRequestUrl = urltemplate.parse(this.userContextField.userDefinedStatesUrl);\n\n const dataView = {\n resourceId: this.userContextField.id,\n representativeText: '',\n status: '',\n name: '',\n action: '',\n busClassName: this.userContextField.id,\n navigations: [],\n contextProperties: null,\n actionMeta: null,\n fields: {}\n }\n\n // TODO: put this in service to be shared with lm-dropdown\n this.lmFormRequestService\n .getUserDefinedStates(this.userContextField.userDefinedStatesUrl, this.userContextField.fieldId, dataView)\n .subscribe((result: LMUserDefinedResponse) => {\n let optionsAry;\n if (this.lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n if (result && result.hasOwnProperty('states') && Array.isArray(result.states)) {\n const zeroOrBlankValue = this.lmFormatUtilService.fieldStateFormatZeroValue(this.userContextField.type);\n optionsAry = this.lmFormatUtilService.fieldStatesToOptionsArray(result.states, true, zeroOrBlankValue);\n\n this.states = optionsAry;\n\n setTimeout(() => {\n // indicate to sohoxi dropdown to not create option tags\n response(optionsAry, true);\n this.busyIndicator.activated = false;\n }, 1);\n\n return;\n }\n } else {\n if (Array.isArray(result)) {\n const zeroOrBlankValue = this.lmFormatUtilService.fieldStateFormatZeroValue(this.userContextField.type);\n optionsAry = this.lmFormatUtilService.fieldStatesToOptionsArray(result, true, zeroOrBlankValue);\n\n this.states = optionsAry;\n\n setTimeout(() => {\n // indicate to sohoxi dropdown to not create option tags\n response(optionsAry, true);\n this.busyIndicator.activated = false;\n }, 1);\n\n return;\n }\n }\n\n // an error\n this.busyIndicator.activated = false;\n this.lmLoggerService.error([ 'Error in getUserDefinedStates', this.userContextField.id, result ]);\n },\n (error) => {\n this.busyIndicator.activated = false;\n this.lmLoggerService.error([ 'Error in getUserDefinedStates', this.userContextField.id, error ]);\n });\n };\n\n trackByValue(index: number, state: LMStateValue) {\n return state.value;\n }\n\n onValueChanged() {\n this.contextValueChanged.emit(this.userContextField);\n }\n\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n this.isDirty = false;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n onDirty(event: SohoTrackDirtyEvent) {\n this.isDirty = true;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n onPristine(event: SohoTrackDirtyEvent) {\n this.isDirty = false;\n this.modelFieldDirty.dirty = this.isDirty;\n this.modelFieldDirty.field = this.userContextField;\n\n this.modelDirty.emit(this.modelFieldDirty);\n }\n\n /**\n * Need this code for future implementation as these context fields are truly lookups\n * Currently having issues with xiharness with 3.5 content\n */\n // onLookupClick = (e, lookup) => {\n // this.busyIndicator.activated = true;\n //\n // const buttons: SohoModalButton[] = [\n // {\n // text: Soho.Locale.translate('Cancel'),\n // // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // click: (e, modal) => {\n // this.busyIndicator.activated = false;\n // modal.close(true);\n // }\n // },\n // {\n // text: Soho.Locale.translate('Ok'),\n // isDefault: true,\n // // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // click: (e, modal) => {\n // // this.handleSelection();\n // }\n // }\n // ];\n //\n // this.lmSpecService.getListSpec(this.userContextField.selectListUrl)\n // .subscribe((listSpec: LMListSpec) => {\n // this.fieldLookupDialog = this.sohoModalDialogService\n // .modal(LMLookupDialogComponent, this.placeholder)\n // .buttons(buttons)\n // .title(listSpec.busListSpec.name)\n // .isAlert(true)\n // .open()\n // .apply((lookupDialog: LMLookupDialogComponent) => {\n // this.ngZone.run(() => {\n // lookupDialog.listSpec = listSpec;\n // lookupDialog.selectRequestData = {\n // viewType: 'form',\n // viewName: listSpec.busListSpec.name,\n // dataView: {\n // resourceId: this.userContextField.id,\n // representativeText: '',\n // status: '',\n // name: '',\n // action: '',\n // busClassName: listSpec.busClassSpec.name,\n // navigations: [],\n // contextProperties: null,\n // actionMeta: null,\n // fields: {}\n // },\n // };\n //\n // // ---------------------------------------------------------------------\n // // need to markForCheck on the next tick() so angular picks up the\n // // the list that is added to the dialog in this apply method.\n // // ---------------------------------------------------------------------\n // this.changeDetectionRef.markForCheck();\n //\n // // need to listen for all occurrences as will get a row selection for a 'deselection'\n // this.lookupSelectionSubscription =\n // lookupDialog.lookupSelection.subscribe((event: LMLookupSelectionEvent) => {\n // this.lookupSelectionEvent = event;\n // });\n //\n // lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n // this.fieldLookupDialog.close();\n // });\n // })\n // })\n // .afterClose(result => {\n // this.busyIndicator.activated = false;\n //\n // if (this.lookupSelectionSubscription) {\n // this.lookupSelectionSubscription.unsubscribe();\n // this.lookupSelectionSubscription = null;\n // }\n //\n // this.lookupSelectionEvent = null;\n // this.fieldLookupDialog = null;\n // });\n // },\n // (error: any) => {\n // this.busyIndicator.activated = false;\n // this.lmLoggerService.log([ 'LMLookupDialog error', error ]);\n // });\n // }\n //\n // private handleSelection() {\n // if (this.lookupSelectionEvent) {\n // let result: Array = this.lookupSelectionEvent.rows;\n // if (result && Array.isArray(result) && result.length > 0) {\n // let dataView: LMDataView = result[ 0 ].data;\n // let fields = dataView.fields;\n //\n // this.sohoLookup.setValue(this.lookupSelectionEvent.rows);\n //\n // if (fields.hasOwnProperty(this.userContextField.id)) {\n // this.value = fields[ this.userContextField.id ].value as string;\n // }\n // }\n // }\n //\n // this.fieldLookupDialog.close();\n // }\n}\n\n@Component({\n selector: 'lm-user-context',\n templateUrl: './lm-banner-usercontext-dialog.component.html',\n providers: [ LMRouteComponentService, LMFormRequestService, LMHtmlPageUtilService ]\n})\n\nexport class LMBannerUserContextDialogComponent implements OnInit {\n @Input() userContextFields: LMBannerUserContextField[];\n @Input() dialog$: Subject;\n\n contextFields: any;\n busyIndicator: boolean;\n model: { [ key: string ]: LMBannerUserContextModelField };\n\n get saveChanges(): boolean {\n const save = false;\n\n const modelKeys = Object.keys(this.model);\n for (let i = 0; i < modelKeys.length; i++) {\n if (this.model[ modelKeys[ i ] ].dirty) {\n return true;\n }\n }\n // Object.keys(this.model).forEach(modelId => {\n // if (this.model[ modelId ].dirty) {\n // return true;\n // }\n // });\n return save;\n }\n\n constructor() {}\n\n ngOnInit() {\n this.model = {};\n\n if (this.userContextFields) {\n this.userContextFields.forEach((contextField: any) => {\n this.model [ contextField.contextPropertyId ] = {\n dirty: false,\n value: contextField.value\n }\n });\n }\n }\n\n public onContextValueChanged(field: LMBannerUserContextField) {\n this.model [ field.contextPropertyId ].value = field.value;\n }\n\n public onModelDirty(modelFieldDirty: any) {\n const dirty = modelFieldDirty.dirty;\n const field = modelFieldDirty.field;\n\n this.model [ field.contextPropertyId ].dirty = dirty;\n }\n}\n","
\n \n
\n \n \n \n \n
\n\n \n\n\n","/**\n * Created by vwiny on 11/19/2018.\n */\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { Observable, Subject } from 'rxjs';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMBannerUserContextDialogComponent } from './lm-banner-usercontext-dialog.component';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\nexport enum LMBannerUserContextDialogStatus {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK,\n RESPONSE_SAVED\n}\n\nexport interface LMBannerUserContextResult {\n status: LMBannerUserContextDialogStatus;\n userContextFields?: LMBannerUserContextField[];\n userContextProperties?: { [ key: string ]: LMBannerUserContextModelField };\n saveChanges: boolean;\n}\n\n@Injectable()\nexport class LMBannerUserContextDialogService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n }\n\n /**\n * Prompt User Context dialog\n * @param viewContainerRef\n *\n * @return Observable\n */\n public promptUserContextDialog(placeholder: ViewContainerRef, userContextFields: LMBannerUserContextField[]): Observable {\n return new Observable(observer => {\n this.lmLoggerService.log([ 'LMReportPersonalizationDialog', 'formService.getFormSpec()', 'Complete' ]);\n\n const userContextDialog$: Subject = new Subject();\n let dlgComponent: LMBannerUserContextDialogComponent;\n let dialog: SohoModalDialogRef;\n\n const dialogId = 'ActorContext';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.isCancelled = true;\n dialog.close({\n status: LMBannerUserContextDialogStatus.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n dialog.close({\n status: LMBannerUserContextDialogStatus.RESPONSE_OK,\n userContextFields: dlgComponent.userContextFields,\n userContextProperties: dlgComponent.model,\n saveChanges: dlgComponent.saveChanges\n });\n },\n validate: false,\n isDefault: true\n }\n ];\n dialog = this.sohoModalDialogService\n .modal(LMBannerUserContextDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(Soho.Locale.translate('ActorContextDialogTitle'))\n .isAlert(false)\n .open()\n .apply((UserContextForm: LMBannerUserContextDialogComponent) => {\n dlgComponent = UserContextForm;\n if (userContextFields) {\n dlgComponent.userContextFields = userContextFields;\n }\n dlgComponent.dialog$ = userContextDialog$;\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n\n userContextDialog$.subscribe((result: LMBannerUserContextResult) => {\n if (result.status === LMBannerUserContextDialogStatus.RESPONSE_SAVED) {\n userContextDialog$.complete();\n dialog.close(result);\n }\n });\n });\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LMBannerService {\n constructor(\n private http: HttpClient,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {}\n\n public lastOpenedMenuId: string;\n public lastOpenedMenu: ElementRef;\n\n private bannerMenuSpec: Array = [];\n private expandedMenus: Array = [];\n\n // Cache the entire menu structure\n private allLevelsResponse: LMBannerSpec;\n\n public saveAllLevelsResponse(response: LMBannerSpec): void {\n this.allLevelsResponse = _.cloneDeep(response)\n }\n\n public getAllLevelsResponse(): LMBannerSpec {\n return this.allLevelsResponse;\n }\n\n // TODO: implement\n public loadAllLevels() {\n return true;\n }\n\n /**\n * Keep track of expanded menus for pagestate\n * @param menuItem: LMMenuItemSpec\n */\n public saveExpandedMenus(menuItem: LMMenuItemSpec): void {\n this.updateBannerMenuState(this.getBannerMenuSpec(), menuItem);\n\n this.expandedMenus = [];\n this.saveBannerMenuState(this.getBannerMenuSpec());\n\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.expandedMenus = this.expandedMenus;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n /**\n * Used to clear when roles change\n */\n public clearExpandedMenus() {\n this.expandedMenus = [];\n\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.expandedMenus = this.expandedMenus;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n public getExpandedMenus(): Array {\n return this.lmGlobalPersonalizationService.getGlobalPersonalization().expandedMenus;\n }\n\n public saveLastMenuItemClicked(menuIndex: string) {\n const globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n globalPersonalization.lastClickedMenuItem = menuIndex;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(globalPersonalization);\n }\n\n public getLastMenuItemClicked() {\n return this.lmGlobalPersonalizationService.getGlobalPersonalization().lastClickedMenuItem;\n }\n\n public updateBannerMenuSpec(bannerMenuSpec: Array, key?: string, menu?: Array): void {\n if (this.bannerMenuSpec.length === 0) {\n this.bannerMenuSpec = bannerMenuSpec;\n } else {\n const newMenu: Array = bannerMenuSpec;\n this._updateBannerMenuSpec(this.bannerMenuSpec, newMenu, key);\n }\n }\n\n public getBannerMenuSpec(): Array {\n return this.bannerMenuSpec;\n }\n\n public setBannerMenuSpec(newMenuSpec: Array) {\n this.bannerMenuSpec = newMenuSpec;\n }\n\n /**\n * Keep track of menu expanded/selected state\n * Later saved to state so accordions can be manually initialized and toggled\n * @param menuSpec\n * @param menuItem\n */\n private updateBannerMenuState(menuSpec, menuItem) {\n menuSpec.forEach((ms) => {\n if (menuItem.parentIds && menuItem.parentIds.includes(ms.menuIndex)) {\n ms.childExpanded = true;\n menuItem.parentExpanded = true;\n }\n\n // Reset menu if parent and child is not expanded\n if ((menuItem.menuIndex !== ms.menuIndex && ms.expanded) && (!menuItem.parentExpanded && !ms.childExpanded)\n ) {\n ms.menu = ms.menu ? [] : undefined;\n ms.expanded = false;\n ms.childExpanded = false;\n ms.parentExpanded = false;\n }\n\n // Collapse if at the same level and not the currently expanded menuItem\n if ((ms.parentIds && menuItem.parentIds && ms.parentIds[ms.parentIds.length - 1] === menuItem.parentIds[menuItem.parentIds.length - 1])\n && ms.menuIndex !== menuItem.menuIndex\n ) {\n if (ms.menu && ms.menu.length > 0) {\n ms.menu = [];\n }\n ms.expanded = false;\n ms.childExpanded = false;\n ms.parentExpanded = false;\n }\n\n if (ms.menu && ms.menu.length > 0) {\n this.updateBannerMenuState(ms.menu, menuItem);\n }\n })\n }\n\n private saveBannerMenuState(menuSpec): void {\n menuSpec.forEach((menuSpecItem: LMMenuItemSpec) => {\n if (menuSpecItem.expanded) {\n this.expandedMenus.push(menuSpecItem.menuIndex)\n }\n\n if (menuSpecItem.menu && menuSpecItem.menu.length > 0) {\n this.saveBannerMenuState(menuSpecItem.menu);\n }\n })\n }\n\n private _updateBannerMenuSpec(menu: Array, newMenu: Array, key: string) {\n for (let i = 0, l = menu.length; i < l; i++) {\n const object = menu[ i ];\n for (const k in object) {\n if (object.hasOwnProperty(k)) {\n if (object[ k ] === key) {\n object.submenu = newMenu;\n } else if (object.submenu) {\n this._updateBannerMenuSpec(object.submenu, newMenu, key);\n }\n }\n }\n }\n }\n\n public getLastOpenedMenuId(): string {\n return this.lastOpenedMenuId;\n }\n\n public setLastOpenedMenuId(menu: string) {\n this.lastOpenedMenuId = menu;\n }\n\n public getLastOpenedMenu(): ElementRef {\n return this.lastOpenedMenu;\n }\n\n public setLastOpenedMenu(menu: ElementRef) {\n this.lastOpenedMenu = menu;\n }\n\n public resetLastOpenedMenu() {\n this.lastOpenedMenu = null;\n this.lastOpenedMenuId = '';\n }\n\n public getChangePasswordAction(actions, name): LMActionSpec {\n if (!name) { // safety\n return null;\n }\n\n for (let i = 0; i < actions.length; i++) {\n if (actions[ i ].name === name) {\n return actions[ i ];\n }\n }\n return null;\n }\n\n public updateActorContext(bannerUrl: string, userContextProperties: {}): Observable {\n const postContent: any = {\n requestType: 'updateActorContext',\n contextProperties: userContextProperties\n };\n\n return this.http.post(bannerUrl, postContent).pipe(\n catchError(error => throwError(error || 'Server error')));\n }\n\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n// @ts-ignore\n@Directive({\n selector: '[lm-swatch]',\n})\nexport class LMSwatchDirective {\n @HostBinding('style.background-color') @Input() color;\n\n @HostBinding('style.borderRadius') borderRadius = '2px';\n @HostBinding('style.display') display = 'inline-block';\n @HostBinding('style.vertical-align') verticalAlign = 'top';\n @HostBinding('style.position') position = 'relative';\n @HostBinding('style.left') left = '1px';\n @HostBinding('style.top') top = '5px';\n @HostBinding('style.width') width = '22px';\n @HostBinding('style.height') height = '22px';\n @HostBinding('style.margin-right') marginRight = '7px';\n}\n","import { Inject, Injectable, NgZone, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { LMContextService } from '@services/lm-context.service';\nimport { environment } from '@environments/environment';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport type LMThemeId =\n 'theme-classic-light' |\n 'theme-classic-dark' |\n 'theme-classic-contrast' |\n 'theme-new-light' |\n 'theme-new-dark' |\n 'theme-new-contrast';\n\nexport enum LMColorId {\n default = 'default',\n amber = 'amber',\n amethyst = 'amethyst',\n azure = 'azure',\n emerald = 'emerald',\n graphite = 'graphite',\n ruby = 'ruby',\n slate = 'slate',\n turquoise = 'turquoise'\n}\n\n@Injectable()\nexport class LMThemeService {\n private static overlayColors = {\n 'theme-classic-light': '#f0f0f0',\n 'theme-classic-dark': '#313236',\n 'theme-classic-contrast': '#d8d8d8',\n 'theme-new-light': '#f0f0f0',\n 'theme-new-dark': '#f0f0f0',\n 'theme-new-contrast': '#f0f0f0',\n };\n\n // todo ppatton arguably should go to some other class. Perhaps app-constants?\n private static developmentThemePath = {\n 'theme-classic-light': '/cli/src/assets/themes/landmark-classic-light.css',\n 'theme-classic-dark': '/cli/src/assets/themes/landmark-classic-dark.css',\n 'theme-classic-contrast': '/cli/src/assets/themes/landmark-classic-contrast.css',\n 'theme-new-light': '/cli/src/assets/themes/landmark-new-light.css',\n 'theme-new-dark': '/cli/src/assets/themes/landmark-new-dark.css',\n 'theme-new-contrast': '/cli/src/assets/themes/landmark-new-contrast.css'\n };\n\n // todo ppatton arguably should go to some other class. Perhaps app-constants?\n private static productionThemePath = {\n 'theme-classic-light': `/cli/dist/assets/themes/landmark-classic-light.css`,\n 'theme-classic-dark': `/cli/dist/assets/themes/landmark-classic-dark.css`,\n 'theme-classic-contrast': `/cli/dist/assets/themes/landmark-classic-contrast.css`,\n 'theme-new-light': `/cli/dist/assets/themes/landmark-new-light.css`,\n 'theme-new-dark': `/cli/dist/assets/themes/landmark-new-dark.css`,\n 'theme-new-contrast': `/cli/dist/assets/themes/landmark-new-contrast.css`\n };\n\n public static DEFAULT_THEME: LMThemeId = 'theme-new-light';\n\n private isProduction = environment.production;\n private renderer: Renderer2;\n private availableThemes: SohoTheme[];\n\n /** ok to have this state since only one theme is set at a time */\n private currentThemeId: LMThemeId;\n\n private currentColors: SohoPersonalizationColors;\n\n /** ok to have this state since only one color is set at a time */\n private currentColorId: LMColorId;\n\n // subscribe to listen for theme change events\n private themeChangeSubject: Subject;\n private colorChangeSubject: Subject;\n\n private lastRandomBgColorIndex = 0;\n private lastRandomBgColor: string;\n\n private foregroundTextMapAlphaLower = new Map();\n private foregroundTextMapNumeric = new Map();\n\n private sohoIconNames: Array;\n private sohoIconEmptyMessageNames: Array;\n\n private productionThemePaths;\n\n constructor(\n rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private document,\n private ngZone: NgZone,\n private lmContextService: LMContextService\n ) {\n this.renderer = rendererFactory.createRenderer(null, null);\n this.themeChangeSubject = new Subject();\n this.colorChangeSubject = new Subject();\n\n // build LMThemeInfo array from SohoTheme array\n this.availableThemes = Soho.theme.themes().map(theme => ({\n id: theme.id,\n name: LMThemeService.getAlternateThemeName(theme.id as LMThemeId)\n }));\n\n this.currentColors = Soho.theme.personalizationColors();\n\n if (this.isProduction) {\n const paths = LMThemeService.productionThemePath;\n for (const key in paths) {\n if (paths.hasOwnProperty(key)) {\n paths[key] = `${paths[key].split('.css')[0]}_${BuildVersion}.css`;\n }\n }\n\n this.productionThemePaths = paths;\n }\n\n /**\n * Create alphalower foreground text map\n * Mod: Half of total Alphabet length (break into chunks)\n * Count: Number of Characters in English Alphabet\n * StartPosition: Start with lowercase 'a' 97-122 = a-z\n */\n this.createForegroundTextMap(26, 97, this.foregroundTextMapAlphaLower);\n\n /**\n * Create numeric foreground text map\n * Mod: Half of total Alphabet length (break into chunks)\n * Count: Numbers\n * StartPosition: Start with zero 48-57 = 0-9\n */\n this.createForegroundTextMap(10, 48, this.foregroundTextMapNumeric);\n }\n\n private validTheme(themeId: LMThemeId) {\n return (this.isUpliftTheme(themeId) || this.isSohoTheme(themeId));\n }\n\n public isValidSohoIcon(name: string): boolean {\n if (!name) { // safety check\n return false;\n }\n const sohoIconNames = this.getSohoIconNames();\n return sohoIconNames.includes(name);\n }\n\n public isValidSohoIconEmptyMessage(name: string): boolean {\n if (!name) { // safety check\n return false;\n }\n const sohoIconEmptyMessageNames = this.getSohoIconEmptyMessageNames();\n return sohoIconEmptyMessageNames.includes(name);\n }\n\n public isUpliftTheme(theme: LMThemeId) {\n if (theme === 'theme-new-light'\n || theme === 'theme-new-dark'\n || theme === 'theme-new-contrast') {\n return true;\n }\n return false;\n }\n\n public isSohoTheme(theme: LMThemeId) {\n if (theme === 'theme-classic-light'\n || theme === 'theme-classic-dark'\n || theme === 'theme-classic-contrast') {\n return true;\n }\n return false;\n }\n\n public getThemeChangeSubject(): Subject {\n return this.themeChangeSubject;\n }\n\n public getColorChangeSubject(): Subject {\n return this.colorChangeSubject;\n }\n\n public getAvailableThemes(): SohoTheme[] {\n return this.availableThemes;\n }\n\n public getCurrentThemeId(): LMThemeId {\n return this.currentThemeId;\n }\n\n public getCurrentColorId(): LMColorId {\n return this.currentColorId;\n }\n\n public getThemeColors(): SohoPersonalizationColors {\n return this.currentColors;\n // return this.colorsByTheme[this.currentThemeId];\n }\n\n public getDefaultColor(): SohoPersonalizationColor {\n return this.getColorById(LMColorId.default);\n }\n\n public getCurrentColor(): SohoPersonalizationColor {\n return this.getColorById(this.getCurrentColorId());\n }\n\n public getColorById(colorId: LMColorId): SohoPersonalizationColor {\n return this.currentColors[colorId];\n }\n\n public setThemeAndColor(\n themeId: LMThemeId = LMThemeService.DEFAULT_THEME,\n colorId: LMColorId = LMColorId.default,\n useCompactFormLayout: boolean\n ) {\n this._setTheme(themeId, useCompactFormLayout);\n this.setColor(colorId);\n }\n\n public setTheme(themeId: LMThemeId = LMThemeService.DEFAULT_THEME, useCompactFormLayout: boolean) {\n this._setTheme(themeId, useCompactFormLayout);\n this.setColor(this.getDefaultColor().id as LMColorId);\n }\n\n public setColor(colorId: LMColorId) {\n if (!(colorId in LMColorId)) {\n colorId = LMColorId.default;\n }\n\n if (colorId === LMColorId.default) {\n // calling setColors with resets to default in sohoxi\n (window as any).Soho.setColors('');\n } else {\n const colorValue = this.getColorById(colorId).value;\n (window as any).Soho.setColors(colorValue);\n }\n\n this.currentColorId = colorId;\n\n this.getColorChangeSubject().next(colorId);\n }\n\n public getUniqueBackgroundColorClass(textValue: string): string {\n /**\n * Color class names should match the class names within\n * _landmark-classic-common.scss\n * _landmark-classic-common.scss\n */\n const colorClasses = [\n 'lm-color-amber-bg', 'lm-color-azure-bg', 'lm-color-amethyst-bg',\n 'lm-color-turquoise-bg', 'lm-color-emerald-bg', 'lm-color-ruby-bg',\n 'lm-color-slate-bg', 'lm-color-graphite-bg', 'lm-color-amethyst-dark-bg',\n 'lm-color-ruby-light-bg', 'lm-color-amber-light-bg', 'lm-color-azure-dark-bg',\n 'lm-color-emerald-dark-bg'\n ];\n\n if (textValue === undefined || textValue === null) {\n return colorClasses[1];\n }\n\n let key = 0;\n\n this.foregroundTextMapAlphaLower.forEach((value, index) => {\n let newValue = textValue.trim().toLowerCase();\n\n // Take just the first letter if there are more than two\n if (textValue.length > 2) {\n newValue = newValue.split('')[0];\n }\n\n if (value.includes(newValue)) {\n key = index;\n }\n });\n\n this.foregroundTextMapNumeric.forEach((value, index) => {\n let newValue = textValue.trim().toLowerCase();\n\n // Take just the first number if there are more than two\n if (textValue.length > 2) {\n newValue = newValue.split('')[0];\n }\n\n if (value.includes(newValue)) {\n key = index;\n }\n });\n\n return colorClasses[key];\n }\n\n public getBackgroundColorClass(): string {\n /**\n * Color class names should match the class names within\n * _landmark-classic-common.scss\n * _landmark-classic-common.scss\n */\n const colorClasses = [\n '', 'lm-color-amber-bg', 'lm-color-azure-bg', 'lm-color-amethyst-bg',\n 'lm-color-turquoise-bg', 'lm-color-emerald-bg', 'lm-color-ruby-bg',\n 'lm-color-slate-bg'\n ];\n\n // Reset index\n if (this.lastRandomBgColorIndex === 7) {\n this.lastRandomBgColorIndex = 0;\n }\n\n this.lastRandomBgColorIndex++;\n return colorClasses[this.lastRandomBgColorIndex];\n }\n\n public getRandomBackgroundColor(): string {\n /**\n * Color class names should match the class names within\n * _landmark-classic-common.scss\n * _landmark-classic-common.scss\n */\n const colorClasses = [\n 'lm-color-amber-bg', 'lm-color-azure-bg', 'lm-color-amethyst-bg',\n 'lm-color-turquoise-bg', 'lm-color-emerald-bg', 'lm-color-ruby-bg',\n 'lm-color-slate-bg'\n ];\n\n const randomIndex = Math.random() * Math.floor(7);\n const colorClass = colorClasses[Math.round(randomIndex)];\n\n // Safety if randomIndex is invalid\n // Prevent same color from being used twice in a row\n if (colorClass === undefined || colorClass === this.lastRandomBgColor) {\n return this.getRandomBackgroundColor();\n }\n\n this.lastRandomBgColor = colorClass;\n return colorClasses[Math.round(randomIndex)];\n }\n\n /**\n * Returns a soho/uplift icon given an LPL action icon.\n * @param icon the icon to map to a soho/uplift icon\n */\n public lplIconToSohoXI(icon: LMIcon): string | null {\n switch (icon) {\n case 'add': return 'add';\n case 'apply': return 'doc-check';\n case 'approve': return 'check';\n case 'attach': return 'attach';\n case 'award': return 'new';\n case 'create': return 'new-document';\n case 'calculate': return 'calculator';\n case 'chart': return 'line-chart';\n case 'claim': return 'flag';\n case 'copy': return 'copy';\n case 'delete': return 'delete';\n case 'edit': return 'edit';\n case 'export': return 'export-2';\n case 'filled star': return 'star-filled';\n case 'filter': return 'filter';\n case 'finalize': return 'check2';\n case 'open': return 'open-folder';\n case 'outlined star': return 'star-outlined';\n case 'pdf': return 'pdf-file';\n case 'preview': return 'print-preview';\n case 'print': return 'print';\n case 'process': return 'process';\n case 'refresh': return 'refresh';\n case 'release': return 'invoice-released';\n case 'request': return 'comment';\n case 'reject': return 'reject';\n case 'save': return 'save';\n case 'search': return 'search';\n case 'send': return 'send';\n case 'submit': return 'send-submit';\n case 'helperList': return 'amend';\n case 'transfer': return 'send';\n case 'undo': return 'undo';\n case 'validate': return 'success';\n\n // Not in bnf but used for generated actionReferences where this icon is needed.\n case 'sort-ascending': return 'sort-down';\n case 'sort-descending': return 'sort-up';\n case 'amend': return 'amend'; // todo where is amend used? - Phillip 9/13/2019\n case 'next': return 'next-page';\n case 'previous': return 'previous-page';\n case 'save-new': return 'save-new';\n case 'saved-search': return 'print-preview';\n\n default:\n return null;\n }\n }\n\n private createForegroundTextMap(\n count: number,\n startPosition: number,\n map: Map>\n ): void {\n const mod = 13;\n\n // Create an Array of Mapped indexes in a non sequential order.\n const indexes = Array.from(Array(mod).keys()).sort((a, b) => (a % 2) - (b % 3));\n let n = 0;\n\n for (let i = 0, l = count; i < l; i++) {\n const currentSet = map.get(i % mod) || [];\n map.set(i % mod, currentSet.concat(String.fromCharCode(startPosition + i)));\n }\n\n for (let i = 0, l = count; i < l; i++) {\n // Create an Array of char codes in a non sequential order.\n const charCodes = Array.from(Array(count).keys()).map((c) => startPosition + c).sort((a, b) => (a % i) - (b % i));\n\n for (let x = 0, ln = count; x < ln; x++) {\n const currentSet = map.get(indexes[n]) || [];\n const oneChar = String.fromCharCode((startPosition + i));\n const twoChar = `${oneChar}${String.fromCharCode(charCodes[x])}`;\n map.set(indexes[n], currentSet.concat(twoChar));\n\n if (n <= (mod - 1)) {\n n++;\n }\n\n if (n > (mod - 1)) {\n n = 0;\n }\n }\n }\n }\n\n private getSohoIconNames(): Array {\n if (this.sohoIconNames === undefined) {\n this.sohoIconNames = [];\n const svgElements = document.getElementsByClassName('svg-icons');\n Array.from(svgElements).forEach((htmlElement: HTMLElement) => {\n const svgElement = htmlElement.querySelectorAll('svg');\n if (svgElement && svgElement[0]) {\n const symbols = svgElement[0].querySelectorAll('symbol');\n Array.from(symbols).forEach((symbol) => {\n const iconName = symbol.getAttribute('id').replace('icon-', '');\n this.sohoIconNames.push(iconName);\n });\n }\n });\n }\n return this.sohoIconNames;\n }\n\n private getSohoIconEmptyMessageNames(): Array {\n if (this.sohoIconEmptyMessageNames === undefined) {\n this.sohoIconEmptyMessageNames = [];\n const svgElements = document.getElementsByClassName('svg-icons-empty');\n Array.from(svgElements).forEach((htmlElement: HTMLElement) => {\n const svgElement = htmlElement.querySelectorAll('svg');\n if (svgElement && svgElement[0]) {\n const symbols = svgElement[0].querySelectorAll('symbol');\n Array.from(symbols).forEach((symbol) => {\n this.sohoIconEmptyMessageNames.push(symbol.getAttribute('id'));\n });\n }\n });\n }\n return this.sohoIconEmptyMessageNames;\n }\n\n private updateCSSVariables(themeId: LMThemeId, useCompactFormLayout: boolean) {\n // See _landmark-common.scss\n let properties;\n\n // TODO: Get this from SOHO\n if (this.isUpliftTheme(themeId)) {\n properties = [\n { key: '--soho-field-height', value: useCompactFormLayout ? '28px' : '38px' },\n { key: '--soho-label-height', value: useCompactFormLayout ? '18px' : '21px' },\n { key: '--soho-field-margin', value: useCompactFormLayout ? '12px' : '20px' },\n { key: '--soho-font-size', value: useCompactFormLayout ? '14px' : '16px' },\n { key: '--soho-field-options-button-height', value: useCompactFormLayout ? '26px' : '36px' },\n ];\n } else {\n properties = [\n { key: '--soho-field-height', value: useCompactFormLayout ? '26px' : '34px' },\n { key: '--soho-label-height', value: '14px' },\n { key: '--soho-field-margin', value: useCompactFormLayout ? '12px' : '20px' },\n { key: '--soho-font-size', value: useCompactFormLayout ? '12px' : '14px' },\n\n { key: '--soho-field-options-button-height', value: useCompactFormLayout ? '24px' : '32px' },\n ];\n }\n\n properties.forEach((prop) => {\n document.documentElement.style.setProperty(prop.key, prop.value);\n });\n }\n\n private _setTheme(themeId: LMThemeId, useCompactFormLayout: boolean) {\n\n // todo: for now be forgiving of old names that might still be set in roaming user profile. Phillip 5/19/2019\n switch (themeId as string) {\n // Theme names given to us by mingle.\n case 'Light': themeId = 'theme-new-light'; break;\n case 'Dark': themeId = 'theme-new-dark'; break;\n case 'Contrast': themeId = 'theme-new-contrast'; break;\n\n // Legacy theme names to actualy theme name\n case 'light': themeId = 'theme-classic-light'; break;\n case 'dark': themeId = 'theme-classic-dark'; break;\n case 'contrast': themeId = 'theme-classic-contrast'; break;\n case 'new': themeId = 'theme-new-light'; break;\n\n case 'theme-uplift-light': themeId = 'theme-new-light'; break;\n case 'theme-uplift-dark': themeId = 'theme-new-dark'; break;\n case 'theme-uplift-contrast': themeId = 'theme-new-contrast'; break;\n\n // Legacy theme names to actualy theme name\n case 'theme-soho-light': themeId = 'theme-classic-light'; break;\n case 'theme-soho-dark': themeId = 'theme-classic-dark'; break;\n case 'theme-soho-contrast': themeId = 'theme-classic-contrast'; break;\n }\n\n // in case we get an invalid theme name set to default\n if (!this.validTheme(themeId)) {\n themeId = 'theme-new-light';\n }\n\n const basePath = this.lmContextService.getContext().baseStaticContentUrl;\n const paths = this.isProduction ? this.productionThemePaths : LMThemeService.developmentThemePath;\n\n // set the currentThemeId state\n this.currentThemeId = themeId;\n\n // Update global css variables.\n this.updateCSSVariables(themeId, useCompactFormLayout);\n\n // set the theme on the Soho.theme API so that we can get the themes color palette\n Soho.theme.setTheme(themeId);\n\n // update the colors state\n this.currentColors = Soho.theme.personalizationColors();\n\n // set the theme name as a class on the html tag. This will allow us to\n // change certain css by scoping the element to the theme.\n const html: HTMLElement = document.getElementsByTagName('html')[0] as HTMLElement;\n const alreadyLoaded = document.getElementById('stylesheet').getAttribute('href').includes(paths[themeId]);\n\n this.renderer.removeClass(html, 'theme-classic-light');\n this.renderer.removeClass(html, 'theme-classic-dark');\n this.renderer.removeClass(html, 'theme-classic-contrast');\n this.renderer.removeClass(html, 'theme-new-light');\n this.renderer.removeClass(html, 'theme-new-dark');\n this.renderer.removeClass(html, 'theme-new-contrast');\n this.renderer.addClass(html, themeId);\n\n // Mask screen\n const overlay = document.getElementById( 'lm-page-overlay');\n this.renderer.setStyle(overlay, 'background-color', LMThemeService.overlayColors[themeId]);\n this.renderer.setStyle(overlay, 'z-index', '10000');\n this.renderer.setStyle(overlay, 'opacity', '1');\n this.renderer.setStyle(overlay, 'transition', 'opacity 2s ease');\n\n // Add new stylesheet\n if (!alreadyLoaded) {\n this.appendNewStyleSheet(`${basePath}${paths[themeId]}`);\n }\n\n new Promise((resolve) => {\n\n this.getThemeChangeSubject().next(themeId);\n\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!alreadyLoaded) {\n // Remove old stylesheet\n this.renderer.removeChild(document.head, document.getElementById('stylesheet'));\n\n // Update id on new stylesheet\n this.renderer.setAttribute(document.getElementById('stylesheet_new'), 'id', 'stylesheet');\n }\n\n this.getThemeChangeSubject().next(themeId);\n\n resolve(0);\n }, 400);\n });\n })\n .then(() => {\n this.renderer.setStyle(overlay, 'opacity', '0');\n this.renderer.setStyle(overlay, 'z-index', '-1');\n });\n }\n\n private appendNewStyleSheet(href: string): void {\n const head = document.head;\n const link = document.createElement('link');\n\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.id = 'stylesheet_new';\n link.href = href;\n\n this.renderer.insertBefore(head, link, document.getElementById('stylesheet'));\n }\n\n public getFontSizeClass(headerNumber: number): string {\n switch (headerNumber) {\n case 1: return 'lm-font-xl';\n case 2: return 'lm-font-lg';\n case 3: return 'lm-font-md';\n case 4: return 'lm-font-sm';\n case 5: return 'lm-font-xs';\n }\n\n return null;\n }\n\n public isPersonalized(isContextForm: boolean, busFormSpec: LMBusFormSpec, parentIsModal?) {\n if (!isContextForm || parentIsModal) {\n return false;\n }\n\n if (!busFormSpec.contextForm.background) {\n return false;\n }\n\n const background = busFormSpec.contextForm.background;\n return background.useThemeColor || background.useBackgroundImage;\n }\n\n isCurrentThemeDefault() {\n return this.isDefaultTheme(this.getCurrentThemeId());\n }\n\n isDefaultTheme(theme: string) {\n return theme === LMThemeService.DEFAULT_THEME;\n }\n\n public static getAlternateThemeName(themeId: LMThemeId) {\n switch (themeId) {\n case 'theme-classic-light': return 'Subtle - Light';\n case 'theme-classic-dark': return 'Subtle - Dark';\n case 'theme-classic-contrast': return 'Subtle - Contrast';\n case 'theme-new-light': return 'Vibrant - Light';\n case 'theme-new-dark': return 'Vibrant - Dark';\n case 'theme-new-contrast': return 'Vibrant - Contrast';\n }\n return 'Unknown Theme (' + themeId + ')';\n }\n}\n","export * from './lm-ctrl-shift-click-event';\nexport * from './lm-base';\nexport * from './lm-base.component';\nexport * from './lm-base-form.component';\nexport * from './lm-ctrl-shift-click-base.component'\n","import { LMBaseComponent } from './lm-base.component';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMComponentInfoService, LMLoggerService } from '@services/index';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { Directive } from '@angular/core';\n\n@Directive()\nexport abstract class LMBaseFormComponent extends LMBaseComponent {\n\n protected instanceId: string;\n\n constructor(\n public sohoModalDialogService: SohoModalDialogService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmLoggerService: LMLoggerService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n public abstract load(fromDataView?: LMDataView): Promise>;\n}\n\nexport interface LoadResponse {\n data?: t;\n}\n","import { HostListener, Input, ViewContainerRef, Directive } from '@angular/core';\nimport { ComponentType, SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMDirtyCheckDialogComponent } from '@modal/lm-dirty-check-dialog.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport { ListResource } from '@resources/list.resource';\nimport { BehaviorSubject, Observable, Observer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMDialogButtonKey, LMFormType, LMUniqueIdService } from '@utils/index';\nimport { LMPendingChangesDialogComponent } from '@modal/lm-pending-changes-dialog.component';\nimport { LMComponentInfoService } from '@services/lm-componentinfo.service';\nimport { LMCtrlShiftClickEvent } from './lm-ctrl-shift-click-event';\n\nexport interface LMDialogInfo {\n name?: string;\n message?: string\n}\n\n@Directive()\nexport abstract class LMBaseComponent {\n\n protected dialog: SohoModalDialogRef;\n\n private m_componentDestroyed = false;\n\n @HostListener('click', [ '$event' ]) onClick(event) {\n if ((this.lmComponentInfoService.getCardviewSpec() || (event.ctrlKey || event.metaKey) && event.shiftKey)) {\n // if we are on a field and we have click bweyond the bounds of that field stop this field info proccessing\n // and allow the event to bubble to the form.\n const element = event.currentTarget;\n if (element) {\n const fieldElements = Array.prototype.filter.call(element.children, function(kids) {\n return kids.matches('div[lm-field-options]');\n });\n const fieldElement = fieldElements.length > 0 ? fieldElements[0] : undefined;\n\n // check to see if this is field and that it is clicking beyond the field on the form itself\n if (fieldElement) {\n const rect = fieldElement.getBoundingClientRect();\n const right = rect.right;\n if (fieldElement && event.x > right) {\n return;\n }\n }\n }\n\n event.stopPropagation();\n this.displayComponentInfo(event, this);\n }\n }\n\n @Input() placeHolder: ViewContainerRef;\n\n protected constructor(\n protected sohoModalDialogService: SohoModalDialogService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n ) {\n }\n\n public legacyWebUI = false;\n public url3_5 = undefined;\n public unsupportedPattern = false;\n private userWebRequestId = '';\n\n public uiCompare = false;\n\n public abstract getComponentInfo(additionInfo?: LMCompInfoAdditionalInfo): LMComponentInfo;\n\n public abstract getComponentPlaceHolder(): ViewContainerRef;\n\n public displayComponentInfo(event: LMCtrlShiftClickEvent, component?: LMBaseComponent): void {\n\n if ((!((event.ctrlKey || event.metaKey) && event.shiftKey)) && !event.isPage && !this.lmComponentInfoService.getCardviewSpec()) {\n return;\n }\n\n const placeHolder = this.getComponentPlaceHolder();\n const compInfo: LMComponentInfo = this.getComponentInfo(event.additionInfo);\n\n // allow fields to continue toward display. Block forms when the Comp type is List\n const typeFromEvent: string = this.lmComponentInfoService.getComponentTypeFromEvent(event);\n if (!(compInfo.componentType === 'FIELD' && compInfo.specField === 'NONSPECFIELD')\n && (typeFromEvent !== null && ((compInfo.componentType === 'FORM' && typeFromEvent.indexOf('FORM') < 0 && compInfo.type !== 'Search'))\n && compInfo.componentType !== typeFromEvent)) {\n return;\n }\n\n compInfo.isPage = (compInfo.componentType !== 'FIELD' && (this.lmComponentInfoService.closest(event.srcElement, 'lm-page')));\n compInfo.routerComponent = component;\n this.lmComponentInfoService.displayComponentInfo(event, placeHolder, compInfo);\n // this.displayDialog(placeHolder, LMComponentInfoComponent, buttons, compInfo, 'Component Info');\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n\n public showUnsavedChanges(info: LMDialogInfo): Observable {\n\n return new Observable(observer => {\n const dialogId = 'UnsavedChanges';\n\n const buttons: SohoModalButton[] = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.NO]),\n text: Soho.Locale.translate(LMDialogButtonKey.NO),\n click: (e, modal) => {\n observer.next(LMDialogButtonKey.NO);\n observer.complete();\n modal.close();\n this.hideBusyIndicator();\n },\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.YES]),\n text: Soho.Locale.translate(LMDialogButtonKey.YES),\n click: (e, modal) => {\n observer.next(LMDialogButtonKey.YES);\n observer.complete();\n modal.close();\n },\n isDefault: true\n }\n ];\n\n this.displayUnsavedChangesDialog(LMDirtyCheckDialogComponent, buttons, info, Soho.Locale.translate('UnsavedChangesMessage'));\n });\n }\n\n public displayUnsavedChanges(): Promise {\n\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const info: LMDialogInfo = { message: Soho.Locale.translate('DocumentHasChangesMessage') }; // The document has changes and will be lost if you leave the current document\n\n const dialogId = 'UnsavedChanges';\n const buttons: SohoModalButton[] = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.NO ]),\n text: Soho.Locale.translate(LMDialogButtonKey.NO),\n click: (e, modal) => {\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n },\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.YES ]),\n text: Soho.Locale.translate(LMDialogButtonKey.YES),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n this.hideBusyIndicator();\n },\n isDefault: true\n }\n ];\n\n this.displayUnsavedChangesDialog(LMDirtyCheckDialogComponent, buttons, info, Soho.Locale.translate('UnsavedChangesMessage'));\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n\n // No-oping in case this gets called on something other than a form or list.\n displayNavigationConfirmation(): Promise | boolean {\n return false;\n }\n\n // This is used to ask the user if they want to load changes that are\n // pending, the changes we found when loading the form.\n public displayPendingChangesExist(): Promise {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const info: LMDialogInfo = { name: Soho.Locale.translate('DocumentHasPendingChangesMessage') };\n // TODO: dialog message text needs work to differentiate between the Leave/Stay dialog\n\n const dialogId = 'PendingChanges';\n const buttons: SohoModalButton[] = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.APPLY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.APPLY),\n click: (e, modal) => {\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n },\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.DISCARDCHANGES ]),\n text: Soho.Locale.translate(LMDialogButtonKey.DISCARDCHANGES),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n },\n }\n ];\n\n this.displayUnsavedChangesDialog(LMPendingChangesDialogComponent, buttons, info, Soho.Locale.translate('UnsavedChangesMessage'));\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n\n public displayUnsavedChangesDialog(component: ComponentType, buttons: SohoModalButton[], info: LMDialogInfo, title: string): void {\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: `lm-unsaved-changes-modal`\n } ];\n\n const options: SohoModalOptions = {\n fullsize: 'responsive',\n showCloseBtn: true,\n attributes\n };\n\n this.dialog = this.sohoModalDialogService\n .modal(component, null, options)\n .buttons(buttons)\n .title(title)\n .beforeOpen(() => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n })\n .apply((c) => {\n c.info = info;\n })\n .open();\n }\n\n showBusyIndicator() {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n hideBusyIndicator() {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n\n checkSaveRequired(): boolean {\n return false;\n }\n\n getStatus(opts: { isDirty?: boolean, hasError?: boolean }): Array {\n const status = new Array();\n\n // using an array as it affords more flexibility if we want to highlight certain states\n if (opts.isDirty !== undefined) {\n if (opts.isDirty) {\n status.push('dirty');\n } else {\n status.push('pristine');\n }\n }\n\n if (opts.hasError !== undefined) {\n if (opts.hasError) {\n status.push('invalid');\n } else {\n status.push('valid');\n }\n }\n\n return status;\n }\n\n protected get3_5Url(lmHtmlPageUtilService: LMHtmlPageUtilService): string {\n const processUrl: string = document.location.href;\n // if (this.isListSpec(spec)) {\n // let listSpec: LMListSpec = spec;\n // if (listSpec.listType === 'dashboard') {\n // const compiledTemplateNavUrl = urltemplate.parse(listSpec.initialDataUrl);\n // const navigationUrl = compiledTemplateNavUrl.expand({\n // resourceId: listSpec.resourceId,\n // navigationName: listSpec\n // });\n // processUrl = navigationUrl;\n // }\n // }\n\n return lmHtmlPageUtilService.getHtmlPage(processUrl);\n }\n\n protected setLegacyVariables(\n has4_0UnSupported: boolean,\n appDisplay: string,\n lmContextService: LMContextService,\n lmHtmlPageUtilService: LMHtmlPageUtilService,\n forceXI?: boolean\n ) {\n const showUsing = lmContextService.getCurrentWebAppSpec().showUsing;\n const showUsingXi = lmContextService.isXiFull() || lmContextService.getContext().showusingxi;\n\n this.legacyWebUI = (showUsing !== 'SoHo_Xi');\n\n if (forceXI) {\n this.legacyWebUI = false;\n this.unsupportedPattern = false;\n this.url3_5 = undefined;\n } else if (showUsingXi && !has4_0UnSupported) {\n this.legacyWebUI = false;\n this.unsupportedPattern = false;\n this.url3_5 = undefined;\n } else if (this.uiCompare) {\n this.url3_5 = this.get3_5Url(lmHtmlPageUtilService);\n this.unsupportedPattern = false;\n this.legacyWebUI = true;\n } else if (has4_0UnSupported && (appDisplay !== '3_5')) {\n this.unsupportedPattern = true;\n this.legacyWebUI = true;\n this.url3_5 = this.get3_5Url(lmHtmlPageUtilService);\n } else if (appDisplay === '4_0' || appDisplay === 'override') {\n this.legacyWebUI = false;\n this.url3_5 = undefined;\n } else if (appDisplay === '3_5') {\n this.legacyWebUI = true;\n this.url3_5 = this.get3_5Url(lmHtmlPageUtilService);\n } else if (this.legacyWebUI) {\n this.legacyWebUI = true;\n this.url3_5 = this.get3_5Url(lmHtmlPageUtilService);\n } else {\n this.legacyWebUI = false;\n this.url3_5 = undefined;\n }\n }\n\n isPageSpec(arg: any): arg is LMPageSpec {\n return arg && arg.pageSpec;\n }\n\n isListSpec(arg: any): arg is LMListSpec {\n return arg && arg.busListSpec;\n }\n\n isFormSpec(arg: any): arg is LMFormSpec {\n return arg && arg.busFormSpec;\n }\n\n protected doesSpecContainUnsupported4_0Patterns(screenSpec: LMScreenSpec): boolean {\n const retVal = false;\n if (this.isPageSpec(screenSpec)) {\n const pageSpec: LMPageSpec = screenSpec;\n if (pageSpec.resourceId === 'LandingPageWebappPage') {\n return true;\n }\n const panels = pageSpec.pageSpec.panels;\n\n return this.processPanels4_0ForUnsupported(panels);\n }\n if (this.isListSpec(screenSpec)) {\n const listSpec: LMListSpec = screenSpec;\n return this.processList4_0ForUnsupported(listSpec);\n }\n if (this.isFormSpec(screenSpec)) {\n const formSpec: LMFormSpec = screenSpec;\n return this.processForm4_0ForUnsupported(formSpec);\n }\n return false;\n }\n\n private processList4_0ForUnsupported(listSpec): boolean {\n const charts = listSpec.busListSpec.charts;\n if (charts) {\n const keys = Object.keys(listSpec.busListSpec.charts);\n for (let i = 0; i < keys.length; i++) {\n if (listSpec.busListSpec.charts[ keys[ i ] ].chartType === 'quadrant') {\n return true;\n }\n }\n const listResource = new ListResource({ resourceId: listSpec.resourceId });\n if (listResource.chartName) {\n if (charts[ listResource.chartName ] && charts[ listResource.chartName ].chartType === 'quadrant') { // charts[chartName].chartType === 'gap' ||\n return true;\n }\n }\n }\n const detailSections = listSpec.busListSpec.detailSections;\n if (detailSections) {\n const detailSection = listSpec.busListSpec.detailSections;\n for (let i = 0; i < detailSections.length; i++) {\n if (detailSections[ i ].listSpec) {\n const foundUnsupported: boolean = this.processList4_0ForUnsupported(detailSections[ i ].listSpec);\n if (foundUnsupported) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n private processForm4_0ForUnsupported(formSpec: LMFormSpec): boolean {\n // if (formSpec.busFormSpec.formType === LMFormType.MATRIX) {\n // return true;\n // }\n if (formSpec.busFormSpec.formType === LMFormType.COMPOSITE) {\n const panels = formSpec.busFormSpec.panels;\n return this.processPanels4_0ForUnsupported(panels);\n }\n return false;\n }\n\n public instanceOfLMPagePanelSpec(object: any): object is LMPagePanelSpec {\n return 'id' in object && 'webAppSpecName' in object;\n }\n\n public instanceOfLMCompositePanelSpec(object: any): object is LMCompositePanelSpec {\n return 'panelId' in object;\n }\n\n private processPanels4_0ForUnsupported(panelSpecs: Array | Array): boolean {\n for (let i = 0; i < panelSpecs.length; i++) {\n const panelSpecIn = panelSpecs[ i ];\n if (this.instanceOfLMPagePanelSpec(panelSpecIn)) {\n const panelSpec: LMPagePanelSpec = panelSpecIn;\n if (panelSpec.pane && panelSpec.pane.listSpec) {\n return this.processList4_0ForUnsupported(panelSpec.pane.listSpec);\n }\n } else if (this.instanceOfLMCompositePanelSpec(panelSpecIn)) {\n const panelSpec: LMCompositePanelSpec = panelSpecIn;\n if (panelSpec.panelType === 'formlist') {\n const lSpec: LMListSpec = panelSpec.listSpec;\n if (lSpec) {\n if (this.processList4_0ForUnsupported(lSpec)) {\n return true;\n }\n }\n } else if (panelSpec.panelType === 'form') {\n\n }\n }\n }\n }\n\n public get componentDestroyed(): boolean {\n return this.m_componentDestroyed;\n }\n\n protected setComponentDestroyed() {\n this.m_componentDestroyed = true;\n }\n\n public setUserWebRequestId(id: string) {\n this.userWebRequestId = id;\n }\n\n public getUserWebRequestId(): string {\n return this.userWebRequestId;\n }\n}\n\nexport class LMRefreshRequest {\n public constructor(\n public originatingPanelSourceId?: string,\n public originatingSourceId?: string\n ) {\n }\n}\n","import { Directive, HostListener, Input, ViewContainerRef } from '@angular/core';\nimport { LMCtrlShiftClickEvent } from '@base/lm-ctrl-shift-click-event';\nimport { LMComponentInfoService } from '@services/lm-componentinfo.service';\n\n@Directive()\nexport abstract class LMCtrlShiftClickBaseComponent {\n\n @Input() placeHolder: ViewContainerRef;\n\n @HostListener('click', [ '$event' ]) onClick(event) {\n if ((event.ctrlKey || event.metaKey) && event.shiftKey) {\n // event.stopPropagation();\n this.addAdditionalInfo(event, this);\n\n }\n }\n public abstract getComponentInfo(): LMComponentInfo;\n\n protected constructor(\n protected lmComponentInfoService: LMComponentInfoService,\n ) {\n }\n\n public addAdditionalInfo(event: LMCtrlShiftClickEvent, component?: LMCtrlShiftClickBaseComponent): void {\n const info: LMComponentInfo = this.getComponentInfo();\n if (!((event.ctrlKey || event.metaKey) && event.shiftKey)) {\n return;\n }\n\n if (info && info.panelSpec) {\n const panelSpec: LMCompositePanelSpec = info.panelSpec;\n // event.additionInfo = {'panelSpec': panelSpec};\n this.lmComponentInfoService.setPanelSpec(panelSpec);\n }\n\n if (info && info.contextFormSpec) {\n const contextFormSpec: LMFormSpec = info;\n // event.additionInfo = {'contextFormSpec': contextFormSpec};\n this.lmComponentInfoService.setContextFormSpec(contextFormSpec);\n }\n\n if (info && info.cardviewSpec) {\n // event.additionInfo = {'cardviewSpec': info.cardviewSpec};\n this.lmComponentInfoService.setCardviewSpec(info.cardviewSpec);\n }\n }\n}\n","export class LMCtrlShiftClickEvent extends MouseEvent {\n metaKey: boolean;\n ctrlKey: boolean;\n shiftKey: boolean;\n srcEventElement?: Element;\n isPage?: boolean;\n routeComponent?: any; // This needs to be LMBaseComponent\n additionInfo?: any;\n originalEvent: Event;\n}\n\n// These are added to allow the ctrl-shift-click be able to click on the header bar in IE without causing IE to not fail on load.\n// This should be able to be removed when we update to node 14\ntype CtrlShiftCallback = (evt: Event) => void\n\ninterface CtrlShiftListeners {\n [type: string]: Array\n}\n\nexport class EventTargetPolyfill implements EventTarget {\n listeners?: CtrlShiftListeners = {}\n\n addEventListener(type: string, callback: CtrlShiftCallback) {\n if (!(type in this.listeners)) {\n this.listeners[type] = []\n }\n this.listeners[type].push(callback)\n }\n\n removeEventListener(type: string, callback: CtrlShiftCallback) {\n if (!(type in this.listeners)) {\n return\n }\n const stack = this.listeners[type]\n // tslint:disable-next-line one-variable-per-declaration\n for (let i = 0, l = stack.length; i < l; i++) {\n if (stack[i] === callback) {\n stack.splice(i, 1)\n return\n }\n }\n }\n\n dispatchEvent(event: Event) {\n if (!(event.type in this.listeners)) {\n return true\n }\n const stack = this.listeners[event.type].slice()\n // tslint:disable-next-line one-variable-per-declaration\n for (let i = 0, l = stack.length; i < l; i++) {\n stack[i].call(this, event)\n }\n return !event.defaultPrevented\n }\n}\n\nexport class CurrentTarget extends EventTargetPolyfill {\n nodeName?: string;\n}\n","export * from './lm-block-grid.component';\nexport * from './lm-block-item.component';\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { LMContextService } from '@app/services';\n\n@Component({\n selector: 'lm-block-grid',\n templateUrl: 'lm-block-grid.component.html'\n})\nexport class LMBlockGridComponent implements OnInit {\n public uiLoadingIndicatorTimeout = 0;\n\n @Input() showEmptyMessage = false;\n @Input() selectionMode: SohoListViewSelectable;\n @Input() emptyMessageOptions: SohoEmptyMessageOptions;\n\n @Input() display = 'inline-block';\n @Input() padding = '';\n\n @Output() itemSelected = new EventEmitter();\n @Output() itemDoubleClicked = new EventEmitter();\n\n constructor(private lmContextService: LMContextService) {\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {}\n}\n","\n
\n \n \n
\n\n \n
\n
\n \n
\n
\n\n \n \n
\n
\n \n
\n
\n
\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMListUtilService } from '@list/services/lm-list-util.service';\n\n@Component({\n selector: 'lm-block-item',\n templateUrl: './lm-block-item.component.html',\n styleUrls: [ 'lm-block-item.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMBlockItemComponent {\n @Input() content: 'image-item' | 'sectioned-card';\n @Input() populateTooltip: boolean;\n @Input() blockGridOptions: BlockGridOptions = null;\n @Input() set data(imageData: BlockGridData) {\n this._data = imageData;\n\n if (this.populateTooltip) {\n this._populateTooltip();\n }\n };\n\n @HostBinding('style.width.px') @Input() width: string;\n @HostBinding('style.margin') @Input() margin = '15px 0 0 15px';\n\n @HostBinding('class') get hostClassName() {\n return this.content;\n }\n\n @Output() itemSelected = new EventEmitter();\n @Output() itemDoubleClicked = new EventEmitter();\n @Output() contextMenu = new EventEmitter();\n\n public selected = false;\n public tooltip: string;\n private _data: BlockGridData;\n\n constructor(\n protected lmFormatUtilService: LMFormatUtilService,\n private lmListUtilService: LMListUtilService) {}\n\n public selectImage() {\n // Set timeout to allow double click time to be captured before single click\n setTimeout(() => {\n this.selected = true;\n\n const imageItemEvent: LMBlockGridItemEvent = {\n cell: -1,\n item: this,\n row: this.data.dvIndex,\n originalEvent: null,\n type: 'imageList'\n };\n this.itemSelected.emit(imageItemEvent);\n });\n }\n\n public doubleClick() {\n const imageItemEvent: LMBlockGridItemEvent = {\n cell: -1,\n item: this,\n row: this.data.dvIndex,\n originalEvent: null,\n type: 'imageList'\n };\n\n this.itemDoubleClicked.emit(imageItemEvent);\n }\n\n public onContextMenu(e?: JQuery.TriggeredEvent) {\n e.preventDefault();\n this.selected = true;\n const contextMenuEvent: LMBlockGridItemEvent = {\n cell: -1,\n item: this,\n row: this.data.dvIndex,\n originalEvent: e,\n type: 'imageList'\n };\n this.contextMenu.emit(contextMenuEvent);\n }\n\n public select(dvIndex: number) {\n this.selected = false;\n }\n\n public unSelect() {\n this.selected = false;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n public get data(): BlockGridData {\n return this._data;\n }\n\n private _populateTooltip() {\n if (this._data && this._data.detailFields) {\n this.tooltip = this.lmListUtilService.buildDetailFieldsAsTooltip(this._data.dataView, this._data.detailFields);\n }\n }\n}\n","\n \n \n \n {{data.foregroundText}}\n \"{{data.itemText}}\"\n
\n \n
\n\n \n

{{data.itemText}}

\n
\n\n \n \n

{{data.itemText}}

\n
\n
\n
\n \n \n \n \n \n\n\n","export * from './lm-simple-card.component';\nexport * from './lm-sectioned-card.component';\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { LMCtrlShiftClickBaseComponent, LMNavigationService } from '@app/components';\nimport { LMComponentInfoService, LMUrlUtilService } from '@app/services';\nimport { KeyedResource } from '@app/resources';\n\n@Directive()\nexport abstract class LMCardBaseDirective extends LMCtrlShiftClickBaseComponent {\n @Output() toolbarButtonEvent = new EventEmitter();\n\n constructor(\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmNavigationService: LMNavigationService,\n protected lmUrlUtilService: LMUrlUtilService\n ) {\n super(lmComponentInfoService);\n }\n\n public onActionClicked(event) {\n if (event.target && (event.target.nodeName === 'BUTTON' || event.target.nodeName === 'A')) {\n if (!event.target.dataset || !event.target.dataset.actionReference) {\n return;\n }\n\n this.onToolbarButtonEvent({\n actionSpec: null,\n actionReference: JSON.parse(event.target.dataset.actionReference),\n event\n });\n }\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n this.toolbarButtonEvent.emit(toolbarButtonEvent);\n }\n\n public external(item: LMCardViewButtonRowButton, event: Event) {\n event.preventDefault();\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(item.httpUrl);\n } catch (e) {\n //noop\n }\n\n if (resource?.resourceType === 'navigation') {\n this.lmNavigationService.runNavigation(item.httpUrl, undefined, { openNewTab: item.isOpenExternal });\n } else {\n this.lmUrlUtilService.openExternalUrl(item.httpUrl);\n }\n }\n\n public stringifyJson(actionReference: LMBusActionReference) {\n const actionReferenceClone = JSON.parse(JSON.stringify(actionReference));\n if (actionReferenceClone.label && actionReferenceClone.label.search(/'/g) > -1) {\n // html encode single quotes as they screw up when placed into a element.dataset.\n actionReferenceClone.label = actionReferenceClone.label.replace(/'/g, (substring, ...args) => ''');\n }\n\n return JSON.stringify(actionReferenceClone);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef, HostBinding,\n Input,\n OnInit, QueryList,\n ViewChild, ViewChildren\n} from '@angular/core';\nimport { LMListCardService } from '@list/services';\nimport { SohoRatingComponent } from 'ids-enterprise-ng';\nimport { LMCardBaseDirective } from '@card/lm-card-base.directive';\nimport { LMComponentInfoService, LMUrlUtilService } from '@app/services';\nimport { LMNavigationService } from '@app/components';\n\n@Component({\n selector: 'lm-sectioned-card',\n templateUrl: 'lm-sectioned-card.component.html',\n styleUrls: [ 'lm-sectioned-card.component.scss' ],\n providers: [ LMListCardService ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LMSectionedCardComponent extends LMCardBaseDirective implements OnInit, AfterViewInit {\n public data: LMSectionedCardTemplateData;\n\n private _imageSectionHeight: number;\n private _titleSectionHeight: number;\n\n @ViewChild('ImageSection') imageSection: ElementRef;\n @ViewChild('TitleSection') titleSection: ElementRef;\n @ViewChildren(SohoRatingComponent) ratingComponents: QueryList;\n\n @Input() dataView: LMDataView;\n @Input() displayFields: Array;\n\n @HostBinding('style.width.px') cardWidth: number;\n @HostBinding('style.max-width.px') cardMaxWidth: number;\n @HostBinding('style.min-width.px') cardMinWidth: number;\n @HostBinding('class.activated') @Input() activated: boolean;\n\n constructor(\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmNavigationService: LMNavigationService,\n protected lmUrlUtilService: LMUrlUtilService,\n private lmListCardService: LMListCardService\n ) {\n super(lmComponentInfoService, lmNavigationService, lmUrlUtilService);\n }\n\n ngOnInit() {\n this.setCardWidth();\n this.load();\n }\n\n ngAfterViewInit() {\n if (this?.ratingComponents?.length > 0) {\n this.ratingComponents.forEach((ratingComponent: SohoRatingComponent) => {\n ratingComponent.readonly();\n });\n }\n }\n\n public load() {\n const data = this.lmListCardService.getSectionedCardData(this.displayFields, this.dataView);\n\n if (data.imageSection) {\n this.initializeImageSection(data.imageSection);\n }\n\n if (data.titleSection) {\n this.initializeTitleSection(data.titleSection);\n }\n\n this.data = data;\n }\n\n public set imageSectionHeight(height: number) {\n this._imageSectionHeight = height;\n }\n\n public get imageSectionHeight(): number {\n return this._imageSectionHeight;\n }\n\n public set titleSectionHeight(height: number) {\n this._titleSectionHeight = height;\n }\n\n public get titleSectionHeight(): number {\n return this._titleSectionHeight;\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n this.toolbarButtonEvent.emit(toolbarButtonEvent);\n }\n\n public getComponentInfo(): LMComponentInfo {\n throw new Error('Method not implemented.');\n }\n\n private setCardWidth() {\n const width = 320;\n this.lmListCardService.cardWidth = width;\n this.cardWidth = width;\n this.cardMaxWidth = width;\n this.cardMinWidth = width;\n }\n\n private initializeImageSection(imageSection: LMSectionedCardTemplateImage) {\n let useLines = imageSection.useLines;\n\n // Implicit max is 6\n if (useLines > 6) {\n useLines = 6;\n }\n\n // Default is 4\n if (useLines === undefined) {\n useLines = 4;\n }\n\n // Each line is 25px\n this.imageSectionHeight = useLines * 25;\n }\n\n private initializeTitleSection(titleSection: LMSectionedCardTemplateTitle) {\n let useLines = titleSection.useLines;\n\n // Implicit max is 6\n if (useLines > 6) {\n useLines = 6;\n }\n\n // Default is 1\n if (useLines === undefined) {\n useLines = 1;\n }\n\n // Each line is 25px\n this.titleSectionHeight = useLines * 25;\n }\n}\n","
\n \n
\n
\n
\n \n
\n
\n \n

\n {{data.titleSection.title}}\n

\n
\n \n

{{data.titleSection.title}}

\n
\n
\n\n
\n \n \n \n
\n
\n
\n \n

{{field.displayValue}}

\n
\n
\n
\n
\n \n \n \n \n {{b.actionReference?.label}}\n \n \n  \n {{b.actionReference?.label}}\n \n \n \n \n \n \n {{b.actionReference?.label}}\n \n\n \n \n\n \n \n \n \n
\n
\n\n\n
\n \n
\n \n \n \n \n
\n
\n \n

{{field.displayValue}}

\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { LMFormatUtilService, LMUrlUtilService } from '@services/utils/index';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMConfirmationMessageService, ConfirmationDialogResult } from '@modal/lm-confirmation-message.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMContextUtilService, LMGlobalUtilService } from '@utils/index';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMRoamingUIProfileService, RoamingUIProfileResult, RoamingUIProfileResponse } from '@services/lm-roamingUIProfile.service';\n\nexport class LMMenuEvent implements LMFieldEvent {\n link: string;\n event: Event;\n eventType: LMFieldEventType;\n\n constructor(event: Event, link: string) {\n this.eventType = 'MenuClickEvent';\n this.event = event;\n this.link = link;\n }\n}\n\nexport type LMCardType = 'webapp' | 'menu' | 'registration' | 'signin' | 'signout';\n\n@Component({\n selector: 'lm-simple-card',\n templateUrl: 'lm-simple-card.component.html',\n styleUrls: [ 'lm-simple-card.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ LMRoamingUIProfileService ],\n})\n\nexport class LMSimpleCardComponent implements OnInit {\n @HostBinding('class.card') get card() {\n return this.showBackground;\n }\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @Input() type: LMCardType = 'webapp'; // 1 = webapp link, 2 = menu link\n @Input() scale: string;\n @Input() link: string;\n @Input() showBackground = true;\n @Input() imageUrl: string;\n @Input() title: LMMessageRule;\n @Input() description: LMMessageRule;\n @Input() paragraphLayout: boolean;\n @Input() preferred: boolean;\n @Input() webAppName: string;\n @Input() isLink: string;\n @Input() isExternalLink: string;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() anchorClicked: EventEmitter = new EventEmitter();\n @Output() preferredMenuEvent: EventEmitter = new EventEmitter();\n\n public confirmationMsg: string;\n public setPreferred: String = Soho.Locale.translate('SetPreferred');\n public removePreferred: String = Soho.Locale.translate('RemovePreferred');\n public preferredMsg: String = Soho.Locale.translate('Preferred');\n public globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n public isInAccessibilityMode: boolean;\n isMultiLineDescription: boolean;\n\n constructor(private lmSpecService: LMSpecService,\n public lmUrlUtilService: LMUrlUtilService,\n public lmContextService: LMContextService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmConfirmationMessageService: LMConfirmationMessageService,\n private lmLoggerService: LMLoggerService,\n private lmRoamingUIProfileService: LMRoamingUIProfileService,\n public lmContextUtilService: LMContextUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n public lmFormatUtilService: LMFormatUtilService) {\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n }\n\n onClickEvent(event: Event) {\n if (this.isWebAppLink) {\n if (this.lmContextService.inMingleWidget()) {\n let url = this.link;\n url += '&' + jQuery.param(this.lmContextService.getContext().contextSessionKeys, true);\n this.lmContextUtilService.sendDrillbackMessage(url);\n } else {\n this.lmGlobalUtilService.navigateByUrl(this.link);\n this.anchorClicked.emit(this.title);\n }\n } else if (this.lmContextService.inMingleWidget() && this.type === 'menu') {\n const url = this.lmUrlUtilService.updateContextSessionKeyParams(this.link);\n this.lmContextUtilService.sendDrillbackMessage(url);\n } else {\n if (this.isLink === 'true') {\n if (this.type === 'registration') {\n this.lmGlobalUtilService.navigateByUrl(this.link);\n } else if (this.type === 'signin' || this.type === 'signout') {\n this.lmGlobalUtilService.navigate(this.link);\n } else {\n this.lmGlobalUtilService.navigateByUrl(this.link);\n }\n } else {\n this.fieldEvent.emit(new LMMenuEvent(event, this.link));\n }\n }\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.fieldEvent.emit(event);\n }\n\n onPreferredMenuEvent(event: Event) {\n if (this.isPreferred) {\n this.confirmationMsg = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('RemovePreferredPage'), this.title);\n this.globalPersonalization.preferredWebApp = '';\n this.displayRemoveConfirmation();\n } else {\n this.confirmationMsg = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('DefaultLandingPage'), this.title);\n this.displayConfirmation(this.webAppName);\n }\n }\n\n public displayConfirmation(preferredWebApp: string) {\n this.lmConfirmationMessageService.promptConfirmationMessage({ message: this.confirmationMsg, okToAll: false })\n .subscribe(\n (result: any) => {\n if (result === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.lmLoggerService.log([ 'Message confirmed: ', this.confirmationMsg ]);\n this.lmRoamingUIProfileService.setPreferredWebApp(preferredWebApp)\n .subscribe(\n (results: RoamingUIProfileResponse) => {\n if (results.status === RoamingUIProfileResult.COMPLETED) {\n this.globalPersonalization.preferredWebApp = preferredWebApp;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.globalPersonalization);\n this.lmGlobalUtilService.navigateByUrl(this.link);\n this.anchorClicked.emit(this.title);\n }\n });\n } else {\n this.lmLoggerService.log([ 'Message not confirmed: ', this.confirmationMsg ]);\n }\n }\n );\n }\n\n public displayRemoveConfirmation() {\n this.lmConfirmationMessageService.promptConfirmationMessage({ message: this.confirmationMsg, okToAll: false })\n .subscribe(\n (result: any) => {\n if (result === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.lmLoggerService.log([ 'Message confirmed: ', this.confirmationMsg ]);\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.globalPersonalization);\n this.preferredMenuEvent.emit({ preferredWebAppRemoved: true, webApp: this.webAppName });\n } else {\n this.lmLoggerService.log([ 'Message not confirmed: ', this.confirmationMsg ]);\n }\n }\n );\n }\n\n public get isParagraph(): boolean {\n return this.paragraphLayout;\n }\n\n public get isWebAppLink(): boolean {\n if (this.type === 'webapp') {\n return true;\n }\n }\n\n public get hasImage(): boolean {\n if (this.imageUrl !== '') {\n return true;\n }\n }\n\n public get isLargeScale(): boolean {\n if (this.scale !== '0') {\n return true;\n }\n }\n\n public get isPreferred(): boolean {\n return this.preferred;\n }\n\n public get smallMenuInDashboard(): boolean {\n if (this.model) {\n return this.model.formSpec.busFormSpec.implementsDashBoardView && this.scale === '0';\n }\n return false;\n }\n\n showToolTip(el: HTMLElement) {\n this.isMultiLineDescription = el.scrollHeight > el.clientHeight;\n }\n}\n","
\n
\n \"\"\n \n
\n
\n \n
\n
\n

\n {{description | formatMessageRule:true:description:model:specFields}}

\n
\n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n

\n {{description | formatMessageRule:true:description:model:specFields}}

\n
\n
\n\n \n \n {{'More' | translate}} - {{title | formatMessageRule:true:title:model:specFields}}\n \n
\n \n
\n
\n
\n \"\"\n
\n","export * from './lm-chart-radar.component';\nexport * from './lm-chart-pie.component';\nexport * from './lm-chart-line.component';\nexport * from './lm-chart-bar.component';\nexport * from './lm-chart-column.component';\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { LMChartBase } from './lm-chart-base';\nimport { SohoBarComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-chart-bar',\n template: `\n
\n\n \n `\n})\nexport class LMChartBarComponent extends LMChartBase {\n @ViewChild(SohoBarComponent, { static: true }) sohoBarComponent: SohoBarComponent;\n\n @Input() isStacked: boolean;\n @Input() isNormalized: boolean;\n @Input() isGrouped: boolean;\n\n constructor(\n public elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n public getChartComponent() {\n return this.sohoBarComponent;\n }\n}\n","import { ElementRef, EventEmitter, Input, Output, Directive } from '@angular/core';\n\n@Directive()\nexport abstract class LMChartBase {\n\n @Input() dataset: SohoDataSet;\n @Input() type: string;\n @Input() showLegend: boolean;\n @Input() redrawOnResize: boolean;\n @Input() emptyMessage: {};\n @Input() animate: boolean;\n @Input() tooltip: string;\n\n // ------------------------------------------------------------------------\n // @Outputs\n // ------------------------------------------------------------------------\n\n @Output() selected = new EventEmitter();\n @Output() unselected = new EventEmitter();\n @Output() rendered = new EventEmitter();\n @Output() contextmenu = new EventEmitter();\n\n constructor(\n public elementRef: ElementRef,\n ) {\n const chartComponent = this;\n $(this.elementRef.nativeElement).on('contextmenu', function(e: JQuery.TriggeredEvent, ui, d) {\n const chartEvent: LMChartEvent = {\n event: e,\n ui,\n data: d,\n };\n chartComponent.contextmenu.emit(chartEvent);\n });\n }\n\n public abstract getChartComponent();\n\n public onSelected(event: ChartEvent) {\n this.selected.emit(event);\n }\n public onUnselected(event: ChartEvent) {\n this.unselected.emit(event);\n }\n public onRendered(event: ChartEvent) {\n this.rendered.emit(event);\n }\n public onContextMenu(event: ChartEvent) {\n if (event.event) {\n this.contextmenu.emit(event);\n } else {\n // event.stopPropagation();\n }\n }\n\n public getSelected() {\n return this.getChartComponent().getSelected();\n }\n\n public getChartOptions() {\n // return this._chartOptions;\n return {type: ''};\n }\n\n public setSelectDataIndex(index: number) {\n const data = this.dataset[0].data[index];\n const options = {fieldName: 'ref', fieldValue: data.ref};\n this.getChartComponent().setSelected(options);\n }\n\n private getRefIndex(data: Array, index: number): number {\n const currentIndex = data.findIndex(record => index === record.ref\n );\n return currentIndex;\n }\n public setSelectRef(ref: any): void {\n if (this.getChartComponent()) {\n if (this.type === 'pie' || this.type === 'donut') {\n const selectOptions: SohoPieSelected = {fieldName: 'ref', fieldValue: ref};\n this.getChartComponent().setSelected(selectOptions);\n } else if (this.type.indexOf('grouped') >= 0 || this.type === 'area' || this.type === 'line' || this.type === 'bubble') {\n // let selectVal: string = this.dataset[ref].name;\n const selectOptions: LMChartGroupedSelection = {groupIndex: ref};\n this.getChartComponent().setSelected(selectOptions);\n } else {\n // let selectVal: string = this.dataset[ref].name;\n const selectOptions: LMChartSelection = {index: ref};\n this.getChartComponent().setSelected(selectOptions);\n }\n }\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { LMChartBase } from './lm-chart-base';\nimport { SohoColumnComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-chart-column',\n template: `\n
\n \n `,\n styles: [`:host{height:100%}`]\n})\nexport class LMChartColumnComponent extends LMChartBase {\n @ViewChild(SohoColumnComponent, { static: true }) sohoColumnComponent: SohoColumnComponent;\n\n @Input() isStacked: boolean;\n\n constructor(\n public elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n public getChartComponent() {\n return this.sohoColumnComponent;\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { LMChartBase } from './lm-chart-base';\nimport { SohoLineComponent } from 'ids-enterprise-ng';\nimport * as d3 from 'd3';\n\n@Component({\n selector: 'lm-chart-line',\n template: `\n
\n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n \n `\n})\nexport class LMChartLineComponent extends LMChartBase implements OnInit { // implements OnInit\n @ViewChild(SohoLineComponent, { static: true }) sohoLineComponent: SohoLineComponent;\n\n @Input() isArea: boolean;\n @Input() isBubble: boolean;\n @Input() isDateChart: boolean;\n @Input() hideDots: boolean;\n @Input() isDashBoardContent: boolean;\n @Input() xAxisFields: Array;\n @Input() yAxisFields: Array;\n @Input() xAxisId: string;\n @Input() yAxisId: string;\n\n @Output() axisChanged = new EventEmitter();\n\n public xAxisObj;\n private el: HTMLElement;\n private selections = {xSelected: 0, ySelected: 0};\n\n constructor(\n public elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n ngOnInit() {\n if (!this.isDateChart) {\n this.xAxisObj = {rotate: this.getRotateAngle(this.dataset[0].data.length)};\n return;\n }\n\n // D3 parse/format date\n const parseDate = d3.timeParse('%m/%d/%Y');\n const formatDate = d3.timeFormat('%b %d %y');\n\n const dataX = this.dataset[0].data;\n // Get dates\n const dates = dataX.map(function(d, i) {\n const tDate = new Date(d.name);\n const dt = parseDate(tDate.toLocaleDateString());\n // d.tooltip = d.localeDate; // + ' ' + this.dataset[0].data[i].value;\n return dt;\n });\n\n // Get min and max dates\n const minDate = (d3.min(d3.values(dates)));\n const maxDate = d3.max(d3.values(dates));\n const ticks = this.getTicks(minDate, maxDate);\n\n this.xAxisObj = {\n scale: d3.scaleTime(),\n domain: [minDate, maxDate],\n rotate: this.getRotateAngle(999), // force to angle on date chart\n ticks, // d3.time.months, // d3.timeDay.every(50), // 10, // d3.months,\n formatter(d, i) {\n const options = {\n // weekday: 'short',\n year: 'numeric',\n month: '2-digit',\n day: 'numeric'\n };\n return d.toLocaleString(Soho.Locale.currentLocale, options); // formatDate(d);\n },\n parser(d, i) {\n return parseDate(d.name);\n }\n };\n }\n\n public onXAxisChanged(event: JQuery.TriggeredEvent) {\n this.selections.xSelected = event.target.selectedIndex;\n const chartAxisChangedEvent: ChartAxisChangedEvent = {\n event,\n xSelectionIndex: this.selections.xSelected,\n ySelectionIndex: this.selections.ySelected,\n }\n\n this.axisChanged.emit(chartAxisChangedEvent);\n }\n\n public onYAxisChanged(event: JQuery.TriggeredEvent) {\n this.selections.ySelected = event.target.selectedIndex;\n const chartAxisChangedEvent: ChartAxisChangedEvent = {\n event,\n xSelectionIndex: this.selections.xSelected,\n ySelectionIndex: this.selections.ySelected,\n }\n\n this.axisChanged.emit(chartAxisChangedEvent);\n }\n\n public getXAxisId(): string {\n return this.xAxisId ? this.xAxisId : 'xAxis';\n }\n\n public getYAxisId(): string {\n return this.yAxisId ? this.yAxisId : 'yAxis';\n }\n\n private getRotateAngle(ticks: number): String {\n if (ticks > this.elementRef.nativeElement.offsetWidth / 80) {\n return '-65'\n }\n // return undefined to allow D3 to use default.\n return undefined;\n }\n\n private getTicks(dt1, dt2): number {\n const maxTicks = 25\n\n const yearDiff = this.yearsDiff(dt1, dt2);\n if (yearDiff > 2 && yearDiff < maxTicks) {\n return yearDiff;\n }\n const monthDiff = this.monthDiff(dt1, dt2);\n if (monthDiff > 4 && monthDiff < maxTicks) {\n return monthDiff;\n }\n const dayDiff = this.dayDiff(dt1, dt2);\n if (dayDiff > 3 && dayDiff < maxTicks) {\n return dayDiff;\n }\n return maxTicks;\n }\n\n private yearsDiff(dt1, dt2) {\n let diff = (dt2.getTime() - dt1.getTime()) / 1000;\n diff /= (60 * 60 * 24);\n return Math.abs(Math.round(diff / 365.25));\n }\n\n private monthDiff(dt1, dt2) {\n let months;\n months = (dt2.getFullYear() - dt1.getFullYear()) * 12;\n months -= dt1.getMonth() + 1;\n months += dt2.getMonth();\n return months <= 0 ? 0 : months;\n }\n\n private dayDiff(dt1, dt2) {\n // Take the difference between the dates and divide by milliseconds per day.\n // Round to nearest whole number to deal with DST.\n return Math.round((dt2 - dt1) / (1000 * 60 * 60 * 24));\n }\n\n public getChartComponent() {\n return this.sohoLineComponent;\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { LMChartBase } from './lm-chart-base';\nimport { SohoPieComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-chart-pie',\n template: `\n
\n \n `\n})\nexport class LMChartPieComponent extends LMChartBase {\n @ViewChild(SohoPieComponent, { static: true }) sohoPieComponent: SohoPieComponent;\n\n @Input() showLines: boolean;\n @Input() showLinesMobile: boolean;\n @Input() hideCenterLabel: boolean;\n @Input() isDonut: boolean;\n @Input() lines: SohoPieLinesOptions;\n @Input() legendPlacement: string;\n @Input() showTooltips: boolean;\n\n constructor(\n public elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n public getChartComponent() {\n return this.sohoPieComponent;\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { LMChartBase } from './lm-chart-base';\nimport { SohoRadarComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-chart-radar',\n template: `\n
\n \n `\n})\nexport class LMChartRadarComponent extends LMChartBase {\n @ViewChild(SohoRadarComponent, { static: true }) sohoRadarComponent: SohoRadarComponent;\n\n @Input() showAxisLabels: boolean;\n\n constructor(\n public elementRef: ElementRef,\n ) {\n super(elementRef);\n }\n\n public getChartComponent() {\n return this.sohoRadarComponent;\n }\n}\n","export * from './lm-componentinfo.component';\n","import {\n Component,\n OnInit,\n Input,\n AfterViewInit,\n ElementRef,\n Inject,\n forwardRef\n} from '@angular/core';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMUrlUtilService, URLOptions } from '@services/utils/lm-url-util.service';\nimport { LMCtrlShiftClickEvent } from '@base/lm-ctrl-shift-click-event';\nimport { FormResource } from '@resources/form.resource';\nimport { LMActionRequest, LMActionService, LMComponentInfoService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { throwError } from 'rxjs';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Resource } from '@app/resources';\n\n@Component ({\n selector: 'lm-componentinfo',\n templateUrl: 'lm-componentinfo.component.html',\n styleUrls: ['lm-componentinfo.component.scss'],\n providers: [LMRouteComponentService],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class LMComponentInfoComponent implements OnInit, AfterViewInit {\n\n @Input() info: LMComponentInfo;\n\n showListUrl = false;\n showReloadPageUrl = false;\n showFirstPageUrl = false;\n showNextPageUrl = false;\n showPreviousPageUrl = false;\n showLastPageUrl = false;\n showNextRecordUrl = false;\n showPreviousRecordUrl = false;\n showReloadRecordUrl = false;\n showActionRedirectUrl = false;\n showRelActionUrl = false;\n showFormRequestUrl = false;\n showLoadedUrl = false;\n showInputUrl = false;\n configureUrl: string;\n showDeveloper: boolean;\n showDebug: boolean;\n\n private infoCache: LMComponentInfo;\n private busNameCache: string;\n private nameCache: string;\n\n contextFormExpanded?: boolean | undefined;\n\n private ALREADY_EXIST_EXCEPTION = 'com.lawson.rdtech.type.AlreadyExistsException';\n private ALREADY_IN_USE = 'Name already in use';\n\n constructor(\n private elementRef: ElementRef,\n @Inject(forwardRef(() => LMRouteComponentService)) private currentComponent,\n private lmUrlUtilService: LMUrlUtilService,\n private lmNavigationService: LMNavigationService,\n private lmActionService: LMActionService,\n private lmcomponentinfoService: LMComponentInfoService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n ) {}\n\n ngOnInit() {\n if (this.info.configInfo) {\n this.info.configInfo.personalization = this.info.configInfo && this.info.configInfo.personalization ? this.info.configInfo.personalization : false;\n this.info.configInfo.configuration = this.info.configInfo && this.info.configInfo.configuration ? this.info.configInfo.configuration : false;\n }\n }\n\n ngAfterViewInit() {\n $('.expandable-area').expandablearea()\n .on('expand', () => this.contextFormExpanded = true)\n .on('collapse', () => this.contextFormExpanded = false);\n }\n\n\n showHideListUrl() {\n this.showListUrl = !this.showListUrl;\n return false;\n }\n showHideReloadPageUrl() {\n this.showReloadPageUrl = !this.showReloadPageUrl;\n return false;\n }\n showHideFirstPageUrl() {\n this.showFirstPageUrl = !this.showFirstPageUrl;\n return false;\n }\n showHideNextPageUrl() {\n this.showNextPageUrl = !this.showNextPageUrl;\n return false;\n }\n showHidePreviousPageUrl() {\n this.showPreviousPageUrl = !this.showPreviousPageUrl;\n return false;\n }\n showHideLastPageUrl() {\n this.showLastPageUrl = !this.showLastPageUrl;\n return false;\n }\n showHideNextRecordUrl() {\n this.showNextRecordUrl = !this.showNextRecordUrl;\n return false;\n }\n showHidePreviousRecordUrl() {\n this.showPreviousRecordUrl = !this.showPreviousRecordUrl;\n return false;\n }\n showHideReloadRecordUrl() {\n this.showReloadRecordUrl = !this.showReloadRecordUrl;\n return false;\n }\n showHideActionRedirectUrl() {\n this.showActionRedirectUrl = !this.showActionRedirectUrl;\n return false;\n }\n showHideRelActionUrl() {\n this.showRelActionUrl = !this.showRelActionUrl;\n return false;\n }\n showHideFormRequestUrl() {\n this.showFormRequestUrl = !this.showFormRequestUrl;\n return false;\n }\n showHideLoadedUrl() {\n this.showLoadedUrl = !this.showLoadedUrl;\n return false;\n }\n showHideInputUrl() {\n this.showInputUrl = !this.showInputUrl;\n return false;\n }\n\n closeDialog() {\n this.lmcomponentinfoService.closeDialog();\n }\n\n showPageComponentInfo(event: LMCtrlShiftClickEvent) {\n\n // let ctrlShiftClickEvent: CtrlShiftClickEvent = document.createEvent('CtrlShiftClickEvent') as CtrlShiftClickEvent;\n // csEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, true, false, true, false, 0, null);\n // document.body.dispatchEvent(event as Event);\n // let ctrlShiftClickEvent: CtrlShiftClickEvent = csEvent as CtrlShiftClickEvent;\n // ctrlShiftClickEvent.srcEventElement = this.elementRef.nativeElement;\n const ctrlShiftClickEvent: LMCtrlShiftClickEvent = event as LMCtrlShiftClickEvent;\n ctrlShiftClickEvent.isPage = true;\n // ctrlShiftClickEvent.ctrlKey = true;\n // ctrlShiftClickEvent.metaKey = true;\n // ctrlShiftClickEvent.shiftKey = true;\n\n const pageComp: LMBaseComponent = this.info.routerComponent.currentComponent.getRouteComponent();\n\n // pageComp.displayComponentInfo(ctrlShiftClickEvent);\n pageComp.displayComponentInfo(ctrlShiftClickEvent, pageComp);\n }\n\n public toggleDeveloper() {\n this.showDeveloper = !this.showDeveloper;\n }\n\n public toggleDebugger() {\n this.showDebug = !this.showDebug;\n }\n\n public viewConfiguration(info: LMComponentInfo, busName: string, name: string) {\n if (!info) {\n info = this.infoCache;\n busName = this.busNameCache;\n name = this.nameCache;\n }\n if (info && info.panelType && info.panelType === 'form') {\n info.componentType = info.panelType.toUpperCase() as LMCompInfoType;\n }\n switch (info.componentType) {\n case 'FORM':\n case 'CONTEXT_FORM':\n this.modifyFormConfiguration(busName, name);\n break;\n case 'LIST':\n this.modifyListConfiguration(busName, name);\n break;\n case 'PAGE':\n this.modifyPageConfiguration(busName, name);\n break;\n case 'MENU':\n this.modifyMenuConfiguration(this.info.target);\n break;\n case 'CARDVIEW':\n this.modifyCardViewConfiguration(busName, name);\n break;\n }\n }\n\n public createConfiguration(info: LMComponentInfo, busName: string, name: string) {\n this.infoCache = info;\n this.busNameCache = busName;\n this.nameCache = name;\n\n switch (info.componentType) {\n case 'FORM':\n case 'CONTEXT_FORM':\n this.createFormConfiguration(busName, name)\n break;\n case 'LIST':\n this.createListConfiguration(busName, name);\n break;\n case 'PAGE':\n this.createPageConfiguration(name);\n break;\n case 'MENU':\n this.createMenuConfiguration(this.info.target);\n break;\n case 'CARDVIEW':\n this.createCardViewConfiguration(busName, name);\n break;\n }\n this.closeDialog();\n }\n\n private createFormConfiguration(businessClass: string, formName: string) {\n const formResource = new FormResource({\n formName : 'CreateConfigurationForm',\n busClassName : 'UserForm'\n });\n const actionSpec: LMActionSpec = {\n type: 'CREATE',\n name: 'CreateConfiguration',\n hasParameters: true\n };\n const businessViewFld: LMField = {\n value: businessClass\n };\n const nameFld: LMField = {\n value: formName\n };\n const dataView: LMDataView = {\n action: 'CreateConfiguration',\n busClassName: 'UserForm',\n fields: {BusinessView: businessViewFld, Form: nameFld}\n };\n this.runCreateConfiguration(formResource, actionSpec, dataView);\n }\n\n public upperCase(str: string): string {\n return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();\n }\n\n public getAltFormUrl(url: string, altFormName: string) {\n const formInfo: LMFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromHttpUrl(url);\n const formResource: KeyedResource = formInfo.resource;\n formResource.uiResourceName = altFormName;\n\n // const urlOptions: URLOptions {\n // resource: formResource,\n // params?: any;\n // webApp?: formInfo.;\n // }\n //\n //\n // this.lmUrlUtilService.buildUrl()\n // this.lminfobuilderserice\n }\n\n private modifyFormConfiguration(businessClass: string, formName: string) {\n const resourceKeys = [10, businessClass, formName, ];\n this.runModifyConfiguration(this.getModifyFormResource(resourceKeys));\n }\n\n private createListConfiguration(businessClass: string, listName: string) {\n const formResource = new FormResource({\n formName : 'CreateConfigurationForm',\n busClassName : 'UserList'\n });\n const actionSpec: LMActionSpec = {\n type: 'CREATE',\n name: 'CreateConfiguration',\n hasParameters: true\n };\n const businessViewFld: LMField = {\n value: businessClass\n };\n const nameFld: LMField = {\n value: listName\n };\n const dataView: LMDataView = {\n action: 'CreateConfiguration',\n busClassName: 'UserList',\n fields: { BusinessView: businessViewFld, List: nameFld }\n };\n this.runCreateConfiguration(formResource, actionSpec, dataView);\n }\n\n private modifyListConfiguration(businessClass: string, listName: string) {\n const resourceKeys = [9, businessClass, listName, ];\n this.runModifyConfiguration(this.getModifyFormResource(resourceKeys));\n }\n\n private createPageConfiguration(pageName: string) {\n const formResource = new FormResource({\n formName : 'CreateConfigurationForm',\n busClassName : 'UserPage'\n });\n const actionSpec: LMActionSpec = {\n type: 'CREATE',\n name: 'CreateConfiguration',\n hasParameters: true\n };\n const nameFld: LMField = {\n value: pageName\n };\n const dataView: LMDataView = {\n action: 'CreateConfiguration',\n busClassName: 'UserPage',\n fields: { Page: nameFld }\n };\n this.runCreateConfiguration(formResource, actionSpec, dataView);\n }\n\n private modifyPageConfiguration(businessClass: string, pageName: string) {\n const resourceKeys = [12, '', pageName, ];\n this.runModifyConfiguration(this.getModifyFormResource(resourceKeys));\n }\n\n private createCardViewConfiguration(businessClass: string, cardName: string) {\n const formResource = new FormResource({\n formName : 'CreateConfigurationForm',\n busClassName : 'UserCardView'\n });\n const actionSpec: LMActionSpec = {\n type: 'CREATE',\n name: 'CreateConfiguration',\n hasParameters: true\n };\n const businessViewFld: LMField = {\n value: businessClass\n };\n const nameFld: LMField = {\n value: cardName\n };\n const dataView: LMDataView = {\n action: 'CreateConfiguration',\n busClassName: 'UserCardView',\n fields: { BusinessView: businessViewFld, Card: nameFld }\n };\n this.runCreateConfiguration(formResource, actionSpec, dataView);\n }\n\n private modifyCardViewConfiguration(businessClass: string, listName: string) {\n const resourceKeys = [18, businessClass, listName, ];\n this.runModifyConfiguration(this.getModifyFormResource(resourceKeys));\n }\n\n private createMenuConfiguration(menuName: string) {\n const formResource = new FormResource({\n formName : 'CreateConfigurationForm',\n busClassName : 'UserMenu'\n });\n const actionSpec: LMActionSpec = {\n type: 'CREATE',\n name: 'CreateConfiguration',\n hasParameters: true\n };\n const nameFld: LMField = {\n value: menuName\n };\n const dataView: LMDataView = {\n action: 'CreateConfiguration',\n busClassName: 'UserMenu',\n fields: { Menu: nameFld }\n };\n this.runCreateConfiguration(formResource, actionSpec, dataView);\n }\n\n private modifyMenuConfiguration(nemuName: string) {\n const resourceKeys = [11, '', nemuName, ];\n this.runModifyConfiguration(this.getModifyFormResource(resourceKeys));\n }\n\n private runCreateConfiguration(formResource: FormResource, actionSpec: LMActionSpec, dataView: LMDataView) {\n const url = this.lmUrlUtilService.buildUrl({resource: formResource, webApp: 'ConfigurationConsole'});\n const actionRequest: LMActionRequest = {\n dataView,\n actionSpec\n };\n const args = {\n url,\n actionRequestArray: [actionRequest]\n };\n this.lmActionService.makeExecute(args).subscribe((response: any) => {\n if (response.status !== undefined) {\n if (this.alreadyExists(response[0]) || this.nameAlreadyInUse(response[0])) {\n // If it already exist attempt to launch modify.\n this.viewConfiguration (this.infoCache, this.busNameCache, this.nameCache);\n }\n\n } else {\n const result: LMActionResult = response[ 0 ];\n if (result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl, undefined, { openNewTab: true });\n } else if (result.status === 'VIEW_EXCEPTION') {\n if (this.alreadyExists(response[0]) || this.nameAlreadyInUse(response[0])) {\n // If it already exist attempt to launch modify.\n this.viewConfiguration (this.infoCache, this.busNameCache, this.nameCache);\n }\n }\n }\n },\n (error: any) => throwError(error || 'Unable to open Configuration Console'));\n }\n\n private runModifyConfiguration(formResource: FormResource) {\n const url = this.lmUrlUtilService.buildUrl({resource: formResource, webApp: 'ConfigurationConsole'});\n this.lmUrlUtilService.openExternalUrl(url);\n this.closeDialog();\n }\n\n private getModifyFormResource(resourceKeys: any): FormResource {\n return new FormResource({\n formName : 'ConsoleDetailForm',\n busClassName : 'ConfigEntity',\n viewKeyName : 'ByEntityType',\n keyValueArray: resourceKeys\n });\n }\n\n private alreadyExists(response: any): boolean {\n return (response && response.details && response.details.indexOf(this.ALREADY_EXIST_EXCEPTION) >= 0);\n }\n\n private nameAlreadyInUse(response: any): boolean {\n return (response && response.details && response.details.indexOf(this.ALREADY_IN_USE) >= 0);\n }\n\n public runViewBaseLpl(info: LMComponentInfo, busName: string, name: string) {\n let resourceKeys: any = [\"\"];\n let busClassName: string = \"\";\n\n switch (info.componentType) {\n case 'FORM':\n case 'CONTEXT_FORM':\n busClassName = \"BusinessForm\";\n resourceKeys = [busName, name];\n break;\n case 'LIST':\n busClassName = \"BusinessList\";\n resourceKeys = [busName, name];\n break;\n case 'PAGE':\n busClassName = \"BusinessPage\";\n resourceKeys = [name];\n break;\n case 'MENU':\n busClassName = \"BusinessMenu\";\n resourceKeys = [name];\n break;\n case 'CARDVIEW':\n busClassName = \"BusinessCardView\";\n resourceKeys = [busName, name];\n break;\n }\n\n const formResource: FormResource = new FormResource({\n formName : 'LPLViewerForm',\n busClassName : busClassName,\n keyValueArray: resourceKeys\n });\n\n const url = this.lmUrlUtilService.buildUrl({resource: formResource, webApp: 'ConfigurationConsole'});\n this.lmUrlUtilService.openExternalUrl(url);\n this.closeDialog();\n }\n\n public runViewBusinessLogic(info: LMComponentInfo, busName: string, name: string) {\n const resourceKeys = [busName];\n\n const formResource: FormResource = new FormResource({\n formName : 'LPLViewerForm',\n busClassName : 'BusinessView',\n keyValueArray: resourceKeys\n });\n\n const url = this.lmUrlUtilService.buildUrl({resource: formResource, webApp: 'ConfigurationConsole'});\n this.lmUrlUtilService.openExternalUrl(url);\n this.closeDialog();\n }\n\n\n}\n","\n
\n

\n {{'PageInfoText' | translate}}\n \n {{'ClickHere' | translate}}\n \n

\n

\n\n

{{'BusinessClass' | translate}} {{info.busClassName}}

\n

{{'Module' | translate}} {{info.module}}

\n\n
\n {{'CardViewInfo' | translate}}\n

\n {{'CardViewName' | translate}} {{info.cardviewSpec.id}}\n

\n \n
\n\n
\n {{'FormPanelInfo' | translate}}\n

\n {{'PanelFormName' |translate}} {{info.panelSpec.formName}}\n

\n \n
\n\n
\n {{'ContextFormInfo' | translate }}\n

\n {{'ContextFormName' | translate}} {{info.contextFormSpec.name}}\n

\n

\n {{'IsConfigured' | translate}}\n

\n \n \n \n
\n\n
\n {{'ParentCompInformation' | translate: upperCase(info.componentType)}}\n
\n\n
\n {{'CompInformation'| translate: upperCase(info.componentType)}}\n
\n \n\n\n

{{'CompName' | translate: upperCase(info.componentType)}} {{info.name}}\n \n {{'Open' | translate}}\n {{'Open' | translate}}\n \n

\n

{{'FormName' | translate}} {{info.formName}}

\n\n\n

{{'PageTitle' | translate}} {{info.pageTitle}}

\n

{{'FieldSize' | translate}} {{info.fieldSize}}

\n

{{'FieldType' | translate}} {{info.type}}

\n

{{'ParentLink' | translate}} {{info.parentLink}}

\n
\n

{{'StateValues' | translate}}

\n
\n
\n
 {{info.stateValues}} 
\n
\n
\n
\n\n

{{'ChartName' | translate}} {{info.chartName}}

\n \n

{{'ResourceType' | translate}} {{info.resourceType}}

\n\n \n\n \n\n
\n {{'Menu' | translate}}\n

{{'IdLabel' | translate}} {{info.id}}

\n

{{'MenuLabel' | translate}} {{info.label}}

\n

{{'MenuLink' | translate}} {{info.link}}

\n

{{'MenuIndex' | translate}} {{info.menuIndex}}

\n

{{'Parent' | translate}} {{info.parent}}

\n

{{'ParentLabel' | translate}} {{info.parentLabel}}

\n

{{'MenuTarget' | translate}} {{info.target}}

\n
\n \n\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n \n\n \n

{{'DebuggerSoon' | translate}}

\n
\n\n \n

{{'ComponentType' | translate}} {{info.componentType | capitalize}}

\n

{{'ViewType' | translate}} {{info.type}}

\n

{{'PanelId' | translate}} {{info.panelSpec.panelId}}

\n

{{'DisplayType' | translate}} {{info.displayType}}

\n

{{'FromListResourceId' | translate}} {{info.fromListResourceId}}

\n

{{info.componentType | capitalize}} {{'Status' | translate}} {{info.status}}

\n

0\">{{'ConfigStamp' | translate}} {{compInfo.configInfo.configStamp}}

\n

0\">{{'ClassConfigStamp' | translate}} {{compInfo.configInfo.classConfigStamp}}

\n

{{'PanelNavigation' | translate}} {{info.panelNavigation}}

\n

{{'IsWizard' | translate}} {{info.isWizard}}

\n
\n

{{'SpecField' | translate}}

\n
\n
\n
 {{info.specField}} 
\n
\n
\n
\n
\n

{{'Layout' | translate}}

\n
\n
\n
 {{info.fieldLayout}} 
\n
\n
\n
\n
\n {{'FormUrl' | translate}}\n \n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n \n\n
{{info.formRequestUrl}}
\n
\n
\n {{'FirstPage' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.firstPageUrl}}
\n
\n
\n {{'NextPage' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.nextPageUrl}}
\n
\n
\n {{'PreviousPage' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.previousPageUrl}}
\n
\n
\n {{'LastPage' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.lastPageUrl}}
\n
\n
\n {{'ReloadPage' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.reloadPageUrl}}
\n
\n\n
\n {{'NextRecord' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.nextRecordUrl}}
\n
\n
\n {{'PreviousRecord' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.previousRecordUrl}}
\n
\n
\n {{'ReloadRecord' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.reloadRecordUrl}}
\n
\n \n
\n {{'UrlLoadedToIframe' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.loadedUrl}}
\n
\n
\n {{'UrlPassedToComponent' | translate}}\n {{'Open' | translate}}|\n {{'ShowHideUrl' | translate}}\n
{{info.inputUrl}}
\n
\n
\n

{{'PageSpec' | translate}}

\n
\n
\n
 {{info.pageSpec}} 
\n
\n
\n
\n

{{'HasPanels' | translate}} {{info.hasPanels}}

\n
\n

{{'TabOptions' | translate}}

\n
\n
\n
 {{info.lmTabsOptions}} 
\n
\n
\n
\n

{{'OverrideListTitle' | translate}} {{info.overrideListTitle}}

\n

{{'HideTitleBar' | translate}} {{info.hideTitleBar}}

\n

{{'ToolbarButtons' | translate}} {{info.toolbarButtons}}

\n

{{'BottomSpacing' | translate}} {{info.bottomSpacing}}

\n

{{'AdjustFrameToWindow' | translate}} {{info.adjustFrameToWindow}}

\n

{{'IsDashboardPanel' | translate}} {{info.isDashboardPanel}}

\n

{{'fieldManualRep' | translate}} {{info.fieldManualRep}}

\n

{{'UniqueId' | translate}} {{info.uniqueId}}

\n

{{'ShowLoading' | translate}} {{info.showLoading}}

\n

{{'ManualRepFields' | translate}} {{info.manualRepFields}}

\n

{{'HtmlFragment' | translate}} {{info.isHtmlFragment}}

\n \n\n
\n\n\n

{{'ResourceObject' | translate}} {{resourceInfo.resourceObject}}

\n

{{'ResourceKey' | translate}} {{resourceInfo.resourceKey}}

\n

{{'ResourceValue' | translate}}{{resourceInfo.resourceValue}}

\n
\n\n\n
\n

LPL

\n
\n
\n
 {{lpl}} 
\n
\n
\n
\n
\n\n\n
\n

\n {{'IsPersonalized' | translate}}\n

\n

\n\n {{'IsConfigured' | translate}}\n \n {{'ViewConfiguration' | translate}}\n \n

\n\n

\n\n {{'NoConfigurationInfo' | translate}}\n {{'NoConfigurationInfo' | translate}}\n \n {{'CreateConfiguration' | translate}}\n \n

\n\n

\n {{'ViewDelivered' | translate}}\n \n {{'UI' | translate}}\n \n |\n {{'BusinessClass' | translate}}\n \n \n

\n\n

{{'PersonalizeTabs' | translate}} {{compInfo.configInfo.personalizeTabs}}

\n

{{'Folder' | translate}} {{compInfo.configInfo.folder}}

\n

{{'UserList' | translate} {{compInfo.configInfo.userlist}}

\n\n
\n
","export * from './lm-view-more.component';\n","import { Component, AfterViewInit } from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\n\n@Component({\n selector: 'lm-view-more',\n templateUrl: 'lm-view-more.component.html',\n styleUrls: [ 'lm-view-more.component.scss' ],\n})\n\nexport class LMViewMoreComponent implements AfterViewInit {\n public viewMore: String = Soho.Locale.translate('ViewMore');\n\n constructor(\n public lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService,\n public lmContextUtilService: LMContextUtilService) {\n }\n\n ngAfterViewInit() {\n // setTimeout(() => {\n // this.viewMore = Soho.Locale.translate('ViewMore');\n // }, 50);\n }\n\n public onViewMoreLink(event) {\n const searchString = 'nav='; let url = ' ';\n let tempUrl = '';\n if (document.baseURI) {\n tempUrl = document.baseURI;\n } else {\n tempUrl = document.URL;\n }\n\n const index = tempUrl.indexOf(searchString);\n\n if (index > 0) {\n url = decodeURIComponent(tempUrl.substring(index + searchString.length));\n let targetUrlResourceType = ''; let targetUrlResourceId = ''; let targetUrlParams = '';\n const vars = url.split('&');\n\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n\n if (pair[0] === 'targetUrlResourceType') {\n targetUrlResourceType = pair[1];\n } else if (pair[0] === 'targetUrlResourceId') {\n targetUrlResourceId = pair[1];\n } else if (pair[0] === 'targetUrlParams') {\n targetUrlParams = pair[1];\n }\n }\n\n if (targetUrlResourceType !== '' && targetUrlResourceId !== '') { // navigating to a list or form.\n url = this.lmUrlUtilService.getBaseUrl();\n url += '/' + targetUrlResourceType + '/' + targetUrlResourceId;\n\n if (targetUrlParams !== '') {\n url += '?relation=' + targetUrlParams;\n }\n } else {\n const protocol = url.substring(0, 4); // checking for absolute or relative url\n\n if (protocol !== 'http') {\n const context = this.lmContextService.getContext();\n const relativeUrl = url;\n url = location.protocol + '//' + location.host + '/' + context.urlPdlOrDa;\n\n if (relativeUrl.substring(0, 1) === '/') {\n url += relativeUrl;\n } else {\n url += '/' + relativeUrl;\n }\n }\n }\n\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n } else {\n url = tempUrl;\n }\n\n const res = url.replace('mw=true', 'mw=false');\n\n this.lmContextUtilService.sendDrillbackMessage(res);\n }\n}\n","","export * from './lm-dashboard-panel-form.component';\nexport * from './lm-dashboard-panel-form-template.component';\nexport * from './lm-dashboard-panel-list.component';\nexport * from './lm-dashboard-view.component';\nexport * from './lm-dashboard-panel-card.component';\nexport * from './lm-dashboard-panel-url.component';\n","import {Directive, Input, QueryList, ViewChild, ViewChildren} from '@angular/core';\nimport {SohoHomePageComponent} from 'ids-enterprise-ng';\nimport {Observable, Observer, of} from 'rxjs';\nimport {LMThemeService} from '@banner/lm-theme.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Directive()\nexport abstract class LMDashboardPanelBaseComponent {\n\n /**\n * The number of columns the card should layout into (given available space).\n */\n @Input() columns: number;\n @Input() set fromDataView(dataView: LMDataView) {};\n\n @ViewChild(SohoHomePageComponent) sohoHomepageComponent: SohoHomePageComponent;\n @ViewChildren (LMDashboardPanelBaseComponent) lmDashboardPanelComponentList: QueryList;\n\n constructor(protected lmThemeService: LMThemeService) {}\n\n isModified(): boolean {\n return false;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return of(true)\n }\n\n save(callBack: Observer) {\n callBack.next(true);\n callBack.complete();\n }\n\n abstract saveDashboardPanelState(): void;\n abstract clearDashboardPanelState(): void;\n}\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMDashboardPanelBaseComponent } from './lm-dashboard-panel-base.component';\nimport { lmCardViewFormatter } from '@list/formatters/lm-card-view.formatter';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMListCardService } from '@list/services/lm-list-card.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUrlUtilService } from '@services/utils';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-dashboard-panel-card',\n templateUrl: './lm-dashboard-panel-card.component.html',\n styleUrls: [ './lm-dashboard-panel-card.scss' ]\n})\n\nexport class LMDashboardPanelCardComponent extends LMDashboardPanelBaseComponent implements OnInit {\n @HostBinding('attr.id') public id;\n @HostBinding('attr.data-automation-id') public automationId;\n\n @Input() panel: LandmarkPanel;\n // @Input() set panel(panel) {\n // this._panel = panel;\n // this.build();\n // };\n //\n // get panel(): LandmarkPanel {\n // return this._panel;\n // }\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView) {\n this._dataView = dataView;\n this.build();\n };\n\n @Output() uiLinkEvent = new EventEmitter();\n\n public columnInfo: string;\n public overNavigationLink: string;\n public hasOverviewNavigation: boolean;\n public displayLinkAsText: boolean;\n\n private _dataView: LMDataView;\n public isInAccessibilityMode: boolean;\n // private _panel: LandmarkPanel;\n\n constructor(\n private lmFormatterService: LMFormatterService,\n private lmListCardService: LMListCardService,\n private lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n saveDashboardPanelState(): void {}\n\n clearDashboardPanelState(): void {}\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.build();\n\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n this.automationId = `lm-${this.panel.automationId}-dashboardpanel`;\n\n if (this.panel.overviewNavigation) {\n this.hasOverviewNavigation = true;\n if (this.panel.overviewNavigation.label) {\n this.displayLinkAsText = true;\n }\n }\n }\n\n build() {\n if (this.panel && this._dataView) {\n this.columnInfo = this.LMCardViewFormatter(0, 0, 0, { displayField: this.panel.displayFields[ 0 ] }, this._dataView, null);\n if (this.panel.overviewNavigation && this.panel.overviewNavigation.label) {\n this.overViewNavigationLabel();\n }\n }\n }\n\n overViewNavigationLabel() {\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(this.panel.overviewNavigation.label, dataView);\n }\n\n LMCardViewFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string => lmCardViewFormatter.format(this.lmFormatterService, this.lmListCardService, this.lmUrlUtilService, row, cell, value, columnDef, dataView, dataGrid, 'lm-dashboard-card-container');\n\n onNavigationClick(event, displayField?: LMListDisplayField) {\n let df: LMListDisplayField;\n\n if (displayField === undefined) {\n df = {\n columnId: '',\n fieldId: '',\n type: '',\n navigation: this.panel.overviewNavigation.name\n };\n } else {\n df = displayField;\n }\n\n const uiLink: LMUILinkEvent = {\n columnDef: { displayField: df },\n dataView: this._dataView,\n event,\n options: { fromDashboard: true }\n };\n\n this.uiLinkEvent.emit(uiLink);\n }\n\n onWidgetContentClick(event) {\n if (event && event.target.nodeName === 'A' && event.target.dataset.displayfield !== undefined) {\n this.onNavigationClick(event, JSON.parse(event.target.dataset.displayfield));\n }\n }\n}\n","
\n\n
\n

{{panel.title}}

\n\n \n
\n\n
\n
\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { LMDashboardPanelBaseComponent } from './lm-dashboard-panel-base.component';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport * as urltemplate from 'url-template';\nimport { LMTextEvent } from '@field/text';\nimport { LMButtonType, LMGlobalUtilService } from '@utils/index';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { DocumentResource } from '@resources/document.resource';\nimport { LMFormContentTemplateComponent } from '@form/lm-form-content-template.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\n\n@Component({\n selector: 'lm-dashboard-panel-form-template',\n templateUrl: './lm-dashboard-panel-form-template.component.html',\n styleUrls: [ 'lm-dashboard-panel-form.component.scss' ]\n})\n\nexport class LMDashboardPanelFormTemplateComponent extends LMDashboardPanelBaseComponent implements OnInit {\n @ViewChild('LMFormContentTemplateComponent') lmFormTemplateComponent: LMFormContentTemplateComponent;\n @HostBinding('attr.data-automation-id') public automationId;\n\n @Output() componentDisplayed = new EventEmitter();\n\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() messageRuleView: LMDataView;\n\n @Input() set panel(panel) {\n this._panel = panel;\n this.build();\n };\n\n get panel(): LandmarkPanel {\n return this._panel;\n }\n\n @Input() set fromDataView(dataView) {\n this._dataView = dataView;\n this.build();\n };\n\n get fromDataView() {\n return this._dataView;\n }\n\n public formSpec: LMFormSpec;\n public initDataView: LMDataView = null;\n private _dataView: LMDataView;\n private _panel: LandmarkPanel;\n\n public formUrlInfo: LMFormUrlInfo;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n\n constructor(\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmNavigationService: LMNavigationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n protected lmThemeService: LMThemeService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.automationId = `lm-${this.panel.automationId}-dashboardpanel`;\n }\n\n saveDashboardPanelState(): void { }\n\n clearDashboardPanelState(): void { }\n\n public onNavigationClick(): void {\n const navName = this.panel.overviewNavigation ? this.panel.overviewNavigation.name : this.panel.busFormPanel.overviewNavigation.name;\n this.runOverviewNavigation(navName);\n }\n\n onFieldEvent(event: LMFieldEvent): void {\n if ('TextLinkEvent' === event.eventType) {\n const linkEvent: LMTextEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n } else if (linkEvent.layoutObject.type === LMButtonType.NAVIGATION) {\n this.runNavigation(linkEvent.layoutObject.navigation, linkEvent.layoutObject.showAsPdf);\n } else if (linkEvent.layoutObject.type === LMButtonType.VIEWDOCUMENT) {\n this.openDocumentResource(linkEvent.layoutObject.resourceId);\n }\n }\n }\n\n build() {\n if (this._panel && this._dataView) {\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this._panel.formSpec);\n\n if (this._panel.overviewNavigation || (this._panel.busFormPanel && this._panel.busFormPanel.overviewNavigation)) {\n this.hasOverviewNavigation = true;\n if ((this._panel.overviewNavigation && this._panel.overviewNavigation.label) || (this._panel.busFormPanel.overviewNavigation && this._panel.busFormPanel.overviewNavigation.label)) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n }\n }\n\n overViewNavigationLabel() {\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this._panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n }\n\n onFormRendered() {\n this.componentDisplayed.emit({ panel: this.panel });\n }\n\n private runNavigation(navigation: string, showAsPdf: boolean) {\n const dataView = this.fromDataView;\n\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: dataView.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf });\n }\n\n private runOverviewNavigation(navigationName: string): void {\n const dataView = this.fromDataView;\n\n const compiledUrlTemplate = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n\n private buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n const dataView = this.fromDataView;\n\n const option: string = (link.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(link.httpUrl, dataView);\n\n if (url) {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n }\n\n private openDocumentResource(resourceId: string): void {\n const dataView = this.fromDataView;\n const documentResource = new DocumentResource({ resourceId, dataView }, '');\n const url: string = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n this.lmGlobalUtilService.navigate(url, null, 'external');\n }\n}\n","
\n
\n

{{panel.title}}

\n\n \n
\n\n
\n \n
\n\n
\n","import {\n AfterViewChecked,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n HostBinding\n} from '@angular/core';\nimport { LMDashboardPanelBaseComponent } from './lm-dashboard-panel-base.component';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport * as urltemplate from 'url-template';\nimport { LMTextEvent } from '@field/text';\nimport { AppConstants, LMButtonType, LMGlobalUtilService } from '@utils/index';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { DocumentResource } from '@resources/document.resource';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { KeyedResource } from '@app/resources';\n\n@Component({\n selector: 'lm-dashboard-panel-form',\n templateUrl: './lm-dashboard-panel-form.component.html',\n styleUrls: [ 'lm-dashboard-panel-form.component.scss' ]\n})\n\nexport class LMDashboardPanelFormComponent extends LMDashboardPanelBaseComponent implements AfterViewChecked, OnInit {\n @HostBinding('attr.id') public id;\n @HostBinding('attr.data-automation-id') public automationId;\n\n @ViewChild(forwardRef(() => 'LMFormComponent')) lmFormComponent; // : LMFormComponent;\n\n @Output() componentDisplayed = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() panel: LandmarkPanel;\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView: LMDataView) {\n this._fromDataView = dataView;\n this._fromDataViewChanged = true;\n };\n\n get fromDataView() {\n return this._fromDataView;\n }\n\n private _fromDataView: LMDataView;\n private _fromDataViewChanged: boolean;\n\n public initDataView: LMDataView = null;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n public isInAccessibilityMode: boolean;\n\n constructor(\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmNavigationService: LMNavigationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n protected lmThemeService: LMThemeService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n this.automationId = `lm-${this.panel.automationId}-dashboardpanel`;\n\n if (this.panel.type === 'menuPanel') {\n const menuPanelFormId = this.buildMenuPanelFormId();\n this.panel.formSpec = {\n formElementId: menuPanelFormId,\n busFormSpec: this.buildBusFormSpec(this.panel),\n busClassSpec: this.buildBusClassSpec(),\n resourceId: menuPanelFormId\n };\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.panel.formSpec);\n this.initDataView = this.fromDataView;\n } else if (this.panel.formSpec.dependentForm || this.panel.formSpec.independentForm) {\n // ------------------------------------------------------------------------------\n // if panel.formSpec is dependent then override main forms formUrlInfo that is\n // passed into this component.\n // ------------------------------------------------------------------------------\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.panel.formSpec);\n }\n\n // --------------------------------------------------------------------------------\n // use the formUrlInfo object passed in. this.formUrlInfo is the main form\n // formUrlInfo object as should be used for form panels that have a dashboard-view\n // with this lm-dashboard-panel-form.\n // Exception to this are menu panels (only allowed on pages), dependent\n // (aka related) panels, and independent form panels.\n // --------------------------------------------------------------------------------\n if (!this.formUrlInfo) {\n console.error('formUrlInfo is null for this lm-dashboard-panel-form');\n }\n\n this.build();\n }\n\n ngAfterViewChecked() {\n if (this._fromDataViewChanged) {\n this._fromDataViewChanged = false;\n this.build();\n }\n }\n\n saveDashboardPanelState(): void {\n if (this.lmFormComponent) {\n this.lmFormComponent.saveComponentState(true);\n }\n }\n\n clearDashboardPanelState(): void {\n if (this.lmFormComponent) {\n this.lmFormComponent.clearComponentState(true);\n }\n }\n\n onNavigationClick(): void {\n if (this.lmFormComponent) {\n const navName = this.panel.overviewNavigation ? this.panel.overviewNavigation.name : this.panel.busFormPanel.overviewNavigation.name;\n this.runOverviewNavigation(navName);\n }\n }\n\n onFieldEvent(event: LMFieldEvent): void {\n if ('TextLinkEvent' === event.eventType) {\n let linkEvent: LMTextEvent;\n linkEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n } else if (linkEvent.layoutObject.type === LMButtonType.NAVIGATION) {\n this.runNavigation(linkEvent.layoutObject.navigation, linkEvent.layoutObject.showAsPdf);\n } else if (linkEvent.layoutObject.type === LMButtonType.VIEWDOCUMENT) {\n this.openDocumentResource(linkEvent.layoutObject.resourceId);\n } else if (linkEvent.layoutObject.type === LMButtonType.REGISTRATION) {\n this.lmGlobalUtilService.navigateByUrl(linkEvent.layoutObject.registerLink);\n } else if (linkEvent.layoutObject.type === LMButtonType.SIGNIN) {\n this.lmGlobalUtilService.navigate(linkEvent.layoutObject.signInLink);\n } else if (linkEvent.layoutObject.type === LMButtonType.SIGNOUT) {\n this.lmGlobalUtilService.navigate(linkEvent.layoutObject.signOutLink);\n }\n } else {\n this.fieldEvent.emit(event);\n }\n }\n\n build() {\n if (this.panel\n && this._fromDataView\n && (this.panel.overviewNavigation || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation))) {\n\n this.hasOverviewNavigation = true;\n if ((this.panel.overviewNavigation && this.panel.overviewNavigation.label)\n || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation && this.panel.busFormPanel.overviewNavigation.label)\n ) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n }\n\n overViewNavigationLabel() {\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this.panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n }\n\n onFormRendered() {\n this.componentDisplayed.emit({ panel: this.panel });\n }\n\n private runNavigation(navigation: string, showAsPdf: boolean) {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: dataView.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf });\n }\n\n private runOverviewNavigation(navigationName: string): void {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n\n this.lmGlobalUtilService.navigateByUrl(url);\n\n }\n\n private buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const option: string = (link.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(link.httpUrl, dataView);\n\n if (url) {\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(url);\n } catch (e) {\n //noop\n }\n // copied from lm-navigation.component\n if (resource?.resourceType === 'navigation') {\n this.lmNavigationService.runNavigation(url, undefined, { openNewTab: link.openExternal });\n } else {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n }\n }\n\n private openDocumentResource(resourceId: string): void {\n let dataView: LMDataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n const documentResource = new DocumentResource({\n resourceId,\n dataView\n }, '');\n const url: string = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n this.lmGlobalUtilService.navigate(url, null, 'external');\n }\n\n buildBusFormSpec(args): LMBusFormSpec {\n\n const busFormLayoutSpec: LMBusFormLayoutSpec = {\n layout: args.layout\n };\n\n const messageRule: LMMessageRule = {\n resourceValue: '',\n };\n\n const busFormSpec: LMBusFormSpec = {\n busFormLayoutSpec,\n name: '',\n fields: {},\n title: messageRule,\n formType: 'Menu',\n effectiveDateField: {},\n effectiveDateFieldId: '',\n reasonCodeFieldId: '',\n actionCommentFieldId: '',\n effectiveThroughFieldId: '',\n correctionCommentFieldId: '',\n openActionRestricted: false,\n implementsDashBoardView: true,\n };\n return busFormSpec;\n }\n\n buildBusClassSpec(): LMBusClassSpec {\n\n const busClassSpec: LMBusClassSpec = {\n actions: [],\n actionSpec: {},\n implAuditing: false,\n implEffectiveDated: false,\n isBusClass: false,\n isBusTask: false,\n name: 'menuPanel',\n implementsOrgChartView: false,\n };\n return busClassSpec;\n }\n\n private buildMenuPanelFormId() {\n return this.lmUniqueIdService.uniqueId([ this.panel.id, 'MenuPanel' ]);\n }\n}\n","
\n\n
\n

{{panel.title}}

\n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n \n \n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, HostBinding } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMListComponent } from '@list/lm-list.component';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMDashboardPanelBaseComponent } from './lm-dashboard-panel-base.component';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable, Observer, of } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\n\nimport * as urltemplate from 'url-template';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMContextService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMRefreshRequest } from '@app/components';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-dashboard-panel-list',\n templateUrl: './lm-dashboard-panel-list.component.html',\n styleUrls: [ 'lm-dashboard-panel-list.component.scss' ]\n})\nexport class LMDashboardPanelListComponent extends LMDashboardPanelBaseComponent implements OnInit {\n @HostBinding('attr.id') public id;\n @HostBinding('attr.data-automation-id') public automationId;\n\n @ViewChild('LMListComponent', { static: true }) lmListComponent: LMListComponent;\n\n @Input() panel: LandmarkPanel;\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView) {\n this._showCreateAction = false;\n this._dataView = dataView;\n this.build();\n };\n\n get fromDataView(): LMDataView {\n return this._dataView;\n }\n\n @Output() componentDisplayed = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _defaultCreateAction: LMActionSpec;\n private _showCreateAction = false;\n private _dataView: LMDataView;\n\n public listUrlInfo: LMListUrlInfo;\n public createActionLabel: string;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n public showPagerInDashboard = false;\n public contentClasses = 'widget-content';\n public testVersion1: boolean;\n public isInAccessibilityMode: boolean;\n\n constructor(\n private lmActionService: LMActionService,\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.panel.listSpec.busListSpec.showAsSimpleList = true;\n this.panel.listSpec.busListSpec.selection = 'single';\n this.panel.listSpec.listType = 'dashboard';\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n this.automationId = `lm-${this.panel.automationId}-dashboardpanel`;\n\n if (this.panel.displayChart) {\n this.panel.listSpec.busListSpec.defaultChartName = this.panel.displayChart;\n }\n\n this.listUrlInfo = this.lmUrlUtilBuilderService.getListUrlInfoFromListSpec(this.panel.listSpec);\n\n if (this.createAction) {\n this._showCreateAction = true;\n }\n\n this.build();\n }\n\n saveDashboardPanelState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.saveComponentState(true);\n }\n }\n\n clearDashboardPanelState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.clearComponentState(true);\n }\n }\n\n isModified(): boolean {\n if (this.lmListComponent) {\n return this.lmListComponent.isModified();\n }\n return false;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n if (this.lmListComponent) {\n return this.lmListComponent.refresh(request);\n } else {\n return of(true);\n }\n }\n\n save(callBack: Observer) {\n if (this.lmListComponent && this.lmListComponent.isModified()) {\n this.lmListComponent.runSaveAction(AppConstants.STANDARD_SAVE, callBack);\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public get createAction() {\n return this._defaultCreateAction;\n }\n\n public get showCreateAction() {\n return this._showCreateAction;\n }\n\n build() {\n if (this.panel) {\n if (this.panel.overviewNavigation || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation)) {\n this.hasOverviewNavigation = true;\n if ((this.panel.overviewNavigation && this.panel.overviewNavigation.label)\n || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation && this.panel.busFormPanel.overviewNavigation.label)\n ) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n }\n this._setContentClasses();\n }\n\n overViewNavigationLabel() {\n // if (this.fromDataView) { // Assuming the dashboard panels in pages have no variables in message rule.\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this.panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n // }\n }\n\n onListDisplayed() {\n this.showPagerInDashboard = this.lmListComponent.showPagingBarInDashboardPanel();\n\n // this.hasListView = (this.lmListComponent.isCardViewOnly && this.lmListComponent.isDashBoardContent);\n // this.hasDataGrid = (!this.lmListComponent.isCardViewOnly && this.lmListComponent.isDashBoardContent);\n\n // todo sjw ppatton - This was in a time out since it would run before the chart component was rendered causing\n // todo sjw ppatton - an error in the console. Has that part now been fixed?\n const dataViewSet: LMDataViewSet = this.lmListComponent.getDataViewSet();\n if (dataViewSet) {\n if (this.lmListComponent.listSpec &&\n this.lmListComponent.listSpec.busListSpec &&\n !this.lmListComponent.listSpec.busListSpec.implementsCubeView) {\n\n const actions = this.lmListComponent.listSpec.busClassSpec.actions;\n const actionIndexes = dataViewSet.actionIndexes;\n this._defaultCreateAction = this.lmActionService.getDefaultCreateAction(actions, actionIndexes);\n\n if (this._defaultCreateAction) {\n this.createActionLabel = this._defaultCreateAction.label;\n this._showCreateAction = true;\n } else {\n this._showCreateAction = false;\n }\n }\n this.componentDisplayed.emit({ panel: this.panel });\n }\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n public onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n public onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n onCreateClicked() {\n this.lmListComponent.runCreateAction(this._defaultCreateAction);\n }\n\n // List navigation doesn't seem to be implemented yet?\n public onNavigationClick() {\n const navigation: LMOverviewNavigation = this.panel.overviewNavigation ? this.panel.overviewNavigation : this.panel.busFormPanel.overviewNavigation;\n this.runNavigation(navigation.name);\n }\n\n private runNavigation(navigationName: string): void {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmListComponent.getDataViewSet().header;\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.navigationUrl);\n let url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n\n if (this.lmListComponent.listSpec &&\n this.lmListComponent.listSpec.busListSpec &&\n this.lmListComponent.listSpec.busListSpec.implementsCubeView) {\n\n let delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n if (this.panel.overviewNavigation.overrideDimensionTree.length > 0) {\n url = url + delimiter + 'dimensionsOverride=' + this.panel.overviewNavigation.overrideDimensionTree.join(',');\n delimiter = '&';\n }\n if (this.panel.displayChart) {\n url = url + delimiter + 'chartName=' + this.panel.displayChart;\n }\n }\n\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n\n private _setContentClasses() {\n if (this.panel && this.panel.widgetHeight) {\n this.contentClasses += ' widget-height-' + this.panel.widgetHeight;\n }\n }\n}\n","\n\n
\n \n
\n

{{panel.title}}

\n\n
\n \n {{overNavigationLink}}\n \n
\n
\n \n
\n \n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, HostBinding } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { LMDashboardPanelBaseComponent } from './lm-dashboard-panel-base.component';\nimport { Observer } from 'rxjs';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-dashboard-panel-url',\n template: `\n
\n
\n {{title}}\n \n
\n\n
\n \n
\n
`\n ,\n styleUrls: [ './lm-dashboard-panel-url.scss' ],\n providers: [ LMFormService, LMFormManualRepService ]\n})\nexport class LMDashboardPanelUrlComponent extends LMDashboardPanelBaseComponent implements OnInit {\n @HostBinding('attr.id') public id;\n @HostBinding('attr.data-automation-id') public automationId;\n\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent: LMHtmlUrlDocComponent;\n\n @Input() panel: LandmarkPanel;\n\n // @Input() set panel(panel: LandmarkPanel) {\n // this._panel = panel;\n // this.title = panel.title;\n // this.setUrl();\n // if (this._panel.overviewNavigation) {\n // this.hasOverviewNavigation = true;\n // if (this._panel.overviewNavigation.label) {\n // this.overViewNavigationLabel();\n // }\n // }\n // }\n // get panel(): LandmarkPanel {\n // return this._panel;\n // }\n @Input() set messageRuleView(messageRuleView: LMDataView) {\n this._messageDataView = messageRuleView;\n this.setUrl();\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this.setUrl();\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n @Output() uiLinkEvent = new EventEmitter();\n @Output() landmarkCustomReady = new EventEmitter();\n\n public url: string = undefined;\n public title: string = undefined;\n public overNavigationLink: string;\n public hasOverviewNavigation: boolean;\n public displayLinkAsText: boolean;\n public testVersion1: boolean;\n public isInAccessibilityMode: boolean;\n\n private _messageDataView: LMDataView = null;\n private _fromDataView: LMDataView = null;\n\n constructor(\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n this.automationId = `lm-${this.panel.automationId}-dashboardpanel`;\n this.title = this.panel.title;\n\n this.setUrl();\n\n if (this.panel.overviewNavigation) {\n this.hasOverviewNavigation = true;\n if (this.panel.overviewNavigation.label) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n }\n\n overViewNavigationLabel() {\n const dataView = this.fromDataView ? this.fromDataView : this._messageDataView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(this.panel.overviewNavigation.label, dataView);\n }\n\n onNavigationClick(event: any): void {\n const displayField: LMListDisplayField = {\n columnId: '',\n fieldId: '',\n type: '',\n navigation: this.panel.overviewNavigation.name\n };\n const uiLink: LMUILinkEvent = {\n columnDef: { displayField },\n dataView: this._fromDataView,\n event,\n options: { fromDashboard: true }\n };\n\n this.uiLinkEvent.emit(uiLink);\n }\n\n onLandmarkCustomReady(event: any) {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n setUrl() {\n if (this.panel) {\n // We need to make sure we have data before calling the formatMessageRule method if we have values to set in a message rule.\n // We only set the url that triggers the template to render if we have both variables and data.\n const dataView = this._fromDataView ? this._fromDataView : this._messageDataView;\n // if ((typeof this.panel.url === 'string')\n // || (typeof this.panel.url !== 'string' && !this.panel.url.variables)\n // || (typeof this.panel.url !== 'string' && this.panel.url.variables.length === 0)\n // || (typeof this.panel.url !== 'string' && this.panel.url.variables.length > 0 && dataView)\n // ) {\n this.url = this.lmFormatUtilService.formatMessageRule(this.panel.url, dataView);\n // }\n }\n }\n\n onHtmlUrlDisplayed(event: any) {\n\n }\n\n saveDashboardPanelState(): void {\n // NOOP\n }\n\n clearDashboardPanelState(): void {\n // NOOP\n }\n\n saveDetailSectionState() {\n // noop\n }\n\n clearDetailSectionState() {\n // noop\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport {LMDashboardPanelBaseComponent} from '@dashboard/lm-dashboard-panel-base.component';\nimport {LandmarkPanel} from '@form/lm-form.model';\nimport {LMFormatterService} from '@list/formatters/lm-formatter.service';\nimport {LMListCardService} from '@list/services/lm-list-card.service';\nimport {LMModel} from '@form/model/lm-model';\nimport {LMWorker} from 'app/types/lm-worker';\nimport {forkJoin, Observable} from 'rxjs';\nimport {LMPanelTransactionEvent} from '@form/services/lm-form-panel.service';\nimport {SohoHomePageComponent} from 'ids-enterprise-ng';\nimport {LMDashboardPanelListComponent} from './lm-dashboard-panel-list.component';\nimport {LMRefreshRequest} from \"@app/components\";\n\nexport class LMDashboardPanelsSaveWorker extends LMWorker {\n private dashboardPanels: LMDashboardPanelBaseComponent[];\n\n constructor(dashboardPanels: LMDashboardPanelBaseComponent[]) {\n super();\n\n this.dashboardPanels = dashboardPanels;\n }\n\n protected has(i: number): boolean {\n return (i < this.dashboardPanels.length);\n }\n\n protected get(i: number): LMDashboardPanelBaseComponent {\n return this.dashboardPanels[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const dashboardPanel = this.dashboardPanels[ i ];\n if (dashboardPanel && dashboardPanel.isModified()) {\n dashboardPanel.save(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-dashboard-view',\n templateUrl: './lm-dashboard-view.component.html',\n styleUrls: ['./lm-dashboard-view.component.scss'],\n providers: [ LMFormatterService, LMListCardService ]\n})\nexport class LMDashboardViewComponent implements AfterViewChecked {\n\n /**\n * The formUrlInfo of the main form that uses this dashboard view.\n * This will nnot be used for lists with dashboard/detail sections.\n * Can likely be removed once the new spec-url refactor is complete\n * and solely in use.\n */\n @Input() formUrlInfo: LMFormUrlInfo;\n\n /**\n * The number of columns the card should layout into (given available space).\n */\n @Input() columns: 3 | 4 = 3;\n\n @Input() set dashboardPanels(panels: Array) { // used by list and form for detail sections and form tabs.\n this.m_dashboardPanels = panels;\n this.refreshPanels();\n }\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() set fromDataView(fromDataView: LMDataView) { // optional if used in a page panel\n this.m_fromDataView = fromDataView;\n this.refreshPanels();\n }\n @Input() set messageRuleView(messageRuleView: LMDataView) {\n this.m_messageRuleView = messageRuleView;\n }\n\n @Input() set panelVisibilityUpdateTimeStamp(timeStamp: number) {\n if (timeStamp !== this.m_panelVisibilityUpdateTimeStamp) {\n this.m_panelVisibilityUpdateTimeStamp = timeStamp;\n this.refreshPanels();\n }\n }\n\n @Input() displayedOnPagePanel: boolean;\n\n @Output() contentModified = new EventEmitter();\n @Output() uiLinkEvent = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n @Output() dashboardContentDisplayed = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n @ViewChildren(LMDashboardPanelBaseComponent) lmDashboardPanelComponentList: QueryList;\n @ViewChildren('dashboardPanel') lmDashboardPanels: QueryList;\n @ViewChild(SohoHomePageComponent) sohoHomepage: SohoHomePageComponent;\n\n private m_messageRuleView: LMDataView;\n private m_fromDataView: LMDataView;\n private m_dashboardPanels: Array;\n private m_panelVisibilityUpdateTimeStamp: number;\n private displayedDashboards = 0;\n private m_refreshPanels = false;\n\n constructor(private elementRef: ElementRef) {}\n\n get fromDataView(): LMDataView {\n return this.m_fromDataView;\n }\n\n get messageRuleView(): LMDataView {\n return this.m_messageRuleView;\n }\n\n // todo might be nice to update the dashboard panels less often by using either a Pipe or another\n // method to update then when the fromDataViewChanges.\n get dashboardPanels(): Array {\n return this.m_dashboardPanels.filter(panel => panel.isVisible && !panel.hidden && panel.isValid);\n }\n\n ngAfterViewChecked(): void {\n if (this.m_refreshPanels && this.sohoHomepage && this.hasFinishedRendering()) {\n this.m_refreshPanels = false;\n\n this.refreshHomepage(false);\n }\n }\n\n private hasFinishedRendering(): boolean {\n return this.dashboardPanels.length === this.elementRef.nativeElement.getElementsByClassName('widget').length;\n }\n\n isModified(): boolean {\n return this.lmDashboardPanels.some(dashboardPanel => dashboardPanel.isModified());\n }\n\n private getDashboardPanelToRefresh(excludedList?: string): LMDashboardPanelBaseComponent[] {\n if (!excludedList) {\n return this.lmDashboardPanels.toArray();\n }\n\n const dashboardPanels: LMDashboardPanelBaseComponent[] = [];\n this.lmDashboardPanels.forEach(dashBoardComponent => {\n\n if (dashBoardComponent instanceof LMDashboardPanelListComponent) {\n const dashBoardList = dashBoardComponent;\n if (dashBoardList.lmListComponent.listId !== excludedList) {\n dashboardPanels.push(dashBoardComponent);\n }\n } else {\n dashboardPanels.push(dashBoardComponent);\n }\n });\n\n return dashboardPanels;\n }\n\n private includeInRefresh(dashboardComponent: LMDashboardPanelBaseComponent, request?: LMRefreshRequest): boolean {\n if (dashboardComponent instanceof LMDashboardPanelListComponent) {\n const dashBoardList = dashboardComponent;\n return dashBoardList.lmListComponent.listId !== request?.originatingSourceId;\n } else {\n return true;\n }\n }\n\n refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n const refreshCalls: Observable[] = this.lmDashboardPanels.toArray()\n .filter(dashboardComponent => this.includeInRefresh(dashboardComponent, request))\n .map((dashboardComponent: LMDashboardPanelBaseComponent) => dashboardComponent.refresh());\n // console.log('dashboardView to be refresh:' + refreshCalls.length);\n\n forkJoin(refreshCalls).subscribe(value => {\n // console.log('dashboardView to be forkJoin:');\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n public refreshPanels() {\n this.m_refreshPanels = true;\n }\n\n runSaveAction(): Observable {\n const dashboardPanels: LMDashboardPanelBaseComponent[] = this.lmDashboardPanels.toArray();\n\n return new Observable(observer => {\n this.runSavePanels(dashboardPanels).subscribe(\n (continueOn: boolean) => {\n observer.next(true);\n observer.complete();\n },\n (err => {\n observer.next(false);\n observer.complete();\n }));\n });\n }\n\n saveDashboardViewState() {\n this.lmDashboardPanelComponentList.forEach(dashboardComponent => dashboardComponent.saveDashboardPanelState());\n }\n\n clearDashboardViewState() {\n this.lmDashboardPanelComponentList.forEach(dashboardComponent => dashboardComponent.clearDashboardPanelState());\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onUILinkEvent(event) {\n this.uiLinkEvent.emit(event);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.fieldEvent.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n onComponentDisplayed() {\n this.displayedDashboards = this.displayedDashboards + 1;\n if (this.displayedDashboards === this.dashboardPanels.length) {\n this.dashboardContentDisplayed.emit();\n }\n }\n\n runSavePanels(dashboardPanels: LMDashboardPanelBaseComponent[]): Observable {\n const saveWorker: LMDashboardPanelsSaveWorker = new LMDashboardPanelsSaveWorker(dashboardPanels);\n return saveWorker.start();\n }\n\n public refreshHomepage(animate = false) {\n if (this.sohoHomepage) {\n this.sohoHomepage.refresh(animate);\n }\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n}\n","
\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
\n","export * from './lm-access-denied-error.component';\nexport * from './lm-view-exception-details.component';\n","import { Component, forwardRef, Inject, OnInit } from '@angular/core';\nimport { LMAccessibleWebAppService } from '@services/lm-web-app-access.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMContextService } from '@services/lm-context.service';\n\n@Component({\n selector: 'lm-access-denied-error',\n templateUrl: './lm-access-denied-error.html',\n styleUrls: [ 'lm-access-denied-error.scss' ]\n})\n\nexport class AccessDeniedErrorComponent implements OnInit {\n\n availableApps: Array;\n signOutUrl: string;\n signOutString: string;\n message: string;\n title: string;\n lmErrorUtilService: LMErrorUtilService;\n\n constructor(\n private lmAccessibleWebAppService: LMAccessibleWebAppService,\n private lmContextService: LMContextService,\n @Inject(forwardRef(() => LMErrorUtilService)) lmErrorUtilService, // LMErrorUtilService\n private lmLoggerService: LMLoggerService\n ) {\n this.lmErrorUtilService = lmErrorUtilService as LMErrorUtilService\n }\n\n ngOnInit() {\n this.lmAccessibleWebAppService.getAccessDenied().subscribe(\n (response: any) => {\n this.lmLoggerService.trace([ this, 'getAccessibleApps completed', 'apps: ' + response ]);\n this.title = response.noAccessString;\n this.message = response.accessibleWebAppString;\n this.signOutString = response.signOutString;\n this.availableApps = response.accessibleWebApps;\n this.signOutUrl = response.signOutUrl;\n },\n (error: any) => {\n const error2: LMError = {message: error.message, status: error.status, details: error.stack};\n this.lmErrorUtilService.handleUnexpectedError(error2);\n });\n }\n\n public get accessibleApps(): any {\n return this.availableApps;\n }\n\n // tslint:disable-next-line - method not used\n public navigateToApp(webApp: any): void {\n let url = webApp.webAppUrl;\n if (this.lmContextService.inMingleInbox()) {\n // Switch the web app name in the current url\n url = window.location.href;\n url = url.replace(this.lmContextService.getContext().webApp, webApp.webAppName);\n }\n // if navigating to a new app we must update our context with the new app and data area.\n this.lmContextService.getContext().webAppTitle = webApp.webAppTitle;\n this.lmContextService.getContext().webApp = webApp.webAppName;\n\n this.lmErrorUtilService.accessDeniedError$.next(true);\n\n // need to reload page to make sure context and menu is populated correctly\n\n window.location.href = url;\n }\n}\n","{{message}}\n","import { Component, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'lm-view-exception-details',\n templateUrl: './lm-view-exception-details.component.html',\n styleUrls: [ 'lm-view-exception-details.component.scss' ]\n})\n\nexport class LMViewExceptionDetailsComponent implements AfterViewInit {\n\n error: any;\n contextFormExpanded?: boolean | undefined;\n public showDetailsMsg: String = Soho.Locale.translate('ShowDetails');\n\n constructor() {\n }\n\n ngAfterViewInit() {\n $('.expandable-area').expandablearea()\n .on('expand', function(e, args) {\n args.find('.expandable-footer span').text(Soho.Locale.translate('HideDetails'));\n args.contextFormExpanded = true;\n })\n .on('collapse', function(e, args) {\n args.find('.expandable-footer span').text(Soho.Locale.translate('ShowDetails'));\n args.contextFormExpanded = false;\n })\n }\n}\n","

\n \n \n {{'Error' | translate}}\n\n

\n
{{error.message}}
\n\n
\n
\n
\n
{{error.details}}>
\n
\n \n
\n
\n","export * from './lm-busclassfield.component';\nexport * from './lm-preview-options-dialog.component';\nexport * from './lm-busclassfield.service';\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { LMFieldBaseComponent, LMInvalidLPLEvent, LMPreviewEvent } from '@field/lm-field-base.component';\nimport { LMFilterBuilderService } from '@modal/filter-builder';\nimport { defer, Observable, of, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, first, flatMap, map, takeUntil, takeWhile } from 'rxjs/operators';\nimport { FilterBuilderDialogResult } from '@utils/app.constants';\nimport { LMCubeCellRelService } from '@modal/cube-cell-rel/services';\nimport { LMCubeCellRelationDefinition } from '@modal/cube-cell-rel/lm-cube-cell-rel';\nimport { LMComputeBuilderService } from '@modal/compute-builder/services';\nimport { LMDimension, LMMeasure } from '@modal/cubes/lm-cubes';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { LMLplEditorService } from '@lplEditor/lm-lpl-editor.service';\nimport { LMBusclassFieldService } from './lm-busclassfield.service';\n\n@Component({\n selector: 'lm-busclassfield',\n templateUrl: './lm-busclassfield.component.html',\n styleUrls: [ './lm-busclassfield.component.scss' ]\n})\nexport class LMBusclassFieldComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @ViewChild('editorContainer') _editorContainer: ElementRef;\n\n private unsubscribe$ = new Subject();\n\n @Input() layoutObject: LMBussClassFieldLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n rows: number = undefined;\n\n // Cube Cell Relation\n private dimensionMapping: Array;\n private measures: Array;\n\n computeType: string;\n\n customDerivedLpl: string;\n customComputeLpl: string;\n\n queryValidateEventDebouncer$ = new Subject();\n invalidLPLEventDebouncer$ = new Subject();\n\n public monacoOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n theme: 'vs',\n automaticLayout: true,\n language: 'LPL',\n foldingStrategy: 'indentation',\n contextmenu: false,\n minimap: {\n enabled: false\n },\n lineNumbers: 'off',\n quickSuggestions: false,\n wordWrap: 'on',\n renderLineHighlight: 'none',\n scrollbar: {\n horizontal: 'hidden'\n },\n overviewRulerLanes: 0,\n hideCursorInOverviewRuler: true,\n overviewRulerBorder: false,\n scrollBeyondLastLine: false\n };\n\n private editor: monaco.editor.IEditor;\n\n public get isBusClassTotal() {\n return this.layoutObject.componentClass === 'BusinessClassTotal';\n }\n\n public get isBusClassGroup() {\n return this.layoutObject.componentClass === 'BusinessClassGroup';\n }\n\n public get isBusClassCompute() {\n return this.layoutObject.componentClass === 'BusinessClassCompute';\n }\n\n public get hideTestMeasures() {\n return this.isReadOnly || this.model.isDirty || this.model.isCreateAction || (this.modelField.value as string).length <= 0;\n }\n\n public get disableDimensions() {\n if (this.isReadOnly) {\n return true;\n }\n\n const businessClass = this.getBusinessClass();\n return !businessClass || businessClass.length === 0;\n }\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmFilterBuilderService: LMFilterBuilderService,\n private lmCubeCellRelService: LMCubeCellRelService,\n private lmComputeBuilderService: LMComputeBuilderService,\n private changeDetectionRef: ChangeDetectorRef,\n private sohoMessageService: SohoMessageService,\n private lmLplEditorService: LMLplEditorService,\n private lmBusclassFieldService: LMBusclassFieldService) {\n super(lmFieldServiceAdapter);\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (this.isBusClassCompute) {\n this.computeType = this.model.getData().fields[this.bindId].customComputeType;\n\n if (this.computeType === 'derived') {\n this.customDerivedLpl = this.modelField.value;\n } else {\n this.customComputeLpl = this.modelField.value;\n }\n\n if (!this.computeType) {\n this.computeType = 'compute';\n }\n }\n\n this.rows = (this.layoutObject.lines === undefined || this.layoutObject.lines === 0) ? 4 : this.layoutObject.lines;\n\n if (this.isBusClassTotal && this.rows < 10) {\n this.rows = 10;\n }\n if (this.specField.isLpl) {\n this._fieldClassArray.push('lm-monospace');\n }\n\n if (this.displayAsText) {\n this._fieldClassArray.push('lm-text-data hide-white-space');\n } else {\n this.subscribeToInlineError();\n }\n this.setFieldClasses();\n\n this.queryValidateEventDebouncer$\n .pipe(debounceTime(1250))\n .subscribe((businessClass) => {\n this.validateLplQuery(businessClass);\n });\n\n this.invalidLPLEventDebouncer$\n .pipe()\n .subscribe((hasLPLValidationError) => {\n this.fieldEvent?.emit(new LMInvalidLPLEvent(event, JSON.parse(hasLPLValidationError)));\n });\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n this.handleModelChanged();\n }\n })\n );\n }\n\n private handleModelChanged() {\n // need to set input on the component for the change detection to work!\n if (this.editor) {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n model.setValue(this.modelField.value ? this.modelField.value : '');\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n // Set the soho alert id so the lpl error messages with quotes and caret display correctly.\n // TODO: Not sure if condition error can use it or not.\n if (this.isBusClassTotal) {\n if (this.sohoAlert) {\n this.sohoAlert.id = this.id;\n }\n }\n this.initMonaco();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n this.queryValidateEventDebouncer$.next();\n this.queryValidateEventDebouncer$.complete();\n\n if (this.editor) {\n this.editor.dispose();\n }\n }\n\n public contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n public onBuildButtonEvent(event: Event) {\n const businessClass = this.getBusinessClass();\n if (this.validateBusinessClass(businessClass)) {\n this.openBuilder(businessClass);\n }\n }\n\n private openBuilder(businessClass: string) {\n\n const promptDialog$ = defer(() => this.lmFilterBuilderService.promptAppendOverwriteConfirmationMessage());\n this.lmFilterBuilderService.openBuilderDialog(businessClass, this.layoutObject.fieldLookUpUrl,\n this.layoutObject.fieldSearchUrl, this.layoutObject.lplValidationUrl).pipe(\n takeUntil(this.unsubscribe$),\n takeWhile((result: LMFilterBuilderResult) => (result.lplQuery && result.lplQuery !== this.modelField.value)),\n flatMap(result => {\n const lplFieldPicker = result.lplQuery;\n\n if (!this.modelField.value) {\n return of(lplFieldPicker);\n } else {\n return promptDialog$.pipe(\n map((dialogResult: FilterBuilderDialogResult) => {\n if (dialogResult === FilterBuilderDialogResult.CONFIRMATION_APPEND) {\n return `${this.modelField.value} ${result.matchOption} ${result.lplQuery}`;\n }\n // CANCEL means empty\n if (dialogResult === FilterBuilderDialogResult.CONFIRMATION_CANCEL) {\n return this.modelField.value;\n }\n // dialogResult is null if there's no this.modelField.value\n if (!dialogResult || dialogResult === FilterBuilderDialogResult.CONFIRMATION_OVERWRITE) {\n return result.lplQuery;\n }\n }),\n );\n }\n })).subscribe((value: string) => {\n this.modelField.value = value;\n this.handleModelChanged();\n this.model.setDirty(this.layoutObject.bindId, true);\n this.changeDetectionRef.markForCheck();\n });\n }\n\n onPreviewButtonEvent(event: Event) {\n const businessClass = this.getBusinessClass();\n if (this.validateBusinessClass(businessClass)) {\n this.showPreview(businessClass);\n }\n }\n\n private showPreview(businessClass: string) {\n this.fieldEvent.emit(new LMPreviewEvent(event, this.modelField.value, businessClass, this.layoutObject.bindId));\n }\n\n onBuildCubeRelation(event: Event) {\n const businessClass = this.getBusinessClass();\n if (this.validateBusinessClass(businessClass)) {\n this.runBuildCubeRelation(businessClass);\n }\n }\n\n private runBuildCubeRelation(businessClass) {\n const busClassTotalName: string = this.model.getData().fields['BusinessClassTotal'].value;\n const definition: string = this.modelField.value;\n const dimensionMapping: Array = (this.model.isDirty) ? undefined : this.dimensionMapping;\n // Open the dialog if the business class is not empty\n this.lmCubeCellRelService.buildCubeCellRelDimensionsDialog(this.placeHolder, busClassTotalName, businessClass, definition, dimensionMapping)\n .subscribe((response: LMCubeCellRelationDefinition) => {\n if (response && response.relationLpl && response.relationLpl.length > 0) {\n this.modelField.value = response.relationLpl;\n this.model.setDirty(this.layoutObject.bindId, true);\n this.handleModelChanged();\n }\n if (response && response.dimensionMapping && !this.model.isCreateAction) {\n this.dimensionMapping = response.dimensionMapping;\n }\n });\n }\n\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n if (this.isBusClassCompute) {\n this.customDerivedLpl = '';\n this.customComputeLpl = '';\n\n this.computeType = this.model.getData().fields[this.bindId].customComputeType;\n\n if (this.computeType === 'derived') {\n this.customDerivedLpl = this.modelField.value;\n } else {\n this.customComputeLpl = this.modelField.value;\n }\n\n if (!this.computeType) {\n this.computeType = 'compute';\n }\n }\n\n this.changeDetectionRef.detectChanges();\n\n super.onAfterResetDirty(event);\n }\n\n onPreviewCubeRelation(event: Event) {\n // Run the test only if the form is not dirty.\n if (this.model.isDirty || this.model.isCreateAction) {\n return;\n }\n const businessClass = this.getBusinessClass();\n if (this.validateBusinessClass(businessClass)) {\n this.runPreviewCubeRelation(businessClass);\n }\n }\n\n private runPreviewCubeRelation(businessClass: string) {\n const busClassTotalName: string = this.model.getData().fields['BusinessClassTotal'].value;\n this.lmCubeCellRelService.buildCubeCellRelMeasuresTestDialog(this.placeHolder, busClassTotalName, businessClass, this.measures)\n .subscribe((measures: Array) => {\n // Save it off so we dont have to go back to fetch.\n this.measures = measures;\n });\n }\n\n handleComputeTypeChange(event) {\n\n if (event.srcElement?.checked) { // Added checked handler, change event being triggered twice.\n // Store model field value\n if (this.computeType === 'compute') {\n this.customDerivedLpl = this.modelField.value;\n } else {\n this.customComputeLpl = this.modelField.value;\n }\n\n // Set new value based on the computeType\n if (this.computeType === 'derived') {\n this.modelField.value = this.customDerivedLpl;\n } else {\n this.modelField.value = this.customComputeLpl;\n }\n\n if (this.modelField.value) {\n this.model.setDirty(this.layoutObject.bindId, true);\n }\n\n if (this.modelField.value) {\n this.validateLplQuery(this.getBusinessClass());\n }\n\n this.handleModelChanged();\n }\n }\n\n onComputeBuildButtonEvent() {\n const businessClass = this.getBusinessClass();\n if (this.validateBusinessClass(businessClass)) {\n this.runComputeBuilder(businessClass);\n }\n }\n\n private runComputeBuilder(businessClassName) {\n let builderResult$: Observable;\n if (this.computeType === 'compute') {\n builderResult$ = this.lmComputeBuilderService.openComputeBuilderDialog(businessClassName,\n this.layoutObject.fieldLookUpUrl,\n this.layoutObject.fieldSearchUrl,\n this.layoutObject.lplValidationUrl,\n false,\n this.isBusClassCompute,\n false,\n this.modelField.value);\n } else {\n builderResult$ = this.lmComputeBuilderService.openDerivedComputeBuilderDialog(businessClassName,\n this.layoutObject.lplValidationUrl,\n this.model.formResourceId,\n this.modelField.value);\n }\n\n builderResult$.pipe(\n takeUntil(this.unsubscribe$),\n distinctUntilChanged()\n ).subscribe((result: LMComputeBuilderResult) => {\n\n if (result.action === 'Ok') {\n this.modelField.value = result.lplQuery;\n this.model.setDirty(this.layoutObject.bindId, true);\n this.handleModelChanged();\n }\n });\n }\n\n private initMonaco() {\n if (!this.lmLplEditorService.isMonacoAvailable()) {\n this.lmLplEditorService.loadingMonacoFinished.pipe(first()).subscribe(() => {\n this.initMonaco();\n });\n return;\n }\n\n this.editor = monaco.editor.create(this._editorContainer.nativeElement, this.monacoOptions);\n this.lmLplEditorService.syncMonacoThemeToSohoTheme();\n\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n model.setValue(this.modelField.value);\n\n this.updateReadOnlyState();\n this.addMonacoListeners();\n }\n\n private updateReadOnlyState(): void {\n if (this.editor) {\n this.editor.updateOptions({ readOnly: this.isReadOnly, extraEditorClassName: this.isReadOnly ? 'lm-readonly-editor' : '' });\n }\n }\n\n private validateLplQuery(businessClass: string) {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n monaco.editor.setModelMarkers(model, 'LPL', []);\n this.sohoAlert.removeAllMessages();\n this.model.clearFieldError(this.layoutObject.bindId);\n this.invalidLPLEventDebouncer$.next('false');\n\n if (!businessClass || businessClass.trim().length <= 0) {\n return;\n }\n\n if (this.modelField.value) {\n this.lmBusclassFieldService.makeRequest(businessClass, this.modelField.value, this.isBusClassCompute, this.isBusClassTotal, this.computeType)\n .subscribe((result: LMLplValidationResponse) => {\n if (result.validationError) {\n this.sohoAlert.id = 'error-bcf';\n this.model.setError(this.layoutObject.bindId, true);\n this.invalidLPLEventDebouncer$.next('true');\n this.setLPLMarkings(result, model);\n\n this.sohoAlert.addInlineMessage(result.validationError.errorDescription);\n }\n });\n }\n }\n\n private addMonacoListeners(): void {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n\n model.onDidChangeContent((e) => {\n this.modelField.value = model.getValue();\n this.model.evaluateAndApplyDirtyState(this.layoutObject.bindId);\n this.queryValidateEventDebouncer$.next(this.getBusinessClass());\n });\n }\n\n public setLPLMarkings(response: LMLplValidationResponse, model: monaco.editor.ITextModel) {\n const markers: monaco.editor.IMarkerData[] = new Array();\n if (response.validationError) {\n const alertType = response.validationError.isWarning ? 'info' : 'error';\n markers.push({\n startLineNumber: response.validationError.row,\n startColumn: response.validationError.startOffset,\n endLineNumber: response.validationError.row,\n endColumn: response.validationError.endOffset,\n message: this.lmLplEditorService.htmlEntityDecode(\n response.validationError.errorDescription\n ),\n severity: alertType === 'error' ? monaco.MarkerSeverity.Error : monaco.MarkerSeverity.Warning,\n });\n }\n monaco.editor.setModelMarkers(model, 'LPL', markers);\n }\n\n private getBusinessClass(): string {\n // lpltext field: BusinessClassCompute, BusinessClassGroup, BusinessClassTotal\n if (!this.layoutObject.lplFieldInfo) {\n return this.getBusinessClassFromDataView('BusinessClass');\n } else {\n // lpl editor condition builder\n if (this.layoutObject.lplFieldInfo.isRelatedField) {\n return this.getBusinessClassFromDataView(this.layoutObject.lplFieldInfo.busClassName);\n } else {\n return this.layoutObject.lplFieldInfo.busClassName;\n }\n }\n }\n\n private getBusinessClassFromDataView(fieldName: string): string {\n const businessClassFld = this.model.getData().fields[fieldName];\n return !businessClassFld ? '' : businessClassFld.value as string;\n }\n\n private validateBusinessClass(businessClass: string): boolean {\n if (!businessClass) {\n const buttons = [ { text: Soho.Locale.translate('Ok'), click: (e, modal) => {modal.close(true);} } ];\n this.sohoMessageService\n .error()\n .message(' ')\n .title(Soho.Locale.translate('BusinessClassRequiredMessage'))\n .buttons(buttons)\n .open();\n\n return false;\n } else {\n return true;\n }\n }\n}\n\n\n","\n
\n \n \n \n \n
\n
\n\n
\n \n \n
\n
\n
\n
\n \n {{modelField.value | formatMessageRule:true:field.text:model:specFields}}

\n
\n
\n
\n\n \n
\n {{ 'SetDimensions' | translate}}\n \n \n {{ 'Validate' | translate }}\n \n \n
\n
\n \n \n
\n {{ 'BuilderNoEllipses' | translate}}\n {{ 'PreviewNoEllipses' | translate }}\n
\n
\n \n
\n {{ 'BuilderNoEllipses' | translate}}\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { LMUrlUtilService } from '@services/utils';\nimport { LMFormRequest } from '@form/index';\nimport { FormRequestType } from '@app/utils';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class LMBusclassFieldService {\n constructor(\n private http: HttpClient,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n public makeRequest(\n busClass: string,\n lpl: string,\n isBusinessClassCompute: boolean,\n isBusClassTotal: boolean,\n computeType = ''\n ): Observable {\n const formRequest: LMFormRequest = {\n requestType: isBusClassTotal\n ? FormRequestType.CubeRelValidateLPL\n : FormRequestType.ValidateCondition,\n param1: busClass,\n param2: lpl,\n isBusinessClassCompute,\n computeType,\n };\n\n const lplValidationUrl = this.buildRequestUrl(busClass);\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return this.http.post(lplValidationUrl, formRequest, { headers });\n }\n\n private buildRequestUrl(businessClass: string): string {\n const baseUrl = this.lmUrlUtilService.getBaseUrl();\n let url = `${baseUrl}/form/${businessClass}`;\n url = this.lmUrlUtilService.propagateSessionKeys(url, '?');\n return url;\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'lm-preview-options-dialog',\n templateUrl: './lm-preview-options-dialog.component.html',\n styleUrls: ['./lm-preview-options-dialog.component.scss']\n})\nexport class LMPreviewOptionsDialogComponent implements OnInit {\n\n @Input() listNames: Array;\n\n title: string;\n _listName: string;\n\n get listName(): string {\n return this._listName;\n }\n\n constructor() { }\n\n ngOnInit() {\n this.title = Soho.Locale.translate('PreviewDescription');\n }\n\n}\n","
\n
\n

{{title}}

\n
\n
\n  \n
\n
\n
\n \n \n \n \n
\n
\n
\n","export * from './lm-button.component';\n","import { AfterViewInit, Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { SohoButtonComponent } from 'ids-enterprise-ng';\nimport {\n LMCompactFormEvent,\n LMFieldBaseComponent,\n LMFieldValueChangedEvent,\n LMSubFormEvent\n} from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { AppConstants, LMButtonType } from '@utils/app.constants';\nimport { LMModelChangedEvent } from '@form/model';\n\nexport class LMButtonEvent implements LMFieldEvent {\n layoutObject: LMButtonLayout;\n event: Event;\n eventType: LMFieldEventType;\n\n constructor(event: Event, layoutObject: LMButtonLayout) {\n this.eventType = 'ButtonEvent';\n this.event = event;\n this.layoutObject = layoutObject;\n }\n}\n\nenum LMButtonSubTypeDisplayEnum {\n ICON_BUTTON = 0,\n TEXT_BUTTON,\n TEXT_MAIL_BUTTON,\n ICON_MAIL_BUTTON,\n TEXT_LINK,\n MAIL_LINK\n}\n\n@Component({\n selector: 'lm-button',\n templateUrl: './lm-button.component.html',\n styleUrls: [ './lm-button.component.scss' ]\n})\nexport class LMButtonComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @HostBinding('class.field') get isField() {\n return true;\n };\n @HostBinding('class.lm-single-column-child') isChildOfSingleColumn = false;\n @HostBinding('class.lm-icon-button') isIconButton = false;\n\n @HostBinding('class.lm-button-right') get isAlignRight() {\n return this.buttonAlign === 'right';\n }\n @HostBinding('class.lm-button-center') get isAlignCenter() {\n return this.buttonAlign === 'center';\n }\n @HostBinding('class.lm-button-left') get isAlignLeft() {\n return this.buttonAlign === 'left';\n }\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-button`;\n }\n\n @Input() layoutObject: LMButtonLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n public displayAsButton = true;\n public displayAsLink = false;\n public mailToHttpUrl = false;\n public text: string;\n public buttonIcon: string = null;\n public buttonType: string = null;\n public iconHref: string;\n public iconUrl: string;\n public validSohoIcon: boolean;\n public valid = false;\n public isDataViewFieldButton = false;\n public dataViewFieldButtonHasData = false;\n\n public displayType: LMButtonSubTypeDisplayEnum;\n public layoutDisplayType;\n\n private buttonAlign: HorizontalAlignment = null;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMButtonSubTypeDisplayEnum;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (this.lmColumnLayoutInfo && this.lmColumnLayoutInfo.nbrColumns === 1) {\n this.isChildOfSingleColumn = true;\n }\n\n if (this.layoutObject.hasOwnProperty('buttonType')) {\n this.buttonType = this.layoutObject.buttonType;\n\n } else if (this.layoutObject.iconUrl && !this.layoutObject.title) {\n this.buttonType = SohoButtonComponent.ICON;\n\n } else {\n this.buttonType = this.layoutObject.isPrimary ? SohoButtonComponent.PRIMARY : SohoButtonComponent.SECONDARY;\n }\n\n if (this.field && this.field.fieldStyle && this.field.fieldStyle.align) {\n this.buttonAlign = this.field.fieldStyle.align;\n }\n\n this.buttonIcon = this.layoutObject.icon;\n\n if (this.buttonIcon === 'internalCorrespondenceIconBlack') {\n this.buttonIcon = 'mail';\n }\n\n this.iconHref = '';\n\n if (this.layoutObject.httpUrl && this.layoutObject.httpUrl.resourceValue.indexOf('mailto:') === 0) {\n this.mailToHttpUrl = true;\n }\n\n if (this.layoutObject.iconUrl) {\n this.iconUrl = 'url(' + this.layoutObject.iconUrl + ')';\n }\n\n if (this.layoutObject.icon) {\n this.validSohoIcon = this.lmFieldServiceAdapter.lmThemeService.isValidSohoIcon(this.layoutObject.icon);\n }\n\n if (this.layoutObject.displayAsLink) {\n this.displayAsLink = true;\n this.displayAsButton = false;\n }\n\n if (this.displayAsButton && !this.mailToHttpUrl) {\n if (this.iconUrl) {\n this.displayType = this.layoutDisplayType.ICON_BUTTON;\n this.isIconButton = !this.layoutObject.hasOwnProperty('title');\n } else {\n this.displayType = this.layoutDisplayType.TEXT_BUTTON;\n\n }\n } else if (this.displayAsButton && this.mailToHttpUrl) {\n if (this.iconUrl) {\n this.displayType = this.layoutDisplayType.ICON_MAIL_BUTTON;\n this.isIconButton = !this.layoutObject.hasOwnProperty('title');\n } else {\n this.displayType = this.layoutDisplayType.TEXT_MAIL_BUTTON;\n\n }\n } else if (this.displayAsLink && !this.mailToHttpUrl) {\n this.displayType = this.layoutDisplayType.TEXT_LINK;\n\n } else if (this.displayAsLink && this.mailToHttpUrl) {\n this.displayType = this.layoutDisplayType.MAIL_LINK;\n }\n\n this.valid = this.checkValidity();\n\n this.setDataViewFieldButtonState();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n // triggerValue changes to indicate the formatMessageRule pipe to fire\n // triggerValue is set in lm-field-base.component; do not set it here\n\n this.valid = this.checkValidity();\n\n this.setDataViewFieldButtonState();\n })\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n // duplicate code in lm-hyperlink\n // FYI. Rich client does NOT check validity of a navigation button on a form\n checkValidity() {\n let valid = true;\n\n // if (this.field.type === AppConstants.BUTTON_TYPE_NAVIGATION) {\n // // TODO: LMCLIENT-21757, LMCLIENT-23380, LMCLIENT-25651; temp work around until LMRK-83694 is completed\n // if (this.lmFieldServiceAdapter.lmFormService.isStepProcessForm(this.model.formSpec)) {\n // return true;\n // }\n //\n // valid = !this.lmFieldServiceAdapter.lmConditionUtilService.isNavigationInvalid(this.layoutObject, this.model);\n // }\n\n if (this.layoutObject.validity) {\n valid = this.lmFieldServiceAdapter.lmConditionUtilService.isValid(this.layoutObject.validity as LMCondition[], this.model);\n }\n\n if (this.layoutObject.isStandardAction) {\n if (this.layoutObject.standardActionName !== AppConstants.STANDARD_SAVE) {\n // only save supported, disable all other standard actions\n valid = false;\n }\n }\n\n return valid;\n }\n\n setDataViewFieldButtonState() {\n if (this.layoutObject.hasOwnProperty('dataViewFieldButton')) {\n this.isDataViewFieldButton = true;\n this.dataViewFieldButtonHasData = (!!this.modelField.value && this.modelField.value.trim() !== '');\n }\n }\n\n mailTo(event: Event) {\n const messageRule = this.layoutObject.httpUrl;\n const email = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(messageRule, this.model, this.specFields);\n window.location.href = email;\n }\n\n onClickEvent(event: Event) {\n if (this.mailToHttpUrl) {\n this.mailTo(event);\n\n // TODO: need to evaluate this again; re: LMCLIENT-26683:\n } else if (this.compactFormDialogSpec) {\n this.fieldEvent.emit(new LMCompactFormEvent(event, this.layoutObject.fieldId, this.compactFormDialogSpec.label,\n this.compactFormDialogSpec.layout, this.layoutObject.moreSpecFields));\n\n } else if (this.layoutObject.type === LMButtonType.SHOWEDITOR && this.modelField.isCompoundField) {\n const title = this.specFields[ this.layoutObject.fieldId ].label;\n const layout: LMFormLayout = { sections: this.layoutObject.layout as Array };\n\n this.fieldEvent.emit(new LMCompactFormEvent(event, this.field.fieldId, title, layout, this.layoutObject.moreSpecFields));\n\n } else if (this.isSubForm) {\n this.fieldEvent.emit(new LMSubFormEvent(event, this.layoutObject.fieldId, this.field.buttonSubForm.title,\n this.field.buttonSubForm));\n } else if (this.layoutObject.fireInitialValue) {\n this.fireInitialValueRule();\n } else {\n this.fieldEvent.emit(new LMButtonEvent(event, this.layoutObject));\n }\n }\n\n fireInitialValueRule() {\n if (this.layoutObject.fireInitialValue) {\n this.fireWhenValueChangedEvent(this.bindId);\n }\n }\n\n private fireWhenValueChangedEvent(bindId: string) {\n this.fieldEvent.emit(\n new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'FireInitialValueRuleEvent', bindId));\n }\n}\n","\n\n 1 && !lmParagraphLayoutInfo?.parentIsParagraphLayout && !field.label\"\n lm-label\n [layoutField] = \"field\"\n [layoutInfo]=\"layoutInfo\"\n [lmColumnLayoutInfo]=\"lmColumnLayoutInfo\"\n [lmParagraphLayoutInfo]=\"lmParagraphLayoutInfo\"\n>\n  \n\n\n\n \n \n \n \n \n\n \n \n \n \n {{triggerValue | formatMessageRule:true:layoutObject.title:model:specFields}}\n \n \n \n \n \n \"\"/\n {{triggerValue | formatMessageRule:true:layoutObject.title:model:specFields}}\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n
\n \n \n
\n\n \n \n \n \n
\n","export * from './lm-captcha-control.component';\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { LMCaptchaControlService } from '@field/captchacontrol/lm-captcha-control.service';\n\n@Component({\n selector: 'lm-captcha-control',\n templateUrl: 'lm-captcha-control.component.html',\n styleUrls: [ 'lm-captcha-control.component.scss' ]\n})\nexport class LMCaptchaControlComponent implements OnInit {\n public captchaBase64Url: string;\n public isValid: boolean;\n\n @Input() layoutObject: LMCaptchaControl;\n\n @HostBinding('class.align-right') isRightAlign;\n @HostBinding('class.align-center') isCenterAlign;\n @HostBinding('class.parent-is-paragraph') @Input() parentIsParagraph: boolean;\n\n constructor(private lmCaptchaControlService: LMCaptchaControlService) {}\n\n ngOnInit() {\n this.load();\n }\n\n public set captchaValue(value: string) {\n this.lmCaptchaControlService.setCaptchaValue(value);\n }\n\n private load(): void {\n this.isCenterAlign = this.layoutObject.alignCenter;\n this.isRightAlign = this.layoutObject.alignRight;\n this.lmCaptchaControlService.getCaptchaBase64Url().then((url) => this.captchaBase64Url = url);\n }\n\n public reload() {\n this.load();\n }\n}\n","
\n \n {{ 'TryANewImage' | translate }}\n \n \n
\n\n","import { Injectable } from '@angular/core';\nimport { LMSpecService, LMUrlUtilService } from '@app/services';\n\n@Injectable()\nexport class LMCaptchaControlService {\n public captchaValue: string;\n\n constructor(\n private lmUrlUtilService: LMUrlUtilService,\n private lmSpecService: LMSpecService\n ) {}\n\n public getCaptchaValue(): string {\n return this.captchaValue;\n }\n\n public setCaptchaValue(value: string): void {\n this.captchaValue = value;\n }\n\n public getCaptchaBase64Url(): Promise {\n return this.loadCaptcha();\n }\n\n private loadCaptcha(): Promise {\n return new Promise((resolve, reject) => {\n this.lmSpecService.getCaptchaSpec(this.lmUrlUtilService.getCaptchaSpecUrl())\n .subscribe((response) => {\n resolve(response.base64ImageUrl);\n }, error => reject(error));\n });\n }\n}\n","export * from './lm-checkbox.component';\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\n\nenum LMCheckboxDisplayEnum {\n PLAIN = 0,\n SWITCH,\n DISPLAY_AS_TEXT,\n DISPLAY_AS_TAG\n}\n\n@Component({\n selector: 'lm-checkbox',\n templateUrl: './lm-checkbox.component.html',\n styleUrls: [ 'lm-checkbox.component.scss' ]\n})\nexport class LMCheckboxComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @HostBinding('class.lm-parent-is-compound-field') get parentIsCompoundField() {\n if (this.lmColumnLayoutInfo && this.lmColumnLayoutInfo.parentIsCompoundField) {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => this.lmColumnLayoutInfo.parentIsCompoundField)\n });\n } else {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => setTimeout(() => false));\n }\n\n return false;\n }\n\n @HostListener('change')\n onChange() {\n super.onChange();\n this.handleOnFieldChanged();\n };\n\n public displayType: LMCheckboxDisplayEnum;\n public layoutDisplayType;\n public showDirtyCheckboxIndicator = false;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMCheckboxDisplayEnum;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (this.layoutObject.displayAsTag) {\n this.displayType = LMCheckboxDisplayEnum.DISPLAY_AS_TAG;\n } else if (this.displayAsText) {\n this.displayType = LMCheckboxDisplayEnum.DISPLAY_AS_TEXT;\n } else if (this.layoutObject.displayAsSwitch) {\n this.subscribeToInlineError();\n this.displayType = LMCheckboxDisplayEnum.SWITCH;\n this._fieldClassArray.push('switch');\n\n } else {\n this.subscribeToInlineError();\n this.displayType = LMCheckboxDisplayEnum.PLAIN;\n }\n\n this.setFieldClasses();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n // only reset dirty to pristine on change if already dirty\n if (this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDirtyCheckboxIndicator = false;\n }\n }\n super.onAfterResetDirty(event);\n }\n\n onDirty(event: SohoTrackDirtyEvent) {\n // only set dirty if not already dirty\n if (!this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDirtyCheckboxIndicator = true;\n }\n }\n super.onDirty(event);\n }\n\n onPristine(event: SohoTrackDirtyEvent) {\n // only set pristine if already dirty\n if (this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDirtyCheckboxIndicator = false;\n }\n }\n super.onPristine(event);\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n}\n","\n \n\n \n \n \n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n \n \n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n\n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n\n {{triggerValue | booleanAsText:modelField.value}}\n \n\n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n

{{triggerValue | booleanAsText:modelField.value}}

\n
\n
\n\n\n\n \n \n \n\n","export * from './lm-checkcontrol.component';\n","import {Component, HostBinding, Input, OnDestroy, OnInit} from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\n\nexport class LMCheckControlEvent implements LMFieldEvent {\n layoutObject: LMCheckControl;\n event: Event;\n eventType: LMFieldEventType;\n isChecked: boolean;\n\n constructor(event: Event, layoutObject: LMCheckControl, isChecked: boolean) {\n this.eventType = 'CheckControlEvent';\n this.event = event;\n this.layoutObject = layoutObject;\n this.isChecked = isChecked;\n }\n}\n\nenum LMCheckControlTypeDisplayEnum {\n STAR = 0,\n BOX,\n SWITCH\n}\n\n@Component({\n selector: 'lm-checkcontrol',\n templateUrl: './lm-checkcontrol.component.html',\n styleUrls: [ 'lm-checkcontrol.component.scss' ]\n})\n\n\nexport class LMCheckcontrolComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n @Input() layoutObject: LMCheckControl;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n public displayType: LMCheckControlTypeDisplayEnum;\n public layoutDisplayType;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMCheckControlTypeDisplayEnum;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (this.layoutObject.displayAsSwitch) {\n this.displayType = LMCheckControlTypeDisplayEnum.SWITCH;\n this._fieldClassArray.push('switch');\n\n } else if (this.layoutObject.displayAsStar) {\n this.displayType = LMCheckControlTypeDisplayEnum.STAR;\n\n } else {\n this.displayType = LMCheckControlTypeDisplayEnum.BOX;\n\n }\n\n this.setFieldClasses();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onClickEvent(event: Event) {\n this.fieldEvent.emit(new LMCheckControlEvent(event, this.layoutObject, !this.modelField.value));\n }\n\n get hasCheckedState(): boolean {\n // TODO: needs to call isReadonly() as well as check to see if the actions are valid\n\n // execute isReadonly()\n // if true, return true as validWhen is in place\n // if false, then evaluate the following:\n // if this.layoutObject.hasCheckedState === true, then set mutability based on first valid unchecked action\n // if this.layoutObject.hasCheckedState === false, then set mutability based on first valid checked action\n\n // null turns off readOnly/disabled state\n return null;\n }\n}\n","\n\n\n \n \n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n
\n \n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n
\n
\n
\n
\n\n\n \n \n \n\n","export * from './lm-compound-field.component';\n","import { Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\n\n@Component({\n selector: 'lm-compound-field',\n templateUrl: './lm-compound-field.component.html',\n styleUrls: [ 'lm-compound-field.component.scss' ]\n})\nexport class LMCompoundFieldComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.hide-labels') hideLabels = false;\n\n @Input() layoutObject: LMCompoundFieldLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n // error TS2610: 'parentCompoundFieldDisplayOnly' is defined as an accessor in class 'LMFieldBaseComponent'\n // @Input() parentCompoundFieldDisplayOnly: boolean;\n\n @HostBinding('class.preview-field') @Input() previewMode = false;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n public elements: LMFormLayoutElements;\n public launchButtonTooltip: string;\n public paragraphLayout: LMParagraphLayoutInfo = {};\n public memberFieldFocused = false;\n public showCompactDialogButton = false;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.elements = this.lmFieldServiceAdapter.lmCompoundFieldService.flattenLayout(this.specField.layout);\n this.subscribeToInlineError();\n this.launchButtonTooltip = Soho.Locale.translate('Launch');\n\n if (this.lmColumnLayoutInfo) {\n this.lmColumnLayoutInfo.parentIsCompoundField = true;\n }\n\n if (this.previewMode) {\n this.paragraphLayout.previewMode = true;\n this.paragraphLayout.displayAsText = true;\n this.paragraphLayout.displayOnly = true;\n this.hideLabels = true;\n }\n\n if (this.specField.compactFormat && !this.specField.compactFormatOnly) {\n this.showCompactDialogButton = true;\n }\n\n // validity conditions listen for evaluateConditions notification\n if (this.layoutObject.validity) {\n this.subscriptionArray.push(\n this.lmFieldServiceAdapter.lmConditionUtilService.evaluateConditions.subscribe( (status: boolean) => {\n this.recalculateReadOnly();\n this.parentCompoundFieldDisplayOnly = this.isReadOnly;\n })\n );\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onMemberFieldError(message) {\n this.compoundFieldInError = true;\n this.model.setFieldError(this.bindId, message);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n if (event.eventType === 'MemberFocusEvent') {\n this.memberFieldFocused = true;\n } else if (event.eventType === 'MemberBlurEvent') {\n this.memberFieldFocused = false;\n } else {\n super.onFieldEvent(event);\n }\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n openCompactDialog(event) {\n this.onContextMenuEvent({args: [event.currentTarget]});\n }\n}\n","\n {{'PreviewNoEllipses'| translate}}\n
\n \n
\n
\n
\n\n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n\n
\n \n \n
\n \n
\n
\n \n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n\n\n \n \n \n\n","export * from './lm-date.component';\n","import { Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AppConstants, LMTimeStampDirective } from '@utils/index';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\n\nenum LMDateSubTypeDisplayEnum {\n DATE = 0,\n TEXT,\n TAG\n};\n\n@Component({\n selector: 'lm-date',\n templateUrl: './lm-date.component.html',\n styleUrls: [ 'lm-date.component.scss' ]\n})\nexport class LMDateComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n public dateFormat: string = undefined;\n public showTime: boolean = undefined;\n public timeFormat: string = undefined;\n public mode: string;\n\n // see DateYMD.java\n // these dates are one day less and one day more than the min and max so\n // that the datepicker UI correctly displays the correct range.\n public disableOptions: SohoDatePickerDisable = {\n dates: '',\n minDate: this.lmFieldServiceAdapter.lmFormatUtilService.minDate,\n maxDate: this.lmFieldServiceAdapter.lmFormatUtilService.maxDate,\n dayOfWeek: []\n };\n\n public pickerOptions: SohoDatePickerOptions = {\n disable: this.disableOptions\n };\n\n public displayType: LMDateSubTypeDisplayEnum;\n public layoutDisplayType;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMDateSubTypeDisplayEnum;\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n };\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.setOptions();\n this.setSize();\n this.setFieldClasses();\n this.subscribeToTimezoneField();\n\n if (this.displayAsTag && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.TAG;\n\n } else if (this.displayAsText && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.TEXT;\n\n } else {\n this.subscribeToInlineError();\n this.displayType = this.layoutDisplayType.DATE;\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n public onNgModelChange(value) {\n this.modelField.toDataValue(value, this.transformOptions);\n }\n\n // private methods\n private setOptions() {\n let type = this.specField.type;\n this.pickerOptions.mode = 'standard';\n\n if (this.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE) {\n type = AppConstants.YYYYMMDD;\n }\n\n // TODO: need to support TIMESTAMP for hijri and gregorian\n if (type === AppConstants.YYYYMMDD && this.timeStampDirective === undefined) {\n if (this.field.hasOwnProperty('displayHijriDate')) {\n // TODO: //maf I was thinking after all the preliminary work in ep, etc that we would not need to pass a locale\n // here, but passing one is the only way to get the correct umalqura calendar. There may be some work yet in ep.\n // When the locale is not passed, I get the a calendar, but it is not the same as when the locale is used,\n // meaning the calendar has en-US month names and en-US days, but the year is like 1441.\n this.pickerOptions.locale = 'ar-SA';\n this.pickerOptions.calendarName = 'islamic-umalqura';\n\n this.transformOptions.locale = 'ar-SA';\n this.transformOptions.calendarName = 'islamic-umalqura';\n\n } else if (this.field.hasOwnProperty('displayGregorianDate')) {\n this.pickerOptions.calendarName = 'gregorian';\n this.transformOptions.calendarName = 'gregorian';\n }\n }\n\n switch (type) {\n // anniversary\n case AppConstants.MMDD:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.month;\n break;\n\n // date and time\n case AppConstants.TIMESTAMP:\n this.pickerOptions.showTime = true;\n this.pickerOptions.showMonthYearPicker = true;\n this.pickerOptions.useCurrentTime = false;\n\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.hasLimitToMinuteIncrements(this.field, this.specField)\n || this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayDateAndHoursAndMinutes(this.field, this.specField)) {\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.datetime;\n this.pickerOptions.minuteInterval = this.layoutObject.limitToMinuteIncrements;\n } else {\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short + ' '\n + Soho.Locale.calendar().dateFormat.timestamp;\n this.pickerOptions.secondInterval = 1;\n this.pickerOptions.minuteInterval = 1;\n }\n break;\n\n // year only\n case AppConstants.YYYY:\n this.pickerOptions.dateFormat = 'yyyy';\n this.pickerOptions.showMonthYearPicker = true;\n this.pickerOptions.hideDays = true;\n break;\n\n // period / birthday\n case AppConstants.YYYYMM:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.year;\n this.pickerOptions.showMonthYearPicker = true;\n this.pickerOptions.hideDays = true;\n break;\n\n // year, month, day\n case AppConstants.YYYYMMDD:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short;\n this.pickerOptions.showMonthYearPicker = true;\n break;\n }\n }\n\n private subscribeToTimezoneField() {\n if (this.specField.type === AppConstants.TIMESTAMP && this.layoutObject.timeZoneIs) {\n this.transformOptions.timeZone = this.model.getField(this.layoutObject.timeZoneIs).value;\n this.subscriptionArray.push(this.model.timeZoneChangedEvent$\n .subscribe(({ bindId, timeZone, previousTimeZone }) => {\n if (bindId === this.layoutObject.timeZoneIs) {\n this.transformOptions.timeZone = previousTimeZone;\n const displayValue = this.lmFieldServiceAdapter.lmFormatUtilService.toDisplayValue(\n this.modelField.value, this.specField.type, this.transformOptions);\n\n this.transformOptions.timeZone = timeZone;\n this.modelField.value = this.lmFieldServiceAdapter.lmFormatUtilService.toDataValue(\n displayValue, this.specField.type, this.transformOptions);\n }\n }));\n }\n }\n\n onDateChange() {\n if (!this.hasFieldChanged) {\n // came back from the picker - user did not type in the input\n // lm-field-base has a change host listener that is\n // handling user input (typing in a value)\n this.onChange();\n this.handleOnFieldChanged();\n }\n }\n\n onFiltered(event: SohoFieldFilteredEvent) {\n if (event.filterOption.value === 'in-range') {\n this.mode = 'range';\n\n if (this.specField.type === AppConstants.TIMESTAMP) {\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short + ' '\n + Soho.Locale.calendar().dateFormat.timestamp;\n this.pickerOptions.showTime = true;\n } else {\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short;\n this.pickerOptions.hideDays = false;\n this.pickerOptions.showTime = false;\n }\n } else {\n this.mode = 'standard';\n\n switch (this.specField.type) {\n // date and time\n case AppConstants.TIMESTAMP:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short + ' '\n + Soho.Locale.calendar().dateFormat.timestamp;\n this.pickerOptions.showTime = true;\n break;\n\n // year only\n case AppConstants.YYYY:\n this.pickerOptions.dateFormat = 'yyyy';\n this.pickerOptions.showMonthYearPicker = true;\n this.pickerOptions.hideDays = true;\n break;\n\n // period / birthday\n case AppConstants.YYYYMM:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.year;\n this.pickerOptions.showMonthYearPicker = true;\n this.pickerOptions.hideDays = true;\n break;\n\n // year, month, day\n case AppConstants.YYYYMMDD:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.short;\n this.pickerOptions.showMonthYearPicker = true;\n break;\n\n // Anniversary\n case AppConstants.MMDD:\n this.pickerOptions.dateFormat = Soho.Locale.calendar().dateFormat.month;\n break;\n }\n }\n super.onFiltered(event);\n }\n}\n","{{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n\n\n\n \n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n
\n \n \n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'right'\"\n [trigger]=\"'click'\"\n (focus)=\"onFocus($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\">\n \n \n \n
\n \n
\n
\n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}\n \n\n \n

{{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:layoutObject.title:model:specFields}}

\n\n \n \n
\n
\n
\n \n
\n
\n\n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

\n
\n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

\n
\n
\n\n\n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

\n
\n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

\n
\n
\n\n\n \n \n \n\n","export * from './lm-dropdown.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { SohoDropDownComponent } from 'ids-enterprise-ng';\nimport { LMFormRequestService } from '@form/services';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport * as urltemplate from 'url-template';\nimport { LMLayoutType } from '@field/services/lm-field-layout.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { LMKeyType } from '@app/services';\n\nenum LMDropDownDisplayTypeEnum {\n PLAIN = 0,\n USER_DEFINED,\n MULTI,\n TEXT,\n BOOLEAN,\n TAG\n}\n\n@Component({\n selector: 'lm-dropdown',\n templateUrl: 'lm-dropdown.component.html',\n styleUrls: [ 'lm-dropdown.component.scss' ]\n})\nexport class LMDropdownComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(SohoDropDownComponent) dropdown: SohoDropDownComponent;\n\n @Input() layoutObject: LMDropdownLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @HostListener('keyup', [ '$event' ]) onKeyUp(event) {\n if (event.which === 13 && event.target.nodeName !== 'BUTTON') {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n }\n\n @HostBinding('class.keyfield-multi-select') get keyMultiSelectClass() {\n return this.modelField && this.modelField.isKeyFieldMultiselect;\n }\n\n @HostBinding('class.lm-dropdown-is-tag') get classDropDownIsTag() {\n return this.displayAsTag;\n }\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n // @HostBinding('attributes') dropdownAttributes: SohoAttributesArray;\n public dropdownAttributes: SohoAttributesArray = [];\n\n public isMultiSelect = false;\n public isUserDefined: boolean;\n public isBoolean = false;\n public showDropDownDirtyIndicator = false;\n public userDefinedReloadType: SohoDropDownReloadStyles;\n\n public displayType: LMDropDownDisplayTypeEnum;\n public layoutDisplayType;\n public maxSelected: number;\n public showUserDefinedAsMulti = false;\n // public showSelectAll: boolean;\n\n constructor(\n private lmFormRequestService: LMFormRequestService,\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private element: ElementRef\n ) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMDropDownDisplayTypeEnum;\n }\n\n // events\n ngOnInit() {\n if (this.lmFieldServiceAdapter.lmLoggerService.cskLog === 2) {\n this.lmFieldServiceAdapter.lmLoggerService.time({\n id: `Total-Dropdown-${this.instanceId}`,\n description: 'TOTAL DROPDOWN',\n functionName: 'ngOnInit()',\n className: 'LMDropdownComponent',\n timingStart: 'LMDropdownComponent -> ngOnInit()',\n timingEnd: 'LMDropdownComponent -> ngAfterViewInit()',\n fieldType: this.layoutObject.type\n });\n }\n\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (this.layoutType === LMLayoutType.MULTI_SELECT) {\n this.isMultiSelect = true;\n }\n\n this.isUserDefined = this.specField?.hasUserDefinedStates;\n this.isBoolean = this.onSearchForm && this.specField?.type === AppConstants.BOOLEAN;\n\n if (this.lmFieldServiceAdapter.lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n this.userDefinedReloadType = 'typeahead';\n } else {\n this.userDefinedReloadType = 'open';\n }\n\n if (!this.onSearchForm) {\n if (!(this.displayAsText || this.displayAsTag)) {\n this.subscribeToInlineError();\n }\n\n if (this.displayAsTag) {\n this.displayType = this.layoutDisplayType.TAG;\n\n } else if (this.displayAsText) {\n this.displayType = this.layoutDisplayType.TEXT;\n\n } else if (this.isMultiSelect) {\n this.displayType = this.layoutDisplayType.MULTI;\n if (this.modelField.isKeyFieldMultiselect) {\n this.maxSelected = null;\n\n } else {\n this.maxSelected = this.modelField.maxSelected;\n\n }\n } else if (this.isUserDefined) {\n this.displayType = this.layoutDisplayType.USER_DEFINED;\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n }\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'update') {\n // LMCLIENT-35595: Special case update required?\n if (this.updateDropDownStates()) {\n this.prepareUserDefinedRequest('', -1)\n .subscribe((result: LMUserDefinedResponse) => {\n const aryOptions = this.handleUserDefinedResponse(result);\n const found = aryOptions.find(v => v.value === this.modelField.value);\n if (!found) {\n this.modelField.states.push({ value: String(this.modelField.value), label: String(this.modelField.value) });\n }\n // needs to be in the next tick to update the dom with new state field values\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.dropdown.updated();\n }, 1);\n });\n });\n }\n }\n })\n );\n } else {\n if (this.specField.isBusClassContextField) {\n this.displayType = this.layoutDisplayType.BOOLEAN;\n\n } else if (this.model.isCubeSearchForm) {\n // Override the type since cube does not support multi-search yet. The model states will include a blank value.\n // Boolean does not add multiple attribute to drop down. Plain also has multiple attribute set.\n this.displayType = this.layoutDisplayType.BOOLEAN;\n\n } else if (this.isMultiSelect) {\n this.displayType = this.layoutDisplayType.MULTI;\n\n } else if (this.isBoolean) {\n this.displayType = this.layoutDisplayType.BOOLEAN;\n\n } else if (this.isUserDefined) {\n this.displayType = this.layoutDisplayType.USER_DEFINED;\n this.showUserDefinedAsMulti = this.lmFieldServiceAdapter.lmContextService.enableMultipleSearchTerms();\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n\n }\n }\n\n this.setSize();\n const size = (this.isUserDefined) ? this.specField.size + 2 : this.size;\n\n // a boolean field does not have a size attribute, so make the dropdown small\n if (this.displayType === this.layoutDisplayType.BOOLEAN) {\n this._fieldClassArray.push('dropdown-xs');\n }\n\n this.setFieldClasses(size);\n\n if (this.isTimezoneField) {\n this.previousTimeZone = this.modelField.value;\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // need to set readonly state for initial load\n/* if (this.dropdown) {\n this.dropdown.readonly = this.isReadOnly;\n }*/\n\n if (this.lmFieldServiceAdapter?.lmLoggerService?.cskLog === 2) {\n this.lmFieldServiceAdapter.lmLoggerService.timeEnd(`Total-Dropdown-${this.instanceId}`);\n }\n\n //LMCLIENT-34999 enterprise 4.56 prevents keyboard events triggered by function keys to bubble up,\n // added a keydown listener for the field options shortcut.\n this.element?.nativeElement?.querySelector(`select#${this.id} + .dropdown-wrapper > div.dropdown`)?.addEventListener('keydown', (event: KeyboardEvent) => {\n if (this.lmFieldServiceAdapter.lmKeyBoardShortcutService.onKeyDown(event) === LMKeyType.FIELDOPTION) {\n this.openFieldOptions(event);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n // only reset dirty to pristine on change if already dirty\n if (this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDropDownDirtyIndicator = false;\n }\n }\n super.onAfterResetDirty(event);\n }\n\n onDirty(event: SohoTrackDirtyEvent) {\n // only set dirty if not already dirty\n if (!this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDropDownDirtyIndicator = true;\n }\n }\n super.onDirty(event);\n }\n\n onPristine(event: SohoTrackDirtyEvent) {\n // only set pristine if already dirty\n if (this.isDirty) {\n if (this.isCompoundFieldMember && !this.isPreviewCompoundMember) {\n this.showDropDownDirtyIndicator = false;\n }\n }\n super.onPristine(event);\n }\n\n // sohoxi control event; user has interacted with the field and made a selection\n public onChanged(event: Event) {\n this.onChange();\n\n if (event && this.dropdown) {\n this.doHandleOnFieldChangedForDropdown = true;\n }\n\n if (this.isTimezoneField) {\n const previousTimeZone = this.previousTimeZone || this.modelField?.originalValue;\n const timeZone = event?.['data'];\n this.model.timeZoneChanged({ bindId: this.bindId, timeZone, previousTimeZone });\n this.previousTimeZone = timeZone;\n }\n }\n\n source = (response: any, searchTerm: string) => {\n this.busyIndicator = true;\n\n this.prepareUserDefinedRequest(searchTerm)\n .subscribe((result: LMUserDefinedResponse) => {\n const optionsAry = this.handleUserDefinedResponse(result);\n setTimeout(() => {\n if (typeof response === 'function') {\n // true indicates to sohoxi dropdown to not create option tags\n response(optionsAry, true);\n } else {\n // LMCLIENT-23932: need to call updated() in this case\n this.dropdown.updated();\n }\n\n this.busyIndicator = false;\n }, 1);\n\n return;\n },\n (error) => {\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.error([ 'Error in getUserDefinedStates', this.bindId, error ]);\n });\n };\n\n private buildFilterCriteriaQueryString(filterCriteria: Array): string {\n // set filter criteria on the url params\n if (filterCriteria) {\n const filterParamString = this.lmFieldServiceAdapter.lmUrlUtilService.filterFieldCriteriaToUrlParams(filterCriteria, 'fc');\n if (filterParamString) {\n return filterParamString;\n }\n }\n return '';\n }\n\n prepareUserDefinedRequest(searchTerm: string, forcedPagesize?: number): Observable {\n const selectFieldId = (this.isMultiSelect && !this.modelField.isKeyFieldMultiselect)\n ? this.specField.selectFieldId // change this with LMCLIENT-34628, don't need to send in something like Races.Race[1], should only send in Races.Race this.modelField.members[ 0 ]\n : this.bindId;\n\n const formUrlInfo = this.model.formUrlInfo;\n const compiledFormRequestUrl = formUrlInfo.formRequestUrl ? urltemplate.parse(formUrlInfo.formRequestUrl) : '';\n let formRequestUrl = (compiledFormRequestUrl) ? compiledFormRequestUrl.expand({ resourceId: this.model.formResourceId, onSearchForm: this.model.isSearchForm }) : '';\n let pageSize: number;\n\n if (forcedPagesize !== undefined) {\n pageSize = forcedPagesize;\n } else if (this.lmFieldServiceAdapter.lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n if (searchTerm && searchTerm.length > 0) {\n const filterCriteria: LMFilterFieldCriteria = {\n operator: 'equals',\n fieldId: selectFieldId,\n value: searchTerm,\n };\n\n // could be a case where there are no other csks on the url, so will have to use ? as the delimiter instead of &\n const delimiter = (formRequestUrl.indexOf('?') > -1) ? '&' : '?';\n formRequestUrl += delimiter + this.buildFilterCriteriaQueryString([ filterCriteria ]);\n }\n if (this.model.isSearchForm) {\n formRequestUrl = this.lmFieldServiceAdapter.lmUrlUtilService.addParamToUrl(formRequestUrl, 'searchform', 'true');\n }\n pageSize = this.lmFieldServiceAdapter.lmContextService.userDefinedStatesDefaultPageSize();\n }\n\n const dataView: LMDataView = this.getSearchFormValidatedDataView();\n const actionName = this.model.action;\n return this.lmFormRequestService\n .getUserDefinedStates(formRequestUrl, selectFieldId, dataView, actionName, pageSize);\n }\n\n handleUserDefinedResponse(result: LMUserDefinedResponse): Array {\n let optionsAry;\n if (this.lmFieldServiceAdapter.lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n if (result && result.hasOwnProperty('states') && Array.isArray(result.states)) {\n\n // Need to ensure that a selected value is in the options, even if it wasn't returned from the server call\n if (!this.modelField.isBlank) {\n if (!this.isMultiSelect) {\n // tslint:disable-next-line:triple-equals > using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if (!result.states.some((value: LMStateValue) => value.value == this.modelField.value)) {\n // have a selected value that isn't in the results array. Add it back in from the current modelField.state\n // triple-equals > using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n const selectedValue = this.modelField.states.filter((mfState: LMStateValue) => mfState.value == this.modelField.value);\n result.states = [ ... result.states, ... selectedValue ];\n }\n } else {\n // multiselect case\n if (Array.isArray(this.modelField.value)) {\n\n const len = this.modelField.value.length;\n let selectedValues: Array = [];\n\n for (let i = 0; i < len; i++) {\n const selectedValue = this.modelField.value[ i ];\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n const selectedStateValue = this.modelField.states.find((mfState: LMStateValue) => mfState.value == selectedValue);\n\n // have a selected value that isn't in the results array. Add it back in from the current modelField.state\n // triple-equals > using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if (selectedStateValue && !result.states.some((resultValue: LMStateValue) => resultValue.value == selectedStateValue.value)) {\n selectedValues = [ ... selectedValues, selectedStateValue ];\n }\n }\n\n result.states = [ ... result.states, ... selectedValues ];\n }\n }\n }\n\n if (this.isMultiSelect || (this.onSearchForm && !this.isUserDefined)) {\n optionsAry = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToMultiOptionsArray(result.states, this.modelField.value);\n\n } else {\n // need to format the zero value for BCD and PERCENT types as they need to match\n // the dataView field value for the track dirty processing to work correctly.\n // see also ViewBuilderBase.java > fieldAttributeToJsonObject()\n // and JSONConverter.java > fieldStateArrayForFieldValueNg()\n // and lm-model-field\n // using precision here as that is the property available for a state\n const zeroOrBlankValue = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStateFormatZeroValue(this.specField.type, this.modelField.precision);\n optionsAry = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToOptionsArray(result.states, true, zeroOrBlankValue, this.isUserDefined);\n }\n\n const extraMessages: Array = [];\n\n if (this.isMultiSelect && !this.modelField.isKeyFieldMultiselect) {\n const selectMore: LMStateValue = {\n value: 'NANSelection',\n label: this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('NumberSelected'), [ this.modelField.value.length, this.modelField.maxSelected ]),\n disabled: true\n };\n\n extraMessages.push(selectMore);\n }\n\n if (result.hasMore) {\n const searchToRefine: LMStateValue = {\n value: 'NANSearch',\n label: Soho.Locale.translate('RefineSearch'),\n disabled: true\n };\n\n extraMessages.push(searchToRefine);\n // this.modelField.states = [ ...optionsAry, searchToRefine];\n }\n\n this.modelField.states = [ ... optionsAry, ... extraMessages ];\n } else {\n // an error\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.error([ 'Error in getUserDefinedStates', this.bindId, result ]);\n }\n } else {\n if (Array.isArray(result)) {\n if (this.isMultiSelect || (this.onSearchForm && this.isUserDefined)) {\n optionsAry = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToMultiOptionsArray(result, this.modelField.value);\n\n } else {\n // need to format the zero value for BCD and PERCENT types as they need to match\n // the dataView field value for the track dirty processing to work correctly.\n // see also ViewBuilderBase.java > fieldAttributeToJsonObject()\n // and JSONConverter.java > fieldStateArrayForFieldValueNg()\n // and lm-model-field\n // using precision here as that is the property available for a state\n const zeroOrBlankValue = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStateFormatZeroValue(this.specField.type, this.modelField.precision);\n optionsAry = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToOptionsArray(result, true, zeroOrBlankValue, this.isUserDefined);\n }\n\n this.modelField.states = optionsAry;\n } else {\n // an error\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.error([ 'Error in getUserDefinedStates', this.bindId, result ]);\n }\n }\n return optionsAry;\n }\n\n updateDropDownStates(): boolean {\n // Special case where the form field is read only. The user will not be able to click on the field to retrieve user defined states.\n // But an initial value / oto rule may come back with data. Fetch the states and update the control to display the value.\n if (this.isUserDefined && !this.modelField.isBlank && this.isReadOnly) {\n if (this.modelField.states === undefined || this.modelField.states.length === 0) {\n // no states\n return true;\n } else if ( this.modelField.states.length === 1) {\n // If there is only one state, is it the same as the model field value? Fetch if the values are not the same.\n return this.modelField.value !== this.modelField.states[ 0 ].value;\n }\n }\n return false;\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n trackByValue(index: number, state: LMStateValue) {\n return state.value;\n }\n\n onBlur(event) {\n super.onBlur(event);\n }\n}\n","\n\n\n\n{{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n\n\n\n\n\n \n \n \n \n \n \n \n {{triggerValue | formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n {{triggerValue | formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n\n\n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'right'\"\n [trigger]=\"'click'\"\n (focus)=\"onFocus($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\"\n (contextmenu)=\"onContextMenu($event)\">\n \n {{triggerValue | formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n {{modelField.value | stateAsText:modelField.states:true}}\n \n \n\n \n \n {{modelField.value | stateAsText:modelField.states}}

\n
\n\n \n \n
\n
\n\n
\n \n
\n\n\n

{{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

\n
\n\n\n \n {{modelField.value | stateAsText:modelField.states}}

\n
\n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

\n
\n
\n\n\n \n \n \n\n\n","export * from './lm-field-editor.component';\nexport * from './lm-field-editor-compare.component';\n","import {Component, Input, NgZone, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {LMFieldBaseComponent} from '@field/lm-field-base.component';\nimport {LMModel, LMModelChangedEvent} from '@form/model';\nimport {LMFieldServiceAdapter} from '@field/lm-field-service-adapter';\nimport {LMLplEditorService} from '@lplEditor/lm-lpl-editor.service';\nimport {LMLplEditorCompareComponent} from '@components/lplEditor';\n\n@Component({\n selector: 'lm-field-editor-compare',\n templateUrl: './lm-field-editor-compare.component.html',\n styleUrls: [ 'lm-field-editor-compare.component.scss' ]\n})\n\nexport class LMFieldEditorCompareComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n\n @ViewChild('LplEditorCompare') lplEditorCompareComponent: LMLplEditorCompareComponent;\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n public rows: number = undefined;\n public editorValidationOptions: LMEditorValidationOptions = undefined;\n public editorLpl: string;\n public compareLpl: string;\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n protected lmLplEditorService: LMLplEditorService,\n private ngZone: NgZone) {\n super(lmFieldServiceAdapter);\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n // see JFieldClobTextArea > DEFAULT_TEXTAREA_LINES\n this.rows = (this.layoutObject.lines === undefined || this.layoutObject.lines === 0) ? 4 : this.layoutObject.lines;\n\n if (!this.displayAsText) {\n this.subscribeToInlineError();\n }\n\n this.setSize();\n this.setFieldClasses();\n this.updateValidationOptions();\n this.updateDiffFields();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n // update the input to pass it to the lm-lpl-editor!\n this.handleModelChanged();\n }\n })\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n onLplChangedEvent(lpl: string) {\n this.ngZone.run(args => this.handleLplChanged(lpl));\n }\n\n private updateDiffFields() {\n this.editorLpl = this.modelField.value;\n this.compareLpl = this.fetchCompareFieldValue();\n }\n\n private fetchCompareFieldValue(): string {\n const compareWith = this.layoutObject?.compareWith;\n const compareWithField = this.model?.getField(compareWith);\n return compareWithField?.value;\n }\n private updateValidationOptions(): void {\n this.editorValidationOptions = this.lmLplEditorService.createValidationOptions(this.specField.lplValSpec, this.model);\n }\n\n private handleLplChanged(lpl: string) {\n this.isDirty = this.model.evaluateAndApplyDirtyState(this.bindId);\n this.modelField.value = lpl;\n }\n\n private handleModelChanged() {\n // need to set input on the component for the change detection to work!\n if (this.lplEditorCompareComponent) {\n this.lplEditorCompareComponent.lpl = this.modelField.value;\n this.lplEditorCompareComponent.original = this.fetchCompareFieldValue();\n this.lplEditorCompareComponent.validationOptions = this.lmLplEditorService.createValidationOptions(this.specField.lplValSpec, this.model);\n }\n }\n}\n","\n\n","import {Component, Input, NgZone, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {LMFieldBaseComponent} from '@field/lm-field-base.component';\nimport {LMModel, LMModelChangedEvent} from '@form/model';\nimport {LMFieldServiceAdapter} from '@field/lm-field-service-adapter';\nimport {LMLplEditorService} from '@lplEditor/lm-lpl-editor.service';\nimport {LMLplEditorComponent} from '@components/lplEditor';\n\n@Component({\n selector: 'lm-field-editor',\n templateUrl: './lm-field-editor.component.html',\n styleUrls: [ 'lm-field-editor.component.scss' ]\n})\n\nexport class LMFieldEditorComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n\n @ViewChild('LplEditor') lplEditorComponent: LMLplEditorComponent;\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n public rows: number = undefined;\n public editorValidationOptions: LMEditorValidationOptions = undefined;\n public editorLpl: string;\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n protected lmLplEditorService: LMLplEditorService,\n private ngZone: NgZone) {\n super(lmFieldServiceAdapter);\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n // see JFieldClobTextArea > DEFAULT_TEXTAREA_LINES\n this.rows = (this.layoutObject.lines === undefined || this.layoutObject.lines === 0) ? 4 : this.layoutObject.lines;\n\n if (!this.displayAsText) {\n this.subscribeToInlineError();\n }\n\n this.setSize();\n this.setFieldClasses();\n\n this.editorLpl = this.modelField.value;\n this.editorValidationOptions = this.lmLplEditorService.createValidationOptions(this.specField.lplValSpec, this.model);\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n // update the input to pass it to the lm-lpl-editor!\n this.handleModelChanged();\n }\n })\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n onLplChangedEvent(lpl: string) {\n this.ngZone.run(args => this.handleLplChanged(lpl));\n }\n\n private handleLplChanged(lpl: string) {\n this.modelField.value = lpl;\n this.isDirty = this.model.evaluateAndApplyDirtyState(this.bindId);\n }\n\n private handleModelChanged() {\n // need to set input on the component for the change detection to work!\n if (this.lplEditorComponent) {\n this.lplEditorComponent.lpl = this.modelField.value;\n this.lplEditorComponent.validationOptions = this.lmLplEditorService.createValidationOptions(this.specField.lplValSpec, this.model);\n }\n }\n}\n","\n\n\n","export * from './lm-field-options.component';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { SohoContextMenuDirective } from 'ids-enterprise-ng';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[lm-field-options]',\n templateUrl: './lm-field-options.component.html',\n styleUrls: [ 'lm-field-options.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMFieldOptionsComponent implements OnDestroy {\n\n @ViewChild(SohoContextMenuDirective) contextmenu: SohoContextMenuDirective;\n @ViewChild('FieldOptionsButton', {read: ElementRef}) fieldOptionsButton: ElementRef;\n\n @Input() ajaxCallbackFunction: SohoPopupMenuSourceFunction;\n @Input() contextMenuEventFunction: Function;\n @Input() hasContextMenu: boolean;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() dataEntryMode = false;\n @Input() isMemberField = false;\n @Input() isCheckBoxField = true;\n @Input() buttonId: string;\n @Input() fieldAutomationId: string;\n @Input() fieldOptionsLabel: string;\n @Input() isInAccessibilityMode: boolean;\n public showFieldOptions = false;\n @Input() displayFieldOptions = false;\n\n private fieldOptionsClicked = false;\n public overrideTabbability = false;\n\n @HostBinding('style.position') get hostPosition() {\n return 'relative';\n }\n\n @HostBinding('style.display') get hostDisplay() {\n // If a single textarea in a paragraph layout\n // Allow textarea to display block so it will span 100% width\n if ((this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.textAreaOnly) || this.isCheckBoxField) {\n return '';\n } else {\n return 'inline-flex';\n }\n }\n\n private destroy$ = new Subject();\n\n constructor(\n private el: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private zone: NgZone) {\n const element = el.nativeElement;\n const mouseEnter$ = fromEvent(element, 'mouseenter', { passive: true });\n const mouseLeave$ = fromEvent(element, 'mouseleave', { passive: true });\n\n mouseEnter$.pipe(\n tap(() => {\n this.showFieldOptions = true;\n this.changeDetectorRef.markForCheck();\n }),\n takeUntil(this.destroy$)\n ).subscribe();\n\n mouseLeave$.pipe(\n tap(() => {\n if (this.fieldOptionsClicked) {\n // if the field options has been clicked, leave the button visible for a bit\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.showFieldOptions = false;\n this.fieldOptionsClicked = false;\n this.changeDetectorRef.markForCheck();\n }, 100);\n });\n } else {\n this.showFieldOptions = false;\n this.changeDetectorRef.markForCheck();\n }\n }),\n takeUntil(this.destroy$)\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n }\n handleFocus() {\n this.fieldOptionsButton?.nativeElement?.classList.remove('hide-focus');\n }\n\n public openFieldOptions(event: Event) {\n if (event) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n this.fieldOptionsClicked = true;\n this.showFieldOptions = true;\n this.contextmenu.initializeComponent();\n }\n\n public onFieldOptionsContextMenuClose() {\n this.showFieldOptions = true;\n this.fieldOptionsClicked = false;\n // LMCLIENT-38107 on modals, we need to make the button tabbable to not mess up the tab order.\n if (!this.isInAccessibilityMode) {\n this.overrideTabbability = true;\n }\n if (this.fieldOptionsButton?.nativeElement) {\n this.fieldOptionsButton.nativeElement.focus();\n }\n }\n\n handleBlur() {\n if (!this.isInAccessibilityMode) {\n this.overrideTabbability = false;\n }\n if (!this.fieldOptionsClicked) {\n this.showFieldOptions = false;\n }\n }\n}\n","\n\n
\n \n
\n
    \n
    \n
    \n
    \n","export * from './lm-fileupload.component';\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n AfterViewInit,\n ElementRef,\n HostBinding\n} from '@angular/core';\nimport { SohoFileUploadComponent, SohoMessageService } from 'ids-enterprise-ng';\n\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel, LMModelChangedEvent, LMModelField } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { DocumentResource } from '@resources/index';\n\n@Component({\n selector: 'lm-fileupload',\n templateUrl: 'lm-fileupload.component.html',\n styleUrls: [ 'lm-fileupload.component.scss' ]\n})\nexport class LMFileuploadComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(SohoFileUploadComponent) fileUpload: SohoFileUploadComponent;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Input() layoutObject: LMFileUploadLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n private _originalValue = '';\n private ignoreDirtyEvent = false;\n private needsDirtyCheck = false;\n private _docTitleField: LMModelField;\n private _mimeTypeField: LMModelField;\n private _mimeType = '';\n public deleteAttachmentTitle = '';\n public isInAccessibilityMode: boolean;\n public url: string;\n\n public get isEmpty(): boolean {\n const isEmpty = !this.modelField.value;\n if (isEmpty && !!this.modelField.originalValue && this.trackDirtyChildren?.length && this.needsDirtyCheck) {\n this.trackDirtyChildren.first.changeDirty();\n this.needsDirtyCheck = false;\n }\n return isEmpty;\n }\n\n public get originalValue(): string {\n return this._originalValue;\n }\n\n public getUrl(): string {\n if (!this.modelField?.value) {\n return '';\n }\n\n const dataView = this.model.getData();\n const resourceId = this.field.documentResourceId;\n const resource = new DocumentResource({ resourceId, dataView }, '');\n\n let params = {} as any;\n if (this.model.action) {\n params.action = this.model.action;\n }\n if (this.model.formSpec.busFormSpec.name) {\n params.form = this.model.formSpec.busFormSpec.name;\n }\n\n const formUrlInfo = this.model.formUrlInfo;\n if ((dataView.processFlowActions && dataView.processFlowActions.length) || formUrlInfo.processFlow) {\n params = Object.assign(params, formUrlInfo.navigationContext);\n params.redirect = true;\n }\n if (formUrlInfo.sourceResource) {\n params[ formUrlInfo.sourceResource.resourceType ] = formUrlInfo.sourceResource.resourceId;\n }\n\n return this.lmUrlUtilService.buildUrl({ resource, params });\n }\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private sohoMessageService: SohoMessageService,\n private lmUrlUtilService: LMUrlUtilService,\n private elementRef: ElementRef\n ) {\n super(lmFieldServiceAdapter);\n this.deleteAttachmentTitle = Soho.Locale.translate('DeleteAttachment');\n\n // a unique value is required for original value so the field will always display as dirty\n this._originalValue = this.id + '-' + this.bindId;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.isInAccessibilityMode = this.lmFieldServiceAdapter.lmGlobalPersonalizationService.getAccessibilityMode();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.url = this.getUrl();\n\n // when record changes, update the controls\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (this.fileUpload && modelChangedEvent.eventType === 'set') {\n // clear the files array\n // fileUpload.clearUploadFile() will trigger a change event which is caught with an onDirty event\n // and needs to be ignored at this point\n if (modelChangedEvent.source?.type === 'paging') {\n this.ignoreDirtyEvent = true;\n this.fileUpload.clearUploadFile();\n this.ignoreDirtyEvent = false;\n } else if (modelChangedEvent.source?.type === 'transaction') {\n // means form is saved so its no longer dirty, need this so that\n // it would properly transition to dirty after clearing it again\n super.onPristine();\n }\n }\n\n // initialize the trackdirty control so it gets current information\n if (this.trackDirtyChildren.length > 0) {\n this.trackDirtyChildren.first.updated();\n }\n\n this.url = this.getUrl();\n })\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n //LMCLIENT-36048 need to make the soho-fileupload readonly input not tabbable when in power user mode\n if(!this.isInAccessibilityMode && this.isReadOnly) {\n this.elementRef?.nativeElement?.querySelector('input.fileupload')?.setAttribute('tabindex', '-1');\n }\n\n if (this.modelField.docTitleFieldId) {\n this._docTitleField = this.model.getField(this.modelField.docTitleFieldId);\n }\n\n if (this.modelField.mimeTypeFieldId) {\n this._mimeTypeField = this.model.getField(this.modelField.mimeTypeFieldId);\n\n if (this.modelField.mimeType) {\n this._mimeType = this.modelField.mimeType;\n }\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private clearFile() {\n this.modelField.multiPartFile = undefined;\n this.modelField.value = '';\n\n if (this._docTitleField) {\n this._docTitleField.value = '';\n }\n\n if (this._mimeTypeField) {\n this._mimeType = '';\n this._mimeTypeField.value = this._mimeType;\n }\n }\n\n onDirty(event) {\n if (this.ignoreDirtyEvent) {\n return;\n }\n\n super.onDirty(event);\n\n if (event.currentTarget) {\n const files = event.currentTarget.files;\n\n // get the filename from the element\n if (files && files.length > 0) {\n if (files[ 0 ].size <= 0) {\n const dialogId = 'EmptyFile';\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('CannotSelectAnEmptyFile'))\n .title('')\n .buttons([\n {\n id: this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ this.id, dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ])\n .open();\n\n if (this.fileUpload) {\n this.fileUpload.clearUploadFile();\n }\n } else {\n this.modelField.multiPartFile = files[ 0 ];\n const file = this.modelField.multiPartFile as File;\n if (this._docTitleField) {\n this._docTitleField.value = file.name;\n }\n\n if (this._mimeTypeField) {\n this._mimeType = this.modelField.multiPartFile.type;\n this._mimeTypeField.value = this._mimeType;\n }\n }\n } else if (!this.needsDirtyCheck) {\n // a clear happened, skip this if it\n // originated from removeAttachment\n this.clearFile();\n }\n\n this.handleOnFieldChanged();\n }\n }\n\n onPristine() {\n // ---------------------------------------------------------------------------\n // NOTE: When you attach a file on a blank file upload field, modelField.value\n // remains empty until form was saved. However, modelField.multiPartFile will\n // be set and so we need to clear it here if the field is cleared and goes\n // back to empty/pristine state which won't be caught by onDirty handler above\n // ---------------------------------------------------------------------------\n if (!this.modelField.value && this.modelField.multiPartFile) {\n this.clearFile();\n }\n super.onPristine();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n public removeAttachment() {\n this.clearFile();\n this.needsDirtyCheck = true;\n }\n}\n","\n
    \n \n
    \n \n \n

    {{modelField.value}}

    \n {{modelField.value}}\n \n
    \n
    \n \n \n \n
    \n\n\n \n \n \n\n\n","export * from './lm-hyperlink.component';\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMCompactFormEvent, LMFieldBaseComponent, LMSubFormEvent } from '@field/lm-field-base.component';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMTextEvent } from '@field/text';\nimport { AppConstants, LMButtonType } from '@utils/app.constants';\nimport { LMModelChangedEvent } from '@form/model';\nimport { SohoTooltipDirective } from 'ids-enterprise-ng';\n\nenum LMHyperlinkTypeDisplayEnum {\n MAIL_LINK = 0,\n PLAIN_LINK\n}\n\n@Component({\n selector: 'lm-hyperlink',\n templateUrl: './lm-hyperlink.component.html',\n styleUrls: [ 'lm-hyperlink.component.scss' ]\n})\nexport class LMHyperlinkComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @Input() layoutObject: LMButtonLayout;\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @ViewChild(SohoTooltipDirective) tooltip: SohoTooltipDirective;\n\n public hyperlinkType: string = null;\n public resourceValue: string = null;\n public mailToHttpUrl = false;\n public valid = false;\n public textMessageRule: LMMessageRule\n\n public displayType: LMHyperlinkTypeDisplayEnum;\n public layoutDisplayType;\n public validSohoIcon: boolean;\n\n private isCompactForm = false;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMHyperlinkTypeDisplayEnum;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n // TODO: need to evaluate this again; re: LMCLIENT-26683:\n const spec: LMSpecField = this.compactFormDialogSpec;\n\n // for a compact form, use the spec and modelField based on this.field.fieldId\n if (!this.specField && spec) {\n this.isCompactForm = true;\n this.specField = spec;\n this.modelField = this.model.getField(this.field.fieldId);\n }\n\n this.textMessageRule = this.getTextMessageRule();\n\n this.valid = this.checkValidity();\n\n if (this.layoutObject.httpUrl && this.layoutObject.httpUrl.resourceValue.indexOf('mailto:') === 0) {\n this.mailToHttpUrl = true;\n }\n\n if (this.layoutObject.icon) {\n this.validSohoIcon = this.lmFieldServiceAdapter.lmThemeService.isValidSohoIcon(this.layoutObject.icon);\n }\n\n if (this.mailToHttpUrl) {\n this.displayType = this.layoutDisplayType.MAIL_LINK;\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN_LINK;\n\n }\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n // triggerValue changes to indicate the formatMessageRule pipe to fire\n // triggerValue is set in lm-field-base.component; do not set it here\n this.textMessageRule = this.getTextMessageRule();\n }\n\n this.valid = this.checkValidity();\n })\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n // duplicate code in lm-button\n // FYI. Rich client does NOT check validity of a navigation button on a form\n checkValidity() {\n let valid = true;\n\n // if (this.field.type === AppConstants.BUTTON_TYPE_NAVIGATION) {\n // // TODO: LMCLIENT-21757, LMCLIENT-23380, LMCLIENT-25651; temp work around until LMRK-83694 is completed\n // if (this.lmFieldServiceAdapter.lmFormService.isStepProcessForm(this.model.formSpec)) {\n // return true;\n // }\n //\n // valid = !this.lmFieldServiceAdapter.lmConditionUtilService.isNavigationInvalid(this.layoutObject, this.model);\n // }\n\n if (this.layoutObject.validity) {\n valid = this.lmFieldServiceAdapter.lmConditionUtilService.isValid(this.layoutObject.validity as LMCondition[], this.model);\n }\n\n if (this.layoutObject.isStandardAction) {\n if (this.layoutObject.standardActionName !== AppConstants.STANDARD_SAVE) {\n // only save supported, disable all other standard actions\n valid = false;\n }\n }\n\n return valid;\n }\n\n onClickEvent(event) {\n this.busyIndicator = true;\n this.hyperlinkType = 'show-visited';\n\n if (this.isCompactForm) {\n this.fieldEvent.emit(new LMCompactFormEvent(event, this.field.fieldId, this.specField.label, this.specField.layout, this.layoutObject.moreSpecFields));\n\n } else if (this.isSubForm) {\n this.fieldEvent.emit(new LMSubFormEvent(event, this.field.fieldId, this.field.buttonSubForm.title, this.field.buttonSubForm));\n\n } else if (this.layoutObject.type === LMButtonType.SHOWEDITOR && this.modelField.isCompoundField) {\n const title = this.specFields[ this.layoutObject.fieldId ].label;\n const layout: LMFormLayout = { sections: this.layoutObject.layout as Array };\n this.fieldEvent.emit(new LMCompactFormEvent(event, this.field.fieldId, title, layout, this.layoutObject.moreSpecFields));\n\n } else {\n this.fieldEvent.emit(new LMTextEvent(event, this.field));\n }\n this.busyIndicator = false;\n }\n\n onMouseEnter() {\n if (this.layoutInfo.isContextFormOnSide) {\n this.tooltip.content = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.textMessageRule, this.model, this.specFields);\n }\n }\n\n private getTextMessageRule() {\n if (this.field) {\n if (this.field.hasOwnProperty('text')\n && this.field.text.hasOwnProperty('resourceValue')) {\n return this.field.text;\n\n } else if (this.field.hasOwnProperty('title')\n && this.field.title.hasOwnProperty('resourceValue')) {\n return this.field.title;\n }\n }\n\n return undefined;\n }\n}\n","\n","export * from './lm-image.component';\n","import { AfterViewInit, Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { LMFileUploadService } from '@services/file-upload/lm-fileupload.service';\nimport * as ExifReader from 'exifreader';\nimport { fromEvent } from 'rxjs';\nimport { AppConstants } from '@app/utils';\n\nexport class ImageMenuEntry {\n menuId: string;\n disabled?: boolean;\n text: string;\n}\n\nenum LMImageTypeDisplayEnum {\n READ_ONLY = 0,\n PLAIN\n}\n\n@Component({\n selector: 'lm-image',\n templateUrl: './lm-image.component.html',\n styleUrls: [ './lm-image.component.scss' ]\n})\nexport class LMImageComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Input() layoutObject: LMImageLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('fileImage') fileImage: ElementRef;\n @ViewChild('imgCanvas') imgCanvas: ElementRef;\n\n @HostBinding('class') imageClass = '';\n\n public menuId: string;\n public contextEntries: Array = [];\n public imageHeight: number;\n public imageWidth: number;\n public imageUrl: string | SafeUrl;\n public hasUpdateAction: boolean;\n public missingImageUrl: string | SafeUrl;\n public missingImage: boolean;\n public isRandomBackground: boolean;\n public isForeGroundText: boolean;\n public foreGroundText: string;\n public bgColorClass: string;\n public imageAltText: string;\n\n public displayType: LMImageTypeDisplayEnum;\n public layoutDisplayType;\n\n // TODO: //maf look into using $theme-size-font-base?\n private lines: string = undefined;\n private perspective: string = undefined;\n //JFieldBinarySelectionField > IMAGE_LINES_DEFAULT\n private IMAGE_LINES_DEFAULT = 8;\n\n private getImageClass(): string {\n let imageClass = 'portrait-image';\n\n switch (this.layoutObject && this.layoutObject.displayImageAs) {\n case 'photo':\n imageClass = 'photo-image';\n break;\n\n case 'full':\n imageClass = 'full-image';\n break;\n\n // falls through to break\n default:\n case 'portrait':\n imageClass = 'portrait-image';\n break;\n }\n\n return imageClass;\n }\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmFileUploadService: LMFileUploadService,\n ) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMImageTypeDisplayEnum;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.menuId = this.field.bindId + '_imageMenu';\n\n if (this.layoutObject.hasOwnProperty('displayImageAs')) {\n this.perspective = this.layoutObject.displayImageAs;\n }\n\n if (this.layoutObject.hasOwnProperty('rowspan')) {\n this.lines = this.layoutObject.rowspan;\n }\n\n if (this.perspective === 'full') {\n\n } else if (this.lines) {\n this.imageHeight = this.imageWidth = parseInt(this.lines, 10) * AppConstants.DEFAULT_LINE_HEIGHT;;\n } else {\n this.imageHeight = this.imageWidth = this.IMAGE_LINES_DEFAULT * AppConstants.DEFAULT_LINE_HEIGHT;;\n }\n\n this.imageUrl = this.lmFieldServiceAdapter.lmFormatUtilService.toImageUrlValue(this.modelField.value, this.lines, this.perspective);\n this.missingImage = this.modelField.missingImage;\n this.isForeGroundText = this.field.foregroundText;\n this.isRandomBackground = this.field.isRandomBackground;\n\n if (this.missingImage) {\n this.missingImageUrl = this.imageUrl;\n } else if (this.layoutObject.url) {\n this.missingImageUrl = this.layoutObject.url;\n }\n\n if (this.isForeGroundText) {\n const msgRule = this.field.foregroundText;\n this.foreGroundText = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(msgRule, this.model, this.specFields);\n }\n\n if (this.isRandomBackground) {\n this.bgColorClass = `image-initials ${this.lmFieldServiceAdapter.lmThemeService.getUniqueBackgroundColorClass(this.foreGroundText)}`;\n }\n\n if (this.isReadOnly) {\n this.displayType = this.layoutDisplayType.READ_ONLY;\n this.imageAltText = this.foreGroundText;\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n this.imageAltText = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('ImageEditAltText'), this.foreGroundText || '');\n }\n\n this.imageClass = this.getImageClass();\n this.hasUpdateAction = this.model.hasUpdateAction || this.model.isCreateAction;\n\n // Field's model change happens during paging operations\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n this.imageUrl = this.lmFieldServiceAdapter.lmFormatUtilService.toImageUrlValue(this.modelField.value, this.lines, this.perspective);\n this.missingImage = this.modelField.missingImage;\n // Reset input value so we can detect file change event even when selecting the same image after paging\n this.fileInput.nativeElement.value = null;\n })\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n this.contextEntries.push({\n text: Soho.Locale.translate('Browse'),\n menuId: 'Browse'\n });\n\n this.contextEntries.push({\n text: Soho.Locale.translate('Clear'),\n menuId: 'Clear'\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onBeforeOpen(event: any) {\n // disable Clear entry if it's a missing image\n this.contextEntries[ 1 ].disabled = this.missingImage;\n }\n\n onImageMenuFired(menuId: string) {\n if (menuId === 'Browse') {\n this.fileInput.nativeElement.click();\n\n if (this.isForeGroundText) {\n this.foreGroundText = undefined;\n }\n\n } else if (menuId === 'Clear') {\n // for a 'Clear', the data value sent is an empty string, but the component must display a source image\n this.modelField.value = '';\n this.imageUrl = this.missingImageUrl ? this.missingImageUrl : this.lmFieldServiceAdapter.lmFormatUtilService.toImageUrlValue(this.modelField.value, this.lines, this.perspective);\n this.missingImage = true;\n\n // not using soho-trackdirty as the content of the image object can change while the file name can remain the same\n this.model.setDirty(this.bindId, true);\n\n if (this.isForeGroundText) {\n const msgRule = this.field.foregroundText;\n this.foreGroundText = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(msgRule, this.model, this.specFields);\n }\n }\n\n return false;\n }\n\n onFileChanged(event) {\n if (event.srcElement) {\n const files = event.srcElement.files;\n\n this.modelField.multiPartFile = files[ 0 ];\n\n this.runFileSelect(event, files[ 0 ]);\n }\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n runFileSelect(event, file: File) {\n if (!file.type.match('image.*')) {\n return;\n }\n const reader: FileReader = new FileReader();\n\n if (ExifReader) {\n fromEvent(reader, 'loadend').subscribe(() => {\n const tags: ExifReader.Tags = ExifReader.load(reader.result as ArrayBuffer);\n const pixDimX = tags['Image Height']?.value;\n const pixDimY = tags['Image Width']?.value;\n const orientation = tags.Orientation?.value;\n this.setBlobValue(file, orientation, this.imgCanvas.nativeElement, pixDimX, pixDimY);\n });\n reader.readAsArrayBuffer(file);\n } else {\n fromEvent(reader, 'loadend').subscribe(() => {\n this.imageUrl = reader.result;\n this.modelField.value = reader.result;\n this.missingImage = false;\n });\n reader.readAsDataURL(file);\n }\n\n // not using soho-trackdirty as the content of the image object can change while the file name can remain the same\n this.model.setDirty(this.bindId, true);\n }\n\n public setBlobValue(file, orientation, canvas, pixDimX, pixDimY) {\n const isLandscape = (orientation === 1 || orientation === 2 || orientation === 3 || orientation === 4 || orientation === undefined);\n\n const reader: FileReader = new FileReader();\n reader.onload = (e: Event) => {\n const img = new Image();\n img.onload = () => {\n const ctx: CanvasRenderingContext2D = canvas.getContext('2d');\n\n const MAX_WIDTH = img.width; // isLandscape ? 800 : 600;\n const MAX_HEIGHT = img.height; // isLandscape ? 600 : 800;\n\n let orientationOption: string;\n if ((pixDimX > pixDimY) && orientation === 6) {\n // when orientation is recognized as portrait but dimensions are landscape. swap dimensions\n const tempHeight = img.height;\n img.height = img.width;\n img.width = tempHeight;\n\n orientationOption = 'portrait';\n } else if (orientation === 0 && (pixDimX > pixDimY)) { // orientation 0 and landscape\n orientationOption = 'landscape';\n } else if (orientation === 0 && (pixDimX < pixDimY)) { // orientation 0 and portrait\n orientationOption = 'portrait';\n }\n\n let width = img.width;\n let height = img.height;\n\n if (width > height) {\n if (width > MAX_WIDTH) {\n height = MAX_HEIGHT;\n width = MAX_WIDTH;\n }\n } else {\n if (height > MAX_HEIGHT) {\n width = MAX_WIDTH;\n height = MAX_HEIGHT;\n }\n }\n\n canvas.width = isLandscape ? width : height;\n canvas.height = isLandscape ? height : width;\n\n this.lmFileUploadService.rotateOrFlip(ctx, orientation, orientationOption, width, height);\n let contextLeft = 0;\n let contextTop = 0;\n\n if (orientation !== 1 && orientation !== undefined) {\n contextLeft = -(width / 2);\n contextTop = -(height / 2);\n }\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, contextLeft, contextTop, width, height);\n\n const dataUrl = canvas.toDataURL(file.type);\n this.imageUrl = dataUrl;\n this.modelField.value = dataUrl;\n const blob = this.lmFileUploadService.dataURLToBlob(dataUrl);\n this.modelField.multiPartFile = new Blob([ blob ], { type : file.type });\n this.missingImage = false;\n };\n // @ts-ignore\n img.src = e.target.result;\n }\n reader.readAsDataURL(file);\n }\n\n trackByMenuId(index: number, menuEntry: ImageMenuEntry) {\n return menuEntry.menuId;\n }\n}\n","\n \n \"{{imageAltText}}\"\n\n \n \n \n \n\n \n {{foreGroundText}}\n \n\n \n \n\n \n \"{{imageAltText}}\"\n\n \n \n \n \n\n \n \n \n\n","// Move all services to be exported first in index.ts files, to avoid circular\n// dependency issues\nexport * from './lm-field-subscription.service';\n\nexport * from './lm-field-service-adapter';\nexport * from './lm-field-style.directive';\nexport * from './lm-field-uppercase.directive';\nexport * from './lm-text-style.directive';\n\nexport * from './button';\nexport * from './captchacontrol';\nexport * from './checkbox';\nexport * from './checkcontrol';\nexport * from './compoundfield';\nexport * from './date';\nexport * from './dropdown';\nexport * from './fieldoptions';\nexport * from './scanoptions';\nexport * from './fileupload';\nexport * from './hyperlink';\nexport * from './image';\nexport * from './label';\nexport * from './lm-field-base.component';\nexport * from './lm-mouse-over-text.component';\nexport * from './lookup';\nexport * from './manualrepresentation';\nexport * from './menu';\nexport * from './processindicator';\nexport * from './progress';\nexport * from './radiobutton';\nexport * from './rating';\nexport * from './richtext';\nexport * from './text';\nexport * from './textarea';\nexport * from './time';\nexport * from './trackdirty';\nexport * from './busclassfield';\nexport * from './simpleprogress';\n","export * from './lm-label.directive';\nexport * from './lm-label.module';\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnInit\n} from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\n\n@Directive({\n selector: 'label[lm-label]', // tslint:disable-line\n exportAs: 'lm-label'\n})\nexport class LMLabelDirective implements OnInit, AfterViewInit {\n @Input() layoutField: LMFormLayoutField;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() parentIsFormLayout: boolean;\n @Input() id: string;\n @Input() displayInlineBlock: false;\n @Input() checkBoxIsDisplayAsText: false;\n @Input() personalize: false;\n @Input() isCompoundFieldMember: false;\n\n private label: LMLabelLayout;\n\n constructor(private elementRef: ElementRef) {\n }\n\n /**\n * used to set the foreground color when an upper element has\n * a class of `personalize-header` that has a parent element\n * with a class of `is-personalizable`\n */\n @HostBinding('class.personalize-text') get shouldPersonalize() {\n return this.personalize;\n }\n\n @HostBinding('class.lm-number-label') get isNumberLabel() {\n return this.layoutField && this.layoutField.numberLabel;\n }\n\n @HostBinding('class.lm-no-label') get isNoLabel(): boolean {\n // No label if form text in a single column\n if (this.layoutField?.type?.toUpperCase() === AppConstants.FORMTEXT && this.lmColumnLayoutInfo?.nbrColumns === 1) {\n return true;\n }\n\n if (this.layoutField?.labelSuppressed) {\n return true;\n }\n\n if (this.layoutField?.mouseOverText) {\n return false;\n }\n\n return this.label && this.label.nolabel;\n }\n\n @HostBinding('class.lm-paragraph-no-label') get hasNoVisibleLabels(): boolean {\n return this.lmParagraphLayoutInfo && !this.lmParagraphLayoutInfo.hasVisibleLabels;\n }\n\n @HostBinding('class.no-colon') get isNoColon(): boolean {\n // Exclude paragraph layouts\n if (this.lmParagraphLayoutInfo && !this.isCompoundFieldMember) {\n return false;\n }\n\n // No label if form text in a single column\n if ((this.layoutField && this.layoutField.type && this.layoutField.type.toUpperCase()) === AppConstants.FORMTEXT\n && (this.lmColumnLayoutInfo && this.lmColumnLayoutInfo.nbrColumns === 1)\n ) {\n return true;\n }\n\n return this.label && this.label.noColon;\n }\n\n ngOnInit() {\n if (this.layoutField) {\n this.label = this.layoutField.label;\n }\n }\n\n ngAfterViewInit() {\n if (this.lmColumnLayoutInfo) {\n if (this.lmColumnLayoutInfo && this.elementRef && (this.lmColumnLayoutInfo.imageInFirstColumn || this.lmColumnLayoutInfo.distributed)) {\n this.elementRef.nativeElement.setAttribute('title', this.elementRef.nativeElement.textContent);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LMLabelDirective } from './lm-label.directive';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n LMLabelDirective\n ],\n exports: [\n LMLabelDirective\n ]\n})\nexport class LMLabelModule {}\n","/* tslint:disable:max-line-length */\nimport {\n AfterViewChecked,\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SecurityContext,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport { AppConstants, LMTimeStampDirective, LMTransformOptions } from '@utils/index';\nimport { LMModel, LMModelChangedEvent, LMModelField } from '@form/model';\nimport {\n SohoAlertDirective,\n SohoBusyIndicatorDirective,\n SohoTooltipDirective,\n SohoTrackDirtyDirective\n} from 'ids-enterprise-ng';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMFieldServiceAdapter } from './lm-field-service-adapter';\nimport { Subject, SubscriptionLike as ISubscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LMLayoutType } from './services';\nimport { LMKeyType } from '@services/lm-keyboard-shortcut.service';\nimport { LMLookupComponent } from '@field/lookup';\n\nexport class LMFieldValueChangedEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n bindId: string;\n\n constructor(event: Event, type: LMFieldEventType, bindId: string) {\n this.event = event;\n this.eventType = type;\n this.bindId = bindId;\n }\n}\n\nexport class LMInvalidFieldEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n bindId: string;\n panelId: string;\n alert: SohoAlertDirective;\n\n constructor(event: Event, type: LMFieldEventType, bindId: string, sohoAlert: SohoAlertDirective) {\n this.event = event;\n this.eventType = type;\n this.bindId = bindId;\n this.alert = sohoAlert;\n }\n}\n\nexport class LMCompactFormEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n fieldId: string;\n layout: LMFormLayout;\n title: LMMessageRule;\n moreSpecFields: LMSpecFields;\n originalCompactFormLayout: LMCompoundFieldLayout;\n displayOnly: boolean;\n excludeOriginalField: boolean;\n\n constructor(\n event: Event,\n fieldId: string,\n title: LMMessageRule,\n layout: LMFormLayout,\n moreSpecFields?: LMSpecFields,\n originalFieldLayout?: LMCompoundFieldLayout,\n displayOnly = false,\n excludeOriginalField = false\n ) {\n this.event = event;\n this.eventType = 'OpenCompactFormEvent';\n this.fieldId = fieldId;\n this.title = title;\n this.layout = layout;\n this.moreSpecFields = moreSpecFields;\n this.originalCompactFormLayout = originalFieldLayout;\n this.displayOnly = displayOnly;\n this.excludeOriginalField = excludeOriginalField;\n }\n}\n\nexport class LMRelatedFormEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n actionReference?: LMBusActionReference;\n actionSpec?: LMActionSpec;\n\n constructor(event: Event, actionReference?: LMBusActionReference, actionSpec?: LMActionSpec) {\n this.event = event;\n this.eventType = 'RelatedEvent';\n this.actionReference = actionReference;\n this.actionSpec = actionSpec;\n }\n}\n\nexport class LMTranslateFormEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n actionReference?: LMBusActionReference;\n actionSpec?: LMActionSpec;\n detName: string;\n busClass: string;\n\n constructor(event: Event, busClass: string, detName: string, actionReference?: LMBusActionReference, actionSpec?: LMActionSpec) {\n this.event = event;\n this.eventType = 'TranslateEvent';\n this.actionReference = actionReference;\n this.actionSpec = actionSpec;\n this.detName = detName;\n this.busClass = busClass;\n }\n}\n\nexport class LMDefineEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n fieldId: string;\n dataView: LMDataView;\n\n constructor(event: Event, fieldId: string, dataView: LMDataView) {\n this.event = event;\n this.eventType = 'DefineEvent';\n this.fieldId = fieldId;\n this.dataView = dataView;\n }\n}\n\nexport class LMSubFormEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n fieldId: string;\n busFormSpec: LMBusFormSpec;\n title: LMMessageRule;\n\n constructor(event: Event, fieldId: string, title: LMMessageRule, busFormSpec: LMBusFormSpec) {\n this.event = event;\n this.eventType = 'OpenSubFormEvent';\n this.fieldId = fieldId;\n this.title = title;\n this.busFormSpec = busFormSpec;\n }\n}\n\nexport class LMOpenLookupEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n fieldId: string;\n\n constructor(event: Event, fieldId: string) {\n this.event = event;\n this.eventType = 'OpenLookupEvent';\n this.fieldId = fieldId;\n }\n}\n\nexport class LMCubeSearchOpenLookupEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n field: LMLookupComponent;\n\n constructor(event: Event, field: LMLookupComponent) {\n this.event = event;\n this.eventType = 'OpenCubeSearchLookupEvent';\n this.field = field;\n }\n}\n\nexport class LMPreviewEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n query: string;\n busClass: string;\n fieldId: string;\n\n constructor(event: Event, query: string, busClass: string, fieldId: string) {\n this.event = event;\n this.eventType = 'PreviewEvent';\n this.query = query;\n this.busClass = busClass;\n this.fieldId = fieldId;\n }\n}\n\nexport class LMQueryValidateEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n query: string;\n busClass: string;\n fieldId: string;\n computeType: string;\n isBusinessClassCompute: boolean;\n\n constructor(event: Event, query: string, busClass: string, fieldId: string, isBusinessClassCompute = false, computeType = '') {\n this.event = event;\n this.eventType = 'QueryValidateEvent';\n this.query = query;\n this.busClass = busClass;\n this.fieldId = fieldId;\n this.isBusinessClassCompute = isBusinessClassCompute;\n this.computeType = computeType;\n }\n}\n\nexport class LMCubeRelationLPLValidationEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n query: string;\n busClass: string;\n fieldId: string;\n\n constructor(event: Event, query: string, busClass: string, fieldId: string) {\n this.event = event;\n this.eventType = 'CubeRelationLPLValidationEvent';\n this.query = query;\n this.busClass = busClass;\n this.fieldId = fieldId;\n }\n}\n\nexport class LMInvalidLPLEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n hasLPLValidationError: boolean;\n\n constructor(event: Event, hasLPLValidationError: boolean) {\n this.event = event;\n this.eventType = 'InvalidLPLEvent';\n this.hasLPLValidationError = hasLPLValidationError;\n }\n}\n\nexport class LMMemberFieldEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n\n constructor(event: Event, eventType: LMFieldEventType) {\n this.event = event;\n this.eventType = eventType;\n }\n}\n\nexport class LMFilterOperatorEvent implements LMFieldEvent {\n event: Event;\n eventType: LMFieldEventType;\n fieldId: string;\n operator: string;\n\n constructor(event: Event, operator: string, fieldId: string) {\n this.event = event;\n this.eventType = 'FilterOperatorEvent';\n this.operator = operator;\n this.fieldId = fieldId;\n }\n}\n\ninterface LMFieldMessage {\n error: LMMessage;\n alert: LMMessageAlert;\n}\n\ninterface LMMessage {\n type: SohoAlertType;\n message: string;\n}\n\ninterface LMMessageAlert extends LMMessage {\n icon?: string;\n}\n\ninterface LMFieldHistoryResponse {\n actionComment?: string;\n actionReason?: string;\n actorId?: string;\n actorName?: string;\n appliedStamp?: string;\n auditField?: {\n decSize?: number;\n precision?: number;\n size?: number;\n type?: string;\n };\n auditValue?: string;\n authenticatedActorId?: string;\n authenticatedActorName?: string;\n effectiveDate?: string;\n}\n\nenum LMFormTypeEnum {\n SEARCH_FORM = 0\n}\n\n@Directive()\nexport class LMFieldBaseComponent extends LMBaseComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() mutexSpecField: LMSpecField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() placeHolder: any;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() public set parentCompoundFieldDisplayOnly(value: boolean) {\n // null is field is enabled; true is field is in read only state\n this._parentCompoundFieldDisplayOnly = value;\n\n // modelBase is a result of executing the initialize() method, so can call recalculateReadOnly()\n if (this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField && this.modelBase && this.isCompoundFieldMember) {\n this.recalculateReadOnly();\n }\n };\n public get parentCompoundFieldDisplayOnly() {\n return this._parentCompoundFieldDisplayOnly;\n }\n\n @ViewChild(SohoAlertDirective) sohoAlert: SohoAlertDirective;\n\n @ViewChildren(SohoTrackDirtyDirective) trackDirtyChildren: QueryList;\n @ViewChild(SohoBusyIndicatorDirective) _busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('Input', { read: ElementRef }) inputElement: ElementRef;\n @ViewChild(SohoTooltipDirective) tooltip: SohoTooltipDirective;\n @ViewChild('FieldOptionsDiv') fieldOptionsDiv: ElementRef;\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @Output() errorOnMemberField: EventEmitter = new EventEmitter();\n @HostBinding('class.lm-number-label-field') isNumberLabel = false;\n\n @HostBinding('class.lm-is-indent') isIndent = false;\n @HostListener('change')\n onChange() {\n // this.lmFieldServiceAdapter.lmLoggerService.log(['lm-field-base onChange()', this.bindId]);\n // checking this.dirty here does disallow more than one initial value rule call when\n // the form is initialized and after form is saved\n if (this.isDirty && this.lmFieldServiceAdapter.lmFormService.isFiringInitialValueRule === false) {\n this.hasFieldChanged = true;\n }\n\n if (this.fieldMessage.alert || this.fieldMessage.error) {\n this.resetAlert();\n }\n\n // hide label on a compound field when a value is entered, show the label if the value is cleared\n this.processShowLabel();\n };\n\n @HostBinding('class.is-compact-form-layout') useCompactFormLayout: boolean;\n\n @HostBinding('class.lm-display-as-text') get isDisplayAsText() {\n return this.displayAsText ? this.displayAsText : null;\n }\n\n @HostBinding('class.lm-display-as-tag') get isDisplayAsTag() {\n return this.displayAsTag ? this.displayAsTag : null;\n }\n\n @HostListener('click', [ '$event' ])\n onClick(event) {\n if (this.tooltip) {\n this.tooltip.hide();\n }\n\n if (this.isCompoundFieldMember) {\n this.onFocus(event);\n }\n\n // if (event.ctrlKey && event.shiftKey) {\n // event.stopPropagation();\n // this.displayComponentInfo(event);\n // }\n\n super.onClick(event);\n }\n\n onFieldFocus(event: FocusEvent) {\n // todo: need to find another way, commenting this out until then\n // LMCLIENT-39830 Backout change for LMCLIENT-34216 Ensure custom controls are keyboard accessible.\n // Just clicking on a field causes it to move to the center first. When attempting to open a drop down,\n // open a data chooser, etc.. causes it to move to the center. Then the user has to click on the dropdown,\n // date chooser, again to get it to come up.\n // (event.target as HTMLElement).scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n this.displayFieldOptions = true;\n\n //soho dropdown doesnt trigger the onFocus function upon focus, so triggering it here on the focusin event.\n if (this.layoutType === LMLayoutType.DROPDOWN && this.isCompoundFieldMember) {\n this.onFocus(event);\n }\n\n if (this.tabPressed) {\n if (!this.tabbedForward) {\n // for fields with inline buttons, shift tabbing from the field options should skip the inline button\n // and should focus to the input element\n const elementToFocus: Element = event?.target as Element;\n const elementLosingFocus: Element = event?.relatedTarget as Element;\n if (this.layoutType === LMLayoutType.LOOKUP\n || this.layoutType === LMLayoutType.DATE\n || this.layoutType === LMLayoutType.TIME) {\n if (elementToFocus.classList.contains('btn-icon')\n && elementToFocus.classList.contains('trigger')\n && elementLosingFocus.classList.contains('field-options-button')) {\n this.getInputElement().focus();\n }\n }\n }\n this.tabPressed = false;\n }\n }\n\n onFieldBlur(event: FocusEvent) {\n // soho dropdown doesnt trigger the onBlur function upon blur, so triggering it here on the focusout event.\n if (this.layoutType === LMLayoutType.DROPDOWN && this.isCompoundFieldMember) {\n this.onBlur(event);\n }\n\n const elementLosingFocus: Element = event?.target as Element;\n const elementToFocus: Element = event?.relatedTarget as Element;\n\n // skip if delete attachment is clicked to avoid NG0100 error\n if (!elementToFocus && elementLosingFocus?.closest('lm-fileupload')) {\n return;\n }\n\n // if the focus is now on a different field or element, hide the field options.\n if (elementLosingFocus?.closest('lm-field') !== elementToFocus?.closest('lm-field')) {\n this.displayFieldOptions = false;\n if (this.tabPressed) {\n if (!this.tabbedForward) {\n if ((elementToFocus?.closest('lm-date')\n || elementToFocus?.closest('lm-time')\n || elementToFocus?.closest('lm-lookup'))) {\n //when shift tabbing from a field to another field with inline button, it should skip the inline button\n //and should focus to the input element.\n if (elementToFocus?.closest('lm-field') !== elementLosingFocus?.closest('lm-field')) {\n elementToFocus?.closest('lm-field')?.querySelector('input')?.focus();\n }\n }\n }\n this.tabPressed = false;\n }\n }\n }\n\n onTagFocus() {\n this.isFieldTagFocused = true;\n }\n\n onTagBlur() {\n this.isFieldTagFocused = false;\n }\n\n @HostListener('contextMenu', [ '$event' ])\n onContextMenu(event) {\n if (event.shiftKey && this.showContextMenu()) {\n event.preventDefault();\n this.openFieldOptions(event);\n }\n };\n\n @HostListener('keydown', [ '$event' ])\n onKeyDown(event: KeyboardEvent) {\n this.tabPressed = event.keyCode === 9;\n this.tabbedForward = this.tabPressed && !event.shiftKey;\n if (this.lmFieldServiceAdapter.lmKeyBoardShortcutService.onKeyDown(event) === LMKeyType.FIELDOPTION && this.showContextMenu()) {\n this.openFieldOptions(event);\n }\n }\n\n @HostListener('blur', [ '$event' ])\n onBlurEvent(event) {\n if (this.isCompoundFieldMember) {\n this.onBlur(event);\n }\n };\n\n public field: any;\n public label: any;\n public id: string;\n public fieldAutomationId: string;\n public fieldOptionsId: string;\n public scanOptionsId: string;\n public bindId: string;\n public modelField: LMModelField;\n public labelResourceValue: string = null;\n public insertContextMenu = false;\n public fieldClassesString: string;\n public isReadOnly = false;\n public isRequired = false;\n public onSearchForm = false;\n public tooltipId: string;\n public disabledMemberField = false;\n public triggerValue = false;\n public displayLabelAsValue = false;\n public showLabel = true;\n public compoundFieldInError = false;\n public personalize: boolean;\n public onPageContextForm = false;\n public testVersion1: boolean;\n public fieldNameForOptionsMenu: string;\n public fieldOptionsLabel: string;\n public mouseOverTextContents: string;\n\n protected layoutObjectBase: LMFormLayoutField;\n protected specFieldsBase: LMSpecFields;\n protected modelBase: LMModel;\n protected layoutType: LMLayoutType;\n public isDirty = false;\n public size: number;\n public type: string;\n public maxLength: number;\n public specField: LMSpecField;\n protected _fieldClasses = '';\n protected _fieldClassArray: Array = [];\n protected doHandleOnFieldChangedForDropdown = false;\n\n protected hasAlert = false;\n private runResetOriginalValue = false;\n private runResetOriginalValueCounter = 0;\n private runResetOriginalValueInitial = false;\n protected checkApplyState = false;\n protected runApplyState = false;\n private runAfterInitialValueRule = false;\n private showCompoundMemberFieldDirty = false;\n public dirtyCompoundField = false;\n\n // displayOnly property is also set when displayAsText is true; displayAsText will over-ride\n public displayAsText = false;\n public displayOnly = false;\n public displayAsTag = false;\n\n protected timeStampDirective: LMTimeStampDirective;\n\n private tagStyleArray: LMTagStyle[];\n public tagStyle: LMTagStyle;\n\n private _isRequired = false;\n private _isConfigRequired = false;\n private isReadOnlyForm = false;\n private selectedText = { start: 0, end: 0 };\n\n private fieldMessage: LMFieldMessage = {} as LMFieldMessage;\n // alerts are in order of processing the alert state\n private alerts: Array = [ 'redAlert', 'yellowAlert', 'greenAlert', 'blueAlert', 'iconAlert' ];\n\n protected subscriptionArray: Array = [];\n private fireInitialKey: string = null;\n private fieldInlineError: string = null;\n protected hasFieldChanged = false; // field changed while it had focus\n\n // soho-mask options for lm-text and lm-lookup\n public hasMask = false;\n public maskOptions: SohoMaskOptions = null;\n public searchFieldMaskOptions: SohoMaskOptions = null;\n public transformOptions: LMTransformOptions;\n\n // lm-displayupper directive for lm-text, lm-lookup, and lm-textarea\n public isUpperCase = false;\n\n public isFormText = false;\n public showField = true;\n public isCompoundFieldMember = false;\n public isPreviewCompoundMember = false;\n public dataEntryMode = false;\n private _parentCompoundFieldDisplayOnly: boolean;\n public tabIndexForFieldOptions = -1;\n public fieldIdAttributes: SohoAttributesArray = [];\n public isInAccessibilityMode: boolean;\n public displayFieldOptions: boolean;\n public fieldContextMenuOpen: boolean;\n protected tabPressed = false;\n protected tabbedForward = false;\n public instanceId: string;\n\n public isFieldTagFocused = false;\n\n public alphaFilterSettings: Array = [\n { value: 'contains', text: Soho.Locale.translate('Contains'), icon: 'filter-contains' },\n { value: 'does-not-contain', text: Soho.Locale.translate('DoesNotContain'), icon: 'filter-does-not-contain' },\n { value: 'equals', text: Soho.Locale.translate('Equals'), icon: 'filter-equals' },\n { value: 'does-not-equal', text: Soho.Locale.translate('DoesNotEqual'), icon: 'filter-does-not-equal' },\n { value: 'is-empty', text: Soho.Locale.translate('IsEmpty'), icon: 'filter-is-empty' },\n { value: 'is-not-empty', text: Soho.Locale.translate('IsNotEmpty'), icon: 'filter-is-not-empty' },\n { value: 'end-with', text: Soho.Locale.translate('EndsWith'), icon: 'filter-end-with' },\n { value: 'does-not-end-with', text: Soho.Locale.translate('DoesNotEndWith'), icon: 'filter-does-not-end-with' },\n { value: 'start-with', text: Soho.Locale.translate('StartsWith'), icon: 'filter-start-with' },\n { value: 'does-not-start-with', text: Soho.Locale.translate('DoesNotStartWith'), icon: 'filter-does-not-start-with' }\n ];\n\n public numericFilterSettings: Array = [\n { value: 'equals', text: Soho.Locale.translate('Equals'), icon: 'filter-equals' },\n { value: 'does-not-equal', text: Soho.Locale.translate('DoesNotEqual'), icon: 'filter-does-not-equal' },\n { value: 'is-empty', text: Soho.Locale.translate('IsEmpty'), icon: 'filter-is-empty' },\n { value: 'is-not-empty', text: Soho.Locale.translate('IsNotEmpty'), icon: 'filter-is-not-empty' },\n { value: 'less-than', text: Soho.Locale.translate('LessThan'), icon: 'filter-less-than' },\n { value: 'less-equals', text: Soho.Locale.translate('LessOrEquals'), icon: 'filter-less-equals' },\n { value: 'greater-than', text: Soho.Locale.translate('GreaterThan'), icon: 'filter-greater-than' },\n { value: 'greater-equals', text: Soho.Locale.translate('GreaterOrEquals'), icon: 'filter-greater-equals' }\n ];\n\n public dateFilterSettings: Array = [\n { value: 'equals', text: Soho.Locale.translate('Equals'), icon: 'filter-equals' },\n { value: 'does-not-equal', text: Soho.Locale.translate('DoesNotEqual'), icon: 'filter-does-not-equal' },\n { value: 'is-empty', text: Soho.Locale.translate('IsEmpty'), icon: 'filter-is-empty' },\n { value: 'is-not-empty', text: Soho.Locale.translate('IsNotEmpty'), icon: 'filter-is-not-empty' },\n { value: 'in-range', text: Soho.Locale.translate('InRange'), icon: 'filter-in-range' },\n { value: 'less-than', text: Soho.Locale.translate('LessThan'), icon: 'filter-less-than' },\n { value: 'less-equals', text: Soho.Locale.translate('LessOrEquals'), icon: 'filter-less-equals' },\n { value: 'greater-than', text: Soho.Locale.translate('GreaterThan'), icon: 'filter-greater-than' },\n { value: 'greater-equals', text: Soho.Locale.translate('GreaterOrEquals'), icon: 'filter-greater-equals' }\n ];\n\n public textSearchableSettings: Array = [\n { value: 'start-with', text: Soho.Locale.translate('StartsWith'), icon: 'filter-start-with' }\n ];\n\n public cubeFilterSettings: Array = [\n { value: 'equals', text: Soho.Locale.translate('Equals'), icon: 'filter-equals' },\n ];\n\n public formType: LMFormTypeEnum;\n public formDisplayType;\n\n public fieldHistoryInfo: Array;\n public popoverTitle: string;\n\n private onDestroy$: Subject = new Subject();\n\n protected previousTimeZone: string;\n protected get isTimezoneField(): boolean {\n return !!(this.modelBase?.getField(this.bindId)?.dependentTimeZone.length);\n }\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(\n lmFieldServiceAdapter.sohoModalDialogService,\n lmFieldServiceAdapter.lmBusyIndicatorService,\n lmFieldServiceAdapter.lmComponentInfoService,\n lmFieldServiceAdapter.lmUniqueIdService\n );\n\n if (lmFieldServiceAdapter.lmLoggerService) {\n this.instanceId = lmFieldServiceAdapter.lmLoggerService.instanceId;\n }\n }\n\n ngOnInit() {\n this.formDisplayType = LMFormTypeEnum;\n this.isCompoundFieldMember = (this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField);\n this.isPreviewCompoundMember = !!(this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.previewMode);\n this.showField = !this.isCompoundFieldMember;\n this.tabIndexForFieldOptions = this.isCompoundFieldMember ? 0 : -1;\n this.dataEntryMode = !!this.model?.formSpec?.dataEntryMode;\n this.useCompactFormLayout = this.lmFieldServiceAdapter.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n this.isInAccessibilityMode = this.lmFieldServiceAdapter.lmGlobalPersonalizationService.getAccessibilityMode();\n }\n\n ngAfterViewInit() {\n this.processAlerts();\n\n if (this.inputElement) {\n\n //When accessibility mode is disabled, filter field dropdowns are not accessible.\n if (this.formType === this.formDisplayType.SEARCH_FORM) {\n const filterDropdown = this.inputElement.nativeElement?.parentElement?.querySelector('select.field-filter-dropdown + div.dropdown-wrapper > div.dropdown');\n if (filterDropdown) {\n if (!this.isInAccessibilityMode) {\n filterDropdown.setAttribute('tabindex', '-1');\n }\n filterDropdown.addEventListener('focusout', (event: FocusEvent) => this.onFieldBlur(event));\n }\n }\n this.lmFieldServiceAdapter.renderer2.setAttribute(this.inputElement.nativeElement, 'autocomplete', 'new-user-input');\n }\n\n if (this.lmFieldServiceAdapter.lmLoggerService.cskLog === 2) {\n this.lmFieldServiceAdapter.lmLoggerService.timeEnd(`Total-Field-${this.instanceId}`);\n }\n }\n\n ngAfterViewChecked() {\n // LMCLIENT-29895 discovered that we were getting an expression changed error when applying model from the\n // compound form modal being dismissed. Making sure we only change the new flag one per bindId instance, and\n // in the next tick so we don't get the expression changed error. This is currently only for a time, date, lookup\n // or text member field\n if (this.showCompoundMemberFieldDirty && this.isCompoundFieldMember) {\n this.showCompoundMemberFieldDirty = false;\n if (this.dirtyCompoundField !== this.isDirty) {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.dirtyCompoundField = this.isDirty;\n }, 1);\n });\n }\n }\n\n // LMCLIENT-23980: cannot call resetDirty() on this tick as the underlying control has not been\n // updated by ngModel, so wait one tick and then call resetDirty()\n if (this.runResetOriginalValue && this.runResetOriginalValueCounter++ === 1) {\n if (this.trackDirtyChildren) {\n // possible scenario: a field component is being initialized late, possibly due to visible when or a lazy loading\n // form and another instance of the field is on another part of the form and has been made dirty,\n // so apply the dirty state properly\n if (this.runResetOriginalValueInitial && this.modelField.evaluateIsDirty) {\n this.isDirty = this.model.evaluateAndApplyDirtyState(this.bindId);\n } else if (!this.isReadOnly || this.layoutType !== LMLayoutType.BINARY_DOCUMENT) {\n // radio buttons have a soho-trackdirty directive for each radio and each one needs to be called to be reset\n this.trackDirtyChildren.forEach(trackDirtyChild => {\n trackDirtyChild.resetDirty();\n });\n }\n }\n this.runResetOriginalValue = false;\n this.runResetOriginalValueInitial = false;\n this.runResetOriginalValueCounter = 0;\n }\n\n // LMCLIENT-24650: if the modelChanged update has occurred (checkApplyState is true)\n // and the notification for applyState has been emitted (runApplyState is true), then\n // indicate to the sohoxi controls to evaluate the dirty condition of the field\n if (this.checkApplyState && this.runApplyState) {\n if (this.trackDirtyChildren && !this.isReadOnly) {\n\n let index = 0;\n\n // SPECIAL CASE: need to iterate the states array to find the index for the value and only call changeDirty\n // for that trackDirty child\n if (this.layoutType === LMLayoutType.RADIO) {\n let found = false;\n let hasBlank = false;\n const value = this.modelField.value;\n const states = this.modelField.states;\n const len = states.length;\n\n // using for loop so can break when found\n for (index = 0; index < len; index++) {\n // radios do not display the blank value, but need to subtract one from the index if one exists\n // using same evaluation as ngIf in template\n if (!hasBlank && states[ index ].label === ' ') {\n hasBlank = true;\n }\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if (value == states[ index ].value ) {\n found = true;\n break;\n }\n }\n\n // if found, adjust the index and call changeDirty on that trackDirty child only\n if (found) {\n if (hasBlank) {\n index -= 1;\n }\n\n // safety\n if (index < 0) {\n index = 0;\n }\n }\n }\n\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.trackDirtyChildren.forEach(( trackDirtyChild: SohoTrackDirtyDirective, childIndex ) => {\n if (index === childIndex) {\n trackDirtyChild.changeDirty();\n this.showCompoundMemberFieldDirty = true;\n }\n });\n }, 1);\n });\n\n } else if (!this.trackDirtyChildren || this.isReadOnly) {\n // need to process readOnly and non-input fields (displayAsText, etc)\n this.isDirty = this.model.evaluateAndApplyDirtyState(this.bindId);\n }\n\n this.checkApplyState = false;\n this.runApplyState = false;\n }\n\n // LMCLIENT-25444: read only fields populated by an initial value rule need to be evaluated and maintained\n // so the model state is correct\n if (this.checkApplyState && this.runAfterInitialValueRule) {\n this.isDirty = this.model.evaluateAndApplyDirtyState(this.bindId);\n\n this.checkApplyState = false;\n this.runAfterInitialValueRule = false;\n }\n\n // LMCLIENT-25562: needed to wait to handleOnFieldChanged if dropdown was dependent on visible when\n // conditions. Caused an http failure in IE\n if (this.doHandleOnFieldChangedForDropdown) {\n this.doHandleOnFieldChangedForDropdown = false;\n this.handleOnFieldChanged();\n }\n }\n\n ngOnDestroy() {\n // clean up singleton field subscriptions\n if (this.bindId) {\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.remove(this.fireInitialKey);\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.remove(this.fieldInlineError);\n }\n\n // clean up all other subscriptions\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.subscriptionArray = [];\n\n if (this.onDestroy$) {\n // todo why is onDestroy$ undefined in ng8 JIT compiler\n this.onDestroy$.next();\n this.onDestroy$.unsubscribe();\n this.onDestroy$ = null;\n }\n\n if (this.fieldEvent) {\n // todo why is fieldEvent undefined in ng8 JIT compiler\n this.fieldEvent.unsubscribe();\n this.fieldEvent = null;\n }\n\n if (this.errorOnMemberField) {\n // todo why is errorOnMemberField undefined in ng8 JIT compiler\n this.errorOnMemberField.unsubscribe();\n this.errorOnMemberField = null;\n }\n }\n\n // getters and setters\n protected set busyIndicator(value: boolean) {\n if (this._busyIndicator) {\n this._busyIndicator.activated = value;\n }\n }\n\n get configRequiredValidator(): string {\n // used to set the sohoxi required validator on the data-validate attribute on a control\n // return null means attribute is not set\n if (this._isConfigRequired) {\n return 'required';\n }\n return null;\n }\n\n protected get compactFormDialogSpec(): LMSpecField {\n if (this.field.type === AppConstants.BUTTON_TYPE_SHOWEDITOR) {\n const spec: LMSpecField = this.specFields[ this.field.fieldId ];\n\n if (spec && spec.compactFormat) {\n return spec;\n }\n }\n\n return null;\n }\n\n public get fieldClasses(): string {\n this._fieldClasses = this._fieldClassArray.join(' ');\n return this._fieldClasses;\n }\n\n protected get fieldClassArray(): Array {\n return this._fieldClassArray;\n }\n\n protected set fieldClassArray(value: Array) {\n this._fieldClassArray = value;\n }\n\n protected get isContextForm(): boolean {\n if (this.layoutInfo) {\n return this.layoutInfo.isContextForm;\n }\n return false;\n }\n\n protected get isSubForm(): boolean {\n return (this.field.type === AppConstants.BUTTON_TYPE_SUBFORM);\n }\n\n public get stateAsText(): string {\n return this.lmFieldServiceAdapter.lmFormatUtilService.stateLabelToText(this.modelField.states, this.modelField.value);\n }\n\n private get validityParams() {\n if (this.lmFieldServiceAdapter.lmConditionUtilService) {\n\n let displayAsRequired = false;\n\n if (this.field.displayAsRequired) {\n displayAsRequired = this.lmFieldServiceAdapter.lmConditionUtilService.isValid(this.field.displayAsRequired, this.model);\n }\n\n const validityParams = {\n isFormMutable: this.modelBase.isFormMutable,\n isMutable: this.modelField.mutable,\n isRequired: this.modelField.required, // tri-state; null, false, true\n displayAsRequired\n };\n\n if (this.field.validity && this.specFieldsBase && validityParams.isMutable && validityParams.isFormMutable) {\n validityParams.isMutable = this.lmFieldServiceAdapter.lmConditionUtilService.isValid(this.field.validity, this.modelBase);\n }\n\n return validityParams;\n }\n\n return null;\n }\n\n private get isDisplayZero(): boolean {\n if (this.specField\n && (this.specField.type === AppConstants.NUMERIC || this.specField.type === AppConstants.BCD || this.specField.type === AppConstants.PERCENT)\n && (this.layoutType === LMLayoutType.LOOKUP || this.layoutType === LMLayoutType.TEXT)) {\n\n // honor the directive first\n if (this.field.hasOwnProperty('displayZero')) {\n return true;\n }\n\n // always display zeros for BCD and Percent displayAsText or displayAsTag\n if ((this.specField.type === AppConstants.BCD || this.specField.type === AppConstants.PERCENT) && !this.isCompoundFieldMember && (this.displayAsText || this.displayAsTag)) {\n return true;\n }\n }\n\n return false;\n }\n\n // eslint-disable-next-line no-unused-vars\n onAfterResetDirty(event: SohoTrackDirtyEvent) {\n // only reset dirty to pristine on change if already dirty\n if (this.isDirty) {\n this.isDirty = false;\n this.model.setDirty(this.bindId, this.isDirty);\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n onDirty(event?: SohoTrackDirtyEvent) {\n // only set dirty if not already dirty\n if (!this.isDirty) {\n this.isDirty = true;\n this.model.setDirty(this.bindId, this.isDirty);\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n onPristine(event?: SohoTrackDirtyEvent) {\n // only set pristine if already dirty\n if (this.isDirty) {\n this.isDirty = false;\n this.model.setDirty(this.bindId, this.isDirty);\n }\n }\n\n onBlur(event) {\n\n if (this.hasFieldChanged) {\n // field changed while it had focus\n this.handleOnFieldChanged();\n }\n\n if (!(this.layoutType === LMLayoutType.CHECKBOX || this.layoutType === LMLayoutType.DATE\n || this.layoutType === LMLayoutType.LOOKUP || this.layoutType === LMLayoutType.DROPDOWN\n || this.layoutType === LMLayoutType.RADIO || this.layoutType === LMLayoutType.TIME)\n && event.currentTarget) {\n this.selectedText = this.getInputSelection(event.currentTarget);\n }\n\n if (this.isCompoundFieldMember) {\n if (this.parentCompoundFieldDisplayOnly === true || this.disabledMemberField || this.displayAsText || this.isPreviewCompoundMember) {\n return;\n }\n\n if (!this.showField) {\n return;\n }\n\n this.showField = false;\n\n // Need to manually activate lookup fields and dropdown\n // Removes blue outline when tabbing out or clicking away from dropdown\n if ((event && this.layoutType === LMLayoutType.LOOKUP || this.layoutType === LMLayoutType.DROPDOWN\n || this.layoutType === LMLayoutType.DATE || this.layoutType === LMLayoutType.CHECKBOX\n || this.layoutType === LMLayoutType.TIME || this.layoutType === LMLayoutType.RADIO)) {\n this.toggleActiveClass(event.target);\n }\n this.fieldEvent.emit(new LMMemberFieldEvent(event, 'MemberBlurEvent'));\n }\n }\n\n // input event occurs between keypress and keyup events\n // eslint-disable-next-line no-unused-vars\n onInput(event) {\n // this.lmFieldServiceAdapter.lmLoggerService.log(['lm-field-base onInput()', this.bindId]);\n\n // evaluate if the control is dirty or pristine\n if (this.trackDirtyChildren && !this.isReadOnly) {\n this.trackDirtyChildren.forEach(dirtyChild => dirtyChild.changeDirty());\n }\n\n this.hasFieldChanged = true;\n };\n\n onFocus(event) {\n if ((this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField && !this.isPreviewCompoundMember)) {\n if (this.parentCompoundFieldDisplayOnly === true || this.disabledMemberField || this.displayAsText) {\n return;\n }\n\n if (this.showField) {\n return;\n }\n\n this.showField = true;\n\n this.fieldEvent.emit(new LMMemberFieldEvent(event, 'MemberFocusEvent'));\n\n if (this.layoutType === LMLayoutType.LOOKUP || this.layoutType === LMLayoutType.DROPDOWN\n || this.layoutType === LMLayoutType.DATE || this.layoutType === LMLayoutType.CHECKBOX\n || this.layoutType === LMLayoutType.TIME || this.layoutType === LMLayoutType.RADIO) {\n if (event) {\n this.toggleActiveClass(event.target);\n } else {\n this.toggleActiveClass(this.getInputElement());\n }\n }\n\n // SetTimeout needed to ensure the input s fully displayed before focus\n // Run outside to prevent setTimeout from firing change detection\n\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n // Need to manually focus into compound member field inputs. This is so the user doesn't need to tab\n // twice to edit a member field\n setTimeout(() => {\n const inputElement: HTMLElement = this.getInputElement() as HTMLElement;\n\n // need to focus on the dropdown wrapper for the dropdown component.\n if (this.layoutType === LMLayoutType.DROPDOWN) {\n if ((event?.target as HTMLElement)?.closest('p')) {\n ((event?.target as HTMLElement)?.closest('p')\n ?.previousElementSibling\n ?.closest('div.dropdown-wrapper')\n ?.querySelector('div.dropdown') as HTMLElement).focus();\n }\n } else {\n if (inputElement) {\n inputElement.focus();\n }\n }\n\n }, 10);\n });\n }\n }\n\n /**\n * Compact group field.\n * Need to toggle active class for dropdowns and lookups\n * @param element\n * TODO: Might be a way to not have to do this?\n */\n toggleActiveClass(element) {\n if (!element) {\n return;\n }\n // Parent\n const gp = element.closest('lm-field');\n const p = element.closest('.field');\n const activeClass = 'is-active';\n\n if (p.classList.contains(activeClass)) {\n p.classList.remove(activeClass);\n\n } else if (!p.classList.contains(activeClass)) {\n p.classList.add(activeClass);\n }\n\n // Grand parent\n if (gp.classList.contains(activeClass)) {\n gp.classList.remove(activeClass);\n\n } else if (!gp.classList.contains(activeClass)) {\n gp.classList.add(activeClass);\n }\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n /**\n * Triggers a focus event if field component is clicked\n * @param event\n */\n onCompoundFieldClickEvent(event) {\n if (this.layoutType === LMLayoutType.CHECKBOX) {\n return;\n }\n\n if (this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField) {\n this.onFocus(event);\n }\n }\n\n // todo type me!\n onContextMenuEvent(event: any) {\n if (event.args) {\n const menuElement = event.args[ 0 ];\n const menuId = menuElement.getAttribute('id');\n\n if (menuId === AppConstants.FORM_CONTEXTMENUACTION_TEXTVARIABLES) {\n const dataActionReference = event.args[ 0 ].dataset.actionReference;\n const textRepObj = JSON.parse(dataActionReference);\n const repValue = textRepObj.id;\n const inputElement = this.getInputElement();\n\n if (inputElement) {\n inputElement.focus();\n inputElement.selectionStart = this.selectedText.start;\n inputElement.selectionEnd = this.selectedText.end;\n\n if (this.lmFieldServiceAdapter.lmBrowserUtilService.isIE11) {\n // this works for a text or textarea field\n // rich text editor: insertion works ok, but selected (highlighted) text is not removed\n document.execCommand('paste', false, '{' + repValue + '}');\n\n } else {\n document.execCommand('insertText', false, '{' + repValue + '}');\n }\n\n } else {\n // safety condition: display a popover message indicate to place the cursor in the field and re-try\n let message;\n if (this.labelResourceValue) {\n const fieldLabel = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n message = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldTextVariableInsertionMessage'), [ fieldLabel ]);\n\n } else {\n message = Soho.Locale.translate('TextVariableInsertionMessage');\n }\n\n // use the context menu item as the popover title\n this.tooltip.title = this.popoverTitle = Soho.Locale.translate('TextVariableReplacement');\n this.tooltip.content = this.buildTextVariableInsertionMessage(message);\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => this.tooltip.show(), 1);\n });\n }\n\n } else if (menuId === 'DefineEvent') {\n this.fieldEvent.emit(new LMDefineEvent(event, this.bindId, this.model.getData()));\n\n } else if (menuId === 'TranslateEvent') {\n const dataActionReference = event.args[ 0 ].dataset.actionReference;\n const actionReference = JSON.parse(dataActionReference) as LMBusActionReference;\n this.fieldEvent.emit(new LMTranslateFormEvent(event, this.model.getData().busClassName, this.specField.detName, actionReference));\n\n } else {\n if (menuId === 'CompactForm') {\n const exclude = this.specField.selectable && this.specField.compactFormat;\n this.fieldEvent.emit(new LMCompactFormEvent(event, this.bindId, this.specField.label, this.specField.layout, this.specFields, this.layoutObject, this.displayOnly, exclude));\n\n } else if (menuId === 'related') {\n const dataActionReference = event.args[ 0 ].dataset.actionReference;\n const actionReference = JSON.parse(dataActionReference) as LMBusActionReference;\n this.fieldEvent.emit(new LMRelatedFormEvent(event, actionReference));\n\n } else if ('ShowFieldHistoryEvent' === menuId) {\n this.lmFieldServiceAdapter.lmFieldOptionsService.getFieldHistory(this.bindId, this.model.getData(), this.model.formUrlInfo, this.model.formSpec)\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(\n (response: Array) => {\n this.fieldHistoryInfo = response;\n let tooltipTitle;\n if (this.labelResourceValue) {\n const fieldLabel = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n tooltipTitle = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldNameHistory'), [ fieldLabel ]);\n } else {\n tooltipTitle = Soho.Locale.translate('FieldHistory');\n }\n this.tooltip.title = this.popoverTitle = tooltipTitle;\n this.tooltip.content = this.buildFieldHistoryContent();\n this.tooltip.extraClass = 'fieldaudit';\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => this.tooltip.show(), 1);\n });\n });\n\n } else if ('ShowPendingChangesEvent' === menuId) {\n this.lmFieldServiceAdapter.lmFieldOptionsService.getPendingChanges(this.bindId, this.model.getData(), this.model.formUrlInfo, this.model.formSpec)\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(\n (response: Array) => {\n this.fieldHistoryInfo = response;\n let tooltipTitle;\n if (this.labelResourceValue) {\n const fieldLabel = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n tooltipTitle = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPendingChanges'), [ fieldLabel ]);\n } else {\n tooltipTitle = Soho.Locale.translate('PendingChanges');\n }\n this.tooltip.title = this.popoverTitle = tooltipTitle;\n this.tooltip.content = this.buildFieldHistoryContent();\n this.tooltip.extraClass = 'fieldaudit';\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n setTimeout(() => this.tooltip.show(), 1);\n });\n });\n\n } else {\n this.fieldEvent.emit({ event, eventType: menuId });\n }\n }\n\n } else {\n this.fieldEvent.emit(event);\n }\n }\n\n onError(event: SohoInputValidateEvent) {\n // this.lmFieldServiceAdapter.lmLoggerService.log([this, 'onError', this.bindId, event.validation.message]);\n\n // TODO: this event can be triggered from Angular; needs investigation\n if (event && event.validation) {\n this.processFieldMessage(event.validation.message);\n this.model.setError(this.bindId, true, event.validation.message);\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n onValid(event: SohoInputValidateEvent) {\n // this.lmFieldServiceAdapter.lmLoggerService.log([this, 'onValid', this.bindId, event.validation.message]);\n\n this.processFieldMessage('');\n this.model.setError(this.bindId, false);\n }\n\n onFiltered(event: SohoFieldFilteredEvent) {\n this.modelField.filterType = this.getLMOperator(event.filterOption.value);\n this.transformOptions.isRange = (this.modelField.filterType === 'inRange');\n this.fieldEvent.emit(new LMFilterOperatorEvent( new CustomEvent(''), this.getLMOperator(event.filterOption.value), this.bindId ));\n }\n\n public onBeforeScanContextMenuOpen = (response?: AjaxBeforeOpenResponseFunction, options?: any) => {\n let labelValue = '';\n if (this.labelResourceValue) {\n labelValue = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n }\n\n this.buildScanContextMenu(response,\n options,\n this.field,\n this.specField,\n this.showCompactFormContextMenu(),\n labelValue,\n this.modelField,\n this.model\n );\n };\n\n public buildScanContextMenu(\n response: AjaxBeforeOpenResponseFunction,\n options: any,\n field: any,\n specField: any,\n showCompact: boolean,\n fieldLabel: string,\n modelField: LMModelField,\n model: LMModel\n ) {\n const contextActions = this.getScanContextMenuActions(fieldLabel);\n\n let initialResponse = '';\n\n // only show Lookup if the field is scannable and inside inforgo\n if (specField.definable && field.scannable) {\n const menuItem: LMToolbarButton = contextActions.scan;\n const id: string = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n\n // only show Lookup if the field is scannable and inside inforgo\n if (specField.definable && field.scannable) {\n const menuItem: LMToolbarButton = contextActions.select;\n const id: string = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n\n response(initialResponse);\n };\n\n private getScanContextMenuActions(fieldLabel: string): { [ key: string ]: LMToolbarButton } {\n return {\n scan: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_SCAN,\n type: 'standard',\n label: Soho.Locale.translate('Scan')\n }, state: { disabled: false, visible: true }\n },\n select: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_SELECT,\n type: 'standard',\n label: Soho.Locale.translate('Select')\n }, state: { disabled: false, visible: true }\n },\n };\n }\n\n public onBeforeContextMenuOpen = (response: AjaxBeforeOpenResponseFunction, options: any) => {\n let labelValue = '';\n if (this.labelResourceValue) {\n labelValue = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n }\n\n this.lmFieldServiceAdapter.lmFieldOptionsToolbarService.buildContextMenu(response,\n options,\n this.field,\n this.specField,\n this.showCompactFormContextMenu(),\n labelValue,\n this.modelField,\n this.model\n );\n };\n\n // protected methods\n protected fireInitialValueRuleEvent(bindId: string) {\n this.fieldEvent.emit(\n new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'FireInitialValueRuleEvent', bindId));\n }\n\n protected fireEvaluateConditionsEvent(bindId: string) {\n // can be called from handldOnFieldChange for a field that is hidden on the form, so fieldEvent isn't defined. Need\n // to check that the emitter exists\n if (this.fieldEvent) {\n this.fieldEvent.emit(new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'EvaluateConditionsEvent', bindId));\n }\n }\n\n // TODO: TECHNICAL DEBT: consider resolving the need to pass arguments here; was required when we first started\n // with angular, but now is not necessary\n protected initialize(layoutObject: LMFormLayoutField, specFields: LMSpecFields, model: LMModel) {\n this.layoutObjectBase = layoutObject;\n this.specFieldsBase = specFields;\n this.modelBase = model;\n\n this.field = this.layoutObjectBase;\n this.bindId = (this.mutexSpecField)\n ? this.mutexSpecField.bindId\n : (this.field.hasOwnProperty('fieldId'))\n ? this.field.fieldId\n : this.field.bindId;\n\n if (this.lmFieldServiceAdapter.lmLoggerService.cskLog === 2) {\n this.lmFieldServiceAdapter.lmLoggerService.time({\n id: `Total-Field-${this.instanceId}`,\n description: 'TOTAL FIELD',\n functionName: 'initialize()',\n className: 'LMFieldBaseComponent',\n timingStart: 'LMFieldBaseComponent -> initialize()',\n timingEnd: 'LMFieldBaseComponent -> ngAfterViewInit()',\n fieldType: this.layoutObject.type,\n fieldId: this.uniqueId(this.bindId)\n });\n }\n\n this.testVersion1 = this.lmFieldServiceAdapter.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.id = this.uniqueId(this.bindId);\n // if (this.layoutObject?.automationId) {\n // this.fieldAutomationId = this.uniqueFieldAutomationId(this.layoutObject.automationId);\n // } else {\n // this.fieldAutomationId = this.uniqueFieldAutomationId(this.bindId);\n // }\n\n this.fieldAutomationId = this.uniqueFieldAutomationId(this.bindId);\n this.fieldIdAttributes.push({ name: 'data-automation-id', value: 'lm-' + this.fieldAutomationId });\n\n if (!this.testVersion1) {\n this.fieldIdAttributes.push({ name: 'id', value: this.id });\n }\n\n // this.fieldIdAttributes = this.testVersion1 ? null : [ { name: 'id', value: this.id } ];\n\n this.fieldOptionsId = this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ this.id, 'FieldOptions' ]);\n this.scanOptionsId = this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ this.id, 'ScanOptions' ]);\n this.tooltipId = '#field-history-tooltip-' + this.id;\n\n this.specField = (this.bindId !== undefined && this.specFieldsBase.hasOwnProperty(this.bindId))\n ? this.specFieldsBase[ this.bindId ]\n : null;\n\n if (this.mutexSpecField) {\n this.layoutType = this.lmFieldServiceAdapter.lmFieldLayoutService.specFieldToLayoutType(this.mutexSpecField);\n } else {\n this.layoutType = this.lmFieldServiceAdapter.lmFieldLayoutService.getLayoutType(this.field, this.specField, model, this.lmParagraphLayoutInfo);\n }\n\n if (this.field.indent) {\n this.isIndent = this.field.indent;\n }\n\n if (this.field.label) {\n this.label = this.field.label;\n\n if (this.field.numberLabel) {\n this.isNumberLabel = this.field.numberLabel;\n }\n\n if (this.label.label) {\n this.labelResourceValue = this.label.label;\n } else {\n this.labelResourceValue = this.label.resourceValue;\n }\n if (this.labelResourceValue) {\n this.fieldNameForOptionsMenu = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields);\n }\n }\n if ((this.fieldNameForOptionsMenu?.trim() || this.field.foregroundText)) {\n this.fieldOptionsLabel = 'MoreFieldOptionsTextLabel';\n } else {\n this.fieldOptionsLabel = 'MoreFieldOptionsTextNoLabel';\n }\n\n if (this.specField) {\n this.isUpperCase = (this.specField.type === AppConstants.ALPHAUPPER);\n this.fieldClassArray.push(this.bindId);\n\n if (this.specField.type === AppConstants.TIMESTAMP) {\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayDateOnly(this.field, this.specField)) {\n this.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE;\n\n } else if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayTimeOnly(this.field, this.specField)) {\n this.timeStampDirective = LMTimeStampDirective.DISPLAY_TIME;\n\n } else if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayHoursAndMinutesOnly(this.field, this.specField)) {\n this.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n } else if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayDateAndHoursAndMinutes(this.field, this.specField)\n || this.lmFieldServiceAdapter.lmFieldLayoutService.hasLimitToMinuteIncrements(this.field, this.specField)) {\n this.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES;\n }\n } else if (this.specField.type === AppConstants.TIME) {\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayHoursAndMinutesOnly(this.field, this.specField)\n || this.lmFieldServiceAdapter.lmFieldLayoutService.hasLimitToMinuteIncrements(this.field, this.specField)) {\n this.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n }\n }\n }\n\n this.modelField = this.getModelField();\n\n if (this.layoutObject.timeZoneIs) {\n this.modelBase.getField(this.layoutObject.timeZoneIs).dependentTimeZone.push(this.bindId);\n }\n\n this.isReadOnlyForm = (this.layoutInfo && this.layoutInfo.isReadOnlyForm) || this.modelBase.isReadOnlyForm;\n\n if (this.isCompoundFieldMember && (this.lmParagraphLayoutInfo.displayAsText || this.lmParagraphLayoutInfo.displayOnly || this.isPreviewCompoundMember)) {\n // if compound field that is display as text, display only or the preview mode, behave like a read only form. We don't want to be editable\n this.isReadOnlyForm = true;\n }\n\n this.displayAsTag = this.field.displayAsTag || false;\n\n this.tagStyleArray = this.field.tagStyle || null;\n\n this.displayAsText = this.field.displayAsText || false;\n\n this.displayOnly = (this.field.displayOnly && !this.displayAsText) || false;\n\n this._isConfigRequired = this.layoutObjectBase.hasOwnProperty('cfgRequired');\n\n if (this.layoutInfo) {\n this.personalize = this.lmFieldServiceAdapter.lmThemeService.isPersonalized(this.layoutInfo.isContextForm, this.model.formSpec.busFormSpec);\n }\n\n this._isRequired = (this.field.required && !this.displayAsText)\n || this._isConfigRequired\n || false;\n\n this.onSearchForm = this.model.isSearchForm;\n this.onPageContextForm = this.model.isPageContextForm;\n\n if (this.onSearchForm) {\n this.formType = LMFormTypeEnum.SEARCH_FORM;\n\n // only set the default alpha operator when it is a alpha/text type,\n // an doesn't have state fields\n if (this.specField &&\n (this.specField.type === AppConstants.ALPHA ||\n this.specField.type === AppConstants.ALPHAUPPER ||\n this.specField.type === AppConstants.ALPHALOWER ||\n this.specField.type === AppConstants.TEXT ||\n this.specField.type === AppConstants.TEXTAREA) &&\n !this.specField.hasUserDefinedStates &&\n !this.specField.stateValues) {\n this.modelField.filterType = this.modelField?.filterCriteria?.operator || this.modelField.alphaFieldDefaultType;\n }\n }\n\n this.insertContextMenu = this.showContextMenu();\n\n // set isFormText to hide input element\n this.isFormText = (this.field.type === 'formtext');\n\n if (this.isReadOnlyForm) {\n this._isRequired = false;\n\n if (this.onPageContextForm || (this.layoutInfo && this.layoutInfo.isDashboardPanelForm)) {\n this.displayAsText = true;\n this.displayOnly = false;\n\n } else if (this.isCompoundFieldMember) {\n // compound field members should inherit their parent field's status\n if (this.lmParagraphLayoutInfo.displayAsText || this.isPreviewCompoundMember) {\n this.displayAsText = true;\n this.displayOnly = false;\n\n } else if (this.lmParagraphLayoutInfo.displayOnly) {\n this.disabledMemberField = true;\n this.displayOnly = true;\n\n }\n } else if (this.isFormText) {\n // allow form text to display correctly when read only\n // displayAsText and isFormText needs to be mutually exclusive\n this.displayAsText = false;\n\n } else {\n // generic read only form, set all fields to display only unless the field itself is marked as display as text\n this.displayOnly = true;\n\n if (this.field.displayAsText) {\n this.displayAsText = true;\n this.displayOnly = false;\n }\n }\n }\n\n if (this.bindId) {\n // LMFieldSubscriptionService is different than the subscriptionArray\n // In LMFieldSubscriptionService, there is only one entry / subscription for a key as we only want one notification\n // to be emitted and not multiple subscriptions for multiple instances of a bindId on a form\n\n // keys for LMFieldSubscriptionService\n this.fireInitialKey = `FireInitialValueRuleCompleted_${this.id}`;\n this.fieldInlineError = `InlineError_${this.bindId}`;\n }\n\n if (this.modelField.fireInitialValue) {\n this.subscribeToFireInitialValueRuleCompleted();\n }\n\n if (!this.onSearchForm) {\n this.subscribeToApplyStateChanges();\n }\n\n // execute first time\n this.recalculateReadOnly();\n this.isRequired = this.recalculateRequired();\n\n // runResetOriginalValue sets the originalValue on the sohoxi component so that the validation/track dirty evaluation\n // can be made correctly\n this.runResetOriginalValue = true; // indicates needs to run\n this.runResetOriginalValueInitial = true; // indicates the first time run\n\n if (this.isCompoundFieldMember && !this.parentCompoundFieldDisplayOnly && this.isReadOnly) {\n if (this.modelField.isBlank) {\n this.displayLabelAsValue = true;\n }\n }\n\n if (this.isCompoundFieldMember && this.lmParagraphLayoutInfo && this.isPreviewCompoundMember) {\n if (this.modelField.isBlank) {\n this.displayLabelAsValue = true;\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n } else if (this.specField.stateValues && this.modelField.value == 0) {\n this.displayLabelAsValue = this.specField.stateValues[0].label.trim() === '';\n }\n }\n\n if (this.isCompoundFieldMember && !!this.modelField.value && !this.modelField.isBlank) {\n this.showLabel = false;\n }\n\n this.evaluateTagStyle();\n this.setTransformOptions();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n\n // initialize for each event\n this.checkApplyState = false;\n\n if (modelChangedEvent.source && modelChangedEvent.source.type === 'paging') {\n this.setTransformOptions();\n }\n\n // restricting it for fields with timezone directive as I don't know yet\n // the impact in other forms (that has no timezone field) if we reset the transform options on every refresh\n if (modelChangedEvent.source?.type === 'refresh'\n && this.lmFieldServiceAdapter.lmFieldLayoutService.hasTimeZone(this.field, this.specField)) {\n this.setTransformOptions();\n }\n\n this.evaluateTagStyle();\n\n if (modelChangedEvent.eventType === 'numberLabelChanged') {\n // this forces the numberLabel message rules to recalculate\n // the use case is template form child dynamic visibility\n this.triggerValue = !this.triggerValue;\n\n } else if (modelChangedEvent.eventType === 'set') {\n this.runResetOriginalValue = true;\n\n if (this.sohoAlert) {\n this.removeAllMessages();\n\n this.fieldMessage.error = undefined;\n this.fieldMessage.alert = undefined;\n\n this.processAlerts();\n }\n\n // re-evaluate\n this.recalculateReadOnly();\n this.isRequired = this.recalculateRequired();\n\n if (this.isCompoundFieldMember && !this.parentCompoundFieldDisplayOnly && this.isReadOnly) {\n this.displayLabelAsValue = this.modelField.isBlank;\n }\n\n } else if (modelChangedEvent.eventType === 'update') {\n this.checkApplyState = true;\n }\n\n if (modelChangedEvent.eventType === 'set' || modelChangedEvent.eventType === 'update') {\n\n // triggerValue changes to indicate the formatMessageRule pipe to fire\n this.triggerValue = !this.triggerValue;\n\n // determine if the field options should be seen\n this.insertContextMenu = this.showContextMenu();\n\n // hide label on a compound field when a value is entered, show the label if the value is cleared\n this.processShowLabel();\n }\n })\n );\n\n // validity conditions listen for evaluateConditions notification\n if (this.layoutObject.validity || this.layoutObject.displayAsRequired) {\n this.subscriptionArray.push(\n this.lmFieldServiceAdapter.lmConditionUtilService.evaluateConditions.subscribe(() => {\n this.recalculateReadOnly();\n this.isRequired = this.recalculateRequired();\n })\n );\n }\n }\n\n protected handleOnFieldChanged() {\n // this.lmFieldServiceAdapter.lmLoggerService.log(['lm-field-base handleOnFieldChanged()', this.bindId]);\n this.hasFieldChanged = false;\n\n // hide label on a compound field when a value is entered, show the label if the value is cleared\n this.processShowLabel();\n\n if (this.modelField.fireInitialValue) {\n this.busyIndicator = true;\n this.fireInitialValueRuleEvent(this.bindId);\n\n } else if (this.specField.conditionalDisplaySource) {\n // will notify via the lmConditionUtilService.evaluateConditions() subscription\n this.fireEvaluateConditionsEvent(this.bindId);\n\n } else {\n this.insertContextMenu = this.showContextMenu();\n }\n\n this.evaluateTagStyle();\n }\n\n // called from a radiobutton click event\n // the sohoxi controls will run the validation on a click and will\n // remove the alert that was placed there, so need to re-apply the alert\n protected onChangeProcessAlerts() {\n if (this.fieldMessage.alert) {\n // although a click on a radiobutton will cause the alert to be removed, you can actually click on\n // the alert itself and it would add a duplicate alert, so playing it safe by removing all messages\n this.resetAlert(true);\n }\n }\n\n protected recalculateRequired(): boolean {\n const validityParams = this.validityParams;\n\n if (validityParams) {\n if (this.displayAsText || this.displayOnly || !validityParams.isMutable) {\n this._isRequired = false;\n\n } else {\n // strict equality due to this.modelField.required is tri-state\n if (this._isConfigRequired || validityParams.isRequired === true || validityParams.displayAsRequired === true) {\n this._isRequired = true;\n\n } else if (validityParams.isRequired === null || validityParams.isRequired === false || validityParams.displayAsRequired === false) {\n this._isRequired = false;\n }\n }\n }\n\n return this._isRequired;\n }\n\n protected recalculateReadOnly(): void {\n const parentDisplayOnly = (typeof this._parentCompoundFieldDisplayOnly === 'boolean') ? this._parentCompoundFieldDisplayOnly : null;\n\n // when parent compound field ia set to display only, it over-rides the child\n if (this.isCompoundFieldMember && parentDisplayOnly === true) {\n this.disabledMemberField = false;\n this.isReadOnly = true;\n return;\n }\n\n const regularSearchForm = this.onSearchForm && !this.model.isCubeSearchForm;\n const validityParams = this.validityParams;\n if (validityParams) {\n if ((this.displayOnly || !validityParams.isMutable) && !regularSearchForm) {\n // return true sets readOnly attribute to true\n if (this.isCompoundFieldMember && !parentDisplayOnly) {\n // parent compound field isn't read only, but this member field is\n this.disabledMemberField = true;\n }\n this.isReadOnly = true;\n\n // Read only is evaluated, mark the spec field appropriately. Readonly information is used by search criteria and tags.\n if (this.model.isCubeSearchForm && this.isReadOnly && this.specField?.isBusClassContextField ) {\n // Context fields can be marked display only in a search form. Do it for cube search form for now.\n this.specField.displayOnly = true;\n }\n return;\n }\n }\n\n // return null removes readOnly attribute\n if (this.isCompoundFieldMember && !parentDisplayOnly) {\n this.disabledMemberField = false;\n }\n this.isReadOnly = false;\n }\n\n protected setFieldClasses(size?: number) {\n if (this.layoutType === LMLayoutType.PROGRESS || !this.displayAsText) {\n\n const hasShowUpTo = (this.layoutObjectBase.showUpTo);\n const isEditor = (this.layoutType === LMLayoutType.ONE_LINE_TEXTAREA\n || this.layoutType === LMLayoutType.MULTI_LINE_TEXTAREA\n || this.layoutType === LMLayoutType.RICH_TEXT\n || this.layoutType === LMLayoutType.FIELD_EDITOR);\n\n // todo ppatton maf khollenbeck using size for now to determine which width class to use.\n if (size === undefined) {\n size = this.size;\n }\n\n if (hasShowUpTo) {\n size = this.layoutObjectBase.showUpTo;\n }\n\n // computed (border, padding, cell, padding, border)\n // input- lookup (1, 10, 28, 35, 1)\n // input- text (1, 10, 53, 10, 1)\n // dropdown- dropdown (1, 10, 33, 30, 1)\n // # char px (~ # uppercase characters)\n // lookup text dropdown\n // -xs = 75px - 3 28px 5 53px 2 33px\n // -sm = 150px - 11 103px 14 128px 10 108px also field-short\n // -mm = 225px - 19 178px 21 203px 18 183px\n // -md = 300px - 26 253px 29 278px 25 258px\n // -lg = 400px - 38 353px 40 378px 36 358px\n // input-full = 100% - xxxxxxxx xxxxxxxx xxxxxxxx\n\n if (this.model.isSearchForm && !hasShowUpTo) {\n if (isEditor) {\n this._fieldClassArray.push('input-mm');\n\n } else if (this.layoutType === LMLayoutType.DROPDOWN) {\n this._fieldClassArray.push('dropdown-sm');\n\n } else {\n this._fieldClassArray.push('input-sm');\n }\n\n } else if (this.isCompoundFieldMember) {\n if (this.layoutType === LMLayoutType.DATE) {\n this._fieldClassArray.push('input-sm');\n\n } else {\n this._fieldClassArray.push('input-xs');\n }\n\n } else if (this.layoutType === LMLayoutType.RADIO\n || this.layoutType === LMLayoutType.CHECKBOX\n || this.layoutType === LMLayoutType.CHECKCONTROL) {\n // no-op; do not set a width, but allow this.fieldClassesString to be created\n\n } else if (isEditor) {\n this._fieldClassArray.push('input-full');\n\n } else if (this.layoutType === LMLayoutType.PROGRESS) {\n this._fieldClassArray.push('input-mm');\n this._fieldClassArray.push('lm-progress');\n\n } else if (this.bindId === 'JobPostingSearchRel_col_KeywordSearch') { // TODO do we want this hardcoded\n this._fieldClassArray.push('input-sm');\n\n } else if (this.specField?.type === AppConstants.TIMESTAMP) {\n if (this.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE) {\n this._fieldClassArray.push('input-sm');\n\n } else {\n this._fieldClassArray.push('input-mm');\n }\n\n } else if (this.specField?.type === AppConstants.MMDD) {\n this._fieldClassArray.push('input-sm');\n\n } else if (this.specField?.type === AppConstants.YYYY) {\n this._fieldClassArray.push('input-sm');\n\n } else if (this.layoutType === LMLayoutType.MULTI_SELECT) {\n this._fieldClassArray.push('dropdown-mm');\n\n } else if (this.layoutType === LMLayoutType.DROPDOWN && !this.specField?.hasUserDefinedStates) {\n if (size < 4) {\n this._fieldClassArray.push('dropdown-xs');\n\n } else if (size < 13) {\n this._fieldClassArray.push('dropdown-sm');\n\n } else if (size < 27) {\n this._fieldClassArray.push('dropdown-mm');\n\n } else if (size < 36) {\n this._fieldClassArray.push('dropdown-md');\n\n } else {\n this._fieldClassArray.push('dropdown-lg');\n }\n\n // TODO: need to evaluate incoming values and set the class appropriately; can only go larger, not smaller\n } else if (this.layoutType === LMLayoutType.DROPDOWN && this.specField?.hasUserDefinedStates && !this.layoutObjectBase.showUpTo) {\n this._fieldClassArray.push('dropdown-mm');\n\n } else if (this.layoutType === LMLayoutType.LOOKUP) {\n if (size < 3) {\n this._fieldClassArray.push('input-xs');\n\n } else if (size < 11) {\n this._fieldClassArray.push('input-sm');\n\n } else if (size < 19) {\n this._fieldClassArray.push('input-mm');\n\n } else if (size < 26) {\n this._fieldClassArray.push('input-md');\n\n } else {\n this._fieldClassArray.push('input-lg');\n }\n\n } else {\n if (size < 6) {\n this._fieldClassArray.push('input-xs');\n\n } else if (size < 20) {\n this._fieldClassArray.push('input-sm');\n\n } else if (size < 30) {\n this._fieldClassArray.push('input-mm');\n\n } else if (size < 50) {\n this._fieldClassArray.push('input-md');\n\n } else {\n this._fieldClassArray.push('input-lg');\n }\n }\n }\n\n this.fieldClassesString = this._fieldClassArray.join(' ');\n }\n\n // for lm-text and lm-lookup\n protected setNumberFormat() {\n if (this.specField.hasUserDefinedStates || this.specField.stateValues) {\n return;\n }\n\n if (this.model.isCubeSearchForm) {\n // Cube search form field value is a concatenation of ontological values separated by '/'\n return;\n }\n\n if (this.specField.type === AppConstants.BCD\n || this.specField.type === AppConstants.PERCENT\n || this.specField.type === AppConstants.NUMERIC) {\n\n const onlyAllowPositive = !(this.specField.signed);\n let allowDecimal: boolean = (this.specField.decSize !== undefined && this.specField.decSize > 0);\n let integerLimit: number = this.specField.size;\n let decimalLimit: number;\n let suffix: string;\n let showPercent: SohoMaskShowSymbol;\n const showThousands = (this.specField.type !== AppConstants.NUMERIC);\n\n if (allowDecimal) {\n let decSize = this.specField.decSize;\n\n // subtract two for the percent\n if (this.specField.type === AppConstants.PERCENT) {\n decSize -= 2;\n }\n\n // always use the smallest size for fraction\n const precision = this.modelField.precision;\n const fractionDigits: number = (precision < decSize)\n ? precision\n : decSize;\n\n if (fractionDigits > 0) {\n decimalLimit = (this.field.numberOfDecimals || this.field.numberOfDecimals === 0) ? this.field.numberOfDecimals : fractionDigits;\n } else {\n allowDecimal = false;\n }\n\n integerLimit = this.specField.size - decSize;\n\n if (this.specField.type === AppConstants.PERCENT) {\n showPercent = 'percent';\n suffix = Soho.Locale.numbers().percentSign;\n }\n }\n\n // soho mask options\n this.hasMask = true;\n\n this.maskOptions = {\n process: 'number',\n showSymbol: showPercent,\n patternOptions: {\n allowDecimal,\n allowNegative: !onlyAllowPositive,\n allowThousandsSeparator: showThousands,\n integerLimit,\n decimalLimit,\n suffix,\n allowLeadingZeros: true,\n symbols: {\n decimal: Soho.Locale.numbers().decimal,\n negative: Soho.Locale.numbers().minusSign,\n thousands: Soho.Locale.numbers().group\n }\n }\n };\n }\n }\n\n // for lm-text and lm-lookup\n protected setSearchFieldNumberFormat() {\n if (this.model.isCubeSearchForm) {\n // Cube search form field value is a concatenation of ontological values separated by '/'\n return;\n }\n\n if (!this.lmFieldServiceAdapter.lmContextService.useMultiSelectKeyField()) {\n this.setNumberFormat();\n }\n\n if (this.specField.hasUserDefinedStates || this.specField.stateValues) {\n return;\n }\n\n if (this.specField.type === AppConstants.BCD\n || this.specField.type === AppConstants.PERCENT\n || this.specField.type === AppConstants.NUMERIC) {\n\n const percentAdjustment: number = (this.specField.type === AppConstants.PERCENT) ? 2 : 0;\n const allowDecimal: boolean = (this.specField.decSize !== undefined && this.specField.decSize - percentAdjustment > 0);\n const decimalLimit: number = (allowDecimal) ? this.specField.decSize - percentAdjustment : 0;\n const integerLimit: number = (allowDecimal) ? this.specField.size - decimalLimit : this.specField.size;\n const decimal = allowDecimal ? Soho.Locale.numbers().decimal : '';\n const negative = !!this.specField.signed ? Soho.Locale.numbers().minusSign : '';\n const thousands = decimal ? Soho.Locale.numbers().group : '';\n const anyDigit = '\\\\d';\n const space = ' ';\n\n this.searchFieldMaskOptions = {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions,no-unused-vars\n pattern: function customMask(rawValue, options) {\n const match = new RegExp(`[${negative}${decimal}${thousands}${space}${AppConstants.MULTI_SEARCH_TERM_DELIMITER}${anyDigit}]`);\n return rawValue.split('').map(() => match);\n }\n };\n }\n }\n\n protected setSize() {\n if (this.specField?.size) {\n if (this.maxLength === undefined) {\n this.maxLength = this.specField.size;\n }\n }\n\n if (this.specField?.dsplSize) {\n this.size = this.specField.dsplSize;\n }\n\n if (this.layoutType === LMLayoutType.COMPACT_FORMAT ||\n (this.layoutType === LMLayoutType.LOOKUP && this.modelField.isCompoundField)) {\n this.size = this.computeCompactFieldSize(this.modelField);\n this.maxLength = this.size;\n }\n }\n\n protected setTransformOptions() {\n this.transformOptions = {};\n\n if (this.isDisplayZero) {\n this.transformOptions.displayZero = !this.field.displayBlankWhenZero;\n }\n\n if (this.model.isCubeSearchForm) {\n this.transformOptions.doNotTransform = true;\n }\n\n // Disabling multiselect for cube search form for now.\n let allowMulti = this.lmFieldServiceAdapter.lmContextService.useMultiSelectKeyField() && this.model.isSearchForm && !this.model.isCubeSearchForm && !this.specField?.isBusClassContextField;\n if (allowMulti && this.specField) {\n // Don't allow multi value entry for Time, Timestamp, Date and Boolean fields\n allowMulti = (this.specField.type !== AppConstants.TIME ||\n this.specField.type !== AppConstants.TIMESTAMP ||\n this.specField.type !== AppConstants.YYYY ||\n this.specField.type !== AppConstants.YYYYMM ||\n this.specField.type !== AppConstants.YYYYMMDD ||\n this.specField.type !== AppConstants.BOOLEAN ||\n this.specField.type !== AppConstants.BINARY ||\n this.specField.type !== AppConstants.BINARYOBJECT ||\n this.specField.type !== AppConstants.BINARYDOCUMENT);\n }\n this.transformOptions.allowMultiSelections = allowMulti;\n\n if (allowMulti) {\n this.numericFilterSettings.unshift({ value: 'contains', text: Soho.Locale.translate('Contains'), icon: 'filter-contains' });\n }\n\n if (this.specField\n && (this.specField.type === AppConstants.BCD || this.specField.type === AppConstants.PERCENT)) {\n this.transformOptions.precision = (this.field.numberOfDecimals || this.field.numberOfDecimals === 0) ? this.field.numberOfDecimals : this.modelField.precision;\n this.transformOptions.decSize = (this.field.numberOfDecimals || this.field.numberOfDecimals === 0) ? this.field.numberOfDecimals : this.specField.decSize;\n\n if (this.field.displayNegativeAmountAs === 'parens') {\n this.transformOptions.displayNegativeParens = this.field.displayNegativeAmountAs;\n }\n\n if (this.field.showPercentSymbol) {\n this.transformOptions.showPercentSymbol = true;\n }\n\n if (this.field.hasCurrencySymbol) {\n this.transformOptions.currencySymbolIs =\n this.lmFieldServiceAdapter.lmFormatUtilService.getCurrencySymbol(this.field.currencySymbolInfo, this.model.getData());\n }\n }\n\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.hasTimeZone(this.field, this.specField)) {\n this.transformOptions.timeZone = this.model.getField(this.field.timeZoneIs)?.value;\n }\n\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.hasDisableDST(this.field, this.specField)) {\n this.transformOptions.disableDST = true;\n }\n\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.isDisplayWithTimeZone(this.field, this.specField)) {\n this.transformOptions.displayWithTimeZone = this.field.displayWithTimeZone;\n }\n\n this.transformOptions.timeStampDirective = this.timeStampDirective;\n this.transformOptions.isCompoundField = this.modelField.isCompoundField;\n }\n\n protected setType() {\n this.type = (this.field.type === 'password') ? 'password' : 'text';\n }\n\n protected showContextMenu(): boolean {\n // only show the context menu if displayFieldHistory is true, and isSearchForm is false\n // displayFieldHistory || LayoutType is compactField\n // also hide the context menu when the LPL directive to disable field options exists\n if (this.onPageContextForm || this.model?.formSpec?.disableFieldOptions || this.layoutInfo?.disableFieldOptions) {\n return false;\n }\n\n return !this.lmFieldServiceAdapter.lmContextService.casualMode()\n && ((this.modelField.displayFieldHistory && !this.model.isCreateAction)\n || this.showDrillableContextMenu()\n || !!this.field.textVariables)\n && !this.onSearchForm && !this.isNumberLabel\n && !(this.lmParagraphLayoutInfo && this.isPreviewCompoundMember);\n }\n\n protected subscribeToInlineError() {\n // LMFieldSubscriptionService is different than the subscriptionArray\n // In LMFieldSubscriptionService, there is only one entry / subscription for a key as we only want one notification\n // to be emitted and not multiple subscriptions for multiple instances of a bindId on a form\n if (this.lmFieldServiceAdapter.lmFieldSubscriptionService.subscriptionAlreadyExists(this.fieldInlineError)) {\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.add(this.fieldInlineError);\n\n } else {\n const inlineErrorSubscription = this.modelField.errorMessage.subscribe({\n next: (message) => {\n if (this.isCompoundFieldMember) {\n if (message !== '') {\n if (!this.isReadOnly) {\n this.onFocus(null);\n }\n this.compoundFieldInError = true;\n this.errorOnMemberField.emit(message);\n }\n }\n\n this.processFieldMessage(message, true);\n }\n });\n\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.add(this.fieldInlineError, inlineErrorSubscription);\n }\n }\n\n // public methods\n // eslint-disable-next-line no-unused-vars\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n\n let message = this.specField ? '' : 'SPEC NOT LOADED YET. ';\n message += this.lmFieldServiceAdapter.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n message += this.model ? '' : 'MODEL NOT LOADED YET. ';\n const resourceInfo = this.field && this.field.resourceInfo ? this.field.resourceInfo : undefined;\n let bindId = this.lmFieldServiceAdapter.lmFieldUtilService.decodeFieldName(this.field.bindId);\n bindId = bindId.substring(0, 1) === '(' ? bindId.substring(1) : bindId;\n bindId = bindId.substring(bindId.length-1) === ')' ? bindId.substring(0, bindId.length-1) : bindId;\n let last = bindId.lastIndexOf(':');\n last = last < 0 ? bindId.lastIndexOf('.') + 1 : last + 1;\n\n const formInfo: LMComponentInfo = {\n componentType: 'FIELD',\n // TODO: need to provide hasError status\n busClassName: this.model.formSpec.busClassSpec.name,\n module: this.model.formSpec ? this.model.formSpec.busClassSpec.module : undefined,\n formName: this.model.formSpec.busFormSpec.name,\n status: this.getStatus({ isDirty: this.isDirty }),\n name: bindId.substring(last),\n type : 'TEXT',\n fieldLayout: JSON.stringify(this.field, null, 4),\n developer: this.lmFieldServiceAdapter.lmContextService.getContext().developer,\n lpl: this.field.lpl,\n parentLink: bindId.split(':').join('.'),\n resourceInfo,\n message: message.length > 0 ? message : undefined,\n hasConfigAccess: this.lmComponentInfoService.hasConfigAccess(),\n };\n\n if (this.specField) {\n formInfo.type = this.specField.type;\n formInfo.fieldSize = this.specField.size;\n formInfo.specField = JSON.stringify(this.specField, null, 4);\n\n // display the current stateValues from the model\n formInfo.stateValues = this.getStateFields();\n }\n\n return formInfo;\n };\n\n public getComponentPlaceHolder() {\n return this.placeHolder;\n };\n\n // If on a search form, make sure to clear out any fields in the data view that are multi-value.\n // If a value comes in as an array of one, grab the value out of the array as the new value\n public getSearchFormValidatedDataView(): LMDataView {\n if (this.model.isSearchForm) {\n const clonedDataView: LMDataView = JSON.parse(JSON.stringify(this.model.getData()));\n Object.keys(clonedDataView.fields).forEach((key) => {\n const field: LMModelField = clonedDataView.fields[ key ] as LMModelField;\n if(Array.isArray(field.value)) {\n if (field.value.length === 1) {\n field.value = field.value[ 0 ];\n } else {\n field.value = '';\n }\n } else if (typeof field.value === 'string' && (field.value as string).includes(',')) {\n field.value = '';\n }\n });\n return clonedDataView;\n }\n return this.model.getData();\n }\n\n // Stops the click event from propagating up when opening help text on mobile\n public mouseOverTextClick(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.tooltip.show();\n }\n\n public displayMouseOverText = (response: any) => {\n if (this.layoutObject.mouseOverText) {\n this.mouseOverTextContents = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.layoutObject.mouseOverText, this.model);\n response(this.mouseOverTextContents);\n }\n }\n\n // private methods\n private addInlineMessage(message: string, type: SohoAlertType, isAlert: boolean, icon?: string) {\n if (this.sohoAlert) {\n this.sohoAlert.addInlineMessage(\n this.lmFieldServiceAdapter.domSanitizer.sanitize(SecurityContext.HTML, message),\n type,\n isAlert,\n false,\n icon\n );\n }\n }\n\n // NOTE: method is recursive\n private computeCompactFieldSize(modelField: LMModelField) {\n let addDelimiter = false;\n const delimiterLength = (modelField.groupFieldDelimiter || '').length;\n let size = 0;\n\n for (let index = 0, len = modelField.members.length; index < len; index++) {\n if (addDelimiter) {\n size += delimiterLength;\n }\n\n const memberId = modelField.members[ index ];\n const memberModelField = this.modelBase.getField(memberId);\n\n if (!memberModelField) {\n continue;\n }\n\n addDelimiter = (delimiterLength > 0);\n\n if (memberModelField.isCompoundField) {\n size += this.computeCompactFieldSize(memberModelField);\n\n } else {\n size += memberModelField.size;\n }\n }\n return size;\n }\n\n protected getInputElement() {\n return (this.inputElement && this.inputElement.nativeElement)\n ? this.inputElement.nativeElement\n : this.inputElement && this.inputElement[ 'element' ].nativeElement\n // SohoInputComponent\n ? this.inputElement[ 'element' ].nativeElement\n : undefined;\n }\n\n private getStateFields(): string {\n let retStateValues;\n if (this.specField && this.specField.stateValues) {\n retStateValues = JSON.stringify(this.specField.stateValues, null, 4);\n }\n\n if (this.modelField && this.modelField.states) {\n retStateValues = JSON.stringify(this.modelField.states, null, 4);\n }\n return retStateValues;\n }\n\n private getInputSelection(el) {\n let start = 0; let end = 0; let normalizedValue; let range;\n let textInputRange; let len; let endRange;\n\n if (typeof el.selectionStart === 'number' && typeof el.selectionEnd === 'number') {\n start = el.selectionStart;\n end = el.selectionEnd;\n } else {\n range = window.getSelection().getRangeAt(0);\n\n if (range && range.parentElement && range.parentElement() === el) {\n len = el.value.length;\n normalizedValue = el.value.replace(/\\r\\n/g, '\\n');\n\n // Create a working TextRange that lives only in the input\n textInputRange = el.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n\n // Check if the start and end of the selection are at the very end\n // of the input, since moveStart/moveEnd doesn't return what we want\n // in those cases\n endRange = el.createTextRange();\n endRange.collapse(false);\n\n if (textInputRange.compareEndPoints('StartToEnd', endRange) > -1) {\n start = end = len;\n } else {\n start = -textInputRange.moveStart('character', -len);\n start += normalizedValue.slice(0, start).split('\\n').length - 1;\n\n if (textInputRange.compareEndPoints('EndToEnd', endRange) > -1) {\n end = len;\n } else {\n end = -textInputRange.moveEnd('character', -len);\n end += normalizedValue.slice(0, end).split('\\n').length - 1;\n }\n }\n } else {\n start = range.startOffset;\n end = range.endOffset;\n }\n }\n\n return {\n start,\n end\n };\n }\n\n private getModelField() {\n let modelField: any = null;\n\n modelField = this.modelBase.getField(this.bindId);\n\n if (!modelField) {\n modelField = this.modelBase.getDefaultField(this.bindId);\n }\n\n return modelField;\n }\n\n private processAlerts() {\n if (this.layoutObjectBase.alert) {\n this.hasAlert = true;\n let icon: string;\n let message = '';\n let messageRule: LMMessageRule = null;\n\n for (let index = 0, len = this.alerts.length; index < len; index++) {\n const item = this.alerts[ index ];\n const alertItem = this.layoutObjectBase[ item ];\n\n if (alertItem && this.lmFieldServiceAdapter.lmConditionUtilService.isValid(alertItem.condition, this.modelBase)) {\n messageRule = alertItem.alertMouseOverMessage;\n\n if (this.sohoAlert) {\n // only allow one message to be displayed\n this.removeAllMessages();\n\n if (messageRule) {\n message = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(messageRule, this.modelBase, this.specFieldsBase);\n }\n\n // cannot send a message text of blank, so make it one space so icon will display\n if (!message || message.length === 0) {\n message = ' ';\n }\n\n if (item === 'iconAlert') {\n icon = alertItem.icon;\n }\n\n const alertType: SohoAlertType = this.lmFieldServiceAdapter.lmCommonUtilService.convertAlertColorToAlertType(item) as SohoAlertType;\n\n this.fieldMessage.alert = {\n type: alertType,\n message,\n icon\n };\n\n this.addInlineMessage(message, alertType, true, icon);\n\n // stop iterating the array\n break;\n }\n }\n }\n }\n }\n\n // called from onError and onValid events\n private processFieldMessage(message: string, fireFieldInvalidEvent?: boolean) {\n // this.lmFieldServiceAdapter.lmLoggerService.log([ 'processFieldMessage', this.bindId, message ]);\n\n if (!this.sohoAlert) {\n return;\n }\n\n if (message) {\n const currentMessage = this.sohoAlert.getMessage('error');\n\n // if messages are the same, then don't process again\n if (currentMessage === message) {\n return;\n }\n\n // don't call this.removeAllMessages() here\n this.sohoAlert.removeAllMessages(false);\n\n this.fieldMessage.error = {\n type: 'error',\n message\n };\n\n this.addInlineMessage(message, 'error', false);\n\n // do not do this for internal sohoxi errors, such as Invalid Date, etc\n if (fireFieldInvalidEvent === true) {\n // bubble up event, so the controlling form can know it's in error, and claim the field\n\n this.fieldEvent.emit(\n new LMInvalidFieldEvent(\n new CustomEvent('ValueChanged'), 'FieldInvalidEvent', this.bindId, this.sohoAlert));\n\n // if (this.inputElement) {\n // let evt = document.createEvent('Event');\n // evt.initEvent('focus', false, false);\n // this.onFocus(evt);\n // }\n\n }\n\n } else if (message === '') {\n this.resetAlert();\n }\n }\n\n private removeAllMessages() {\n if (this.sohoAlert) {\n this.sohoAlert.removeAllMessages(false);\n }\n\n this.model.setError(this.bindId, false);\n }\n\n private resetAlert(skipCheck?: boolean) {\n // radiobuttons need to skip this check because message will be removed onClick\n if (skipCheck !== true && this.fieldMessage.alert) {\n const currentMessage = this.sohoAlert.getMessage(this.fieldMessage.alert.type);\n\n // if messages are the same, then don't process again\n if (currentMessage === this.fieldMessage.alert.message) {\n return;\n }\n }\n\n this.removeAllMessages();\n this.fieldMessage.error = undefined;\n this.compoundFieldInError = false;\n\n if (this.fieldMessage.alert) {\n this.addInlineMessage(this.fieldMessage.alert.message, this.fieldMessage.alert.type, true, this.fieldMessage.alert.icon);\n }\n }\n\n private selectElementContents(el) {\n if (window.getSelection && document.createRange) {\n const sel = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(el);\n sel.removeAllRanges();\n sel.addRange(range);\n } else {\n this.lmFieldServiceAdapter.lmLoggerService.log('Unable to reset selection range');\n }\n }\n\n private processShowLabel() {\n // hide label on a compound field when a value is entered, show the label if the value is cleared\n if (this.isCompoundFieldMember) {\n this.showLabel = !(!!this.modelField.value && !this.modelField.isBlank);\n }\n }\n\n private uniqueId(bindId: string): string {\n if (!bindId) {\n return null;\n }\n\n const formNamePrefix = this.lmFieldServiceAdapter.lmFormSpecUtilService.formNamePrefix(this.model.formSpec);\n const formName = this.lmFieldServiceAdapter.lmFormSpecUtilService.formName(this.model.formSpec);\n const instance = (this.field.hasOwnProperty('inst') && this.field.inst > 0) ? this.field.inst.toString() : undefined;\n const id = this.testVersion1 ? bindId : bindId.replace('_prd_', '_');\n return this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ formNamePrefix, formName, id, instance ]);\n }\n\n protected uniqueFieldAutomationId(bindId: string): string {\n if (!bindId) {\n return null;\n }\n\n const instance = (this.field.hasOwnProperty('inst') && this.field.inst > 0) ? this.field.inst.toString() : undefined;\n const id = bindId.replace('_prd_', '-');\n return this.lmFieldServiceAdapter.lmUniqueIdService.uniqueAutomationId([ id, instance ]);\n }\n\n private showCompactFormContextMenu(): boolean {\n return (this.layoutType === LMLayoutType.COMPACT_FORMAT\n || this.layoutType === LMLayoutType.COMPACT_FORMAT_BY_FORM\n || (this.layoutType === LMLayoutType.LOOKUP && this.modelField.isCompoundField));\n }\n\n private showDrillableContextMenu(): boolean {\n if (!this.specField) {\n return false;\n }\n\n // drillable is true if the field has a value set on it, so make sure the value's length is greater than 0\n // (for alpha lookups)\n switch (this.specField.type) {\n case AppConstants.ALPHAUPPER:\n case AppConstants.ALPHALOWER:\n case AppConstants.ALPHARIGHT:\n return this.specField.drillable && this.modelField.getData().length > 0;\n\n default:\n return this.specField.drillable;\n }\n }\n\n private subscribeToApplyStateChanges() {\n const subscription = this.modelField.applyState.subscribe({\n next: () => {\n this.runApplyState = true;\n }\n });\n\n this.subscriptionArray.push(subscription);\n }\n\n private subscribeToFireInitialValueRuleCompleted() {\n // LMFieldSubscriptionService is different than the subscriptionArray\n // In LMFieldSubscriptionService, there is only one entry / subscription for a key as we only want one notification\n // to be emitted and not multiple subscriptions for multiple instances of a bindId on a form\n if (this.lmFieldServiceAdapter.lmFieldSubscriptionService.subscriptionAlreadyExists(this.fireInitialKey)) {\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.add(this.fireInitialKey);\n\n } else {\n const fireInitialValueSubscription =\n this.lmFieldServiceAdapter.lmFormService.firingInitialValueRuleCompleted.subscribe(bindId => {\n if (bindId === this.bindId) {\n this.busyIndicator = false;\n this.insertContextMenu = this.showContextMenu();\n this.runAfterInitialValueRule = true;\n }\n });\n\n this.lmFieldServiceAdapter.lmFieldSubscriptionService.add(this.fireInitialKey, fireInitialValueSubscription);\n }\n }\n\n private getLMOperator(sohoOperator: SohoFilterFieldOperator | string): LMFilterFieldOperator {\n const foundEntry: OperatorMapping = AppConstants.OperatorMap.find(operatorEntry => operatorEntry.sohoOperator === sohoOperator);\n return foundEntry.lmOperator;\n }\n\n private buildFieldHistoryContent(): string {\n const tableStringStart =\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '';\n\n let tableString = '';\n let columnString = '';\n let valueString = '';\n let titleString = '';\n this.fieldHistoryInfo.reverse();\n this.fieldHistoryInfo.forEach((record: LMFieldHistoryResponse) => {\n tableString += '';\n //Effective Date\n columnString = Soho.Locale.translate('EffectiveDate');\n valueString = this.lmFieldServiceAdapter.lmFormatUtilService.yyyymmddToDisplay(record.effectiveDate);\n titleString = this.buildFieldHistoryTimestamp(record);\n tableString += '';\n // Value\n tableString += '';\n // User\n columnString = Soho.Locale.translate('User');\n valueString = record.actorId;\n titleString = this.buildFieldHistoryActor(record);\n tableString += '';\n tableString += '';\n\n });\n const tableStringEnd = '
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    ';\n tableString += '';\n tableString += '
    ';\n return tableStringStart + tableString + tableStringEnd;\n }\n\n private buildFieldHistoryTimestamp(record: LMFieldHistoryResponse): string {\n let detailString = Soho.Locale.translate('AppliedTime') + ': ';\n detailString += this.lmFieldServiceAdapter.lmFormatUtilService.timestampToDisplay(record.appliedStamp);\n\n return detailString;\n }\n\n private buildFieldHistoryActor(record: LMFieldHistoryResponse): string {\n let detailString = Soho.Locale.translate('ActorName') + ': ';\n detailString += record.actorName;\n\n return detailString;\n }\n\n private buildTextVariableInsertionMessage(message: string): string {\n return '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ';\n }\n\n private evaluateTagStyle(): void {\n if (!this.displayAsTag) {\n return;\n }\n\n const value = (this.specField)\n ? this.lmFieldServiceAdapter.lmFormatUtilService.toDisplayValue(this.modelField.value, this.specField.type, this.transformOptions)\n : this.modelField.value;\n\n if (typeof value !== 'string' && typeof value !== 'boolean') {\n return;\n }\n\n this.tagStyle = null;\n if (this.displayAsTag) {\n if (this.tagStyleArray && this.tagStyleArray.length > 0) {\n this.tagStyle = this.tagStyleArray.find(tagStyle => {\n if (!tagStyle.condition) {\n return true;\n }\n\n return this.lmFieldServiceAdapter.lmConditionUtilService.isValid([ tagStyle.condition ], this.modelBase);\n });\n }\n }\n }\n\n protected openFieldOptions(event) {\n this.displayFieldOptions = true;\n const fieldOptionsButton = this.lmFieldServiceAdapter.elementRef.nativeElement.querySelector(`button#${this.fieldOptionsId}`);\n // fieldOptionsButton will be null if not found, so safety it\n if (fieldOptionsButton) {\n // Open up the field options menu, instead of browser context menu\n event.preventDefault();\n fieldOptionsButton.dispatchEvent(new Event('click'));\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ElementRef,\n Injectable,\n NgZone,\n Renderer2\n} from '@angular/core';\nimport {\n LMBusyIndicatorService,\n LMCompoundFieldService,\n LMComponentInfoService,\n LMContextService,\n LMFieldUtilService,\n LMLoggerService,\n LMUrlInfoBuilderService,\n LMUrlUtilService\n} from '@services/index';\nimport {\n LMBrowserUtilService,\n LMCommonUtilService,\n LMConditionUtilService,\n LMGlobalUtilService,\n LMUniqueIdService\n} from '@utils/index';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMFormService, LMFormSpecUtilService } from '@form/services/index';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMFieldSubscriptionService } from './lm-field-subscription.service';\nimport {\n LMFieldLayoutService,\n LMFieldOptionsService,\n LMFieldOptionsToolbarService } from './services';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport { LMKeyboardShortcutService } from '@services/lm-keyboard-shortcut.service';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Injectable()\nexport class LMFieldServiceAdapter {\n\n // this class is used to provide services with a single Dependency Injection to\n // a field component and the field base component\n\n constructor(\n public lmBrowserUtilService: LMBrowserUtilService,\n public lmBusyIndicatorService: LMBusyIndicatorService,\n public lmConditionUtilService: LMConditionUtilService,\n public lmContextService: LMContextService,\n public lmFormatUtilService: LMFormatUtilService,\n public lmFormService: LMFormService,\n public lmFormSpecUtilService: LMFormSpecUtilService,\n public lmGlobalUtilService: LMGlobalUtilService,\n public lmLoggerService: LMLoggerService,\n public sohoModalDialogService: SohoModalDialogService,\n public lmFieldSubscriptionService: LMFieldSubscriptionService,\n public lmFieldLayoutService: LMFieldLayoutService,\n public lmCompoundFieldService: LMCompoundFieldService,\n public lmCommonUtilService: LMCommonUtilService,\n public lmFieldOptionsToolbarService: LMFieldOptionsToolbarService,\n public lmFieldOptionsService: LMFieldOptionsService,\n public changeDetectorRef: ChangeDetectorRef,\n public lmComponentInfoService: LMComponentInfoService,\n public lmThemeService: LMThemeService,\n public ngZone: NgZone,\n public lmUniqueIdService: LMUniqueIdService,\n public elementRef: ElementRef,\n public lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n public lmUrlUtilService: LMUrlUtilService,\n public lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n public renderer2: Renderer2,\n public lmFieldUtilService: LMFieldUtilService,\n public lmKeyBoardShortcutService: LMKeyboardShortcutService,\n public domSanitizer: DomSanitizer\n ) {}\n\n}\n","import {\n Directive,\n HostBinding,\n Input\n} from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMStyleDirectiveBase } from './lm-style-directive.base';\n\n@Directive({\n selector: '[lm-field-style]' // tslint:disable-line\n})\nexport class LMFieldStyleDirective extends LMStyleDirectiveBase {\n\n @Input() displayAsText: boolean;\n @Input() specField: LMSpecField;\n\n @Input() set fieldStyle(fieldStyle: LMFieldStyle) {\n this._fieldStyle = fieldStyle;\n this.setStyle(fieldStyle);\n }\n get fieldStyle(): LMFieldStyle {\n return this._fieldStyle;\n }\n private _fieldStyle: LMFieldStyle;\n\n constructor(private lmThemeService: LMThemeService) {\n super();\n }\n\n @HostBinding('class.alignRight') get isAlignRight() {\n if (!this.specField) {\n return false;\n }\n\n return this.alignRight();\n }\n\n // force certain types to be left-aligned\n @HostBinding('class.alignLeftForce') get isAlignLeftForce() {\n if (!this.specField) {\n return false;\n }\n\n return !this.alignRight();\n }\n\n private alignRight(): boolean {\n // 1 - check if state field\n if (this.specField.hasUserDefinedStates\n || this.specField.stateValues\n || this.specField.selectable) {\n return false;\n }\n\n // 2 - check if numeric key field\n if ((this.specField.isContextKey\n || this.specField.isKeyField\n || this.specField.isSymbolicKey\n || this.specField.isPartOfRelativeKey)\n && this.specField.type === AppConstants.NUMERIC) {\n return false;\n }\n\n // 3 & 4 = check if alpharight or if a number type\n if ((this.specField.type === AppConstants.ALPHARIGHT && !this.displayAsText)\n || this.specField.type === AppConstants.BCD\n || this.specField.type === AppConstants.PERCENT\n || this.specField.type === AppConstants.NUMERIC) {\n return true;\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\n\n@Injectable()\nexport class LMFieldSubscriptionService {\n\n private fieldSubscriptionsArray: Array = [];\n\n constructor() { }\n\n add(key: string, newSubscription?: ISubscription): void {\n if (!newSubscription && this.fieldSubscriptionsArray[key]) {\n // no new subscription passed in, and a subscription already exists in the array. Increment the total\n // number\n this.fieldSubscriptionsArray[key].totalNumber++;\n\n } else if (newSubscription && this.fieldSubscriptionsArray[key]) {\n // the subscription already existed, but passed in a new subscription. Since we want a one subscription\n // to many fields, unsubscribe from the previously stored subscription and put in new\n this.fieldSubscriptionsArray[key].subscription.unsubscribe();\n this.fieldSubscriptionsArray[key].subscription = newSubscription;\n\n } else if (newSubscription && !this.fieldSubscriptionsArray[key]) {\n // subscription doesn't exist in the array, so add it\n this.fieldSubscriptionsArray[key] = {subscription: newSubscription, totalNumber: 1};\n }\n // fall thru would be that no subscription was handed in, and there is no entry in the\n // array for that key. in this case we are no-oping\n }\n\n remove(key: string): void {\n if (this.fieldSubscriptionsArray[key] ) {\n this.fieldSubscriptionsArray[key].totalNumber--;\n\n if (this.fieldSubscriptionsArray[key].totalNumber === 0) {\n this.fieldSubscriptionsArray[key].subscription.unsubscribe();\n delete this.fieldSubscriptionsArray[key];\n }\n }\n }\n\n subscriptionAlreadyExists(key: string): boolean {\n return (this.fieldSubscriptionsArray[key] !== undefined);\n }\n}\n\ntype FieldSubscription = { subscription: ISubscription, totalNumber: number};\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Output,\n Input\n} from '@angular/core';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModel][lm-displayupper]', // tslint:disable-line\n providers: [ NgModel ]\n})\nexport class LMFieldUpperCaseDirective {\n\n @HostBinding('class.lm-uppercase') get isUpper() {\n return this.isUpperCase;\n };\n\n @Input() public set isUpperCase(value: boolean | string) {\n if (typeof value === 'string') {\n this._isUpperCase = (value === 'true');\n\n } else {\n this._isUpperCase = value;\n }\n };\n\n @Output() ngModelChange: EventEmitter = new EventEmitter();\n\n private _isUpperCase = false;\n\n constructor(private model: NgModel) {\n }\n\n public get isUpperCase() {\n return this._isUpperCase;\n }\n\n // updates the model with the transformed value\n // change event occurs before a blur event\n // input event occurs between keypress and keyup events\n @HostListener('change', [ '$event' ])\n onInputChange(event) {\n if (event && event.target && event.target.value && this.isUpperCase) {\n const value = event.target.value.toUpperCase();\n this.ngModelChange.emit(value);\n }\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { LMModel } from '@form/model';\nimport { LMContextService } from '@app/services';\nimport { SohoTooltipDirective } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-mouse-over-text',\n template: `\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LMMouseOverTextComponent implements OnInit {\n @Input() mouseOverTextContents: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Input() beforeShowTooltip: Function;\n\n @ViewChild(SohoTooltipDirective) tooltip: SohoTooltipDirective;\n\n public isMobile = false;\n\n constructor(\n private lmContextService: LMContextService,\n ) {}\n\n ngOnInit() {\n this.isMobile = this.lmContextService.isMobileDevice();\n }\n\n // Stops the click event from propagating up when opening help text on mobile\n public mouseOverTextClick(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.tooltip.show();\n }\n}\n","import { HostBinding, Input, Directive } from '@angular/core';\n\n@Directive()\nexport class LMStyleDirectiveBase {\n\n private style: LMFieldStyle;\n protected _isTag: boolean;\n\n constructor() {}\n\n @Input() set isTag(isTag: boolean) {\n this._isTag = isTag;\n }\n\n public setStyle(style: LMFieldStyle) {\n this.style = style;\n }\n\n @HostBinding('class.lm-font-xl') get header1() {\n return this.style ? this.style.header === 1 : false;\n }\n @HostBinding('class.lm-font-lg') get header2() {\n return this.style ? this.style.header === 2 : false;\n }\n @HostBinding('class.lm-font-md') get header3() {\n return this.style ? this.style.header === 3 : false;\n }\n @HostBinding('class.lm-font-sm') get header4() {\n return this.style ? this.style.header === 4 : false;\n }\n @HostBinding('class.lm-font-xs') get header5() {\n return this.style ? this.style.header === 5 : false;\n }\n\n @HostBinding('class.lpl-black') get black() {\n // Need black font on yellow tags for accessibility\n if (this._isTag && this?.style?.color === 'yellow') {\n return true;\n }\n\n return this.style && !this._isTag ? this.style.color === 'black' : false;\n }\n @HostBinding('class.lpl-blue') get blue() {\n return this.style && !this._isTag ? this.style.color === 'blue' : false;\n }\n @HostBinding('class.lpl-brown') get brown() {\n return this.style && !this._isTag ? this.style.color === 'brown' : false;\n }\n @HostBinding('class.lpl-gray') get gray() {\n return this.style && !this._isTag ? this.style.color === 'gray' : false;\n }\n @HostBinding('class.lpl-green') get green() {\n return this.style && !this._isTag ? this.style.color === 'green' || this.style.color === 'jade' : false;\n }\n @HostBinding('class.lpl-orange') get orange() {\n return this.style && !this._isTag ? this.style.color === 'orange' : false;\n }\n @HostBinding('class.lpl-purple') get purple() {\n return this.style && !this._isTag ? this.style.color === 'purple' || this.style.color === 'magenta' : false;\n }\n @HostBinding('class.lpl-red') get red() {\n return this.style && !this._isTag ? this.style.color === 'red' || this.style.color === 'maroon' : false\n }\n @HostBinding('class.lpl-turquoise') get turquoise() {\n return this.style && !this._isTag ? this.style.color === 'turquoise' : false;\n }\n @HostBinding('class.lpl-yellow') get yellow() {\n return this.style && !this._isTag ? this.style.color === 'yellow' : false;\n }\n\n // background color bindings for isTag\n @HostBinding('class.lpl-black-bg') get bgBlack() {\n return this.style && this._isTag ? this.style.color === 'black' : false;\n }\n @HostBinding('class.lpl-blue-bg') get bgBlue() {\n return this.style && this._isTag ? this.style.color === 'blue' : false;\n }\n @HostBinding('class.lpl-brown-bg') get bgBrown() {\n return this.style && this._isTag ? this.style.color === 'brown' : false;\n }\n @HostBinding('class.lpl-gray-bg') get bgGray() {\n return this.style && this._isTag ? this.style.color === 'gray' : false;\n }\n @HostBinding('class.lpl-green-bg') get bgGreen() {\n return this.style && this._isTag ? this.style.color === 'green' || this.style.color === 'jade' : false;\n }\n @HostBinding('class.lpl-orange-bg') get bgOrange() {\n return this.style && this._isTag ? this.style.color === 'orange' : false;\n }\n @HostBinding('class.lpl-purple-bg') get bgPurple() {\n return this.style && this._isTag ? this.style.color === 'purple' || this.style.color === 'magenta' : false;\n }\n @HostBinding('class.lpl-red-bg') get bgRed() {\n return this.style && this._isTag ? this.style.color === 'red' || this.style.color === 'maroon' : false\n }\n @HostBinding('class.lpl-turquoise-bg') get bgTurquoise() {\n return this.style && this._isTag ? this.style.color === 'turquoise' : false;\n }\n @HostBinding('class.lpl-yellow-bg') get bgYellow() {\n return this.style && this._isTag ? this.style.color === 'yellow' : false;\n }\n\n @HostBinding('class.text-strong') get isBold() {\n return this.style ? this.style.bold : false;\n };\n @HostBinding('class.text-emphasis') get isItalic() {\n return this.style ? this.style.italics : false;\n };\n\n @HostBinding('style.text-align') get textAlign() {\n return this.style && this.style.align ? this.style.align : null;\n }\n}\n","import {\n Directive,\n Input,\n} from '@angular/core';\nimport { LMStyleDirectiveBase } from './lm-style-directive.base';\n\n@Directive({\n selector: '[lm-text-style]', // tslint:disable-line\n})\nexport class LMTextStyleDirective extends LMStyleDirectiveBase {\n @Input() set textStyle(textStyle: LMTextStyle) {\n this.setStyle(textStyle);\n }\n}\n","export * from './lm-lookup-selection.event';\nexport * from './lm-lookup.component';\nexport * from './lm-lookup-dialog.component';\nexport * from './lm-lookup-basic.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {\n SohoAlertDirective,\n SohoBusyIndicatorDirective,\n SohoLookupComponent,\n SohoModalDialogRef,\n SohoModalDialogService\n} from 'ids-enterprise-ng';\nimport { AppConstants, FormRequestType, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { LMLookupDialogComponent } from './lm-lookup-dialog.component';\nimport { catchError, first } from 'rxjs/operators';\nimport { LMContextService, LMErrorUtilService, LMFormatUtilService, LMLoggerService, LMSpecService } from '@services/index';\nimport { Observable, of, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { LMDimension } from '@modal/cubes/lm-cubes';\nimport { LMFieldValueChangedEvent, LMSelectDialogService, LMSelectResponse } from '@app/components';\n\nenum LMLookupBasicDialogResult {\n CANCEL = 'CANCEL',\n OK = 'OK',\n TOOLBAREVT = 'TOOLBAREVT'\n}\n\n@Component({\n selector: 'lm-lookup-basic',\n templateUrl: './lm-lookup-basic.component.html'\n})\nexport class LMLookupBasicComponent implements OnInit, AfterViewInit {\n @ViewChild(SohoLookupComponent) sohoLookup: SohoLookupComponent;\n @ViewChild('lookupBasicPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(SohoAlertDirective) sohoAlert: SohoAlertDirective;\n\n @Output() onLookupValueChangedEvent: EventEmitter = new EventEmitter();\n\n @Input() fieldLabel: string;\n @Input() sourceField: string;\n @Input() lookupValue: string;\n @Input() selectListUrl: string;\n\n @Input() viewType: 'form' | 'list';\n @Input() viewName: string;\n @Input() dataView: LMDataView;\n @Input() actionName: string;\n\n @Input() cubeBusClass: string;\n @Input() cubeDimension: LMDimension;\n @Input() cubeGetFieldsUrl: string;\n @Input() showAlert: boolean;\n @Input() topNodeBaseValue: string;\n private cubeSelectUIList: string;\n\n public id: string;\n private dialog: SohoModalDialogRef;\n private lookupSelectionEvent: any;\n private lookupSelectionSubscription;\n public immutable = false;\n\n constructor(\n private ngZone: NgZone,\n private http: HttpClient,\n private element: ElementRef,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmSpecService: LMSpecService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmContextService: LMContextService,\n private lmSelectDialogService: LMSelectDialogService,\n private sohoModalDialogService: SohoModalDialogService,\n ) {}\n\n ngOnInit(): void {\n if (this.cubeDimension) {\n this.fieldLabel = this.cubeDimension.label;\n this.sourceField = this.cubeDimension.name;\n this.lookupValue = this.cubeDimension.value;\n this.viewName = this.cubeDimension.name;\n this.cubeSelectUIList = this.cubeDimension.uilist;\n this.immutable = this.cubeDimension.immutable || false;\n }\n this.id = this.lmUniqueIdService.uniqueId([ 'lm-basic-lookup', this.sourceField ]);\n }\n\n ngAfterViewInit() {\n if (this.showAlert && this.cubeDimension.override && this.sohoAlert) {\n this.sohoAlert.addInlineMessage(Soho.Locale.translate('TopNodeValueChanged'), 'info', true, false);\n }\n }\n\n public onNgModelChange(value) {\n if (this.cubeDimension) {\n this.cubeDimension.value = this.lookupValue = value;\n }\n }\n\n public onValueChanged(event) {\n if (this.cubeDimension) {\n // this.cubeDimension.value = this.lookupValue = value;\n if (this.showAlert && this.sohoAlert) {\n this.cubeDimension.override = true;\n this.sohoAlert.removeAllMessages();\n this.sohoAlert.addInlineMessage(Soho.Locale.translate('TopNodeValueChanged'), 'info', true, false);\n this.onLookupValueChangedEvent.emit(new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'DisplayAlertEvent', this.cubeDimension.name));\n }\n } else if (this.viewName === 'CubeStructure') {\n // Context field or reporting basis\n this.onLookupValueChangedEvent.emit(new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'TriggerCubeContextValueChangeEvent', this.sourceField));\n } else {\n this.onLookupValueChangedEvent.emit(new LMFieldValueChangedEvent(\n new CustomEvent('ValueChanged'), 'ValueChangedEvent', this.sourceField));\n }\n }\n\n onLookupField = (dataView: LMDataView) =>\n // Process lookup selection.\n dataView.fields[ this.sourceField ].value\n ;\n\n onLookupClick = (e, lookup) => {\n if (!this.selectListUrl) {\n this.lmLoggerService.log([ 'LMLookupBasicComponent', 'The Select list URL required to perform a lookup is not set.' ]);\n return;\n }\n\n if (this.lmContextService.useSingleSelectList()) {\n this.showSelectListDialog();\n } else {\n this.showClassicSelectListDialog();\n }\n };\n\n private showSelectListDialog() {\n this.lmSpecService.getListSpec(this.selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmLoggerService.log([ 'LMLookupBasicComponent', 'getListSpec() completed', listSpecResponse ]);\n\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n const title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), this.fieldLabel);\n\n if (!this.dataView) {\n // The handcoded print to file or export to csv does not have a formSpec or fromDataview.\n // The concern here is that empty dataview may result in a backend failure.\n this.dataView = { fields: {} };\n if (this.cubeDimension && this.topNodeBaseValue) {\n const keyNames = this.cubeDimension.relBusClassKeyNames.split('/');\n const keyValues = this.topNodeBaseValue.split('/');\n if (keyNames.length > 0) {\n keyNames.forEach((key, i) => { this.dataView.fields[key] = { value: keyValues[i] }; });\n }\n }\n }\n\n const selectRequestData: SelectRequestData = {\n viewType: (this.viewType) ? this.viewType : 'form',\n viewName: this.viewName,\n dataView: this.dataView,\n actionName: this.actionName,\n displayTopNodeAndChildren: (this.cubeDimension && this.topNodeBaseValue !== undefined),\n useTopNodeFilter: (this.cubeDimension && this.cubeDimension.useTopNodeFilter !== undefined && this.cubeDimension.useTopNodeFilter === true)\n };\n\n // showAlert is set if the lookup is from Structure dialog.\n if (this.showAlert) {\n selectRequestData.structureTopNodeFilter = true;\n }\n\n this.lmSelectDialogService.showSelectListDialog({\n listUrlInfo,\n listSpec,\n title,\n sourceField: this.sourceField,\n selectRequestData\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe((selectResponse: LMSelectResponse) => {\n this.lmLoggerService.log([ 'LMLookupBasicComponent', 'showSelectListDialog()', selectResponse ]);\n if (selectResponse?.status === AppConstants.STATUS_COMPLETED && selectResponse.dataViews) {\n const selectedDataView: LMDataView = selectResponse.dataViews[0];\n this.applyValue(selectedDataView).subscribe((response: any) => {\n if (response.status && response.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n return;\n }\n\n const resDataView: LMDataView = response;\n this.lookupValue = resDataView.fields[this.sourceField].value as string;\n if (this.cubeDimension) {\n this.cubeDimension.value = this.lookupValue;\n }\n\n // sohoLookupComponent requires a data property on each array element\n const selectedData: Array = [ { data: resDataView } ] ;\n this.ngZone.runOutsideAngular(() => {\n this.sohoLookup.setValue(selectedData);\n });\n });\n } else if (selectResponse?.status === AppConstants.STATUS_CANCEL) {\n this.ngZone.runOutsideAngular(() => {\n this.element?.nativeElement?.querySelectorAll('input[soho-lookup]')[0]?.focus();\n });\n }\n }\n );\n },\n (error: any) => {\n this.lmLoggerService.log([ 'LMLookupBasicComponent error', error ]);\n });\n }\n\n // TODO: Remove the following and its supporting methods once we now longer support classic lookup selection\n private showClassicSelectListDialog() {\n this.busyIndicator.activated = true;\n\n const cancelButton = this.lmUniqueIdService.uniqueId([ 'lm-basic-lookup-', this.sourceField, LMDialogButtonKey.CANCEL ]);\n const okButton = this.lmUniqueIdService.uniqueId([ 'lm-basic-lookup-', this.sourceField, LMDialogButtonKey.OK ]);\n\n const buttonIds = {\n ok: okButton,\n cancel: cancelButton\n };\n\n const buttons: SohoModalButton[] = [\n {\n id: cancelButton,\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n click: (e, modal) => {\n this.busyIndicator.activated = false;\n this.dialog.close(LMLookupBasicDialogResult.CANCEL);\n }\n },\n {\n id: okButton,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n click: (e, modal) => {\n // safety: need to be in the AngularZone\n this.ngZone.run(() => {\n this.handleSelection();\n });\n }\n }\n ];\n\n // this.lmSpecService.getListSpec(this.selectListUrl)\n // .subscribe((listSpec: LMListSpec) => {\n this.lmSpecService.getListSpec(this.selectListUrl).subscribe(\n (listSpecResponse: LMListSpecResponse) => {\n\n if ((listSpecResponse as LMSystemException)\n && ((listSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (listSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // todo ppatton need to handle errors better\n return;\n }\n\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n const title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), this.fieldLabel);\n\n this.dialog = this.sohoModalDialogService\n .modal(LMLookupDialogComponent, this.placeholder, { fullsize: 'responsive', noRefocus: true })\n .buttons(buttons)\n .title(title)\n .isAlert(false)\n .autoFocus(false)\n .open()\n .apply((lookupDialog: LMLookupDialogComponent) => {\n this.ngZone.run(() => {\n this.doApply(lookupDialog, listUrlInfo, listSpec, buttonIds);\n });\n })\n .afterClose(result => {\n this.busyIndicator.activated = false;\n if (this.lookupSelectionSubscription) {\n this.lookupSelectionSubscription.unsubscribe();\n this.lookupSelectionSubscription = null;\n }\n\n this.lookupSelectionEvent = null;\n this.dialog = null;\n });\n },\n error => {\n // todo ppatton need to handle errors better\n });\n };\n\n private doApply(lookupDialog: LMLookupDialogComponent, listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, buttonIds: {ok: string, cancel: string}) {\n const viewType = (this.viewType) ? this.viewType : 'form';\n if (!this.dataView) {\n // The handcoded example print to file or export to csv does not have a formSpec or fromDataview.\n // The concern here is that empty dataview may result in a backend failure.\n this.dataView = { fields: {} };\n if (this.cubeDimension && this.topNodeBaseValue) {\n const keyNames = this.cubeDimension.relBusClassKeyNames.split('/');\n const keyValues = this.topNodeBaseValue.split('/');\n if (keyNames.length > 0) {\n keyNames.forEach((key, i) => { this.dataView.fields[key] = { value: keyValues[i] }; });\n }\n // this.dataView.fields[this.cubeDimension.selectField] = {value: this.topNodeBaseValue};\n }\n }\n\n lookupDialog.listUrlInfo = listUrlInfo;\n lookupDialog.listSpec = listSpec;\n lookupDialog.buttonIds = buttonIds;\n\n lookupDialog.selectRequestData = {\n viewType,\n viewName: this.viewName,\n dataView: this.dataView,\n actionName: this.actionName,\n displayTopNodeAndChildren: (this.cubeDimension && this.topNodeBaseValue !== undefined),\n useTopNodeFilter: (this.cubeDimension && this.cubeDimension.useTopNodeFilter !== undefined && this.cubeDimension.useTopNodeFilter === true)\n };\n\n lookupDialog.titleChanged.pipe(first()).subscribe(newTitle => {\n this.dialog.title(newTitle);\n });\n\n // need to listen for all occurrences as will get a row selection for a 'deselection'\n this.lookupSelectionSubscription =\n lookupDialog.lookupSelection.subscribe((event: any) => {\n this.lookupSelectionEvent = event;\n });\n\n lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n this.dialog.close(LMLookupBasicDialogResult.TOOLBAREVT);\n });\n\n lookupDialog.triggerDetectChanges();\n }\n\n private handleSelection() {\n if (this.lookupSelectionEvent) {\n const result: Array = this.lookupSelectionEvent.rows;\n if (result && Array.isArray(result) && result.length > 0) {\n const dataView: LMDataView = result[ 0 ].data;\n this.applyValue(dataView).subscribe((response: any) => {\n if (response.status && response.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n return;\n }\n const resDataView: LMDataView = response;\n this.lookupValue = resDataView.fields[ this.sourceField ].value as string;\n if (this.cubeDimension) {\n this.cubeDimension.value = this.lookupValue;\n }\n result[0].data = resDataView;\n this.ngZone.runOutsideAngular(() => {\n this.sohoLookup.setValue(result);\n });\n });\n }\n }\n this.dialog.close(LMLookupBasicDialogResult.OK);\n }\n\n private applyValue(dataView: LMDataView): Observable {\n // Cube Cell relation requires the context values in ontological context to be prefixed to the selected value.\n // getFields call will return the ontological context values along with the selected key.\n if (this.cubeGetFieldsUrl !== undefined) {\n const cubeCellRequest = Object.assign(\n { requestType: FormRequestType.CubeRelGetSelectValue },\n { busClass: this.cubeBusClass },\n { dimension: this.sourceField },\n { selectResourceId: dataView.resourceId + '.' + this.cubeSelectUIList },\n { selectDataView: dataView },\n );\n return this.http\n .post(this.cubeGetFieldsUrl, cubeCellRequest).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n } else {\n return of(dataView);\n }\n }\n}\n","\n\n\n \n

    {{lookupValue}}

    \n
    \n\n\n \n

    {{lookupValue}}

    \n
    \n
    \n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n NgZone,\n Output,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { LMListComponent, LMListSelectionEvent } from '@list/lm-list.component';\nimport { LMContextService, LMRouteComponentService } from '@services/index';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLookupSelectionEvent } from './lm-lookup-selection.event';\n\n@Component({\n templateUrl: './lm-lookup-dialog.component.html',\n providers: [ LMRouteComponentService ]\n})\nexport class LMLookupDialogComponent implements AfterViewChecked {\n\n @ViewChild(forwardRef(() => LMListComponent)) selectList: LMListComponent;\n\n @HostListener('keyup', ['$event']) onKeyUp(event) {\n if (event.which === 13 && event.srcElement.nodeName !== 'BUTTON' && event.srcElement.nodeName !== 'INPUT') {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n if (this.selectList.getSelectedRows().length > 0) {\n // if a record is selected, then enter should be like clicking the ok button\n this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + this.buttonIds.ok + '\"]').click();\n }\n }\n }\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() lookupSelection = new EventEmitter();\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() titleChanged = new EventEmitter();\n @Output() navigatingToolbarEvent = new EventEmitter();\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n /**\n * The list spec of the select list used to Select a value for our\n * select field.\n */\n @Input() listSpec: LMListSpec;\n\n /**\n * The SelectRequestData containing what's needed to run the select and\n * page appropriately over it's records.\n */\n @Input() selectRequestData: SelectRequestData;\n @Input() buttonIds: {ok: string, cancel: string};\n @Input() cubeRelSel: boolean;\n @Input() allowMultiSelections: boolean = false;\n\n private executeFocus = false;\n\n constructor(\n private lmContextService: LMContextService,\n private elementRef: ElementRef,\n private changeDetectionRef: ChangeDetectorRef,\n private renderer: Renderer2,\n private zone: NgZone) {}\n\n ngAfterViewChecked(): void {\n if (this.executeFocus) {\n this.executeFocus = false;\n this.handleFocus();\n }\n }\n\n /**\n * Re-emit the row selection event.\n * @param listSelectionEvent\n */\n onRowsSelected(listSelectionEvent: LMListSelectionEvent) {\n const lookupSelectionEvent = new LMLookupSelectionEvent(this, listSelectionEvent.selectedRows);\n // LMCLIENT-30270: error thrown for .querySelector('#' + buttonId) when buttonId begins with a number\n const okButton = this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + this.buttonIds.ok + '\"]');\n\n if (!this.selectRequestData.allowMultiSelections) {\n if (lookupSelectionEvent.rows && lookupSelectionEvent.rows.length > 1) {\n // Finding the button via dom lookup until Soho exposes the buttons in a soho modal. https://github.com/infor-design/enterprise-ng/issues/467\n this.renderer.setAttribute(okButton, 'disabled', 'true');\n } else {\n this.renderer.removeAttribute(okButton, 'disabled');\n }\n }\n\n this.lookupSelection.emit(lookupSelectionEvent);\n }\n\n /**\n * Re-emit title changed event from lm-list.component to that the apply function has a chance\n * to subscribe to it and in turn update the dialogs title.\n */\n onTitleChanged(newTitle: string) {\n this.titleChanged.emit(newTitle);\n }\n\n onToolbarButtonEvent(event: LMToolbarButtonEvent) {\n const id = event.actionReference.id.toUpperCase();\n if (id.indexOf(AppConstants.ACTION_TYPE_CREATE) > -1 ||\n id.indexOf(AppConstants.ACTION_TYPE_UPDATE) > -1 ) {\n this.navigatingToolbarEvent.emit(event);\n }\n }\n\n onListDisplayed() {\n this.executeFocus = true;\n }\n\n triggerDetectChanges() {\n this.changeDetectionRef.markForCheck();\n }\n\n handleFocus() {\n // This needs to be in a timeout to ensure that the list in the modal is displayed before attempting to focus\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n // does the child list have a search form displayed initially or always\n if (this.selectList.hasSearchForm && this.selectList.showSearchForm) {\n this.selectList.searchFormComponent.elementRef.nativeElement.querySelectorAll('input')[0].focus();\n return;\n }\n\n // focus first row, first cell\n this.selectList.listContentComponent?.listGrid?.sohoDataGridComponent.setActiveCell(0, 0);\n }, 2);\n });\n }\n}\n","\n\n","import { LMLookupDialogComponent } from './lm-lookup-dialog.component';\n\nexport class LMLookupSelectionEvent {\n constructor(public eventSource: LMLookupDialogComponent,\n public rows: Array) {\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n NgZone\n} from '@angular/core';\nimport {\n LMCubeSearchOpenLookupEvent,\n LMDefineEvent,\n LMFieldBaseComponent,\n LMOpenLookupEvent\n} from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { SohoLookupComponent } from 'ids-enterprise-ng';\nimport { LMLookupDialogComponent } from './lm-lookup-dialog.component';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { first } from 'rxjs/operators';\nimport { AppConstants, LMDialogButtonKey } from '@utils/app.constants';\nimport { LMLookupSelectionEvent } from './lm-lookup-selection.event';\nimport { LMFieldPickerService } from '@modal/field-picker/services';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\nimport { LMContextService } from '@services/index';\nimport { LMSelectDialogService, LMSelectResponse } from '@modal/index';\nimport KeyPressEvent = JQuery.KeyPressEvent;\nimport { LMFieldPickerSelectOptions, LMFieldPickerSelectResponse } from '@modal/field-picker/lm-field-picker';\nimport { Observable } from 'rxjs';\n\nenum LMLookupTypeDisplayEnum {\n PLAIN = 0,\n MASK,\n TEXT,\n TAG\n}\n\nenum LMLookupDialogResult {\n CANCEL = 'CANCEL',\n OK = 'OK',\n TOOLBAREVT = 'TOOLBAREVT'\n}\n\ninterface OnLookupFieldResult {\n fromFieldPicker: boolean;\n fullFieldName: string;\n}\n\n@Component({\n selector: 'lm-lookup',\n templateUrl: './lm-lookup.component.html',\n styleUrls: [ 'lm-lookup.component.scss' ]\n})\nexport class LMLookupComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @HostBinding('attr.tabindex') tabIndex = this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField ? '0' : null;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n /**\n * The 'dialogPlaceholder' is where the reference dialog component will be\n * parented when it is instantiated.\n *\n * This can be the ViewContainerRef of this component, or another component.\n */\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild(SohoLookupComponent) sohoLookup: SohoLookupComponent;\n\n @Input() layoutObject: LMLookupLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @HostBinding('attr.class') hostClass = 'field';\n\n @HostListener('keyup', [ '$event' ])\n onKeyPress(event: KeyPressEvent) {\n if (!this.modelField.isBlank) {\n const key = this.lmKeyboardShortcutService.onKeyDown(event);\n if (key === LMKeyType.DEFINE) {\n this.fieldEvent.emit(new LMDefineEvent(new Event('click'), this.bindId, this.model.getData()));\n }\n }\n }\n\n /**\n * The interface to an instantiated instance of the dialog component.\n */\n // private dialog: SohoModalDialogRef;\n\n public displayType: LMLookupTypeDisplayEnum;\n public layoutDisplayType;\n public showCompactDialogButton = false;\n public launchButtonTooltip: string;\n public showBarCodeScanOptions = false;\n public showBarCodeOnlyButton = false;\n public iconDisplay = 'search-list';\n\n private isAlert = false;\n\n private sourceField: string;\n private targetField: string;\n private lookupSelectionEvent: LMLookupSelectionEvent;\n private lookupSelectionSubscription;\n\n constructor(\n private element: ElementRef,\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmSpecService: LMSpecService,\n private lmFieldPickerService: LMFieldPickerService,\n private lmContextService: LMContextService,\n private lmKeyboardShortcutService: LMKeyboardShortcutService,\n private lmSelectDialogService: LMSelectDialogService\n ) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMLookupTypeDisplayEnum;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.launchButtonTooltip = Soho.Locale.translate('Launch');\n\n if (this.specField) {\n this.setNumberFormat();\n this.setSearchFieldNumberFormat();\n this.setSize();\n this.setFieldClasses();\n\n this.sourceField = this.specField.selectFieldId || this.bindId;\n this.targetField = this.bindId;\n }\n\n if (this.displayAsTag && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.TAG;\n\n } else if (this.displayAsText && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.TEXT;\n\n } else {\n this.subscribeToInlineError();\n\n if (!this.hasMask) {\n this.displayType = this.layoutDisplayType.PLAIN;\n\n } else {\n this.displayType = this.layoutDisplayType.MASK;\n // if a lookup has a type of BCD or PERCENT, then will need to re-factor to have\n // same functionality for layoutDisplayType.MASK as lm-text.component\n }\n\n if (this.specField.compactFormat && !this.specField.compactFormatOnly) {\n this.showCompactDialogButton = true;\n }\n\n if (this.field.scannable && this.lmContextService.insideInforGo()) {\n this.iconDisplay = 'none';\n if (this.specField.definable) {\n this.showBarCodeScanOptions = true;\n } else {\n this.iconDisplay = 'barcode';\n this.showBarCodeOnlyButton = true;\n }\n }\n }\n\n if (this.isTimezoneField) {\n this.previousTimeZone = this.modelField.value;\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // if the lookup is a compound field member, listen to the\n // mouse down event on the triggering span and prevent this event from bubbling up.\n // This is because of intermittent timing issues where the blur event out of the\n // lookup's input would collapse hide the trigger span before the mouseup/click\n // event could launch the lookup's modal\n setTimeout(() => {\n if (this.element.nativeElement && this.isCompoundFieldMember && this.displayType !== this.layoutDisplayType.TEXT) {\n this.lmFieldServiceAdapter.renderer2.listen(this.element.nativeElement.querySelector('#' + this.id + ' ~ button'), 'mousedown', (event: Event) => {\n event.preventDefault();\n });\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n // Will be used when Contextual panel is used in the place of a dialog (See LMCLIENT-18522 for details.)\n // public get isModal(): boolean {\n // return this.model.formSpec.container === 'contextualpanel';\n // }\n\n public onNgModelChange(value) {\n if (this.model.isCubeSearchForm) {\n // Special case for cubes -- multi selection is not allowed.\n // And since the value, irrespective of the type, is changed to\n // '/' separated string of ontological key values + selected value,\n // converting toDataValue will yield undesirable results.\n // Eg: Scenario in GLTotal is numeric, but the lookup value is 'SCB/1'\n this.modelField.value = value;\n return;\n }\n\n // if a lookup has a type of BCD or PERCENT, then will need to re-factor to have\n // same functionality for layoutDisplayType.MASK as lm-text.component\n if (this.transformOptions.allowMultiSelections && this.onSearchForm) {\n let valueString = value;\n\n if (this.isUpperCase) {\n valueString = valueString.toUpperCase();\n }\n\n if (Array.isArray(valueString) && this.transformOptions.allowMultiSelections) {\n const formattedArray = [];\n value.map((val) => {\n if (val.indexOf(AppConstants.MULTI_SEARCH_TERM_DELIMITER) > -1) {\n formattedArray.push('\"' + val + '\"');\n } else {\n formattedArray.push(val);\n }\n });\n valueString = formattedArray.join(AppConstants.MULTI_SEARCH_TERM_DELIMITER);\n }\n const allowZero = this.specField.type === AppConstants.BCD ||\n this.specField.type === AppConstants.PERCENT ||\n this.specField.type === AppConstants.NUMERIC;\n const multiValue = this.lmFieldServiceAdapter.lmFormatUtilService.getMultipleFilterFieldValue(valueString, this.specField.type, this.modelField.precision, this.specField.decSize, allowZero);\n this.modelField.enteredFilterValue = multiValue.enteredFilterValue;\n this.modelField.value = multiValue.formattedFilterValue;\n } else {\n this.modelField.toDataValue(value, this.transformOptions);\n }\n // }\n\n if (this.isTimezoneField) {\n const previousTimeZone = this.previousTimeZone || this.modelField?.originalValue;\n const timeZone = value;\n this.model.timeZoneChanged({ bindId: this.bindId, timeZone, previousTimeZone });\n this.previousTimeZone = timeZone;\n }\n }\n\n contextMenuClicked = ($event) => {\n\n if ($event.args) {\n const menuElement = $event.args[ 0 ];\n const menuId = menuElement.getAttribute('id');\n\n if (menuId === 'SelectEvent') {\n this.onLookupClick($event, null);\n } else if (menuId === 'ScanEvent') {\n this.onBarCodeClick($event, null);\n } else {\n this.onContextMenuEvent($event);\n }\n } else {\n this.onContextMenuEvent($event);\n }\n };\n\n onLookupField = (data: any) => {\n if (data.fromFieldPicker) {\n const lookupFieldResult = data;\n return lookupFieldResult.fullFieldName;\n }\n const dataView: LMDataView = data;\n return dataView.fields[ this.sourceField ].value;\n };\n\n public registerMessageHandlers() {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n infor.companyon.client.unRegisterMessageHandler('mobile_shareQRCodeData');\n infor.companyon.client.registerMessageHandler('mobile_shareQRCodeData', (data: any) => {\n this.lmFieldServiceAdapter.ngZone.run(() => {\n if (data.data) {\n // sohoLookupComponent requires a data property when setting a value\n const scanResults = data.data;\n this.sohoLookup.setValue([\n {\n data: {\n fromFieldPicker: true,\n scanResults\n }\n } as any\n ]);\n this.model.clearFieldError(this.bindId);\n this.modelField.value = scanResults;\n if (this.transformOptions.allowMultiSelections && this.onSearchForm) {\n this.modelField.enteredFilterValue = scanResults;\n }\n }\n });\n });\n });\n }\n\n // eslint-disable-next-line no-unused-vars\n onBarCodeClick = (e, lookup) => {\n this.registerMessageHandlers();\n const data = { source: this.id, inputType: '1' };\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n infor.companyon.client.sendMessage('mobile_showQRCodeScanner', data);\n });\n };\n\n // eslint-disable-next-line no-unused-vars\n onLookupClick = (e, lookup) => {\n\n if (this.showBarCodeOnlyButton) {\n this.onBarCodeClick(e, lookup);\n return;\n }\n\n this.busyIndicator = true;\n if (this.model.isCubeSearchForm) {\n // The LMOpenLookup event handler will implement custom behavior for cube views.\n this.fieldEvent.emit(new LMCubeSearchOpenLookupEvent(e, this));\n this.busyIndicator = false;\n return;\n }\n\n this.fieldEvent.emit(new LMOpenLookupEvent(e, this.bindId));\n\n if (this.layoutObject.lplFieldInfo) {\n this.showFieldPickerDialog(e);\n return;\n }\n\n if (this.lmContextService.useSingleSelectList()) {\n this.showSelectListDialog(e);\n } else {\n this.showClassicSelectListDialog(e);\n }\n };\n\n private showFieldPickerDialog(e: Event) {\n this.getFieldPickerBusinessClass().subscribe(businessClass => {\n const options: LMFieldPickerSelectOptions = {\n view: this.lmFieldPickerService.createFieldPickerView(this.layoutObject.lplFieldInfo),\n businessClass,\n enableOperatorBuilder: this.lmFieldPickerService.fieldPickerOperatorsEnabled(this.layoutObject.lplFieldInfo),\n includeAuditFields: this.lmFieldPickerService.includesAuditFields(this.layoutObject.lplFieldInfo),\n };\n this.lmFieldPickerService.openFieldPickerDialog(options, this.layoutObject.selectListUrl, this.placeHolder).subscribe((response: LMFieldPickerSelectResponse) => {\n if (response) {\n this.processFieldPickerResult(e, response);\n }\n this.busyIndicator = false;\n });\n });\n }\n\n private getFieldPickerBusinessClass(): Observable {\n return new Observable(observer => {\n // LMRK bug workaround. LMRK does not fill out a derived field in a create state, must always get the value.\n // https://jira.lawson.com/browse/LMCLIENT-39879\n if (this.layoutObject.lplFieldInfo.isRelatedField) {\n const formUrl = this.lmFieldServiceAdapter.lmUrlUtilService.buildFormRequestUrl(this.model.formUrlInfo);\n this.lmFieldPickerService.getBusinessClassForRelatedField(this.model.getData(), this.bindId, this.model.formResourceId, formUrl).subscribe(response => {\n if (response.status === 'COMPLETED') {\n observer.next(response.busClassName);\n } else {\n observer.next('');\n }\n observer.complete();\n });\n } else {\n observer.next(this.layoutObject.lplFieldInfo.busClassName);\n observer.complete();\n }\n });\n }\n\n private showSelectListDialog(e: Event) {\n this.busyIndicator = false;\n const selectListUrl = this.lmFieldServiceAdapter.lmUrlUtilService.buildSelectListUrl(this.model.formUrlInfo, this.layoutObject.selectListInfo);\n if (!this.lmFieldServiceAdapter.lmContextService.useNewSpecUrls()) {\n // tslint:disable-next-line:max-line-length\n this.lmFieldServiceAdapter.lmUrlInfoBuilderService.compareSpecUrls(this.model.formUrlInfo, this.layoutObject.bindId + '.selectListUrl', (this.layoutObject as any).selectListUrl, selectListUrl);\n }\n\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmFieldServiceAdapter.lmLoggerService.log([ 'LMLookupComponent', 'getListSpec() completed', listSpecResponse ]);\n\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n\n // If the list spec has search form, it is either displayed initially or the user will click on search icon to open up.\n // In either case, do not set the height of the modal. The search form and the list together should be in auto height.\n // Also in the case of tree view, do not want to set the modal with overflow:hidden. As the nodes are expanded, we should be able to scroll.\n const className = (listSpec.busListSpec.searchForm === undefined && !listSpec.busListSpec.implementsTreeView) ? 'lm-lookup-modal' : '';\n\n const fieldHasNoVariables = (!this.specField.label.variables || this.specField.label.variables.length === 0);\n const labelValue = (this.specField.label.resourceValue !== ' ' || !fieldHasNoVariables)\n ? this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.specField.label, this.model, this.specFields)\n : '';\n const title = (labelValue !== '')\n ? this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), labelValue)\n : Soho.Locale.translate('Select');\n\n const formSpec = this.model.formSpec;\n const formUrlInfo = this.model.formUrlInfo;\n const selectRequestData: SelectRequestData = {\n viewType: formSpec.selectViewType ? formSpec.selectViewType : 'form',\n viewName: this.lmFieldServiceAdapter.lmFormSpecUtilService.formName(formSpec),\n dataView: this.getSearchFormValidatedDataView(),\n allowMultiSelections: !!this.transformOptions.allowMultiSelections\n };\n if (formUrlInfo.pfActionName) {\n selectRequestData.pfActionName = formUrlInfo.pfActionName;\n } else if (this.model.action) {\n selectRequestData.actionName = this.model.action;\n }\n if (formUrlInfo.navigationContext) {\n selectRequestData.navigationContext = formUrlInfo.navigationContext;\n }\n if (this.model.isSearchForm) {\n selectRequestData.onSearchForm = true;\n }\n\n this.lmSelectDialogService.showSelectListDialog({\n listUrlInfo,\n listSpec,\n title,\n sourceField: this.sourceField,\n className,\n selectRequestData\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe((selectResponse: LMSelectResponse) => {\n this.lmFieldServiceAdapter.lmLoggerService.log([ 'LMLookupComponent', 'showSelectListDialog()', selectResponse ]);\n if (selectResponse?.status === AppConstants.STATUS_COMPLETED && selectResponse.dataViews) {\n // clear any errors\n this.model.clearFieldError(this.targetField);\n\n // safety: need to be outside of the AngularZone\n if (!NgZone.isInAngularZone()) {\n this.sohoLookup.setValue(selectResponse.rows);\n } else {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n this.sohoLookup.setValue(selectResponse.rows);\n });\n }\n\n const dataView: LMDataView = selectResponse.dataViews[0];\n const fields = dataView.fields;\n if (fields.hasOwnProperty(this.sourceField) && !this.transformOptions.allowMultiSelections) {\n this.modelField.value = fields[this.sourceField].value;\n } else if (this.transformOptions.allowMultiSelections && this.onSearchForm) {\n let value = '';\n // @ts-ignore don't have correct typing out of soho\n const selectedValues = selectResponse.rows.length > 1 ? (selectResponse.rows.values as Array) : [ selectResponse.rows.values ];\n selectedValues.forEach((selectedValue, index, array) => {\n selectedValue = selectedValue.includes(AppConstants.MULTI_SEARCH_TERM_DELIMITER) ? `\"${selectedValue}\"` : selectedValue;\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += `${selectedValue}${delimiter}`;\n });\n const multiValue = this.lmFieldServiceAdapter.lmFormatUtilService.getMultipleFilterFieldValue(value, this.specField.type, this.modelField.precision, this.specField.decSize);\n this.modelField.enteredFilterValue = multiValue.enteredFilterValue;\n this.modelField.value = multiValue.formattedFilterValue;\n }\n\n this.handleOnFieldChanged();\n this.fieldEvent.emit(new LMOpenLookupEvent(e, null));\n } else if (selectResponse?.status === AppConstants.STATUS_CANCEL) {\n this.getInputElement()?.focus();\n }\n }\n );\n },\n (error: any) => {\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.log([ 'LMLookupComponent error', error ]);\n });\n }\n\n // TODO: Remove the following and its supporting methods once we now longer support classic lookup selection\n private showClassicSelectListDialog(e: Event) {\n const cancelButton = this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ this.id, LMDialogButtonKey.CANCEL ]);\n const okButton = this.lmFieldServiceAdapter.lmUniqueIdService.uniqueId([ this.id, LMDialogButtonKey.OK ]);\n\n const buttonIds = {\n ok: okButton,\n cancel: cancelButton\n };\n\n const buttons: SohoModalButton[] = [ {\n id: cancelButton,\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n click: () => {\n this.dialog.close(LMLookupDialogResult.CANCEL);\n }\n }, {\n id: okButton,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n click: () => {\n // safety: need to be in the AngularZone\n if (NgZone.isInAngularZone()) {\n this.handleSelection();\n\n } else {\n this.lmFieldServiceAdapter.ngZone.run(() => {\n this.handleSelection();\n });\n }\n }\n } ];\n\n const selectListUrl = this.lmFieldServiceAdapter.lmUrlUtilService.buildSelectListUrl(this.model.formUrlInfo, this.layoutObject.selectListInfo);\n if (!this.lmFieldServiceAdapter.lmContextService.useNewSpecUrls()) {\n // tslint:disable-next-line:max-line-length\n this.lmFieldServiceAdapter.lmUrlInfoBuilderService.compareSpecUrls(this.model.formUrlInfo, this.layoutObject.bindId + '.selectListUrl', (this.layoutObject as any).selectListUrl, selectListUrl);\n }\n\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmFieldServiceAdapter.lmLoggerService.log([ 'LMLookupComponent', 'listService.getListSpec()', 'Complete' ]);\n\n const listSpec = listSpecResponse.listSpec;\n const listUrlInfo = listSpecResponse.listUrlInfo;\n\n const fieldHasNoVariables = (!this.specField.label.variables || this.specField.label.variables.length === 0);\n const labelValue = (this.specField.label.resourceValue !== ' ' || !fieldHasNoVariables)\n ? this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.specField.label, this.model, this.specFields)\n : '';\n const title = (labelValue !== '')\n ? this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), labelValue)\n : Soho.Locale.translate('Select');\n // If the list spec has search form, it is either displayed initially or the user will click on search icon to open up.\n // In either case, do not set the height of the modal. The search form and the list together should be in auto height.\n // Also in the case of tree view, do not want to set the modal with overflow:hidden. As the nodes are expanded, we should be able to scroll.\n const className = (listSpec.busListSpec.searchForm === undefined && !listSpec.busListSpec.implementsTreeView) ? 'lm-lookup-modal' : '';\n\n // we handle focus in field base, so don't need the controls to. Set noRefocus to true, was causing https://jira.lawson.com/browse/LMCLIENT-34141\n this.dialog = this.lmFieldServiceAdapter.sohoModalDialogService\n .modal(LMLookupDialogComponent, this.placeholder, { fullsize: 'responsive', noRefocus: true })\n .buttons(buttons)\n .title(title)\n .isAlert(this.isAlert)\n .autoFocus(false)\n .cssClass(className)\n .beforeOpen(() => {\n this.busyIndicator = false;\n return true;\n })\n .open()\n .apply((lookupDialog: LMLookupDialogComponent) => {\n // LMCLIENT-22274, LMCLIENT-26674\n // safety: need to be in the AngularZone\n // // LMCLIENT-22274, LMCLIENT-26674\n // // safety: need to be in the AngularZone\n // if (NgZone.isInAngularZone()) {\n // this.doApply(lookupDialog, listUrlInfo, listSpec, buttonIds);\n //\n // } else {\n // this.lmFieldServiceAdapter.ngZone.run(() => {\n // this.doApply(lookupDialog, listUrlInfo, listSpec, buttonIds);\n // });\n // }\n this.lmFieldServiceAdapter.ngZone.run(() => {\n this.doApply(lookupDialog, listUrlInfo, listSpec, buttonIds);\n });\n })\n .afterClose(result => {\n // should already be in AngularZone\n if (result && result === LMLookupDialogResult.OK) {\n if (!this.modelField.fireInitialValue) {\n this.busyIndicator = false;\n }\n\n this.handleOnFieldChanged();\n this.fieldEvent.emit(new LMOpenLookupEvent(e, null));\n } else {\n // result can be undefined from the user hitting the escape key on the lookup dialog\n this.busyIndicator = false;\n }\n\n if (this.lookupSelectionSubscription) {\n this.lookupSelectionSubscription.unsubscribe();\n this.lookupSelectionSubscription = null;\n }\n\n this.lookupSelectionEvent = null;\n this.dialog = null;\n });\n },\n (error: any) => {\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.log([ 'LMLookupDialog error', error ]);\n });\n }\n\n openCompactDialog(event) {\n this.onContextMenuEvent({ args: [ event.currentTarget ] });\n }\n\n private doApply(lookupDialog: LMLookupDialogComponent, listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, buttonIds: {ok: string, cancel: string}) {\n const formUrlInfo = this.model.formUrlInfo;\n const formSpec = this.model.formSpec;\n const viewType = formSpec.selectViewType ? formSpec.selectViewType : 'form';\n\n lookupDialog.listUrlInfo = listUrlInfo;\n lookupDialog.listSpec = listSpec;\n lookupDialog.selectRequestData = {\n viewType,\n viewName: this.lmFieldServiceAdapter.lmFormSpecUtilService.formName(formSpec),\n dataView: this.getSearchFormValidatedDataView(),\n };\n lookupDialog.buttonIds = buttonIds;\n\n if (formUrlInfo.pfActionName) {\n lookupDialog.selectRequestData.pfActionName = formUrlInfo.pfActionName;\n } else if (this.model.action) {\n lookupDialog.selectRequestData.actionName = this.model.action;\n }\n\n if (formUrlInfo.navigationContext) {\n lookupDialog.selectRequestData.navigationContext = formUrlInfo.navigationContext;\n }\n\n lookupDialog.titleChanged.pipe(first()).subscribe(newTitle => {\n this.dialog.title(newTitle);\n });\n\n // need to listen for all occurrences as will get a row selection for a 'deselection'\n this.lookupSelectionSubscription =\n lookupDialog.lookupSelection.subscribe((event: LMLookupSelectionEvent) => {\n this.lookupSelectionEvent = event;\n });\n\n lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n this.dialog.close(LMLookupDialogResult.TOOLBAREVT);\n });\n\n lookupDialog.triggerDetectChanges();\n }\n\n private handleSelection() {\n if (this.lookupSelectionEvent) {\n const result: Array = this.lookupSelectionEvent.rows;\n if (result && Array.isArray(result) && result.length > 0) {\n // clear any errors\n this.model.clearFieldError(this.bindId);\n\n const dataView: LMDataView = result[ 0 ].data;\n const fields = dataView.fields;\n\n // special check here: if values are the same, then formControl.valueChange will not be fired,\n // so stop the busyIndicator as the subsequent fireInitialValueRule event will not be emitted\n // needs to occur before the setValue() below\n if (this.modelField.fireInitialValue\n && fields.hasOwnProperty(this.sourceField)\n && fields[ this.sourceField ].value === this.modelField.value) {\n this.busyIndicator = false;\n }\n\n // safety: need to be outside of the AngularZone\n if (!NgZone.isInAngularZone()) {\n this.sohoLookup.setValue(this.lookupSelectionEvent.rows);\n\n } else {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n this.sohoLookup.setValue(this.lookupSelectionEvent.rows);\n });\n }\n\n if (fields.hasOwnProperty(this.sourceField) && !this.transformOptions.allowMultiSelections) {\n this.modelField.value = fields[ this.sourceField ].value;\n }\n }\n }\n\n this.dialog.close(LMLookupDialogResult.OK);\n }\n\n private processFieldPickerResult(e: Event, response: LMFieldPickerSelectResponse): void {\n const fullFieldName = response.fieldName;\n // sohoLookupComponent requires a data property when setting a value\n this.sohoLookup.setValue([\n {\n data: {\n fromFieldPicker: true,\n fullFieldName\n }\n } as any\n ]);\n this.model.clearFieldError(this.bindId);\n this.modelField.value = fullFieldName;\n this.handleOnFieldChanged();\n this.fieldEvent.emit(new LMOpenLookupEvent(e, null));\n }\n}\n","{{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n\n\n\n \n \n \n \n \n \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'right'\"\n [trigger]=\"'click'\"\n (focus)=\"onFocus($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\"\n (contextmenu)=\"onContextMenu($event)\">\n \n \n \n\n \n
    \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}\n
    \n\n \n

    {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

    \n\n \n \n {{launchButtonTooltip}}\n \n \n\n \n \n \n\n \n \n
    \n
    \n
    \n \n
    \n
    \n\n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

    \n
    \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

    \n
    \n
    \n\n\n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

    \n
    \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

    \n
    \n
    \n\n
    \n\n\n\n \n \n \n\n","export * from './lm-manual-representation.component';\n","import { AfterViewInit, Component, forwardRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { EventEmitter, Output } from '@angular/core';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\n\nimport { ActivatedRoute } from '@angular/router';\nimport { LMFieldManualRepService } from '../services';\nimport { LMModelChangedEvent } from '@form/model';\nimport { BehaviorSubject, Observable, SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMHtmlUrlDocComponent, LMUrlDocSaveResult } from '@components/html';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMContextService, LMLoggerService } from '@app/services';\n\nenum LMManualRepTypeDisplayEnum {\n READ_ONLY = 0,\n PLAIN\n}\n\n@Component({\n selector: 'lm-manual-representation',\n templateUrl: './lm-manual-representation.component.html',\n styleUrls: [ './lm-manual-representation.component.scss' ],\n providers: [\n LMFormManualRepService,\n LMFieldManualRepService\n ]\n})\nexport class LMManualRepresentationComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n // @ViewChild(LMHtmlUrlDocComponent) lmHtmlUrlDocComponent: LMHtmlUrlDocComponent;\n @ViewChild(forwardRef(() => LMHtmlUrlDocComponent)) private lmHtmlUrlDocComponent;\n\n @Input() set manualRep(manualRep: LMFormLayoutManualRep) {\n this._manualRep = Object.assign({}, manualRep);\n }\n\n @Output() contentModified = new EventEmitter();\n\n public automationId: string;\n public frameIdentifier = '';\n public bypassmanualRepUpdate = false;\n public _manualRep: LMFormLayoutManualRep;\n public manualRefUrl: string;\n public displayType: LMManualRepTypeDisplayEnum;\n public layoutDisplayType;\n protected subscriptionArray: Array = [];\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private route: ActivatedRoute,\n private lmLoggerService: LMLoggerService,\n protected lmFormManualRepService: LMFormManualRepService,\n public lmFieldManualRepService: LMFieldManualRepService,\n private lmHtmlUrlDocService: LMHtmlUrlDocService,\n protected lmContextService: LMContextService,\n ) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMManualRepTypeDisplayEnum;\n this.frameIdentifier = this.lmHtmlUrlDocService.createFrameIdentifier();\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.automationId = this.buildAutomationId();\n\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n const webApp = this.lmContextService.getContext().webApp;\n\n this.manualRefUrl = window.location.protocol + '//' + window.location.host.toLowerCase() + '/' + dataArea + '/' + webApp\n + '/manualrep/' + this._manualRep.repName + '?manualRepType=' + this._manualRep.type; //manualRepName=' + this._manualRep.repName + '&\n\n if (this.isReadOnly) {\n this.displayType = this.layoutDisplayType.READ_ONLY;\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n\n }\n\n if (this.frameIdentifier.length > 0) {\n this.lmHtmlUrlDocService.setManualFields(this.frameIdentifier, this.getManualRepFields(), this);\n }\n this.model.addManualRepField(this._manualRep.fieldId);\n }\n\n private buildAutomationId() {\n if (!this._manualRep.repName) {\n return null;\n }\n\n const formNamePrefix = this.lmFieldServiceAdapter.lmFormSpecUtilService.formNamePrefix(this.model.formSpec);\n const formName = this.lmFieldServiceAdapter.lmFormSpecUtilService.formName(this.model.formSpec);\n // const instance = (this.field.hasOwnProperty('inst') && this.field.inst > 0) ? this.field.inst.toString() : undefined;\n return this.lmFieldServiceAdapter.lmUniqueIdService.uniqueAutomationId([ formNamePrefix, formName, this._manualRep.repName]);\n }\n\n ngAfterViewInit() {\n // super.ngAfterViewInit();\n this.subscriptionArray.push(this.model.modelChanged.subscribe((modelChangedEvent: LMModelChangedEvent) => {\n this.lmHtmlUrlDocService.setManualFields(this.frameIdentifier, this.getManualRepFields(), this);\n\n // When the model is updated using the landmark-api setModelField has a param to notify listeners\n // updateModelFromManualRepField(fieldId: string, value: any, notifyListeners?: boolean)\n // when that is true the ModelEventChanged is set with the value of 'manualRepChanged' insyead of 'update'\n // this._modelChanged$.next(new LMModelChangedEvent('manualRepChanged'));\n // We then skip the reload of the htmlurlDoc which will block the event from being forwarded to the html page.\n // At the same time we also set a short timer to hold that value o cover the fact that the field change could trigger\n // when value changes in the lpl that will trigger chnages in other fields that we would also like t block the event\n // from being fired to the html for thise field also since they are a result of the manual rep field change\n if (!this.bypassmanualRepUpdate && modelChangedEvent.eventType !== 'manualRepChanged') {\n this.lmHtmlUrlDocComponent.reload();\n } else {\n if (!this.bypassmanualRepUpdate) {\n this.lmLoggerService.log('Manual Rep Model Modify bypass enabled');\n this.bypassmanualRepUpdate = true;\n setTimeout(() => {\n this.bypassmanualRepUpdate = false;\n this.lmLoggerService.log('Manual Rep Model Modify bypass disabled');\n }, 1000);\n }\n\n }\n }));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n\n // clean up all other subscriptions\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.subscriptionArray = [];\n }\n\n onContentModified(event: LMListFieldChangedEvent) {\n this.contentModified.emit(event);\n }\n\n onSetFieldDirty(dirty: boolean) {\n this.isDirty = dirty;\n this.model.setDirty(this._manualRep.fieldId, this.isDirty);\n }\n\n onCustomDocumentLoaded(event: LMListFieldChangedEvent) {\n }\n\n onBeforeOpen(event: any) {\n }\n\n public runSave(): BehaviorSubject {\n return this.lmHtmlUrlDocComponent.runSave();\n }\n\n public getLmHtmlUrlDocComponent() {\n return this.lmHtmlUrlDocComponent;\n }\n\n public setModelFields(fieldId: string, value: any, notifyListeners?: boolean){\n\n this.model.updateModelFromManualRepField(fieldId, value, notifyListeners);\n const modelField = this.model.getField(fieldId);\n\n // If the field being updated has initial values we fire a change event on that field to force\n // the rules to be run similar to when a value is selected for a select field.\n if (modelField.fireInitialValue) {\n this.fireInitialValueRuleEvent(fieldId);\n }\n\n if (notifyListeners) {\n this.lmHtmlUrlDocComponent.reload();\n }\n }\n\n public getFormState(): LMAPIFormState {\n // this will currently return just the readonly value but could be used in the future to expand the information when it is needed.\n return { readonly: this.model.isReadOnlyForm };\n }\n\n public getManualRepFields() {\n const retObj = {};\n const rep: LMFormLayoutManualRep = this._manualRep as LMFormLayoutManualRep;\n const fields: Array = rep.fieldMappings;\n let value: LMRelatedValueSpec;\n for (const field of fields) {\n if (field.type === 'text') {\n value = field.value;\n } else {\n const modelField = this.model.getField(field.fieldId);\n value = modelField.value;\n }\n retObj[field.property] = value;\n }\n return retObj;\n }\n}\n"," \n \n","export * from './lm-menu-field.component';\n","import { Component, Input } from '@angular/core';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\n\n@Component({\n selector: 'lm-menu-field',\n templateUrl: './lm-menu-field.component.html',\n styleUrls: [ './lm-menu-field.component.scss' ]\n})\n\nexport class LMMenuFieldComponent {\n @Input() border = false;\n @Input() menuScale;\n @Input() icon;\n @Input() link;\n @Input() title;\n @Input() description;\n\n constructor(private lmSpecService: LMSpecService,\n private lmGlobalUtilService: LMGlobalUtilService) {\n }\n\n performNavigation() {\n this.lmSpecService.getRedirectUrl(this.link).subscribe(response => {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n });\n }\n}\n","
    \n\t\n\t{{description}}\n
    \n","export * from './lm-process-indicator.component';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {LMProcessIndicatorService} from '@field/processindicator/lm-process-indicator.service';\n\n@Pipe({\n name: 'lmProcessIndicatorTooltip'\n})\n\nexport class LMProcessIndicatorTooltipPipe implements PipeTransform {\n constructor(private lmProcessIndicatorService: LMProcessIndicatorService) {}\n\n transform(data: LMProcessIndicatorDisplayData): string {\n if (data === undefined) {\n return null;\n }\n\n return `\n
    \n ${data.label}\n ${data.status ? `${data.displayStatus}` : ``}\n ${data.stepApproversDisplay?.map((a) => `\n
    \n ${a.icon ? `\n \n ` : ``}\n ${a.approver}\n ${a.tag ? `${a.displayTag.value}` : ``}\n
    `).join('')}\n `;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LMFieldBaseComponent } from '../lm-field-base.component'\nimport { LMFieldServiceAdapter } from '../lm-field-service-adapter';\nimport { LMModel, LMModelChangedEvent } from '../../form/model';\nimport { LMProcessIndicatorService } from './lm-process-indicator.service';\n\n@Component({\n selector: 'lm-process-indicator',\n templateUrl: 'lm-process-indicator.component.html',\n styleUrls: ['lm-process-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMProcessIndicatorComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() templateData: Array;\n @Input() processIndicatorCompletionStatus: LMProcessIndicatorCompletionStatus;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n\n @HostBinding('class.parent-is-paragraph') parentIsParagraph: boolean;\n @HostBinding('attr.id') dataAutomationId: string;\n\n public processIndicatorResponsiveDisplayData: LMProcessIndicatorDisplayData;\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmProcessIndicatorService: LMProcessIndicatorService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super(lmFieldServiceAdapter);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.build();\n this.subscribeToModelChanges();\n this.dataAutomationId = this.id;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n public getStepId(data: LMProcessIndicatorDisplayData): string {\n return `${this.id}_${data.stepId}`;\n }\n\n public getStepOverflowId(data: LMProcessIndicatorDisplayData): string {\n return `${this.id}_${data.stepId}-step-approvers-overflow`;\n }\n\n private build() {\n if (this.lmParagraphLayoutInfo) {\n this.parentIsParagraph = this.lmParagraphLayoutInfo.parentIsParagraphLayout;\n }\n\n if (this.modelField.value === '') {\n this.templateData = null;\n } else {\n const processIndicatorData: LMProcessIndicatorData = JSON.parse(this.modelField.value);\n this.templateData = this.lmProcessIndicatorService.getTemplateData(processIndicatorData);\n this.processIndicatorCompletionStatus = processIndicatorData.completionStatus;\n this.processIndicatorResponsiveDisplayData = this.lmProcessIndicatorService.getStepInProgress(this.templateData);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n private subscribeToModelChanges() {\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n this.build();\n }\n })\n );\n }\n}\n","\n
    \n {{'InProgress' | translate}}: {{processIndicatorResponsiveDisplayData?.label}}\n
    \n
    \n {{data.label}}\n
    \n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n
    \n \n \n
    \n
    \n
    \n\n\n\n {{data.displayStatus}}\n \n \n \n \n more\n
      \n
    • \n \n
    • \n
    \n
    \n
    \n\n\n \n {{data.elapsedTime}}\n \n\n\n\n
    \n \n \n {{item.approver}}\n \n \n {{item.approver}}\n \n \n {{item.displayTag.value}}\n \n
    \n
    \n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMProcessIndicatorService {\n public formatProcessIndicatorData(dataView: LMDataView, columnDef: ListGridColumn): LMProcessIndicatorData {\n const jsonString: string = dataView.fields[columnDef.displayField.fieldId].value;\n\n if (jsonString === '') {\n return null;\n }\n\n return JSON.parse(jsonString);\n }\n\n public getTemplateData(processIndicatorData: LMProcessIndicatorData): Array {\n let openIndex = 0;\n\n if (processIndicatorData === null) {\n return [];\n }\n\n const templateData: Array = [];\n processIndicatorData.steps.forEach((step, index) => {\n // Track steps that are still open\n if (step.status === 'O') {\n step['openIndex'] = openIndex;\n openIndex++;\n }\n\n const data: LMProcessIndicatorDisplayData = {\n stepId: step.stepId,\n label: step.label,\n completionStatus: step.completionStatus,\n displayCompletionStatus: this.getCompletionStatusDisplayValue(step.completionStatus),\n displayStatus: step.completionMessage ? step.completionMessage : this.getStatusDisplayValue(step.status),\n status: step.status,\n elapsedTime: this.getElapsedTimeDisplayValue(step.startTime, step.completionTime),\n startTime: this.isValidTime(step.startTime) ? `${this.getTimeDisplayValue(step.startTime)}` : null,\n completedTime: this.isValidTime(step.completionTime) ? `${this.getTimeDisplayValue(step.completionTime)}` : null,\n stepApprovers: step.stepApprovers,\n stepApproversDisplay: this.getStepApproversDisplayValues(step.stepApprovers),\n elapsedTimeToolTip: null,\n completionStatusInfo: this.getCompletionStatusInfo(step, processIndicatorData.steps),\n stepApproversOverflowContextMenuItems: null\n }\n\n if (data.stepApproversDisplay.length > 5) {\n data.stepApproversOverflowContextMenuItems = data.stepApproversDisplay.slice(5, data.stepApproversDisplay.length);\n data.stepApproversOverflowToolTipHTML = this.getStepApproverOverflowToolTipHTML(data.stepApproversOverflowContextMenuItems);\n\n // Remove overflow from array\n data.stepApproversDisplay.splice(5);\n }\n\n data.elapsedTimeToolTip = this.getElapsedTimeTooltip(data);\n\n templateData.push(data);\n });\n\n return templateData;\n }\n\n\n /*\n if ProcessIndicatorStep.status = I\n - display elapsed time since startTime ?\n\n if ProcessIndicatorStep.status = C AND\n - ProcessIndicatorStep.completionStatus = P, display solid circle\n - ProcessIndicatorStep.completionStatus = N, display red solid circle?\n - ProcessIndicatorStep.completionStatus = T, display clock?\n\n if ProcessIndicatorStep.status = X AND\n - ProcessIndicatorStep.completionStatus = N, display X over open grey circle\n - ProcessIndicatorStep.completionStatus = P/T/blank, display open grey circle\n */\n /**\n * COMPLETION STATUS\n * @param step\n */\n private getCompletionStatusInfo(step: LMProcessIndicatorStep, steps: Array): LMProcessIndicatorCompletionStatusInfo {\n let completionStatusInfo: LMProcessIndicatorCompletionStatusInfo = {\n indicatorClass: this.getIndicatorClasses(step, steps)\n };\n\n switch (step.status) {\n case 'C':\n completionStatusInfo = {\n ...completionStatusInfo,\n iconInfo: this.getCompletedStatus(step)\n }\n break;\n case 'X':\n completionStatusInfo = {\n ...completionStatusInfo,\n iconInfo: this.getInvalidStatus()\n }\n break;\n case 'E':\n completionStatusInfo = {\n ...completionStatusInfo,\n iconInfo: this.getErrorStatus()\n }\n break;\n case 'I':\n case 'O':\n completionStatusInfo = {\n ...completionStatusInfo,\n iconInfo: this.getInDefaultStatus(step)\n }\n break;\n }\n\n return completionStatusInfo;\n }\n\n /**\n * Return either the current step (step in progress)\n * Or return the first open step\n * @private\n */\n public getStepInProgress(templateData: Array): LMProcessIndicatorDisplayData {\n const completedSteps = templateData.filter((s) => s.status === 'C' || s.status === 'I' || s.status === 'E');\n return completedSteps.length === 0 ? templateData[0] : completedSteps[completedSteps.length - 1];\n }\n\n /**\n * Used to change the color of the icon\n * @param icon\n * @param isToolTip (need to reverse color if tooltip, tooltip has black bg color)\n * @private\n */\n public getApproverIconColorClass(icon: LMProcessIndicatorIcon, isToolTip?: boolean): LMProcessIndicatorColorClassName {\n switch (icon) {\n case 'T': return 'lm-status-yellow';\n case 'N': return isToolTip ? 'lm-status-white' : 'lm-status-gray';\n case 'R':\n case 'E': return 'lm-status-red';\n case 'A': return 'lm-status-green';\n case 'U': return 'lm-status-purple';\n }\n }\n\n public getTagClasses(approver: LMProcessIndicatorDisplayStepApprover): string {\n const classes = ['tag'];\n\n if (approver.displayTag?.type === 'secondary') {\n classes.push('secondary');\n }\n\n if (approver.displayTag?.type === 'primary') {\n classes.push('primary');\n }\n\n return classes.join('');\n }\n\n /**\n * STATUS\n * @param step\n * @private\n */\n private getIndicatorClasses(step: LMProcessIndicatorStep, steps: Array): string {\n let cssClass: string;\n\n switch (step.status) {\n case 'I':\n cssClass = 'current processing';\n break\n case 'C':\n case 'X':\n cssClass = 'darker';\n break\n case 'O':\n cssClass = step['openIndex'] === 0 && steps.filter((s) => s.status === 'I').length === 0 ? 'current processing' : '';\n break;\n default:\n cssClass = '';\n break\n }\n\n return cssClass;\n }\n\n /**\n * COMPLETION STATUS ICONS AND CLASS IF \"STATUS\" IS \"C\" (completed)\n * @param step\n * @private\n */\n private getCompletedStatus(step: LMProcessIndicatorStep): LMProcessIndicatorCompletionStatusInfoIconInfo {\n switch (step.completionStatus) {\n case 'N': return { icon: 'rejected-solid', colorClass: 'lm-status-red'};\n case 'T': return { icon: 'pending-solid', colorClass: 'lm-status-yellow'};\n case 'U': return { icon: 'in-progress-solid', colorClass: 'lm-status-purple'};\n default: return { icon: null, colorClass: null};\n }\n }\n\n /**\n * COMPLETION STATUS ICONS AND CLASS IF \"STATUS\" IS \"X\" (invalid)\n * @param step\n * @private\n */\n private getInvalidStatus(): LMProcessIndicatorCompletionStatusInfoIconInfo {\n return { icon: 'rejected-solid', colorClass: 'lm-status-gray'};\n }\n\n /**\n * COMPLETION STATUS ICONS AND CLASS IF \"STATUS\" IS \"E\" (error)\n * @param step\n * @private\n */\n private getErrorStatus(): LMProcessIndicatorCompletionStatusInfoIconInfo {\n return { icon: 'error-solid', colorClass: 'lm-status-red'};\n }\n\n /**\n * COMPLETION STATUS ICONS AND CLASS IF \"STATUS\" IS \"O or I\" (open, inProgress)\n * @param step\n * @private\n */\n private getInDefaultStatus(step: LMProcessIndicatorStep): LMProcessIndicatorCompletionStatusInfoIconInfo {\n let iconInfo: LMProcessIndicatorCompletionStatusInfoIconInfo;\n\n switch (step.completionStatus) {\n case 'T':\n iconInfo = { icon: 'pending-solid', colorClass: 'lm-status-yellow'};\n break\n default:\n iconInfo = { icon: null, colorClass: null};\n break\n }\n\n return iconInfo;\n }\n\n private getStepApproverOverflowToolTipHTML(stepApprovers: Array): string {\n const html = stepApprovers.map((approver) => `\n
    \n ${approver.icon ? `\n \n \n ` : ''}\n ${approver.approver}\n ${approver.tag ? `${approver.displayTag.value}` : ''}\n
    `\n\n // Remove hyperlink for now, there is no way to click on it in a tooltip\n // ${approver.email ? `${approver.approver}` : `${approver.approver}`}\n ).join('').trim();\n\n return html;\n }\n\n private getElapsedTimeTooltip(data: LMProcessIndicatorDisplayData): string {\n return `\n ${data.startTime ? `
    Begin: ${data.startTime}
    ` : ''}\n ${data.completedTime ? `
    End: ${data.completedTime}
    ` : ''}\n `\n }\n\n // TODO: Translation\n private getElapsedTimeDisplayValue(startTime: string, completionTime: string): string {\n const _startTime = startTime && Number(startTime) !== -1 ? this.getDate(startTime) : undefined;\n const _completionTime = completionTime && Number(completionTime) !== -1 ? this.getDate(completionTime) : undefined;\n const timeToComplete = _completionTime && _startTime ? _completionTime.getTime() - _startTime.getTime() : undefined;\n const timeElapsedSinceStart = _startTime ? new Date().getTime() - _startTime.getTime() : 0;\n\n if (_startTime === undefined && _completionTime === undefined && timeToComplete === undefined) {\n return;\n }\n\n const ms = timeToComplete ? timeToComplete : timeElapsedSinceStart;\n const minutes = (ms / 1000) / 60;\n\n if (minutes < 1) {\n return `Less than 1 minute`;\n }\n\n if (Math.round(minutes) === 1) {\n return `One minute`;\n }\n\n if (Math.round(minutes) === 60) {\n return `One hour`;\n }\n\n if (Math.round(minutes) > 60 && Math.round(minutes) < 1440) {\n return `${Math.round(minutes / 60)} hours`;\n }\n\n if (Math.round(minutes) === 1440) {\n return 'One day';\n }\n\n if (Math.round(minutes) > 1440 && Math.round(minutes) < 43800) {\n return `${Math.round(minutes / 1440)} days`\n }\n\n if (Math.round(minutes) === 43800) {\n return 'One Month';\n }\n\n if (Math.round(minutes) > 43800 && Math.round(minutes) < 525600) {\n return `${Math.round(minutes / 43800)} months`\n }\n\n if (Math.round(minutes) === 525600) {\n return 'One Year';\n }\n\n if (Math.round(minutes) > 525600) {\n return `${Math.round(minutes / 525600)} years`\n }\n\n return `${Math.round(minutes)} minutes`;\n }\n\n private isValidTime(time: string): boolean {\n if (time === '-1' || Number(time) === -1) {\n return;\n }\n\n if (time === undefined) {\n return;\n }\n\n return true;\n }\n\n private getTimeDisplayValue(time: string): string {\n return Soho.Locale.formatDate(this.getDate(time), {pattern: 'MMM dd, yyyy | hh:mm a'});\n }\n\n private getStepApproversDisplayValues(stepApprovers: Array): Array {\n const stepApproversMap = stepApprovers.map((approver) => Object.assign(approver, {\n icon: approver.icon,\n displayIcon: this.getIconDisplayValue(approver.icon),\n displayTag: this.getTagDisplayValue(approver.tag),\n colorClass: this.getApproverIconColorClass(approver.icon)\n }));\n\n return stepApproversMap;\n }\n\n private getStatusDisplayValue(value: LMProcessIndicatorStatus): LMProcessIndicatorDisplayStatus {\n const status = {\n O: 'Open' as 'Open',\n I: 'In Progress' as 'In Progress',\n C: 'Completed' as 'Completed',\n X: 'Invalid' as 'Invalid'\n }\n\n return status[value];\n }\n\n private getCompletionStatusDisplayValue(value: LMProcessIndicatorCompletionStatus): LMProcessIndicatorCompletionDisplayStatus {\n const status = {\n T: 'Timeout' as 'Timeout',\n N: 'Negative' as 'Negative',\n P: 'Positive' as 'Positive',\n U: 'Route' as 'Route'\n }\n\n return status[value];\n }\n\n private getIconDisplayValue(icon: LMProcessIndicatorIcon): LMProcessIndicatorIcon {\n // Map icon names to infor-design-system icon names\n const icons = {\n T: 'pending' as 'T',\n R: 'rejected-outline' as 'R',\n A: 'success' as 'A',\n N: 'empty-circle' as 'N',\n E: 'error' as 'E',\n U: 'in-progress' as 'U'\n }\n\n return icons[icon];\n }\n\n private getTagDisplayValue(tag: string): LMProcessIndicatorDisplayTag {\n return { type: 'primary', value: tag }\n }\n\n private getDate(time: string): Date {\n if (time === undefined) {\n return;\n }\n\n const offset = new Date().getTimezoneOffset() / 60;\n const parts = time.toString().split('');\n const year = Number(parts.slice(0, 4).join(''));\n const month = Number(parts.slice(4, 6).join(''));\n const day = Number(parts.slice(6, 8).join(''));\n const HH = Number(parts.slice(8, 10).join('')) - offset;\n const mm = Number(parts.slice(10, 12).join(''));\n const s = Number(parts.slice(12, 14).join(''));\n const ms = Number(parts.slice(14, 16).join(''));\n\n return new Date(year, month - 1, day, HH, mm, s, ms)\n }\n}\n","export * from './lm-progress.component';\n","import { Component, DoCheck, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { AppConstants, LMCommonUtilService } from '@utils/index';\n\n@Component({\n selector: 'lm-progress',\n templateUrl: './lm-progress.component.html',\n styleUrls: [ 'lm-progress.component.scss' ]\n})\nexport class LMProgressComponent extends LMFieldBaseComponent implements OnInit, DoCheck, OnDestroy {\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Input() layoutObject: LMProgressLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n\n public chartDataSet: SohoDataSet = null;\n public labelText = '';\n private oldValue;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmCommonUtilService: LMCommonUtilService) {\n super(lmFieldServiceAdapter);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.setFieldClasses();\n\n this.oldValue = this.modelField.value;\n this.transformOptions.displayZero = true;\n\n this.buildDataSet();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n // need to run back into ngZone as subscription is not in the zone\n this.lmFieldServiceAdapter.ngZone.run(() => {\n // do not set triggerValue here\n if (modelChangedEvent.eventType === 'set') {\n this.buildDataSet();\n }\n });\n })\n );\n }\n\n ngDoCheck() {\n // this is here in case an input field is also bound with the same bindId as\n // the progress bar; if it is, we want to update the chart\n if (this.oldValue !== this.modelField.value) {\n this.oldValue = this.modelField.value;\n this.buildDataSet();\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n private buildDataSet() {\n const color = this.lmCommonUtilService.getRangeColor(this.field.ranges, this.modelField.value, this.model);\n const displayValue = this.lmFieldServiceAdapter.lmFormatUtilService.toDisplayValue(this.modelField.value, this.specField.type, this.transformOptions);\n let completedText;\n\n // Progress bar rules:\n // For a PERCENT field, only show \" of \" IF the meter isn't 100% (the default).\n // For all else, show \" of \" on the bar.\n\n // set meter, completed text, completed value\n // LPL meter directive not required for PERCENT; safety here for NUMERIC and BCD\n const meter = (this.field.meterRangeField)\n ? this.model.getField(this.field.meterRangeField).value\n : (this.field.meterRangeValue)\n ? this.field.meterRangeValue\n : (this.specField.type === AppConstants.PERCENT)\n ? 1.00\n : 100;\n\n // eslint-disable-next-line eqeqeq\n if (this.specField.type === AppConstants.PERCENT && meter == 1.00) {\n completedText = displayValue;\n\n } else {\n const displayMeter = this.lmFieldServiceAdapter.lmFormatUtilService.toDisplayValue(meter, this.specField.type, this.transformOptions);\n completedText = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessage(Soho.Locale.translate('ValueOfMeter'), [ displayValue, displayMeter ]);\n }\n\n // completedValue is the style width attribute; cannot be localized\n const completedValue = this.modelField.value;\n\n this.labelText = this.labelResourceValue ? this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.labelResourceValue, this.model, this.specFields) : ''\n\n const chartData: SohoChartData = {\n name: { text: '' },\n remaining: {\n value: '', // removes value at top right of chart\n text: ''\n },\n info: {\n value: displayValue // value for display\n },\n completed: {\n value: completedValue, // style width attribute; cannot be localized\n // text: completedText, // for targeted-achievement, places value at bottom left\n color\n },\n total: {\n value: meter\n },\n percentText: {\n show: true,\n text: completedText // places value in the chart; this.modelField.value\n }\n };\n\n const chartDataSetItem: SohoDataSetItem = {\n data: [ chartData ]\n };\n\n this.chartDataSet = [ chartDataSetItem ];\n }\n}\n","\n\n\n\n
    \n\n\n \n \n \n\n","export * from './lm-radiobutton.component';\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport * as urltemplate from 'url-template';\nimport { LMFormRequestService } from '@form/services';\n\n@Component({\n selector: 'lm-radiobutton',\n templateUrl: './lm-radiobutton.component.html',\n styleUrls: [ 'lm-radiobutton.component.scss' ]\n})\nexport class LMRadiobuttonComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n @Input() layoutObject: LMRadioButtonLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n public isHorizontal = false;\n private isUserDefined = false;\n public values: Array = [];\n\n @HostBinding('class.field') hostClass = !this.isHorizontal;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n constructor(private lmFormRequestService: LMFormRequestService,\n protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n }\n\n // the sohoxi controls will run the validation on a click and will\n // remove the alert that was placed there; listening here will re-apply the alert\n @HostListener('click', [ '$event' ])\n onClick(event) {\n this.onChangeProcessAlerts();\n super.onClick(event);\n };\n\n @HostListener('change')\n onChange() {\n super.onChange();\n\n this.handleOnFieldChanged();\n };\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n this.isUserDefined = this.specField.hasUserDefinedStates;\n // field class interferes with horizontal radio buttons\n // causes last radio to display when first radiobutton (not label) is checked\n this.isHorizontal = this.field.horizontalRadioButtons;\n\n if (this.isUserDefined) {\n this.getUserDefinedStates();\n\n } else if (this.specField.stateValues) {\n this.values = this.specField.stateValues;\n }\n\n this.fieldClassArray.push('radio-group');\n this.fieldClassArray.push('field-radio');\n this.setFieldClasses();\n\n if (!(this.displayAsText || this.displayAsTag)) {\n this.subscribeToInlineError();\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n trackByValue(index: number, state: LMStateValue) {\n return state.value;\n }\n\n public onNgModelChange(value) {\n this.modelField.toDataValue(value, this.transformOptions);\n }\n\n public getUserDefinedStates(): void {\n this.busyIndicator = true;\n\n const compiledFormRequestUrl = urltemplate.parse(this.model.formUrlInfo.formRequestUrl);\n const formRequestUrl = compiledFormRequestUrl.expand({ resourceId: this.model.formResourceId });\n\n const dataView = this.model.getData();\n const actionName = this.model.action;\n\n this.lmFormRequestService\n .getUserDefinedStates(formRequestUrl, this.bindId, dataView, actionName)\n .subscribe((result: LMUserDefinedResponse) => {\n if (this.lmFieldServiceAdapter.lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n if (result && result.hasOwnProperty('states') && Array.isArray(result.states)) {\n this.values = this.modelField.states = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToOptionsArray(result.states, false);\n return;\n }\n } else {\n if (Array.isArray(result)) {\n this.values = this.modelField.states = this.lmFieldServiceAdapter.lmFormatUtilService.fieldStatesToOptionsArray(result, false);\n return;\n }\n }\n\n // an error\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.error([ 'Error in getUserDefinedStates', this.bindId, result ]);\n },\n (error) => {\n this.busyIndicator = false;\n this.lmFieldServiceAdapter.lmLoggerService.error([ 'Error in getUserDefinedStates', this.bindId, error ]);\n });\n };\n}\n","\n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n \n \n

    {{modelField.value | stateAsText:modelField.states}}

    \n \n
    \n \n \n
    \n \n \n \n \n \n {{item?.label}}\n \n
    \n
    \n
    \n
    \n \n
    \n\n\n\n \n \n \n\n","export * from './lm-rating.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter, HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { SohoRatingComponent } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-rating',\n templateUrl: './lm-rating.component.html',\n styleUrls: [ 'lm-rating.component.scss' ]\n})\nexport class LMRatingComponent extends LMFieldBaseComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @ViewChild('sohoRating') private rating: SohoRatingComponent;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n public ratingOptions: Array;\n public ratingName: string;\n\n private initialValue: any;\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private elementRef: ElementRef) {\n super(lmFieldServiceAdapter);\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.ratingOptions = this.lmFieldServiceAdapter.lmFormatUtilService.formatStarRatingOptions(this.modelField.value, this.id);\n this.ratingName = this.id + '_rating_name'\n this.initialValue = this.modelField.value;\n\n // Need to set vertical align on the parent element, or the form paragraph layout messes up\n const parentNode = this.lmFieldServiceAdapter.renderer2.parentNode(this.elementRef.nativeElement);\n if (parentNode) {\n this.lmFieldServiceAdapter.renderer2.setStyle(parentNode, 'vertical-align', 'bottom');\n }\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n // Need to make sure the control's current value matches the value that has been set after a save action.\n // if not, the control gets confused, and we can't change the value after saving\n if (this.modelField.value !== this.initialValue) {\n this.rating.currentValue = this.modelField.value;\n }\n if (this.isReadOnly || this.displayAsText) {\n this.rating.readonly();\n }\n this.initialValue = this.modelField.value;\n this.onPristine(null);\n }\n })\n );\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if ((this.isReadOnly || this.displayAsText) && this.rating) {\n this.rating.readonly();\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n /**\n * Handles the onChange event from clicking a star. This will set the modelField.value and set the field as\n * dirty. Currently we don't track the initial value so we don't reset pristine if the user attempts to select\n * the initial star value again\n *\n * @param event - click event from the DOM\n */\n public onChangeRating(event: Event) {\n const newValue = this.rating.currentValue;\n\n this.modelField.toDataValue(newValue, this.transformOptions);\n\n if (newValue === this.initialValue) {\n this.onAfterResetDirty(event as any);\n } else {\n this.onDirty(event as any);\n }\n }\n}\n","\n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n\n
    \n
    \n \n \n \n \n
    \n
    \n\n \n \n \n\n","export * from './lm-richtext.component';\n","import { AfterViewInit, Component, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { SohoEditorComponent } from 'ids-enterprise-ng';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\n\nenum LMRichTextTypeDisplayEnum {\n PLAIN = 0,\n DISPLAY_AS_TEXT,\n}\n\n@Component({\n selector: 'lm-richtext',\n templateUrl: './lm-richtext.component.html',\n styleUrls: [ 'lm-richtext.component.scss' ]\n})\nexport class LMRichtextComponent extends LMFieldBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(SohoEditorComponent) editor: SohoEditorComponent;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() parentIsFormLayout: boolean;\n\n public displayType: LMRichTextTypeDisplayEnum;\n public richTextValue: string;\n public isSingleLine = false;\n public layoutDisplayType;\n public rows = {};\n public richTextTrigger = false;\n private richTextCurrentValue: string;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMRichTextTypeDisplayEnum;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n this.setFieldClasses();\n\n if (this.layoutObject.lines === 1) {\n this.isSingleLine = true;\n }\n\n // no options needed\n if (this.displayAsText) {\n this.displayType = this.layoutDisplayType.DISPLAY_AS_TEXT;\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n\n // see JFieldRichTextArea.java > DEFAULT_TEXTAREA_LINES\n const lines = (this.layoutObject.lines === undefined || this.layoutObject.lines === 0) ? 8 : this.layoutObject.lines;\n this.rows = {\n editor: lines,\n source: lines\n };\n\n this.subscribeToInlineError();\n }\n\n // first time\n this.richTextValue = this.modelField.value;\n this.richTextCurrentValue = this.richTextValue;\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n // The richTextTrigger will not control 'display as text' types.\n if (this.richTextValue !== this.richTextCurrentValue) {\n this.richTextTrigger = !this.richTextTrigger;\n }\n // need to always set the value regardless of eventType\n this.richTextValue = this.modelField.value;\n\n // state could have changed\n this.setState();\n })\n );\n\n // validity conditions listen for evaluateConditions notification\n if (this.layoutObject.validity) {\n this.subscriptionArray.push(\n this.lmFieldServiceAdapter.lmConditionUtilService.evaluateConditions.subscribe( (status: boolean) => {\n this.setState();\n })\n );\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // need to set state for initial load\n this.setState();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onBlur(event) {\n this.modelField.value = event.target.innerHTML;\n\n // don't update this.richTextValue here; causes selection to be lost\n super.onBlur(event);\n\n this.richTextCurrentValue = this.modelField.value;\n }\n\n onRichTextChange() {\n this.onChange();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n private setState() {\n if (this.editor) {\n // displayAsText over-rides readOnly\n if (this.displayAsText) {\n // no-op - is-preview class and data-options are on template\n\n } else if (this.isReadOnly) {\n this.editor.readonly = true;\n\n } else {\n this.editor.readonly = false;\n this.editor.disabled = false;\n }\n }\n }\n}\n","\n\n
    \n \n
    \n \n
    \n \n
    \n \n \n \n
    \n
    \n\n\n {{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n \n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'bottom'\"\n [trigger]=\"'click'\"\n (contextmenu)=\"onContextMenu($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\">\n \n {{(triggerValue | formatLabelRule:field:labelResourceValue:model:specFields) || bindId}}\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n\n\n \n \n \n\n","export * from './lm-scan-options.component';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { SohoContextMenuDirective } from 'ids-enterprise-ng';\n\n@Component({\n selector: '[ lm-scan-options ]', // tslint:disable-line\n templateUrl: './lm-scan-options.component.html',\n styleUrls: [ 'lm-scan-options.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMScanOptionsComponent implements OnDestroy {\n\n @ViewChild(SohoContextMenuDirective) contextmenu: SohoContextMenuDirective;\n @ViewChild('ScanOptionsButton', {read: ElementRef}) scanOptionsButton: ElementRef;\n\n @Input() ajaxCallbackFunction: SohoPopupMenuSourceFunction;\n @Input() contextMenuEventFunction: Function;\n @Input() hasContextMenu: boolean;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() dataEntryMode = false;\n @Input() isMemberField = false;\n @Input() isCheckBoxField = true;\n @Input() buttonId: string;\n @Input() scanOptionsLabel: string;\n @Input() isInAccessibilityMode: boolean;\n @Input() displayScanOptions = false;\n\n public showScanOptions = false;\n private scanOptionsClicked = false;\n\n @HostBinding('style.position') get hostPosition() {\n return 'relative';\n }\n\n @HostBinding('style.display') get hostDisplay() {\n // If a single textarea in a paragraph layout\n // Allow textarea to display block so it will span 100% width\n if ((this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.textAreaOnly) || this.isCheckBoxField) {\n return '';\n } else {\n return 'inline-flex';\n }\n }\n\n private destroy$ = new Subject();\n\n constructor(\n private el: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private zone: NgZone) {\n const element = el.nativeElement;\n const mouseEnter$ = fromEvent(element, 'mouseenter', {passive: true});\n const mouseLeave$ = fromEvent(element, 'mouseleave', {passive: true});\n\n mouseEnter$.pipe(\n tap(() => {\n this.showScanOptions = true;\n this.changeDetectorRef.markForCheck();\n }),\n takeUntil(this.destroy$)\n ).subscribe();\n\n mouseLeave$.pipe(\n tap(() => {\n if (this.scanOptionsClicked) {\n // if the field options has been clicked, leave the button visible for a bit\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.showScanOptions = false;\n this.scanOptionsClicked = false;\n this.changeDetectorRef.markForCheck();\n }, 100);\n });\n } else {\n this.showScanOptions = false;\n this.changeDetectorRef.markForCheck();\n }\n }),\n takeUntil(this.destroy$)\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n }\n handleFocus() {\n if (this.scanOptionsButton?.nativeElement) {\n this.scanOptionsButton.nativeElement.classList.remove('hide-focus');\n }\n }\n\n public openScanOptions(event: Event) {\n if (event) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n this.scanOptionsClicked = true;\n this.showScanOptions = true;\n this.contextmenu.initializeComponent();\n }\n\n public focusToScanOptionsButton() {\n this.showScanOptions = true;\n this.scanOptionsClicked = false;\n if (this.scanOptionsButton?.nativeElement) {\n this.scanOptionsButton.nativeElement.focus();\n }\n }\n\n handleBlur() {\n if (!this.scanOptionsClicked) {\n this.showScanOptions = false;\n }\n }\n}\n","\n
    \n \n
    \n
      \n
    \n
    \n
    \n
    \n\n\n
    \n \n
    \n
    \n","export * from './lm-field-layout.service';\nexport * from './lm-field-options-toolbar.service';\nexport * from './lm-field-options.service';\nexport * from './lm-field-manual-rep.service';\n","import { Injectable } from '@angular/core';\nimport { LMModel } from '@form/model';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMContextService } from '@services/lm-context.service';\n\nexport enum LMLayoutType {\n PROGRESS = 0,\n BINARY_DOCUMENT,\n CHECKBOX,\n CHECKCONTROL,\n PASSWORD,\n DATE,\n TIME,\n RADIO,\n DROPDOWN,\n ONE_LINE_TEXTAREA,\n MULTI_LINE_TEXTAREA,\n BUSCLASS_FIELD,\n RICH_TEXT,\n LOOKUP,\n TEXT,\n MULTI_SELECT,\n IMAGE,\n MANUAL_REPRESENTATION,\n COMPACT_FORMAT,\n COMPACT_FORMAT_BY_FORM,\n FIELD_EDITOR,\n FIELD_EDITOR_COMPARE,\n RATING,\n PROCESS_INDICATOR,\n CAPTCHA_CONTROL\n}\n\n@Injectable()\nexport class LMFieldLayoutService {\n\n constructor(\n protected lmContextService: LMContextService\n ) {}\n\n // public methods\n public getLayoutType(field: LMFormLayoutField, specField: LMSpecField, model: LMModel, paragraphLayoutInfo: LMParagraphLayoutInfo): LMLayoutType {\n if (field.type === 'progress') {\n return LMLayoutType.PROGRESS;\n\n } else if (field.displayAsRating) {\n return LMLayoutType.RATING;\n\n } else if (field.type === 'binarydocument') {\n return LMLayoutType.BINARY_DOCUMENT;\n\n } else if (field.type === 'checkbox' && !model.isSearchForm) {\n return LMLayoutType.CHECKBOX;\n\n } else if (field.type === 'checkbox' && model.isSearchForm) {\n return LMLayoutType.DROPDOWN;\n\n } else if (field.type === 'CHECKCONTROL') {\n return LMLayoutType.CHECKCONTROL;\n\n } else if (field.type === 'password') {\n return LMLayoutType.PASSWORD;\n\n } else if (this.isDate(field, specField)) {\n if (specField.type === AppConstants.TIMESTAMP) {\n if (this.isDisplayDateOnly(field, specField)) {\n return LMLayoutType.DATE;\n\n } else if (this.isDisplayHoursAndMinutesOnly(field, specField) || this.isDisplayTimeOnly(field, specField)) {\n return LMLayoutType.TIME;\n }\n }\n return LMLayoutType.DATE;\n\n } else if (this.isTime(field, specField)) {\n return LMLayoutType.TIME;\n\n } else if (field.type === 'state' && this.isRadio(field, specField, model, paragraphLayoutInfo)) {\n return LMLayoutType.RADIO;\n\n } else if (field.type === 'state' && !this.isRadio(field, specField, model, paragraphLayoutInfo)) {\n return LMLayoutType.DROPDOWN;\n\n } else if (this.hasOneLineTextArea(field) && !model.isSearchForm && !this.isProcessIndicator(field)) {\n return LMLayoutType.ONE_LINE_TEXTAREA;\n\n } else if (!model.isSearchForm && this.isFieldEditorComparer(field, specField)) {\n return LMLayoutType.FIELD_EDITOR_COMPARE;\n\n } else if (!model.isSearchForm && this.isFieldEditor(specField)) {\n return LMLayoutType.FIELD_EDITOR;\n\n } else if (this.hasMultiLineTextArea(field) && !model.isSearchForm && field.busClassField) {\n return LMLayoutType.BUSCLASS_FIELD;\n\n } else if (this.hasMultiLineTextArea(field) && !model.isSearchForm && !this.isProcessIndicator(field)) {\n return LMLayoutType.MULTI_LINE_TEXTAREA;\n\n } else if (this.isProcessIndicator(field) && !model.isSearchForm) {\n return LMLayoutType.PROCESS_INDICATOR;\n\n } else if (field.type === 'richText') {\n return LMLayoutType.RICH_TEXT;\n\n } else if (!this.isDate(field, specField) && !this.isTime(field, specField)\n && ((field.type === 'text' || field.type === 'compactFormat') && this.isSelectable(field)\n || (field.type === 'text' || field.type === 'compactFormat' || field.type === 'textarea') && this.isScannable(field))) {\n return LMLayoutType.LOOKUP;\n\n } else if (field.type === 'multiselect') {\n return LMLayoutType.MULTI_SELECT;\n\n } else if (field.type === 'image') {\n return LMLayoutType.IMAGE;\n\n // } else if (field.type === 'compactFormat' && !this.isSelectable(field)) {\n // return LMLayoutType.COMPACT_FORMAT;\n //\n // } else if (field.type === 'compactFormatByForm') {\n // return LMLayoutType.COMPACT_FORMAT_BY_FORM;\n\n } else if ((field.type === 'compactFormat' && !this.isSelectable(field))\n || field.type === 'compactFormatByForm') {\n if (model.isNestedCompoundField(specField)) {\n return LMLayoutType.COMPACT_FORMAT;\n }\n\n return LMLayoutType.COMPACT_FORMAT_BY_FORM;\n\n } else {\n return LMLayoutType.TEXT;\n }\n }\n\n public hasLimitToMinuteIncrements(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return ((specField?.type === AppConstants.TIMESTAMP || specField?.type === AppConstants.TIME) && field.hasOwnProperty('limitToMinuteIncrements'));\n }\n\n public hasTimeZone(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return (specField?.type === AppConstants.TIMESTAMP && field.hasOwnProperty('timeZoneIs'));\n }\n\n public hasDisableDST(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return (specField?.type === AppConstants.TIMESTAMP && field.hasOwnProperty('disableDST'));\n }\n\n public isDisplayWithTimeZone(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return (specField?.type === AppConstants.TIMESTAMP && field.hasOwnProperty('displayWithTimeZone'));\n }\n\n public isDisplayDateOnly(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return (specField.type === AppConstants.TIMESTAMP && field.hasOwnProperty('displayDateOnly'));\n }\n\n public isDisplayTimeOnly(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return (specField.type === AppConstants.TIMESTAMP && field.hasOwnProperty('displayTimeOnly'));\n }\n\n public isDisplayHoursAndMinutesOnly(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return ((specField.type === AppConstants.TIMESTAMP || specField.type === AppConstants.TIME) && field.hasOwnProperty('displayHoursAndMinutesOnly'));\n }\n\n public isDisplayDateAndHoursAndMinutes(field: LMFormLayoutField, specField: LMSpecField): boolean {\n return ((specField.type === AppConstants.TIMESTAMP) && field.hasOwnProperty('displayDateAndHoursAndMinutes'));\n }\n\n public specFieldToLayoutType(specField: LMSpecField): LMLayoutType {\n if (specField.isMultiselect) {\n return LMLayoutType.MULTI_SELECT;\n }\n\n if ((specField.stateValues && specField.stateValues.length > 0) || specField.hasUserDefinedStates) {\n return LMLayoutType.DROPDOWN;\n }\n\n if (specField.type === 'TEXT') {\n return LMLayoutType.TEXT;\n }\n\n return LMLayoutType.TEXT;\n }\n\n // private methods\n private isDate(field: LMFormLayoutField, specField: LMSpecField): boolean {\n if (!(!!specField)) {\n return false;\n }\n return (field.type === 'date'\n || (field.type === 'text'\n && (specField?.type === AppConstants.MMDD\n || specField?.type === AppConstants.TIMESTAMP\n || specField?.type === AppConstants.YYYY\n || specField?.type === AppConstants.YYYYMM\n || specField?.type === AppConstants.YYYYMMDD)));\n }\n\n private isTime(field: LMFormLayoutField, specField: LMSpecField): boolean {\n if (!(!!specField)) {\n return false;\n }\n return (field.type === 'text' && specField?.type === AppConstants.TIME);\n }\n\n private isRadio(field: LMRadioButtonLayout, specField: LMSpecField, model: LMModel, paragraphLayoutInfo: LMParagraphLayoutInfo): boolean {\n if (!(!!specField)) {\n return false;\n }\n\n const isRadio = !!(field.type === 'state' && field.displayAsRadioButtons);\n\n if (isRadio && ((paragraphLayoutInfo && paragraphLayoutInfo.isCompoundField)\n || this.isCompactForm(model.formSpec))) {\n // don't allow radio buttons in lm-compound-field or compact form\n return false;\n }\n return isRadio;\n }\n\n private isBlob(field: LMFormLayoutField): boolean {\n return (field.type === 'binaryobject' || field.type === 'binarydocument');\n }\n\n private isSelectable(field: LMLookupLayout): boolean {\n return field.selectable || false;\n }\n\n private isScannable(field: LMLookupLayout): boolean {\n if (this.lmContextService.insideInforGo()) {\n return field.scannable;\n }\n return false;\n }\n\n private hasOneLineTextArea(field: LMFormLayoutField): boolean {\n let lines: number;\n if (field.type === 'textarea') {\n lines = (field.lines === undefined || field.lines === 0) ? 4 : field.lines;\n return lines === 1;\n } else {\n return false;\n }\n }\n\n private hasMultiLineTextArea(field: LMFormLayoutField): boolean {\n let lines: number;\n if (field.type === 'textarea') {\n lines = (field.lines === undefined || field.lines === 0) ? 4 : field.lines;\n return lines > 1;\n } else {\n return false;\n }\n }\n\n private isFieldEditor(specField: LMSpecField): boolean {\n if (!this.lmContextService.getContext()) { // being extra careful!\n return false;\n }\n if (this.lmContextService.getContext().webApp !== 'ConfigurationConsole' && this.lmContextService.getContext().webApp !== 'SecurityAdministration') {\n return false;\n }\n return (specField?.isLpl);\n }\n\n private isFieldEditorComparer(field: LMFormLayoutField, specField: LMSpecField): boolean {\n //\n // if (!this.lmContextService.getContext()) { // being extra careful!\n // return false;\n // }\n // if (this.lmContextService.getContext().webApp !== 'ConfigurationConsole' && this.lmContextService.getContext().webApp !== 'SecurityAdministration') {\n // return false;\n // }\n\n return !(!field.compareWith);\n }\n\n private isCompactForm(formSpec: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.subFormType\n && formSpec.busFormSpec.subFormType === AppConstants.FORMSUBTYPE_COMPOUNDFLD\n );\n }\n\n private isProcessIndicator(field: LMFormLayoutField) {\n return field.isProcessIndicator && field.type === 'textarea' && (field.displayOnly || field.displayAsText);\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\n\n@Injectable()\nexport class LMFieldManualRepService {\n\n private _manualRepFields = {};\n\n constructor() {}\n\n public setManualRepFields(repName, manualRepFields) {\n this._manualRepFields[repName] = manualRepFields\n }\n\n public getManualRefFields() {\n return this._manualRepFields;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMToolbarServiceAdapter, LMToolbarServiceBase } from '@toolbar/index';\nimport { DrillPointsParams, LMContextService } from '@services/index';\nimport { LMModel, LMModelField } from '@form/model';\nimport { AppConstants } from '@utils/app.constants';\nimport { defer } from 'rxjs';\n\n@Injectable()\nexport class LMFieldOptionsToolbarService extends LMToolbarServiceBase {\n constructor(\n public lmToolbarServiceAdapter: LMToolbarServiceAdapter,\n private lmContextService: LMContextService\n ) {\n super(lmToolbarServiceAdapter);\n }\n\n public buildContextMenu(\n response: AjaxBeforeOpenResponseFunction,\n options: any,\n field: any,\n specField: LMSpecField,\n showCompact: boolean,\n fieldLabel: string,\n modelField: LMModelField,\n model: LMModel\n ) {\n const contextActions = this.getContextMenuActions(fieldLabel);\n\n if (options.hasOwnProperty('contextElement') && options.contextElement.length > 0) {\n // build drill around menu\n const menuElement = options.contextElement[0];\n const id = menuElement.getAttribute('id');\n\n if (id === contextActions.textVariables.actionReference.id) {\n const textVars = field.textVariables;\n let menuResponse = '';\n const subMenuButtons: Array = this.createToolbarMenuItemsFromTextVariables(textVars);\n\n for (let index = 0; textVars.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[index];\n menuResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n response(menuResponse);\n\n } else if (id === contextActions.drillAroundMenu.actionReference.id) {\n if (model.isCreateAction) {\n let menuResponse = '';\n const noActionMenu: LMToolbarButton = {\n actionReference: { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') },\n state: { disabled: false, visible: true }\n };\n\n menuResponse +=\n `
  • \n ${noActionMenu.actionReference.label}\n
  • `;\n\n response(menuResponse);\n\n } else {\n defer(async () => // defer returns an observable\n await this.buildDrillAroundMenu(field, model)\n )\n .subscribe((drillResponse: LMDrillResponse) => {\n let menuResponse = '';\n if (drillResponse.status === 'COMPLETED'\n && Array.isArray(drillResponse.drillPoints)\n && drillResponse.drillPoints.length > 0) {\n const actionRefs: Array = this.drillActionsToActionRefArray(drillResponse.drillPoints);\n const subMenuButtons: Array = this.createToolbarMenuItemsFromActionReferences(null, actionRefs);\n\n for (let index = 0; subMenuButtons.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[ index ];\n menuResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n\n } else {\n const noActionMenu: LMToolbarButton = {\n actionReference: { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') },\n state: { disabled: false, visible: true }\n };\n menuResponse +=\n `
  • \n ${noActionMenu.actionReference.label}\n
  • `;\n }\n response(menuResponse);\n });\n }\n }\n } else {\n let initialResponse = '';\n // only show Define if the field is definable, there is a value in the field, and we are not on a smartphone\n if (specField.definable && !modelField.isBlank && !(this.lmContextService.getUIType() === 'SMARTPHONE')) {\n const menuItem: LMToolbarButton = contextActions.define;\n const id: string = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n\n if (modelField.displayFieldHistory && !model.isCreateAction) {\n let menuItem: LMToolbarButton = contextActions.showHistory;\n let id: string = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n\n menuItem = contextActions.showPendingChanges;\n id = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
  • `;\n }\n\n if (specField.drillable) {\n const menuItem: LMToolbarButton = contextActions.drillAroundMenu;\n initialResponse +=\n `
  • \n ${menuItem.actionReference.label}\n
      \n
    • `;\n }\n\n if (field.textVariables) {\n // the ajax callback is assuming the id is on the ul. If you take the id off the ul, then the text variable replacement\n // submenu would no longer work\n const menuItem: LMToolbarButton = contextActions.textVariables;\n initialResponse +=\n `
    • \n ${menuItem.actionReference.label}\n
        \n
      • `;\n }\n\n if (specField.translatable && !model.isCreateAction) {\n const menuItem: LMToolbarButton = contextActions.translate;\n const id = menuItem.actionReference.id + 'Event';\n initialResponse +=\n `
      • \n ${menuItem.actionReference.label}\n
      • `;\n }\n response(initialResponse);\n }\n };\n\n private createToolbarMenuItemsFromTextVariables(textVariables: Array): Array {\n return textVariables.map(\n textVariable => {\n const actionRef: LMBusActionReference = {\n id: textVariable.id,\n label: textVariable.label,\n type: 'standard',\n };\n const toolbarButton: LMToolbarButton = {\n actionReference: actionRef,\n state: { disabled: null, visible: true }\n };\n return toolbarButton;\n });\n }\n\n private async buildDrillAroundMenu(field: any, model: LMModel) {\n const drillPoints: DrillPointsParams = { model, fieldId: field.bindId };\n return await this.lmToolbarServiceAdapter.lmDrillService.getFieldDrillPoints(drillPoints).toPromise();\n }\n\n private getContextMenuActions(fieldLabel: string): { [ key: string ]: LMToolbarButton } {\n return {\n drillAroundMenu: {\n actionReference: {\n id: AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON,\n type: 'standard',\n label: AppConstants.DRILL_AROUND_LABEL\n }, state: { disabled: false, visible: true }\n },\n showHistory: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_SHOWFIELDHISTORY,\n type: 'standard',\n label: Soho.Locale.translate('ShowFieldHistory')\n }, state: { disabled: false, visible: true }\n },\n showPendingChanges: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_SHOWPENDINGCHANGES,\n type: 'standard',\n label: Soho.Locale.translate('ShowPendingChanges')\n }, state: { disabled: false, visible: true }\n },\n hasCompactFormat: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_SHOWCOMPACTFORM,\n type: 'standard',\n label: fieldLabel\n }, state: { disabled: false, visible: true }\n },\n textVariables: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_TEXTVARIABLES,\n type: 'standard',\n label: Soho.Locale.translate('TextVariableReplacement')\n }, state: { disabled: false, visible: true }\n },\n define: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_DEFINE,\n type: 'standard',\n label: Soho.Locale.translate('Define')\n }, state: { disabled: false, visible: true }\n },\n translate: {\n actionReference: {\n id: AppConstants.FORM_CONTEXTMENUACTION_TRANSLATE,\n type: 'standard',\n label: Soho.Locale.translate('Translate')\n }, state: { disabled: false, visible: true }\n },\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport * as urltemplate from 'url-template';\n\n@Injectable()\nexport class LMFieldOptionsService {\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService\n ) {\n }\n\n /*\n * fieldId - the encoded field id of the field that is initiating the initial value request.\n * da*!/taView - the dataview for the record where the initial value is to be executed against.\n */\n public getFieldHistory(fieldId: string, dataView: LMDataView, formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec): Observable {\n const formRequestUrlTemplate = urltemplate.parse(formUrlInfo.formRequestUrl);\n const resourceId = dataView.resourceId + '.' + formSpec.busClassSpec.name;\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId });\n\n const postContent = {\n action: dataView.action,\n dataView,\n fieldId,\n requestType: 'fieldHistory'\n };\n\n return this.http\n .post(formRequestUrl, postContent).pipe(\n catchError(error => this.handleError(error)));\n }\n\n public getPendingChanges(fieldId: string, dataView: LMDataView, formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec): Observable {\n const formRequestUrlTemplate = urltemplate.parse(formUrlInfo.formRequestUrl);\n const resourceId = dataView.resourceId + '.' + formSpec.busClassSpec.name;\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId });\n\n const postContent = {\n action: dataView.action,\n dataView,\n fieldId,\n requestType: 'fieldPendingChanges'\n };\n\n return this.http\n .post(formRequestUrl, postContent).pipe(\n catchError(error => this.handleError(error)));\n }\n\n private handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","export * from './lm-simple-progress.component';\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\n\n@Component({\n selector: 'lm-simple-progress',\n templateUrl: './lm-simple-progress.component.html',\n styleUrls: ['./lm-simple-progress.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LMSimpleProgressComponent implements OnInit {\n\n @Input() lmProgressFieldData: LMProgressFieldData;\n\n public width: number;\n public displayValue: string;\n public title: string;\n public colorClass: string;\n public inverseClass = '';\n\n constructor(private lmCommonUtil: LMCommonUtilService) { }\n\n ngOnInit() {\n const color = this.lmCommonUtil.getRangeColor(this.lmProgressFieldData.ranges, Number(this.lmProgressFieldData.field.value), this.lmProgressFieldData.dataView)\n const rangeText = this.lmProgressFieldData.meterRangeValue ? this.lmProgressFieldData.meterRangeValue : '100';\n\n this.width = this.getWidth();\n this.displayValue = this.lmProgressFieldData.displayPercent ? this.lmProgressFieldData.value.toString() + '%' : this.lmProgressFieldData.value.toString();\n this.title = this.displayValue + ' of ' + rangeText;\n this.colorClass = 'lm-completed lm-' + color;\n\n if (this.width > 55) {\n this.inverseClass = 'lm-inverse';\n }\n }\n\n /**\n * Converts value to a percentage for bar width\n * @returns\n */\n private getWidth(): number {\n const rangeValue = this.lmProgressFieldData.meterRangeValue ? this.lmProgressFieldData.meterRangeValue : 100;\n const value = Number(this.lmProgressFieldData.field.value);\n\n if (this.lmProgressFieldData.field.value > 1) {\n return (value / rangeValue) * 100;\n } else if (this.lmProgressFieldData.field.value <= 1) {\n return value * 100;\n } else {\n return value;\n }\n }\n}\n","
        \n
        0\" class=\"{{colorClass}}\" [style.width.%]=\"width\">
        \n
        {{displayValue}}
        \n
        ","export * from './lm-text.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {LMFieldBaseComponent, LMFilterOperatorEvent} from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable, of } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nexport class LMTextEvent implements LMFieldEvent {\n layoutObject: LMButtonLayout;\n event: Event;\n eventType: LMFieldEventType;\n\n constructor(event: Event, layoutObject: LMButtonLayout) {\n this.eventType = 'TextLinkEvent';\n this.event = event;\n this.layoutObject = layoutObject;\n }\n}\n\nenum LMTextTypeDisplayEnum {\n PLAIN = 0,\n MASK,\n PLAIN_FORM_TEXT,\n HTTP_FORM_TEXT,\n DISPLAY_AS_TEXT,\n DISPLAY_AS_TAG\n}\n\n@Component({\n selector: 'lm-text',\n templateUrl: './lm-text.component.html',\n styleUrls: [ 'lm-text.component.scss' ]\n})\nexport class LMTextComponent extends LMFieldBaseComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @HostBinding('attr.type') get isPassword() {\n return (this.field.type === 'password') ? 'password' : 'text';\n }\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @HostBinding('class.lm-form-text-container') get hasFormTextChild() {\n return this.isFormText;\n }\n\n public hasRichTextVars = false;\n public filterSettings: Array;\n public launchButtonTooltip: string;\n public hasContextMenu$: Observable;\n public messageIcon: string = null;\n public iconUrl: string;\n public validSohoIcon: boolean;\n\n public displayType: LMTextTypeDisplayEnum;\n public layoutDisplayType = LMTextTypeDisplayEnum;\n\n private useNgModelChangedForMask = false;\n private ngModelChangedValue = undefined;\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n public elementRef: ElementRef,\n public lmThemeService: LMThemeService\n ) {\n super(lmFieldServiceAdapter);\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n if (!this.field.displayAsText) {\n this.hasContextMenu$ = of(this.insertContextMenu && !(this.isFormText && !this.field.hasHttpUrl));\n } else {\n this.hasContextMenu$ = this.model.modelChanged.pipe(\n startWith(!this.modelField.isBlank),\n map(() => !this.modelField.isBlank && this.insertContextMenu)\n );\n }\n\n this.launchButtonTooltip = Soho.Locale.translate('Launch');\n\n if (this.specField) {\n this.setNumberFormat();\n this.setSearchFieldNumberFormat();\n this.setSize();\n this.setFieldClasses();\n this.setType();\n }\n\n if (this.layoutObject.icon) {\n this.validSohoIcon = this.lmFieldServiceAdapter.lmThemeService.isValidSohoIcon(this.layoutObject.icon);\n\n this.messageIcon = this.layoutObject.icon;\n this.iconUrl = this.layoutObject.iconUrl;\n }\n\n if (!(this.displayAsText || this.displayAsTag || this.isFormText)) {\n this.subscribeToInlineError();\n }\n\n if (this.field.text && this.field.text.hasOwnProperty('hasRichTextVars')) {\n this.hasRichTextVars = true;\n }\n\n if (!this.displayAsText && !this.displayAsTag && !this.isFormText && !this.hasMask) {\n this.displayType = LMTextTypeDisplayEnum.PLAIN;\n\n } else if (!this.displayAsText && !this.displayAsTag && !this.isFormText && this.hasMask) {\n this.displayType = LMTextTypeDisplayEnum.MASK;\n this.useNgModelChangedForMask = true;\n this.modelField.filterType = this.modelField?.filterCriteria?.operator || 'equals';\n\n } else if (this.isFormText) {\n if (this.field.hasHttpUrl || this.layoutObject.linkNavigation) {\n this.displayType = LMTextTypeDisplayEnum.HTTP_FORM_TEXT;\n\n } else {\n this.displayType = LMTextTypeDisplayEnum.PLAIN_FORM_TEXT;\n }\n\n } else if (this.displayAsTag && !this.isCompoundFieldMember) {\n this.displayType = LMTextTypeDisplayEnum.DISPLAY_AS_TAG;\n\n } else if (this.displayAsText && !this.isCompoundFieldMember) {\n this.displayType = LMTextTypeDisplayEnum.DISPLAY_AS_TEXT;\n }\n\n this.setDefaultFieldStyle();\n\n if (this.layoutObject.textSearchable) {\n // There is an issue with SQL server that causes text searchable fields\n // to be starts with in the back end. However, we still want to send\n // the filterType back as contains in this case, so we have the correct\n // * on the values in the back end, and not use a like query. Ask\n // Joe Schreier for more information. This may be updated after\n // https://jira.lawson.com/browse/LMRK-113234 is compelete\n this.filterSettings = this.textSearchableSettings;\n this.modelField.filterType = this.modelField?.filterCriteria?.operator || 'contains';\n } else {\n this.filterSettings = this.alphaFilterSettings;\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n public onBlur(event) {\n // if not onSearchForm and hasFieldChanged, then field changed while it had focus - update the model\n // or is onSearchForm - update the model\n if ((!this.onSearchForm && this.hasFieldChanged) || this.onSearchForm) {\n\n // used to transform BCD and PERCENT types so they have trailing zeros before leaving the field\n this.updateModelField();\n }\n\n super.onBlur(event);\n }\n\n public onSearchKeypress(event) {\n // listen for enter key\n if (event.which === 13 && event.target.nodeName !== 'BUTTON') {\n\n // used to transform and store the BCD or PERCENT value before the onSearchClicked() event is executed\n this.updateModelField();\n }\n }\n\n public onNgModelChange(value) {\n // Fields need to format the value according to the type. For example, any trailing zeros are displayed or uppercase\n // place value into temporary location until the blur event is executed\n // value is then transformed into data format and placed into modelField.value\n this.ngModelChangedValue = value;\n }\n\n onFiltered(event: SohoFieldFilteredEvent) {\n super.onFiltered(event);\n if (this.onSearchForm) {\n this.updateModelField();\n }\n }\n\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n openCompactDialog(event) {\n this.onContextMenuEvent({ args: [ event.currentTarget ] });\n }\n\n private setDefaultFieldStyle() {\n if (!this.isCompoundFieldMember\n && (this.displayType === LMTextTypeDisplayEnum.DISPLAY_AS_TAG\n || this.displayType === LMTextTypeDisplayEnum.DISPLAY_AS_TEXT)) {\n\n if (this.specField && (this.specField.type === AppConstants.NUMERIC\n || this.specField.type === AppConstants.BCD || this.specField.type === AppConstants.PERCENT)) {\n if (!this.layoutObject.fieldStyle) {\n this.layoutObject.fieldStyle = {};\n }\n\n // force display as text or display as tag number fields to default left align\n if (!this.layoutObject.fieldStyle.align) {\n this.layoutObject.fieldStyle.align = 'left';\n }\n }\n }\n }\n\n private updateModelField() {\n if (this.ngModelChangedValue !== undefined) {\n let value = this.ngModelChangedValue;\n if (this.isUpperCase) {\n value = this.ngModelChangedValue.toUpperCase();\n }\n\n if (this.transformOptions.allowMultiSelections && this.onSearchForm) {\n const allowZero = this.specField.type === AppConstants.BCD ||\n this.specField.type === AppConstants.PERCENT ||\n this.specField.type === AppConstants.NUMERIC;\n const multiValue = this.lmFieldServiceAdapter.lmFormatUtilService.getMultipleFilterFieldValue(value, this.specField.type, this.modelField.precision, this.specField.decSize, allowZero);\n this.modelField.enteredFilterValue = multiValue.enteredFilterValue;\n this.modelField.value = multiValue.formattedFilterValue;\n } else {\n this.modelField.toDataValue(value, this.transformOptions);\n this.ngModelChangedValue = undefined;\n }\n\n // tell the control to check the dirty state\n if (!this.onSearchForm) {\n this.checkApplyState = true;\n this.runApplyState = true;\n }\n }\n }\n}\n","{{triggerValue| formatLabelRule:field:labelResourceValue:model:specFields}}\n\n\n \n \n \n \n \n \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n
        \n
        \n \n \n \n \n \n \"\"\n \n

        {{triggerValue | formatMessageRule:true:field.text:model:specFields}}\n

        \n
        \n
        \n
        \n
        \n \n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'right'\"\n [trigger]=\"'click'\"\n (click)=\"onCompoundFieldClickEvent($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\">\n \n \n \n\n \n \n \n \n
        \n
        \n \n \n \n \n \n \"\"\n \n

        {{triggerValue | formatMessageRule:true:field.text:model:specFields}}\n

        \n
        \n\n \n \n \n \n \n\n \n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}\n \n \n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

        \n
        \n\n \n
        \n
        \n
        \n \n\n \n
        \n
        \n\n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

        \n
        \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

        \n
        \n
        \n\n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

        \n
        \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

        \n
        \n
        \n\n\n \n \n \n\n","export * from './lm-textarea.component';\n","import { Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMContextService } from '@app/services';\n\nenum LMTextAreaTypeDisplayEnum {\n PLAIN = 0,\n DISPLAY_AS_TEXT,\n}\n\n@Component({\n selector: 'lm-textarea',\n templateUrl: './lm-textarea.component.html',\n styleUrls: [ 'lm-textarea.component.scss' ]\n})\nexport class LMTextareaComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n\n @ViewChild('Input', { read: ElementRef }) inputElement: ElementRef;\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n public rows: number = undefined;\n\n public displayType: LMTextAreaTypeDisplayEnum;\n public layoutDisplayType;\n public showBarCodeIcon = false;\n\n constructor(\n protected lmFieldServiceAdapter: LMFieldServiceAdapter,\n private lmContextService: LMContextService\n ) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMTextAreaTypeDisplayEnum;\n }\n\n // events\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n\n // see JFieldClobTextArea > DEFAULT_TEXTAREA_LINES\n this.rows = (this.layoutObject.lines === undefined || this.layoutObject.lines === 0) ? 4 : this.layoutObject.lines;\n\n if (this.specField.isLpl) {\n this._fieldClassArray.push('lm-monospace');\n }\n\n if (this.displayAsText) {\n this.displayType = this.layoutDisplayType.DISPLAY_AS_TEXT;\n this._fieldClassArray.push('lm-text-data hide-white-space');\n\n } else {\n this.displayType = this.layoutDisplayType.PLAIN;\n if (this.field.scannable && this.lmContextService.insideInforGo()) {\n this.showBarCodeIcon = true;\n }\n\n this.subscribeToInlineError();\n }\n\n this.setSize();\n this.setFieldClasses();\n\n // currently no options are needed\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n\n private getTextInputElement() {\n return (this.inputElement && this.inputElement.nativeElement)\n ? this.inputElement.nativeElement\n : this.inputElement && this.inputElement[ 'element' ].nativeElement\n // SohoInputComponent\n ? this.inputElement[ 'element' ].nativeElement\n : undefined;\n }\n\n public registerMessageHandlers() {\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n infor.companyon.client.unRegisterMessageHandler('mobile_shareQRCodeData');\n infor.companyon.client.registerMessageHandler('mobile_shareQRCodeData', (data: any) => {\n this.lmFieldServiceAdapter.ngZone.run(() => {\n if (data.data) {\n const scanResults = data.data;\n const inputElement = this.getTextInputElement();\n if (inputElement) {\n inputElement.focus();\n document.execCommand('insertText', false, scanResults);\n };\n }\n });\n });\n });\n }\n\n onBarCodeClick = () => {\n this.registerMessageHandlers();\n const data = { source: this.id, inputType: '1' };\n this.lmFieldServiceAdapter.ngZone.runOutsideAngular(() => {\n infor.companyon.client.sendMessage('mobile_showQRCodeScanner', data);\n });\n };\n}\n","\n\n \n \n

        {{modelField.value | formatMessageRule:true:field.text:model:specFields}}

        \n \n \n \n
        \n\n\n\n \n \n \n\n\n","export * from './lm-time.component';\n","import { Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport { LMModel } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { AppConstants, LMTimeStampDirective } from '@utils/index';\n\nenum LMTimeTypeDisplayEnum {\n PLAIN = 0,\n DISPLAY_AS_TEXT,\n DISPLAY_AS_TAG\n}\n\n@Component({\n selector: 'lm-time',\n templateUrl: './lm-time.component.html',\n styleUrls: [ 'lm-time.component.scss' ]\n})\nexport class LMTimeComponent extends LMFieldBaseComponent implements OnInit, OnDestroy {\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n\n @HostBinding('attr.class') hostClass = 'field';\n\n @HostBinding('attr.data-automation-id') get dataFieldAutomationId() {\n return `lm-${this.fieldAutomationId}-field`;\n }\n\n // TODO: soho-timepicker.component should be modified to have an options object\n public timeFormat: string = undefined;\n public mode: string = undefined;\n public minuteInterval: number = undefined;\n public secondInterval: number = undefined;\n\n public displayType: LMTimeTypeDisplayEnum;\n public layoutDisplayType;\n private passTimeStampValue = false;\n\n constructor(protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n this.layoutDisplayType = LMTimeTypeDisplayEnum;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.setOptions();\n\n if (this.displayAsTag && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.DISPLAY_AS_TAG;\n\n } else if (this.displayAsText && !this.isCompoundFieldMember) {\n this.displayType = this.layoutDisplayType.DISPLAY_AS_TEXT;\n\n } else {\n this.subscribeToInlineError();\n this.displayType = this.layoutDisplayType.PLAIN;\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n public onNgModelChange(value) {\n if (this.passTimeStampValue) {\n this.transformOptions.timeStampDataValue = this.modelField.value;\n }\n\n this.modelField.toDataValue(value, this.transformOptions);\n }\n\n // private methods\n private setOptions() {\n // TODO: soho-timepicker.component should be modified to have an options object\n this.mode = 'standard';\n\n // default format - full time\n this.timeFormat = Soho.Locale.calendar().dateFormat.timestamp;\n\n if (this.lmFieldServiceAdapter.lmFieldLayoutService.hasLimitToMinuteIncrements(this.field, this.specField)) {\n this.timeFormat = Soho.Locale.calendar().timeFormat;\n this.minuteInterval = this.layoutObject.limitToMinuteIncrements;\n } else {\n this.minuteInterval = 1;\n this.secondInterval = 1;\n }\n\n if (this.timeStampDirective === LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES) {\n // supported for TimeStamp and Time types\n this.timeFormat = Soho.Locale.calendar().timeFormat;\n this.passTimeStampValue = (this.specField.type === AppConstants.TIMESTAMP);\n\n } else if (this.timeStampDirective === LMTimeStampDirective.DISPLAY_TIME) {\n // supported for TimeStamp type only\n // uses default format\n this.passTimeStampValue = (this.specField.type === AppConstants.TIMESTAMP);\n }\n }\n\n onTimeChange() {\n if (!this.hasFieldChanged) {\n // came back from the picker - user did not type in the input\n // lm-field-base has a change host listener that is\n // handling user input (typing in a value)\n this.onChange();\n this.handleOnFieldChanged();\n }\n }\n\n contextMenuClicked = ($event) => {\n this.onContextMenuEvent($event);\n }\n}\n","\n\n\n \n \n \n \n \n \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n \n \n
        \n \n \n 1)\"\n soho-tooltip\n [popover]=\"true\"\n [title]=\"popoverTitle\"\n [placement]=\"'right'\"\n [trigger]=\"'click'\"\n (contextmenu)=\"onContextMenu($event)\"\n (focusin)=\"onFieldFocus($event)\"\n (focusout)=\"onFieldBlur($event)\">\n \n \n \n
        \n \n
        \n
        \n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}\n \n\n \n

        {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

        \n\n \n \n
        \n
        \n
        \n \n
        \n
        \n\n\n \n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:field.text:model:specFields}}

        \n
        \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

        \n
        \n
        \n\n\n \n {{modelField.value | toDisplayValue:specField:transformOptions | formatMessageRule:true:layoutObject.title:model:specFields}}

        \n
        \n \n {{triggerValue | formatMessageRule:false:labelResourceValue:model:specFields}}

        \n
        \n
        \n\n\n \n \n \n\n","export * from './lm-trackdirty.directive';\n","import {\n Directive,\n HostBinding,\n Input,\n OnInit\n} from '@angular/core';\n\n@Directive({\n selector: '[soho-trackdirty]'// tslint:disable-line\n})\n\nexport class LMTrackDirtyDirective implements OnInit {\n @Input() searchForm: boolean;\n // No track dirty for search form\n @HostBinding('attr.data-trackdirty') get trackDirtyAttr() {\n return !this.searchForm;\n };\n\n ngOnInit() {\n\n }\n}\n","export * from './layout';\nexport * from './model';\nexport * from './services';\n\nexport * from './lm-form.model';\nexport * from './lm-form.component';\nexport * from './lm-form-content.component';\nexport * from './lm-form-content-composite.component';\nexport * from './lm-form-content-form.component';\nexport * from './lm-form-content-instance-count.component';\nexport * from './lm-form-content-matrix.component';\nexport * from './lm-form-content-manual-representation.component';\nexport * from './lm-form-content-menu.component';\nexport * from './lm-form-content-search.component';\nexport * from './lm-form-content-stepprocess.component';\nexport * from './lm-form-content-template.component';\nexport * from './lm-form-manual-rep.service';\nexport * from './lm-form-panel-dashboard.component';\nexport * from './lm-form-panel-form.component';\nexport * from './lm-form-panel-list.component';\nexport * from './lm-form-panel-multilist.component';\nexport * from './lm-form-panel-notfound.component';\nexport * from './lm-form-panel-template.component';\nexport * from './lm-template-form-record.component';\nexport * from './lm-form-panel-text.component';\nexport * from './lm-form-panel-actionis.component';\nexport * from './lm-form-panel-independentform.component';\nexport * from './lm-form-panel-url.component';\n","export * from './lm-blankline.component';\nexport * from './lm-columns-distributed.component';\nexport * from './lm-columns-grid.component';\nexport * from './lm-columns-table.component';\nexport * from './lm-columns-undistributed.component';\nexport * from './lm-columns-image-first-column.component';\nexport * from './lm-columns-percent.component';\nexport * from './lm-element-layout.component';\nexport * from './lm-field-layout.component';\nexport * from './lm-form-layout.component';\nexport * from './lm-header.component';\nexport * from './lm-paragraph-layout.component';\nexport * from './lm-layout-util.directive';\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector : 'div[lm-blankline]', // tslint:disable-line\n template: ''\n})\n\nexport class LMBlankLineComponent {\n // IF IE set height to match field heights, blank lines in IE do not span multiple columns\n @HostBinding('style.height') height = '1px';\n @HostBinding('class.lm-blankline') lmBlankLineClass = true;\n}\n","import { LMModel } from '@form/model';\nimport {EventEmitter, Input, OnInit, Output, Directive, HostBinding, AfterViewInit} from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLoggerService } from '@app/services';\n\nexport enum LMElementLayoutType {\n FIELD = 0,\n CHECK_CONTROL,\n HEADER,\n PARAGRAPH,\n BUTTON,\n BLANK,\n TEXT,\n MENU\n}\n\n@Directive()\nexport abstract class LMColumnsBaseComponent implements OnInit, AfterViewInit {\n public readonly instanceId: string;\n\n @Input() layoutObject: LMFormLayoutSection;\n @Input() specFields: any;\n @Input() model: LMModel;\n @Input() placeHolder: any;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() parentIsModal: boolean;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @HostBinding('class.lm-column-layout') lmColumnLayout = true;\n @HostBinding('class.lm-summary-form') get lmSummaryForm() {\n return this.lmColumnLayoutInfo?.sectionInfo?.isSummaryFormSection;\n }\n @HostBinding('class.lm-number-label-section') get lmNumberLabelSection() {\n return this.lmColumnLayoutInfo?.sectionInfo?.sectionHasNumberLabel;\n }\n @HostBinding('class.lm-no-label-section') get lmNoLabelSection() {\n return this.lmColumnLayoutInfo?.sectionInfo?.isNoLabelSection;\n }\n\n protected constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService\n ) {\n this.subLayoutType = LMElementLayoutType;\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: `Total-Column-Layout-${this.instanceId}`,\n description: 'TOTAL COLUMN LAYOUT',\n functionName: 'ngOnInit()',\n className: 'LMColumnsBaseComponent',\n timingStart: 'LMColumnsBaseComponent -> ngOnInit()',\n timingEnd: 'LMColumnsBaseComponent -> ngAfterViewInit()',\n });\n }\n\n this.lmColumnLayoutInfo.nbrColumns = this.layoutObject.nbrColumns;\n }\n\n ngAfterViewInit() {\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.timeEnd(`Total-Column-Layout-${this.instanceId}`);\n }\n }\n\n public columns: Array;\n public rows: Array;\n subLayoutType;\n\n public onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n public getType(element): string {\n return 'elementLayout.element' + Object.keys(element)[ 0 ].toString();\n }\n\n public getLayoutObject(element) {\n if (element) {\n return element[ Object.keys(element)[ 0 ] ];\n }\n\n return null;\n }\n\n public trackByIndex(index: number, column: LMFormLayoutColumn): number {\n return column.index;\n }\n\n public updateImplicitColumns() {\n if (this.lmFormLayoutService.columnsAreImplicit(this.layoutObject)) {\n const columns: Array = this.lmFormLayoutService.buildImplicitColumns(this.layoutObject, this.model);\n\n // convert to string to compare for differences; if different, then use Date.now() to\n // have a unique number for the column.index so that trackBy will re-create the dom\n columns.forEach((column, index) => {\n const newColumnJson = JSON.stringify(column);\n const currentColumnJson = JSON.stringify(this.columns[index]);\n\n if (currentColumnJson !== newColumnJson) {\n column.index = Date.now();\n }\n });\n\n this.columns = [].concat(columns);\n }\n }\n\n}\n","import { Component, HostBinding, OnInit } from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMColumnsBaseComponent } from './lm-columns-base.component';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-distributed',\n templateUrl: 'lm-columns-distributed.component.html',\n styleUrls: [ 'lm-columns-distributed.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\nexport class LMColumnsDistributedComponent extends LMColumnsBaseComponent implements OnInit {\n\n @HostBinding('class.lm-single-column') isSingleColumn = false;\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n // Set columns for template\n if (this.lmFormLayoutService.columnsAreImplicit(this.layoutObject)) {\n this.columns = this.lmFormLayoutService.buildImplicitColumns(this.layoutObject, this.model);\n } else {\n this.layoutObject.columns.forEach((column, i) => {\n column.index = i;\n });\n this.columns = this.layoutObject.columns;\n }\n\n if (this.layoutObject.nbrColumns === 1) {\n this.isSingleColumn = true;\n }\n }\n}\n","\n
        \n \n
        \n
        \n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n HostBinding, Input,\n NgZone,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { LMColumnsBaseComponent } from './lm-columns-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-grid',\n templateUrl: './lm-columns-grid.component.html',\n styleUrls: [ './lm-columns-grid.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\n\nexport class LMColumnsGridComponent extends LMColumnsBaseComponent implements OnInit, AfterViewChecked {\n public gridRows: Array;\n private columnWidths = new Map();\n private minWidthSet = false;\n\n @Input() set activatedTabChanged(activatedTabChanged) {\n\n if (activatedTabChanged !== undefined && this.elements !== undefined && this.elements.length > 0) {\n this.initColumnWidthMap();\n this.setMinColumnWidth();\n }\n }\n\n @ViewChildren('LMGridElement') elements: QueryList;\n\n @HostBinding('class.lm-grid-distributed') distributed = false;\n @HostBinding('class.lm-grid-undistributed') undistributed = false;\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService,\n private ngZone: NgZone,\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.lmColumnLayoutInfo.distributed) {\n this.distributed = true;\n } else {\n this.undistributed = false;\n }\n\n if (this.layoutObject.explicit) {\n this.gridRows = this.setExplicitGridRows();\n } else {\n this.gridRows = this.setImplicitGridRows();\n }\n\n this.initColumnWidthMap();\n }\n\n ngAfterViewChecked() {\n if (this.elements.toArray().length > 0 && !this.minWidthSet) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.setMinColumnWidth();\n this.minWidthSet = true;\n }, 1);\n });\n }\n }\n\n private setMinColumnWidth() {\n const elements = this.elements.toArray();\n elements.forEach((element) => {\n const colIndex = Number(element.nativeElement.getAttribute('colindex'));\n const width = this.columnWidths.get(colIndex);\n const elementWidth = Math.floor(element.nativeElement.getBoundingClientRect().width);\n let isParagraph;\n\n if (element.nativeElement.children[0] && element.nativeElement.children[0].nodeName === 'LM-PARAGRAPH') {\n isParagraph = true;\n }\n\n if ((width === null || elementWidth > width) && !isParagraph) {\n this.columnWidths.set(colIndex, elementWidth);\n }\n\n if (isParagraph) {\n // lm-paragraph -> div.compound-field -> \n const paragraphFields = element.nativeElement.children[0].children[0].children;\n Array.from(paragraphFields).forEach((el: HTMLElement) => {\n const elWidth = el.getBoundingClientRect().width;\n\n if (width === null || elWidth > width) {\n this.columnWidths.set(colIndex, elWidth + 20);\n }\n });\n }\n\n if (isParagraph && colIndex !== this.layoutObject.nbrColumns) {\n element.nativeElement.style.maxWidth = this.distributed ? '' : `${this.columnWidths.get(colIndex)}px`;\n } else {\n element.nativeElement.style.minWidth = this.distributed ? '' : `${this.columnWidths.get(colIndex)}px`;\n }\n\n if (this.distributed) {\n element.nativeElement.style.width = `${Math.floor(100 / this.layoutObject.nbrColumns)}%`;\n }\n });\n }\n\n private initColumnWidthMap() {\n for (let i = 0, l = 12; i < l; i++) {\n this.columnWidths.set(i, null);\n }\n }\n\n private setExplicitGridRows(): Array {\n const gridRows = [];\n let nbrOfRows = 1;\n let colIndex = 0;\n\n this.layoutObject.columns.forEach((column: LMFormLayoutColumn) => {\n nbrOfRows = column.elements.length > nbrOfRows ? column.elements.length : nbrOfRows;\n });\n\n for (let i = 0, l = nbrOfRows; i < l; i++) {\n gridRows.push({ elements: [] });\n }\n\n this.layoutObject.columns.forEach((column: LMFormLayoutColumn) => {\n column.elements.forEach((element: LMFormLayoutElement, index) => {\n element.colIndex = colIndex;\n element.class = `lm-grid-element lm-grid-col-${this.layoutObject.nbrColumns}`;\n gridRows[index].elements.push(element);\n });\n\n colIndex++;\n });\n\n return gridRows;\n }\n\n private setImplicitGridRows(): Array {\n const nbrColumns = this.layoutObject.nbrColumns;\n\n const gridRows = [];\n const elements: Array = this.getElements();\n const nbrOfElements = elements.length;\n const nbrOfRows = this.getNumberOfRows(nbrOfElements);\n let rowIndex = 0;\n\n for (let i = 0, l = nbrOfRows; i < l; i++) {\n gridRows.push({ elements: [] });\n }\n\n elements.forEach((element, index) => {\n gridRows[rowIndex].elements.push(element);\n element.colIndex = gridRows[rowIndex].elements.length;\n element.class = `lm-grid-element lm-grid-col-${nbrColumns}`;\n\n if (index !== 0 && ((index + 1) % nbrColumns === 0)) {\n rowIndex++;\n }\n });\n\n return gridRows;\n }\n\n private getElements(): Array {\n const elements = [];\n this.layoutObject.columns.forEach((column) => {\n column.elements.forEach((element) => elements.push(element));\n });\n\n return elements;\n }\n\n private getNumberOfRows(nbrOfElements: number): number {\n const quotient = nbrOfElements / this.layoutObject.nbrColumns;\n const hasRemainder = nbrOfElements / this.layoutObject.nbrColumns % 1 !== 0;\n\n return hasRemainder ? Math.floor(quotient + 1) : quotient;\n }\n}\n","
        \n
        \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n
        \n
        \n
        \n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n
        \n
        \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { LMColumnsBaseComponent } from './lm-columns-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-image-first-column',\n templateUrl: 'lm-columns-image-first-column.component.html',\n styleUrls: [ './lm-columns-image-first-column.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\n\nexport class LMColumnsImageFirstColumnComponent extends LMColumnsBaseComponent implements OnInit, OnDestroy {\n\n private subscribers = [];\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n }\n\n public columns: Array;\n public imageColumn: Array = [];\n\n ngOnInit() {\n super.ngOnInit();\n\n this.imageColumn.push(this.layoutObject.columns[0]);\n this.imageColumn.forEach((column, i) => {\n column.index = i;\n });\n\n this.layoutObject.columns.shift();\n\n this.layoutObject.columns.forEach((column, i) => {\n column.index = i;\n });\n this.columns = this.layoutObject.columns;\n }\n\n ngOnDestroy() {\n this.subscribers.forEach(subscription => subscription.unsubscribe());\n }\n}\n","
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n","import { AfterViewInit, Component, HostBinding, HostListener, NgZone, OnInit } from '@angular/core';\nimport { LMColumnsBaseComponent } from './lm-columns-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-percent',\n templateUrl: 'lm-columns-percent.component.html',\n styleUrls: [ 'lm-columns-percent.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\n\nexport class LMColumnsPercentComponent extends LMColumnsBaseComponent implements OnInit, AfterViewInit {\n\n @HostBinding('style.width.px') hostWidth: string;\n @HostListener('window:resize') onResize() {\n this.setHostWidth();\n }\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService,\n private ngZone: NgZone,\n private lmLayoutUtil: LMLayoutUtilDirective\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n }\n\n ngOnInit() {\n // Set columns for template\n if (this.layoutObject.nbrColumns > 1 && this.layoutObject.columns.length === 1) {\n this.columns = this.lmFormLayoutService.buildImplicitColumns(this.layoutObject, this.model);\n } else {\n this.layoutObject.columns.forEach((column, i) => {\n column.index = i;\n });\n this.columns = this.layoutObject.columns;\n }\n }\n\n ngAfterViewInit() {\n // Sets width of table on initial load\n // Add horizontal scroll to table if viewport is to small\n this.ngZone.runOutsideAngular( () => {\n setTimeout(() => {\n this.setHostWidth();\n }, 1);\n });\n }\n\n private setHostWidth() {\n if (this.parentIsModal) {\n return;\n }\n\n this.hostWidth = this.lmLayoutUtil.getParentWidth();\n }\n}\n","
        \n
        \n \n
        \n
        \n\n","import {\n Component,\n HostBinding,\n NgZone,\n OnInit,\n} from '@angular/core';\nimport { LMColumnsBaseComponent } from './lm-columns-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-table',\n templateUrl: 'lm-columns-table.component.html',\n styleUrls: [ 'lm-columns-table.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\n\nexport class LMColumnsTableComponent extends LMColumnsBaseComponent implements OnInit {\n\n @HostBinding('style.width.px') hostWidth: string;\n @HostBinding('class.is-compact-form-layout') useCompactFormLayout: boolean;\n @HostBinding('class.is-in-dashboard') isInDashboard: boolean;\n\n public rows = [];\n public rowHeaders = [];\n public columnHeaders: Array = [];\n public distributed: boolean;\n public nbrColumns: number;\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService,\n private ngZone: NgZone,\n private lmLayoutUtil: LMLayoutUtilDirective,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.build();\n\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n this.isInDashboard = (this.lmColumnLayoutInfo && this.lmColumnLayoutInfo.isInDashboard) ? this.lmColumnLayoutInfo.isInDashboard : null;\n }\n\n private build() {\n this.distributed = this.layoutObject.distributed;\n this.nbrColumns = this.layoutObject.nbrColumns;\n\n if (this.layoutObject.rowHeaders) {\n this.rowHeaders = this.layoutObject.rowHeaders.map(this.formatHeaders, this);\n }\n\n if (this.layoutObject.columnHeaders) {\n this.layoutObject.columnHeaders.forEach((column, i) => {\n column.index = i;\n });\n\n this.columnHeaders = this.layoutObject.columnHeaders.map(this.formatHeaders, this);\n }\n\n if (this.rowHeaders && this.layoutObject.rows) {\n const rows = [...this.layoutObject.rows].map((row, i) => {\n // Add table header to beginning of the row if it does not already exist\n if (row.elements.length > 0 && row.elements[0].tableHeader === undefined && this.rowHeaders.length !== 0) {\n row.elements.unshift(this.rowHeaders[i]);\n }\n\n row.index = i;\n\n return row;\n });\n\n this.rows = rows;\n } else {\n this.layoutObject.rows.forEach((row, i) => {\n row.index = i;\n });\n this.rows = this.layoutObject.rows;\n }\n }\n\n private formatHeaders(header) {\n if (header && header.tableHeader && header.tableHeader.text && header.tableHeader.text.variables) {\n const messageRule = header.tableHeader.text;\n header.tableHeader.text.resourceValue = this.lmFormatUtilService.formatMessageRule(messageRule, this.model, this.specFields);\n }\n return header;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{h?.tableHeader?.text?.resourceValue}}
        {{element.tableHeader?.text?.resourceValue}}\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
        \n
        \n\n \n \n \n\n \n \n \n
        \n","import { Component, Input, OnInit } from '@angular/core';\nimport { LMColumnsBaseComponent, LMElementLayoutType } from './lm-columns-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormLayoutService } from '@form/services/lm-form-layout.service';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMLoggerService } from '@app/services';\n\n@Component({\n selector: 'lm-columns-undistributed',\n templateUrl: 'lm-columns-undistributed.component.html',\n styleUrls: [ 'lm-columns-undistributed.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\n\nexport class LMColumnsUndistributedComponent extends LMColumnsBaseComponent implements OnInit {\n\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmFormLayoutService: LMFormLayoutService,\n protected lmLoggerService: LMLoggerService,\n ) {\n super(lmConditionUtilService, lmFormLayoutService, lmLoggerService);\n this.subLayoutType = LMElementLayoutType;\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.lmFormLayoutService.columnsAreImplicit(this.layoutObject)) {\n this.columns = this.lmFormLayoutService.buildImplicitColumns(this.layoutObject, this.model);\n } else {\n this.columns = this.layoutObject.columns;\n }\n }\n\n public onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n}\n","
        \n \n
        \n","import { Component, EventEmitter, Input, OnInit, Output, ViewContainerRef } from '@angular/core';\nimport { LMModel } from '@form/model';\n\nenum LMElementLayoutType {\n FIELD = 0,\n CHECK_CONTROL,\n HEADER,\n PARAGRAPH,\n BUTTON,\n BLANK,\n TEXT,\n MENU,\n MANUAL_REPRESENTATION\n}\n\n@Component({\n selector: 'lm-element',\n templateUrl: './lm-element-layout.component.html',\n styleUrls: [ './lm-element-layout.component.scss' ]\n})\nexport class LMElementLayoutComponent implements OnInit {\n @Input() layoutObject: LMFormLayoutElements;\n @Input() specFields: LMSpecFields;\n @Input() placeHolder: ViewContainerRef;\n @Input() model: LMModel;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n public elements: Array;\n layoutType;\n\n constructor() {\n this.layoutType = LMElementLayoutType;\n }\n\n ngOnInit() {\n this.elements = this.layoutObject.elements;\n\n if (this.elements === undefined) {\n return;\n }\n\n this.elements.forEach((element: LMFormLayoutElement, i) => {\n element.index = i;\n if (element.field) {\n element.elementLayout = this.layoutType.FIELD;\n\n } else if (element.checkcontrol) {\n element.elementLayout = this.layoutType.CHECK_CONTROL;\n\n } else if (element.header) {\n element.elementLayout = this.layoutType.HEADER;\n\n } else if (element.paragraph) {\n element.elementLayout = this.layoutType.PARAGRAPH;\n\n } else if (element.button) {\n element.elementLayout = this.layoutType.BUTTON;\n\n } else if (element.Blank) {\n element.elementLayout = this.layoutType.BLANK;\n\n } else if (element.text) {\n element.elementLayout = this.layoutType.TEXT;\n\n } else if (element.menu) {\n element.elementLayout = this.layoutType.MENU;\n\n } else if (element.manualrep) {\n element.elementLayout = this.layoutType.MANUAL_REPRESENTATION;\n\n } else if (element.captchaControl) {\n element.elementLayout = this.layoutType.CAPTCHA_CONTROL;\n }\n });\n }\n\n public onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n public trackByIndex(index: number, element: LMFormLayoutElement): number {\n return element.index;\n }\n}\n","\n \n\n \n \n \n \n \n\n \n \n \n \n \n\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n
        \n
        \n
        \n\n \n \n \n \n \n\n \n \n \n
        \n
        \n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { LMModel, LMModelField } from '@form/model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMLayoutType } from '@field/services';\n\n@Component({\n selector: 'lm-field',\n templateUrl: './lm-field-layout.component.html',\n styles: [\n `\n /*Override SOHO field margin bottom */\n /*Margin bottom is on the nested component (lm-text, ect..) for example */\n :host {margin-bottom: 0 !important;}\n `\n ]\n})\nexport class LMFieldLayoutComponent implements OnInit {\n\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() placeHolder: any;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo;\n @Input() parentCompoundFieldDisplayOnly: boolean;\n @Input() parentIsFormLayout: boolean;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() errorOnMemberField: EventEmitter = new EventEmitter();\n\n @HostBinding('class.dropdown-member-field') get parentIsCompoundField() {\n if (this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.isCompoundField) {\n return this.layoutType === LMLayoutType.DROPDOWN;\n }\n }\n\n /**\n * Set vertical alignment in a paragraph layout\n * This is needed to properly align certain fields such as checkbox and progress bar\n * see FormLayoutParagraphExamples in UITEST for examples\n */\n @HostBinding('style.vertical-align') get verticalAlign() {\n let align = null;\n const label = this.field.label as LMLabelLayout;\n const isNoLabel = label ? label.nolabel : false;\n\n if ((this.lmParagraphLayoutInfo && this.lmParagraphLayoutInfo.parentIsParagraphLayout && !this.lmParagraphLayoutInfo.isCompoundField)\n && ((this.layoutType === LMLayoutType.CHECKBOX && isNoLabel)\n || this.layoutType === LMLayoutType.PROGRESS)\n ) {\n align = 'bottom';\n }\n\n if (this.lmFieldServiceAdapter.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout) {\n // Was already set by previous check\n if (align !== null) {\n return align;\n }\n\n align = this.layoutType === LMLayoutType.RADIO || this.field.tagStyle ? 'top' : null;\n // align = this.layoutType === LMLayoutType.DROPDOWN || this.layoutType === LMLayoutType.MULTI_SELECT ? 'top' : null;\n }\n\n return align;\n }\n\n @HostBinding('class.lm-compound-field-wrapper') get fieldIsCompactFormatWrapperClass() {\n return this.specField ? (this.specField && this.specField.compactFormat) : false;\n }\n\n @HostBinding('class.lm-compact-format-by-form-wrapper') get compactFormatByFormWrapperClass() {\n return (this.field && this.field.type) ? this.field.type === 'compactFormatByForm' : false;\n }\n\n @HostBinding('class.lm-checkbox-field') get checkboxFieldClass() {\n return (this.layoutType && this.layoutType === LMLayoutType.CHECKBOX);\n }\n\n @HostBinding('class.lm-number-label-field-container') numberLabelFieldContainerClass = false;\n\n public field: LMFormLayoutField;\n public specField: LMSpecField;\n public hasFieldLayout = false;\n public fieldLayout: LMFormLayout;\n public layoutEnum;\n public layoutType: LMLayoutType;\n public mutexSpecField = null;\n\n constructor(\n public elementRef: ElementRef,\n private lmLoggerService: LMLoggerService,\n @Inject(forwardRef(() => LMFieldServiceAdapter)) private lmFieldServiceAdapter, // LMFieldServiceAdapter,\n ) {\n this.layoutEnum = LMLayoutType;\n }\n\n private setMutexFieldLayout(fieldId: string) {\n const mutexField: LMModelField = this.model.getField(fieldId);\n if (mutexField == null) {\n this.lmLoggerService.log('Unable to obtain mutexFieldId: bindId = ' + fieldId);\n return null;\n }\n const mutexFieldId = mutexField.mutexFieldId;\n const mutexSpecField = this.specFields[ mutexFieldId ];\n if (mutexSpecField == null) {\n this.lmLoggerService.log('Unable to obtain mutexSpecField: mutexFieldId = ' + mutexFieldId);\n return null;\n }\n\n const innerMutexField = this.getMutexFieldForLayout(mutexFieldId, mutexSpecField.layout);\n // LMCLIENT-29463 - patterned to 3.5 landmarkForm.buildField()\n // overwrite the specfield's label with the mutexField label.\n if (innerMutexField) {\n if (this.field.label) {\n innerMutexField.label = this.field.label;\n }\n\n if (this.field.visibility) {\n innerMutexField.visibility = this.field.visibility;\n }\n }\n if (mutexSpecField.layout) {\n this.hasFieldLayout = true;\n this.fieldLayout = mutexSpecField.layout;\n } else {\n this.layoutType = this.lmFieldServiceAdapter.lmFieldLayoutService.specFieldToLayoutType(mutexSpecField);\n }\n\n this.mutexSpecField = mutexSpecField;\n }\n\n private getMutexFieldForLayout(bindId: string, layout: LMFormLayout): any {\n if (!layout) {\n return null;\n }\n const sections = layout.sections as any;\n if (!sections) {\n return null;\n }\n for (let i = 0, layoutLen = sections.length; i < layoutLen; i++) {\n if (sections[i].columns) {\n const column = sections[i].columns;\n\n if (Array.isArray(column)) {\n for (let j = 0, columnLen = column.length; j < columnLen; j++) {\n if (column[j].elements) {\n const element = column[j].elements;\n\n for (let k = 0, elementLen = column.length; k < elementLen; k++) {\n if (element[k].field) {\n const field = element[k].field;\n if (bindId === field.bindId) {\n return field;\n }\n }\n }\n }\n }\n } else {\n if (column.elements) {\n const element = column.elements;\n for (let l = 0, elementLen = element.length; l < elementLen; l++) {\n if (element[l].field) {\n const field = element[l].field;\n if (bindId === field.bindId) {\n return field;\n }\n }\n }\n }\n }\n }\n }\n return null;\n }\n\n ngOnInit() {\n this.field = this.layoutObject;\n\n if (this.field.implementsMutuallyExclusive) {\n this.setMutexFieldLayout(this.field.bindId);\n // no need to continue, the template\n // will process mutex field layout which will add the\n // mutex field(s) to the form.\n return;\n }\n\n this.specField = (this.field.bindId !== undefined)\n ? this.specFields[ this.field.bindId ]\n : null;\n\n this.layoutType = this.lmFieldServiceAdapter.lmFieldLayoutService.getLayoutType(this.field, this.specField, this.model, this.lmParagraphLayoutInfo);\n\n if (this.field.numberLabel) {\n this.numberLabelFieldContainerClass = this.field.numberLabel;\n }\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n onMemberFieldError(event) {\n this.errorOnMemberField.emit(event);\n }\n}\n","\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import {\n AfterViewInit,\n Component,\n EventEmitter, HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { LMModel, LMModelChangedEvent } from '@form/model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMContextService, LMLoggerService } from '@services/index';\nimport { LMColumnsUndistributedComponent } from './lm-columns-undistributed.component';\nimport * as _ from 'lodash';\nimport { LMColumnsDistributedComponent } from './lm-columns-distributed.component';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMFormLayoutService, LMFormService, LMFormSpecUtilService } from '@form/services';\nimport { LMFieldLayoutService } from '@field/services';\nimport { LMGlobalPersonalizationService } from '@states/services';\n\nenum LMSectionLayoutType {\n FORM_REF = 0,\n NO_FORM_REF,\n BUTTON\n}\n\nenum LMSectionType {\n COLUMN = 0,\n HEADER,\n FIELD,\n TEXT,\n PARAGRAPH,\n CAPTCHA_CONTROL\n}\n\nenum LMSectionColumnLayoutInfoType {\n DISTRIBUTED_NO_FIRST = 0,\n UNDISTRIBUTED,\n IMAGE_IN_FIRST_COLUMN,\n IS_TABLE,\n IS_PERCENT,\n IS_GRID\n}\n\n@Component({\n selector: 'lm-form-layout',\n templateUrl: './lm-form-layout.component.html',\n styleUrls: [ 'lm-form-layout.component.scss' ],\n providers: [ LMFieldServiceAdapter, LMFieldLayoutService, LMFormLayoutService ]\n})\nexport class LMFormLayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n\n // formSpec doesn't always come in as a LMFormSpec, can sometimes be LMBusFormSpec\n @Input() formSpec;\n @Input() formOptions: LMFormOptions = null;\n @Input() layoutInfo: LMFormLayoutInfo = {};\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n @Input() activatedTabChanged: boolean;\n @Input() parentIsModal: boolean;\n\n @Output() dataViewLoaded: EventEmitter = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n @ViewChildren(LMColumnsUndistributedComponent) lmColumnsUndistributed: QueryList;\n @ViewChildren(LMColumnsDistributedComponent) lmColumnsDistributed: QueryList;\n\n @HostBinding('class.form-layout-compact') @Input() useCompactFormLayout: boolean;\n @HostBinding('class.lm-display-type-is-smartphone') displayTypeIsSmartPhone: boolean;\n @HostBinding('style.height') get hostHeight(){\n return this.isInDashboard() ? 'auto' : '100%';\n };\n\n public lmColumnLayoutInfo: LMColumnLayoutInfo = {\n isTable: false,\n isExplicit: false,\n distributed: false,\n grid: false,\n independent: false,\n isPercent: false,\n imageInFirstColumn: false,\n parentIsCompoundField: false,\n isInDashboard: false,\n sectionInfo: null\n };\n\n public sectionLayoutType;\n public sectionType;\n public sectionColumnLayoutType;\n public originalCompactFieldLayout: LMCompoundFieldLayout;\n public sectionInfo: LMFormSectionInfo;\n public isActionForm: boolean;\n\n private readonly instanceId: string;\n private subscriptionArray: Array = [];\n\n constructor(\n private lmConditionUtilService: LMConditionUtilService,\n private lmLoggerService: LMLoggerService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmFormService: LMFormService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmContextService: LMContextService,\n private lmFormLayoutService: LMFormLayoutService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n this.sectionLayoutType = LMSectionLayoutType;\n this.sectionType = LMSectionType;\n this.sectionColumnLayoutType = LMSectionColumnLayoutInfoType;\n }\n\n // events\n onDataViewLoaded(dataView: LMDataView) {\n this.dataViewLoaded.emit(dataView);\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n ngOnInit() {\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: `LMFormLayout-${this.instanceId}`,\n description: 'TOTAL FORM LAYOUT',\n functionName: 'ngOnInit()',\n timingStart: 'LMFormLayoutComponent -> ngOnInit()',\n timingEnd: 'LMFormLayoutComponent -> ngAfterViewInit()',\n className: 'LMFormLayoutComponent'\n });\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n\n this.subscriptionArray.push(\n this.model.modelChanged.subscribe((modelChangedEvent: LMModelChangedEvent) => {\n\n // listening for a next / previous\n if (modelChangedEvent.eventType === 'set') {\n this.updateImplicitColumns();\n }\n })\n );\n\n this.subscriptionArray.push(\n this.lmConditionUtilService.evaluateConditions.subscribe( () => this.updateImplicitColumns()),\n this.lmConditionUtilService.evaluateConditions.subscribe(() => this.updateSectionInfo())\n );\n\n this.preProcess();\n this.displayTypeIsSmartPhone = this.lmContextService.isMobileDevice();\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n\n // this needs to be last in this method\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.timeEnd(`LMFormLayout-${this.instanceId}`);\n }\n }\n\n ngOnDestroy() {\n // clean up subscriptions\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.subscriptionArray = [];\n }\n\n /**\n * Check column/pargraph layouts for sectiosn that should be displayed using \"Summary form\" styles\n * Summary form section is a section that is essentially all text fields. Can also include buttons, links, and checkbox\n *\n * Check column/paragraph layouts for sections where all labels are hidden\n *\n * Need to know which header is the first header in the layout spec\n * Check if column layouts include headers\n */\n private preProcess() {\n let foundFirstHeader = false;\n let visibleFieldFound = false;\n const isContextForm = this.lmFormSpecUtilService.isContextForm(this.formSpec as LMFormSpec);\n const isContextFormOnSide = this.lmFormSpecUtilService.isContextFormOnSide(this.formSpec as LMFormSpec);\n const isReadOnlyForm = (this.formOptions && (this.formOptions.isReadOnlyForm || this.formOptions.isDashBoardContent));\n const isDashboardPanelForm = this.formOptions && this.formOptions.isDashBoardContent;\n const formHasNumberLabel = this.lmFormLayoutService.formHasNumberLabel(this.layout.sections, this.model);\n const disableFieldOptions = this.layout?.disableFieldOptions;\n\n this.originalCompactFieldLayout = this.lmFormSpecUtilService.originalCompactFieldLayout(this.formSpec);\n\n if (this.layout.sections) {\n const sections = this.layout.sections.map((section: LMFormLayoutSectionUI) => {\n if (_.isEmpty(this.layoutInfo)) {\n this.layoutInfo = {\n isContextForm,\n isContextFormOnSide,\n isReadOnlyForm,\n isDashboardPanelForm,\n disableFieldOptions\n };\n }\n\n const lmConditionUtilService = this.lmConditionUtilService;\n const field = section[Object.keys(section)[0]];\n const fieldIsVisible = field ? lmConditionUtilService.isValid(field.visibility, this.model) : false;\n let columnsWithHeaders = false;\n\n // Check if there are any fields visible before header\n // If true then header will not be rendered as first header\n // Header will still get
        element in header component template\n if (!section.header && fieldIsVisible) {\n visibleFieldFound = true;\n }\n\n if (section.header) {\n\n // Mark as first header if there are no other visible fields before header\n // And if no other header has been found\n if (!foundFirstHeader && fieldIsVisible && !visibleFieldFound) {\n foundFirstHeader = true;\n section.header.isFirst = true;\n }\n }\n\n if (section.columns) {\n columnsWithHeaders = this.columnsWithHeaders(section.columns);\n }\n\n const percent = _.get(section, 'columns[0].percent') !== undefined;\n\n let sectionInfo = this.lmFormLayoutService.getSectionInfo(section, this.model);\n\n // Display sections that don't have number labels as if they did\n // This is used to help left align sections properly when there is a number label on the form\n if (!sectionInfo.sectionHasNumberLabel) {\n section.displayAsNumberLabelSection = formHasNumberLabel;\n }\n\n // Search forms aren't summary, and don't hide labels\n if (this.lmFormSpecUtilService.isSearchForm(this.formSpec)) {\n sectionInfo = { isSummaryFormSection: false, isNoLabelSection: false };\n }\n\n section.columnLayoutInfo = {\n isTable: section.table,\n isExplicit: section.explicit,\n distributed: (section.distributed || columnsWithHeaders) && !percent,\n grid: section.grid,\n independent: section.independent,\n isPercent: percent,\n imageInFirstColumn: _.get(section, 'columns[0].elements[0].field.displayImageAs') !== undefined,\n nbrColumns: section.nbrColumns,\n sectionInfo,\n isInDashboard: this.isInDashboard()\n };\n\n section.columnLayoutInfo.undistributed = !(\n section.columnLayoutInfo.distributed ||\n section.columnLayoutInfo.isPercent ||\n section.columnLayoutInfo.imageInFirstColumn ||\n section.columnLayoutInfo.isTable ||\n section.columnLayoutInfo.grid\n );\n\n section.paragraphLayoutInfo = {\n sectionInfo\n };\n\n this.layoutInfo.columnLayoutInfo = section.columnLayoutInfo;\n\n return section;\n });\n\n this.layout.sections = sections;\n\n this.layout.sections.map((section: LMFormLayoutSectionUI, i) => {\n section.index = i;\n if (section.button) {\n section.sectionLayout = this.sectionLayoutType.BUTTON;\n\n } else if (section.formRef) {\n section.sectionLayout = this.sectionLayoutType.FORM_REF;\n\n } else {\n section.sectionLayout = this.sectionLayoutType.NO_FORM_REF;\n\n if (section.type === 'column') {\n section.sectionType = this.sectionType.COLUMN;\n\n if (section.table) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.IS_TABLE;\n\n } else if (section.columnLayoutInfo.distributed && !section.columnLayoutInfo.grid && !section.columnLayoutInfo.imageInFirstColumn) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.DISTRIBUTED_NO_FIRST;\n\n } else if (section.columnLayoutInfo.undistributed && !section.columnLayoutInfo.grid) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.UNDISTRIBUTED;\n\n } else if (section.columnLayoutInfo.imageInFirstColumn && !section.columnLayoutInfo.grid) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.IMAGE_IN_FIRST_COLUMN;\n\n } else if (section.columnLayoutInfo.isPercent && !section.columnLayoutInfo.grid) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.IS_PERCENT;\n } else if (section.columnLayoutInfo.grid) {\n section.sectionColumnInfoType = this.sectionColumnLayoutType.IS_GRID;\n }\n\n } else if (section.header) {\n section.sectionType = this.sectionType.HEADER;\n\n } else if (section.field) {\n section.sectionType = this.sectionType.FIELD;\n\n } else if (section.text) {\n section.sectionType = this.sectionType.TEXT;\n\n } else if (section.paragraph) {\n section.sectionType = this.sectionType.PARAGRAPH;\n\n } else if (section.checkcontrol) {\n section.sectionType = this.sectionType.CHECK_CONTROL;\n\n } else if (section.captchaControl) {\n section.sectionType = this.sectionType.CAPTCHA_CONTROL;\n }\n }\n });\n }\n }\n\n // If columns contain headers then treat them as a distributed layout\n private columnsWithHeaders(columns: Array): boolean {\n const headers = [];\n columns.forEach((column) => {\n column.elements.forEach((element: LMFormLayoutElement) => {\n if (element.header) {\n element.header.isColumnHeader = true;\n headers.push(element);\n }\n });\n });\n return headers.length > 0;\n }\n\n public trackByIndex(index: number, section: LMFormLayoutSectionUI): number {\n return section.index;\n }\n\n private updateSectionInfo(): void {\n if (this.layout.sections) {\n this.layout.sections.forEach((section: LMFormLayoutSectionUI) => {\n section.columnLayoutInfo.sectionInfo = this.lmFormLayoutService.getSectionInfo(section, this.model);\n });\n }\n }\n\n private updateImplicitColumns() {\n if (this.lmColumnsUndistributed.toArray().length > 0) {\n this.lmColumnsUndistributed.forEach(comp => comp.updateImplicitColumns());\n }\n\n if (this.lmColumnsDistributed.toArray().length > 0) {\n this.lmColumnsDistributed.forEach(comp => comp.updateImplicitColumns());\n }\n }\n private isInDashboard(): boolean {\n return this.formOptions?.isDashBoardContent;\n }\n}\n","\n\n \n \n\n \n
        \n \n \n \n
        \n \n \n \n \n \n \n \n \n
        \n \n \n \n
        \n \n \n \n \n \n \n \n \n \n
        \n\n \n \n
        \n \n
        \n
        \n
        \n\n \n \n
        \n \n
        \n
        \n
        \n\n \n \n
        \n \n
        \n
        \n
        \n\n
        \n \n \n \n
        \n\n
        \n \n \n \n
        \n
        \n\n \n
        \n\n\t \n\n \n \n
        \n \n
        \n\n \n \n \n \n \n\n \n
        \n\n
        \n","import { Component, Input, OnInit } from '@angular/core';\nimport { LMFieldBaseComponent } from '@field/lm-field-base.component';\nimport * as _ from 'lodash';\nimport { LMFieldServiceAdapter } from '@field/lm-field-service-adapter';\nimport { LMModelChangedEvent } from '@form/model';\n\n@Component({\n selector: 'lm-header',\n templateUrl: './lm-header.component.html',\n styleUrls: ['./lm-header.component.scss']\n})\nexport class LMHeaderComponent extends LMFieldBaseComponent implements OnInit {\n @Input() layoutObject: LMFormLayoutHeaderUI;\n\n public header: LMFormLayoutHeaderUI;\n public title: string;\n public titleIsEmpty = false;\n\n constructor( protected lmFieldServiceAdapter: LMFieldServiceAdapter) {\n super(lmFieldServiceAdapter);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.initialize(this.layoutObject, this.specFields, this.model);\n this.header = this.layoutObject;\n if (this.header.textStyle.align === 'left' && Soho.Locale.isRTL()) {\n this.header.textStyle.align = 'right';\n }\n this.size = this.header.size || 3;\n\n // first time\n this.updateHeaderValue();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n if (modelChangedEvent.eventType === 'set') {\n this.updateHeaderValue();\n }\n })\n );\n }\n\n private updateHeaderValue() {\n if (this.header.title) {\n this.title = this.header.title as string;\n } else if (this.header.header) {\n this.title = this.lmFieldServiceAdapter.lmFormatUtilService.formatMessageRule(this.header.header as LMMessageRule, this.model, this.specFields);\n }\n\n this.titleIsEmpty = (_.isEmpty(_.trim(this.title)));\n }\n}\n","
        \n
        \n \n

        {{title}}

        \n

        {{title}}

        \n

        {{title}}

        \n

        {{title}}

        \n
        {{title}}
        \n
        \n
        \n\n\n
        \n
        \n
        \n\n\n

        {{title}}

        \n

        {{title}}

        \n

        {{title}}

        \n

        {{title}}

        \n
        {{title}}
        \n
        \n","import {\n AfterViewChecked,\n Directive,\n ElementRef,\n Input\n} from '@angular/core';\n\n@Directive({\n selector: '[lm-layout-util]'\n})\nexport class LMLayoutUtilDirective implements AfterViewChecked {\n // Used to hide element if value is empty\n @Input() hideWhiteSpace: boolean;\n\n constructor(public elementRef: ElementRef) {}\n\n ngAfterViewChecked(): void {\n if (this.hideWhiteSpace) {\n this._fixWhiteSpace();\n }\n }\n\n /** White space use cases\n * LMCLIENT-23529\n * LMCLIENT-23565\n * LMCLIENT-20919\n * LMCLIENT-23719\n */\n private _fixWhiteSpace() {\n const nativeElement = this.elementRef.nativeElement;\n const whiteSpaceElement = nativeElement.querySelectorAll('.hide-white-space');\n\n if (whiteSpaceElement.length === 0) {\n return;\n }\n\n const value = whiteSpaceElement[0].innerText;\n\n // LMCLIENT-37057\n // Check if contents is IFRAME\n // Ignore if true\n if (whiteSpaceElement[0]?.children[0]?.nodeName === 'IFRAME') {\n return;\n }\n\n this.toggleElementVisibility(value);\n }\n\n private toggleElementVisibility(value: string) {\n const previousSibling = this.elementRef.nativeElement.previousElementSibling;\n let labelIsNoLabel = false;\n\n if (previousSibling) {\n labelIsNoLabel = this.elementRef.nativeElement.previousElementSibling.classList.contains('lm-no-label');\n }\n\n if (value.trim().length === 0 && labelIsNoLabel) {\n this.elementRef.nativeElement.style.display = 'none';\n } else {\n // LMCLIENT-36954\n // Removing display none via empty string should be a safer approach vs setting to 'block'.\n // This way it will revert the element back to its original state when it becomes visible again.\n // And we won't have to worry about it overriding other rules. Like inline-block and inline-flex for example.\n this.elementRef.nativeElement.style.display = '';\n }\n }\n\n /**\n * Get the width of host\n */\n public getWidth(): string {\n if (this.elementRef && this.elementRef.nativeElement) {\n const width = this.elementRef.nativeElement.offsetWidth;\n return width === 0 ? '' : this.elementRef.nativeElement.offsetWidth;\n } else {\n return null;\n }\n }\n\n /**\n * Get the width of host's parent\n */\n public getParentWidth(): string {\n if (this.elementRef &&\n this.elementRef.nativeElement &&\n this.elementRef.nativeElement.parentElement\n ) {\n const width = this.elementRef.nativeElement.parentElement.offsetWidth;\n return width === 0 ? '' : this.elementRef.nativeElement.parentElement.offsetWidth;\n } else {\n return null;\n }\n }\n\n}\n","import {\n AfterViewInit,\n Component, ElementRef,\n EventEmitter,\n HostBinding, HostListener,\n Input,\n NgZone, OnDestroy,\n OnInit,\n Output,\n QueryList, ViewChild,\n ViewChildren\n} from '@angular/core';\nimport { LMModel } from '@form/model';\nimport { LMFormLayoutService } from '@form/services';\nimport { LMLayoutUtilDirective } from './lm-layout-util.directive';\nimport { LMLoggerService } from '@app/services';\n\nenum LMParagraphSubType {\n CHECK_CONTROL = 0,\n BUTTON,\n FIELD,\n TEXT,\n MENU,\n MANUAL_REPRESENTATION,\n CAPTCHA_CONTROL\n}\n\n@Component({\n selector: 'lm-paragraph',\n templateUrl: 'lm-paragraph-layout.component.html',\n styleUrls: [ 'lm-paragraph-layout.component.scss' ],\n providers: [ LMLayoutUtilDirective, LMFormLayoutService ]\n})\nexport class LMParagraphLayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() layoutObject: LMFormParagraphLayout;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() placeHolder: any;\n @Input() layoutInfo: LMFormLayoutInfo;\n @Input() lmColumnLayoutInfo: LMColumnLayoutInfo;\n @Input() parentIsCompoundField: boolean;\n @Input() parentCompoundFieldDisplayAsText: boolean;\n @Input() parentCompoundFieldDisplayOnly: boolean;\n @Input() lmParagraphLayoutInfo: LMParagraphLayoutInfo = {};\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() errorOnMemberField: EventEmitter = new EventEmitter();\n\n @ViewChildren('Element') elements: QueryList;\n @ViewChild('LeftElementWrapper') leftElementWrapper: ElementRef;\n @ViewChild('CenterElementWrapper') centerElementWrapper: ElementRef;\n @ViewChild('RightElementWrapper') rightElementWrapper: ElementRef;\n\n // Only has a single child of text area or rich text\n // Use these classes to span the text area 100% width of form\n @HostBinding('class.lm-textarea-only') isTextAreaOnly: boolean;\n @HostBinding('class.lm-rich-text-only') isRichTextOnly: boolean;\n\n @HostBinding('class.lm-distributed') isDistributed: boolean;\n\n @HostListener('window:resize', ['$event']) onResize() {\n this.handleResize();\n }\n\n // Flag used to set textArea field to display block if it is the only child\n // This will allow the textArea to span the full width of the page in this case\n // public textAreaOnly = false;\n public numberOfElements: number;\n public hasFieldsWithAlignment: boolean;\n public layoutSubType: { readonly [x: number]: string; CHECK_CONTROL: any; BUTTON: any; FIELD: any; TEXT: any; MENU: any; MANUAL_REPRESENTATION: any; CAPTCHA_CONTROL: any };\n public readonly instanceId: string;\n\n constructor(\n protected lmFormLayoutService: LMFormLayoutService,\n private ngZone: NgZone,\n private lmLoggerService: LMLoggerService\n ) {\n this.layoutSubType = LMParagraphSubType;\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: `Total-Paragraph-Layout-${this.instanceId}`,\n description: 'TOTAL PARAGRAPH LAYOUT',\n functionName: 'ngOnInit()',\n className: 'LMParagraphLayoutComponent',\n timingStart: 'LMParagraphLayoutComponent -> ngOnInit()',\n timingEnd: 'LMParagraphLayoutComponent -> ngAfterViewInit()',\n });\n }\n\n if (this.layoutObject.centerElements || this.layoutObject.rightElements) {\n this.hasFieldsWithAlignment = true;\n }\n\n // If the only alignment used is left align then render using the default paragraph layout\n // Renders the same way as if there was no alignment\n if (!this.hasFieldsWithAlignment && (this.layoutObject.leftElements && this.layoutObject.leftElements.length > 0)) {\n this.layoutObject.elements = this.layoutObject.leftElements;\n }\n\n if (this.lmParagraphLayoutInfo.previewMode) {\n this.lmParagraphLayoutInfo.displayAsText = true;\n }\n\n if (this.layoutObject.distributed) {\n this.lmParagraphLayoutInfo.isDistributed = true;\n this.isDistributed = true;\n }\n\n // If column is parent show labels for paragraph layouts\n // This will make sure paragraph layouts still align horizontally with non paragraph layouts in other columns.\n // Need this to be determined after the rest of lmParagraphLayoutInfo is filled out\n const hasVisibleLabels = this.lmFormLayoutService.paragraphHasVisibleLabels(this.layoutObject, this.model, this.specFields, this.lmParagraphLayoutInfo);\n this.lmParagraphLayoutInfo.hasVisibleLabels = this.lmColumnLayoutInfo !== undefined ? true : hasVisibleLabels;\n\n // Check if paragraph consists of a single text area or a single rich text field\n this.isTextAreaOnly = this.lmParagraphLayoutInfo.sectionInfo?.paragraphHasTextAreaOnly;\n this.isRichTextOnly = this.lmParagraphLayoutInfo.sectionInfo?.paragraphHasRichTextOnly;\n\n // Fields need to be sized using width instead of size if paragraph layout is nested in a compound field\n // Passing this information down to the field components\n this.lmParagraphLayoutInfo.isCompoundField = this.parentIsCompoundField;\n this.lmParagraphLayoutInfo.displayAsText = this.parentCompoundFieldDisplayAsText;\n this.lmParagraphLayoutInfo.displayOnly = this.parentCompoundFieldDisplayOnly;\n this.lmParagraphLayoutInfo.textAreaOnly = this.isTextAreaOnly;\n this.lmParagraphLayoutInfo.parentIsParagraphLayout = true;\n\n if (this.layoutObject.elements) {\n this.setLayoutType(this.layoutObject.elements);\n }\n\n if (this.layoutObject.leftElements) {\n this.setLayoutType(this.layoutObject.leftElements);\n }\n\n if (this.layoutObject.centerElements) {\n this.setLayoutType(this.layoutObject.centerElements);\n }\n\n if (this.layoutObject.rightElements) {\n this.setLayoutType(this.layoutObject.rightElements);\n }\n }\n\n ngAfterViewInit() {\n this.numberOfElements = this.ngZone.runOutsideAngular(() => this.elements.toArray().length);\n\n if (this.hasFieldsWithAlignment) {\n this.handleResize();\n }\n\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.timeEnd(`Total-Paragraph-Layout-${this.instanceId}`);\n }\n }\n\n ngOnDestroy() {}\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n onMemberFieldError(event) {\n this.errorOnMemberField.emit(event);\n }\n\n public trackByIndex(index: number, element: LMFormLayoutElement): number {\n return element.index;\n }\n\n private setLayoutType(elements: Array) {\n elements.forEach((element: LMFormLayoutElement, i) => {\n element.index = i;\n if (element.checkcontrol) {\n element.elementLayout = this.layoutSubType.CHECK_CONTROL;\n } else if (element.button) {\n element.elementLayout = this.layoutSubType.BUTTON;\n } else if (element.field) {\n element.elementLayout = this.layoutSubType.FIELD;\n } else if (element.text) {\n element.elementLayout = this.layoutSubType.TEXT;\n } else if (element.menu) {\n element.elementLayout = this.layoutSubType.MENU;\n } else if (element.manualrep) {\n element.elementLayout = this.layoutSubType.MANUAL_REPRESENTATION;\n } else if (element.captchaControl) {\n element.elementLayout = this.layoutSubType.CAPTCHA_CONTROL;\n }\n });\n }\n\n /**\n * Align items to the left when they wrap\n * @private\n */\n private handleResize(): void {\n if (this.leftElementWrapper && this.centerElementWrapper && this.rightElementWrapper) {\n const leftWrapperOffset = this.leftElementWrapper.nativeElement.offsetLeft;\n const centerWrapperOffset = this.centerElementWrapper.nativeElement.offsetLeft;\n const rightWrapperOffset = this.rightElementWrapper.nativeElement.offsetLeft;\n\n this.centerElementWrapper.nativeElement.style.textAlign = centerWrapperOffset === leftWrapperOffset ? 'left' : '';\n this.rightElementWrapper.nativeElement.style.textAlign = rightWrapperOffset === leftWrapperOffset ? 'left' : '';\n }\n }\n}\n","
        \n\n \n \n \n \n \n \n\n \n \n
        \n \n \n \n \n \n \n \n
        \n\n
        \n \n \n \n
        \n\n
        \n \n \n \n
        \n
        \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n
        \n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding, HostListener,\n Input, NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { SohoBusyIndicatorDirective, SohoTabsComponent, } from 'ids-enterprise-ng';\nimport { LandmarkPanel, LMFormContentBase } from './lm-form.model';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMFormPanelBaseService, LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMModel, LMModelChangedEvent } from './model/lm-model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMWorker } from '../../types/lm-worker';\nimport { LMInvalidFieldEvent } from '@field/lm-field-base.component';\nimport { LMContextService, LMLoggerService, LMUrlUtilService } from '@services/index';\nimport { LMFormPanelFormComponent } from './lm-form-panel-form.component';\nimport { LMDashboardViewComponent } from '@dashboard/lm-dashboard-view.component';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { AppConstants, LMBrowserUtilService, LMConditionUtilService } from '@utils/index';\nimport { takeUntil } from 'rxjs/operators';\nimport { LMFormPanelMultiListComponent } from './lm-form-panel-multilist.component';\nimport { LMColorId, LMThemeService } from '@banner/lm-theme.service';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { LMModelField } from './model';\nimport { LMFormPanelUrlComponent } from './lm-form-panel-url.component';\nimport { LMFormPanelDashboardComponent } from './lm-form-panel-dashboard.component';\nimport { LMListTransactionEvent } from '@list/lm-list.component';\nimport { LMFormService, LMFormSpecUtilService } from './services';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport { LMActionFormDialogResultCode } from '@modal/index';\nimport { LMFormPanelListComponent, LMListSpecUtilService, LMRefreshRequest } from '@app/components';\n\nexport class LMPanelSaveWorker extends LMWorker {\n private readonly formPanels: LMFormPanelBase[];\n\n constructor(formPanels: LMFormPanelBase[]) {\n super();\n\n this.formPanels = formPanels;\n }\n\n protected has(i: number): boolean {\n return (i < this.formPanels.length);\n }\n\n protected get(i: number): LMFormPanelBase {\n return this.formPanels[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const formPanel = this.formPanels[ i ];\n if (formPanel) {\n formPanel.save(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-form-content-composite',\n providers: [ LMFormPanelBaseService ],\n templateUrl: 'lm-form-content-composite.component.html',\n styleUrls: [ 'lm-form-content-composite.component.scss' ]\n})\nexport class LMFormContentCompositeComponent implements AfterViewInit, AfterViewChecked, OnInit, OnDestroy, LMFormContentBase {\n\n @HostBinding('class.on-side') showContextFormOnSide = true;\n @HostBinding('class.implements-cart-view') get implementsCart() { return this.formSpec.busFormSpec.implementsCartView; }\n @HostBinding('class.lm-is-compact-form-layout') isCompactFormLayout: boolean;\n @HostBinding('class.lm-vertical-tabs') verticalTabs: boolean;\n @HostBinding('class.lm-parent-is-modal') @Input() parentIsModal: boolean;\n\n // Need to know if the window has shrunk, in order to correctly set the tab container height\n @HostListener('window:resize') public onResize() {\n this.doRecalculateHeight = true;\n }\n\n @Input() formOptions: LMFormOptions;\n @Input() specFields: LMSpecFields;\n @Input() formUrlInfo: LMFormUrlInfo = null;\n @Input() formSpec: LMFormSpec = null;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n\n @ViewChildren('compositeComponent') compositeComponents: QueryList;\n @ViewChildren('flexContent') flexContent: QueryList;\n @ViewChild('contextContext') contextContent: ElementRef;\n @ViewChild('dashboardViewComponent') dashboardViewComponent: LMDashboardViewComponent;\n @ViewChild('tabPanelContainer', { read: ElementRef }) tabContainerElement: ElementRef;\n @ViewChild('sohoTabsComponent') sohoTabsComponent: SohoTabsComponent;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n @Output() contentModified = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() dashboardContentDisplayed = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionsToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n public panels: Array;\n public fromDataView: LMDataView;\n public contextForm: LMContextForm;\n public useThemeColor: boolean;\n public colorIsDefault: boolean;\n public useBackgroundImage: boolean;\n public personalize: boolean;\n public backgroundImageUrl: SafeStyle;\n public formPanelUrlDisplayed = false;\n public activatedTabChanged: boolean;\n public useLazyLoadForm = false;\n public onSubForm = false;\n\n private _hasPendingSelection = false;\n private _pendingSelectedPanel: LandmarkPanel;\n private m_componentDestroyed = false;\n private subscriptionManager: Subject = new Subject();\n private instanceId: string;\n\n private runHandleResizeTabsComponent = false;\n private initializeSohoTabs = false;\n private selectedPanelIndex: number;\n public panelVisibilityUpdateTimeStamp: number;\n\n private _singlePanel: LandmarkPanel;\n private _hasTabs: boolean;\n\n private doRecalculateHeight = true;\n public tabPanelContainerHeight = 'auto';\n public hideBorder = false;\n public testVersion1: boolean;\n public cartHeight: '700px;'\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n public formPanelTabAttributes: SohoAttributesArray = [];\n\n public readonly tabIdSuffix = AppConstants.ELEMENT_ID_SUFFIX_FORM_PANEL_TAB;\n public uiLoadingIndicatorTimeout = 0;\n\n private visibleWhenEventSubscription: Subscription;\n\n public use100HeightContainer = false;\n\n constructor(\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormPanelBaseService: LMFormPanelBaseService,\n private lmLoggerService: LMLoggerService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private ngZone: NgZone,\n private lmBrowserUtil: LMBrowserUtilService,\n private lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n private _sanitizer: DomSanitizer,\n private lmContextService: LMContextService,\n private lmFormService: LMFormService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmListSpecUtilService: LMListSpecUtilService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n this.useLazyLoadForm = this.lmContextService.useLazyLoadForm();\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.formPanelTabAttributes.push({ name: 'data-automation-id', value: 'lm-' + this.formSpec.formElementId + '-tab' });\n\n if (!this.testVersion1) {\n this.formPanelTabAttributes.push({ name: 'id', value: this.formSpec.formElementId + '_tab' });\n }\n\n this.lmFormPanelBaseService.buildCompositePanels(this.formSpec.busFormSpec, this.model, this.formSpec, true);\n this.panels = this.lmFormPanelBaseService.getPanels();\n this.isCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n\n if (this.formSpec.busFormSpec.contextForm && this.formSpec.busFormSpec.implementsDashBoardView) {\n this.showContextFormOnSide = !this.formSpec.busFormSpec.showContextFormOnTop;\n } else if (this.formSpec.busFormSpec.contextForm && !this.formSpec.busFormSpec.implementsDashBoardView) {\n this.showContextFormOnSide = !!this.formSpec.busFormSpec.showContextFormOnLeft;\n } else {\n this.showContextFormOnSide = false;\n }\n\n // Force tabs to display horizontal if context form is on the side.\n this.verticalTabs = this.lmFormPanelBaseService.getVerticalTabs() && !this.showContextFormOnSide;\n this.contextForm = this.lmFormPanelBaseService.getContextForm();\n this.onSubForm = this.lmFormSpecUtilService.isSubForm(this.formSpec);\n\n this.selectedPanelIndex = this.formState.selectedPanelIndex;\n\n if (this.selectedPanelIndex === undefined || this.selectedPanelIndex > this.panels.length || this.selectedPanelIndex < 0) {\n this.selectedPanelIndex = 0;\n } else {\n const selectedPanel = this.panels[ this.selectedPanelIndex ];\n if (selectedPanel && selectedPanel.hidden) {\n for (let i = 0, length = this.panels.length; i < length; i++) {\n if (!this.panels[ i ].hidden) {\n this.panels[ i ].selected = true;\n this.selectedPanelIndex = i;\n break;\n }\n }\n } else {\n if (selectedPanel) {\n selectedPanel.selected = true;\n }\n }\n }\n\n if (!this.verticalTabs && !this.showContextFormOnSide) {\n // ---------------------------------------------------------------\n // only apply context form styling if tabs are NOT vertical.\n // ---------------------------------------------------------------\n if (!this.contextForm) {\n // ---------------------------------------------------------------\n // if no context form then use personalize color for tabs.\n // ---------------------------------------------------------------\n this.useThemeColor = true;\n this.colorIsDefault = this.lmThemeService.getCurrentColorId() === LMColorId.default;\n\n } else {\n this.personalize = this.lmThemeService.isPersonalized(true, this.formSpec.busFormSpec, this.parentIsModal);\n\n if (this.personalize && this.contextForm.background) {\n if (this.contextForm.background.useThemeColor) {\n this.useThemeColor = true;\n this.colorIsDefault = this.lmThemeService.getCurrentColorId() === LMColorId.default;\n\n // // todo should have been handled automatically for \"default\" theme color. Ping tim\n // this.lmThemeService.getColorChangeSubject().subscribe(colorId => {\n // // default color means no color is used for menu, context forms, and composite tabs.\n // this.colorIsDefault = colorId === LMColorId.default\n // });\n\n } else if (this.contextForm.background.useBackgroundImage) {\n this.useBackgroundImage = true;\n }\n }\n }\n }\n\n this.panels.forEach((panel) => {\n if (panel.type === 'dashboard') {\n panel.dashBoardPanes = this.lmFormPanelBaseService.createSubPanels(panel.busFormPanel.panels, this.formSpec.busFormSpec, this.model, this.formSpec);\n if (panel.busFormPanel.dashboardColumns) {\n panel.dashboardColumns = panel.busFormPanel.dashboardColumns;\n }\n }\n });\n\n this._calculateHasTabs();\n this._setSinglePanel();\n this._setBackgroundImageUrl();\n\n this.model.modelChanged.pipe(takeUntil(this.subscriptionManager)).subscribe((modelChangedEvent: LMModelChangedEvent) => {\n let sourceIsPanel = false;\n let originatingPanel: string = null;\n let originatingList: string = null;\n\n if (modelChangedEvent.source) {\n if (modelChangedEvent.source instanceof LMPanelTransactionEvent) {\n sourceIsPanel = true;\n originatingPanel = modelChangedEvent.source.originatingPanel;\n originatingList = modelChangedEvent.source.originatingList;\n } else if (modelChangedEvent.source instanceof LMListTransactionEvent) {\n sourceIsPanel = true;\n originatingList = modelChangedEvent.source.eventSource ? modelChangedEvent.source.eventSource.listId : null;\n }\n }\n\n this.updateVisibleWhenTabs();\n\n if (modelChangedEvent.eventType !== 'update') {\n this.updateFromDataView(sourceIsPanel, originatingList, originatingPanel);\n }\n });\n\n this.lmConditionUtilService.evaluateConditions.pipe(takeUntil(this.subscriptionManager)).subscribe(() => {\n this.updateVisibleWhenTabs();\n });\n\n this.initializeSohoTabs = true;\n\n this.visibleWhenEventSubscription = this.lmFormService.visibleWhenEvent$\n .subscribe((elementRef: ElementRef) => this.onVisibleWhenEvent(elementRef));\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n this.runHandleResizeTabsComponent = true;\n\n // set fromDataView from models dataview so if flows down to the\n // related composite form panels (multi-list, list, etc..).\n setTimeout(() => this.fromDataView = this.model.getData());\n }\n\n ngAfterViewChecked() {\n if (this.runHandleResizeTabsComponent) {\n this.runHandleResizeTabsComponent = false;\n if (this.hasTabs && this.sohoTabsComponent) {\n this.sohoTabsComponent.handleResize();\n }\n }\n\n if (this.initializeSohoTabs) {\n this.initializeSohoTabs = false;\n if (this.hasTabs && this.sohoTabsComponent) {\n this.sohoTabsComponent.updated();\n if (this.selectedPanelIndex > -1) {\n const nearestPanel = this.findNearestVisibleValidPanel(this.selectedPanelIndex);\n if (nearestPanel) {\n if (this.sohoTabsComponent) {\n this.sohoTabsComponent.select('#' + nearestPanel.id);\n }\n }\n }\n }\n }\n\n if (this._hasPendingSelection) {\n setTimeout(() => this.handlePendingSelection());\n this._hasPendingSelection = false;\n }\n\n if (this.doRecalculateHeight) {\n this.doRecalculateHeight = false;\n\n\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n\n this.subscriptionManager.next();\n this.subscriptionManager.complete();\n\n this.visibleWhenEventSubscription.unsubscribe();\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onFieldEvent(event) {\n if ('FieldInvalidEvent' === event.eventType) {\n // switch to the tab with the field in error\n const fieldChangedEvent = event as LMInvalidFieldEvent;\n\n if (fieldChangedEvent.panelId) {\n // find the visible tab and select it\n if (this.panels.some( (panel: LandmarkPanel) => panel.id === fieldChangedEvent.panelId && !panel.hidden)) {\n this.sohoTabsComponent.select('#' + fieldChangedEvent.panelId);\n\n } else {\n // cannot find a panel, so display the error in a dialog\n this.lmErrorUtilService.handleUnexpectedError({ title: Soho.Locale.translate('Error'), message: event.alert.errorMessage});\n }\n }\n\n fieldChangedEvent.alert.scrollIntoView(false);\n }\n this.fieldEvent.emit(event);\n }\n\n onUpdateToolbarStateEvent() {\n this.updateToolbarStateEvent.emit();\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionsToolbarButtonEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n onTabActivated(event: SohoTabsEvent) {\n /*\n * onTabActivated gets messaged before the sohoDataGrid has finished resolving it's template\n * so I need to put into a setTimeout allowing angular to have a chance to process the template\n * before I attempt to call methods on it.\n */\n setTimeout(() => {\n if (this.componentDestroyed) {\n this.lmLoggerService.log([ this, this.instanceId, 'onTabActivated() > timeout > component was destroyed before expected, returning.' ]);\n // safety in case the user has initiated a list but quickly navigated\n // to another screen and ngOnDestroy is in a race condition with this\n // timeout.\n return;\n }\n\n const selectedPanelIndex = this.activeTabIndex;\n const panel = this.panels[ selectedPanelIndex ];\n let showBusy = false;\n\n // same criteria as when activating a lazy load form tab\n if (panel && panel.type === 'form' && this.useLazyLoadForm && !panel.hidden && !panel.initialized) {\n // use the global busy indicator as it will run immediately\n this.lmBusyIndicatorService.showBusyIndicator();\n showBusy = true;\n }\n\n if (showBusy) {\n // if showBusy, then another timeout so the busy indicator can start\n setTimeout(() => {\n this.doActivateTab();\n }, 50);\n\n } else {\n this.doActivateTab();\n }\n }, 1);\n }\n\n private doActivateTab() {\n this.activateTab();\n this.doRecalculateHeight = true;\n this.activatedTabChanged = !this.activatedTabChanged;\n }\n\n // Need to set the height on the tab container correctly. If the content of the panel is less than the\n // window height, need to set the containers height to match the view height of the window. If the content\n // of the tab is greater than the window height, then set the tab container's height to auto\n private handlePanelHeightChange() {\n // Set possible window height modifiers\n const contextFormOffset = (this.contextForm && !this.showContextFormOnSide) ? this.contextContent.nativeElement.offsetHeight : 0;\n\n const mingleOffset = this.lmContextService.inMingle() ? 34 : 0;\n\n const headerBarOffset = !this.lmContextService.isHideTitlebar() ? 60 : 0;\n\n const windowHeight = window.innerHeight - mingleOffset - headerBarOffset;\n\n if (this.hasTabs && this.verticalTabs) {\n\n // Set height to 100% if in responsive mode\n if (window.innerWidth < Soho.breakpoints['phone-to-tablet']) {\n this.tabPanelContainerHeight = '100%';\n // When going into responsive view, the border still appeared on the left side. Need to hide it.\n this.hideBorder = true;\n return;\n }\n\n // reset hiding border\n this.hideBorder = false;\n\n const selectedPanel = this.panels[ this.selectedPanelIndex ];\n\n // rule from the template\n if (this.formPanelUrlDisplayed) {\n this.tabPanelContainerHeight = '100%';\n return;\n }\n\n // Multi list panels are with over 2 lists always huge. Set to auto, so we don't have a timing issue waiting\n // for the lists to get populated with data\n if (selectedPanel.type === 'multilist') {\n let visibleLists = 0;\n this.compositeComponents.filter((basePanel: LMFormPanelBase) => basePanel.panelId === selectedPanel.id)\n .forEach((basePanel: LMFormPanelBase) => visibleLists = (basePanel as LMFormPanelMultiListComponent).numberVisibleLists);\n\n if (visibleLists > 2) {\n this.tabPanelContainerHeight = 'auto';\n return;\n }\n }\n\n const thePanel = this.compositeComponents.find((panel: LMFormPanelBase) => panel.panelId === selectedPanel.id);\n\n const panelHeight = thePanel ? thePanel.getPanelHeight() : 0;\n this.calculateContentPanelHeight(panelHeight, contextFormOffset, windowHeight);\n\n } else if (this.formSpec.busFormSpec.implementsDashBoardView) {\n const panelHeight = this.dashboardViewComponent ? this.dashboardViewComponent.getPanelHeight() : 0;\n this.calculateContentPanelHeight(panelHeight, contextFormOffset, windowHeight);\n } else if (this.formSpec.busFormSpec.implementsCartView) {\n const panelHeight = this.dashboardViewComponent ? this.dashboardViewComponent.getPanelHeight() : 0;\n this.calculateContentPanelHeight(panelHeight, contextFormOffset, windowHeight);\n } else {\n // TODO this single panel case may be able to included in the first if block.\n const selectedPanel = this.panels[ this.selectedPanelIndex ];\n const thePanel = this.compositeComponents.find((panel: LMFormPanelBase) => panel.panelId === selectedPanel.id);\n const panelHeight = thePanel ? thePanel.getPanelHeight() : 0;\n this.calculateContentPanelHeight(panelHeight, contextFormOffset, windowHeight);\n\n }\n }\n\n private calculateContentPanelHeight(panelHeight: number, contextFormOffset: number, windowHeight: number): void {\n let isNestedCardViewWithDetailsWithoutContext = false;\n\n // Determine if selected panel is a list panel with a card view with details sections in it, and the composite form\n // has a context form\n if (this.selectedPanelIndex && this.panels[this.selectedPanelIndex].type === 'formlist' && this.formSpec.busFormSpec.contextForm) {\n const listSpec = this.panels[this.selectedPanelIndex].listSpec;\n isNestedCardViewWithDetailsWithoutContext = this.lmListSpecUtilService.isCardViewWithDetailSections(listSpec);\n }\n\n if ((panelHeight + contextFormOffset) < windowHeight && !this.parentIsModal && !isNestedCardViewWithDetailsWithoutContext) {\n if (this.verticalTabs) {\n this.tabPanelContainerHeight = '100%';\n } else {\n const heightOffset = 40 + contextFormOffset;\n this.tabPanelContainerHeight = 'calc(100% - ' + heightOffset + 'px)';\n }\n } else if(this.formSpec.busFormSpec.showContextFormOnLeft){\n this.tabPanelContainerHeight = 'calc(100% - 42px)';\n } else {\n this.tabPanelContainerHeight = 'auto';\n }\n }\n\n get isHideTitleBar(): boolean {\n return this.lmContextService.isHideTitlebar() || this.lmContextService.inMingleInbox();\n }\n\n get singlePanel(): LandmarkPanel {\n return this._singlePanel;\n }\n\n private _setSinglePanel(): void {\n if (this.formSpec.busFormSpec.implementsDashBoardView) {\n this._singlePanel = null;\n } else {\n // only filter out hidden panels. Non-hidden panels that are invalid should\n // be displayed as disabled.\n const panels = this.panels.filter((panel: LandmarkPanel) => !panel.hidden && panel.isValid);\n this._singlePanel = panels.length === 1 ? panels[0] : null;\n }\n }\n\n private _setBackgroundImageUrl(): void {\n if (!this.useBackgroundImage) {\n return;\n }\n\n if (!!this.formSpec.busFormSpec.contextForm.background.imageFieldId) {\n const imageFieldId: string = this.formSpec.busFormSpec.contextForm.background.imageFieldId;\n\n const imageField: LMModelField = this.model.getField(imageFieldId);\n if (!imageField) {\n return;\n }\n\n const imageUrl: string = imageField.value;\n if (!imageUrl) {\n return;\n }\n\n const imageUrl2: string = this.lmUrlUtilService.removeParam(imageUrl, 'size');\n this.backgroundImageUrl = this._sanitizer.bypassSecurityTrustStyle(`url('${imageUrl2}')`);\n } else if (!!this.formSpec.busFormSpec.contextForm.background.image) {\n this.backgroundImageUrl = this._sanitizer.bypassSecurityTrustStyle(`url('${this.formSpec.busFormSpec.contextForm.background.image}')`);\n }\n }\n\n get hasTabs(): boolean {\n return this._hasTabs;\n }\n\n private _calculateHasTabs(): void {\n if (this.formSpec.busFormSpec.implementsDashBoardView) {\n this._hasTabs = false;\n } else {\n const visibleAndValidPanels = this.panels.filter((panel: LandmarkPanel) => !panel.hidden && panel.isValid);\n\n if (visibleAndValidPanels.length === 0) {\n // no tabs because we don't have any tab that can be used\n this._hasTabs = false;\n } else {\n // We need to check if we have more than one visible panel\n // the invalid panels are displayed disabled\n const visiblePanels = this.panels.filter((panel: LandmarkPanel) => !panel.hidden);\n this._hasTabs = visiblePanels.length > 1;\n }\n }\n }\n\n private activateTab() {\n this.selectedPanelIndex = this.activeTabIndex;\n this.formState.selectedPanelIndex = this.selectedPanelIndex;\n const panel = this.panels[ this.selectedPanelIndex ];\n const compositeComponent: LMFormPanelBase = this.compositeComponents.toArray()[ this.selectedPanelIndex ];\n\n if (!compositeComponent) {\n return; // safety check!!!!!\n }\n\n if (panel && panel.type === 'form' && this.useLazyLoadForm && !panel.hidden && !panel.initialized) {\n // render the panel\n panel.initialized = true;\n }\n\n // set tab container height to 100% when the panel is a card view list with detail sections\n this.use100HeightContainer = panel?.type === 'formlist' && this.lmListSpecUtilService.isCardViewWithDetailSections(panel.listSpec) && !this.verticalTabs && !this.contextForm;\n\n if (!this.isDependentFormPanel(compositeComponent)) {\n return;\n }\n\n if (this.isFormPanelUrlPanel(compositeComponent)) {\n this.formPanelUrlDisplayed = true;\n }\n\n // Panel has been touch check if it needs to refresh or reload\n if (compositeComponent.activated) {\n switch (compositeComponent.panelDataState) {\n case 'stale_needsRefresh':\n // fromDataView has not been changed, so make sure the composite component has the most up to date data view\n // when activating\n compositeComponent.fromDataView = this.model.getData();\n compositeComponent.panelDataState = 'fresh';\n compositeComponent.refresh().subscribe();\n break;\n case 'stale_needsReload':\n // this.fromDataView has been changed, so just need to mark as fresh\n compositeComponent.panelDataState = 'fresh'; // fromDataView input flow to the content forcing a reload!!!\n break;\n default:\n if (compositeComponent instanceof LMFormPanelDashboardComponent) {\n // force panels to relayout in case a resize happens after this panel has been activated\n // but the user resized the browser when on another tab.\n (compositeComponent as LMFormPanelDashboardComponent).refreshPanels();\n }\n }\n return;\n } else {\n // added for LMCLIENT-32197. This was a case where on a composite panel, there was a data change from one of the\n // panels. Then there is a second panel, which has not been activated, and has visible when rules on it. Since\n // it hasn't been updated previously, it had a stale fromDataView on it and the visible when rules were incorrect.\n // So we are going to set the fromDataView for the panel here to the up to date dataview\n compositeComponent.fromDataView = this.model.getData();\n }\n\n // --------------------------------------------------------------------------------------\n // Include the busy indicator for form panels too as it takes\n // time to render a form panel.\n // --------------------------------------------------------------------------------------\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n setTimeout(() => {\n if (this.componentDestroyed) {\n this.lmLoggerService.log([ this, this.instanceId, 'activateTab() > timeout > component was destroyed before expected, returning.' ]);\n // safety in case the user has initiated a list but quickly navigated\n // to another screen and ngOnDestroy is in a race condition with this\n // timeout.\n return;\n }\n\n this.activateFormPanel(compositeComponent);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n });\n\n }\n\n private activateFormPanel(formPanel: LMFormPanelBase) {\n formPanel.panelDataState = 'fresh';\n formPanel.activated = true; // this should trigger the template to run\n }\n\n onFormPanelContentLoaded(event: any) {\n // Need to set this in a timeout, else we get an expression changed error on load\n this.ngZone.runOutsideAngular(() => setTimeout(() => this.handlePanelHeightChange()));\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n\n private get activeTabIndex() {\n const index = (this.sohoTabsComponent?.getActiveTab()?.length > 0)\n ? this.sohoTabsComponent.getActiveTab()[ 0 ].dataset.index\n : -1;\n return Number(index);\n }\n\n private updateFromDataView(sourceIsPanel?: boolean, originatingList?: string, originatingPanel?: string): void {\n this.lmLoggerService.log([this, this.instanceId, 'updateFromDataView()', 'start']);\n const newFromDataView = this.model.getData();\n const fromDataViewChanged = this.hasFromDataViewChanged(newFromDataView);\n\n if (!this.formSpec.busFormSpec.implementsDashBoardView) {\n this.markTabsForReload(fromDataViewChanged, sourceIsPanel, originatingList, originatingPanel);\n } else if (this.dashboardViewComponent && !fromDataViewChanged) {\n const refreshRequest: LMRefreshRequest = {originatingSourceId: originatingList};\n this.dashboardViewComponent.refresh(refreshRequest).subscribe();\n }\n\n if (fromDataViewChanged) {\n this.fromDataView = newFromDataView;\n }\n\n this.lmLoggerService.log([this, this.instanceId, 'updateFromDataView()', 'end']);\n }\n\n private hasFromDataViewChanged(newFromDataView: LMDataView): boolean {\n const resourceId = this.fromDataView ? this.fromDataView.resourceId : '';\n const newResourceId = newFromDataView ? newFromDataView.resourceId : '';\n\n return resourceId !== newResourceId;\n }\n\n private isDependentFormPanel(formPanelBase: LMFormPanelBase) {\n if (!formPanelBase) {\n return false;\n }\n\n if (formPanelBase instanceof LMFormPanelFormComponent && !formPanelBase.formSpec.dependentForm) {\n return false;\n }\n\n return true;\n }\n\n private isFormPanelUrlPanel(formPanelBase: LMFormPanelBase) {\n if (!formPanelBase) {\n return false;\n }\n\n return formPanelBase instanceof LMFormPanelUrlComponent;\n }\n\n private markTabsForReload(fromDataViewChgd: boolean, sourceIsPanel?: boolean, originatingList?: string, originatingPanel?: string) {\n const selectedIndex = this.sohoTabsComponent ? this.activeTabIndex : 0;\n const components = this.compositeComponents.toArray();\n components.forEach((compositeComponent, i) => {\n if (this.isDependentFormPanel(compositeComponent)) {\n if (i === selectedIndex ) {\n this.updateCurrentPanelData(compositeComponent, fromDataViewChgd, sourceIsPanel, originatingList, originatingPanel);\n } else {\n if (compositeComponent.activated && compositeComponent.panelDataState !== 'stale_needsReload') {\n compositeComponent.panelDataState = fromDataViewChgd ? 'stale_needsReload' : 'stale_needsRefresh';\n }\n }\n }\n });\n }\n\n private updateCurrentPanelData(compositeComponent: LMFormPanelBase, fromDataViewChgd: boolean, sourceIsPanel?: boolean, originatingList?: string, originatingPanel?: string) {\n if (compositeComponent.activated) {\n this.refreshActivePanel(compositeComponent, fromDataViewChgd, sourceIsPanel, originatingList, originatingPanel);\n } else {\n this.activateFormPanel(compositeComponent);\n }\n }\n\n private refreshActivePanel(compositeComponent: LMFormPanelBase, fromDataViewChgd: boolean, sourceIsPanel: boolean, originatingList?: string, originatingPanel?: string) {\n // compositeComponent.needsReload = false;\n compositeComponent.panelDataState = 'fresh';\n const isFormPanelUrl = compositeComponent instanceof LMFormPanelUrlComponent;\n\n // url form panels are excluded here since they sould be updated if the panel is showing.\n if (fromDataViewChgd && !isFormPanelUrl) {\n // the user changed the dataView from paging operation so\n // the new fromDataView should force the panels to refresh!!!\n return;\n }\n\n // we need to sort out the message passed to the hand coded screens and refreshing the form.\n // if data was updated but keys did not change should be relayed to handcoded apps but also\n // if keys have change.\n // This is used to send a message to the hand coded apps that the panel changed. It was put in primarally for action forms.\n if (isFormPanelUrl) {\n const lmFormPanelUrlComponent: LMFormPanelUrlComponent = compositeComponent as LMFormPanelUrlComponent;\n // form already displayed confirmation message soneed to send one along.\n lmFormPanelUrlComponent.fireFormActionComplete(LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED,\n { message: '', resourceId: this.model.getData().resourceId });\n compositeComponent.refresh().subscribe();\n }\n // user ran an action on a panel!!!\n if (sourceIsPanel) {\n this.refreshFromPanelTransaction(compositeComponent, originatingList, originatingPanel);\n } else {\n compositeComponent.refresh().subscribe();\n }\n }\n\n private refreshFromPanelTransaction(compositeComponent: LMFormPanelBase, originatingList?: string, originatingPanel?: string) {\n // TODO: let move to this code. The formpanel can stop the refresh!\n // const refreshRequest: LMRefreshRequest = {originatingSourceId: originatingList, originatingPanelSourceId: originatingPanel};\n // compositeComponent.refresh(refreshRequest).subscribe(); // DO NOT FORCE REFRESH\n //\n // if (compositeComponent instanceof LMFormPanelDashboardComponent) {\n // // force panels to relayout in case a resize happens after this panel has been activated\n // // but the user resized the browser when on another tab.\n // (compositeComponent as LMFormPanelDashboardComponent).refreshPanels(); // why would this need to be done here.\n // }\n\n // if a list or other panel triggered the event they\n // should have refreshed themselves!!!\n const activePanelChanged = compositeComponent.panelId !== originatingPanel;\n const refreshRequest: LMRefreshRequest = {originatingSourceId: originatingList};\n if (activePanelChanged) {\n compositeComponent.refresh().subscribe(); // DO NOT FORCE REFRESH\n } else {\n if (compositeComponent instanceof LMFormPanelListComponent\n || compositeComponent instanceof LMFormPanelMultiListComponent\n || compositeComponent instanceof LMFormPanelDashboardComponent) {\n // need to call list refresh because the list transaction may have begun in\n // a list detail section, in that case we need to refresh the panel list\n // need to call refresh on mulit list and dashboard to refresh the other widgets in the panel\n compositeComponent.refresh(refreshRequest).subscribe();\n }\n\n if (compositeComponent instanceof LMFormPanelDashboardComponent) {\n // force panels to relayout in case a resize happens after this panel has been activated\n // but the user resized the browser when on another tab.\n (compositeComponent as LMFormPanelDashboardComponent).refreshPanels(); // why would this need to be done here.\n }\n // if a list or other panel triggered the event they\n // should have refreshed themselves!!!\n }\n }\n\n private selectSohoTab(tabId: string) {\n if (this.sohoTabsComponent) {\n this.sohoTabsComponent.select('#' + tabId);\n }\n }\n\n findNearestVisibleValidPanel(selectedIndex: number): LandmarkPanel {\n\n for (let i = selectedIndex; i > -1; i--) {\n const panel = this.panels[i];\n if (!panel.hidden && panel.isValid) {\n return panel;\n }\n }\n\n for (let i = selectedIndex, length = this.panels.length; i < length; i++) {\n const panel = this.panels[i];\n if (!panel.hidden && panel.isValid) {\n return panel;\n }\n }\n\n return null;\n }\n\n isModified(): boolean {\n // composite form ( context form and form panels)\n if (this.model.isDirty) {\n return true;\n }\n\n if (this.dashboardViewComponent) {\n return this.dashboardViewComponent.isModified();\n } else {\n const formPanels: LMFormPanelBase[] = this.compositeComponents.toArray();\n for (let i = 0, len = formPanels.length; i < len; i++) {\n const formPanel = formPanels[ i ];\n if (formPanel.isDirty()) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // called from lm-form.component handleTransactionStatus() when setting an error on a form field; if form panel is\n // set for lazy loading, need to indicate to initialize (render) the form panel before setting the error message on the field\n canActivatePanel(fieldId): boolean {\n if (!this.useLazyLoadForm) {\n return false;\n }\n\n const panelIds: Array = this.lmFormPanelBaseService.getPanelIdsForFieldId(fieldId);\n\n // iterate the panelIds array to find the first panel that meets the criteria\n for (let index = 0, len = panelIds.length; index < len; index++) {\n const panelId = panelIds[ index ];\n const aryPanels = this.panels.filter( (panel) => (panel.id === panelId && !panel.hidden && panel.type === 'form' && !panel.initialized) );\n\n if (aryPanels.length > 0) {\n // render the panel\n aryPanels[0].initialized = true;\n return true;\n }\n }\n\n return false;\n }\n\n runRefresh() {\n // do nothing -- listening to model events!!!\n }\n\n runSaveAction(): Observable {\n if (this.dashboardViewComponent && this.dashboardViewComponent.isModified()) {\n return this.dashboardViewComponent.runSaveAction();\n }\n\n const formPanels: LMFormPanelBase[] = this.compositeComponents.toArray();\n // todo dpb selectedFormPanel isn't used. Please review.\n const selectedFormPanel: LMFormPanelBase = formPanels[ this.selectedPanelIndex ];\n const selectedFormPanelId = selectedFormPanel ? selectedFormPanel.panelId : '';\n\n return new Observable(observer => {\n this.runSavePanels(formPanels).subscribe(\n (continueOn: boolean) => {\n formPanels.forEach(savedPanel => {\n // if the form changes, it will send an event to tell the current panel\n // to update. All other activated tabs should be mark needs reload or refresh\n if (selectedFormPanelId === savedPanel.panelId && savedPanel.activated && savedPanel.panelDataState !== 'stale_needsReload') {\n savedPanel.panelDataState = 'stale_needsRefresh';\n }\n });\n // this.markTabsForReload(false, false);\n observer.next(continueOn);\n observer.complete();\n },\n (err => {\n const errorPanel: LMFormPanelBase = err;\n if (errorPanel) {\n this.sohoTabsComponent.select('#' + errorPanel.panelId);\n observer.next(false);\n observer.complete();\n }\n }));\n\n });\n }\n\n private updateVisibleWhenTabs() {\n this.lmFormPanelBaseService.updateCompositePanels(this.formSpec.busFormSpec, this.model, false);\n\n if (this.formSpec.busFormSpec.implementsDashBoardView) {\n this.panelVisibilityUpdateTimeStamp = this.lmFormPanelBaseService.getPanelDisplayStateLastChanged();\n\n if (this.dashboardViewComponent) {\n setTimeout(() => this.dashboardViewComponent.refreshHomepage(true));\n }\n\n return;\n }\n\n const isShowingSinglePanel = !this.hasTabs && this.singlePanel;\n this._calculateHasTabs();\n\n if (isShowingSinglePanel && !this.hasTabs) {\n const newSinglePanel = this.findNearestVisibleValidPanel(this.selectedPanelIndex);\n const newSinglePanelId = newSinglePanel ? newSinglePanel.id : '';\n if (this.singlePanel.id !== newSinglePanelId) {\n this.singlePanel.selected = false;\n this._hasPendingSelection = true;\n this._pendingSelectedPanel = newSinglePanel;\n this._singlePanel = null; // this is need to clear out the single panel angular template\n }\n return;\n }\n\n this._setSinglePanel();\n // case multi panels showing (tabs)\n const selectedPanel = this.panels[ this.selectedPanelIndex ];\n if (selectedPanel.hidden || !selectedPanel.isValid) {\n selectedPanel.selected = false;\n const nearestPanel = this.findNearestVisibleValidPanel(this.selectedPanelIndex);\n\n if (nearestPanel) {\n nearestPanel.selected = true;\n if (this.sohoTabsComponent) {\n setTimeout(() => this.selectSohoTab(nearestPanel.id), 1);\n this.runHandleResizeTabsComponent = true;\n }\n }\n }\n }\n\n private handlePendingSelection() {\n this._setSinglePanel();\n\n if (this._pendingSelectedPanel) {\n this._pendingSelectedPanel.selected = true;\n const pendingSelectionId = this._pendingSelectedPanel.id;\n this._pendingSelectedPanel = null;\n\n if (this.hasTabs) {\n setTimeout(() => this.selectSohoTab(pendingSelectionId), 1);\n }\n }\n }\n\n saveComponentState(): void {\n this.compositeComponents.toArray()\n .forEach(compositeComponent =>\n compositeComponent.saveCompositeComponentState());\n }\n\n clearComponentState(): void {\n this.compositeComponents.toArray()\n .forEach(compositeComponent =>\n compositeComponent.clearCompositeComponentState());\n }\n\n trackById(index: number, panel: LandmarkPanel): string {\n return panel.id;\n }\n\n private runSavePanels(formPanels: LMFormPanelBase[]): Observable {\n\n this.lmBusyIndicatorService.showBusyIndicator();\n const saveWorker: LMPanelSaveWorker = new LMPanelSaveWorker(formPanels);\n return saveWorker.start();\n }\n\n public get componentDestroyed(): boolean {\n return this.m_componentDestroyed;\n }\n\n protected setComponentDestroyed() {\n this.m_componentDestroyed = true;\n }\n\n useAlternateTabs() {\n return (!this.verticalTabs && !this.useThemeColor) || this.parentIsModal;\n }\n\n isPersonalizable() {\n return !this.verticalTabs && this.useThemeColor && !this.parentIsModal;\n }\n\n onVisibleWhenEvent(elementRef: ElementRef) {\n if ((elementRef?.nativeElement?.parentElement as HTMLElement)?.closest('.lm-composite-content-area')) {\n this.doRecalculateHeight = true;\n }\n }\n}\n","\n
        \n \n
        \n\n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
        \n
        \n
        \n \n \n \n
        \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n <\n
        \n
        \n \n
        \n \n \n \n \n \n \n
        \n
        \n
        \n\n\n
        \n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input, OnDestroy,\n OnInit,\n Output,\n ViewContainerRef\n} from '@angular/core';\nimport { LMModel } from '@form/model';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport { LMFormContentBase } from './lm-form.model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMBusyIndicatorService, LMComponentInfoService, LMLoggerService } from '@services/index';\nimport { BehaviorSubject, combineLatest, Observable, ObservedValueOf, Subscription } from 'rxjs';\nimport { LMInvalidFieldEvent } from '@field/lm-field-base.component';\nimport { LMFormSpecUtilService } from './services';\nimport { LMCtrlShiftClickBaseComponent } from '@base/index';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMUrlDocSaveResult } from '@html/index';\nimport { LMManualRepresentationComponent } from '@field/manualrepresentation';\nimport { LMGlobalUtilService } from '@app/utils';\n\n@Component({\n selector: 'lm-form-content-form',\n templateUrl: './lm-form-content-form.component.html',\n styleUrls: [ './lm-form-content-form.component.scss' ],\n providers: [ LMFormPagingService ]\n})\nexport class LMFormContentFormComponent extends LMCtrlShiftClickBaseComponent implements LMFormContentBase, OnInit, AfterViewInit, OnDestroy {\n // Set height dynamically. ()\n @HostBinding('style.height') @Input() height = 'auto';\n\n // DON'T USE full-width class. form .row already has padding on\n // causing 20px on the right side of the form . There is no padding for the\n // top and left. And last component class adds 30px padding to the bottom.\n // top - 30px, right - 10px, bottom - 0px, left - 30px\n // LMCLIENT-28071 - need 20px bottom for context forms\n @HostBinding('style.padding')\n get padding() {\n let bottom = '0';\n\n if (this.formOptions?.isMultiSelectContent) {\n return null;\n }\n\n if (this.isTemplateForm) {\n return '0 10px';\n }\n\n if (this.formSpec.isContextForm) {\n bottom = '20px';\n }\n\n if (this.formOptions?.isDashBoardContent) {\n return this.lmFormService && !this.lmFormSpecUtilService.isSearchForm(this.formSpec) ? `0 10px 10px 15px` : '';\n }\n\n // Less padding for mobile (phones)\n if (window.innerWidth <= 610 - 1) {\n return this.lmFormService && !this.lmFormSpecUtilService.isSearchForm(this.formSpec) ? `15px 10px ${bottom} 10px` : '';\n }\n\n if (this.formOptions?.actionFormDialogData) {\n return null;\n }\n\n return this.lmFormService && !this.lmFormSpecUtilService.isSearchForm(this.formSpec) ? `30px 10px ${bottom} 20px` : '';\n }\n\n // TODO: formSpec is not always LMFormSpec\n @Input() formSpec: LMFormSpec;\n @Input() formOptions: LMFormOptions = null;\n @Input() isTemplateForm: boolean;\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n @Input() activatedTabChanged: boolean;\n @Input() hideBusyIndicator: boolean;\n @Input() parentIsModal: boolean;\n\n @Output() dataViewLoaded: EventEmitter = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n private instanceId: string;\n\n constructor(\n public lmComponentInfoService: LMComponentInfoService,\n private lmFormService: LMFormService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmLoggerService: LMLoggerService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n public elementRef: ElementRef,\n private lmHtmlUrlDocService: LMHtmlUrlDocService,\n private lmGlobalUtilService: LMGlobalUtilService\n ) {\n super(lmComponentInfoService);\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n // events\n onDataViewLoaded(dataView: LMDataView) {\n this.dataViewLoaded.emit(dataView);\n }\n\n onFieldEvent(event) {\n if ('FieldInvalidEvent' === event.eventType) {\n const fieldChangedEvent = event as LMInvalidFieldEvent;\n fieldChangedEvent.alert.scrollIntoView(false);\n }\n\n this.fieldEvent.emit(event);\n }\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit' ]);\n if (this.hideBusyIndicator) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n }\n\n ngOnDestroy() {\n // if (this.routerEventsSubscription) {\n // this.routerEventsSubscription.unsubscribe();\n // }\n }\n\n // /***********************************************\n // * PUBLIC METHODS\n // ***********************************************/\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n const pagingUrls: LMFormPagingUrls = (this.model) ? this.model.getPagingUrls() : undefined;\n const isContextForm = (this.formSpec.busFormSpec && this.formSpec.isContextForm) || !this.formSpec.busFormSpec;\n const message = '';\n let resourceInfo = (this.formSpec && this.formSpec.resourceInfo) ? this.formSpec.resourceInfo : undefined;\n resourceInfo = (!resourceInfo && this.formSpec && this.formSpec.busFormSpec && this.formSpec.busFormSpec.resourceInfo) ? this.formSpec.busFormSpec.resourceInfo : undefined;\n\n let formInfo: LMComponentInfo;\n\n if (isContextForm) {\n\n const lmBusFormSpec: LMBusFormSpec = this.formSpec.busFormSpec ? this.formSpec.busFormSpec : this.buildBusFormSpec(this.formSpec);\n const compConfigInfo = {};\n compConfigInfo['configuration'] = this.formSpec ? this.formSpec.configuration : undefined;\n compConfigInfo['personalization'] = this.formSpec ? this.formSpec.personalization : undefined;\n compConfigInfo['configStamp'] = this.formSpec ? this.formSpec.configStamp : undefined;\n compConfigInfo['classConfigStamp'] = this.formSpec ? this.formSpec.classConfigStamp : undefined;\n\n formInfo = {\n componentType: 'CONTEXT_FORM',\n name: this.formSpec ? lmBusFormSpec.name : undefined,\n contextFormSpec: lmBusFormSpec ? lmBusFormSpec : undefined,\n type: this.formSpec ? lmBusFormSpec.formType : 'Standard',\n configInfo: compConfigInfo,\n lpl: this.formSpec ? lmBusFormSpec.lpl : undefined,\n resourceInfo,\n hasConfigAccess: this.lmComponentInfoService.hasConfigAccess(),\n message: message.length > 0 ? message : undefined,\n };\n\n if (pagingUrls) {\n formInfo.nextRecordUrl = pagingUrls.nextRecordUrl;\n formInfo.previousRecordUrl = pagingUrls.previousRecordUrl;\n formInfo.reloadRecordUrl = pagingUrls.reloadRecordUrl;\n }\n }\n return formInfo;\n }\n\n // this is passed in as an any since we have defined the input as a LMFormSpec but sometimes we pass a LMBusFormSpec.\n // The input accepts the improper type without error but trying to access values throws compile errors.\n private buildBusFormSpec(formSpec: any): LMBusFormSpec {\n const lmBusFormSpec: LMBusFormSpec = {\n name: formSpec.name,\n // type: formSpec.formType,\n configuration: formSpec.configuration,\n personalization: formSpec.personalization,\n configStamp: formSpec.configStamp,\n classConfigStamp: formSpec.classConfigStamp,\n\n lpl: formSpec.lpl\n };\n return lmBusFormSpec;\n }\n\n public isModified(): boolean {\n return this.model.isDirty;\n }\n\n runRefresh() {\n // NOTHING TO REFRESH OUTSIDE THE DATAVIEW\n }\n\n runSaveAction(): Observable {\n\n return new Observable(observer => {\n\n // process here should be to try to save the manual reps first and if they do not save properly do not save the form.\n\n if (this.model.hasManualRepFileds) {\n const refs: LMManualRepresentationComponent[] = this.lmHtmlUrlDocService.getManualRefCompRefs();\n const manualRepSaves = [];\n for(const comp of refs) {\n const manRepObservable: BehaviorSubject = comp.runSave();\n manualRepSaves.push(manRepObservable);\n }\n const combineSubscrption = combineLatest(manualRepSaves).subscribe(\n res => {\n const hasErrors = res.filter( (saved: LMUrlDocSaveResult ) => saved.isError === true);\n const complete = res.filter( (saved: LMUrlDocSaveResult ) => saved.isComplete !== true);\n if (hasErrors.length) {\n this.lmGlobalUtilService.displayToastMessage(\"\", (hasErrors[0] as LMUrlDocSaveResult).message, 'unknown');\n observer.next(false);\n observer.complete();\n this.cleanupManualRepSave(combineSubscrption, manualRepSaves);\n } else if (complete.length) {\n // got no errors but not all are complete so keep going\n } else {\n observer.next(true);\n observer.complete();\n this.cleanupManualRepSave(combineSubscrption, manualRepSaves);\n }\n },\n );\n } else {\n // NOTHING TO SAVE OUTSIDE OF THE DATAVIEW\n observer.next(true);\n observer.complete();\n }\n\n });\n }\n\n cleanupManualRepSave(combineSubscrption: Subscription, res: any[]) {\n combineSubscrption.unsubscribe();\n res.map( (item: BehaviorSubject) => {item.complete()});\n }\n\n saveComponentState(): void {\n // noop\n }\n\n clearComponentState(): void {\n // noop\n }\n}\n","
        \n \n
        \n\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewContainerRef, OnDestroy } from '@angular/core';\n\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMModel, LMModelChangedEvent } from './model/lm-model';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\n\nexport class LMInstanceCountChartEvent implements LMFieldEvent {\n layoutObject: LMChartField;\n event: Event;\n eventType: LMFieldEventType;\n\n constructor(event: Event, layoutObject: LMChartField) {\n this.eventType = 'InstanceCountChartEvent';\n this.event = event;\n this.layoutObject = layoutObject;\n }\n}\n\n@Component({\n selector: 'lm-form-content-instancechart',\n providers: [],\n templateUrl: 'lm-form-content-instance-count.component.html',\n styleUrls: [ 'lm-form-content-instance-count.component.scss' ]\n})\n\nexport class LMFormContentInstanceCountComponent implements AfterViewInit, OnInit, OnDestroy {\n\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions = null;\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() chartFields: Array;\n @Input() set fromDataView(dataView: LMDataView) {\n this._fromDataView = dataView;\n this.build();\n }\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n public instanceCountFields: Array;\n\n private subscriptionArray: Array = [];\n private _fromDataView: LMDataView;\n\n constructor(\n private lmLoggerService: LMLoggerService,\n private lmFormatUtilService: LMFormatUtilService\n ) {}\n\n ngOnInit() {\n this.build();\n\n this.subscriptionArray.push(this.model.modelChanged\n .subscribe((modelChangedEvent: LMModelChangedEvent) => {\n\n if (modelChangedEvent.eventType === 'set') {\n this.build();\n }\n })\n );\n }\n\n ngAfterViewInit() {\n // this.lmLoggerService.log([ this, 'ngAfterViewInit', 'this.form.valid=', this.form.valid ]);\n }\n\n ngOnDestroy() {\n // clean up all subscriptions\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.subscriptionArray = [];\n }\n\n selectImage(event) {\n const chartFields = this.chartFields ? this.chartFields : this.formSpec.busFormSpec.chart.fields;\n const id = event.currentTarget.getAttribute('id');\n for (let i = 0, len = chartFields.length; i < len; i++) {\n const field = chartFields[ i ];\n if (field.id === id) {\n if (field.type === 'navigation') {\n this.fieldEvent.emit(new LMInstanceCountChartEvent(event, field));\n }\n break;\n }\n }\n }\n\n trackById(index: number, instanceCharts: LMInstanceChartSpec): string {\n return instanceCharts.id;\n }\n\n private build() {\n const fields: Array = [];\n const chartFields: LMChartField[] = this.chartFields ? this.chartFields : this.formSpec.busFormSpec.chart.fields;\n\n chartFields.forEach((chartField: LMChartField) => {\n if (this.specFields[ chartField.id ]) {\n const specField: LMSpecField = this.specFields[ chartField.id ];\n\n const field = {\n id: specField.bindId,\n value: this.lmFormatUtilService.numericToDisplay(this.model.getField(specField.bindId).getData(), { displayZero: true }),\n label: this.lmFormatUtilService.formatMessageRule(specField.label, this.model),\n link: (specField.link) ? specField.link : '#'\n };\n\n fields.push(field);\n }\n });\n\n this.instanceCountFields = fields;\n }\n}\n"," 0\">\n \n\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMFormManualRepService } from './lm-form-manual-rep.service';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'lm-form-content-manual-representation',\n providers: [LMFormManualRepService],\n templateUrl: 'lm-form-content-manual-representation.component.html',\n styleUrls: [ 'lm-form-content-manual-representation.component.scss' ]\n})\n\nexport class LMFormContentManualRepresentationComponent implements AfterViewInit, OnInit {\n\n @ViewChild('LMHtmlUrlDoc', { static: true }) htmlDocComponent: LMHtmlUrlDocComponent;\n\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions = null;\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() chartFields: any;\n @Input() set fromDataView(dataView: LMDataView) {\n this._fromDataView = dataView;\n this.build();\n }\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n\n @Output() contentModified = new EventEmitter();\n\n public url: string;\n\n private _fromDataView: LMDataView;\n\n constructor(private lmLoggerService: LMLoggerService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormManualRepService: LMFormManualRepService) {\n }\n\n ngOnInit() {\n this.lmFormManualRepService.setDataView(this.model.getData());\n this.lmFormManualRepService.setFormSpec(this.formSpec);\n\n this.url = 'http://usspnswolynie2.infor.com:2041/uitest/web/samples/iframetest/test.html';\n this.build();\n }\n\n ngAfterViewInit() {\n // this.lmLoggerService.log([ this, 'ngAfterViewInit', 'this.form.valid=', this.form.valid ]);\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n public isModified(): boolean {\n return this.htmlDocComponent.isModified();\n }\n\n runRefresh() {\n // TODO Stan this is called when the user runs a form refresh\n // You may want to tell the htmlDocument to refresh\n }\n\n public runSave(): Observable {\n\n return new Observable(observer => {\n this.htmlDocComponent.runSave();\n observer.next(true);\n observer.complete();\n\n });\n }\n\n private build() {\n // this.formState\n }\n}\n","\n\n\n\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormContentBase } from './lm-form.model';\nimport { lmMatrixRowFormatter } from '@list/formatters/lm-matrixrow-formatter';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMModelChangedEvent } from './model';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LMFormContext, LMFormMatrixService, LMFormPagingService } from './services';\nimport { LMFormTransactionService } from './services/lm-form-transaction.service';\nimport { AppConstants } from '@utils/app.constants';\nimport {\n lmBooleanSerializer,\n lmDateTimeSerializer,\n lmPercentSerializer,\n} from '@list/editors';\nimport { lmLookupClickFunction } from '@list/editors/lm-lookup-click.function';\nimport {\n LMActionService,\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService,\n LMUrlUtilService\n} from '@services/index';\n\nimport * as urltemplate from 'url-template';\nimport { LMGlobalUtilService } from '@app/utils';\nimport { SohoDataGridComponent } from 'ids-enterprise-ng';\n\n/**\n * Created by dboehm on 11/22/2017.\n */\n@Component({\n selector: 'lm-form-content-matrix',\n templateUrl: 'lm-form-content-matrix.component.html',\n styleUrls: ['lm-form-content-matrix.component.scss'],\n providers: [ LMFormMatrixService, LMFormatterService ]\n})\nexport class LMFormContentMatrixComponent implements AfterViewInit, OnInit, OnDestroy, LMFormContentBase {\n @Input() formUrlInfo: LMFormUrlInfo\n @Input() formSpec: LMFormSpec;\n @Input() formOptions: LMFormOptions = null;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() matrixFormSpec: LMBusMatrixFormSpec;\n @Input() matrixView: LMDataView;\n @Input() columnList: Array;\n\n @Output() dataViewLoaded: EventEmitter = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() matrixActionEvent = new EventEmitter();\n\n @ViewChild('SohoDataGrid') sohoDataGridComponent: SohoDataGridComponent;\n @ViewChild('matrixDialog', { read: ViewContainerRef, static: true }) matrixDialog: ViewContainerRef;\n\n public contextForm: LMContextForm;\n public frozenColumnWidth = 300;\n public showRowFilter = false;\n public showDateRangeFilter = false;\n\n public get datagridId(): string {\n if (!this.matrixFormSpec) {\n return null;\n }\n return this.matrixFormSpec.name + '_datagrid';\n }\n\n public dateModel = { date: ''};\n public sohoDatePickerOptions: SohoDatePickerOptions;\n public uiLoadingIndicatorTimeout = 0;\n\n private subscriptionManager: Subject = new Subject();\n private showMoreButtonText: string;\n private showLessButtonText: string;\n private showDetailFields = false;\n\n constructor(\n private ngZone: NgZone,\n private lmActionService: LMActionService,\n protected lmBusyIndicatorService: LMBusyIndicatorService, // todo why is this protected?\n private lmConditionUtilService: LMConditionUtilService,\n private lmContextService: LMContextService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormMatrixService: LMFormMatrixService,\n private lmFormTransactionService: LMFormTransactionService,\n private lmFormPagingService: LMFormPagingService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatterService: LMFormatterService,\n ) {\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit(): void {\n this.contextForm = this.matrixFormSpec.contextForm;\n\n if (this.formState.contextFormExpanded === undefined) {\n this.formState.contextFormExpanded = true;\n }\n\n this.showMoreButtonText = Soho.Locale.translate('ShowMore');\n this.showLessButtonText = Soho.Locale.translate('ShowLess');\n\n if (this.matrixFormSpec.dateFilterFieldId) {\n this.showDateRangeFilter = true;\n\n this.sohoDatePickerOptions = {\n placeholder: 'MM/yyyy',\n showMonthYearPicker: true,\n hideDays: true,\n dateFormat: 'MM/yyyy'\n }\n }\n\n // TODO: Not yet implemented\n // if (this.matrixFormSpec.rowSearchField) {\n // this.showRowFilter = true;\n // }\n }\n\n get contextFormExpanderButtonText(): string {\n return this.formState.contextFormExpanded ? this.showLessButtonText : this.showMoreButtonText;\n }\n\n ngAfterViewInit() {\n if (this.contextForm) {\n // initialize collapsible context form.\n $('.expandable-area').expandablearea()\n .on('expand', () => this.formState.contextFormExpanded = true)\n .on('collapse', () => this.formState.contextFormExpanded = false);\n }\n\n this.initialize();\n this.addListeners();\n }\n\n ngOnDestroy() {\n this.subscriptionManager.next();\n this.subscriptionManager.complete();\n }\n\n public isModified(): boolean {\n return this.getDirtyCells().length > 0;\n }\n\n public runMatrixToggleDetail(showDetail: boolean) {\n this.showDetailFields = showDetail;\n this.sohoDataGridComponent.data = this.buildMatrixData(this.matrixView.rowSet);\n }\n\n public runRefresh(): void {\n // do nothing because the model may not be updated yet.\n // listening to the model.dataUpdated event to refresh the data\n }\n\n public runSaveAction(): Observable {\n return new Observable(observer => {\n this.markCellDataViewsChanged();\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n const formActions = this.formSpec.busClassSpec.actions;\n const actionIndexes = this.matrixView.actionIndexes;\n const actionSpec = this.lmActionService.getDefaultUpdateAction(formActions, actionIndexes, true, true);\n\n this.lmFormTransactionService.runSaveAction(formContext, actionSpec, this.matrixView).subscribe(\n transactionState => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // TODO DPB\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (result) {\n this.handleTransactionStatus(result);\n if (transactionState.isSuccess()) {\n // this.model.setData(result.dataView, { source: { type: 'transaction' } }); // need to test this, want to make sure that the context form is updated\n const title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ActionCompletedSuccessfully'), [result.actionSpec.label]);\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.clearDirty();\n }\n }\n }\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n observer.next(transactionState.isSuccess());\n observer.complete();\n });\n });\n }\n\n private markCellDataViewsChanged() {\n if (this.sohoDataGridComponent) {\n // const dirtyCells: Array = this.sohoDataGridComponent.dirtyCells();\n // DPB hack until soho update to return dirty cells\n const hackedSohoDataGrid: any = this.sohoDataGridComponent;\n const dirtyArray: Array = hackedSohoDataGrid.datagrid.dirtyArray;\n const rowData = this.matrixView.rowSet.data;\n for (let i = 0, l = rowData.length; i < l; i++) {\n const rowDataView = rowData[i];\n const dirtyRow = dirtyArray[i];\n if (dirtyRow !== undefined) {\n for (let j = 0, jl = dirtyRow.length; j < jl; j++) {\n const dirtyColumn = dirtyRow[j];\n if (dirtyColumn !== undefined && dirtyColumn.isDirty) {\n const cellDataView = rowDataView.data[j - 1];\n if (cellDataView) {\n cellDataView.matrixCellChanged = true;\n }\n }\n }\n }\n }\n }\n }\n\n private handleTransactionStatus(result: LMActionResult) {\n if (result.status === AppConstants.VIEW_EXCEPTION) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status);\n } else if (result.status !== AppConstants.STATUS_COMPLETED && result.status !== AppConstants.CONFIRMATION_REQUIRED) {\n // If the status is confirmation required, it may be due to the user cancelling out of runtime confirmation.\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n }\n }\n saveComponentState(): void {\n }\n\n // EVENT HANDLING\n onDataViewLoaded(dataView: LMDataView) {\n this.dataViewLoaded.emit(dataView);\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n // context form events are handled by the form.component\n this.fieldEvent.emit(event);\n }\n\n onCellChange(event: SohoDataGridCellChangeEvent) {\n if (!event) {\n return;\n }\n\n this.onContentModified(event);\n }\n\n onContextMenu(event: SohoDataGridRowClicked): void {\n }\n\n onRowActivated(event: SohoDataGridRowActivated) {\n }\n\n onRowDeactivated(event: SohoDataGridRowActivated) {\n }\n\n onDateRangeFilter() {\n // If date range has no value reset data to initial\n if (this.dateModel.date.length === 0) {\n\n const urlCompiledTemplate = urltemplate.parse(this.formUrlInfo.initialDataUrl);\n const initialDataUrl = urlCompiledTemplate.expand({ resourceId: this.matrixView.resourceId, actionName: this.formUrlInfo.action });\n\n this.lmFormPagingService\n .loadRecord(initialDataUrl)\n .subscribe((r) => {\n this.update(r);\n },\n error => {\n this.handleError(error);\n });\n } else {\n this.filter(this.dateModel.date);\n }\n }\n\n public onPrevious() {\n const date = this.dateModel.date;\n const month = date.split('/')[0];\n const year = date.split('/')[1];\n const previousYear = new Date(year).getFullYear();\n const months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n const newMonth = months[Number(month) - 1]\n const newDate = `${newMonth === 0 ? 12 : newMonth}/${newMonth === 0 ? previousYear : year}`;\n this.filter(newDate);\n\n this.dateModel.date = newDate;\n }\n\n public onNext() {\n const date = this.dateModel.date;\n const month = date.split('/')[0];\n const year = date.split('/')[1];\n const nextYear = new Date(year).getFullYear() + 2;\n const months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n const newMonth = months[Number(month)]\n const newDate = `${newMonth === 13 ? '01' : newMonth}/${newMonth === 13 ? nextYear : year}`;\n this.filter(newDate);\n\n this.dateModel.date = newDate;\n }\n\n private filter(date: string) {\n const url = this.lmUrlUtilService.getMatrixDateFilterUrl(this.formUrlInfo, this.matrixView.resourceId, date, this.matrixFormSpec.dateFilterFieldId);\n this.lmFormPagingService\n .loadRecord(url)\n .subscribe((r) => {\n this.update(r);\n },\n error => {\n this.handleError(error);\n });\n }\n\n /** Used to Get checkbox in header\n * @param event\n */\n onDataGridClicked(event: MouseEvent) {\n if (event.target === undefined) {\n return;\n }\n\n const target = event.target as HTMLElement;\n\n if ((target.nodeName && target.nodeName !== 'LABEL') || !target.classList.contains('lm-checkbox-label')) {\n return\n }\n\n const displayFieldIndex = Number(target.dataset.displayfieldindex);\n const displayField = this.matrixFormSpec.columns[displayFieldIndex];\n const dataView = this.matrixView.columnList[target.dataset.columnindex];\n const element = target.closest('DIV').querySelectorAll('input')[0];\n\n // Wait for datagrid to update checkbox to ensure 'element.checked' is in the right state\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.runColumnCheckControlAction(displayField, dataView, element.checked, element);\n })\n });\n }\n\n onRowClicked(event: SohoDataGridRowClicked) {\n if (event && event.originalEvent) {\n const eventTarget = event.originalEvent.target as HTMLElement;\n\n // Safety check\n if (event.item === undefined || event.item.data === undefined || eventTarget.dataset === undefined) {\n return;\n }\n\n const column = event.cell;\n const rowDataView: LMDataView = event.item;\n const cellDataView: LMDataView = rowDataView.data[column];\n const displayField: LMListDisplayField = eventTarget.dataset.navigationParams ? JSON.parse(eventTarget.dataset.navigationParams) : null;\n\n if (eventTarget.nodeName === 'A') {\n this.lmFormMatrixService.runMatrixLinkNavigation(this.formUrlInfo, this.formSpec, cellDataView, displayField);\n }\n\n if (eventTarget.nodeName === 'LABEL' && displayField.type === AppConstants.CHECKCONTROL) {\n const element = eventTarget.closest('DIV').querySelectorAll('input')[0];\n this.toggleCheckBox(element);\n this.runCellCheckControlAction(displayField, cellDataView, element.checked, element);\n }\n }\n }\n\n onRunMatrixActionEvent(event): Observable {\n this.matrixActionEvent.emit(event);\n return this.matrixActionEvent;\n }\n\n onRowDoubleClicked(event: SohoDataGridRowClicked): void {\n }\n\n onRowSelected(event: SohoDataGridSelectedEvent) {\n }\n\n private isChecked(displayField, cellDataView): boolean {\n if (displayField.hasCheckedState) {\n return cellDataView.fields[displayField.bindId].value as boolean;\n }\n\n return false;\n }\n\n private runColumnCheckControlAction(\n displayField: LMListDisplayField,\n dataView: LMDataView,\n isChecked?: boolean,\n element?: HTMLInputElement\n ) {\n const validActions = this.lmFormMatrixService.getValidCheckControlActions(displayField, dataView, isChecked);\n\n this.onRunMatrixActionEvent({actionTarget: 'column', actionSpec: validActions[0], dataView, callBack: {\n next: (complete) => {\n if (element && !complete) {\n this.toggleCheckBox(element);\n }\n },\n error: (err) => {\n // console.log('error')\n },\n complete: (c) => {\n // console.log('done')\n }\n }});\n }\n\n private runCellCheckControlAction(\n displayField: LMListDisplayField,\n dataView: LMDataView,\n isChecked?: boolean,\n element?: HTMLInputElement\n ) {\n const validActions = this.lmFormMatrixService.getValidCheckControlActions(displayField, dataView, isChecked);\n\n this.onRunMatrixActionEvent({actionTarget: 'cell', actionSpec: validActions[0], dataView, callBack: {\n next: (complete) => {\n if (element && !complete) {\n this.toggleCheckBox(element);\n }\n },\n error: (err) => {\n // console.log('error')\n },\n complete: (c) => {\n // console.log('done')\n }\n }});\n }\n\n private toggleCheckBox(checkboxElement: HTMLInputElement) {\n checkboxElement.checked = !checkboxElement.checked ;\n }\n\n private initialize(): void {\n this.matrixView = this.model.getData();\n this.sohoDataGridComponent.gridOptions = Object.assign({}, this.buildDataGridOptions());\n\n if (this.matrixView.rowSet) {\n this.sohoDataGridComponent.data = this.buildMatrixData(this.matrixView.rowSet);\n } else {\n this.sohoDataGridComponent.data = [];\n }\n }\n\n private update(matrixView: LMDataView) {\n this.matrixView = Object.assign({}, matrixView);\n this.sohoDataGridComponent.gridOptions = Object.assign({}, this.buildDataGridOptions());\n\n if (this.matrixView.rowSet) {\n this.sohoDataGridComponent.data = this.buildMatrixData(this.matrixView.rowSet);\n } else {\n this.sohoDataGridComponent.data = [];\n }\n }\n\n private addListeners() {\n this.model.modelChanged.pipe(takeUntil(this.subscriptionManager)).subscribe((modelChangedEvent: LMModelChangedEvent) => {\n this.initialize();\n });\n }\n\n private dataGridSource = (request: SohoDataGridSourceRequest, response: SohoDataGridResponseFunction) => {\n // TODO DPB implement with paging and filtering.\n switch (request.type) {\n // case 'initial':\n // this.initialPage(request, response);\n // break;\n //\n // case 'first':\n // this.firstPage(request, response);\n // break;\n //\n // case 'last':\n // this.lastPage(request, response);\n // break;\n //\n // case 'next':\n // this.nextPage(request, response);\n // break;\n //\n // case 'prev':\n // this.previousPage(request, response);\n // break;\n //\n // case 'sorted':\n // this.sortPage(request, response);\n // break;\n //\n // case 'filtered':\n // this.filterPage(request, response);\n // break;\n //\n // case 'refresh':\n // this.reloadPage(request, response);\n // break;\n }\n };\n\n public buildDataGridOptions(): SohoDataGridOptions {\n const gridOptions: SohoDataGridOptions = {\n selectable: 'single',\n cellNavigation: true,\n sizeColumnsEqually: true,\n columns: this.buildGridColumnHeaders(),\n disableClientSort: true,\n disableClientFilter: true,\n indeterminate: true,\n menuId: this.matrixFormSpec.name + '_ContextMenu',\n editable: !this.matrixFormSpec.matrixFormNotEditable,\n paging: false,\n pagesize: 10,\n pagesizes: [5, 10, 20, 50, 100],\n showPageSizeSelector: false,\n filterable: this.matrixFormSpec.rowSearchField !== undefined, // DPB this is not needed if the affordance is not in the filterbar\n rowHeight: 'short', // (short, medium or normal)\n saveUserSettings: {\n columns: false,\n rowHeight: false,\n sortOrder: false,\n pagesize: false,\n activePage: false,\n filter: false\n },\n toolbar: null,\n actionableMode: true,\n showDirty: true, // works in conjunction with rowStatus column:\n };\n\n // Set frozen columns\n gridOptions.frozenColumns = this.getFrozenColumns();\n\n return gridOptions;\n }\n\n private buildGridColumnHeaders(): SohoDataGridColumn[] {\n const columnHeaderList: SohoDataGridColumn[] = [];\n\n // ROW STATUS HEADER\n if (!this.matrixFormSpec.matrixFormNotEditable) {\n const rowStatus: ListGridColumn = {\n id: 'rowStatus',\n sortable: false,\n resizable: false,\n width: 25,\n formatter: Soho.Formatters.Status,\n align: 'center'\n };\n\n columnHeaderList.push(rowStatus);\n }\n\n // MATRIX ROW SET HEADER\n columnHeaderList.push(this.buildRowColumnHeader());\n\n // MATRIX COLUMN SET HEADER\n if (this.matrixView.columnList) {\n this.matrixView.columnList.forEach((h, index) => columnHeaderList.push(this.buildMatrixColumnHeader(index, h)));\n }\n\n return columnHeaderList;\n }\n\n private getFrozenColumns() {\n return { left: ['ROW_HEADER'], right: [] };\n }\n\n private buildRowColumnHeader(): ListGridColumn {\n const listGridColumn: ListGridColumn = {};\n listGridColumn.id = 'ROW_HEADER';\n listGridColumn.matrixIndex = 0;\n listGridColumn.formatter = this.LMMatrixRowFormatter;\n listGridColumn.sortable = false;\n listGridColumn.name = '';\n listGridColumn.width = `${this.frozenColumnWidth}px`;\n\n this.matrixFormSpec.columns.forEach((displayField: LMListDisplayField) => {\n if (displayField.condition) {\n if (this.lmConditionUtilService.isValid([displayField.condition], this.matrixView)) {\n return;\n }\n }\n\n const title = displayField.label\n ? this.lmFormatUtilService.formatMessageRule(displayField.label, this.matrixView)\n : '';\n\n listGridColumn.name = `${listGridColumn.name}
        ${title}
        `;\n });\n\n return listGridColumn;\n }\n\n private buildMatrixColumnHeader(id: number, columnDataView: LMDataView): ListGridColumn {\n // TODO are button linke (displayFIeld.navigation and field links (displayField.linkNavigation working in the header\n // Also why are we not checking for displayFIeldVisibiliyt\n let isColumnActionable = false;\n const uniqueIdentifier = `${id + 1}`;\n const listGridColumn: ListGridColumn = {};\n listGridColumn.id = uniqueIdentifier;\n listGridColumn.matrixIndex = id;\n listGridColumn.sortable = false;\n listGridColumn.formatter = this.LMMatrixRowFormatter;\n listGridColumn.name = '';\n\n // iterate the column fields\n this.matrixFormSpec.columns.forEach((listDisplayField: LMListDisplayField, index: number) => {\n if (listDisplayField.condition) {\n if (this.lmConditionUtilService.isValid([listDisplayField.condition], columnDataView)) {\n return;\n }\n }\n const colTitle = listDisplayField.label\n ? this.lmFormatUtilService.formatMessageRule(listDisplayField.label, columnDataView)\n : '';\n\n const fieldId: string = listDisplayField.fieldId;\n const columnField: LMField = columnDataView.fields[fieldId];\n const columnValue = columnField != null ? this.lmFormatUtilService.toDisplayValue(columnField.value, listDisplayField.type) : colTitle;\n let columnFieldHtml = '';\n\n if (AppConstants.CHECKCONTROL === listDisplayField.type) {\n const checkControlId = `${AppConstants.CHECKCONTROL}${index}'_col'${id}`;\n columnFieldHtml = `\n
        \n \n \n
        \n `\n } else {\n const classes = String(columnValue).length > 250 ? 'lm-ellipsis lm-matrix-element' : 'lm-matrix-element';\n columnFieldHtml = `
        ${columnValue}
        `;\n }\n\n listGridColumn.name = `${listGridColumn.name}${columnFieldHtml}`;\n listGridColumn.width = (columnValue < 250) ? `${columnValue.toString().length * 10}px` : '250px';\n\n if (!isColumnActionable) {\n isColumnActionable = listDisplayField.linkNavigation || listDisplayField.type === AppConstants.CHECKCONTROL ? true : false;\n }\n });\n\n listGridColumn.isActionable = isColumnActionable;\n if (!this.matrixFormSpec.matrixFormNotEditable) {\n // Matrix only supports editing the first column field!\n this.setColumnEditor(listGridColumn, id);\n }\n return listGridColumn;\n }\n\n private setColumnEditor(column: ListGridColumn, columnIndex: number): void {\n const cellDisplayField: LMListDisplayField = this.matrixFormSpec.cells[0];\n const cellFieldSpec = this.matrixFormSpec.fields[cellDisplayField.fieldId];\n\n column.displayField = cellDisplayField;\n column.cellFieldSpec = cellFieldSpec;\n column.field = 'data.' + columnIndex + '.fields.' + cellDisplayField.fieldId + '.value';\n // column.editability = landmark.listutil.IsMatrixCellEditable;\n const type = cellDisplayField.type.toUpperCase();\n if (cellDisplayField.type !== AppConstants.CHECKCONTROL) {\n // column.isEditable = this.LMIsEditable;\n }\n\n if (cellDisplayField.isStaticStateField) {\n column.editor = Soho.Editors.Dropdown;\n column.options = this.lmFormatUtilService.fieldStatesToOptionsArray(cellDisplayField.states, false);\n } else if (cellDisplayField.isUserDefinedStateField) {\n column.editor = Soho.Editors.Dropdown;\n column.editorOptions = {\n editable: false,\n // source: this.LMStateFieldSource\n };\n } else {\n switch (type) {\n case AppConstants.NUMERIC:\n case AppConstants.BCD:\n case AppConstants.PERCENT:\n column.editor = Soho.Editors.Input;\n const percentAdjustment: number = (type === AppConstants.PERCENT) ? 2 : 0;\n const allowDecimal: boolean = (cellFieldSpec.decSize !== undefined && cellFieldSpec.decSize - percentAdjustment > 0);\n const decimalLimit: number = (allowDecimal) ? cellFieldSpec.decSize - percentAdjustment : 0;\n const integerLimit: number = (allowDecimal) ? cellFieldSpec.size - decimalLimit : cellFieldSpec.size;\n column.maskOptions = {\n process: 'number',\n patternOptions: {\n allowDecimal,\n allowNegative: !cellDisplayField.positiveOnly,\n integerLimit,\n decimalLimit,\n allowThousandsSeparator: false,\n symbols: {\n decimal: Soho.Locale.numbers().decimal,\n negative: Soho.Locale.numbers().minusSign,\n thousands: Soho.Locale.numbers().group\n }\n }\n };\n\n if (type === AppConstants.PERCENT) {\n column.serialize = this.LMPercentSerializer;\n } else if (type === AppConstants.BCD) {\n column.serialize = this.LMBcdSerializer;\n }\n break;\n\n case AppConstants.YYYYMM:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMPeriodSerializer;\n break;\n\n case AppConstants.TIME:\n column.editor = Soho.Editors.Time;\n column.serialize = this.LMTimeSerializer;\n break;\n\n case AppConstants.TIMESTAMP:\n column.editor = Soho.Editors.Date;\n\n if (column.displayField.displayDateOnly) {\n column.serialize = this.LMDateSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.short;\n\n } else if (column.displayField.displayTimeOnly) {\n column.serialize = this.LMTimestampSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = {\n showDate: false,\n showTime: true,\n dateFormat: Soho.Locale.calendar().dateFormat.time\n };\n\n } else {\n column.serialize = this.LMTimestampSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = {\n secondInterval: 1,\n minuteInterval: 1,\n showTime: true,\n showMonthYearPicker: true,\n dateFormat: Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp\n };\n }\n break;\n\n case AppConstants.MMDD:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMAnniversarySerializer;\n break;\n\n case AppConstants.YYYY:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMYearSerializer;\n column.editorOptions = {showMonthYearPicker: true, hideDays: true, dateFormat: 'yyyy'};\n break;\n\n case AppConstants.YYYYMMDD:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMDateSerializer;\n break;\n\n case AppConstants.BOOLEAN:\n column.editor = Soho.Editors.Dropdown;\n column.serialize = this.LMBooleanSerializer;\n column.options =\n [\n {\n label: Soho.Locale.translate('Yes'),\n value: true\n },\n {\n label: Soho.Locale.translate('No'),\n value: false\n }\n ];\n break;\n\n case AppConstants.TEXT:\n column.editor = Soho.Editors.Input;\n break;\n\n case AppConstants.TEXTAREA:\n column.editor = Soho.Editors.Textarea;\n break;\n\n case AppConstants.CHECKCONTROL:\n // if (column.displayField.validity) {\n // column.isEditable = this.LMIsCheckControlEditable;\n // }\n column.editor = (cellDisplayField.displayAsStar) ? Soho.Editors.Favorite : Soho.Editors.Checkbox;\n break;\n\n case 'CURRENCY':\n case 'ALPHAUPPER':\n case 'ALPHALOWER':\n case 'ALPHARIGHT':\n case 'BINARY':\n column.editor = Soho.Editors.Input;\n column.uppercase = (type === 'ALPHAUPPER');\n if (cellDisplayField.size) {\n column.maxLength = cellDisplayField.size;\n }\n break;\n\n default:\n column.editor = Soho.Editors.Input;\n if (cellDisplayField.size) {\n column.maxLength = cellDisplayField.size;\n }\n break;\n }\n\n if (cellDisplayField.selectable) {\n // todo spec-url-refactor - matrix doens't seem to imeplment the selectListUrl. If we need to impl this\n // in the future if shnould look like how lm-list-grid-builder.service.ts does it.\n // const selectListUrl = this.lmUrlUtilService.buildSelectListUrl(listUrlInfo, displayField.selectListInfo);\n // if (!this.lmContextService.useNewSpecUrls()) {\n // if (this.lmContextService.compareSpecUrls()) {\n // this.lmUrlInfoBuilderService.compareSpecUrls(displayField.bindId + '.selectListUrl', (displayField as any).selectListUrl, selectListUrl);\n // }\n // }\n // TODO DPB need to reexamine lookup select in a matrix\n // column.editor = Soho.Editors.Lookup;\n // column.editorOptions = {\n // editable: true,\n // click: this.LMLookupClickFunction,\n // clickArguments: {\n // column: {\n // displayField: cellDisplayField\n // }\n // }\n // };\n }\n }\n\n }\n\n private buildMatrixData(rowDataViewsSet: LMDataViewSet): LMDataView[] {\n this.lmFormMatrixService.copyStateValuesToCellView(rowDataViewsSet);\n return rowDataViewsSet.data;\n }\n\n private getDirtyCells(): Array {\n if (this.sohoDataGridComponent) {\n return this.sohoDataGridComponent.dirtyCells();\n } else {\n return [];\n }\n }\n\n private handleError(error: any) {\n this.lmErrorUtilService.handleUnexpectedError(error, this.matrixDialog);\n }\n\n LMMatrixRowFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string => lmMatrixRowFormatter(\n this.lmFormatUtilService,\n this.lmConditionUtilService,\n this.matrixFormSpec,\n this.showDetailFields,\n row, cell, value, columnDef, dataView, dataGrid);\n\n // landmark editors\n // LMIsCheckControlEditable: LMListGridColumnIsEditable = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: any, dataGrid: SohoDataGridStatic): boolean => {\n // return isCheckControlEditable(this.lmEditorService, row, cell, value, columnDef, dataView, dataGrid);\n // };\n //\n // LMIsEditable = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): boolean => {\n // return isEditable(this.lmEditorService, this.lmActionService, columnDef, dataView);\n // };\n //\n // LMStateFieldSource = (response: any, searchTerm: any, sourceArguments: any) => {\n // return lmStateFieldSource(this.lmEditorService, this.lmFieldUtilService, this.lmFormatUtilService, response, searchTerm, sourceArguments);\n // };\n\n LMLookupClickFunction = (event: any, lookup: SohoLookupStatic, clickArguments: any) =>\n // todo spec-url-refactor need to set selectListUrl in clickArguments? cannot use selectListUrl from column spec any more.\n lmLookupClickFunction(this.lmFormatUtilService, event, lookup, clickArguments)\n ;\n // landmark serializers\n LMBcdSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string => {\n const decSize: number = columnDef.cellFieldSpec.decSize;\n const precision: number = dataView.fields[ columnDef.field ] && dataView.fields[ columnDef.field ].precision !== undefined\n ? dataView.fields[ columnDef.field ].precision\n : columnDef.cellFieldSpec.decSize;\n\n return this.lmFormatUtilService.bcdToData(value, {decSize, precision});\n };\n\n LMBooleanSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): boolean =>\n lmBooleanSerializer(this.lmFormatterService, this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView);\n\n LMPercentSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmPercentSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView);\n\n LMYearSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYY);\n\n LMPeriodSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYYMM);\n\n LMAnniversarySerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.MMDD);\n\n LMDateSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYYMMDD);\n\n LMTimestampSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.TIMESTAMP);\n\n LMTimeSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.TIME);\n}\n","
        \n
        \n
        \n
        \n \n
        \n
        \n\n
        \n \n
        \n
        \n\n \n
        \n\n\n\n\n\n\n
        \n \n
        \n \n \n
        \n \n
        \n
        \n\n
        \n
        \n
        \n
        \n
        \n \n
        \n\n","import { AfterViewInit, Component, Input, OnInit, ViewContainerRef, EventEmitter, Output } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\n\n@Component({\n selector: 'lm-form-content-menu', // tslint:disable-line\n templateUrl: 'lm-form-content-menu.component.html',\n})\n\nexport class LMFormContentMenuComponent implements AfterViewInit, OnInit {\n\n @Input() layout: LMMenuPanelLayout;\n @Input() formOptions;\n @Input() specFields: LMSpecFields;\n @Input() formSpec: LMFormSpec = null;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n public panels: Array;\n\n constructor() {\n }\n\n ngAfterViewInit() {\n }\n\n ngOnInit() {\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n}\n","\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostListener,\n Input, NgZone,\n OnInit,\n Output, ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { AppConstants, LMTransformOptions } from '@utils/app.constants';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMContextService, LMLoggerService } from '@services/index';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMBrowserUtilService, LMCommonUtilService } from '@utils/index';\nimport { LMFormContentFormComponent } from './lm-form-content-form.component';\nimport { LMFieldUtilService } from '@services/utils';\nimport * as _ from 'lodash';\nimport { LMFormSpecUtilService } from './services';\n\n@Component({\n selector: 'lm-form-content-search',\n templateUrl: 'lm-form-content-search.component.html',\n styleUrls: [ 'lm-form-content-search.component.scss' ]\n})\n\nexport class LMFormContentSearchComponent implements AfterViewInit, OnInit {\n\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions = null;\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n @Input() placeHolder: ViewContainerRef;\n @Input() formPersonalization: LMFormPersonalization;\n @Input() columnarText: string;\n\n @Output() fieldEvent = new EventEmitter();\n @Output() searchButtonClicked = new EventEmitter();\n @Output() clearSearchButtonClicked = new EventEmitter();\n\n @HostListener('window:resize') onResize() {\n this.setMaxHeight();\n }\n\n // Stopping propagation of the enter key event so that a select modal won't close when using a\n // search form to filter a list on a select\n @HostListener('keypress', [ '$event' ]) onKeyPress(event) {\n if (event.which === 13 && event.srcElement.nodeName !== 'BUTTON') {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n }\n\n @ViewChild('LMFormContentForm') lmFormContentForm: LMFormContentFormComponent;\n\n public searchTitle: string = Soho.Locale.translate('Search');\n public clearTitle: string = Soho.Locale.translate('Clear');\n public searchButtonId: string;\n public clearButtonId: string;\n public formContentHeight: string | null;\n private searchFormBindIds: Array;\n private ignoredBindIds: Array = [];\n private instanceId: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private lmBrowserUtilService: LMBrowserUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmLoggerService: LMLoggerService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmContextService: LMContextService,\n private ngZone: NgZone\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()', 'this.model.hasError=', this.model.hasError ]);\n\n // todo ppatton may need list id prefixes as well.\n this.searchButtonId = this.formSpec.formElementId + '_Search_button';\n this.clearButtonId = this.formSpec.formElementId + '_Clear_button';\n\n // IE11 KLUDGE\n if (this.lmBrowserUtilService.isIE11) {\n this.formContentHeight = null;\n } else {\n this.formContentHeight = '100%';\n }\n\n // create an array of all the bindIds on the search form so it knows which dataView fields to use for the query\n this.searchFormBindIds = this.lmCommonUtilService.getBindIdsFromLayout(this.layout, this.specFields);\n\n // Need to ignore the member fields of an array field when it's displayed as a lookup\n // TODO refactor LMModelField to add a getter for type, so we don't need to grab from the dataview.fields\n const dataView = this.model.getData();\n this.searchFormBindIds.forEach((bindId: string) => {\n if ((dataView.fields[bindId] && dataView.fields[bindId].type === 'array') &&\n (this.specFields[bindId] && this.specFields[bindId].selectable)) {\n this.ignoredBindIds = [ ... this.lmCommonUtilService.getBindIdsFromLayout(this.specFields[bindId].layout, this.specFields), ... this.ignoredBindIds ];\n }\n });\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()', 'this.model.hasError=', this.model.hasError ]);\n this.setMaxHeight();\n }\n\n public get isCodeBlockFilter(): boolean {\n return this.lmFormSpecUtilService.isCodeBlockFilter(this.formSpec);\n }\n\n onSearchClicked(event) {\n const filterCriteria = this.getFilterCriteria();\n\n // null indicates that the search is missing a required parameter\n if (filterCriteria !== null) {\n const filterEvent: LMFilterEvent = {\n event,\n filterCriteria\n };\n\n this.lmLoggerService.log([ this, this.instanceId, 'onSearchClicked()', filterEvent ]);\n this.searchButtonClicked.emit(filterEvent);\n }\n }\n\n onClearSearchClicked(event) {\n const filterEvent: LMFilterEvent = {\n event,\n filterCriteria: null\n };\n\n this.lmLoggerService.log([ this, this.instanceId, 'onClearSearchClicked()', filterEvent ]);\n this.clearSearchButtonClicked.emit(filterEvent);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.fieldEvent.emit(event);\n }\n\n private setMaxHeight() {\n if (this.formOptions && this.formOptions.disableMaxHeightSearchFormKludge) {\n return;\n }\n\n this.ngZone.runOutsideAngular(() => {\n if (!this.lmFormContentForm || !this.lmFormContentForm.elementRef) {\n return; // safety\n }\n\n const nativeElement = this.lmFormContentForm.elementRef.nativeElement;\n let hasToolbar;\n\n if (nativeElement.closest('.scrollable-flex-header')) {\n hasToolbar = nativeElement.closest('.scrollable-flex-header').getElementsByTagName('lm-toolbar').length !== 0;\n }\n\n const isSinglePane = nativeElement.closest('.pane.single') !== undefined;\n\n // extra 40 for search and clear buttons\n const topOffset = nativeElement.getBoundingClientRect().top;\n const bottomOffset = isSinglePane ? 0 : nativeElement.getBoundingClientRect().bottom;\n const buttonsOffset = (hasToolbar ? 40 : 40 * 2);\n const windowHeight = window.innerHeight;\n const totalOffset = topOffset + bottomOffset + buttonsOffset;\n\n // set maxHeight to about 50%\n nativeElement.style.maxHeight = `${(windowHeight - totalOffset) / 2}px`;\n });\n }\n\n private computeMultiselectValue(dvField: LMField, dataView: LMDataView): Array {\n const value = [];\n\n if (dvField.members && Array.isArray(dvField.members)) {\n dvField.members.forEach( key => {\n if (dataView.fields[ key ]) {\n const dvFieldValue = _.trim(dataView.fields[ key ].value.toString());\n\n if (dvFieldValue.length > 0) {\n value.push(dvFieldValue);\n }\n }\n });\n\n return value;\n } else {\n // multiselect is a keyfield, not an array field.\n if (Array.isArray(dvField.value)) {\n dvField.value.forEach(key => {\n if (key.length > 0) {\n value.push(key);\n }\n });\n }\n\n return value;\n }\n }\n\n // private methods\n private isSearchCriteriaBlank(dvField: LMField, specField: LMSpecField, dataView: LMDataView): boolean {\n if (dvField.members && specField.isMultiselect) {\n const value = this.computeMultiselectValue(dvField, dataView);\n return (value.length === 0);\n\n // State fields are special cased\n } else if (specField.stateValues && Array.isArray(dvField.value) && (dvField.value as string[]).length > 0) {\n return false;\n\n } else if (specField.stateValues && dvField.value === 'undefined') {\n return true;\n }\n return this.lmFieldUtilService.isBlank(specField.type, dvField.value);\n }\n\n // How the different fields should work:\n // Compact format fields:\n // build parent field and member fields in the returned array, but filter out the parent compact format when actually calling back to the server\n // Multiselect fields:\n // combine all the member fields' values into one string, send that as the value for the parent multiselect field. Need to rebuild the member fields values when navigating back to the list\n // Basic fields:\n // send the value in, and the operator chosen\n // if empty/not empty is chosen, allow blank search value\n public getFilterCriteria(): Array {\n const filterFieldArray: Array = [];\n const dataView: LMDataView = this.model.getData();\n const dvFields: LMFields = dataView.fields;\n\n for (let index = 0, len = this.searchFormBindIds.length; index < len; index++) {\n const bindId: string = this.searchFormBindIds [ index ];\n\n // if we are one of the ignored ids, just continue\n if (this.ignoredBindIds.find((ignoreId: string) => ignoreId === bindId)) {\n continue;\n }\n\n const dvField: LMField = dvFields[ bindId ];\n const specField: LMSpecField = this.specFields[ bindId ];\n const modelField = this.model.getField(bindId);\n\n if (modelField === null || dvField === undefined || specField.generated) {\n continue;\n }\n\n // allow the field to be empty if the field is numeric, bcd or percent\n const allowZero = specField.type === AppConstants.BCD ||\n specField.type === AppConstants.PERCENT ||\n specField.type === AppConstants.NUMERIC;\n\n // allow the field to be empty if the the filter type is isEmpty or isNotEmpty\n const allowEmptySearch = allowZero ? true : modelField.filterType ? modelField.filterType === 'isEmpty' || modelField.filterType === 'isNotEmpty' : false;;\n\n if (this.isSearchCriteriaBlank(dvField, specField, dataView) && !allowEmptySearch) {\n // ignore with code block filtering since it is not a true search form\n if (modelField.required && !this.isCodeBlockFilter) {\n this.model.setFieldError(bindId, Soho.Locale.translate('Required Search Parameter'));\n return null; // this instructs the caller that the search is canceled\n }\n continue;\n } else if (allowZero && (dvField.value === '' || (Array.isArray(dvField.value) && dvField.value.length === 0))) {\n continue;\n }\n\n const allowMultiSelections = this.lmContextService.useMultiSelectKeyField() &&\n this.model.isSearchForm &&\n !this.model.isCubeSearchForm &&\n !specField.isMultiselect &&\n !specField.isBusClassContextField &&\n // Don't allow multi value entry for Time, Timestamp, Date, Boolean and State Fields fields\n !(specField.type === AppConstants.TIME ||\n specField.type === AppConstants.TIMESTAMP ||\n specField.type === AppConstants.YYYY ||\n specField.type === AppConstants.YYYYMM ||\n specField.type === AppConstants.YYYYMMDD ||\n specField.type === AppConstants.BOOLEAN ||\n specField.type === AppConstants.BINARY ||\n specField.type === AppConstants.BINARYOBJECT ||\n specField.type === AppConstants.BINARYDOCUMENT);\n\n // issue here as transform options for directives are not available for date/time types\n // if needed, would need to get the information from the layout\n const transformOptions: LMTransformOptions = {\n precision: modelField.precision,\n decSize: specField.decSize,\n allowMultiSelections\n };\n\n let displayValue = '';\n let dataValue;\n let multiFieldValue: LMMultipleFilterFieldValue;\n\n if (transformOptions.allowMultiSelections) {\n\n multiFieldValue = { formattedFilterValue: modelField.value, enteredFilterValue: modelField.enteredFilterValue };\n\n // In the case that we have opened a record and navigated back to the search, and then refined the search and not\n // changed the value, we were losing the enteredFilterValue. This is because on load we apply the filter criteria\n // to the searchFormDataView in lm-list, and this only handles dvField.value that gets set into modelField.value.\n // Currently there is no way to rehydrate the enteredFilterValue without adding it to the dataview field.\n // This is for https://jira.lawson.com/browse/LMCLIENT-39177\n if (!multiFieldValue.enteredFilterValue) {\n multiFieldValue.enteredFilterValue = multiFieldValue.formattedFilterValue;\n }\n\n displayValue = multiFieldValue.enteredFilterValue;\n\n // format the display value for non alpha fields\n if (specField.type !== AppConstants.ALPHA ||\n specField.type !== AppConstants.ALPHALOWER ||\n specField.type !== AppConstants.ALPHARIGHT ||\n specField.type !== AppConstants.ALPHAUPPER ||\n specField.type !== AppConstants.TEXT ||\n specField.type !== AppConstants.TEXTAREA) {\n displayValue = this.lmFormatUtilService.toDisplayValue(modelField.value, specField.type, transformOptions);\n }\n } else {\n displayValue = (this.model.isCubeSearchForm) ? modelField.value : this.lmFormatUtilService.toDisplayValue(modelField.value, specField.type, transformOptions);\n }\n\n if (specField.isMultiselect) {\n dataValue = this.computeMultiselectValue(dvField, dataView);\n if (dataValue.length === 0) {\n continue;\n }\n\n } else if (Array.isArray(dvField.value)) {\n dataValue = dvField.value;\n\n if (transformOptions.allowMultiSelections && multiFieldValue !== undefined) {\n dataValue = multiFieldValue.formattedFilterValue;\n }\n\n } else if (transformOptions.allowMultiSelections) {\n // need to check to see if the value string has a , and make it into an array if it does\n if (multiFieldValue !== undefined/*(dvField.value as string).indexOf(',')*/) {\n dataValue = multiFieldValue.formattedFilterValue;\n } else {\n dataValue = dvField.value;\n }\n } else {\n dataValue = dvField.value.toString();\n\n if (modelField.filterType === 'inRange') {\n dataValue = dataValue.replace(' - ', ',');\n } else if (dataValue && dataValue.indexOf(' - ') >= 0 &&\n [ AppConstants.TIMESTAMP, AppConstants.YYYYMMDD ].indexOf(specField.type) !== -1) {\n const range = dataValue.split(' - ');\n dataValue = range[0].trim();\n }\n }\n let operator: LMFilterFieldOperator;\n\n if (specField.stateValues\n || specField.hasUserDefinedStates\n || specField.type === AppConstants.BOOLEAN) {\n // field is a state field, so get the state label for the value, i.e. show 'Active' instead of '1'\n displayValue = this.lmFormatUtilService.stateLabelToText(modelField.states, dataValue);\n }\n\n if (this.model.isCubeSearchForm) {\n operator = 'equals';\n } else if (specField.isBusClassContextField) {\n operator = undefined; // no operator is used when it's a busClassContextField\n\n } else {\n if (modelField.filterType) {\n operator = modelField.filterType;\n } else if (specField.isMultiselect || specField.stateValues || specField.hasUserDefinedStates) {\n // filter type should be equals for any state field. This is so the searching on $ won't return records with $$\n operator = 'equals';\n\n } else if (specField.type === AppConstants.BOOLEAN // TODO: need support for other field types\n || specField.type === AppConstants.NUMERIC\n || specField.type === AppConstants.BCD\n || specField.type === AppConstants.PERCENT\n || specField.type === AppConstants.YYYYMMDD\n || specField.type === AppConstants.TIMESTAMP\n || specField.type === AppConstants.YYYYMM\n || specField.type === AppConstants.MMDD\n || specField.type === AppConstants.YYYY) {\n operator = 'equals';\n\n } else {\n operator = 'contains';\n }\n }\n\n const label: string = this.lmFormatUtilService.formatMessageRule(specField.label, this.model);\n\n const filterField: LMFilterFieldCriteria = {\n operator,\n fieldId: bindId,\n value: dataValue,\n label,\n displayValue,\n isCompactFormatField: specField.compactFormat,\n isBusClassContextField: specField.isBusClassContextField,\n isMultiselectField: specField.isMultiselect,\n stateValues: (specField.isMultiselect) ? modelField.states : undefined,\n isRequired: modelField.required,\n };\n\n if (this.isCodeBlockFilter) {\n filterField.isCompactFormatField = true;\n filterField.compactFormatColumnId = this.formSpec.busFormSpec.codeBlockFieldId;\n }\n\n if (specField.displayOnly) {\n filterField.isDisplayOnly = true;\n }\n\n filterFieldArray.push(filterField);\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'getFilterCriteria()', filterFieldArray ]);\n return filterFieldArray;\n }\n}\n","\n\n\n
        \n {{columnarText}}\n\n \n \n \n
        \n
        \n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { SohoBusyIndicatorDirective, SohoStepProcessComponent, SohoToastService, } from 'ids-enterprise-ng';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMPanelTransactionArgs } from '@form/services/lm-form-action-util.service';\nimport { LMFormTransactionService } from '@form/services/lm-form-transaction.service';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMModel, LMModelStatusEvent } from '@form/model/lm-model';\nimport {\n LMFormPanelBaseService,\n LMGetPanelTransactionOptions,\n LMPanelTransactionEvent,\n PanelTransactionEnum\n} from '@form/services/lm-form-panel.service';\nimport { LandmarkPanel, LMFormContentBase } from './lm-form.model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { LMModelServiceAdapter } from '@form/model/lm-model-service-adapter';\nimport { LMWorker } from '../../types/lm-worker';\nimport { LMFormRequestService, LMStepPanelEvent, PanelTransaction } from './services';\nimport { LMFormPanelFormComponent } from './lm-form-panel-form.component';\nimport { LMFormPanelUrlComponent } from './lm-form-panel-url.component';\nimport { LMModelChangedEvent } from './model';\nimport { Observable, Observer, SubscriptionLike as ISubscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMConditionUtilService, LMGlobalUtilService } from '@utils/index';\nimport * as urltemplate from 'url-template';\nimport { LMFormPanelMultiListComponent } from './lm-form-panel-multilist.component';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMContextService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMFormPanelListComponent } from './lm-form-panel-list.component';\nimport { LMRefreshRequest } from '@app/components';\n\nexport class LMStepPanelSaveWorker extends LMWorker {\n private formPanels: LMFormPanelBase[];\n\n constructor(formPanels: LMFormPanelBase[]) {\n super();\n\n this.formPanels = formPanels;\n }\n\n protected has(i: number): boolean {\n return (i < this.formPanels.length);\n }\n\n protected get(i: number): LMFormPanelBase {\n return this.formPanels[ i ];\n }\n\n // this shouldn't save the form panels, form is going to do that\n protected run(i: number): Observable {\n return new Observable(observer => {\n const formPanel = this.formPanels[ i ];\n if (formPanel && formPanel.isDirty()) {\n formPanel.save(observer, false);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-form-content-stepprocess',\n templateUrl: 'lm-form-content-stepprocess.component.html',\n styleUrls: [ 'lm-form-content-stepprocess.component.scss' ],\n providers: [ LMFormPanelBaseService ],\n})\n\nexport class LMFormContentStepprocessComponent implements AfterViewInit, AfterViewChecked, OnInit, OnDestroy, LMFormContentBase {\n @Input() model: LMModel;\n @Input() specFields;\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec = null;\n @Input() placeHolder: ViewContainerRef;\n @Input() formState: LMFormState;\n @Input() formPersonalization: LMFormPersonalization;\n\n get fromDataView(): LMDataView {\n return this.m_fromDataView;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this.m_fromDataView = fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() stepPanelEvent: EventEmitter = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n /*\n * Using a template variable because using the detail section base class doesn't\n * seem to return my children.\n * @ViewChildren(LMDetailSectionBase) detailListComponents: QueryList;\n */\n @ViewChildren('panelComponent') panelComponents: QueryList; // stan should this be stepComponent\n @ViewChild('sohoStepProcessComponent') sohoStepProcessComponent: SohoStepProcessComponent;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n public stepPanelTabIdSuffix = AppConstants.ELEMENT_ID_SUFFIX_STEP_PANEL_TAB;\n\n public panels: Array;\n public nextButtonText = Soho.Locale.translate('Next');\n public isNextEnabled: boolean;\n public isPreviousEnabled: boolean;\n public enforceLinearWhen = false;\n public firstDirtyPanel = -1;\n public initialStepIgnore = true; // temp fix for initial fire of the beforeSelectStep.\n private selectedPanelId: string;\n private m_fromDataView: LMDataView;\n private modelChangedSubscription: ISubscription;\n private modelStatusChangesSubscription: ISubscription;\n private gotoPanelId: string;\n private formReloading = false\n public testVersion1: boolean;\n public uiLoadingIndicatorTimeout = 0;\n\n constructor(\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmNavigationService: LMNavigationService,\n private changeDetectionRef: ChangeDetectorRef,\n private location: Location,\n private lmConditionUtilService: LMConditionUtilService,\n private lmModelServiceAdapter: LMModelServiceAdapter,\n private lmActionService: LMActionService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormPanelBaseService: LMFormPanelBaseService,\n private lmFormTransactionService: LMFormTransactionService,\n private lmFormRequestService: LMFormRequestService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmSohoToastService: SohoToastService,\n private lmFormPagingService: LMFormPagingService,\n private ngZone: NgZone,\n private lmContextService: LMContextService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n ) {\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n if (this.formState.furthestPanelIndex >= 0) {\n this.lmFormPanelBaseService.furthestPanelIndex = this.formState.furthestPanelIndex;\n }\n\n if (this.formState.furthestSubPanelIndex >= 0) {\n this.lmFormPanelBaseService.furthestSubPanelIndex = this.formState.furthestSubPanelIndex;\n }\n\n this.lmFormPanelBaseService.buildCompositePanels(this.formSpec.busFormSpec, this.model, this.formSpec);\n this.panels = this.lmFormPanelBaseService.getPanels();\n\n this.selectedPanelId = this.panels[0].id;\n if (this.formState.selectedPanelIndex >= 0) {\n this.selectedPanelId = this.lmFormPanelBaseService.getPanelIdByIndex(this.formState.selectedPanelIndex);\n }\n\n this.modelStatusChangesSubscription = this.model.statusChanges.subscribe((modelChangedEvent: LMModelStatusEvent) => {\n if (this.enforceLinearWhen) {\n this.updateFirstDirtyPanel();\n }\n });\n\n this.modelChangedSubscription = this.model.modelChanged.subscribe((modelChangedEvent: LMModelChangedEvent) => {\n // Could be getting called early. We hit next from the first step, execute the save transaction in form, set the\n // initialDataView on lm-form, which triggers the formLoaded method. This sets data on the model, which then\n // pings this subscription all before the panel transaction's callback has been called\n\n // only concerned when the form sets data (new dataView from the server), not interested in update where the form is updating the view\n // from initial value rules, compound field dialogs, etc.\n if (modelChangedEvent.eventType === 'set') {\n\n let pagingRequest = false;\n let hardRefresh = false;\n let originatingList: string = null;\n let isPanelTransaction = false;\n\n if (modelChangedEvent.source) {\n hardRefresh = modelChangedEvent.source.type === 'refresh';\n pagingRequest = modelChangedEvent.source.type === 'paging';\n\n if (modelChangedEvent.source instanceof LMPanelTransactionEvent) {\n originatingList = modelChangedEvent.source ? modelChangedEvent.source.originatingList : null;\n isPanelTransaction = modelChangedEvent.source && modelChangedEvent.source.type === 'transaction' ? true : false;\n }\n }\n\n // if panel transaction, then i get notified via a callback;\n if (isPanelTransaction) {\n this.markTabsForReload(hardRefresh, originatingList);\n return;\n }\n\n // need to only listen for a paging call. If the form is saved using the next button\n // the step listens to an observer and refresh call runRefresh()\n if (pagingRequest) {\n this.refreshStepDataViews(this.getSelectedPanelSpec(), 'commit', false).pipe(first()).subscribe((finished: boolean) => {\n this.updateStepPanels(pagingRequest || hardRefresh);\n\n // LMCLIENT-20748\n if (!this.getSelectedPanelSpec() || !this.getSelectedPanelSpec().isValid ) {\n this.setSelectComponentId(this.panels[ 0 ].id);\n const selectedLandmarkPanel: LandmarkPanel = this.getSelectedPanelSpec();\n selectedLandmarkPanel.activated = true;\n this.gotoPanelId = this.panels[ 0 ].id;\n return;\n }\n\n this.updateNavigationControls();\n this.updateDataView(hardRefresh, originatingList);\n });\n }\n }\n });\n }\n\n ngAfterViewInit() {\n // DPB in a timeout to resolve a change detection error\n setTimeout(() => {\n this.processStepChange();\n }, 1);\n }\n\n ngAfterViewChecked() {\n if (this.gotoPanelId) {\n const panelId = this.gotoPanelId;\n this.gotoPanelId = undefined;\n setTimeout(() => this.goToPanel(panelId));\n }\n }\n\n ngOnDestroy() {\n this.lmLoggerService.log('onDestroy of step process');\n\n if (this.modelChangedSubscription) {\n this.modelChangedSubscription.unsubscribe();\n }\n\n if (this.modelStatusChangesSubscription) {\n this.modelStatusChangesSubscription.unsubscribe();\n }\n }\n\n onSaveClose(event: any) {\n this.runSaveAction().subscribe(\n (continueOn: boolean) => {\n if (continueOn) {\n this.location.back();\n } else {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n });\n }\n onBeforeSelectStep(request: BeforeSelectStepEvent) {\n this._onBeforeSelectStep(request);\n }\n _onBeforeSelectStep(request: BeforeSelectStepEvent) {\n // ignore the first call to the method as it will be the initial selection. in the future the\n // selection will be handled in the template and this will not be needed\n let targetPanel;\n\n if (this.initialStepIgnore) {\n this.initialStepIgnore = false;\n\n targetPanel = this.getPanelById(this.selectedPanelId);\n if (targetPanel === undefined) {\n // if targetPanel is undefined need to select the next or previous available panel\n this.selectedPanelId = this.lmFormPanelBaseService.getClosestPanel(this.selectedPanelId);\n if (this.selectedPanelId !== null) {\n setTimeout(() => this.goToPanel(this.selectedPanelId));\n }\n return;\n }\n\n const targetComponent = this.getSelectComponent();\n const loadSubPanels = targetComponent ? (!targetComponent.activated || targetComponent.needsReload) : (!targetPanel.activated || targetPanel.needsReload);\n\n if (targetPanel.hasSubPanels && loadSubPanels) {\n const panelName = targetPanel.busFormPanel.panelName;\n const loadSubPanelsUrl = this.lmUrlUtilService.buildSubPanelDataUrl(this.formUrlInfo, panelName);\n\n if (!this.lmContextService.useNewSpecUrls()) {\n const name = this.formUrlInfo.resource.resourceId + '.' + panelName + '.loadSubPanelsURL';\n this.lmUrlInfoBuilderService.compareSpecUrls(this.formUrlInfo, name, (targetPanel.busFormPanel.subPanelSpec as any).loadSubPanelsURL, loadSubPanelsUrl);\n }\n\n this.loadSubPanels(targetPanel, loadSubPanelsUrl).subscribe((success: boolean) => {\n let newTargetPanel;\n if (this.formState.selectedSubPanelIndex >= 0) {\n newTargetPanel = this.getSelectedSubPanel(targetPanel);\n } else {\n newTargetPanel = this.getFirstSubPanel(targetPanel);\n }\n this.setSelectComponentId(newTargetPanel.id);\n this.changeDetectionRef.detectChanges();\n this.onBeforeSelectCompleted(request, false, newTargetPanel);\n this.processStepChange();\n });\n } else {\n this.setSelectComponentId(request.targetStepId);\n this.onBeforeSelectCompleted(request, false);\n }\n return;\n }\n\n // NOOP if clicking on the same step as is now focused\n const currentPanel: LandmarkPanel = this.getSelectedPanelSpec();\n if (request.targetStepId === currentPanel.id && currentPanel.loaded && request.isStepping !== 'none') {\n this.onBeforeSelectCompleted(request, false);\n return;\n }\n\n const isNext: boolean = 'next' === request.isStepping;\n const currentLMFormBase: LMFormPanelBase = this.getComponentByPanelId(currentPanel.id);\n let panelTransaction = AppConstants.FORM_PANEL_TRANSACTION_NONE_TYPE;\n targetPanel = this.getPanelById(request.targetStepId);\n\n if (currentLMFormBase) {\n if (currentPanel.type === AppConstants.FORM_PANELTYPE_FORMLIST) {\n const listPanelComponent = currentLMFormBase as LMFormPanelListComponent;\n listPanelComponent.commitCellEdit();\n }\n panelTransaction = this.getPanelTransaction(currentPanel, targetPanel, isNext, currentLMFormBase.isDirty());\n }\n\n this.lmBusyIndicatorService.showBusyIndicator();\n this.runStepValidation(currentPanel, panelTransaction).pipe(first()).subscribe((validated: boolean) => {\n if (validated) {\n this.onStepValidation(currentPanel, request, panelTransaction);\n } else {\n this.lmFormPanelBaseService.setStepError(this.getSelectComponentId());\n this.panels = this.flattenPanels(this.lmFormPanelBaseService.getPanels());\n this.onBeforeSelectCompleted(request, true);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n });\n }\n\n onFormPanelContentLoading(event) {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n onFormPanelContentLoaded(event) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n\n if (this.enforceLinearWhen) {\n this.updateFirstDirtyPanel();\n }\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n onStepPanelEvent(event) {\n this.stepPanelEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.refreshStepDataViews(this.getSelectedPanelSpec(), 'commit', true).pipe(first()).subscribe((finished: boolean) => {\n });\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionToolbarButtonEvent.emit(event);\n }\n\n isModified(): boolean {\n // composite form ( context form and form panels)\n if (this.model.isDirty) {\n return true;\n }\n\n const formPanels: LMFormPanelBase[] = this.panelComponents.toArray();\n for (let i = 0, len = formPanels.length; i < len; i++) {\n const formPanel = formPanels[ i ];\n if (formPanel.isDirty()) {\n return true;\n }\n }\n\n return false;\n }\n\n runRefresh() {\n this.updateDataView(true);\n\n let subStepPanelId;\n let selectedFormPanel: LMFormPanelBase = this.getSelectComponent();\n const selectedLandmarkPanel: LandmarkPanel = this.getSelectedPanelSpec();\n\n // refresh will remove all the sub panels, so we really need to set the sub panel parent\n if (selectedLandmarkPanel.isSubPanel) {\n subStepPanelId = selectedLandmarkPanel.id; // try to set the selectedSubStep panel. It may not exists after the refresh!\n selectedFormPanel = this.getComponentByPanelId(selectedLandmarkPanel.parentId);\n this.selectedPanelId = selectedLandmarkPanel.parentId;\n }\n\n this.updateStepPanels(true);\n\n // LMCLIENT-20748\n if (!selectedLandmarkPanel || !selectedLandmarkPanel.isValid) {\n this.setSelectComponentId(this.panels[ 0 ].id);\n selectedFormPanel = this.getSelectComponent();\n this.gotoPanelId = this.panels[ 0 ].id;\n return;\n }\n\n if (selectedFormPanel) {\n if (selectedFormPanel.activated) {\n this.refreshFormPanel(selectedFormPanel, subStepPanelId);\n } else {\n this.activateFormPanel(selectedFormPanel);\n }\n }\n }\n\n private refreshFormPanel(formPanel: LMFormPanelBase, substepPanelId?: string) {\n if (formPanel.needsReload) {\n // --------------------------------------------------------\n // setting needsReload to false will cause the panel\n // to send any new fromDataView to the panels component.\n // --------------------------------------------------------\n formPanel.needsReload = false;\n }\n\n const selectedPanel: LandmarkPanel = this.getSelectedPanelSpec();\n if (selectedPanel === undefined) {\n // if selectedPanel is undefined need to select the next or previous available panel\n this.selectedPanelId = this.lmFormPanelBaseService.getClosestPanel(this.selectedPanelId);\n if (this.selectedPanelId !== null) {\n setTimeout(() => this.goToPanel(this.selectedPanelId));\n }\n return;\n }\n\n const panelName = selectedPanel.busFormPanel.panelName;\n const loadSubPanelsUrl = this.lmUrlUtilService.buildSubPanelDataUrl(this.formUrlInfo, panelName);\n\n if (selectedPanel.hasSubPanels && !this.lmContextService.useNewSpecUrls()) {\n const name = this.formUrlInfo.resource.resourceId + '.' + panelName + '.loadSubPanelsURL';\n this.lmUrlInfoBuilderService.compareSpecUrls(this.formUrlInfo, name, (selectedPanel.busFormPanel.subPanelSpec as any).loadSubPanelsURL, loadSubPanelsUrl);\n }\n\n if (selectedPanel && selectedPanel.hasSubPanels) {\n this.loadSubPanels(selectedPanel, loadSubPanelsUrl).subscribe(\n (success: boolean) => {\n if (substepPanelId) {\n // try to set the selectedSubStep panel. It may not exists!\n const selectedSubStepPanel = this.getPanelById(substepPanelId);\n if (selectedSubStepPanel) {\n this.setSelectComponentId(substepPanelId);\n this.gotoPanelId = substepPanelId;\n }\n }\n });\n }\n }\n\n runSaveAction(): Observable {\n if (this.isWizard()) {\n return this.runWizardSaveAction();\n } else {\n return this.runStepSaveAction();\n }\n }\n\n private activateFormPanel(formPanel: LMFormPanelBase) {\n // DPB Questioning why this is needed - the spec shouldn't change\n // let panel = this.panels[ this.formState.selectedPanelIndex ];\n // if (panel.type === AppConstants.FORM_PANELTYPE_FORM) {\n // formPanel.layout = panel.layout;\n // formPanel.formSpec = panel.formSpec;\n // } else if (panel.type === AppConstants.FORM_PANELTYPE_FORMLIST) {\n // formPanel.listSpec = panel.listSpec;\n // } else if (panel.type === AppConstants.FORM_PANELTYPE_TEMPLATEFORM) {\n // formPanel.layout = panel.layout;\n // formPanel.formSpec = panel.formSpec;\n // formPanel.specFields = panel.formSpec.busFormSpec.fields;\n // }\n\n formPanel.needsReload = false;\n formPanel.activated = true; // this should trigger the template to run\n\n const selectedPanel: LandmarkPanel = this.getSelectedPanelSpec();\n\n if (selectedPanel && selectedPanel.hasSubPanels) {\n const panelName = selectedPanel.busFormPanel.panelName;\n const loadSubPanelsUrl = this.lmUrlUtilService.buildSubPanelDataUrl(this.formUrlInfo, panelName);\n\n if (!this.lmContextService.useNewSpecUrls()) {\n const name = this.formUrlInfo.resource.resourceId + '.' + panelName + '.loadSubPanelsURL';\n this.lmUrlInfoBuilderService.compareSpecUrls(this.formUrlInfo, name, (selectedPanel.busFormPanel.subPanelSpec as any).loadSubPanelsURL, loadSubPanelsUrl);\n }\n this.loadSubPanels(selectedPanel, loadSubPanelsUrl).subscribe(\n (success: boolean) => {\n });\n }\n }\n\n runWizardSaveAction(): Observable {\n\n return new Observable(observer => {\n const panel = this.getSelectedPanelSpec();\n const formPanelBase: LMFormPanelBase = this.getComponentByPanelId(panel.id);\n\n if (panel.type !== AppConstants.FORM_PANELTYPE_FORM && formPanelBase.isDirty()) {\n formPanelBase.save(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n runStepSaveAction(): Observable {\n const formPanels: LMFormPanelBase[] = this.panelComponents.toArray();\n const selectedFormPanel: LMFormPanelBase = this.getSelectComponent();\n\n return new Observable(observer => {\n this.runSavePanels(formPanels).subscribe(\n (continueOn: boolean) => {\n observer.next(continueOn);\n observer.complete();\n },\n (err => {\n const errorPanel: LMFormPanelBase = err;\n if (errorPanel) {\n observer.next(false);\n observer.complete();\n }\n }));\n });\n }\n\n handleFormViewException(transactionState: LMTransactionState) {\n const selectedPanelId = this.getSelectComponentId();\n const actionResult = transactionState.getTransactionResult();\n const panels: Array = this.lmFormPanelBaseService.getPanelIdsForFieldId(actionResult?.fieldId);\n\n if (panels.length > 0 && selectedPanelId) {\n const panelInErrorId = panels[0];\n\n if (selectedPanelId !== panelInErrorId) {\n // clear the error that was set on the selected panel!\n const selectedPanel = this.getPanelById(selectedPanelId);\n const selectedDataView = selectedPanel.isSubPanel ? selectedPanel.subPanelDataView : this.fromDataView;\n this.lmFormPanelBaseService.updateStepIcon(selectedPanel, selectedDataView);\n // set the error on the correct panel!\n this.lmFormPanelBaseService.setStepError(panelInErrorId);\n // move selection to error panel\n this.setSelectComponentId(panelInErrorId);\n this.gotoPanelId = panelInErrorId;\n }\n }\n }\n\n // needs to be expanded to allow for substeps and formstate\n isSelected = (panel: LandmarkPanel): string => panel && panel.id === this.selectedPanelId ? 'true' : null\n\n getSelectedPanelSpec = (): LandmarkPanel => {\n const selectedPanelId: string = this.getSelectComponentId(); // this.sohoStepProcessComponent.getSelectedStepId();\n return this.getPanelById(selectedPanelId);\n };\n\n // todo rename to getSelectedComponent\n getSelectComponent = (): LMFormPanelBase => {\n const selectPanelId: string = this.getSelectComponentId(); // this.sohoStepProcessComponent.getSelectedStepId();\n return this.getComponentByPanelId(selectPanelId);\n };\n\n getSelectComponentId = (): string =>\n\n // temp value until control can either pass the selected id or fire the beforeStepChange on the initial load.\n this.selectedPanelId // this.sohoStepProcessComponent.getSelectedStepId();\n\n setSelectComponentId = (selectedId: string): void => {\n this.selectedPanelId = selectedId;\n const selectedPanel = this.getPanelById(selectedId);\n\n if (selectedPanel && selectedPanel.isSubPanel) {\n const parentPanel = this.getPanelById(selectedPanel.parentId);\n const parentIndex = this.lmFormPanelBaseService.getPanelIndexById(selectedPanel.parentId);\n let childIndex = 0;\n for (let i = 0; i < parentPanel.subPanels.length; i++) {\n const childPanel = parentPanel.subPanels[ i ];\n\n if (childPanel.id === selectedId) {\n childIndex = i;\n break;\n }\n }\n\n this.formState.selectedPanelIndex = parentIndex;\n this.formState.selectedSubPanelIndex = childIndex;\n\n if (parentIndex > this.lmFormPanelBaseService.furthestPanelIndex) {\n this.formState.furthestPanelIndex = parentIndex;\n }\n\n if (childIndex > this.lmFormPanelBaseService.furthestSubPanelIndex) {\n this.formState.furthestSubPanelIndex = childIndex;\n }\n } else {\n const selectedIndex = this.lmFormPanelBaseService.getPanelIndexById(selectedId);\n this.formState.selectedPanelIndex = selectedIndex;\n this.formState.selectedSubPanelIndex = -1;\n this.formState.furthestSubPanelIndex = 0;\n\n if (selectedIndex > this.lmFormPanelBaseService.furthestPanelIndex) {\n this.formState.furthestPanelIndex = selectedIndex;\n }\n }\n\n this.lmFormPanelBaseService.furthestPanelIndex = this.formState.furthestPanelIndex || 0;\n this.lmFormPanelBaseService.furthestSubPanelIndex = this.formState.furthestSubPanelIndex || 0;\n }\n\n getPanelIdByIndex = (index: number): string => {\n if (index >= 0 && index < this.panels.length) {\n return this.panels[ index ].id;\n }\n return null;\n }\n\n getPanelIndex = (panel: LandmarkPanel): number => {\n if (panel) {\n for (let i = 0, len = this.panels.length; i < len; i++) {\n if (panel.id === this.panels[ i ].id) {\n return i;\n }\n }\n }\n return -1;\n }\n\n trackById(index: number, panel: LandmarkPanel): string {\n return panel.id;\n }\n\n private getPanelById(panelId: string): LandmarkPanel {\n return this.panels.find(panel => panel.id === panelId);\n }\n\n private getPanelByIndex(index: number): LandmarkPanel {\n if (index >= 0 && index < this.panels.length) {\n return this.panels[ index ];\n }\n return null;\n }\n\n private getNextPanel(panel: LandmarkPanel): LandmarkPanel {\n let index: number = this.getPanelIndex(panel);\n const nextPanel = this.getPanelByIndex(++index);\n\n if (nextPanel == null) {\n return null; // this case happens when lastPanelNavigation feature is used\n }\n if (nextPanel.isValid && nextPanel.isVisible) {\n if (nextPanel.hasSubPanels && nextPanel.subPanels.length > 0) {\n return nextPanel.subPanels[ 0 ];\n } else {\n return nextPanel;\n }\n\n } else {\n return this.getNextPanel(nextPanel);\n }\n }\n\n private getPreviousPanel(panel: LandmarkPanel): LandmarkPanel {\n let index: number = this.getPanelIndex(panel);\n const previousPanel = this.getPanelByIndex(--index);\n\n if (previousPanel.isValid && previousPanel.isVisible) {\n return previousPanel;\n } else {\n return this.getPreviousPanel(previousPanel);\n }\n }\n\n private hasPreviousPanel(selectedIndex: number): boolean {\n const start = (selectedIndex - 1);\n for (let i = start; i > -1; i--) {\n if (this.panels[ i ].isValid) {\n return true;\n }\n }\n return false;\n }\n\n private updateFirstDirtyPanel() {\n let foundDirtyPanel = false;\n const len = this.panels.length;\n\n for (let i = 0; i < len; i++) {\n const panel = this.panels[i];\n const component: LMFormPanelBase = this.getComponentByPanelId(panel.id);\n\n if (panel.type === 'form' && !panel.isSubPanel) {\n foundDirtyPanel = component ? component.isDirty() : false;\n } else if (component && component.isDirty()) {\n foundDirtyPanel = true;\n }\n\n if (foundDirtyPanel) {\n this.firstDirtyPanel = i;\n return;\n }\n }\n\n this.firstDirtyPanel = -1;\n }\n\n // DPB not sure about using the method below. Need to have the next button enable to may run a transaction that enables the next step.\n // private hasNextPanel(selectedIndex: number): boolean {\n // let start = (selectedIndex + 1);\n // for (let i = start; i < this.panels.length; i++) {\n // if (!this.panels[ i ].hidden && this.panels[ i ].isValid) {\n // return true;\n // }\n // }\n // return false;\n // }\n\n public nextButtonLabel(): string {\n if (this.sohoStepProcessComponent\n && this.formSpec\n && this.formSpec.busFormSpec.showPanelInfo\n && this.formSpec.busFormSpec.showPanelInfo.nextButtonTitle) {\n const index: number = this.getPanelIndex(this.getSelectedPanelSpec());\n if ((index + 1) === this.panels.length) {\n return this.lmFormatUtilService.formatMessageRule(this.formSpec.busFormSpec.showPanelInfo.nextButtonTitle, this.model);\n }\n }\n return Soho.Locale.translate('Next');\n }\n\n private updateNavigationControls() {\n const selectedPanel = this.getSelectedPanelSpec();\n const index: number = this.getPanelIndex(selectedPanel);\n const onLastPanel = (index + 1) === this.panels.length;\n\n // previous button\n this.isPreviousEnabled = this.hasPreviousPanel(index);\n\n // next button\n if (onLastPanel) {\n const showPanelInfo = this.formSpec.busFormSpec.showPanelInfo;\n this.isNextEnabled = showPanelInfo && showPanelInfo.lastPanelNav ? true : false;\n if (showPanelInfo && showPanelInfo.nextButtonTitle) {\n this.nextButtonText = this.lmFormatUtilService.formatMessageRule(this.formSpec.busFormSpec.showPanelInfo.nextButtonTitle, this.model);\n } else {\n this.nextButtonText = Soho.Locale.translate('Next');\n }\n } else {\n this.isNextEnabled = true;\n this.nextButtonText = Soho.Locale.translate('Next');\n }\n\n this.updateEnforceLinearSteps();\n this.updateFirstDirtyPanel();\n }\n\n private onStepValidation(panel: LandmarkPanel, request: BeforeSelectStepEvent, panelTransaction: PanelTransaction): void {\n if ('next' === request.isStepping && this.requiresAcknowledgment(panel)) {\n this.runAcknowledgeAction(panel).pipe(first()).subscribe((acknowledged: boolean) => {\n if (acknowledged) {\n if (panel.type !== AppConstants.FORM_PANELTYPE_FORM) {\n // change panelTransaction to 'commit' to force a refresh, the acknowledgeAction may\n // have been used to update state fields!\n panelTransaction = 'commit';\n }\n this.onStepAcknowledged(request, panelTransaction, panel);\n } else {\n this.onBeforeSelectCompleted(request, true);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n });\n } else {\n this.onStepAcknowledged(request, panelTransaction, panel);\n }\n }\n\n private onStepAcknowledged(request: BeforeSelectStepEvent, panelTransaction: PanelTransaction, panel: LandmarkPanel) {\n this.refreshStepDataViews(panel, panelTransaction, true).pipe(first()).subscribe((finished: boolean) => {\n this.updateStepPanels(false);\n this.onStepsRefreshed(request, panel);\n });\n }\n\n private onStepsRefreshed(request: BeforeSelectStepEvent, panel: LandmarkPanel) {\n const targetPanel = this.getBeforeSelectTargetPanel(request, panel);\n\n if (targetPanel == null) {\n this.handleLastPanelNavigation(request);\n return;\n }\n\n const targetComponent = this.getComponentByPanelId(targetPanel.id);\n const loadSubPanels = targetComponent ? (!targetComponent.activated || targetComponent.needsReload) : (!targetPanel.activated || targetPanel.needsReload);\n\n if (targetComponent && targetComponent.needsReload) {\n targetComponent.needsReload = false;\n }\n if (targetPanel.needsReload) {\n targetPanel.needsReload = false;\n }\n\n if (targetPanel.hasSubPanels && loadSubPanels) {\n const panelName = targetPanel.busFormPanel.panelName;\n const loadSubPanelsUrl = this.lmUrlUtilService.buildSubPanelDataUrl(this.formUrlInfo, panelName);\n\n if (!this.lmContextService.useNewSpecUrls()) {\n const name = this.formUrlInfo.resource.resourceId + '.' + panelName + '.loadSubPanelsURL';\n this.lmUrlInfoBuilderService.compareSpecUrls(this.formUrlInfo, name, (targetPanel.busFormPanel.subPanelSpec as any).loadSubPanelsURL, loadSubPanelsUrl);\n }\n\n this.loadSubPanels(targetPanel, loadSubPanelsUrl).subscribe((success: boolean) => {\n const newTargetPanel = this.getFirstSubPanel(targetPanel);\n this.setSelectComponentId(newTargetPanel.id);\n this.changeDetectionRef.detectChanges();\n this.onBeforeSelectCompleted(request, false, newTargetPanel);\n this.ngZone.run(args => this.processStepChange());\n });\n } else {\n this.setSelectComponentId(targetPanel.id);\n this.onBeforeSelectCompleted(request, false, targetPanel);\n this.ngZone.run(args => this.processStepChange());\n }\n }\n\n private handleLastPanelNavigation(request: BeforeSelectStepEvent): void {\n if (this.isLastPanelNavigation(request)) {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.runLastPanelNavigation();\n this.onBeforeSelectCompleted(request, false);\n }\n }\n\n private refreshFormDataView(panel: LandmarkPanel, callBack: Observer) {\n const panelTransactionEvent = new LMPanelTransactionEvent(panel.id);\n panelTransactionEvent.callBack = callBack;\n this.panelTransactionEvent.emit(panelTransactionEvent);\n }\n\n private onBeforeSelectCompleted(request: BeforeSelectStepEvent, vetoEvent: boolean, targetPanel?: LandmarkPanel) {\n const result: BeforeSelectStepResult = {};\n result.continue = !vetoEvent;\n if (targetPanel && targetPanel.id !== request.targetStepId) {\n result.overrideTargetStepId = targetPanel.id;\n }\n\n request.response(result);\n }\n\n private getFirstSubPanel(targetPanel: LandmarkPanel): LandmarkPanel {\n if (!targetPanel.activated) {\n targetPanel.activated = true;\n } else if (targetPanel.needsReload) {\n targetPanel.needsReload = false;\n }\n\n let newTargetPanel = targetPanel;\n\n for (let i = 0, len = targetPanel.subPanels.length; i < len; i++) {\n const subPanel = targetPanel.subPanels[ i ];\n if (subPanel.isValid) {\n newTargetPanel = subPanel;\n break;\n }\n }\n\n return newTargetPanel;\n }\n\n private getSelectedSubPanel(targetPanel: LandmarkPanel): LandmarkPanel {\n let newTargetPanel = this.getFirstSubPanel(targetPanel); // default to first sub panel in case selectedSubPanelIndex lost.;\n\n if (targetPanel.subPanels.length >= this.formState.selectedSubPanelIndex) {\n const subPanel = targetPanel.subPanels[ this.formState.selectedSubPanelIndex ];\n if (subPanel.isValid) {\n newTargetPanel = subPanel;\n }\n }\n\n return newTargetPanel;\n }\n\n private getBeforeSelectTargetPanel(request: BeforeSelectStepEvent, currentPanel: LandmarkPanel): LandmarkPanel {\n if ('next' === request.isStepping || 'prev' === request.isStepping) {\n return ('next' === request.isStepping) ? this.getNextPanel(currentPanel) : this.getPreviousPanel(currentPanel);\n } else {\n return this.getPanelById(request.targetStepId);\n }\n }\n\n private refreshSubStepDataViews(panel: LandmarkPanel, callBack: Observer) {\n const headerPanel: LandmarkPanel = this.getPanelById(panel.parentId);\n const transactionUrlTemplate = urltemplate.parse(this.formUrlInfo.transactionUrl);\n const formUrl: string = transactionUrlTemplate.expand({ resourceId: this.model.getData().resourceId });\n const dataViews: LMDataView[] = [];\n\n headerPanel.subPanels.forEach((subPanel, index) => {\n dataViews.push(subPanel.subPanelDataView);\n });\n\n this.lmFormRequestService.refreshSubPanelViews(formUrl, dataViews).pipe(first()).subscribe((refreshResult: any) => {\n this.lmLoggerService.log([ this, 'refreshSubStepDataViews Response: ' + JSON.stringify(refreshResult) ]);\n if (refreshResult instanceof Array) {\n headerPanel.subPanels.forEach((subPanel, index) => {\n subPanel.subPanelDataView = refreshResult[ index ];\n });\n }\n this.refreshFormDataView(panel, callBack);\n });\n }\n\n private refreshSubStepDataView(subStepPanel: LandmarkPanel, dataView: LMDataView) {\n const transactionUrlTemplate = urltemplate.parse(this.formUrlInfo.transactionUrl);\n const formUrl: string = transactionUrlTemplate.expand({ resourceId: this.model.getData().resourceId });\n const dataViews: LMDataView[] = [ dataView ];\n\n this.lmFormRequestService.refreshSubPanelViews(formUrl, dataViews).pipe(first()).subscribe((refreshResult: any) => {\n this.lmLoggerService.log([ this, 'refreshSubStepDataViews Response: ' + JSON.stringify(refreshResult) ]);\n if (refreshResult instanceof Array) { // should only be one\n refreshResult.forEach(refreshedDataView => {\n subStepPanel.subPanelDataView = refreshedDataView;\n });\n }\n });\n }\n\n private refreshStepDataViews(panel: LandmarkPanel, panelTransaction: PanelTransaction, refreshForm: boolean): Observable {\n return new Observable(observer => {\n if ('commit' === panelTransaction && panel && panel.type !== AppConstants.FORM_PANELTYPE_FORM) {\n if (panel.isSubPanel) {\n this.refreshSubStepDataViews(panel, observer);\n } else if (refreshForm) {\n this.refreshFormDataView(panel, observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n private processStepChange() {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.formReloading) {\n // the form is doing a post registration and will reload\n // the form state has been updated, but lets not try to load the next step\n this.formReloading = false;\n return;\n }\n\n this.updateNavigationControls();\n const panelComponent: LMFormPanelBase = this.getSelectComponent();\n if (panelComponent == null) {\n return;\n }\n\n if (!panelComponent.activated || panelComponent.needsReload) {\n if (!(panelComponent instanceof LMFormPanelFormComponent) && !(panelComponent instanceof LMFormPanelUrlComponent)) {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n const selectedLandmarkPanel: LandmarkPanel = this.getSelectedPanelSpec();\n this.runVisitedAction(selectedLandmarkPanel);\n\n if (selectedLandmarkPanel.isSubPanel) {\n if ('templateform' === selectedLandmarkPanel.type) {\n panelComponent.fromDataView = this.model.getData();\n } else {\n panelComponent.fromDataView = selectedLandmarkPanel.subPanelDataView;\n }\n } else {\n panelComponent.fromDataView = this.model.getData();\n }\n }\n\n if (!panelComponent.activated) {\n panelComponent.activated = true;\n } else if (panelComponent.needsReload) {\n panelComponent.needsReload = false;\n }\n }\n\n private loadSubPanels(landmarkPanel: LandmarkPanel, loadSubPanelsURL: string): Observable {\n return new Observable(observer => {\n this.lmLoggerService.time({ id: 'lmformcontentstepprocess loadSubPanels()' });\n this.lmBusyIndicatorService.showBusyIndicator();\n this.lmFormPagingService.loadSubPanels(this.model.getData(), loadSubPanelsURL)\n .subscribe(\n (response: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmLoggerService.timeEnd('lmformcontentstepprocess loadSubPanels()');\n if (response.status === AppConstants.STATUS_COMPLETED) {\n const subPanelList = this.lmFormPanelBaseService.buildSubStepPanels(landmarkPanel.busFormPanel, landmarkPanel, response);\n const idx = this.getPanelIndex(landmarkPanel);\n landmarkPanel.subPanels = subPanelList;\n this.panels = this.flattenPanels(this.panels);\n observer.next(true);\n observer.complete();\n }\n },\n (error: any) => {\n this.lmLoggerService.timeEnd('lmformcontentstepprocess loadSubPanels()');\n this.lmLoggerService.error([ 'lmformcontentstepprocess loadSubPanels()', error ]);\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeholder);\n observer.next(false);\n observer.complete();\n }\n );\n });\n }\n\n private updateEnforceLinearSteps() {\n if (this.formSpec.busFormSpec.showPanelInfo && this.formSpec.busFormSpec.showPanelInfo.linearWhen) {\n this.enforceLinearWhen = this.lmConditionUtilService.isValid([ this.formSpec.busFormSpec.showPanelInfo.linearWhen ], this.model);\n }\n }\n\n public isWizard(): boolean {\n // make this and all the other methods used in the template setters\n return this.formSpec.busFormSpec.isWizard ? this.formSpec.busFormSpec.isWizard : false;\n }\n\n private getPanelTransaction(currentPanel: LandmarkPanel, targetPanel: LandmarkPanel, isNext: boolean, isPanelDirty: boolean): PanelTransactionEnum {\n const options: LMGetPanelTransactionOptions = {\n busFormSpec: this.formSpec.busFormSpec,\n currentPanel,\n targetPanel,\n isNext,\n isPanelDirty,\n isCreateMode: this.isFormCreateMode(),\n enforceLinearWhen: this.enforceLinearWhen\n };\n return this.lmFormPanelBaseService.getPanelTransaction(options);\n }\n\n private isFormCreateMode(): boolean {\n const dataView = this.model.getData();\n const actionName = dataView.action;\n const actionSpec = this.lmActionService.getActionByName(this.formSpec.busClassSpec.actions, actionName);\n\n return (actionSpec && actionSpec.type === AppConstants.ACTION_TYPE_CREATE);\n }\n\n getCurrentStepTitle(): string {\n const landmarkPanel: LandmarkPanel = this.getSelectedPanelSpec();\n\n if (!landmarkPanel) {\n return '';\n }\n\n if (landmarkPanel.isSubPanel) {\n const parentPanel = this.getPanelById(landmarkPanel.parentId);\n return parentPanel.title;\n } else {\n return landmarkPanel.title;\n }\n }\n\n getCurrentSubPanelTitle(): string {\n const landmarkPanel: LandmarkPanel = this.getSelectedPanelSpec();\n\n if (!landmarkPanel) {\n return '';\n }\n\n return landmarkPanel.isSubPanel ? landmarkPanel.title : null;\n }\n\n private getComponentByPanelId(panelId: string): LMFormPanelBase {\n const panelArray: Array = this.panelComponents ? this.panelComponents.toArray() : [];\n return panelArray.find(panel => panel.panelId === panelId);\n }\n\n private buildPanelTransactionContext(panel: LandmarkPanel, dataView: LMDataView, actionSpec: LMActionSpec, formName?: string): LMPanelTransactionArgs {\n let resourceId = dataView.resourceId;\n\n if (formName) {\n resourceId = resourceId + '.' + formName;\n }\n\n const transactionUrl = this.lmUrlUtilService.buildUrl(this.lmUrlUtilService.buildFormTransactionUrlOptions(resourceId));\n const actionRedirectUrl = this.lmUrlUtilService.buildUrl(this.lmUrlUtilService.buildFormActionRedirectUrlOptions(dataView, actionSpec));\n\n const args: LMPanelTransactionArgs = {\n busClassSpec: this.formSpec.busClassSpec, // This is the wrong busClassSpec for subPanels. // Akila it is needed to run ResponseRequired. I think it it need just to create a LMFormSpec\n transactionUrl,\n actionRedirectUrl,\n placeholder: this.placeHolder\n };\n\n return args;\n }\n\n private requiresAcknowledgment(panel: LandmarkPanel): boolean {\n const dataView = panel.isSubPanel ? panel.subPanelDataView : this.model.getData();\n return this.lmFormPanelBaseService.requiresAcknowledgement(panel, dataView);\n }\n\n private runAcknowledgeAction(panel: LandmarkPanel): Observable {\n return new Observable(observer => {\n const actionSpec = panel.busFormPanel.acknowledgeAction;\n const dataView = panel.isSubPanel ? panel.subPanelDataView : this.model.getData();\n const args: LMPanelTransactionArgs = this.buildPanelTransactionContext(panel, dataView, actionSpec);\n\n // may need to handle error if not a parameter form.\n this.lmFormTransactionService.runPanelAction(actionSpec, dataView, args).subscribe(\n (transactionState: LMTransactionState) => {\n this.lmLoggerService.log([ this, 'runAcknowledgeAction {' + actionSpec.name + '}: ' + JSON.stringify(transactionState.getTransactionResult()) ]);\n const result: LMActionResult = transactionState.getTransactionResult();\n\n // only concerned about failures\n if (transactionState.isError || (result && AppConstants.VIEW_EXCEPTION === result.status)) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status);\n }\n\n observer.next(transactionState.isSuccess());\n observer.complete();\n });\n });\n }\n\n private runVisitedAction(panel: LandmarkPanel) {\n // WIZARD may have a wizardFinishForm so check if busFormPanel exists\n if (panel.busFormPanel && panel.busFormPanel.visitAction && panel.stepProgress === 'NONE') {\n const actionSpec: LMActionSpec = panel.busFormPanel.visitAction;\n const dataView = panel.isSubPanel ? panel.subPanelDataView : this.model.getData();\n const formName = panel.isSubPanel ? null : this.formSpec.busFormSpec.name;\n const args: LMPanelTransactionArgs = this.buildPanelTransactionContext(panel, dataView, actionSpec, formName);\n\n if (actionSpec != null) {\n this.lmFormTransactionService.runPanelAction(actionSpec, dataView, args).subscribe(\n (transactionState: LMTransactionState) => {\n this.lmLoggerService.log([ this, 'runVisitedAction: {' + actionSpec.name + '}:' + JSON.stringify(transactionState.getTransactionResult()) ]);\n if (transactionState.isSuccess()) {\n const visitedActionDataView = transactionState.getTransactionResult().dataView;\n if (panel.isSubPanel) {\n this.refreshSubStepDataView(panel, dataView);\n } else {\n this.updateModelAfterTransaction(panel, visitedActionDataView, this.model);\n }\n\n this.lmFormPanelBaseService.updateStepIcon(panel, visitedActionDataView);\n }\n });\n }\n }\n }\n\n public isPanelValid(panel: LandmarkPanel): boolean {\n if (this.enforceLinearWhen) {\n const selectedIndex: number = this.getPanelIndex(panel);\n const hasPreviousDirtyPanel = this.firstDirtyPanel > -1 ? this.firstDirtyPanel < selectedIndex : false;\n return panel.isValid && (!hasPreviousDirtyPanel && (panel.linearVisited || panel.stepProgress === 'IN_PROGRESS' || panel.stepProgress === 'COMPLETED'));\n } else {\n return panel.isValid;\n }\n }\n\n private runStepValidation(panel: LandmarkPanel, panelTransaction: PanelTransaction): Observable {\n return new Observable(observer => {\n if (panelTransaction === AppConstants.FORM_PANEL_TRANSACTION_NONE_TYPE) {\n observer.next(true);\n observer.complete();\n } else {\n const formPanelBase: LMFormPanelBase = this.getComponentByPanelId(panel.id);\n if (panel.type !== AppConstants.FORM_PANELTYPE_FORM) {\n formPanelBase.save(observer, true);\n } else {\n const panelName = panel.busFormPanel.panelName;\n // going to have the form save so i need to mark the tabs for reload\n // Don't listen for model events, since that is in a different thread\n // and causes timing issues.! LMCLIENT-39385\n this.markTabsForReload(false);\n this.onStepPanelEvent(new LMStepPanelEvent(panelName, panelTransaction, observer));\n }\n }\n });\n }\n\n saveComponentState(): void {\n }\n\n clearComponentState(): void {\n }\n\n private updateDataView(hardRefresh: boolean, originatingList?: string): void {\n this.m_fromDataView = this.model.getData();\n this.markTabsForReload(hardRefresh, originatingList);\n }\n\n private markTabsForReload(hardRefresh: boolean, originatingList?: string) {\n const formPanels: LMFormPanelBase[] = this.panelComponents ? this.panelComponents.toArray() : [];\n const selectFormPanel = this.getSelectComponent();\n const selectedPanelId = selectFormPanel ? selectFormPanel.panelId : null;\n\n for (let i = 0, len = formPanels.length; i < len; i++) {\n const formPanel = formPanels[ i ];\n\n if (formPanel.panelId !== selectedPanelId) {\n if (formPanel.activated) {\n const needsReload = hardRefresh ? true : !formPanel.isDirty();\n formPanel.needsReload = needsReload;\n }\n } else {\n // This will update all the lists in a MultiList panel when a save is done.\n // Can NOT emit a panelTransaction event on a list save because the save\n // starts the composite form and that will refresh the panels when the\n // the model emits a modelChanged event. hardrefresh means the user is paging\n // (next/previous/refresh)\n if (formPanel instanceof LMFormPanelMultiListComponent && !hardRefresh) {\n const refreshRequest: LMRefreshRequest = { originatingSourceId: originatingList };\n formPanel.refresh(refreshRequest).subscribe(value => {});\n } else {\n const selectedPanel = this.getSelectedPanelSpec();\n\n if (selectedPanel && selectedPanel.isSubPanel) {\n formPanel.fromDataView = 'templateform' === selectedPanel.type ? this.model.getData() : selectedPanel.subPanelDataView ;\n } else {\n formPanel.fromDataView = this.model.getData();\n }\n\n if (hardRefresh) {\n formPanel.refresh().subscribe();\n }\n }\n }\n }\n }\n\n private runSavePanels(formPanels: LMFormPanelBase[]): Observable {\n\n this.lmBusyIndicatorService.showBusyIndicator();\n const saveWorker: LMStepPanelSaveWorker = new LMStepPanelSaveWorker(formPanels);\n return saveWorker.start();\n }\n\n private isLastPanelNavigation(request: BeforeSelectStepEvent): boolean {\n return (this.formSpec.busFormSpec.showPanelInfo\n && this.formSpec.busFormSpec.showPanelInfo.lastPanelNav\n && request.isStepping === 'next'\n );\n }\n\n private runLastPanelNavigation() {\n const uiLink = this.formSpec.busFormSpec.showPanelInfo.lastPanelNav;\n if (uiLink.type === 'navigation') {\n this.runNavigation(uiLink);\n } else if (uiLink.type === 'httpURL') {\n this.runHttpUrl(uiLink);\n }\n }\n\n private runNavigation(navigationSpec: LMNavigationSpec) {\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: this.model.resourceId,\n navigationName: navigationSpec.name\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf: navigationSpec.showAsPdf });\n }\n\n private runHttpUrl(httpUrl: LMHttpUrl) {\n const url: string = this.lmFormatUtilService.formatMessageRule(httpUrl.messageRule, this.model);\n\n if (url) {\n const option: string = (httpUrl.externalLink) ? 'external' : '';\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n\n private updateModelAfterTransaction(panel: LandmarkPanel, actionDataView: LMDataView, model: LMModel) {\n const fields = this.getStepConditionFields(panel, actionDataView);\n this.model.setFields(fields, { notifyListeners: false }).subscribe();\n }\n\n private updateDataViewAfterTransaction(panel: LandmarkPanel, actionDataView: LMDataView, targetDataView: LMDataView) {\n const fields = this.getStepConditionFields(panel, actionDataView);\n\n const keys: Array = Object.keys(fields);\n\n for (let index = 0, len = keys.length; index < len; index++) {\n const fieldId = keys[ index ];\n this.updateConditionField(fieldId, fields[fieldId], targetDataView);\n }\n }\n\n private getStepConditionFields(panel: LandmarkPanel, dataView: LMDataView): LMFields {\n\n const fields: LMFields = {};\n\n if (panel.busFormPanel.complete) {\n const completedFieldId = this.getStepConditionFieldId(panel.busFormPanel.complete);\n const completedField = dataView.fields[ completedFieldId ];\n\n if (completedField) {\n fields[ completedFieldId ] = completedField;\n }\n }\n\n if (panel.busFormPanel.progress) {\n const progressFieldId = this.getStepConditionFieldId(panel.busFormPanel.progress);\n const progressField = dataView.fields[ progressFieldId ];\n\n if (progressField) {\n fields[ progressFieldId ] = progressField;\n }\n }\n\n return fields;\n }\n\n private getStepConditionFieldId(conditions: Array): string {\n\n if (!Array.isArray(conditions)) {\n conditions = [ conditions ];\n }\n\n return conditions[ 0 ].fieldId;\n }\n\n private updateConditionField(fieldId: string, field: LMField, dataView: LMDataView) {\n const targetField = dataView.fields[ fieldId ];\n\n if (targetField) {\n targetField.value = field.value;\n }\n }\n\n private updateStepPanels(clearSubPanels: boolean) {\n if (!NgZone.isInAngularZone()) {\n this.ngZone.run(args => this.updateStepPanels(clearSubPanels));\n }\n this.lmFormPanelBaseService.updateCompositePanels(this.formSpec.busFormSpec, this.model, clearSubPanels);\n this.panels = this.flattenPanels(this.lmFormPanelBaseService.getPanels());\n }\n\n private flattenPanels(panels: Array): Array {\n const flattenedPanels: Array = new Array();\n\n for (let i = 0, len = panels.length; i < len; i++) {\n const panel = panels[i];\n\n if (panel.isSubPanel) {\n continue;\n }\n\n flattenedPanels.push(panel);\n\n if (panel.hasSubPanels) {\n for (const item of panel.subPanels) {\n flattenedPanels.push(item);\n }\n }\n }\n\n return flattenedPanels;\n }\n\n private goToPanel(panelId: string) {\n if (this.sohoStepProcessComponent) {\n this.processStepChange();\n // this.sohoStepProcessComponent?.showStepPanel('#' + panelId); // https://github.com/infor-design/enterprise-ng/pull/1020 available in 9.4\n (this.sohoStepProcessComponent as any).stepprocess?.showStepPanel('#' + panelId);\n }\n }\n\n handlePostRegistration() {\n this.formReloading = true;\n }\n}\n","
        \n
        {{'StepsToComplete' | translate}}
        \n \n\n
        \n
        {{getCurrentStepTitle()}}
        \n {{getCurrentSubPanelTitle()}}\n
        \n\n
        \n \n\n `\n
        \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n
        \n
        \n
        \n
        \n\n
        \n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { LMModel, LMModelStatusEvent } from './model/lm-model';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMModelServiceAdapter } from '@form/model/lm-model-service-adapter';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMFormContentFormComponent } from './lm-form-content-form.component';\nimport { LMFormTransactionService } from './services/lm-form-transaction.service';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\n\n@Component({\n selector: 'lm-form-content-template',\n animations: [\n trigger('questionVisibility', [\n state('visible', style({\n height: '*',\n display: 'block'\n })),\n state('hidden', style({\n height: '0px',\n display: 'none'\n })),\n transition('visible => hidden', [\n animate('450ms ease-in')\n ]),\n transition('hidden => visible', [\n animate('450ms ease-out')\n ]),\n ]),\n ],\n templateUrl: 'lm-form-content-template.component.html',\n styleUrls: [ 'lm-form-content-template.component.scss' ]\n})\n\nexport class LMFormContentTemplateComponent implements OnInit, AfterViewChecked, OnDestroy {\n\n @ViewChildren('LMFormStandardComponent') children: QueryList;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n @Input() displayPanelId: string;\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() placeHolder: ViewContainerRef;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this.fromDataViewChanged = true;\n }\n\n get fromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n @Input() sourceDataView: LMDataView; // Sub panel dataView\n @Input() formOptions;\n @Input() layout;\n @Input() model;\n @Input() specFields;\n @Input() dynamicChildVisibility: LMDynamicChildVisibility;\n @Input() displayWhenIndex: number;\n\n @Output() formTemplateLoaded = new EventEmitter();\n @Output() formTemplateLoading = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n private fromDataViewChanged = false;\n private _fromDataView: LMDataView;\n private templateDataViewSet: LMDataViewSet;\n private subscriptionManager: Subject = new Subject();\n\n public dataViewList: Array;\n public templateRecordInfo: Array = [];\n public showEmptyMessage: boolean | false;\n public emptyMessage: SohoEmptyMessageOptions;\n\n constructor(\n private lmErrorUtilService: LMErrorUtilService,\n private changeDetectionRef: ChangeDetectorRef,\n private lmLoggerService: LMLoggerService,\n private lmModelServiceAdapter: LMModelServiceAdapter,\n private lmFormPagingService: LMFormPagingService,\n private lmFormTransactionService: LMFormTransactionService,\n private lmErrorMessageService: LMErrorUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmGlobalUtilService: LMGlobalUtilService\n ) {\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewChecked() {\n if (this.fromDataViewChanged) {\n this.fromDataViewChanged = false;\n if (this.fromDataView) {\n setTimeout(() => this.buildAndLoadTemplateRecord());\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptionManager.next();\n this.subscriptionManager.complete();\n }\n // events\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n trackByModel(index: number, record: TemplateRecordInfo): LMModel {\n return record.model;\n }\n\n private buildAndLoadTemplateRecord(observer?: Observer) {\n this.lmLoggerService.time({ id: 'lmformcontenttemplate fetchTemplateDataViewSet()' });\n this.formTemplateLoading.emit();\n\n this.lmFormPagingService.loadTemplateRecords(this.formUrlInfo, this.formSpec, this.fromDataView, this.sourceDataView, this.displayWhenIndex)\n .subscribe(\n (response: any) => {\n this.lmLoggerService.timeEnd('lmformcontenttemplate fetchTemplateDataViewSet()');\n if (response.status === AppConstants.STATUS_COMPLETED) {\n this.buildTemplateRecordModels(response);\n } else {\n this.handleError(response);\n }\n\n if (observer) {\n observer.next(response.status === AppConstants.STATUS_COMPLETED);\n observer.complete();\n }\n },\n (error: any) => {\n\n if (observer) {\n observer.next(true);\n observer.complete();\n }\n\n this.lmLoggerService.timeEnd('lmformcontenttemplate fetchTemplateDataViewSet()');\n this.lmLoggerService.error([ 'lmformcontenttemplate', 'fetchTemplateDataViewSet()', error ]);\n this.handleError(error);\n }\n );\n }\n\n private buildTemplateRecordModels(lmDataViewSet: LMDataViewSet) {\n this.templateDataViewSet = lmDataViewSet;\n this.templateRecordInfo = Object.assign([], []);\n let numberLabel = 0;\n let followUpNumber = 0;\n let lastParentTargetView: LMDataView = null;\n let lastParentTargetInfo: TemplateRecordInfo = null;\n\n const len = this.templateDataViewSet && this.templateDataViewSet.data ? this.templateDataViewSet.data.length : 0;\n\n if (len === 0) {\n this.setNoDataMessage();\n } else {\n this.clearEmptyMessage();\n }\n\n for (let index = 0; index < len; index++) {\n const templateView: LMDataView = this.templateDataViewSet.data[ index ];\n const targetDataView: LMDataView = templateView.dataView;\n const isFollowUpQuestion = this.isFollowUpQuestion(templateView);\n\n if (!isFollowUpQuestion) {\n lastParentTargetView = targetDataView;\n numberLabel++;\n }\n\n const info: TemplateRecordInfo = {\n templateView,\n model: this.createFormModel(templateView, targetDataView, numberLabel, index),\n isFollowUpQuestion,\n followUpQuestions: [],\n isQuestionVisible: isFollowUpQuestion ? this.isQuestionVisible(templateView, lastParentTargetView) : true,\n };\n\n if (!isFollowUpQuestion) {\n lastParentTargetInfo = info;\n followUpNumber = 0;\n } else {\n if (lastParentTargetInfo) {\n if (info.isQuestionVisible) {\n followUpNumber++;\n }\n info.model.numberLabel = lastParentTargetInfo.model.numberLabel + '.' + followUpNumber.toString(10);\n lastParentTargetInfo.followUpQuestions.push(info);\n } else {\n this.lmLoggerService.log('WARNING: Template Form that implemented dynamicChildVisibility has orphaned questions'\n + ' templateView.representativeText: ' + templateView.representativeText);\n }\n }\n\n this.addListeners(info);\n this.templateRecordInfo.push(info);\n }\n\n this.formTemplateLoaded.emit();\n }\n\n private addListeners(info: TemplateRecordInfo) {\n info.model.statusChanges.pipe(takeUntil(this.subscriptionManager)).subscribe((modelChangedEvent: LMModelStatusEvent) => {\n if (this.dynamicChildVisibility && !info.isFollowUpQuestion) {\n this.updateVisibleWhen(info);\n }\n this.contentModified.emit();\n });\n }\n\n private createFormModel(templateView: LMDataView, targetDataView: LMDataView, numberLabel: number, index: number): LMModel {\n // create a deep clone of the formSpec so we can add a unique namePrefix; see also lm-form-panel.service.ts\n // TODO: future consideration for refactoring: use formOptions to pass form / panel id so deep-cloning would not be needed\n const formSpec: LMFormSpec = JSON.parse(JSON.stringify(this.formSpec));\n formSpec.busFormSpec.namePrefix = this.displayPanelId + '_' + index;\n\n const formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(formSpec);\n const modelOptions: LMModelOptions = { formUrlInfo, formSpec };\n const model: LMModel = new LMModel(this.lmModelServiceAdapter, modelOptions);\n const isNumberedQuestion = !this.isFollowUpQuestion(templateView);\n\n model.numberLabel = isNumberedQuestion ? numberLabel.toString(10) : '';\n model.populate(this.specFields);\n model.setData(targetDataView, { notifyListeners: false });\n\n return model;\n }\n\n private getTemplateRecordModels(): Array {\n const templateRecordModels: LMModel[] = [];\n this.templateRecordInfo.forEach(info => {\n templateRecordModels.push(info.model);\n });\n return templateRecordModels;\n }\n\n private updateFromServer(dataViewSet: any) {\n this.templateDataViewSet = dataViewSet;\n\n this.templateRecordInfo.forEach((info, i) => {\n info.model.setData(this.templateDataViewSet.data[i].dataView, { notifyListeners: true } );\n });\n\n // force the angular templates to rebuild\n this.templateRecordInfo = Object.assign([], this.templateRecordInfo);\n }\n\n private isFollowUpQuestion(templateView: LMDataView): boolean {\n if (this.dynamicChildVisibility && templateView.fields.hasOwnProperty(this.dynamicChildVisibility.childDesignatorField)) {\n const childDesignatorFld: LMField = templateView.fields[ this.dynamicChildVisibility.childDesignatorField ];\n // another situation where it would be nice to have field type on LMField!\n // childDesignatorFld should be a String field - right?\n return childDesignatorFld.value !== '';\n }\n\n return false;\n }\n\n private isQuestionVisible(templateView: LMDataView, targetView: LMDataView): boolean {\n if (this.dynamicChildVisibility\n && templateView.fields.hasOwnProperty(this.dynamicChildVisibility.childDesignatorField)\n && targetView.fields.hasOwnProperty(this.dynamicChildVisibility.parentMatchField)) {\n const designatorFld: LMField = templateView.fields[ this.dynamicChildVisibility.childDesignatorField ];\n const matcherMutexFieldId = targetView.fields[ this.dynamicChildVisibility.parentMatchField ].mutexFieldId;\n const matcherFld = targetView.fields[ matcherMutexFieldId ];\n return designatorFld.value.toString() === matcherFld.value.toString();\n } else {\n return true;\n }\n }\n\n private updateVisibleWhen(info: TemplateRecordInfo): void {\n let followUpNumber = 0;\n info.followUpQuestions.forEach(dependentInfo => {\n const isVisible = this.isQuestionVisible(dependentInfo.templateView, info.model.getData());\n dependentInfo.isQuestionVisible = isVisible;\n\n if (isVisible) {\n followUpNumber++;\n }\n dependentInfo.model.numberLabel = info.model.numberLabel + '.' + followUpNumber.toString(10);\n });\n }\n\n public refresh(): Observable {\n return new Observable(observer => {\n this.buildAndLoadTemplateRecord();\n observer.next(true);\n observer.complete();\n });\n }\n\n public isDirty(): boolean {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < this.templateRecordInfo.length; i++) {\n if (this.templateRecordInfo[ i ].model.isDirty) {\n return true;\n }\n }\n return false;\n }\n\n public save(observer: Observer, skipToast?: boolean) {\n let subPanelResourceId;\n\n if (this.sourceDataView) {\n subPanelResourceId = this.sourceDataView.resourceId;\n }\n\n this.lmFormTransactionService.runSaveTemplateAction(\n this.formUrlInfo,\n this.formSpec,\n this.fromDataView,\n this.getTemplateRecordModels(),\n this.templateDataViewSet,\n this.displayPanelId,\n this.displayWhenIndex,\n subPanelResourceId\n ).subscribe((transactionState: LMTransactionState) => {\n let isSuccess = false;\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // what to do?\n } else {\n const actionResult: LMActionResult = transactionState.getTransactionResult();\n // What to do?\n if (actionResult.status === AppConstants.STATUS_COMPLETED) {\n isSuccess = true;\n this.updateFromServer(actionResult.dataView);\n if (!skipToast) {\n const message = actionResult.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage('', message, AppConstants.TRA_ACTION_COMPLETED);\n }\n if (actionResult.completeIdentityOrigURL) {\n setTimeout(() => {\n this.lmGlobalUtilService.navigate(actionResult.completeIdentityOrigURL);\n }, 5);\n }\n } else if (actionResult.status === AppConstants.VIEW_EXCEPTION || actionResult.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.showTemplateFormError(actionResult);\n }\n\n observer.next(isSuccess);\n observer.complete();\n }\n });\n }\n\n private showTemplateFormError(actionResult: LMActionResult) {\n if (actionResult.status === AppConstants.STATUS_SYSTEM_ERROR || !actionResult.dataView) {\n this.lmErrorUtilService.handleError(actionResult.message, actionResult.details, actionResult.status, actionResult.message);\n } else {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < this.templateRecordInfo.length; i++) {\n const targetModel = this.templateRecordInfo[ i ].model;\n\n if (actionResult.dataView && actionResult.dataView.resourceId === targetModel.resourceId) {\n this.handleTransactionStatus(targetModel, actionResult);\n break;\n }\n }\n }\n }\n\n private handleTransactionStatus(templateModel: LMModel, result: LMActionResult) {\n if (result.status === AppConstants.VIEW_EXCEPTION) {\n let fieldHasObservers = false;\n if (result.fieldId) {\n fieldHasObservers = templateModel.setFieldError(result.fieldId, result.message);\n }\n if (!fieldHasObservers) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status);\n }\n } else if (result.status !== AppConstants.STATUS_COMPLETED && result.status !== AppConstants.CONFIRMATION_REQUIRED) {\n // If the status is confirmation required, it may be due to the user cancelling out of runtime confirmation.\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n }\n }\n\n private clearEmptyMessage() {\n this.showEmptyMessage = false;\n this.emptyMessage = {};\n }\n\n private setNoDataMessage() {\n this.showEmptyMessage = true;\n\n this.emptyMessage = {\n title: Soho.Locale.translate('NoDataAvailable'),\n icon: 'icon-empty-no-data',\n color: 'azure'\n };\n }\n\n private setErrorLoadingMessage(error: LMError) {\n this.showEmptyMessage = true;\n const title = error && error.title ? error.title : Soho.Locale.translate('UnexpectedErrorOccured');\n const message = error && error.message ? error.message : '';\n\n this.emptyMessage = {\n title,\n info: message,\n icon: 'icon-empty-error-loading',\n color: 'azure'\n };\n }\n\n private handleError(response: any) {\n this.setErrorLoadingMessage(response);\n this.lmErrorMessageService.handleUnexpectedError(response, this.placeholder);\n }\n}\n\nexport interface TemplateRecordInfo {\n templateView: LMDataView;\n model: LMModel;\n isFollowUpQuestion: boolean;\n followUpQuestions: TemplateRecordInfo[],\n isQuestionVisible: boolean;\n}\n","
        \n \n \n \n \n
        \n
        \n\n
        \n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { LMModel } from '@form/model';\nimport { LMBusyIndicatorService, LMLoggerService, LMUrlUtilService } from '@services/index';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { LMFormContentBase } from './lm-form.model';\nimport { LMFormContentCompositeComponent } from './lm-form-content-composite.component';\nimport { LMFormContentFormComponent } from './lm-form-content-form.component';\nimport { LMFormContentStepprocessComponent } from './lm-form-content-stepprocess.component';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFormContentManualRepresentationComponent } from './lm-form-content-manual-representation.component';\nimport { LMFormContentMatrixComponent } from './lm-form-content-matrix.component';\nimport { LMFormSpecUtilService, LMStepPanelEvent } from './services';\nimport { Observable } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMBannerService } from '@banner/lm-banner.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMFormContentSearchComponent } from './lm-form-content-search.component';\n\n// todo shouldn't this be a in a typedef somewhere? Or perhaps for enums we need to import them from somewhere.\nenum LMFormType {\n SEARCH = 0,\n STANDARD,\n COMPOSITE,\n STEP_PROCESS_OR_WIZARD,\n INSTANCE_COUNT_CHART,\n MANUAL_REPRESENTATION,\n MENU_LAYOUT,\n MATRIX\n}\n\n@Component({\n selector: 'lm-form-content',\n templateUrl: './lm-form-content.component.html',\n styleUrls: [ 'lm-form-content.component.scss' ],\n providers: [ LMFormPagingService ]\n})\nexport class LMFormContentComponent implements OnInit, AfterViewInit, LMFormContentBase {\n\n @ViewChild('LMManualRepresentation') formManRepComponent: LMFormContentManualRepresentationComponent;\n @ViewChild('LMFormStandardComponent') formStandardComponent: LMFormContentFormComponent;\n @ViewChild('LMStepProcessComponent') stepProcessComponent: LMFormContentStepprocessComponent;\n @ViewChild('LMFormSearchComponent') searchFormComponent: LMFormContentSearchComponent;\n @ViewChild('LMComposite') compositeComponent: LMFormContentCompositeComponent;\n @ViewChild('LMMatrix') formMatrixComponent: LMFormContentMatrixComponent;\n\n @Input() formUrlInfo: LMFormUrlInfo = null;\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions = null;\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() placeHolder: ViewContainerRef;\n @Input() formState: LMFormState;\n @Input() formPersonalization: LMFormPersonalization;\n @Input() fromDataView: LMDataView;\n @Input() columnarText: string;\n @Input() parentIsModal: boolean;\n @Input() instanceId: string;\n\n @Output() contentModified = new EventEmitter();\n @Output() contentLoadEvent = new EventEmitter();\n @Output() searchButtonClicked = new EventEmitter();\n @Output() clearSearchButtonClicked = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n @Output() stepPanelEvent: EventEmitter = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionsToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n @Output() matrixActionEvent = new EventEmitter();\n\n // private verticalTabs = false;\n // private contextForm: LMContextForm;\n // private panels: Array = [];\n public subType: LMFormType;\n layoutSubType;\n\n constructor(\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmBannerService: LMBannerService,\n private lmGlobalUtilService: LMGlobalUtilService\n ) {\n this.layoutSubType = LMFormType;\n }\n\n ngOnInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n this.initialize();\n }\n\n ngAfterViewInit() {\n // this.lmLoggerService.log([this, this.instanceId, 'ngAfterViewInit()']);\n //\n // This marks the end of form intialization. Remove the busy indicator started in lm-form.component constructor or ngOnInit\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n let loadTime = 0;\n if (this.isActionForm) {\n loadTime = this.lmLoggerService.timeEnd('TotalActionForm', [ this, 'ngAfterViewInit()', 'end' ]);\n } else {\n loadTime = this.lmLoggerService.timeEnd(`Total-Form-${this.instanceId}`, [ this, 'ngAfterViewInit()', 'end' ]);\n }\n this.sendPageAnalytics(loadTime);\n }\n\n private initialize() {\n // if (this.formOptions.compositeFormOptions) {\n // this.verticalTabs = this.formOptions.compositeFormOptions.verticalTabs;\n // this.contextForm = this.formOptions.compositeFormOptions.contextForm;\n // this.panels = this.formOptions.compositeFormOptions.panels;\n // }\n\n if (this.isSearchForm) {\n this.subType = LMFormType.SEARCH;\n\n } else if (this.isStandardForm && !this.isActionFormWithSections) {\n this.subType = LMFormType.STANDARD;\n\n } else if (this.isCompositeForm || this.isActionFormWithSections) {\n this.subType = LMFormType.COMPOSITE;\n\n } else if (this.isStepProcessForm || this.formSpec.busFormSpec.isWizard) {\n this.subType = LMFormType.STEP_PROCESS_OR_WIZARD;\n\n } else if (this.isInstanceCountChartForm) {\n this.subType = LMFormType.INSTANCE_COUNT_CHART;\n\n } else if (this.isManualRepresentationForm) {\n this.subType = LMFormType.MANUAL_REPRESENTATION;\n\n } else if (this.isMenuLayoutForm) {\n this.subType = LMFormType.MENU_LAYOUT;\n\n } else if (this.isMatrixForm) {\n this.subType = LMFormType.MATRIX;\n\n }\n }\n\n private sendFormData(): boolean {\n return (!this.isActionForm &&\n !this.isChangePasswordForm &&\n !this.isBusinessTaskForm &&\n !this.isSearchForm &&\n !this.isPageContextForm &&\n !this.isResponseRequired &&\n !this.isCompactForm &&\n !this.formOptions.isDashBoardContent &&\n !this.formSpec.dependentForm);\n }\n\n private sendPageAnalytics(loadTime: number): void {\n if (this.sendFormData()) {\n this.contentLoadEvent.emit(loadTime);\n } else if (this.isActionForm) {\n this.contentLoadEvent.emit(loadTime);\n }\n }\n\n get isPageContextForm(): boolean {\n return this.lmFormSpecUtilService.isPageContextForm(this.formSpec);\n }\n\n get isSearchForm(): boolean {\n return this.lmFormSpecUtilService.isSearchForm(this.formSpec);\n }\n\n get isStandardForm(): boolean {\n return (this.lmFormSpecUtilService.isStandardForm(this.formSpec));\n // && this.lmFormSpecUtilService.formName(this.formSpec) !== 'ManualRepresentation');\n }\n\n get isContextForm(): boolean {\n return (this.lmFormSpecUtilService.isContextForm(this.formSpec));\n }\n\n get isStepProcessForm(): boolean {\n return this.lmFormSpecUtilService.isStepProcessForm(this.formSpec);\n }\n\n get isMenuLayoutForm(): boolean {\n return this.lmFormSpecUtilService.isMenuLayoutForm(this.formSpec);\n }\n\n get isMatrixForm(): boolean {\n return this.lmFormSpecUtilService.isMatrixForm(this.formSpec);\n }\n\n get isCompositeForm(): boolean {\n return this.lmFormSpecUtilService.isCompositeForm(this.formSpec);\n }\n\n get isInstanceCountChartForm(): boolean {\n return this.lmFormSpecUtilService.isInstanceCountChartForm(this.formSpec);\n }\n\n get isManualRepresentationForm(): boolean {\n return false;\n\n // return this.formSpec.busFormSpec.name === 'ManualRepresentation';\n }\n\n get isActionForm(): boolean {\n return this.lmFormSpecUtilService.isActionForm(this.formSpec);\n }\n\n get isActionFormWithSections() {\n return this.isActionForm && this.formSpec.busFormSpec.panels;\n }\n\n get isResponseRequired(): boolean {\n return this.lmFormSpecUtilService.isResponseRequired(this.formSpec);\n }\n\n get isCompactForm(): boolean {\n return this.lmFormSpecUtilService.isCompactForm(this.formSpec);\n }\n\n get isChangePasswordForm(): boolean {\n return this.lmFormSpecUtilService.isChangePasswordForm(this.formSpec);\n }\n\n get isBusinessTaskForm(): boolean {\n return this.lmFormSpecUtilService.isBusinessTask(this.formSpec);\n }\n\n public onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n public onSearchClicked(event: LMFilterEvent) {\n this.searchButtonClicked.emit(event);\n }\n\n public onClearSearchClicked(event: LMFilterEvent) {\n this.clearSearchButtonClicked.emit(event);\n }\n\n public onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n public onRunMatrixActionEvent(event) {\n this.matrixActionEvent.emit(event);\n }\n\n public onUpdateToolbarStateEvent(event: any) {\n this.updateToolbarStateEvent.emit();\n }\n\n public onStepPanelEvent(event) {\n this.stepPanelEvent.emit(event);\n }\n\n public onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n public onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionsToolbarButtonEvent.emit(event);\n }\n\n public onPanelTransactionEvent(event: LMPanelTransactionEvent): void {\n this.panelTransactionEvent.emit(event);\n }\n\n // TODO implement a common interface\n // isModified()\n // runSaveAction()\n // saveComponentState()\n isModified(): boolean {\n if (this.isStandardForm) {\n return this.formStandardComponent.isModified();\n } else if (this.isCompositeForm) {\n return this.compositeComponent.isModified();\n } else if (this.isStepProcessForm) {\n return this.stepProcessComponent.isModified();\n } else if (this.isManualRepresentationForm) {\n return this.formManRepComponent.isModified();\n } else if (this.isMatrixForm) {\n return this.formMatrixComponent.isModified();\n } else {\n return false;\n }\n }\n\n canActivatePanel(fieldId): boolean {\n if (this.isCompositeForm) {\n return this.compositeComponent.canActivatePanel(fieldId);\n }\n return false;\n }\n\n runMatrixToggleDetail(showDetail: boolean) {\n if (this.isMatrixForm) {\n return this.formMatrixComponent.runMatrixToggleDetail(showDetail);\n }\n }\n\n runRefresh() {\n if (this.isStandardForm) {\n return this.formStandardComponent.runRefresh();\n } else if (this.isCompositeForm) {\n return this.compositeComponent.runRefresh();\n } else if (this.isStepProcessForm) {\n return this.stepProcessComponent.runRefresh();\n } else if (this.isManualRepresentationForm) {\n return this.formManRepComponent.runRefresh();\n } else if (this.isMatrixForm) {\n return this.formMatrixComponent.runRefresh();\n }\n }\n\n runSaveAction(): Observable {\n if (this.isStandardForm) {\n return this.formStandardComponent.runSaveAction();\n } else if (this.isCompositeForm) {\n return this.compositeComponent.runSaveAction();\n } else if (this.isStepProcessForm) {\n return this.stepProcessComponent.runSaveAction();\n } else if (this.isManualRepresentationForm) {\n return this.formManRepComponent.runSave();\n } else if (this.isMatrixForm) {\n return this.formMatrixComponent.runSaveAction();\n }\n }\n\n saveComponentState() {\n if (this.formStandardComponent) {\n this.formStandardComponent.saveComponentState();\n }\n if (this.compositeComponent) {\n this.compositeComponent.saveComponentState();\n }\n\n if (this.stepProcessComponent) {\n this.stepProcessComponent.saveComponentState()\n }\n }\n\n clearComponentState() {\n if (this.formStandardComponent) {\n this.formStandardComponent.clearComponentState();\n }\n if (this.compositeComponent) {\n this.compositeComponent.clearComponentState();\n }\n\n if (this.stepProcessComponent) {\n this.stepProcessComponent.clearComponentState()\n }\n }\n}\n","\n \n \n \n \n \n \n \n \n \n\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\n\n@Injectable()\nexport class LMFormManualRepService {\n\n private _dataView: LMDataView = null;\n private _formSpec: LMFormSpec = null;\n private _manualRepSpec: any = null; // this needs to be typed once leon does the parsing\n private count = 0;\n\n constructor(private lmContextService: LMContextService) {}\n\n public setDataView(dataView: LMDataView): void {\n this._dataView = dataView;\n }\n // public getDataView(): LMDataView {\n // return this._dataView;\n // }\n\n public setFormSpec(formSpec: LMFormSpec): void {\n this._formSpec = formSpec;\n }\n\n public setManualRepSpec(manualRepSpec: any): void {\n this._manualRepSpec = manualRepSpec;\n }\n\n // public getFormSpec(): LMFormSpec {\n // return this._formSpec;\n // }\n\n // this is only for demo/testing of early Field Manual Rep\n public getCount() {\n return this.count++;\n }\n\n public getManualRefFields() {\n // use spec to find fields to return\n\n const fields: any = [];\n if (this._dataView && this._manualRepSpec) {\n const dataFields: LMFields = this._dataView.fields;\n let repFields: LMFields;\n\n for (let index = 0; index < this._manualRepSpec.fields.length; index++) {\n // let field: LMField = dataFields[this._manualRepSpec.fields[index]];\n const jsonField = this._dataView.fields[this._manualRepSpec.fields[index]];\n const field = {name: this._manualRepSpec.fields[index], field: jsonField};\n fields.push(field);\n }\n }\n\n return fields;\n }\n\n\n public getContext(): LMContext {\n return this.lmContextService.getContext();\n }\n}\n","import {\n Component, ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\n\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormActionUtilService } from '@form/services/lm-form-action-util.service';\nimport { LMFormComponent, LMFormTransactionEvent } from './lm-form.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { Observer, Observable } from 'rxjs';\nimport { LMPanelTransactionEvent } from './services';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-form-panel-actionis',\n template: `\n \n \n `,\n})\nexport class LMFormPanelActionIsComponent implements OnInit, OnDestroy, LMFormPanelBase {\n @ViewChild(forwardRef(() => LMFormComponent)) private lmFormComponent; // : LMFormComponent;\n\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions;\n @Input() targetAction: string;\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() activated: boolean;\n @Input() panelId: string;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() componentDisplayed = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _fromDataView: LMDataView;\n public formUrlInfo: LMFormUrlInfo;\n\n constructor(\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormActionUtilService: LMFormActionUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) {\n }\n\n ngOnInit(): void {\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec, { formPanelActionIs: true });\n }\n\n ngOnDestroy() {\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onPanelTransactionEvent(event: LMFormTransactionEvent) {\n const originatingPanel = this.panelId;\n const panelTransactionEvt = new LMPanelTransactionEvent(originatingPanel);\n this.panelTransactionEvent.emit(panelTransactionEvt);\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n if (this.lmFormComponent) {\n this.lmFormComponent.runRefresh(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n // ActionIs form saves even if it is NOT dirty because we do not want to force\n // user to change a value to run the action\n public save(callBack: Observer, skipToast?: boolean) {\n if (this.lmFormComponent) {\n const dataView = this.lmFormComponent.getDataView();\n const actionSpec = this.lmFormActionUtilService.getTargetAction(this.formSpec, dataView, this.targetAction);\n this.lmFormComponent.runActionSpec(actionSpec, dataView, callBack, skipToast);\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public isDirty(): boolean {\n return this.lmFormComponent ? this.lmFormComponent.isModified() : false;\n }\n\n saveCompositeComponentState(): void {\n // noop\n }\n\n clearCompositeComponentState(): void {\n // noop\n }\n\n onFormRendered() {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n}\n","import {\n Component,\n Input,\n ViewContainerRef,\n EventEmitter,\n Output,\n ViewChild,\n forwardRef,\n ElementRef\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMListTransactionEvent } from '@list/lm-list.component';\nimport { Observer, Observable, of } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMDashboardViewComponent } from '@dashboard/lm-dashboard-view.component';\nimport { LandmarkPanel } from './lm-form.model';\nimport { LMModel } from './model';\nimport { LMRefreshRequest } from '@app/components';\n\n@Component({\n selector: 'lm-form-panel-dashboard',\n template: `\n \n \n \n \n \n \n `,\n styles: [ `{\n height: 100%;\n display: block\n }` ]\n})\nexport class LMFormPanelDashboardComponent implements LMFormPanelBase {\n @ViewChild(forwardRef(() => LMDashboardViewComponent)) lmDashboardViewComponent; // : LMDashboardViewComponent;\n\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() panels: Array;\n @Input() panel: LandmarkPanel;\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() activated: boolean;\n @Input() panelId: string;\n @Input() model: LMModel;\n @Input() specFields: LMSpecFields;\n @Input() columns: 3 | 4 = 3;\n @Input() panelVisibilityUpdateTimeStamp: number;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n\n private _fromDataView: LMDataView = null;\n\n constructor(private elementRef: ElementRef) { }\n\n refresh(request?: LMRefreshRequest): Observable {\n if (this.lmDashboardViewComponent) {\n return this.lmDashboardViewComponent.refresh(request);\n } else {\n return of(true);\n }\n }\n\n public save(callBack: Observer) {\n if (this.lmDashboardViewComponent && this.isDirty()) {\n this.lmDashboardViewComponent.runSaveAction();\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public isDirty(): boolean {\n return this.lmDashboardViewComponent ? this.lmDashboardViewComponent.isModified() : false;\n }\n\n /**\n * forces the panels to relayout. useful when switching tabs after having resized the browser.\n */\n public refreshPanels() {\n this.lmDashboardViewComponent.refreshPanels(); // TODO thnking the method name should be more desciptive like layoutPanels\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMListTransactionEvent) {\n const panelTransactionEvt = new LMPanelTransactionEvent(this.panelId);\n const originatingList = event.eventSource ? event.eventSource.listId : undefined;\n panelTransactionEvt.originatingList = originatingList;\n this.panelTransactionEvent.emit(panelTransactionEvt);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.fieldEvent.emit(event);\n }\n\n saveCompositeComponentState(): void {\n if (this.lmDashboardViewComponent) {\n this.lmDashboardViewComponent.saveDashboardViewState();\n }\n }\n\n clearCompositeComponentState(): void {\n if (this.lmDashboardViewComponent) {\n this.lmDashboardViewComponent.clearDashboardViewState();\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMFormContentFormComponent } from './lm-form-content-form.component';\nimport { LMModel } from './model';\nimport { LMInvalidFieldEvent } from '@field/lm-field-base.component';\nimport { LMComponentInfoService, LMContextService, LMLoggerService } from '@services/index';\nimport {Observer, Observable, of} from 'rxjs';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport {LMCtrlShiftClickBaseComponent, LMRefreshRequest} from '@base/index';\n\n@Component({\n selector: 'lm-form-panel-form',\n template: `\n \n `,\n})\nexport class LMFormPanelFormComponent extends LMCtrlShiftClickBaseComponent implements LMFormPanelBase, OnInit, AfterViewInit {\n @HostBinding('style.display') display = 'block';\n\n @ViewChild(LMFormContentFormComponent) lmFormContentFormComponent: LMFormContentFormComponent;\n\n @Input() formSpec: LMFormSpec = null;\n @Input() initialized: boolean;\n @Input() hideBusyIndicator: boolean;\n @Input() fromDataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() model: LMModel;\n @Input() specFields: LMSpecFields;\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelId: string;\n @Input() hasPanelText = false;\n @Input() activatedTabChanged: boolean;\n\n @Input() set activated(activated: boolean) {\n this._activated = activated;\n this.formPanelContentLoaded.emit();\n }\n\n @Input() set layout(layout: LMFormLayout) {\n this._layout = layout;\n this._bindIds = this.lmCommonUtilService.getBindIdsFromLayout(layout, this.specFields);\n }\n\n @Output() fieldEvent = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n\n private _activated;\n private _layout: LMFormLayout;\n private _bindIds: Array = [];\n readonly instanceId: string;\n\n constructor(\n private lmLoggerService: LMLoggerService,\n private lmCommonUtilService: LMCommonUtilService,\n protected lmComponentInfoService: LMComponentInfoService,\n private lmContextService: LMContextService,\n private elementRef: ElementRef\n ) {\n super(lmComponentInfoService);\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n const pagingUrls: LMFormPagingUrls = (this.model) ? this.model.getPagingUrls() : undefined;\n const formSpec: LMFormSpec = this.formSpec;\n\n let message = formSpec ? '' : 'SPEC NOT LOADED YET. ';\n message += this.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n message += this.model ? '' : 'MODEL NOT LOADED YET. ';\n\n const panelSpec = this.formSpec.busFormSpec.panels.find(panel => panel.panelId === this.panelId);\n\n // let resourceInfo: ResourceInfo = formSpec && formSpec.busFormSpec.resourceInfo ? formSpec.busFormSpec.resourceInfo : undefined;\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = panelSpec ? panelSpec.personalization : undefined;\n compConfigInfo['configuration'] = panelSpec ? panelSpec.configuration : undefined;\n compConfigInfo['configStamp'] = panelSpec ? panelSpec.configStamp : undefined;\n compConfigInfo['classConfigStamp'] = panelSpec ? panelSpec.classConfigStamp : undefined;\n panelSpec['configInfo'] = compConfigInfo;\n\n const formInfo: LMComponentInfo = {\n componentType: 'FORM_PANEL',\n name: panelSpec ? panelSpec.formName : undefined,\n panelSpec,\n busClassName: formSpec ? formSpec.busClassSpec.name : undefined,\n\n module: formSpec ? formSpec.busClassSpec.module : undefined,\n type: formSpec ? formSpec.busFormSpec.formType : 'Standard',\n developer: formSpec ? formSpec.developer : undefined,\n\n lpl: formSpec ? formSpec.busFormSpec.lpl : undefined,\n\n tenant: this.lmContextService.getContext() ? this.lmContextService.getContext().urlPdlOrDa : undefined,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n\n message: message.length > 0 ? message : undefined,\n };\n\n if (pagingUrls) {\n formInfo.nextRecordUrl = pagingUrls.nextRecordUrl;\n formInfo.previousRecordUrl = pagingUrls.previousRecordUrl;\n formInfo.reloadRecordUrl = pagingUrls.reloadRecordUrl;\n }\n\n return formInfo;\n }\n\n onFieldEvent(event) {\n if ('FieldInvalidEvent' === event.eventType) {\n const fieldChangedEvent = event as LMInvalidFieldEvent;\n if (this._bindIds.findIndex(bindId => fieldChangedEvent.bindId === bindId) > -1) {\n fieldChangedEvent.panelId = this.panelId;\n }\n }\n this.fieldEvent.emit(event);\n }\n\n get activated() {\n return this._activated;\n }\n\n get layout() {\n return this._layout;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return of (true)\n }\n\n public save(callBack: Observer) {\n // NOTHING TO SAVE\n callBack.next(true);\n callBack.complete();\n }\n\n public isDirty(): boolean {\n return this.model.isDirty;\n }\n\n saveCompositeComponentState(): void {\n // noop\n }\n\n clearCompositeComponentState(): void {\n // noop\n }\n}\n","import {\n Component, ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMModelServiceAdapter } from '@form/model/lm-model-service-adapter';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { LMFileUploadService } from '@services/file-upload/lm-fileupload.service';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { LMFormToolbarService } from '@form/services/lm-form-toolbar.service';\nimport { LMFormComponent } from './lm-form.component';\nimport { LMFormActionUtilService } from '@form/services/lm-form-action-util.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { Observer, Observable } from 'rxjs';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n\n providers: [\n LMFileUploadService,\n LMFormActionUtilService,\n LMFormRequestService,\n LMFormPagingService,\n LMFormToolbarService,\n LMModelServiceAdapter\n ],\n\n selector: 'lm-form-panel-independentform',\n template: `\n \n \n `,\n})\n\nexport class LMFormPanelIndependentFormComponent implements OnInit, OnDestroy, LMFormPanelBase {\n\n @ViewChild(forwardRef(() => LMFormComponent)) private lmFormComponent; // : LMFormComponent;\n\n @Input() formSpec: LMFormSpec = null;\n @Input() formOptions: LMFormOptions;\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() activated: boolean;\n @Input() panelId: string;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() componentDisplayed = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n\n private _fromDataView: LMDataView;\n public formUrlInfo: LMFormUrlInfo;\n\n constructor(\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec);\n }\n\n ngOnDestroy() {\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onFieldEvent(event) {\n this.fieldEvent.emit(event);\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n if (this.lmFormComponent) {\n this.lmFormComponent.runRefresh(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n public save(callBack: Observer, skipToast?: boolean) {\n if (this.lmFormComponent && this.isDirty()) {\n this.lmFormComponent.runSaveAction(AppConstants.STANDARD_SAVE, callBack, skipToast)\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public isDirty(): boolean {\n return this.lmFormComponent ? this.lmFormComponent.isModified() : false;\n }\n\n saveCompositeComponentState(): void {\n // noop\n }\n\n clearCompositeComponentState(): void {\n // noop\n }\n\n onFormRendered() {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n}\n","import {\n Component,\n Input,\n ViewContainerRef,\n EventEmitter,\n Output,\n ViewChild,\n forwardRef,\n OnInit,\n ElementRef, HostBinding\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMListComponent, LMListTransactionEvent } from '@list/lm-list.component';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observer, Observable, of } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMRefreshRequest } from \"@app/components\";\n\n@Component({\n selector: 'lm-form-panel-list',\n template: `\n \n `\n})\nexport class LMFormPanelListComponent implements LMFormPanelBase, OnInit {\n @ViewChild(forwardRef(() => LMListComponent)) lmListComponent; // : LMListComponent;\n\n @HostBinding('style.display') display = 'block';\n @HostBinding('style.height') height = '100%';\n @HostBinding('class.implements-cart-view') @Input() implementsCartView: boolean;\n\n @Input() listSpec: LMListSpec;\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() activated: boolean;\n @Input() panelId: string;\n @Input() specialActions: Array;\n @Input() formContextOnLeft: boolean;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _fromDataView: LMDataView = null;\n public listUrlInfo: LMListUrlInfo;\n\n constructor(\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(this.listSpec);\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n if (this.lmListComponent) {\n return this.lmListComponent.refresh(request);\n } else {\n return of (true);\n }\n }\n\n public save(callBack: Observer, skipToast?: boolean) {\n if (this.lmListComponent && this.isDirty()) {\n this.lmListComponent.commitCellEdit();\n this.lmListComponent.runSaveAction(AppConstants.STANDARD_SAVE, callBack, skipToast);\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public isDirty(): boolean {\n return this.lmListComponent ? this.lmListComponent.isModified() : false;\n }\n\n onListDisplayed(event: any) {\n this.formPanelContentLoaded.emit(event);\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onUpdateToolbarStateEvent(event: any) {\n this.updateToolbarStateEvent.emit();\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionToolbarButtonEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMListTransactionEvent) {\n const originatingPanel = this.panelId;\n const panelTransactionEvt = new LMPanelTransactionEvent(originatingPanel);\n panelTransactionEvt.originatingList = event?.eventSource?.listId;\n this.panelTransactionEvent.emit(panelTransactionEvt);\n }\n\n saveCompositeComponentState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.saveComponentState();\n }\n }\n\n clearCompositeComponentState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.clearComponentState();\n }\n }\n\n public commitCellEdit(): void {\n if (this.lmListComponent) {\n this.lmListComponent.commitCellEdit();\n }\n }\n\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMListComponent, LMListTransactionEvent } from '@list/lm-list.component';\nimport { forkJoin, Observable, Observer } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMRefreshRequest } from '@app/components';\nimport { LMMultiListSaveWorker } from '@app/utils';\n\n@Component({\n selector: 'lm-form-panel-multilist',\n templateUrl: 'lm-form-panel-multilist.component.html',\n styleUrls: [ 'lm-form-panel-multilist.component.scss' ]\n})\n\nexport class LMFormPanelMultiListComponent implements LMFormPanelBase {\n @ViewChildren('LMListComponent') listComponents: QueryList;\n\n @HostBinding('style.height') get getHeight(): string {\n if (this.hasPanelText) {\n return 'auto';\n } else {\n return '100%';\n }\n }\n\n @Input() placeHolder: ViewContainerRef;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() activated: boolean;\n @Input() sectionSpecs?: Array;\n @Input() panelId: string;\n @Input() hasPanelText = false;\n @Input() specFields: LMSpecFields;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this._numberVisibleLists = 0;\n this.listViewData = this.sectionSpecs.map(list => this.toListViewData(list));\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n // ------------------------------------------------------------\n // if needs reload then just send a null for the fromDataView\n // null will cause the list to unload it's data but not ask\n // for new data. Once needsReload is set back to false then\n // the target content will load.\n // ------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _fromDataView: LMDataView;\n public listViewData: Array;\n\n private _numberVisibleLists = 0;\n\n constructor(\n private lmFormatUtilService: LMFormatUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) { }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public get numberVisibleLists(): number {\n return this._numberVisibleLists;\n }\n\n private toListViewData(section: LMMultiListSectionSpec): LMListViewData {\n if (!section.hasOwnProperty('listSpec')) {\n return null;\n }\n\n const listViewData: LMListViewData = {\n listUrlInfo: this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(section.listSpec),\n listSpec: section.listSpec\n };\n\n if (section.showLines) {\n // kludge for now. setting the busListSpec for this multipane list\n // to the multipane lists showLines. In this way I can communicate\n // the multipane lists number of recs to show through the list spec.\n listViewData.listSpec.busListSpec.showLines = section.showLines;\n }\n\n if (section.panelText) {\n listViewData.panelText = section.panelText;\n }\n\n listViewData.isVisible = (section.visibility)\n ? this.lmConditionUtilService.isValid([ section.visibility ], this._fromDataView)\n : true;\n\n if (listViewData.isVisible) {\n this._numberVisibleLists++;\n }\n\n if (section.specialActions) {\n listViewData.specialActions = section.specialActions;\n }\n\n return listViewData;\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onListDisplayed(event: any) {\n this.formPanelContentLoaded.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionToolbarButtonEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMListTransactionEvent) {\n const originatingId = this.panelId;\n const originatingList = event.eventSource.listId;\n const panelTransactionEvt = new LMPanelTransactionEvent(originatingId);\n panelTransactionEvt.originatingList = originatingList;\n this.panelTransactionEvent.emit(panelTransactionEvt);\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n const lists = this.listComponents ? this.listComponents.toArray() : [];\n return new Observable(observer => {\n const refreshCalls: Observable[] = lists.filter(list => list.listId !== request?.originatingSourceId)\n .map((list: LMListComponent) => list.refresh());\n\n // console.log('multilist to be refresh:' + refreshCalls.length);\n\n forkJoin(refreshCalls).subscribe(value => {\n // console.log('multilist to be forkJoin:');\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n public save(callBack: Observer) {\n this.runSaveList().subscribe(\n (continueOn: boolean) => {\n callBack.next(continueOn);\n callBack.complete();\n });\n }\n\n trackByListSpec(index: number, list: LMListViewData): LMListSpec {\n return list.listSpec;\n }\n\n private runSaveList(): Observable {\n const listComponents: LMListComponent[] = this.listComponents.toArray();\n const saveWorker: LMMultiListSaveWorker = new LMMultiListSaveWorker(listComponents);\n return saveWorker.start();\n }\n\n public isDirty(): boolean {\n const listComponents: LMListComponent[] = this.listComponents.toArray();\n\n for (let i = 0, l = listComponents.length; i < l; i++) {\n if (listComponents[ i ].isModified()) {\n return true;\n }\n }\n return false;\n }\n\n saveCompositeComponentState(): void {\n this.listComponents.toArray().forEach(listComponent => listComponent.saveComponentState(true));\n }\n\n clearCompositeComponentState(): void {\n this.listComponents.toArray().forEach(listComponent => listComponent.clearComponentState(true));\n }\n}\n","]\n \n \n \n \n \n\n","import { Component, Input, Output, EventEmitter, ElementRef } from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMModel } from '@form/model/lm-model';\nimport {Observer, Observable, of} from 'rxjs';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-form-panel-notfound',\n template: `\n
        \n

        Unsupported type for composite form tab area

        \n
        \n `\n})\nexport class LMFormPanelNotFoundComponent implements LMFormPanelBase {\n @Input() formSpec: LMFormSpec;\n @Input() formOptions: any; // todo: type me\n @Input() layout: any;\n @Input() model: LMModel;\n @Input() specFields: LMSpecFields;\n @Input() activated: boolean\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState\n @Input() fromDataView: LMDataView;\n @Input() panelId: string;\n\n @Output() formPanelContentLoaded = new EventEmitter();\n\n constructor(private elementRef: ElementRef) { }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return of(true);\n }\n\n public save(observer: Observer) {\n if (observer) {\n observer.next(true);\n observer.complete();\n }\n }\n\n public isDirty(): boolean {\n return false;\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n saveCompositeComponentState(): void {\n // noop\n }\n\n clearCompositeComponentState(): void {\n // noop\n }\n}\n","import {\n Component,\n Input,\n AfterViewInit,\n ElementRef,\n OnInit,\n ViewChild,\n ViewContainerRef,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMFormContentTemplateComponent } from './lm-form-content-template.component';\nimport { LMModel } from './model';\nimport { Observer, Observable } from 'rxjs';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-form-panel-template',\n templateUrl: 'lm-form-panel-template.component.html',\n styleUrls: [ 'lm-form-panel-template.component.scss' ]\n})\n\nexport class LMFormPanelTemplateComponent implements LMFormPanelBase, AfterViewInit, OnInit {\n\n @ViewChild('LMFormTemplateComponent') templateFormComponent: LMFormContentTemplateComponent;\n\n @Input() formSpec: LMFormSpec = null;\n @Input() model: LMModel;\n @Input() placeHolder: ViewContainerRef;\n @Input() sourceDataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() panelId: string;\n @Input() busFormPanel: LMCompositePanelSpec;\n @Input() displayWhenIndex: number;\n\n @Input() set activated(activated: boolean) {\n this._activated = activated;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload || (this.panelDataState === 'stale_needsReload')) {\n\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() formPanelContentLoading = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n private _activated = false;\n private _fromDataView: LMDataView;\n\n public displayPanelId: string;\n public formUrlInfo: LMFormUrlInfo;\n\n get activated() {\n return this._activated;\n }\n constructor(\n public lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n this.displayPanelId = this.panelId;\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec);\n }\n\n ngAfterViewInit() {\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onFieldEvent(event: any) {\n this.fieldEvent.emit(event);\n }\n\n onFormTemplateLoading(event: any) {\n this.formPanelContentLoading.emit(event);\n }\n\n onFormTemplateLoaded(event: any) {\n this.formPanelContentLoaded.emit(event);\n }\n\n public dynamicChildVisibility(): LMDynamicChildVisibility {\n return this.busFormPanel ? this.busFormPanel.dynamicChildVisibility : null;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return this.templateFormComponent.refresh();\n }\n\n public save(callBack: Observer, skipToast?: boolean) {\n if (this.templateFormComponent) {\n this.templateFormComponent.save(callBack, skipToast);\n } else {\n // NOTHING TO SAVE\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public isDirty(): boolean {\n if (this.templateFormComponent) {\n return this.templateFormComponent.isDirty();\n } else {\n return false;\n }\n }\n\n saveCompositeComponentState(): void {\n // noop\n }\n\n clearCompositeComponentState(): void {\n // noop\n }\n}\n","\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { LMModel } from '@form/model/lm-model';\n\n@Component({\n selector: 'lm-form-panel-text',\n templateUrl: './lm-form-panel-text.component.html',\n styleUrls: [ 'lm-form-panel-text.component.scss' ]\n})\nexport class LMFormPanelTextComponent implements OnInit {\n\n @Input() model: LMModel;\n @Input() specFields;\n @Input() panelHeader: LMMessageRule;\n @Input() panelText: LMMessageRule;\n @Input() fromDataView: LMDataView;\n\n public panelHeaderRichTextVars: boolean;\n public panelTextRichTextVars: boolean;\n public panelData: LMModel | LMDataView;\n public panelClass: string;\n\n constructor() {\n }\n\n ngOnInit() {\n this.panelData = this.model || this.fromDataView;\n this.panelClass = (this.model) ? 'panel-text' : 'lm-list-text';\n\n if (this.panelHeader && this.panelHeader.hasOwnProperty('hasRichTextVars')) {\n this.panelHeaderRichTextVars = true;\n }\n\n if (this.panelText && this.panelText.hasOwnProperty('hasRichTextVars')) {\n this.panelTextRichTextVars = true;\n }\n }\n}\n","\n \n\n \n
        \n \n
        \n\n

        {{panelHeader | formatMessageRule:true:panelHeader:panelData:specFields}}

        \n
        \n\n\n \n\n \n
        \n \n
        \n\n

        {{panelText | formatMessageRule:true:panelText:panelData:specFields}}

        \n
        \n","import { Component, Input, ViewContainerRef, EventEmitter, Output, ViewChild, ElementRef, OnInit } from '@angular/core';\nimport { SohoToastService } from 'ids-enterprise-ng';\nimport { LMFormPanelBase } from './lm-form-panel-base';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMHtmlUrlDocComponent, LMUrlDocSaveResult } from '@html/lm-html-url-doc.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { Observer, Observable } from 'rxjs';\nimport { LMUrlUtilService } from '@services/utils';\nimport { LMPanelTransactionEvent } from './services';\nimport { LMListTransactionEvent } from '@list/lm-list.component';\nimport { LMActionFormDialogResultCode } from '@modal/lm-action-form-dialog.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMGlobalUtilService } from '@app/utils';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-form-panel-url',\n template: `\n \n\n `,\n})\nexport class LMFormPanelUrlComponent implements LMFormPanelBase, OnInit {\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent: LMHtmlUrlDocComponent;\n\n @Input() placeHolder: ViewContainerRef;\n\n @Input() set fromDataView(fromDataView) {\n this._fromDataView = fromDataView;\n this.compileURLMessageRule();\n }\n get fromDataView(): LMDataView {\n if (this.needsReload || this.panelDataState === 'stale_needsReload') {\n\n // -------------------------------------------------------------\n // return null fromDataView so tabs non activated tabs will\n // not load their data data.\n // -------------------------------------------------------------\n return null;\n }\n\n return this._fromDataView;\n }\n\n @Input() bottomSpacing = 0;\n @Input() needsReload: boolean;\n @Input() panelDataState: LMPanelDataState;\n @Input() panelId: string;\n @Input() isPanelNavigation = false;\n\n @Input() set url(url) {\n this._url = url;\n this.compileURLMessageRule();\n }\n\n @Input() activated: boolean;\n\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n get url(): LMMessageRule {\n return this._url;\n }\n\n private _fromDataView: LMDataView;\n private _url: LMMessageRule;\n public formattedUrl: string;\n public testVersion1: boolean;\n\n constructor(\n private elementRef: ElementRef,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {}\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n public getFromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n this.htmlDocComponent.url = this.formattedUrl;\n\n observer.next(true);\n observer.complete();\n });\n }\n\n public save(callBack: Observer) {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.runSave().subscribe((result: LMUrlDocSaveResult) => {\n if (result.hasMessage) {\n this.lmGlobalUtilService.displayToastMessage('', result.message, result.isComplete ? AppConstants.TRA_ACTION_COMPLETED : AppConstants.TRA_ACTION_FAILED);\n }\n callBack.next(result.isComplete);\n callBack.complete();\n });\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public fireFormActionComplete(status: LMActionFormDialogResultCode, data: LMActionFormCompleteData) {\n this.htmlDocComponent.fireFormActionComplete(status, data);\n }\n\n public isDirty(): boolean {\n return this.htmlDocComponent ? this.htmlDocComponent.isModified() : false;\n }\n\n onLandmarkApiLoaded(event: any) {\n }\n\n onLandmarkCustomReady(event: any) {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n onNotifyUrlTransactionComplete(event: LMListTransactionEvent) {\n const panelEvent: LMPanelTransactionEvent = new LMPanelTransactionEvent(this.panelId);\n this.panelTransactionEvent.emit(panelEvent);\n }\n\n saveCompositeComponentState(): void {\n // no-op\n }\n\n clearCompositeComponentState(): void {\n // no-op\n }\n\n private compileURLMessageRule() {\n if (this.url) {\n if (this.url.variables && this.url.variables.length > 0 && !this._fromDataView) {\n return;\n }\n this.formattedUrl = this.lmFormatUtilService.formatMessageRule(this.url, this._fromDataView);\n // append context session keys to the url.\n this.formattedUrl = this.lmUrlUtilService.updateUrlParams(this.formattedUrl, this.lmContextService.getContext().contextSessionKeys);\n }\n }\n}\n","import {\n AfterViewChecked,\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { ActivatedRoute, Event, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport {\n DrillPointsParams, LMActionRequest,\n LMComponentInfoService,\n LMDrillService,\n LMLoggerService,\n LMUrlInfoBuilderService\n} from '@services/index';\nimport { LMBannerHeaderComponentRef } from '@banner/lm-banner-header-component-ref.service';\nimport { AppConstants, LMDialogButtonKey, LMFormType, LMTransformOptions, LMUniqueIdService } from '@utils/index';\nimport {\n LMModel,\n LMModelCache,\n LMModelField,\n LMModelServiceAdapter,\n LMModelStatusEvent\n} from './model';\nimport { FormResource, KeyedResource, ListResource, RelationResource } from '@resources/index';\nimport { LMBaseFormComponent, LMDialogInfo, LoadResponse } from '@base/index';\nimport { LMFormToolbarService } from '@form/services';\nimport { LMErrorUtilService, LMFormatUtilService, LMFieldUtilService } from '@services/utils/index';\nimport { LMFormActionUtilService, LMFormContext } from './services/lm-form-action-util.service';\nimport { LMFormStateKeyParams, LMFormStateService } from '@states/services/lm-form-state.service';\nimport {\n LMFormPersonalizationKeyParams,\n LMFormPersonalizationService\n} from '@states/services/lm-form-personalization.service';\nimport { LMFormState } from '@states/models/lm-form-state.model';\nimport { LMFormPersonalization } from '@states/models/lm-form-personalization.model';\nimport { LMFormPagingService } from '@form/services/lm-form-paging.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormTransactionService } from './services/lm-form-transaction.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMCheckControlEvent } from '@field/checkcontrol/lm-checkcontrol.component';\nimport { LMButtonEvent } from '@field/button/lm-button.component';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport { LMPrintDialogService, LMPrintPdfInfo } from '@modal/print-dialog/lm-print-dialog.service';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMFormContentComponent } from './lm-form-content.component';\nimport { LMTextEvent } from '@field/text/lm-text.component';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMFormRequestService } from '@form/services';\nimport {\n SohoBusyIndicatorDirective,\n SohoMessageService,\n SohoModalDialogService\n} from 'ids-enterprise-ng';\nimport * as _ from 'lodash';\nimport { SaveRequired } from '@base/lm-base';\nimport { LMActionFormDialogComponent } from '@modal/lm-action-form-dialog.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport {\n LMCompactFormEvent,\n LMCubeRelationLPLValidationEvent,\n LMDefineEvent,\n LMFieldValueChangedEvent,\n LMInvalidLPLEvent,\n LMPreviewEvent,\n LMQueryValidateEvent,\n LMRelatedFormEvent,\n LMSubFormEvent,\n LMTranslateFormEvent\n} from '@field/lm-field-base.component';\nimport { LMMenuEvent } from '@card/lm-simple-card.component';\nimport { LMFormManualRepService } from './lm-form-manual-rep.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport {\n LMCompactFormDialogResult,\n LMCompactFormDialogService,\n LMCompactFormResult\n} from '@modal/lm-compact-form-dialog.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMTransactionService, LMTransactionState } from '@transaction/index';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { LMSubFormDialogResult, LMSubFormDialogService, LMSubFormResult } from '@modal/lm-sub-form-dialog.service';\nimport {\n LMSelectRecordDialogResult,\n LMSelectRecordDialogService,\n LMSelectRecordResult\n} from '@modal/lm-select-record-dialog.service';\nimport { DocumentResource } from '@resources/document.resource';\nimport { LMFieldOptionsService, LMFieldOptionsToolbarService } from '@field/services';\nimport { LMInstanceCountChartEvent } from './lm-form-content-instance-count.component';\nimport {\n DefineFormSpecUrlResponse,\n LMFormSpecUtilService,\n LMPanelTransactionEvent,\n LMStepPanelEvent\n} from './services';\nimport {\n LMFieldSubscriptionService,\n LMManualRepresentationComponent,\n LMOpenLookupEvent,\n LMPreviewOptionsDialogComponent\n} from '@field/index';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMListComponent } from '@list/lm-list.component';\nimport { environment } from '@environments/environment';\nimport { BehaviorSubject, Observable, Observer, SubscriptionLike as ISubscription, throwError, Subject } from 'rxjs';\nimport { debounceTime, filter, first, flatMap, catchError, finalize, concatMap, tap } from 'rxjs/operators';\nimport { LMAuditLogCompareDialogComponent } from '@auditlog/lm-audit-log-compare-dialog.component';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMPrintCsvInfo, LMScheduleDialogService } from '@modal/print-dialog';\nimport { LMGlobalStorageKeyParams, LMGlobalStorageService } from '@states/services';\nimport { LMGlobalStorageModel } from '@states/models';\nimport { LMStateHelperService } from '@services/lm-state-helper.service';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\n\nimport * as urltemplate from 'url-template';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMHtmlUrlDocComponent } from '@app/components';\n\nexport class LMFormTransactionEvent {\n public constructor(\n public eventSource: LMFormComponent,\n public actionResultArray: LMActionResult) {}\n}\n\nclass FormViewData {\n /**\n * Set this formSpec to have the view template pass list spec down\n * to the form-content.component and it's sub view (standard, composite, etc...)\n */\n formSpec: LMFormSpec;\n /**\n * Set this dataView to have the view template pass dataView down\n * to the form-content.component and it's sub view (standard, composite, etc...)\n */\n dataView: LMDataView;\n}\n\n@Component({\n selector: 'lm-form',\n providers: [\n LMDrillService,\n LMFieldOptionsService,\n LMFieldOptionsToolbarService,\n LMFieldSubscriptionService,\n LMFormActionUtilService,\n LMFormPagingService,\n LMFormService,\n LMFormToolbarService,\n LMKeyboardShortcutService,\n LMModelServiceAdapter,\n LMFormManualRepService,\n LMHtmlPageUtilService,\n LMHtmlUrlDocService,\n LMSelectRecordDialogService\n ],\n templateUrl: './lm-form.component.html',\n styleUrls: [ 'lm-form.component.scss' ]\n})\n\nexport class LMFormComponent extends LMBaseFormComponent implements OnInit, AfterViewChecked, OnDestroy, SaveRequired {\n // todo: don't really like this as it just hides the component. Values from the screen are still in the dom but just not displayed.\n // todo: we'll also want to put a semi-opaque overlay over the form so no toolbar buttons can be clicked.\n @HostBinding('style.visibility') get hostVisibility() {\n if (this.formSpec) {\n return this.formSpec.dependentForm && (this.fromDataView === null && this.initDataView === null) ? 'hidden' : null;\n }\n return null;\n }\n\n @HostBinding('style.height') styleHeight = '100%';\n @HostBinding('style.display') styleDisplay = 'block';\n\n @HostBinding('id') get formId(): string {\n if (this.formSpec) {\n return this.formSpec.formElementId + (this.testVersion1 ? '' : '_form');\n }\n return null;\n }\n\n @HostBinding('attr.data-automation-id') get formAutomationId(): string {\n if (this.formSpec) {\n return `lm-${this.formSpec.automationId}-form`;\n }\n return null;\n }\n\n @HostListener('document:keydown', [ '$event' ]) onKeyDown(e) {\n // TODO check to make sure a modal isn't open.\n if (this.isRouterOutletRootComponent) {\n const key = this.lmKeyboardShortcutService.onKeyDown(e);\n if (!key) {\n return;\n }\n const dataView: LMDataView = this.getDataView();\n\n switch (key) {\n case LMKeyType.SAVE:\n if (this.checkSaveRequired()) {\n this.runSave(AppConstants.STANDARD_SAVE, dataView);\n }\n break;\n case LMKeyType.NEXT:\n if ((this.lmFormSpecUtilService.isStandardForm(this.formSpec)\n || this.lmFormSpecUtilService.isCompositeForm(this.formSpec))\n && !this.lmFormSpecUtilService.isActionForm(this.formSpec)) {\n if (dataView.pagingInfo && dataView.pagingInfo.hasNext && !dataView.pagingInfo.nextDisabled) {\n this.getNextRecord(dataView);\n }\n }\n break;\n case LMKeyType.PREVIOUS:\n if ((this.lmFormSpecUtilService.isStandardForm(this.formSpec)\n || this.lmFormSpecUtilService.isCompositeForm(this.formSpec))\n && !this.lmFormSpecUtilService.isActionForm(this.formSpec)) {\n if (dataView.pagingInfo && dataView.pagingInfo.hasPrevious && !dataView.pagingInfo.previousDisabled) {\n this.getPreviousRecord(dataView);\n }\n }\n break;\n case LMKeyType.REFRESH:\n this._runRefresh();\n break;\n }\n }\n }\n\n @ViewChild('LMFormContentComponent') formContentComponent: LMFormContentComponent;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeHolder: ViewContainerRef;\n @ViewChild(LMToolbarComponent) lmToolbarComponent: LMToolbarComponent;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n @Input() actionIsAction: string;\n @Input() resourceId: string;\n @Input() formUrlInfo: LMFormUrlInfo = null;\n @Input() formSpec: LMFormSpec = null;\n @Input() actionFormOptions: LMActionFormOptions;\n @Input() parentIsModal: boolean;\n @Input() isCartView: boolean;\n\n private _formOptions: LMFormOptions = {};\n @Input() set formOptions(options: LMFormOptions) {\n // Allows the form to be aware of filterCriteria changes to update the model accordingly\n const filterCriteria = options.filterCriteria;\n if (this.model\n && this._formOptions.filterCriteria !== filterCriteria\n && (this._formOptions.filterCriteria || filterCriteria)) {\n this.model.setData(this._initDataView, { filterCriteria, alphaDefaultFilterCondition: options.defaultAlphaFilterCondition });\n }\n this._formOptions = options;\n }\n get formOptions(): LMFormOptions {\n return this._formOptions;\n }\n\n @Input() set specFields(specFields: LMSpecFields) {\n this._specFields = specFields;\n }\n\n get specFields(): LMSpecFields {\n return this._specFields;\n }\n\n @Input() set initDataView(dataView: LMDataView) {\n if (!dataView) {\n return;\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'initDataView()' ]);\n this._initDataView = dataView;\n\n if (this.initialBuildComplete) {\n this.formDataLoaded();\n }\n }\n\n @Input() set fromDataView(dataView: LMDataView) {\n this._fromDataView = dataView;\n this.fromDataViewChanged = true;\n }\n get fromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n @Input() columnarText: string;\n @Input() pageContextForm = false;\n\n @Output() contentModified = new EventEmitter();\n @Output() cubeSearchOpenLookupEvent = new EventEmitter();\n @Output() searchButtonClicked = new EventEmitter();\n @Output() clearSearchButtonClicked = new EventEmitter();\n @Output() formRendered = new EventEmitter();\n @Output() titleChanged = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() formDisplayed = new EventEmitter();\n @Output() formTransactionEvent = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n\n private fromDataViewChanged = false;\n private _initDataView: LMDataView;\n private _fromDataView: LMDataView | null = null;\n private fromResourceImpl: KeyedResource;\n private formResourceImpl: FormResource;\n\n private formComponentId: string;\n\n private formDataLoadedComplete: boolean;\n private isRouterOutletRootComponent = false;\n private formType: LMFormType = LMFormType.STANDARD;\n\n // private verticalTabs = false;\n // private contextForm: LMContextForm;\n // private isPanelNavigation = false;\n // private isWizard = false;\n\n public _specFields: LMSpecFields;\n private configRequiredFields: Array;\n public layout: LMFormLayout;\n public model: LMModel;\n public events: any[] = [];\n\n public hideTitleBar = false;\n public hideTitleManageScroll = false;\n public testVersion1: boolean;\n public uiLoadingIndicatorTimeout = 0;\n\n // false indicates form is pristine; no modifications\n public allowUpdate = false;\n\n public isProduction = environment.production;\n private modelSourceEvent: LMModelSourceEvent;\n private toolbarInitialized = false;\n private hasModelStatusSubscription = false;\n private showMatrixDetail = false;\n private lookupFieldId: string;\n private runningSpecialActionList: LMListComponent;\n\n public compositeFormWithOutContext = false;\n\n get formModel(): LMModel {\n return this.model;\n }\n\n // Toolbar\n public formTitle: string;\n public toolbarButtons: Observable>;\n\n /**\n * Hold the state of this form.\n */\n public formState: LMFormState = {};\n private formStateKeyParams: LMFormStateKeyParams;\n\n public formPersonalization: LMFormPersonalization = {};\n private formPersonalizationKeyParams: LMFormPersonalizationKeyParams;\n\n private globalStorageModel: LMGlobalStorageModel = {};\n private globalStorageKeyParams: LMGlobalStorageKeyParams;\n\n private anonymousRegistered = false;\n private modelCache: LMModelCache;\n\n private initialBuildComplete = false;\n private subscriptionArray: Array = [];\n\n public locale = 'en-US';\n public formViewData: FormViewData = new FormViewData();\n\n private hasLPLValidationError = false;\n private scheduleView: LMDataView;\n private initialValueRuleCallQueue$ = new Subject();\n public readonly instanceId: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private zone: NgZone,\n private changeDetectionRef: ChangeDetectorRef,\n private currentComponent: LMRouteComponentService,\n public elementRef: ElementRef,\n private location: Location,\n private renderer: Renderer2,\n private router: Router,\n private route: ActivatedRoute,\n private appRef: ApplicationRef,\n private sohoMessageService: SohoMessageService,\n public sohoModalDialogService: SohoModalDialogService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmContextService: LMContextService,\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService, // LMActionFormDialogService,\n private lmActionService: LMActionService,\n private lmBannerHeaderCompRef: LMBannerHeaderComponentRef,\n private lmCompactFormDialogService: LMCompactFormDialogService,\n private lmSubFormDialogService: LMSubFormDialogService,\n private lmSelectRecordDialogService: LMSelectRecordDialogService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmFormActionUtilService: LMFormActionUtilService,\n private lmFormPersonalizationService: LMFormPersonalizationService,\n private lmFormPagingService: LMFormPagingService,\n private lmStateHelperService: LMStateHelperService,\n private lmFormStateService: LMFormStateService,\n private lmFormService: LMFormService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmFormRequestService: LMFormRequestService,\n private lmFormToolbarService: LMFormToolbarService,\n private lmFormTransactionService: LMFormTransactionService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmGlobalStorageService: LMGlobalStorageService,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n protected lmLoggerService: LMLoggerService,\n private lmModelServiceAdapter: LMModelServiceAdapter,\n private lmNavigationService: LMNavigationService,\n private lmPrintDialogService: LMPrintDialogService,\n private lmSpecService: LMSpecService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmContextUtilService: LMContextUtilService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmKeyboardShortcutService: LMKeyboardShortcutService,\n private lmTransactionService: LMTransactionService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmScheduleDialogService: LMScheduleDialogService,\n private lmHtmlUrlDocService: LMHtmlUrlDocService\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmLoggerService, lmComponentInfoService, lmUniqueIdService);\n this.initializeMemberVariables();\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n\n // This is added for now to get by an issue where the preceived loading of the component is delayed.\n // The constructor is called but then a 4-10 second delay is seen before the ngOnInit is called.\n // The issue was written up but the issue closed as no example was submitted and the problem was not\n // seen by a large number of people. Current plan is to try to dup the issue in a small example and\n // submit. A link to the issue Below\n // https://github.com/angular/angular/issues/18816\n setTimeout(() => {\n this.zone.run(() => {\n // CHANGE DETECTION\n if (this.url3_5) {\n this.changeDetectorRef.detectChanges();\n }\n });\n });\n\n const routerEventsSubscription = router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n // this.currentComponent.setRouteComponent(this);\n // if (this.isRouterOutletRootComponent && this.initialBuildComplete) {\n // /**\n // * Called when this ListComponent object is reused by angular.\n // * Call resetListComponent and build here as ngOnInit and ngAfterViewInit\n // * will not be called in this scenarios.\n // */\n // this.resetFormComponent();\n // this.showBusyIndicator();\n // this.build();\n // }\n // // setTimeout(() => {\n // // appRef.tick();\n // // });\n } else if (event instanceof NavigationStart) {\n\n // show busy indicator when leaving a route.\n this.lmBusyIndicatorService.showBusyIndicator();\n\n // ---------------------------------------------------------------------\n // NOTE: if an access denied error happens then page won't be built.\n // Make sure to only saveState and personalizations if the component\n // is actually built.\n // ---------------------------------------------------------------------\n if (this.initialBuildComplete) {\n this.saveComponentState();\n }\n }\n });\n\n this.instanceId = this.lmLoggerService.instanceId;\n this.subscriptionArray.push(routerEventsSubscription);\n }\n\n // events\n ngOnInit() {\n this.lmLoggerService.time({\n id: `Total-Form-${this.instanceId}`,\n description: 'TOTAL FORM',\n functionName: 'ngOnInit()',\n className: 'LMFormComponent',\n timingStart: 'LMFormComponent -> ngOnInit()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n this.lmLoggerService.trace([ this, this.instanceId, 'ngOnInit()', 'resourceId=', this.resourceId, 'formSpec=', this.formSpec ]);\n\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.hideTitleBar = this.lmContextService.isHideTitlebar();\n\n if (!this.lmContextService.inMingleWidget() && !this.lmContextService.inMingleInbox() && !this.formSpec) {\n this.isRouterOutletRootComponent = true;\n this.currentComponent.setRouteComponent(this as Component);\n }\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n if (!this.initialBuildComplete) {\n this.build();\n }\n\n // this code block will handle synchronous firing of initial value rule (queue schduler)\n // it will queue events until its MAX_QUEUE, set from LMFormService, equals 2\n this.initialValueRuleCallQueue$.pipe(\n tap(() => {\n this.lmFormService.initialValueRuleQueueCountUp();\n if (!this.lmFormService.canFireIntialValueRule) {\n this.showBusyIndicator();\n }\n }),\n concatMap((bindId: string) => this.fireInitialValueRules(bindId))\n ).subscribe(() => {\n // TODO DPB need to notify listeners like step and composite so they can update tab if a visibleWhen condition was updated\n this.lmFormService.initialValueRuleQueueCountDown();\n this.lmConditionUtilService.evaluateConditions.next(true);\n if (!this.lmFormService.isFiringInitialValueRule) {\n this.hideBusyIndicator();\n }\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngAfterViewChecked() {\n if (this.componentDestroyed) {\n return;\n }\n\n if (this.fromDataViewChanged) {\n this.fromDataViewChanged = false;\n\n // An independent form on a composite form panel\n // sets the fromDataView to null when the composite form\n // dataView keys change. It does this so the component will\n // not fetch data until its the active panel.\n if (this.fromDataView != null) {\n setTimeout(() => this.load());\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.lmFormToolbarService.reset();\n\n this.setComponentDestroyed();\n this.initialValueRuleCallQueue$.complete();\n\n // added to try to fix memory leak in IE11 when using the harness\n this.lmBannerHeaderCompRef = null;\n this.toolbarMoreMenuSettings = null;\n this.onBeforeFormToolbarMoreMenuOpen = null;\n\n // maf trying this here first; remove if there are issues\n // maf found issues 08/08/2019 model cannot be destroyed due to applying state changes from sub / compact form\n // if (this.model) {\n // this.model.destroy();\n // this.model = null;\n // }\n }\n\n public allowPageNavigation(): Promise | boolean {\n if (this.checkSaveRequired()) {\n if (this.modalOpen()) {\n // let just ask if they want to stay,\n // difficult to determine the modal's purpose - it may run an action or it may just return unsaved data\n return this.displayNavigationConfirmation();\n } else {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(continueOn => {\n youMayNavigateSource.next(continueOn);\n youMayNavigateSource.complete();\n this.hideBusyIndicator();\n });\n\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n }\n return true;\n }\n\n private handleUnsavedChanges(info: LMDialogInfo): Observable {\n return new Observable(observer => {\n if (this.isModified()) {\n this.showUnsavedChanges(info).subscribe((response: UnsavedChangesResponse) => {\n if (response === LMDialogButtonKey.YES) {\n const dataView: LMDataView = this.getDataView();\n this.runSave(AppConstants.STANDARD_SAVE, dataView, observer);\n } else if (response === LMDialogButtonKey.NO) {\n observer.next(true);\n observer.complete();\n } else {\n // Cancel. Stay put and do nothing!\n observer.next(false);\n observer.complete();\n }\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n checkSaveRequired() {\n if (this.anonymousRegistered) {\n return false; // anonymous user registered and now has an actorId. the window will reload!!!\n }\n if (this.modelCache && this.modelCache.autoApply === true) {\n return false;\n }\n return (this.isModified() || this.modalOpen());\n }\n\n modalOpen() {\n return this.lmActionFormDialogService.hasOpenDialog;\n }\n\n displayNavigationConfirmation(): Promise | boolean {\n const comp: LMActionFormDialogComponent = this.lmActionFormDialogService.getOpenDialog.componentDialog;\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const dialogId = 'UnsavedChanges';\n if (comp.formComponent.isModified()) {\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.LEAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.LEAVE),\n click: (e, modal) => {\n this.lmActionFormDialogService.getOpenDialog.close({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.STAY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.STAY),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n this.hideBusyIndicator();\n }\n }\n ];\n\n // Show the confirmation message dialog.\n // todo I18n\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('NavigateAwayMessage'))\n .title(Soho.Locale.translate('UnsavedChangesMessage'))\n .buttons(buttons)\n .open();\n\n } else {\n // the form in the action form dialog component isn't dirty, so just return a boolean rather than\n // a promise attached to a confirmation\n this.lmActionFormDialogService.getOpenDialog.close();\n return true;\n }\n\n return (youMayNavigate.pipe(filter(el => el))).toPromise();\n }\n\n showBusyIndicator(): void {\n if (this.isRouterOutletRootComponent) {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n }\n\n hideBusyIndicator(): void {\n if (this.isRouterOutletRootComponent) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n }\n\n private initializeMemberVariables() {\n this.formDataLoadedComplete = false;\n this.formSpec = undefined;\n this.formOptions = { isDashBoardContent: false };\n this.formViewData = new FormViewData();\n this.formType = LMFormType.STANDARD;\n\n this.resourceId = '';\n this._initDataView = undefined;\n this.fromResourceImpl = undefined;\n this.formResourceImpl = undefined;\n\n this.formComponentId = undefined;\n\n this._specFields = undefined;\n this.configRequiredFields = [];\n this.layout = undefined;\n this.model = undefined;\n // this.form = undefined;\n\n this.events = [];\n\n // false indicates form is pristine; no modifications\n this.allowUpdate = false;\n\n // Toolbar\n this.formTitle = '';\n this.lmFormToolbarService.reset();\n\n /**\n * Hold the state of this form.\n */\n this.formState = {};\n this.formStateKeyParams = null;\n this.formPersonalization = {};\n this.formPersonalizationKeyParams = null;\n this.globalStorageModel = {};\n this.globalStorageKeyParams = null;\n this.modelCache = undefined;\n }\n\n /**\n * Reset this LMFormComponent so it can be re-used for another formSpec.\n */\n /* private resetFormComponent() {\n this.initializeMemberVariables();\n\n // reset the header toolbar if this is the root router-outlet component\n if (this.isRouterOutletRootComponent) {\n this.lmBannerHeaderCompRef.instance.hasTabs = false;\n this.lmFormToolbarService.reset();\n }\n\n this.url3_5 = undefined;\n this.legacyWebUI = false;\n this.uiCompare = false;\n }*/\n\n private isMingleEnabledForShortcut(): boolean {\n return (!this.isActionForm &&\n !this.isChangePasswordForm &&\n !this.isBusinessTaskForm &&\n !this.isSearchForm &&\n !this.isPageContextForm &&\n !this.isResponseRequired &&\n !this.isCompactForm &&\n !this.formOptions.isDashBoardContent &&\n !this.formSpec.dependentForm);\n }\n\n private isMingleEnabledForBusinessContext(): boolean {\n // Process flow work item forms displayed in Mingle inbox are not of the following types tested. This method will return true.\n return (!this.isChangePasswordForm &&\n !this.isSearchForm &&\n !this.isPageContextForm &&\n !this.isResponseRequired &&\n !this.isCompactForm &&\n !this.formOptions.isDashBoardContent &&\n !this.formSpec.dependentForm);\n }\n\n private sendShortcut(): void {\n if (this.isMingleEnabledForShortcut()) {\n this.lmContextUtilService.enableStandardShortcut();\n }\n }\n\n private sendBusinessContext(dataView: LMDataView, contextMsgs?: any): void {\n if (this.isMingleEnabledForBusinessContext()) {\n const actionSpec = this.lmActionService.getTargetAction({\n formSpec: this.formSpec,\n dataView\n });\n\n if (actionSpec !== null && actionSpec.type === AppConstants.ACTION_TYPE_CREATE) {\n return;\n }\n\n this.lmContextUtilService.buildContextMessages({\n busFormName: this.formSpec.busFormSpec.name,\n busClassName: this.formSpec.busClassSpec.name,\n widgetEventPrefix: AppConstants.RESOURCETYPE_FORM,\n dataObj: dataView,\n busContextMessages: this.formSpec.busContextMessages,\n busContextInvocations: this.formSpec.busContextInvocations\n })\n .subscribe((msgObj: any) => {\n if (msgObj.status === AppConstants.STATUS_COMPLETED) {\n\n if (contextMsgs) {\n msgObj = this.lmContextUtilService.mergeContextMessages({\n sourceMsgs: msgObj,\n addMsgs: contextMsgs\n });\n }\n\n if (this.isRouterOutletRootComponent || this.isActionForm || this.isBusinessTaskForm || this.isMingleInbox) {\n if (this.isActionForm || this.isBusinessTaskForm || this.isMingleInbox) {\n msgObj.doNotPersistMessage = true;\n }\n if (this.isActionForm) {\n msgObj.noDrillbackUrl = true;\n }\n this.lmContextUtilService.clearAll();\n this.lmContextUtilService.sendContextMessages(msgObj);\n } else {\n this.sendContextMessageEvent.emit(msgObj);\n }\n }\n });\n }\n }\n\n public onTitleChanged(event: any) {\n const titleChanged = event.detail;\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = titleChanged.newTitle;\n }\n\n onContentModified(event: any) {\n const dataView: LMDataView = this.getDataView();\n this.allowUpdate = this.isModified();\n\n if (dataView) {\n this.updateToolbarState(dataView, this.allowUpdate, true);\n }\n\n this.contentModified.emit(event);\n }\n\n // eslint-disable-next-line no-unused-vars\n onUpdateToolbarStateEvent(event: any) {\n const dataView: LMDataView = this.getDataView();\n this.allowUpdate = this.isModified();\n\n if (dataView) {\n this.updateToolbarState(dataView, this.allowUpdate, true);\n }\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendBusinessContext(this.formViewData.dataView, event);\n }\n\n onSearchClicked(event: LMFilterEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onSearchClicked()', event ]);\n this.searchButtonClicked.emit(event);\n }\n\n onClearSearchClicked(event: LMFilterEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onClearSearchClicked()', event ]);\n this.clearSearchButtonClicked.emit(event);\n }\n\n onRunMatrixActionEvent(event: LMMatrixActionEvent) {\n this.runMatrixAction(event.actionTarget, event.actionSpec, event.dataView, event.callBack);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onFieldEvent()', this, event ]);\n\n if ('CheckControlEvent' === event.eventType) {\n const checkControlEvent = event as LMCheckControlEvent;\n const isChecked: boolean = checkControlEvent.isChecked;\n this.runCheckControlAction(checkControlEvent.layoutObject, isChecked);\n } else if ('ButtonEvent' === event.eventType) {\n const buttonEvent = event as LMButtonEvent;\n this.runFormButtonAction(buttonEvent.layoutObject);\n } else if ('TextLinkEvent' === event.eventType) {\n const linkEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n } else {\n this.runFormButtonAction(linkEvent.layoutObject);\n }\n } else if ('FireInitialValueRuleEvent' === event.eventType) {\n const evt: LMFieldValueChangedEvent = event as LMFieldValueChangedEvent;\n this.initialValueRuleCallQueue$.next(evt.bindId);\n } else if ('EvaluateConditionsEvent' === event.eventType) {\n // const evt: LMFieldValueChangedEvent = event as LMFieldValueChangedEvent;\n this.lmConditionUtilService.evaluateConditions.next(true);\n } else if ('MenuClickEvent' === event.eventType) {\n const menuEvent = event as LMMenuEvent;\n this.requestActionFromPageMenu(menuEvent);\n } else if ('InstanceCountChartEvent' === event.eventType) {\n const instanceCounterEvent = event as LMInstanceCountChartEvent;\n\n if (instanceCounterEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(instanceCounterEvent.layoutObject);\n }\n } else if ('OpenCompactFormEvent' === event.eventType) {\n const evt: LMCompactFormEvent = event as LMCompactFormEvent;\n this.openCompactFormDialog(evt.fieldId, evt.title, evt.layout, evt.moreSpecFields, evt.originalCompactFormLayout, evt.displayOnly, evt.excludeOriginalField);\n } else if ('OpenSubFormEvent' === event.eventType) {\n const evt: LMSubFormEvent = event as LMSubFormEvent;\n this.openSubFormDialog(evt.fieldId, evt.title, evt.busFormSpec);\n } else if ('OpenLookupEvent' === event.eventType) {\n const evt: LMOpenLookupEvent = event as LMOpenLookupEvent;\n this.lookupFieldId = evt.fieldId;\n\n } else if ('OpenCubeSearchLookupEvent' === event.eventType) {\n this.cubeSearchOpenLookupEvent.emit(event);\n\n } else if ('DefineEvent' === event.eventType) {\n const evt: LMDefineEvent = event as LMDefineEvent;\n this.runDefineAction(this.getDataView(), evt.fieldId);\n } else if ('RelatedEvent' === event.eventType) {\n const relatedFormEvent = event as LMRelatedFormEvent;\n this.runDrillAction(relatedFormEvent.actionReference);\n } else if ('PreviewEvent' === event.eventType) {\n const previewEvent = event as LMPreviewEvent;\n this.previewQuery(previewEvent.query, previewEvent.busClass, previewEvent.fieldId);\n } else if ('QueryValidateEvent' === event.eventType) {\n const queryValidateEvent = event as LMQueryValidateEvent;\n this.validateLplQuery(queryValidateEvent.query, queryValidateEvent.busClass, queryValidateEvent.fieldId, queryValidateEvent.isBusinessClassCompute, queryValidateEvent.computeType);\n } else if ('CubeRelationLPLValidationEvent' === event.eventType) {\n const cubeRelationLPLValidationEvent = event as LMCubeRelationLPLValidationEvent;\n this.validateCubeRelationLplQuery(cubeRelationLPLValidationEvent.query, cubeRelationLPLValidationEvent.busClass, cubeRelationLPLValidationEvent.fieldId);\n } else if ('TranslateEvent' === event.eventType) {\n const translateFormEvent = event as LMTranslateFormEvent;\n const navigationName = `${translateFormEvent.busClass}_${translateFormEvent.detName}_Translation`;\n this.runNavigation(navigationName, false, true);\n } else if ('InvalidLPLEvent' === event.eventType) {\n const invalidLPLEvent = event as LMInvalidLPLEvent;\n this.setHasValidationError(invalidLPLEvent.hasLPLValidationError);\n } else if ('FilterOperatorEvent' === event.eventType) {\n this.fieldEvent.emit(event);\n }\n }\n\n onContentLoadEvent(loadTime: number) {\n // eslint-disable-next-line no-unused-vars\n this.lmGlobalUtilService.updateClientStatsTelegraf(this.getComponentInfo(), loadTime).subscribe((response: any) => {});\n }\n\n private previewQuery(query: string, busClass: string, fieldId: string) {\n if (query.length > 0) {\n const formRequestUrlTemplate = urltemplate.parse(this.formUrlInfo.formRequestUrl);\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId: this.model.formResourceId });\n // Validate Observable\n this.lmFormRequestService.validateLplQuery(formRequestUrl, this.getDataView(), query, busClass)\n .subscribe(result => {\n if (result.lplStatus && result.lplStatus === 'LPL_VALID') {\n this.formModel.clearFieldError(fieldId);\n let lmPreviewComponentRef: LMPreviewOptionsDialogComponent;\n const buttons = [\n {\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n this.handleQueryPreviewAction(busClass, lmPreviewComponentRef.listName, query);\n modal.close(true);\n\n },\n isDefault: true,\n },\n {\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n modal.close(true);\n }\n }\n ];\n\n this.sohoModalDialogService\n .modal(LMPreviewOptionsDialogComponent, this.placeHolder, { fullsize: 'responsive' })\n .buttons(buttons)\n .title('Preview Options')\n .apply(dialogRef => {\n lmPreviewComponentRef = dialogRef;\n this.lmFormRequestService.getListViewsForBusClass(formRequestUrl, busClass).subscribe(listName => {\n lmPreviewComponentRef.listNames = listName;\n });\n })\n .open();\n\n } else {\n this.formModel.setFieldError(fieldId, result.message);\n }\n });\n }\n }\n\n private validateLplQuery(query: string, busClass: string, fieldId: string, isBusinessClassCompute, computeType?: string) {\n this.formModel.clearFieldError(fieldId);\n this.hasLPLValidationError = false;\n if (query.length > 0) {\n const formRequestUrlTemplate = urltemplate.parse(this.formUrlInfo.formRequestUrl);\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId: this.model.formResourceId });\n // Validate Observable\n this.lmFormRequestService.validateLplQuery(formRequestUrl, this.getDataView(), query, busClass, isBusinessClassCompute, computeType)\n .subscribe(result => {\n this.lmLoggerService.log([ this, this.instanceId, 'LPL validation performed' ]);\n if (result.lplStatus && result.lplStatus !== 'LPL_VALID') {\n this.formModel.setFieldError(fieldId, Soho.Locale.translate('LplConditionError'), true);\n this.hasLPLValidationError = true;\n }\n });\n }\n }\n\n private validateCubeRelationLplQuery(query: string, busClass: string, fieldId: string) {\n this.formModel.clearFieldError(fieldId);\n this.hasLPLValidationError = false;\n if (query.length > 0) {\n const formRequestUrlTemplate = urltemplate.parse(this.formUrlInfo.formRequestUrl);\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId: this.model.formResourceId });\n // Validate Observable\n this.lmFormRequestService.validateCubeRelationLplQuery(formRequestUrl, query, busClass)\n .subscribe(result => {\n this.lmLoggerService.log([ this, this.instanceId, 'Cube Relation LPL validation performed' ]);\n if (result.status && result.status !== 'LPL_VALID') {\n this.formModel.setFieldError(fieldId, result.error, true);\n this.hasLPLValidationError = true;\n }\n });\n }\n }\n\n private setHasValidationError(hasLPLValidationError: boolean) {\n this.hasLPLValidationError = hasLPLValidationError;\n }\n\n private handleQueryPreviewAction(busClass: string, listName: string, query: string) {\n const formRequestUrlTemplate = urltemplate.parse(this.formUrlInfo.previewActionUrl);\n const formRequestUrl = formRequestUrlTemplate.expand({ resourceId: busClass, listName, filter: query });\n this.lmGlobalUtilService.navigate(formRequestUrl, null, 'external');\n }\n\n onStepPanelEvent(event: LMStepPanelEvent): void {\n\n const dataView = this.model.getData();\n\n if (AppConstants.FORM_PANEL_TRANSACTION_COMMIT_TYPE === event.panelTransaction) {\n this.executeSave(AppConstants.STANDARD_SAVE, dataView, event.transactionObserver, true);\n } else if (AppConstants.FORM_PANEL_TRANSACTION_VALIDATION_TYPE === event.panelTransaction) {\n const actionName = dataView.action;\n const actionSpec = this.lmActionService.getActionByName(this.formSpec.busClassSpec.actions, actionName);\n this.runValidateFormPanel(actionSpec, dataView, event.panelId, event.transactionObserver);\n }\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent): void {\n this.lmLoggerService.time({ id: 'LMForm.onPanelTransactionEvent() ' + this.instanceId });\n\n // don't refresh and lose unsaved data!\n if (this.model.isDirty) {\n if (event.callBack) {\n event.callBack.next(true);\n event.callBack.complete();\n }\n return;\n }\n\n const refreshRecord = this.lmFormPagingService.refreshRecord(this.getDataView(), this.formUrlInfo.navigationContext).subscribe((reloadDataView: LMDataView) => {\n if (reloadDataView.status === AppConstants.STATUS_SYSTEM_ERROR){\n const errorResponse = reloadDataView as LMSystemException;\n this.lmErrorUtilService.handleError(errorResponse.message, errorResponse.details, errorResponse.status);\n this.lmLoggerService.error([ 'lmform onPanelTransactionEvent()', errorResponse ]);\n } else {\n if (reloadDataView.serverLog) {\n this.lmLoggerService.serverLog(reloadDataView.serverLog);\n }\n this._initDataView = reloadDataView;\n this.formViewData.dataView = this._initDataView;\n this.model.setData(this._initDataView, { notifyListeners: true, source: event });\n this.updateToolbarState(this._initDataView, this.allowUpdate, true);\n }\n\n // TODO: Refactor step to NOT use a callback\n // let the step content know you are done\n if (event.callBack) {\n event.callBack.next(true);\n event.callBack.complete();\n }\n });\n\n this.subscriptionArray.push(refreshRecord);\n this.lmLoggerService.time({ id: 'LMForm.onPanelTransactionEvent() ' + this.instanceId });\n }\n\n private runValidateFormPanel(actionSpec: LMActionSpec, dataView: LMDataView, panelName: string, callBack?: Observer): void {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n\n if (this.validateConfigRequiredFields(this.configRequiredFields)) {\n this.lmFormTransactionService.runValidateFormPanel(formContext, actionSpec, dataView, panelName).subscribe(\n (transactionState: LMTransactionState) => {\n this.handleTransactionStatus(transactionState.getTransactionResult());\n if (transactionState.isSuccess()) {\n this.model.updateData(transactionState.getTransactionResult().dataView, { notifyListeners: true });\n }\n if (callBack) {\n callBack.next(transactionState.isSuccess());\n callBack.complete();\n }\n });\n\n } else {\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n }\n }\n\n onBeforeFormToolbarMoreMenuOpen = (response: SohoPopupMenuResponseFunction, options: any) => {\n let buttons = [];\n if (this.isRouterOutletRootComponent && !this.hideTitleBar) {\n buttons = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.flexMoreButtons;\n if (options.isSubmenu) {\n // if a submenu, then need all the buttons for flex toolbar. This is because a menu button could get overflowed\n // and since it was in the buttonset, it wasn't in the flexMoreButtons\n buttons = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.flexButtons;\n }\n } else {\n buttons = this.lmToolbarComponent.flexMoreButtons;\n if (options.isSubmenu) {\n // if a submenu, then need all the buttons for flex toolbar. This is because a menu button could get overflowed\n // and since it was in the buttonset, it wasn't in the flexMoreButtons\n buttons = this.lmToolbarComponent.flexButtons;\n }\n }\n\n let showDrillAround = true;\n if (!!this.lmContextService.getContext().disallowNavigations || this.model.isCreateAction) {\n showDrillAround = false;\n }\n\n if (options.hasOwnProperty('contextElement')) {\n const drillPointsParams: DrillPointsParams = { dataView: this.getDataView() };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n // let relatedActionsFunction: Function;\n let relatedActionsFunction: (response: AjaxBeforeOpenResponseFunction, options: any) => void;\n if (this.lmToolbarComponent) {\n relatedActionsFunction = this.lmToolbarComponent.onBeforeRelatedActionsOpen;\n } else if (this.lmBannerHeaderCompRef.instance.lmToolbarComponent) {\n relatedActionsFunction = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.onBeforeRelatedActionsOpen;\n }\n this.lmFormToolbarService.buildMoreButtonMenu(this.formSpec, response, options, buttons, { drillParams: drillPointsParams,\n showDrillAround, isContextMenu: false }, relatedActionsFunction);\n } else {\n const responseString = this.lmFormToolbarService.buildFirstLevelMoreMenu(this.formSpec, buttons, showDrillAround);\n response(responseString);\n }\n };\n\n public get formResource(): FormResource {\n return this.formResourceImpl;\n }\n\n public set formResource(formResource: FormResource) {\n this.formResourceImpl = formResource;\n }\n\n public get fromResource(): KeyedResource {\n return this.fromResourceImpl;\n }\n\n public set fromResource(fromResource: KeyedResource) {\n this.fromResourceImpl = fromResource;\n }\n\n // moved from template\n public get showToolbarOnForm(): boolean {\n // show toolbar on mingle inbox (action forms and process flows)\n // or when in root component and context has hide title toolbar true\n return this.lmContextService.inMingleInbox() || (this.isRouterOutletRootComponent && this.hideTitleBar) || (this.formSpec && this.formSpec.busFormSpec.implementsCartView);\n }\n\n /***********************************************\n * PUBLIC METHODS\n ***********************************************/\n public load(): Promise> {\n this.lmLoggerService.trace([ this, this.instanceId, 'load()' ]);\n\n // eslint-disable-next-line no-unused-vars\n return new Promise((resolve, reject) => {\n if (this.formSpec.busFormSpec.panelNavigation) {\n this._loadStepRecord();\n } else {\n this._loadStandardRecord();\n }\n });\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onToolbarButtonEvent()', toolbarButtonEvent.actionReference ]);\n\n if (toolbarButtonEvent.actionReference === undefined || toolbarButtonEvent.actionReference === null) {\n return;\n }\n\n if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_ACTION) {\n this.runAction(this.formSpec.busClassSpec.actions[toolbarButtonEvent.actionReference.index]); // Call out Actions.\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_STANDARD_ACTION) {\n this.runStandardAction(toolbarButtonEvent.actionReference);\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_PROCESSFLOW) {\n this.runProcessFlowAction(toolbarButtonEvent.actionReference.id);\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_NAVIGATION) {\n this.runNavigation(toolbarButtonEvent.actionReference.navigation, toolbarButtonEvent.actionReference.showAsPdf);\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_HTTPURL) {\n this.runUILinkHttpUrl(toolbarButtonEvent.actionReference.httpURL, this.getDataView());\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_FORMINVOKE) {\n const formUrl = this.lmUrlUtilService.buildUrl({ resource: this.formResource });\n this.lmNavigationService.runFormInvoke(formUrl, toolbarButtonEvent.actionReference.name, this.model.getData());\n } else if (toolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_RELATED) {\n // if (toolbarButtonEvent.actionReference.relActionUrl) {\n if (toolbarButtonEvent.actionReference.isDrillAround) {\n this.runDrillAction(toolbarButtonEvent.actionReference);\n } else {\n this.runRelatedAction(toolbarButtonEvent.actionReference.resourceId, toolbarButtonEvent.actionSpec);\n }\n }\n }\n\n public onSpecialActionToolbarButtonEvent(specialActionToolbarButtonEvent: LMSpecialActionToolbarButtonEvent) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onToolbarButtonEvent()', specialActionToolbarButtonEvent.actionReference ]);\n\n if (specialActionToolbarButtonEvent.actionReference === undefined || specialActionToolbarButtonEvent.actionReference === null) {\n return;\n }\n\n this.runningSpecialActionList = specialActionToolbarButtonEvent.list;\n\n if (specialActionToolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_ACTION) {\n this.runAction(this.formSpec.busClassSpec.actions[specialActionToolbarButtonEvent.actionReference.index]); // Call out Actions.\n\n } else if (specialActionToolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_STANDARD_ACTION) {\n this.runStandardAction(specialActionToolbarButtonEvent.actionReference);\n\n } else if (specialActionToolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_PROCESSFLOW) {\n this.runProcessFlowAction(specialActionToolbarButtonEvent.actionReference.id);\n\n } else if (specialActionToolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_NAVIGATION) {\n this.runNavigation(specialActionToolbarButtonEvent.actionReference.navigation, specialActionToolbarButtonEvent.actionReference.showAsPdf);\n\n } else if (specialActionToolbarButtonEvent.actionReference.type === AppConstants.BUTTON_TYPE_RELATED) {\n // if (specialActionToolbarButtonEvent.actionReference.relActionUrl) {\n if (specialActionToolbarButtonEvent.actionReference.isDrillAround) {\n this.runDrillAction(specialActionToolbarButtonEvent.actionReference);\n } else {\n this.runRelatedAction(specialActionToolbarButtonEvent.actionReference.resourceId, specialActionToolbarButtonEvent.actionSpec);\n }\n }\n }\n\n public runCheckControlAction(checkControl: LMCheckControl, isChecked) {\n const checkControlActions: Array = isChecked ? checkControl.checkActions : checkControl.uncheckActions;\n\n if (checkControlActions === null || checkControlActions.length === 0) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: No ' + (isChecked ? 'Check' : 'Uncheck') + ' actions defined.' ]);\n return;\n }\n\n const validAction: LMActionSpec = this.getFirstValidCheckControlAction(checkControlActions);\n\n if (validAction === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: No valid ' + (isChecked ? 'Check' : 'Uncheck') + ' action defined.' ]);\n return;\n }\n\n if (AppConstants.ACTION_TYPE_FUNCTION !== validAction.type) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: Only Instance Actions are supported for Check Controls. Action: ' + validAction.name ]);\n return;\n }\n\n // TODO when form state is updated this field is disabled if there is no valid action for the state it is in\n // TODO what happens if the action fails or has a confirmation message\n // TODO YES should i save the form before running this action\n\n this.runInstanceAction(validAction);\n }\n\n private getFirstValidCheckControlAction(checkControlActions: Array): LMActionSpec {\n for (const checkControlAction of checkControlActions) {\n if (checkControlAction.condition) {\n const conditions: LMCondition[] = [];\n conditions[0] = checkControlAction.condition;\n\n if (this.lmConditionUtilService.isValid(conditions, this.model)) {\n return checkControlAction.actionSpec;\n }\n } else {\n return checkControlAction.actionSpec;\n }\n }\n\n return null;\n }\n\n public buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n const option: string = (link.openExternal) ? 'external' : '';\n let url: string;\n const dataView: LMDataView = this.getDataView();\n if (dataView && dataView.buttonLinks && dataView.buttonLinks[link.fieldId]) {\n url = dataView.buttonLinks[link.fieldId];\n } else {\n url = this.lmFormatUtilService.formatMessageRule(link.httpUrl, dataView);\n }\n\n if (url) {\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(url);\n } catch (e) {\n //noop\n }\n\n if (resource?.resourceType === 'navigation') {\n this.lmNavigationService.runNavigation(url, undefined, { openNewTab: link.openExternal });\n } else {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n\n }\n } else if (link.linkNavigation) {\n this.runNavigation(link.linkNavigation, link.showAsPdf);\n } else if (link.registerLink) {\n this.lmGlobalUtilService.navigateByUrl(link.registerLink, null);\n } else if (link.signInLink) {\n this.lmGlobalUtilService.navigate(link.signInLink);\n } else if (link.signOutLink) {\n this.lmGlobalUtilService.navigate(link.signOutLink);\n }\n }\n\n // TODO this seems to duplicate runAction\n public requestActionFromPageMenu(menuEvent) {\n this.lmSpecService.getRedirectUrl(menuEvent.link).subscribe((response: LMPageMenuReqActionResponse) => {\n if (!response.dialogUrl) {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n return;\n }\n\n if (this.lmContextService.hasAsOfDateInPast()) {\n this.lmGlobalUtilService.displayAsOfDateInPastMessage();\n return;\n }\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const resourceId = response.resourceId;\n const actionName = response.action;\n this.lmSpecService.getFormSpecFromDialogActionUrl(response.dialogUrl)\n .subscribe((formUrlResponse: LMFormSpecResponse) => {\n let index = 0;\n\n const formUrlInfo = formUrlResponse.formUrlInfo;\n const formSpec = formUrlResponse.formSpec;\n\n formSpec.busClassSpec.actions.forEach((data) => {\n if (data.name === actionName) {\n index = data.index;\n }\n });\n\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions[index];\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName: actionSpec.name });\n this.lmActionFormDialogService.getActionFormDialogDataView(url).pipe(first()).subscribe((responseDV: any) => {\n\n const formDataView: LMDataView = responseDV;\n if (formDataView.status !== AppConstants.STATUS_COMPLETED) {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n return;\n }\n\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView)\n .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // The view exception and errors will be prompted before the dialog closes.\n // So just print the success message here after the dialog closes\n const transactionState: LMTransactionState = actionFormDialogResult.transactionStateResult;\n const actionResult: LMActionResult = actionFormDialogResult.transactionStateResult.getTransactionResult();\n\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, actionResult.message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (transactionState.isSuccess()) {\n if (actionResult.isCompletionNavigation && actionResult.redirectUrl) {\n this.lmNavigationService.runNavigation(actionResult.redirectUrl);\n }\n }\n }\n });\n });\n });\n });\n }\n\n public runFormButtonAction(formButton: LMButtonLayout) {\n let url: string;\n switch (formButton.type) {\n case AppConstants.BUTTON_TYPE_ACTION:\n this.runAction(formButton.actionSpec);\n break;\n\n case AppConstants.BUTTON_TYPE_NAVIGATION:\n this.runNavigation(formButton.navigation, formButton.showAsPdf);\n break;\n\n case AppConstants.BUTTON_TYPE_LIST_REFERENCE:\n const newListResource = new ListResource(\n {\n resourceId: formButton.resourceId\n });\n\n const args = { resourceId: formButton.relationResourceId, dataView: this.model.getData() };\n const contextResource = new RelationResource(args, formButton.relationResourceId);\n\n const listUrl = this.lmUrlUtilService.buildUrl({ resource: newListResource, contextResource });\n\n if (listUrl) {\n this.lmGlobalUtilService.navigateByUrl(listUrl);\n }\n break;\n\n case AppConstants.BUTTON_TYPE_RELATED:\n this.runButtonRelatedAction(formButton.relActionUrl, formButton.name);\n break;\n\n case AppConstants.BUTTON_TYPE_FORMINVOKE:\n // just need form url and csk params. no other params are required for a form invoke.\n const formUrl = this.lmUrlUtilService.buildUrl({ resource: this.formResource });\n this.lmNavigationService.runFormInvoke(formUrl, formButton.formInvokeName, this.model.getData());\n break;\n\n case AppConstants.BUTTON_TYPE_HTTPURL:\n const dataView: LMDataView = this.getDataView();\n this.runHttpUrl(formButton, dataView);\n break;\n\n case AppConstants.BUTTON_TYPE_SUBFORM:\n // TODO:\n break;\n\n case AppConstants.BUTTON_TYPE_VIEWDOCUMENT:\n case AppConstants.BUTTON_TYPE_SHOWEDITOR:\n this.openDocumentResource(formButton);\n break;\n case AppConstants.BUTTON_TYPE_EXPORTDOCUMENT:\n // TODO:\n break;\n\n case AppConstants.BUTTON_TYPE_FORMBUTTON:\n if (formButton.dataViewFieldButton) {\n this.openDataViewFieldButtonForm(formButton);\n } else if (formButton.isStandardAction) {\n // Only implementing save standard action for now\n switch(formButton.standardActionName) {\n case AppConstants.STANDARD_SAVE:\n this.runStandardAction({ id: formButton.standardActionName, type: 'standard' });\n break;\n default:\n break;\n }\n }\n break;\n case AppConstants.BUTTON_TYPE_REGISTRATION:\n // TODO where is the URL gotten from for this case?\n this.lmGlobalUtilService.navigateByUrl(url);\n break;\n case AppConstants.BUTTON_TYPE_SIGNIN:\n this.lmGlobalUtilService.navigate(formButton.signInLink);\n break;\n case AppConstants.BUTTON_TYPE_SIGNOUT:\n this.lmGlobalUtilService.navigate(formButton.signOutLink);\n break;\n }\n }\n\n private runHttpUrl(formButton: LMButtonLayout, dataView: LMDataView): void {\n if (!formButton)\n return;\n\n const openExternal = !!formButton.openExternal;\n let url: string;\n\n if (formButton.isLazyUrlRetrieval && formButton.httpUrl?.variables) {\n const compiledFormRequestUrl = urltemplate.parse(this.formUrlInfo.formRequestUrl);\n const requestUrl = compiledFormRequestUrl.expand({ resourceId: this.model.formResourceId });\n const reqFields = Array.from(formButton.httpUrl?.variables, field => field.fieldId );\n\n this.lmFormRequestService.getFieldValues(requestUrl, reqFields).pipe(\n first(),\n catchError( error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Internal Server Error');\n })\n ).subscribe( (response: LMFieldValuesResponse) => {\n if (response.status === 'Completed') {\n const fields: LMDataView = { fields: response.fields };\n url = this.lmFormatUtilService.formatMessageRule( formButton.httpUrl, fields );\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n } else if (response.status === 'Exception') {\n this.lmErrorUtilService.handleError(response?.message, response?.details, response.status);\n }\n });\n } else if (dataView?.buttonLinks?.[formButton.fieldId]) {\n url = dataView.buttonLinks[formButton.fieldId];\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n } else {\n url = this.lmFormatUtilService.formatMessageRule(formButton.httpUrl, dataView);\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n }\n }\n\n private runStandardAction(actionReference: LMBusActionReference) {\n const dataView: LMDataView = this.getDataView();\n const formSpec: LMFormSpec = this.formSpec;\n\n switch (actionReference.id) {\n case AppConstants.STANDARD_TOOLBAR_MATRIXSHOWDETAIL:\n this.showMatrixDetail = true;\n this.updateToolbarState(dataView, this.allowUpdate, false);\n this.runMatrixToggleDetail();\n break;\n case AppConstants.STANDARD_TOOLBAR_MATRIXHIDEDETAIL:\n this.showMatrixDetail = false;\n this.updateToolbarState(dataView, this.allowUpdate, false);\n this.runMatrixToggleDetail();\n break;\n case AppConstants.STANDARD_TOOLBAR_CREATE:\n const createActionSpec: LMActionSpec = this.lmActionService.getDefaultCreateAction(formSpec.busClassSpec.actions, dataView.actionIndexes);\n this.runCreateAction(createActionSpec);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_UPDATE:\n case AppConstants.STANDARD_TOOLBAR_OPEN:\n const updateActionSpec: LMActionSpec = this.lmActionService.getDefaultUpdateAction(formSpec.busClassSpec.actions, dataView.actionIndexes);\n this.runUpdateAction(updateActionSpec);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_DELETE:\n const deleteActionSpec: LMActionSpec = this.lmActionService.getFormDeleteAction(formSpec.busClassSpec.actions, dataView);\n this.runDeleteAction(deleteActionSpec);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_PREVRECORD:\n this.getPreviousRecord(dataView);\n break;\n case AppConstants.STANDARD_TOOLBAR_NEXTRECORD:\n this.getNextRecord(dataView);\n break;\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n this._runRefresh();\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SCHEDULE:\n this.runSchedule(dataView);\n break;\n\n case AppConstants.STANDARD_SAVE:\n case AppConstants.STANDARD_TOOLBAR_SAVEASDRAFT:\n if (this.scheduleView) {\n dataView.scheduleView = this.scheduleView;\n }\n this.runSave(actionReference.id, dataView);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SAVENEW:\n this.runSave(actionReference.id, dataView);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SAVECLOSE:\n this.runSave(actionReference.id, dataView);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_PRINTTOFILE:\n case AppConstants.STANDARD_TOOLBAR_EXPORTPDF:\n this.runPdfAction(actionReference);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_EXPORTCSV:\n this.runCsvAction(actionReference);\n break;\n\n // TODO: TECHNICAL DEBT: use localization here\n case AppConstants.STANDARD_TOOLBAR_SEARCH:\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWACTION:\n // landmark.dialog.showMessageDialog(\"\", \"Standard View action is not yet implemented\");\n break;\n\n case AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON:\n // landmark.dialog.showMessageDialog(\"\", \"Chart Toggle is not yet implemented\");\n break;\n\n case AppConstants.STANDARD_TOOLBAR_HELPERLIST:\n // landmark.dialog.showMessageDialog(\"\", \"Helper List is not yet implemented\");\n break;\n\n // case AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON:\n // break;\n // case AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON:\n // break;\n // case AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON:\n // break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWAUDIT:\n case AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT:\n this.runAuditLogAction(dataView,\n actionReference.id === AppConstants.STANDARD_TOOLBAR_VIEWAUDIT ? 'viewAudit' : 'viewFullAudit');\n break;\n case AppConstants.STANDARD_TOOLBAR_PFCOMPARE:\n this.runCompareAction();\n break;\n default:\n break;\n }\n }\n\n private getPdfType(busFormSpec: LMBusFormSpec): string {\n // TODO: Switch to its constant once available\n return (busFormSpec.formType === LMFormType.COMPOSITE) ?\n AppConstants.COMPOSITE_FORM_PDF :\n AppConstants.REGULAR_FORM_PDF;\n }\n\n private runPdfAction(actionReference: LMBusActionReference) {\n const settings = {\n resource: this.formResource,\n fromResource: this.fromResourceImpl,\n actionReference,\n name: this.formTitle,\n pdfType: this.getPdfType(this.formSpec.busFormSpec),\n dataView: this.getDataView(),\n scheduleActionAllowed: this.formSpec.scheduleActionAllowed,\n selectedTabIndex: this.formState.selectedPanelIndex,\n fontOffset: this.formSpec.busFormSpec.fontOffset,\n orientation: this.formSpec.busFormSpec.orientation,\n };\n\n this.lmPrintDialogService.openPdfDialog(settings);\n }\n\n private runCsvAction(actionReference: LMBusActionReference) {\n const settings = {\n modalPlaceholder: this.placeHolder,\n resource: this.formResource,\n fromResource: this.fromResource,\n actionReference,\n dataView: this._initDataView,\n name: this.formTitle,\n scheduleActionAllowed: this.formSpec.scheduleActionAllowed,\n };\n\n this.lmPrintDialogService.openCsvDialog(settings);\n }\n\n public runAuditLogAction(dataView: LMDataView, auditType: string): void {\n const auditActionRedirectUrlTemplate = urltemplate.parse(this.formUrlInfo.viewAuditLogRedirectUrl);\n const auditActionRedirectUrl = auditActionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: auditType,\n contextResourceId: this.getDataView().contextProperties.resourceId\n });\n\n this.lmGlobalUtilService.navigateByUrl(auditActionRedirectUrl);\n }\n\n public runRefresh(callBack: Observer) {\n this.refreshData(callBack);\n }\n\n private refreshData(callBack?: Observer): void {\n this.lmLoggerService.time({ id: 'LMForm.refreshData() ' + this.instanceId });\n\n const navigationContext = this.formUrlInfo.navigationContext;\n const refreshRecord = this.lmFormPagingService.refreshRecord(this.getDataView(), navigationContext)\n .subscribe((reloadDataView: LMDataView) => {\n if (reloadDataView.serverLog) {\n this.lmLoggerService.serverLog(reloadDataView.serverLog);\n }\n\n // if modelSourceEvent is null then we must be doing a refresh\n if (this.modelSourceEvent == null) {\n this.modelSourceEvent = { type: 'refresh' };\n }\n\n this.initDataView = reloadDataView;\n\n if (callBack) {\n callBack.next(true);\n callBack.complete();\n } else {\n this.formContentComponent.runRefresh();\n }\n\n this.lmLoggerService.timeEnd('LMForm.refreshData() ' + this.instanceId);\n });\n\n this.subscriptionArray.push(refreshRecord);\n }\n\n private getPreviousRecord(dataView: LMDataView) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') }; // needs translation\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this._getPreviousRecord(dataView);\n }\n });\n }\n\n private _getPreviousRecord(dataView: LMDataView) {\n this.lmLoggerService.time({ id: 'LMForm.getPreviousRecord() ' + this.instanceId });\n const currentDataView = dataView;\n\n this.lmFormPagingService.previousRecord(dataView).pipe(first()).subscribe((previousDataView: LMDataView) => {\n if (previousDataView.status === AppConstants.STATUS_SYSTEM_ERROR) {\n const errorResponse: LMSystemException = previousDataView;\n currentDataView.pagingInfo.hasPrevious = false;\n this.initDataView = currentDataView;\n const title = Soho.Locale.translate('PreviousRecordActionFailed');\n // todo not sure what there is to translate here. shouldn't we just be displaying the errorResponse message as is.\n // - Phillip 03/15/2021\n const message = Soho.Locale.translate(errorResponse.message);\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_FAILED);\n } else {\n this.handleFormPagingResponse(previousDataView);\n }\n this.lmLoggerService.timeEnd('LMForm.getPreviousRecord() ' + this.instanceId);\n });\n }\n\n private getNextRecord(dataView: LMDataView): void {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') }; // needs translation\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this._getNextRecord(dataView);\n }\n });\n }\n\n private _getNextRecord(dataView: LMDataView): void {\n this.lmLoggerService.time({ id: 'LMForm.getNextRecord() ' + this.instanceId });\n const currentDataView = dataView;\n\n this.lmFormPagingService.nextRecord(dataView).pipe(first()).subscribe((nextDataView: LMDataView) => {\n if (nextDataView.status === AppConstants.STATUS_SYSTEM_ERROR) {\n const errorResponse: LMSystemException = nextDataView;\n currentDataView.pagingInfo.hasNext = false;\n this.initDataView = currentDataView;\n const title = Soho.Locale.translate('NextRecordActionFailed');\n const message = Soho.Locale.translate(errorResponse.message);\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_FAILED);\n } else {\n this.handleFormPagingResponse(nextDataView);\n }\n this.lmLoggerService.timeEnd('LMForm.getNextRecord() ' + this.instanceId);\n });\n }\n\n private handleFormPagingResponse(dataView: LMDataView): void {\n if (dataView.serverLog) {\n this.lmLoggerService.serverLog(dataView.serverLog);\n }\n\n //---------------------------------------------------------------------\n // save state for current form dataview\n //---------------------------------------------------------------------\n this.saveComponentState();\n\n //---------------------------------------------------------------------\n // set the initDataView to cause the form data to change.\n // replace the current url using the new form url\n //---------------------------------------------------------------------\n this.modelSourceEvent = { type: 'paging' };\n this.initDataView = dataView;\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(dataView.formUrl));\n\n //---------------------------------------------------------------------\n // reset formUrlInfo.resource using the new url\n //---------------------------------------------------------------------\n this.formUrlInfo.resource = this.lmUrlUtilService.getRouteResource();\n\n //---------------------------------------------------------------------\n // reset the state key so when it's called later it will rebuild\n // using the current formUrlInfo.resource.resourceId\n //---------------------------------------------------------------------\n this.formStateKeyParams = null;\n }\n\n private runAction(actionSpec: LMActionSpec) {\n // Call out Actions.\n switch (actionSpec.type) {\n case AppConstants.ACTION_TYPE_CREATE:\n case AppConstants.ACTION_TYPE_IMPORT:\n this.runCreateAction(actionSpec);\n break;\n\n case AppConstants.ACTION_TYPE_UPDATE:\n this.runUpdateAction(actionSpec);\n break;\n\n case AppConstants.ACTION_TYPE_DELETE:\n this.runDeleteAction(actionSpec);\n break;\n\n case AppConstants.ACTION_TYPE_FUNCTION:\n this.runInstanceAction(actionSpec);\n break;\n\n case AppConstants.ACTION_TYPE_SET:\n this.runSetAction(actionSpec);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWAUDIT:\n case AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT:\n // TODO:\n break;\n\n default:\n this.lmLoggerService.warn([ this, this.instanceId, 'runAction: Invalid action type - ' + actionSpec.type ]);\n }\n }\n\n // this is called from independent form panel\n public runSaveAction(actionReferenceId: string, callBack: Observer, dontShowToast?: boolean) {\n const dataView: LMDataView = this.getDataView();\n this.runSave(AppConstants.STANDARD_SAVE, dataView, callBack, dontShowToast);\n }\n\n // Do NOT check if dirty because we do not want to force\n // user to change a value to run the action\n public runActionSpec(actionSpec: LMActionSpec, dataView: LMDataView, callBack: Observer, skipToast?: boolean) {\n this.waitForFormToBeReady().subscribe(() => {\n if (this.validateConfigRequiredFields(this.configRequiredFields)) {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n this.lmFormTransactionService.runIndependentAction(formContext, actionSpec, dataView).subscribe(\n transactionState => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // TODO DPB\n } else {\n if (transactionState.postRegUrl) {\n // const postRegUrl: string = transactionState.postRegUrl;\n window.location.href = transactionState.postRegUrl; // This should never happen right!\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (result) {\n this.handleTransactionStatus(result);\n if (transactionState.isSuccess()) {\n if (result.redirectUrl) {\n setTimeout(() => {\n result.redirectUrl = this.lmUrlUtilService.toRelativeUrl(result.redirectUrl, true, true);\n this.location.replaceState(result.redirectUrl);\n }, 1);\n } else {\n if (this.runningSpecialActionList) {\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n this.runningSpecialActionList.refresh(null); // TODO: dpb shouldnt this wait!\n this.runningSpecialActionList = null;\n } else {\n this.initDataView = result.dataView;\n }\n }\n\n if (transactionState.isSuccess() && !skipToast) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n }\n }\n }\n\n if (callBack) {\n callBack.next(transactionState.isSuccess());\n callBack.complete();\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n } else {\n this.lmBusyIndicatorService.hideBusyIndicator();\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n }\n });\n }\n\n private _runRefresh() {\n if (this.checkSaveRequired()) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this.refreshData();\n }\n });\n } else {\n this.refreshData();\n }\n }\n\n private runSchedule(dataView: LMDataView) {\n const actionSpec = this.lmActionService.getTargetAction({\n formSpec: this.formSpec,\n dataView\n });\n this.lmScheduleDialogService.openScheduleDialog(dataView.busClassName, actionSpec.name).subscribe((scheduleView: LMDataView) => {\n this.scheduleView = scheduleView;\n });\n }\n\n private runSave(actionReferenceId: string, dataView: LMDataView, callBack?: Observer, dontShowToast?: boolean) {\n\n if (this.formContentComponent && !this.hasLPLValidationError /*&& !this.formModel.hasError*/) {\n if (_.isEmpty(this.model.multiPartFields)) {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n this.formContentComponent.runSaveAction().subscribe(\n (continueOn: boolean) => {\n if (continueOn) {\n // no problem saving panels that were dirty\n if (this.model.isDirty || this.model.isCreateAction) {\n this.executeSave(actionReferenceId, dataView, callBack, dontShowToast);\n } else {\n // LMCLIENT-24825 [Save and Close] button is not closing the Form\n // Execute save closes the form, however, there are times when only the\n // form panels were dirty.\n if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_SAVECLOSE) {\n this.location.back();\n return;\n }\n // May have saved a related list on a composite form, the refresh is needed\n // to update the form's derived values. NOT calling refreshData because I only want to refresh this record!\n // I do NOT want to fire any events because the active panel has been saved and the other panels\n // marked needReload\n this.lmFormPagingService.refreshRecord(this.getDataView(), this.formUrlInfo.navigationContext)\n .subscribe((reloadDataView: LMDataView) => {\n if (reloadDataView.serverLog) {\n this.lmLoggerService.serverLog(reloadDataView.serverLog);\n }\n this._initDataView = reloadDataView;\n this.formViewData.dataView = this._initDataView;\n this.model.setData(this._initDataView, { notifyListeners: false });\n this.allowUpdate = this.isModified(); // this is not updated if the form was not dirty, the save was enabled because a panel was dirty\n this.updateToolbarState(this._initDataView, this.allowUpdate, true);\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n if (callBack) {\n callBack.next(true);\n callBack.complete();\n }\n });\n }\n } else {\n // error occurred saving panels. the panel component should have handled the error\n this.lmBusyIndicatorService.hideBusyIndicator();\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n }\n });\n } else {\n if (callBack) {\n callBack.next(true);\n callBack.complete();\n }\n }\n }\n\n // The Save button is already set based on model state or is enabled if a Create\n private executeSave(actionReferenceId: string, dataView: LMDataView, callBack?: Observer, skipToast?: boolean) {\n\n this.waitForFormToBeReady().subscribe(() => {\n // execute transaction\n if (this.validateConfigRequiredFields(this.configRequiredFields)) {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder,\n };\n\n let actionName: string;\n if (this.formSpec.independentForm && this.fromDataView) {\n // Use the composite form action to execute a save in independent form panel (LMCLIENT-23073)\n actionName = this.fromDataView.action;\n }\n\n const mingleInbox = ((this.lmContextService.inMingleInbox() || this.formUrlInfo.fromInbox) && this.isActionForm);\n let actionSpec = this.lmFormActionUtilService.getTargetAction(this.formSpec, dataView, actionName);\n const formActions = this.formSpec.busClassSpec.actions;\n const actionIndexes = this.getDataView().actionIndexes;\n\n // no need to check if the form is an 'actionIs' form because that transaction runs through the public api runActionSpec\n // Mingle Inbox:\n // Action requests are rendered as a standard form (instead of action form).\n // Go with the valid action (parameterised) in the dataview.action. isValidAction ignores parameterised action\n // and default update is not the correct action for action requests.\n // Mingle Inbox\n if (!mingleInbox && actionSpec.type === AppConstants.ACTION_TYPE_UPDATE && !this.lmActionService.isValidAction(actionSpec, formActions, actionIndexes, undefined, true)) {\n actionSpec = this.lmActionService.getDefaultUpdateAction(formActions, actionIndexes, true, true);\n\n if (actionSpec === null) {\n const message = Soho.Locale.translate('NoValidUpdateActionsAvailable');\n this.lmGlobalUtilService.displayToastMessage('', message, AppConstants.TRA_ACTION_FAILED);\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n return;\n }\n }\n\n // LMCLIENT-33564: BusTask/ActionForm direct link (Save is equivalent to Submit)\n const runActionForm = mingleInbox || this.isBusinessTaskForm || this.isActionForm;\n const observable = (runActionForm)\n ? this.lmTransactionService.runActionForm(formContext, actionSpec, dataView, [ dataView ])\n : this.lmFormTransactionService.runSaveAction(formContext, actionSpec, dataView);\n observable.subscribe(\n transactionState => {\n this.notifyManualRepSaveComplete(transactionState);\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // TODO DPB\n } else {\n if (transactionState.postRegUrl) {\n const postRegUrl: string = transactionState.postRegUrl;\n this.anonymousRegistered = true; // this is to keep the form from checking save required!\n // lets call the callback without a timeout, this allows the step to update the form state\n // with the new step position so when the form unloads the correct step is save in the state.\n if (callBack) {\n if (this.formContentComponent?.stepProcessComponent) {\n this.formContentComponent?.stepProcessComponent.handlePostRegistration();\n }\n callBack.next(transactionState.isSuccess());\n callBack.complete();\n }\n setTimeout(() => {\n window.location.href = postRegUrl;\n }, 1);\n return; // Returning here!!! The form is going to unload and we don't want to call the callback twice!\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (result) {\n this.handleTransactionStatus(result);\n\n if (transactionState.isSuccess()) {\n\n let isUpdateToCreate = false;\n let createActionSpec: LMActionSpec = null;\n\n // if the toolbar button used was STANDARD_TOOLBAR_SAVENEW on an update and the default create\n // action exists and the create action does not have parameters and is not an action form,\n // then allow the update to create\n if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_SAVENEW\n && result.actionSpec.type === AppConstants.ACTION_TYPE_UPDATE) {\n createActionSpec = this.lmActionService.getDefaultCreateAction(this.formSpec.busClassSpec.actions, result.dataView.actionIndexes);\n isUpdateToCreate = (createActionSpec !== null && !createActionSpec.hasParameters && !createActionSpec.hasActionForm);\n }\n\n if (isUpdateToCreate) {\n this.modelSourceEvent = { type: 'transaction' };\n this.initDataView = result.dataView;\n this.formStateKeyParams = null; // switching between update and create need to rebuild the state keys\n this.runCreateAction(createActionSpec);\n\n } else if (result.redirectUrl) {\n // RedirectUrl is set in the transaction result for Create action, import action(?)\n // and action forms that has completion navigation defined.\n // TODO: Test action forms with completion navigation.\n if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_SAVENEW) {\n // Save and New from a create action\n // Reload the form and stay in the create mode.\n this.modelSourceEvent = { type: 'paging' };\n this.refreshData();\n\n } else if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_SAVECLOSE) {\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n this.location.back();\n\n } else {\n if (!this.lmContextService.getAsOfDate() && result.redirectUrl.indexOf('asofdate') !== -1) {\n // Future dated record is created. This mimics canvas behavior.\n // The user may or may not have the permission to 'set as of date'. So it is better to\n // get back in history and not change the global context.\n // Model state has to be cleared before going back in history so unsaved changes dialog will not be prompted.\n this.model.setData(result.dataView, { notifyListeners: false, source: { type: 'transaction' } });\n this.location.back();\n // The toast code below will be executed.\n } else {\n this.modelSourceEvent = { type: 'transaction' };\n this.initDataView = result.dataView;\n this.formUrlInfo.resource.resourceId = this.formResource.resourceId;\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(result.redirectUrl, true, true));\n this.formStateKeyParams = null; // switching between create and update need to rebuild the state keys\n }\n }\n\n } else if (result.completeIdentityOrigURL) {\n const origURL = result.completeIdentityOrigURL;\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n this.lmGlobalUtilService.navigate(origURL, null, 'replace');\n } else if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_SAVECLOSE) {\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n this.location.back();\n\n } else if (runActionForm) {\n // Only SaveAsDraft is routed through standard save. pfActions will call runProcessFlowAction\n this.refreshData();\n\n } else {\n this.modelSourceEvent = { type: 'transaction' };\n this.initDataView = result.dataView;\n }\n this.notifyHandCodedTransactionComplete(transactionState);\n if (!skipToast) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n }\n }\n }\n\n if (callBack) {\n // this is needed because lm-form.component has a setTimeout in\n // 'set initDataView(dataView: LMDataView)' because of the timeout form does\n // not update the model in time when switching from create to\n // update mode\n setTimeout(() => {\n const success = transactionState.isSuccess();\n callBack.next(success);\n callBack.complete();\n\n if (!success && this.formContentComponent?.stepProcessComponent) {\n this.formContentComponent?.stepProcessComponent.handleFormViewException(transactionState);\n }\n }, 1);\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n } else {\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n });\n }\n\n private runUILinkHttpUrl(httpUrl: LMHttpUrl, dataView: LMDataView): void {\n const option: string = (httpUrl.externalLink) ? 'external' : '';\n let url: string = this.lmFormatUtilService.formatMessageRule(httpUrl.messageRule, dataView);\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n\n public runNavigation(navigation: string, showAsPdf: boolean, openNewTab?: boolean) {\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: this.model.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf, openNewTab });\n }\n\n private runMatrixToggleDetail() {\n if (this.formContentComponent) {\n this.formContentComponent.runMatrixToggleDetail(this.showMatrixDetail);\n }\n }\n\n // TODO: consider merging this with LMToolbar.onBeforeRelatedActionsOpen()\n public runButtonRelatedAction(relActionUrl: string, actionName: string) {\n const resourceId = this.model.getData().resourceId;\n\n this.lmFormTransactionService.runButtonRelatedAction(relActionUrl, actionName, resourceId)\n .pipe(first()).subscribe((response: any) => {\n\n // use the dataview header for class level actions\n if (response?.actionSpec.type === AppConstants.ACTION_TYPE_CREATE\n || response?.actionSpec.type === AppConstants.ACTION_TYPE_SET\n || response?.actionSpec.type === AppConstants.ACTION_TYPE_IMPORT) {\n this.runRelatedAction(response.dataViewSet.header.resourceId, response.actionSpec);\n return;\n }\n\n if (response.dataViewSet.data.length === 0) {\n const message = Soho.Locale.translate('NoItemsAvailable');\n this.lmGlobalUtilService.displayToastMessage('', message, 'NoItemsAvailable');\n } else if (response.dataViewSet.data.length === 1) {\n this.runRelatedAction(response.dataViewSet.data[0].resourceId, response.actionSpec);\n } else {\n // TODO: need to determine how to display the multiple items\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n });\n }\n\n public runRelatedAction(resourceId: string, actionSpec: LMActionSpec) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const parsedUrlTemplate = urltemplate.parse(this.formUrlInfo.relActionUrl);\n const relatedActionUrl = parsedUrlTemplate.expand({\n resourceId,\n actionName: actionSpec.name,\n formName: actionSpec.formName ? actionSpec.formName : actionSpec.name\n });\n\n const relationAction = this.lmFormTransactionService.runRelatedAction(\n relatedActionUrl,\n actionSpec,\n resourceId\n ).subscribe((actionResult: LMActionFormDialogResult) => {\n if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const result = actionResult.transactionStateResult.getTransactionResult();\n // Success\n const title = result?.actionSpec?.label;\n const message = result.message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (result?.isCompletionNavigation && result?.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n } else {\n this.refreshData();\n }\n } else if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR) {\n // TODO: needs better error handling\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError(actionResult.openError.message, actionResult.openError.details, actionResult.openError.status);\n }\n });\n\n this.subscriptionArray.push(relationAction);\n }\n\n private runCreateAction(actionSpec: LMActionSpec) {\n this.lmBusyIndicatorService.showBusyIndicator(); // Will be closed by dialog service or navigate to a new webpage\n\n const createAction = this.lmFormTransactionService.runCreateAction(\n this.formUrlInfo,\n this.formSpec,\n actionSpec,\n this.getDataView()\n ).subscribe((actionResult: LMActionFormDialogResult) => {\n if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // Other transaction states are not checked here because the dialog is saved and closed only on successful transaction.\n const title = actionSpec.label;\n const message = actionResult.transactionStateResult.completedTransactionList[0].message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n if (actionResult.transactionStateResult.completedTransactionList[0].isCompletionNavigation && actionResult.transactionStateResult.completedTransactionList[0].redirectUrl) {\n this.lmNavigationService.runNavigation(actionResult.transactionStateResult.completedTransactionList[0].redirectUrl);\n }\n // TODO:\n // this.refreshData();\n } else if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError(actionResult.openError.message, actionResult.openError.details, actionResult.openError.status);\n }\n });\n\n this.subscriptionArray.push(createAction);\n }\n\n private runUpdateAction(actionSpec: LMActionSpec) {\n this.lmBusyIndicatorService.showBusyIndicator();\n const updateAction = this.lmFormTransactionService.runUpdateAction(\n this.formUrlInfo,\n this.formSpec,\n actionSpec,\n this.model\n ).subscribe((actionResult: LMActionFormDialogResult) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // if we got this far then the action was successful\n const transactionState: LMTransactionState = actionResult.transactionStateResult;\n const result: LMActionResult = transactionState ? transactionState.getTransactionResult() : null;\n if (result) {\n const title = result?.actionSpec?.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n this.modelSourceEvent = { type: 'transaction' };\n\n if (result?.isCompletionNavigation && result?.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n } else {\n this.refreshData();\n }\n } else if (actionResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError(actionResult.openError.message, actionResult.openError.details, actionResult.openError.status);\n }\n });\n\n this.subscriptionArray.push(updateAction);\n }\n\n private runDeleteAction(actionSpec: LMActionSpec) {\n\n this.lmBusyIndicatorService.showBusyIndicator();\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel,\n placeholder: this.placeHolder\n };\n\n // todo ppatton keeping the subscription should not be needed. runDeleteAction should only run once.\n const deleteAction = this.lmFormTransactionService.runDeleteAction(formContext, actionSpec, this.getDataView()).subscribe(\n (transactionState: LMTransactionState) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n this.handleTransactionStatus(result);\n\n if (transactionState.isSuccess()) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n this.model.setData(result.dataView, { source: { type: 'transaction' } }); // prevents the unsaved changes dialog pop from popping up when doing a delete.\n this.location.back();\n }\n }\n });\n\n this.subscriptionArray.push(deleteAction);\n }\n\n private runSetAction(actionSpec: LMActionSpec) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this._runSetAction(actionSpec);\n }\n });\n }\n\n private _runSetAction(actionSpec: LMActionSpec) {\n\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel, // DPB try to remove this\n placeholder: this.placeHolder\n };\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const instanceAction = this.lmFormTransactionService.runSetAction(formContext, actionSpec, this.getDataView()).subscribe(\n (transactionState: LMTransactionState) => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (transactionState.actionFormDialogSaved) {\n // Do NOT need to check if the transaction was a success because the dialog form\n // will stay open if it encounters an error.\n // Not using the transaction dataview because it is the parameter view.\n\n // Process redirectURL for onCompleteNavigation\n if (result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n }\n } else if (AppConstants.STATUS_COMPLETED === result.status || AppConstants.VIEW_EXCEPTION === result.status) {\n this.handleTransactionStatus(result);\n }\n\n if (transactionState.isSuccess()) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n\n this.subscriptionArray.push(instanceAction);\n }\n\n public runMatrixAction(actionTarget: LMMatrixActionTarget, actionSpec: LMActionSpec, dataView: LMDataView, callBack: Observer) {\n this.waitForFormToBeReady().subscribe(() => {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n\n this.lmFormTransactionService.runMatrixAction(actionTarget, formContext, actionSpec, dataView).subscribe(\n transactionState => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // TODO DPB\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (result) {\n if (result.status === AppConstants.VIEW_EXCEPTION) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n } else if (result.status !== AppConstants.STATUS_COMPLETED && result.status !== AppConstants.CONFIRMATION_REQUIRED) {\n // If the status is confirmation required, it may be due to the user cancelling out of runtime confirmation.\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n } else if (transactionState.isSuccess()) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n }\n\n if (callBack) {\n callBack.next(transactionState.isSuccess());\n callBack.complete();\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n });\n }\n\n private runInstanceAction(actionSpec: LMActionSpec) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this.zone.run(args => this._runInstanceAction(actionSpec));\n }\n });\n }\n\n private _runInstanceAction(actionSpec: LMActionSpec) {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel, // DPB try to remove this\n placeholder: this.placeHolder,\n sourceResourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined\n };\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const instanceAction = this.lmFormTransactionService.runInstanceAction(formContext, actionSpec, this.getDataView()).subscribe(\n (transactionState: LMTransactionState) => {\n if (transactionState.isError) {\n if (!transactionState.isSSORedirecting) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n }\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n\n if (transactionState.actionFormDialogSaved) {\n // Do NOT need to check if the transaction was a success because the dialog form\n // will stay open if it encounters an error.\n // Not using the transaction dataview because it is the parameter view.\n\n // Process redirectURL for onCompleteNavigation\n if (result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n if (result.showAsPdf) {\n this.modelSourceEvent = { type: 'transaction' };\n this.refreshData();\n }\n } else {\n this.modelSourceEvent = { type: 'transaction' };\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n this.refreshData();\n }\n } else {\n this.handleTransactionStatus(result);\n\n if (transactionState.isSuccess()) {\n if (result.isCompletionNavigation && result.redirectUrl) {\n this.lmNavigationService.runNavigation(result.redirectUrl);\n if (result.showAsPdf) {\n this.modelSourceEvent = { type: 'transaction' };\n this.refreshData();\n }\n } else if (this.runningSpecialActionList) {\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n this.runningSpecialActionList.refresh(null); // shouldnt this wait\n this.runningSpecialActionList = null;\n } else {\n this.modelSourceEvent = { type: 'transaction' };\n this.refreshData();\n }\n\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n }\n\n if (transactionState.isSuccess()) {\n const formTransactionEvent = new LMFormTransactionEvent(this, transactionState.getTransactionResult());\n this.formTransactionEvent.emit(formTransactionEvent);\n this.notifyHandCodedTransactionComplete(transactionState);\n }\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n\n this.subscriptionArray.push(instanceAction);\n }\n\n private notifyHandCodedTransactionComplete(transactionState: LMTransactionState) {\n const htmlDocComp: LMHtmlUrlDocComponent = this.currentComponent.getHtmlUrlDocComponent();\n const tranactionList: LMActionRequest[] = transactionState?.transactionRequestList;\n const actionName: string = (tranactionList && tranactionList.length > 0) ? tranactionList[0]?.actionSpec?.name: \"\";\n if (htmlDocComp) {\n this.currentComponent.getHtmlUrlDocComponent().fireFormActionComplete(LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED,\n { message: '', resourceId: this.model.getData().resourceId, action: actionName });\n }\n }\n\n private runProcessFlowAction(actionReferenceId: string, sohoBusyIndicator?: SohoBusyIndicatorDirective) {\n\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel, // DPB try to remove this\n placeholder: this.placeHolder\n };\n\n // Get the process flow action\n const processFlowAction: LMProcessFlowAction = this._initDataView.processFlowActions\n .find(pfAction => pfAction.name === actionReferenceId);\n\n if (processFlowAction) {\n this.lmBusyIndicatorService.showBusyIndicator(sohoBusyIndicator);\n if (this.formContentComponent) {\n this.formContentComponent.runSaveAction().subscribe(\n () => {\n const actionSpec = this.lmActionService.getTargetAction({\n formSpec: this.formSpec,\n dataView: this._initDataView\n });\n\n this.lmFormTransactionService\n .runProcessFlowAction(formContext, processFlowAction, actionSpec, this.getDataView()).subscribe(\n (transactionState: LMTransactionState) => {\n if (transactionState.isError) {\n // Can be from mingle inbox that does not display dialog\n if (this.formOptions.actionFormDialogData && this.formOptions.actionFormDialogData.actionDialog$) {\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n }\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // DPB what to do\n } else {\n const result: LMActionResult = transactionState.completedTransactionList[0];\n this.handleTransactionStatus(result);\n\n if (AppConstants.STATUS_COMPLETED === result.status) {\n if (this.formOptions.actionFormDialogData && this.formOptions.actionFormDialogData.actionDialog$) {\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED,\n transactionStateResult: transactionState\n });\n return;\n }\n\n // Action request work units will send the message over to the list to display.\n // Other landmark work units will display message and go back in history.\n if (transactionState.isSuccess()) {\n const title = processFlowAction.name;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n this.model.setData(result.dataView, { source: { type: 'transaction' } });\n if (this.lmContextService.inMingleInbox()) {\n return;\n }\n if (this.formUrlInfo.fromInbox) {\n // Go to home page\n this.lmGlobalUtilService.navigateByUrl('/' + this.lmContextService.getContext().urlPdlOrDa + '/web/home');\n return;\n }\n this.location.back();\n }\n } else if (AppConstants.VIEW_EXCEPTION === result.status) {\n if (this.formOptions.actionFormDialogData && this.formOptions.actionFormDialogData.actionDialog$) {\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n }\n }\n }\n this.lmBusyIndicatorService.hideBusyIndicator(sohoBusyIndicator);\n });\n });\n }\n }\n }\n\n private runCompareAction(sohoBusyIndicator?: SohoBusyIndicatorDirective) {\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel, // DPB try to remove this\n placeholder: this.placeHolder\n };\n\n const actionSpec = this.lmActionService.getTargetAction({\n formSpec: this.formSpec,\n dataView: this._initDataView\n });\n\n this.lmBusyIndicatorService.showBusyIndicator(sohoBusyIndicator);\n this.lmFormTransactionService\n .runCompareAction(formContext, actionSpec, this.getDataView()).subscribe(\n (transactionState: LMTransactionState) => {\n // Can be from mingle inbox that does not display dialog\n if (this.formOptions.actionFormDialogData && this.formOptions.actionFormDialogData.actionDialog$) {\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n }\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // DPB what to do\n } else {\n const result: LMActionResult = transactionState.completedTransactionList[0];\n this.handleTransactionStatus(result);\n\n if (AppConstants.STATUS_COMPLETED === result.status) {\n // Bring up the compare dialog\n const dataset = this.buildActionRequestCompareData(result.dataView);\n // Create modal button\n const dialogId = 'CompareLog';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n },\n isDefault: true,\n }\n ];\n\n // Show the dialog button\n this.sohoModalDialogService\n .modal(LMAuditLogCompareDialogComponent, this.placeHolder, { fullsize: 'responsive' })\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .apply((dialogComponent) => {\n dialogComponent.dataset = dataset;\n })\n .open();\n }\n }\n this.lmBusyIndicatorService.hideBusyIndicator(sohoBusyIndicator);\n });\n }\n\n private buildActionRequestCompareData(dataView: LMDataView): Array<{ FieldName: string }> {\n const fromDataView = dataView.compareDataView;\n const toDataView = dataView;\n const rows = [];\n\n dataView.compareFieldList.forEach(fieldId => {\n const fromField = fromDataView.fields[fieldId];\n const toField = toDataView.fields[fieldId];\n const specField = this.specFields[fieldId];\n let label = '';\n\n let fromValue = fromField.value;\n let toValue = toField.value;\n if (specField) {\n fromField.type = toField.type = specField.type;\n fromValue = this.toDisplayValue(fromField, specField);\n toValue = this.toDisplayValue(toField, specField);\n label = this.lmFormatUtilService.formatMessageRule(specField.label, dataView);\n }\n if (fromValue !== toValue) {\n rows.push({ FieldName: this.lmFieldUtilService.decodeFieldName(fieldId), Label: label, FromValue: fromValue, ToValue: toValue });\n }\n });\n return rows;\n }\n\n private toDisplayValue(lmField: LMField, lmSpecField: LMSpecField): string {\n const options: LMTransformOptions = { isCompoundField: this.lmFormatUtilService.isCompoundField(lmField, lmSpecField.isMultiselect) };\n\n if (lmField.hasOwnProperty('precision')) {\n options.precision = lmField.precision;\n }\n\n return this.lmFormatUtilService.toDisplayValueWithSpec(lmField.value, lmSpecField, options);\n }\n\n private runDefineAction(dataView: LMDataView, fieldId: string) {\n // Opening in a new tab for right now.\n // // todo How to deal with dataView from independent form panel?\n //\n // // TODO: needs some work yet\n // this.globalStorageModel.defineFieldId = fieldId;\n // this.globalStorageModel.definePending = true;\n //\n // // save the model cache so if user comes back any changes can be applied\n // this.saveModelCache(true);\n\n this.lmFormRequestService.getDefineFormUrl(dataView.formUrl, fieldId, dataView).subscribe(\n (response: DefineFormSpecUrlResponse) => {\n if (response.status === 'COMPLETED') {\n this.lmGlobalUtilService.navigate(response.defineFormUrl, null, 'external');\n } else if (response.status === 'SYSTEM_EXCEPTION' && response.message === 'Define not yet available when database value doesn\\'t exist.') {\n // object doesn't exist yet\n this.lmErrorUtilService.handleError(Soho.Locale.translate('DefineOnNonExistentValueError'));\n\n } else {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n }\n });\n }\n\n public getDataView(): LMDataView {\n return this.model ? this.model.getData() : null;\n }\n\n public isModified(): boolean {\n return this.formContentComponent ? this.formContentComponent.isModified() : false;\n }\n\n public canActivatePanel(fieldId): boolean {\n return this.formContentComponent ? this.formContentComponent.canActivatePanel(fieldId) : false;\n }\n\n /***********************************************\n * PRIVATE METHODS\n ***********************************************/\n private build(): void {\n this.lmLoggerService.log([ this, this.instanceId, 'build()' ]);\n\n if (this.isRouterOutletRootComponent) {\n if (this.hideTitleBar) {\n this.hideTitleManageScroll = true;\n } else {\n this.lmBannerHeaderCompRef.instance.fullPageScroll = true;\n }\n }\n\n /**\n * formSpec is king. If a formSpec is passed in as Input() then that\n * take precedence over the url.\n */\n if (this.formSpec) {\n if (!this.formSpec.isImplicit) {\n // if (this.formSpec.dependentForm || formSpec from a page menu panel) {\n // // if it's a dependent form then no url could be used to get the url. So get the info\n // // from the spec itself.\n // this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec);\n // }\n //\n // if (!this.formUrlInfo) {\n // console.error('No formUrlInfo was passed into the form component');\n // }\n\n // if (!this.formUrlInfo) {\n // this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec);\n // }\n }\n\n this.formSpecLoaded();\n } else {\n this.loadFormSpec(this.router.url);\n }\n }\n\n private loadFormSpec(formUrl: string): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'loadFormSpec()', 'formUrl: ' + formUrl ]);\n\n this.lmSpecService.getFormSpec(formUrl).subscribe((response: LMFormSpecResponse | LMSystemException) => {\n this.lmLoggerService.trace([ this, this.instanceId, 'LMFormService.getFormSpec2() complete', response ]);\n\n if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.hideBusyIndicator();\n const statusText = (response as LMSystemException).statusText;\n const details = (response as LMSystemException).details;\n this.lmErrorUtilService.handleError(statusText, details);\n return;\n }\n\n this.formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n this.formSpec = (response as LMFormSpecResponse).formSpec;\n\n this.formSpecLoaded();\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n });\n }\n\n private formSpecLoaded(): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'formSpecLoaded()' ]);\n\n const bannerPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const appDisplay = bannerPersonalization.appDisplay;\n const unsupportedPattern = this.doesSpecContainUnsupported4_0Patterns(this.formSpec);\n const forceXI = this.actionFormOptions && this.actionFormOptions.forceXI ? this.actionFormOptions.forceXI : false;\n this.setLegacyVariables(unsupportedPattern, appDisplay, this.lmContextService, this.lmHtmlPageUtilService, forceXI);\n if (this.lmBannerHeaderCompRef && this.lmBannerHeaderCompRef.instance && this.lmBannerHeaderCompRef.instance.is3_5 !== undefined) {\n this.lmBannerHeaderCompRef.instance.is3_5 = (this.url3_5 && this.url3_5.length > 0);\n }\n\n /*\n * set the formContentViewData - this will cause the form to be built,\n * displayed, and data loaded.\n */\n this.formViewData.formSpec = this.formSpec;\n this.formType = this.formSpec.busFormSpec.formType as LMFormType;\n\n this.initialize();\n\n // adding the id later since when the template is processed the spec is not ready. need to figure this out.\n // &(this._elRef.nativeElement).find(\"landmark-list\").attr(\"id\", this.listSpec.busListSpec.id);\n\n // have the formContent implementation _build\n // if (this.formSpec.busFormSpec.panelNavigation) {\n // // this.stepProcessComponent.build();\n // } else if (this.formStandardComponent) { // safety\n // this.formStandardComponent.build();\n // }\n //\n\n // this.keyParamContextResourceId = this.route.snapshot.params['resourceId'];\n // this.keyParamContextResourceId = this.formUrlInfo.resource.resourceId;\n\n if (this.loadData) {\n this.load();\n }\n }\n\n private get loadData(): boolean {\n if (this.isActionForm || this.isBusinessTaskForm || this.isChangePasswordForm) {\n // Timing again, init data view is undefined when the form is being initialized, but data is already retrieved\n // This is working now, as the dataview is back in the template and is not set in after view init.\n return (!this._initDataView);\n } else if (this.formSpec.dependentForm\n || this.formSpec.independentForm\n || this.isPageContextForm\n || this.isSearchForm\n || this.isResponseRequired\n || this.isMenuLayoutForm\n || this.isCompactForm\n || this.isSubForm) {\n return false;\n }\n return true;\n }\n\n // private _buildRelatedMenu(dataView: LMDataView) {\n // let actionSpec = this._getTargetAction(dataView);\n //\n // this.relatedMenuParams = {\n // context: this.lmContextService.getContext(),\n // busClassName: this.formSpec.busClassSpec.name,\n // dataView: dataView,\n // isCreateMode: (actionSpec !== null && actionSpec.type === AppConstants.ACTION_TYPE_CREATE)\n // };\n //\n // if (this.isRouterOutletRootComponent) {\n // this._bannerHeaderCompRef.instance.toolbarOptions.relatedMenuParams = this.relatedMenuParams;\n // }\n // }\n\n private buildToolbar(dataView: LMDataView) {\n this.lmLoggerService.trace([ this, this.instanceId, 'buildToolbar()' ]);\n\n /**\n * If the toolbar is on the header for this component then use the\n * headerToolbarAdapter service to set the HeaderToolbarTarget to\n * 'this' and pass in the toolbarOptions explicitly.\n */\n if (this.isRouterOutletRootComponent && !this.showToolbarOnForm) {\n // map inputs\n // ------------------------------------------------------------------------------------\n // if no variable in title then set static title here, else clear the title here and\n // when formLoaded is called then the title can be resolved and set.\n // ------------------------------------------------------------------------------------\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = this.formTitle;\n this.lmBannerHeaderCompRef.instance.screenId = this.formSpec.busFormSpec.name;\n this.lmBannerHeaderCompRef.instance.screenAutomationId = this.formSpec.automationId;\n this.lmBannerHeaderCompRef.instance.toolbarMoreSettings = this.toolbarMoreMenuSettings;\n\n // map outputs\n const toolbarButtonEventSubscription = this.lmBannerHeaderCompRef.instance.toolbarButtonEvent.subscribe((toolbarButtonEvent: LMToolbarButtonEvent) => {\n this.onToolbarButtonEvent(toolbarButtonEvent);\n });\n\n this.subscriptionArray.push(toolbarButtonEventSubscription);\n\n this.toolbarInitialized = true;\n }\n\n if (!this.url3_5 && !this.lmContextService.inMingleWidget()) {\n const formStateInfo: LMFormStateInfo = {\n dataView,\n disableAllActions: this.formSpec ? !!this.formSpec.disableAllActions : false,\n suppressStandardToolbar: this.formSpec ? !!this.formSpec.suppressStandardToolbar : false,\n calledOutActionsOnly: this.formSpec ? !!this.formSpec.calledOutActionsOnly : false,\n disableFieldOptions: this.formSpec ? !!this.formSpec.disableFieldOptions : false\n };\n this.lmFormToolbarService.buildToolbarButtons(this.formUrlInfo, this.formSpec, formStateInfo);\n }\n }\n\n private fireInitialValueRules(bindId: string): Observable {\n // this.lmLoggerService.log([this, this.instanceId, 'fireInitialValueRule', bindId, 'isFiringInitialValueRule', this.lmFormService.isFiringInitialValueRule]);\n // this.lmLoggerService.log([this, this.instanceId, 'fireInitialValueRule', 'start executing', bindId, 'isFiringInitialValueRule', this.lmFormService.isFiringInitialValueRule]);\n const skinnyDataView: LMDataView = this.model.getSkinnyData();\n const compiledFormRequestUrl = urltemplate.parse(this.formUrlInfo.formRequestUrl);\n let formRequestUrl = compiledFormRequestUrl.expand({ resourceId: this.model.formResourceId });\n if (this.formUrlInfo.navigationContext) {\n formRequestUrl = this.lmUrlUtilService.appendToQueryString(formRequestUrl, this.lmUrlUtilService.objectToQueryString(this.formUrlInfo.navigationContext));\n }\n const actionSpec = this.lmActionService.getTargetAction({\n formSpec: this.formSpec,\n dataView: skinnyDataView\n });\n\n const actionName = (actionSpec != null) ? actionSpec.name : null;\n\n return this.lmFormRequestService.fireInitialValueRules(formRequestUrl, bindId, skinnyDataView, actionName, this.formUrlInfo.sourceResource)\n .pipe(\n flatMap(response => this.model.setFields(response)),\n catchError(err => {\n this.lmFormService.initialValueRuleQueueCountDown();\n return throwError(err);\n }),\n finalize(() => {\n this.lmFormService.firingInitialValueRuleCompleted.next(bindId);\n })\n ) as Observable;\n }\n\n private runDrillAction(actionReference: LMBusActionReference) {\n // todo spec-url-refactor drills ane rel-actions can be done at a later time since they\n // are small and lazily retrieved.\n const relActionUrl = actionReference.relActionUrl;\n // let relActionUrl = this.lmUrlUtilService.buildRelatedMenuActionUrl(this.formUrlInfo, actionReference);\n // if (!this.lmContextService.useNewSpecUrls()) {\n // this.lmUrlInfoBuilderService.compareSpecUrls(this.formUrlInfo, this.formSpec.busFormSpec.name + '.relActionUrl', actionReference.relActionUrl, relActionUrl);\n // relActionUrl = actionReference.relActionUrl;\n // }\n // todo spec-url-refactor compare relActionUrl to actionReference.relActionUrl\n this.lmSpecService.getDrillSpec(relActionUrl).pipe(first()).subscribe(response => {\n if (response.redirectUrl) {\n if (response.redirectUrl.indexOf('output=pdf') > -1) {\n this.lmGlobalUtilService.navigate(response.redirectUrl, null, 'external');\n\n } else if (response.redirectUrl.indexOf('/document/') > -1) {\n this.lmGlobalUtilService.navigate(response.redirectUrl);\n\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n\n // save the model cache so if user comes back any changes can be applied\n if (actionReference.isDrillAround) {\n this.saveModelCache(true);\n }\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n });\n }\n\n private openCompactFormDialog(\n fieldId: string,\n title: LMMessageRule,\n layout: LMFormLayout,\n specFields?: LMSpecFields,\n originalCompoundFieldLayout?: LMCompoundFieldLayout,\n displayOnly = false,\n excludeOriginalField = false\n ) {\n // Passing the original, unchanged data and the current model so the form can be\n // set with the original data values and then have the current state applied, thus preserving the\n // state between the main form and the dialog form. Upon the return from the dialog form, the model from the\n // dialog form is returned so the state can be applied back to the main form.\n\n this.lmCompactFormDialogService.promptCompactFormDialog({\n placeholder: this.placeHolder,\n fieldId,\n title,\n layout,\n dataView: this.model.getOriginalData(),\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n specFields,\n model: this.model,\n originalCompoundFieldLayout,\n displayOnly,\n excludeOriginalField\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe(\n (result: LMCompactFormResult) => {\n // result can be undefined if the user closes the modal by hitting the escape key, so adding a safety\n if (result && result.result === LMCompactFormDialogResult.RESPONSE_OK) {\n this.lmLoggerService.log(result.result);\n this.model.updateModelFromCompactForm(result.dataView, result.model, result.fieldId, result.bindIds);\n }\n }\n );\n }\n\n private openSubFormDialog(fieldId: string, title: LMMessageRule, busFormSpec: LMBusFormSpec) {\n // Passing the original, unchanged data and the current model so the form can be\n // set with the original data values and then have the current state applied, thus preserving the\n // state between the main form and the dialog form. Upon the return from the dialog form, the model from the\n // dialog form is returned so the state can be applied back to the main form.\n\n this.lmSubFormDialogService.promptSubFormDialog({\n placeholder: this.placeHolder,\n fieldId,\n title,\n busFormSpec,\n dataView: this.model.getOriginalData(),\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n model: this.model\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe(\n (result: LMSubFormResult) => {\n // result can be undefined if the user closes the modal by hitting the escape key, so adding a safety\n if (result) {\n if (result.result === LMSubFormDialogResult.RESPONSE_OK) {\n this.lmLoggerService.log(result.result);\n this.model.updateModelFromSubForm(result.dataView, result.model, result.bindIds);\n\n } else if (result.result === LMSubFormDialogResult.RESPONSE_ERROR && result.error) {\n this.lmErrorUtilService.handleError(result.error.message, result.error.details, result.error.status);\n }\n }\n }\n );\n }\n\n private openDataViewFieldButtonForm(formButton: LMButtonLayout, displayedSelectDialog = false) {\n const formUrl = this.lmUrlUtilService.buildUrl({\n resource: this.formResource\n });\n const fieldId: string = formButton.fieldId;\n const dataView: LMDataView = this.getDataView();\n\n this.lmFormRequestService\n .getDataViewFieldButtonFormInfo(formUrl, fieldId, dataView, displayedSelectDialog)\n .subscribe((formInfoResponse: LMDataViewDataFormInfoResponse) => {\n this.lmLoggerService.log([ this, this.instanceId, 'formRequestService.getDataViewDataFormInfo()', 'formInfoResponse=', formInfoResponse ]);\n\n if (formInfoResponse.openDialogForm) {\n this.openDataViewFormDialog({\n fieldId,\n busClassName: formInfoResponse.busClassName,\n busFormName: formInfoResponse.busFormName,\n actionName: formInfoResponse.actionName,\n dialogUrl: formInfoResponse.url,\n resourceId: formInfoResponse.fieldView.resourceId,\n fieldDataView: formInfoResponse.fieldView,\n fieldHasData: formInfoResponse.fieldHasData\n });\n } else if (formInfoResponse.openSelectRecord) {\n this.openSelectRecordDialog({\n formButton,\n busClassName: formInfoResponse.busClassName,\n busFormName: formInfoResponse.busFormName,\n busFormSpec: formInfoResponse.formSpec.busFormSpec,\n fieldDataView: formInfoResponse.fieldView,\n formSpec: formInfoResponse.formSpec\n });\n } else if (formInfoResponse.status === AppConstants.VIEW_EXCEPTION || formInfoResponse.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(formInfoResponse.message, formInfoResponse.details, formInfoResponse.status);\n }\n },\n (error) => {\n this.lmLoggerService.error([ this, this.instanceId, 'Error in getDataViewFieldButtonFormInfo', fieldId, error ]);\n });\n }\n\n private openDataViewFormDialog(formRequest: LMDataViewFormRequest): void {\n const formUrl = this.lmUrlUtilService.buildUrl({\n resource: this.formResource\n });\n const dataView: LMDataView = this.getDataView();\n let formDataView = formRequest.fieldDataView;\n\n const dataViewFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromHttpUrl(formRequest.dialogUrl);\n this.lmSpecService.getFormSpec(dataViewFormUrlInfo.specUrl).subscribe((response: LMFormSpecResponse | LMSystemException) => {\n this.lmLoggerService.trace([ this, this.instanceId, 'LMFormService.getFormSpec2() complete', response ]);\n\n if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.hideBusyIndicator();\n const statusText = (response as LMSystemException).statusText;\n const details = (response as LMSystemException).details;\n this.lmErrorUtilService.handleError(statusText, details);\n return;\n }\n\n const formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n const formSpec = (response as LMFormSpecResponse).formSpec;\n\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions ?\n formSpec.busClassSpec.actions.find(action => action.name === formRequest.actionName) :\n formSpec.busClassSpec.actionSpec;\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId: formRequest.resourceId, actionName: formRequest.actionName });\n\n this.lmActionFormDialogService.getDataViewFieldButtonDataView(dataUrl, formDataView).subscribe((dialogDataViewResponse: any) => {\n this.lmLoggerService.log([ this, this.instanceId, 'lmActionFormDialogService.getActionFormDialogDataView()', 'dialogDataViewResponse=', dialogDataViewResponse ]);\n\n formDataView = dialogDataViewResponse;\n if (formDataView.status !== AppConstants.STATUS_COMPLETED) {\n this.lmErrorUtilService.handleError(dialogDataViewResponse.message, dialogDataViewResponse.details, dialogDataViewResponse.status, dialogDataViewResponse.statusText);\n return;\n }\n\n const actionFormOptions: LMActionFormOptions = {\n isDataViewFieldButtonForm: true,\n dataViewFieldButtonHasData: formRequest.fieldHasData\n };\n this.lmActionFormDialogService\n .runActionFormDialog(\n formUrlInfo,\n formSpec,\n actionSpec,\n formDataView,\n undefined,\n actionFormOptions\n ).subscribe((dialogResult: LMActionFormDialogResult) => {\n\n if (dialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.updateDataViewFieldButton(\n formUrl,\n dataView,\n formRequest.fieldId,\n formDataView,\n formRequest.busClassName,\n formRequest.busFormName\n ).subscribe(); // Error handling and logging has been handled\n }\n\n if (dialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CLEAR) {\n this.model.updateModelFromDataViewForm(formRequest.fieldId, '', this.model);\n }\n });\n });\n });\n }\n\n private openSelectRecordDialog(selectRecordRequest: LMDataViewSelectRecordRequest): void {\n const formUrl = this.lmUrlUtilService.buildUrl({\n resource: this.formResource\n });\n const dataView: LMDataView = this.getDataView();\n const fieldId: string = selectRecordRequest.formButton.fieldId;\n\n const selectRecordFormUrlInfo: LMFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(\n selectRecordRequest.formSpec, { fillOutTransactionUrlOnly: true });\n\n this.lmSelectRecordDialogService.promptSelectRecordDialog({\n formUrlInfo: selectRecordFormUrlInfo,\n formSpec: selectRecordRequest.formSpec,\n busFormSpec: selectRecordRequest.busFormSpec,\n dataView: selectRecordRequest.fieldDataView,\n fieldId,\n placeholder: this.placeHolder,\n })\n .pipe(first())\n .subscribe((selectRecordResult: LMSelectRecordResult) => {\n if (selectRecordResult.result === LMSelectRecordDialogResult.RESPONSE_OK) {\n this.updateDataViewFieldButton(\n formUrl,\n dataView,\n fieldId,\n selectRecordResult.dataView,\n selectRecordRequest.busClassName,\n selectRecordRequest.busFormName\n ).subscribe((successful: boolean) => {\n if (successful) {\n this.openDataViewFieldButtonForm(selectRecordRequest.formButton, true);\n }\n });\n }\n });\n }\n\n private updateDataViewFieldButton(formUrl: string, dataView: LMDataView, fieldId: string, fieldDataView: LMDataView, busClassName: string, busFormName: string): Observable {\n // TODO: Needs better error handling\n return new Observable(observer => {\n this.lmFormRequestService.getDataViewFieldButtonValue(formUrl, dataView, fieldId, fieldDataView, busClassName, busFormName)\n .subscribe((response: any) => {\n this.lmLoggerService.log([ this, this.instanceId, 'updateDataViewFieldButton()', 'response=', response ]);\n if (response.status === AppConstants.STATUS_COMPLETED) {\n this.model.updateModelFromDataViewForm(fieldId, response.fieldValue, this.model);\n } else if (response.status === AppConstants.VIEW_EXCEPTION || response.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n }\n\n observer.next(response.status === AppConstants.STATUS_COMPLETED);\n observer.complete();\n });\n });\n }\n\n // private methods\n private _loadStepRecord(): Promise {\n const self: LMFormComponent = this;\n // eslint-disable-next-line no-unused-vars\n return new Promise((resolve, reject) => {\n self.lmLoggerService.time({ id: 'LMForm.loadStepRecord() ' + self.instanceId });\n\n const resourceId = self.formUrlInfo.resource.dataResourceId;\n const actionName = self.formUrlInfo.action;\n const dataUrl = self.buildLoadRecordUrl(resourceId, actionName);\n\n // TODO: Needs error handling\n self.lmFormPagingService.loadRecord(dataUrl).subscribe((response: any) => {\n self.lmLoggerService.timeEnd('LMForm.loadStepRecord() ' + self.instanceId);\n\n if (response.status === AppConstants.STATUS_COMPLETED) {\n self.initDataView = response;\n resolve(response);\n }\n });\n });\n }\n\n private _loadStandardRecord(): Promise {\n this.lmLoggerService.log([ this, this.instanceId, '_loadStandardRecord()', 'start' ]);\n\n const self: LMFormComponent = this;\n // eslint-disable-next-line no-unused-vars\n return new Promise((resolve, reject) => {\n if (this.lmLoggerService.cskLog === 2) {\n self.lmLoggerService.time({\n id: `LoadStandardRecord-${self.instanceId}`,\n description: 'LOAD STANDARD RECORD',\n functionName: '_loadStandardRecord()',\n className: 'LMFormComponent',\n timingStart: 'LMFormComponent -> _loadStandardRecord()',\n timingEnd: 'LMFormComponent -> _loadStandardRecord()'\n });\n }\n let dataUrl = '';\n if (this.isCartView) {\n dataUrl = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec).initialDataUrl;\n } else {\n const resourceId = !self.fromDataView ? self.formUrlInfo.resource.dataResourceId : self.fromDataView.resourceId;\n const actionName = !self.fromDataView ? self.formUrlInfo.action : (self.formSpec.independentForm ? self.actionIsAction : null);\n dataUrl = self.buildLoadRecordUrl(resourceId, actionName);\n }\n\n self.lmFormPagingService.loadRecord(dataUrl).subscribe((response: any) => {\n if (response.status === AppConstants.STATUS_COMPLETED) {\n if (response.serverLog) {\n self.lmLoggerService.serverLog(response.serverLog);\n }\n\n self.initDataView = response;\n resolve(response);\n\n } else {\n self.lmLoggerService.error([ self, self.instanceId, 'loadStandardRecord()', response ]);\n self.lmErrorUtilService.handleError(response.message, response.details, response.status, response.statusText);\n }\n\n if (this.lmLoggerService.cskLog === 2) {\n self.lmLoggerService.timeEnd(`LoadStandardRecord-${self.instanceId}`);\n }\n },\n // TODO: cleanup deprecated usage of error callbacks in subscribe\n // Needs better error handling\n (error: any) => {\n if (this.lmLoggerService.cskLog === 2) {\n self.lmLoggerService.timeEnd(`LoadStandardRecord-${self.instanceId}`);\n }\n\n self.lmLoggerService.error([ self, self.instanceId, 'loadStandardRecord()', error ]);\n self.lmErrorUtilService.handleUnexpectedError(error, self.placeHolder);\n });\n });\n }\n\n // vonnyw: not sure if we still need this, commenting it out for now\n // private _processRecord(dataView: any) {\n // this.lmLoggerService.time('LMForm.processRecord() ' + this.instanceId);\n\n // set here for availability, but don't do the processing that setDataView has\n // if (dataView) {\n // // var wizardState = self._getWizardState();\n // //\n // // if (wizardState != undefined && wizardState.operation != undefined)\n // // self.dataView = wizardState.dataview;\n // // else\n // this.dataView = dataView;\n // }\n\n /**\n * This must be in place before any widgets are built. If not the banner\n * will get updated before this handler has a chance to reject invalid\n * titlechange events.\n */\n // TODO: $(self.element).on(\"listtitlechanged formtitlechanged pagetitlechanged\", function(e)\n // {\n // if (e.target !== e.currentTarget)\n // {\n // /**\n // * only want top level titlechanged events to get to the\n // * landmarkBanner event handler.\n // */\n // e.stopPropagation();\n // }\n // });\n\n // TODO: self._buildForm();\n\n // LMCLIENT-11053\n // Not sure why this condition included implementsDashBoardView. That was causing _setupEventHandlers()\n // to be called twice on a composite form context form that implementsDashBoardView. Which caused 2\n // event handlers for each action for those forms. Which was causing 2 transactions to attempt to be\n // executed.\n // If this form implementsDashBoardView then self.isDetailSection is already true and any \"dependent\"\n // forms will be covered by that.\n // if (self.isDetailSection || self.isDetailFields || self.options.busFormSpec.implementsDashBoardView)\n // TODO: if (self.isDetailSection || self.isDetailFields)\n // {\n // self._setupEventHandlers();\n //\n // window.setTimeout(function()\n // {\n // self.element.inforForm();\n // }, 1);\n // }\n\n // run layout if form is not of these conditions\n // setDataView will run layout after the data view is set, but only when these conditions are true\n\n // TODO: if (!self.isDetailSection && !self.isDetailFields) // && !self.options.busFormSpec.implementsDashBoardView)\n // {\n // self._formLayout(self.element);\n // }\n\n // this.lmLoggerService.timeEnd('LMForm.processRecord() ' + this.instanceId);\n // }\n\n private formDataLoaded(): void {\n this.lmLoggerService.log([ this, this.instanceId, 'formDataLoaded()', 'start' ]);\n // // build options for composite form tabs\n // if (this.formType === 'Composite') {\n // this.buildFormOptions(this.formSpec.busFormSpec);\n // }\n\n // -------------------------------------------------------------------------------------\n // This needs to be updated when the dataView changes (due to next/prev\n // or resetting of _initDataView for related/dependent forms).\n // -------------------------------------------------------------------------------------\n this.formTitle = this.lmFormatUtilService.formatMessageRule(this.formSpec.busFormSpec.title, this._initDataView, this.specFields);\n if (!_.isEmpty(this.formSpec.busFormSpec.title.variables)\n && (!this.isRouterOutletRootComponent && this.formType === 'Standard')) {\n this.titleChanged.emit(this.formTitle);\n }\n\n if (this.model) {\n this.lmLoggerService.log([ this, this.instanceId, 'formDataLoaded()', 'this.model.setData()' ]);\n\n this.model.setData(this._initDataView, {\n source: this.modelSourceEvent,\n filterCriteria: this.formOptions.filterCriteria,\n alphaDefaultFilterCondition: this.formOptions.defaultAlphaFilterCondition\n });\n\n // need to reset this flag!\n this.modelSourceEvent = null;\n\n this.formResource = new FormResource({ resourceId: this.model.formResourceId });\n this.formComponentId = this.formSpec.busFormSpec.name;\n this.loadComponentState();\n }\n\n if (!this.formSpec.dependentForm) {\n if (!this.toolbarInitialized) {\n this.buildToolbar(this._initDataView);\n } else {\n this.updateToolbarState(this._initDataView, this.allowUpdate, true);\n }\n }\n\n this.formViewData.dataView = this._initDataView;\n\n // this.setRelatedDataView(this.formViewData.dataView);\n this.formDataLoadedComplete = true;\n\n if (!this.isSearchForm && !this.isPageContextForm) {\n this.subscribeToFormChanges();\n }\n\n this.checkApplyModelCache(this.model.globalCache);\n\n this.formRendered.emit(this);\n\n if (this.isRouterOutletRootComponent || this.isActionForm || this.isBusinessTaskForm || this.isMingleInbox) {\n this.sendShortcut();\n this.sendBusinessContext(this.formViewData.dataView);\n }\n\n // -----------------------------------------------------\n // form should be considered displayed as any display\n // in a dialog is handled there.\n // -----------------------------------------------------\n this.formDisplayed.emit(this);\n\n // In action form dialog, once form data is loaded, listen to OK clicks\n if (this.formOptions.actionFormDialogData && this.formOptions.actionFormDialogData.actionDialog$ && !this.formSpec.isScheduleForm) {\n this.subscribeToActionDialog();\n }\n\n if (this._initDataView.stepUpActionResult) {\n // Process the action result in the case of step up authentication\n this.processStepUpAuthActionResult(this._initDataView.stepUpActionResult);\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'formDataLoaded()', 'end' ]);\n }\n\n private processStepUpAuthActionResult(actionResult: LMActionResult) {\n if (AppConstants.CONFIRMATION_REQUIRED === actionResult.status) {\n // TODO: Handle confirmation required\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.formModel, // DPB try to remove this\n placeholder: this.placeHolder,\n sourceResourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined\n };\n this.lmFormTransactionService.processStepUpAuthActionResult(formContext, actionResult, this._initDataView).subscribe(\n (transactionState: LMTransactionState) => {\n // Processed the result. Remove from dataview.\n this._initDataView.stepUpActionResult = undefined;\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // What to do?\n } else {\n const result: LMActionResult = transactionState.getTransactionResult();\n this.handleTransactionStatus(result);\n\n if (transactionState.isSuccess()) {\n const title = result.actionSpec.label;\n const message = result.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n this.refreshData();\n }\n }\n });\n } else {\n if (AppConstants.STATUS_COMPLETED === actionResult.status) {\n const title = actionResult.actionSpec.label;\n const message = actionResult.message || Soho.Locale.translate('ActionSuccessful');\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n this.refreshData();\n } else {\n this.handleTransactionStatus(actionResult);\n // Processed the result. Remove from dataview.\n this._initDataView.stepUpActionResult = undefined;\n }\n }\n }\n\n // private setRelatedDataView(dataView: LMDataView): void {\n // // if (this.formType === AppConstants.FORMTYPE_COMPOSITE) {\n // // if (this.compositeComponent) {\n // // this.compositeComponent.fromDataView = dataView;\n // // }\n // // this.stepProcessComponent.fromDataView = dataView;\n //\n // // if (this.stepProcessComponent) {\n // // this.stepProcessComponent.fromDataView = dataView;\n // // }\n // // else {\n // // this.compositeComponent.fromDataView = dataView;\n // // }\n // // }\n // }\n\n private updateToolbarState(dataView: LMDataView, isModified?: boolean, includeSaveAndNew?: boolean): void {\n const formStateInfo: LMFormStateInfo = {\n dataView,\n isModified: this.model.isDirty || isModified,\n isCreateMode: this.model.isCreateAction,\n includeSaveAndNew,\n showMatrixDetail: this.showMatrixDetail,\n disableAllActions: this.formSpec && this.formSpec.disableAllActions,\n calledOutActionsOnly: this.formSpec && this.formSpec.calledOutActionsOnly,\n suppressStandardToolbar: this.formSpec && this.formSpec.suppressStandardToolbar\n };\n\n if (this.isRouterOutletRootComponent && !this.showToolbarOnForm) {\n // reset the section title in the banner ref, according to the current data view (for http://jira.lawson.com/browse/LMCLIENT-20304 wasn't updating from create to update dataview)\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = this.lmFormatUtilService.formatMessageRule(this.formSpec.busFormSpec.title, this.getDataView(), this.specFields);\n }\n\n this.lmFormToolbarService.updateToolbarState(this.formUrlInfo, this.formSpec, formStateInfo);\n }\n\n // /**\n // * TODO move this into a service maybe?\n // * @param busFormSpec\n // */\n // private buildFormOptions(busFormSpec: LMBusFormSpec) {\n // // The visibility condition is evaluated and only the tabs that are visible are included\n // // in the collection\n // // TODO: Identify when conditions are to be evaluated again and rebuild the tabs collection\n // // TODO: An observable can be used to call this method to rebuild the collection\n //\n // this.verticalTabs = false;\n // this.contextForm = undefined;\n //\n // if (busFormSpec.contextForm) {\n // this.contextForm = busFormSpec.contextForm;\n // }\n //\n // if (!busFormSpec.panelNavigation && !busFormSpec.isWizard) {\n // this.verticalTabs = (busFormSpec.showTabsOnLeft) ? busFormSpec.showTabsOnLeft : false;\n // }\n //\n // let compositeFormOptions: CompositeFormOptions = {panels: this.panels, contextForm: this.contextForm, verticalTabs: this.verticalTabs};\n // this.formOptions.compositeFormOptions = compositeFormOptions;\n // }\n\n // private _getActionMenuActions(): Array {\n // let actionMenuActions: Array = [];\n // let actions = this.formSpec.busClassSpec.actions;\n //\n // for (let i = 0, l = actions.length; i < l; i++) {\n // let action = actions[ i ];\n //\n // if (action && action.restricted) {\n // actionMenuActions.push('');\n // } else {\n // actionMenuActions.push(action);\n // }\n // }\n //\n // return actionMenuActions;\n // }\n\n // private _getActionTypes(dataView: LMDataView): any {\n // let actionTypes: any = null;\n // let actionSpec = this._getTargetAction(dataView);\n // let isCreate = false;\n //\n // if (actionSpec && actionSpec.type === AppConstants.ACTION_TYPE_UPDATE) {\n // actionTypes = [];\n // actionTypes.push(\n // AppConstants.ACTION_TYPE_DELETE,\n // AppConstants.ACTION_TYPE_FUNCTION,\n // AppConstants.ACTION_TYPE_UPDATE\n // );\n // } else if (actionSpec && actionSpec.type === AppConstants.ACTION_TYPE_CREATE) {\n // actionTypes = [];\n // actionTypes.push(\n // AppConstants.STANDARD_TOOLBAR_SAVE\n // );\n // isCreate = true;\n // }\n //\n // return { actionTypes: actionTypes, isCreate: isCreate };\n // }\n\n private initialize(): void {\n this.lmLoggerService.log([ this, this.instanceId, 'initialize()' ]);\n // if (this.formSpec.busFormSpec.panelNavigation) {\n // this.isPanelNavigation = true;\n // }\n // if (this.formSpec.busFormSpec.isWizard) {\n // this.isWizard = true;\n // }\n\n if (!this._specFields) {\n this._specFields = this.formSpec.busFormSpec.fields;\n }\n this.configRequiredFields = this.formSpec.busFormSpec.requiredFields;\n const modelOptions: LMModelOptions = { formUrlInfo: this.formUrlInfo, formSpec: this.formSpec };\n\n this.lmLoggerService.log([ this, this.instanceId, 'initialize()', 'new LMModel()' ]);\n\n this.model = new LMModel(this.lmModelServiceAdapter, modelOptions);\n this.model.populate(this.specFields);\n // Execute procedures to load intial data\n if (this._initDataView) {\n this.formDataLoaded();\n }\n\n // TODO: CandidateSelfService contextForm is undefined\n // Example URL: (CLICK CREATE)\n // /hcm/web/list/JobPosting?csk.HROrganization=7004&csk.JobBoard=EXTERNAL&csk.ng=true\n\n if (this.formType === 'Composite') {\n if (!this.formSpec.busFormSpec.panels) {\n this.layout = this.formSpec.busFormSpec.contextForm.busFormSpec.busFormLayoutSpec.layout;\n }\n if (!this.formSpec.busFormSpec.contextForm) {\n this.compositeFormWithOutContext = true;\n }\n } else if ('Chart' === this.formType || 'Matrix' === this.formType || this.isActionFormWithSections) {\n // at this point no layout is required for an instance chart or matrix\n // No layout required for isActionFormWithSections\n } else {\n this.layout = this.formSpec.busFormSpec.busFormLayoutSpec.layout;\n }\n\n if (this.heightShouldBeNull()) {\n this.styleHeight = null;\n }\n\n // this.layout = this.formType === 'Composite'\n // ? this.formSpec.busFormSpec.contextForm.layout\n // : this.formSpec.busFormSpec.busFormLayoutSpec.layout;\n\n // -------------------------------------------------------------------------\n // Setup toolbar service observable to build and update the toolbar state.\n // When any call to the service modifies it's internal toolbar buttons\n // then this will get messaged and the lists toolbar will be updated\n // with the new buttons through an angular template sync pipe\n // -------------------------------------------------------------------------\n if (this.isRouterOutletRootComponent && !this.showToolbarOnForm) {\n this.lmBannerHeaderCompRef.instance.toolbarButtons = this.lmFormToolbarService.getToolbarButtonsObservable();\n } else {\n this.toolbarButtons = this.lmFormToolbarService.getToolbarButtonsObservable();\n }\n // (this.isRouterOutletRootComponent ) ?\n // this.lmBannerHeaderCompRef.instance.toolbarButtons = this.lmFormToolbarService.getToolbarButtonsObservable() :\n // this.toolbarButtons = this.lmFormToolbarService.getToolbarButtonsObservable();\n\n this.initialBuildComplete = true;\n }\n\n private heightShouldBeNull(): boolean {\n if (!this.url3_5 && this.lmContextService.inMingleWidget()) {\n return false;\n }\n\n return !(this.formType !== LMFormType.SEARCH && this.formType !== LMFormType.PAGE_CONTEXT);\n }\n\n // used in template\n public get isCompositeForm() {\n return this.formSpec.busFormSpec.formType === 'Composite';\n }\n\n public get isActionFormWithSections() {\n return this.isActionForm && this.formSpec.busFormSpec.panels;\n }\n\n private get isMatrixForm() {\n return this.formSpec.busFormSpec.formType === 'Matrix';\n }\n\n private get isWizardForm() {\n return this.formSpec.busFormSpec.formType === 'Wizard';\n }\n\n public get isPageContextForm(): boolean {\n return this.lmFormSpecUtilService.isPageContextForm(this.formSpec);\n }\n\n private get isSearchForm(): boolean {\n return this.lmFormSpecUtilService.isSearchForm(this.formSpec);\n }\n\n private get isActionForm(): boolean {\n return this.lmFormSpecUtilService.isActionForm(this.formSpec);\n }\n\n private get isResponseRequired(): boolean {\n return this.lmFormSpecUtilService.isResponseRequired(this.formSpec);\n }\n\n private get isMenuLayoutForm(): boolean {\n return this.lmFormSpecUtilService.isMenuLayoutForm(this.formSpec);\n }\n\n private get isCompactForm(): boolean {\n return this.lmFormSpecUtilService.isCompactForm(this.formSpec);\n }\n\n private get isSubForm(): boolean {\n return this.lmFormSpecUtilService.isSubForm(this.formSpec);\n }\n\n private get isBusinessTaskForm(): boolean {\n return this.lmFormSpecUtilService.isBusinessTask(this.formSpec);\n }\n\n get isMingleWidget(): boolean {\n return this.lmContextService.inMingleWidget();\n }\n\n get isMingleInbox(): boolean {\n return this.lmContextService.inMingleInbox();\n }\n\n private get isChangePasswordForm(): boolean {\n return this.lmFormSpecUtilService.isChangePasswordForm(this.formSpec);\n }\n\n private get useFormState(): boolean {\n return this.isCompositeForm // which includes step control form\n || this.isMatrixForm\n || this.isWizardForm\n || this.pageContextForm;\n }\n\n /**\n * Lazily builds and returns the LMFormStateKeyParams object.\n * @returns\n */\n private buildFormStateKeyParams(): LMFormStateKeyParams {\n if (!this.formStateKeyParams) {\n const routeResourceId = this.formSpec.anonymousId === this.lmContextService.getActorId() ?\n this.buildAnonymousResourceId() : this.formUrlInfo.resource.resourceId;\n\n this.formStateKeyParams = this.lmStateHelperService.buildFormStateKeyParams(routeResourceId, this.formSpec);\n }\n\n return this.formStateKeyParams;\n }\n\n private buildAnonymousResourceId(): string {\n return this.formUrlInfo.resource.busClassName + '.' + this.formUrlInfo.resource.uiResourceName;\n }\n\n private buildFormPersonalizationKeyParams(): LMFormPersonalizationKeyParams {\n if (!this.formPersonalizationKeyParams) {\n this.formPersonalizationKeyParams = new LMFormPersonalizationKeyParams();\n this.formPersonalizationKeyParams.storageKey = this.lmFormSpecUtilService.storageKey(this.formSpec);\n this.formPersonalizationKeyParams.resourceId = this.getNormalizedResourceId();\n this.formPersonalizationKeyParams.contextResourceId = this.formUrlInfo.resource.resourceId;\n if (this.lmContextService.getAsOfDate()) {\n this.formStateKeyParams.asOfDate = this.lmContextService.getAsOfDate();\n }\n }\n\n return this.formPersonalizationKeyParams;\n }\n\n private buildGlobalStorageKeyParams(): LMKeyParamsBase {\n if (!this.globalStorageKeyParams) {\n this.globalStorageKeyParams = new LMGlobalStorageKeyParams();\n this.globalStorageKeyParams.storageKey = this.lmFormSpecUtilService.storageKey(this.formSpec);\n this.globalStorageKeyParams.resourceId = this.getNormalizedResourceId();\n this.globalStorageKeyParams.contextResourceId = this.formUrlInfo.resource.resourceId;\n if (this.lmContextService.getAsOfDate()) {\n this.formStateKeyParams.asOfDate = this.lmContextService.getAsOfDate();\n }\n }\n\n return this.globalStorageKeyParams;\n }\n\n private getNormalizedResourceId(): string {\n const formResource: FormResource = new FormResource({\n busClassName: this.formSpec.busClassSpec ? this.formSpec.busClassSpec.name : 'PageContextForm',\n formName: this.formSpec.busFormSpec.name\n });\n return formResource.resourceId;\n }\n\n private runValidateDataViewField() {\n this.waitForFormToBeReady().subscribe(() => {\n if (!this.validateConfigRequiredFields(this.configRequiredFields)) {\n return;\n }\n const actionSpec = this.formOptions.actionFormDialogData.actionSpec;\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.lmFormTransactionService.runValidateFormPanel(formContext, actionSpec, this.getDataView(), '').subscribe(\n (transactionState: LMTransactionState) => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n } else if (transactionState.isCanceled) {\n // Nothing to do\n } else if (transactionState.isSuccess()) {\n this.closeActionFormDialog(transactionState, null);\n } else {\n this.handleTransactionStatus(transactionState.getTransactionResult());\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n }\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n });\n });\n }\n\n private subscribeToActionDialog() {\n this.formOptions.actionFormDialogData.actionDialog$\n // Do not do first here. This subscription will be active until dialog is closed.\n // The dialog service will complete and close this subject.\n .subscribe((actionDlgResult: LMActionFormDialogResult) => {\n if (actionDlgResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK\n || actionDlgResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK2) {\n this.waitForFormToBeReady().subscribe(() => {\n if (!this.validateConfigRequiredFields(this.configRequiredFields)) {\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n });\n } else {\n const actionSpec = this.formOptions.actionFormDialogData.actionSpec;\n const parameterView = this.getDataView();\n const dataViewList: LMDataView[] = [];\n const origTransactionState = actionDlgResult.transactionStateResult;\n\n // Merge schedule information\n if (actionDlgResult.scheduleView) {\n parameterView.scheduleView = actionDlgResult.scheduleView;\n }\n\n if (actionDlgResult.actionRequestArray && actionDlgResult.actionRequestArray.length > 1) {\n for (let i = 0, l = actionDlgResult.actionRequestArray.length; i < l; i++) {\n dataViewList.push(actionDlgResult.actionRequestArray[i].dataView);\n }\n } else {\n dataViewList.push(parameterView);\n }\n\n const formContext: LMFormContext = {\n formUrlInfo: this.formUrlInfo,\n formSpec: this.formSpec,\n formModel: this.model,\n placeholder: this.placeHolder\n };\n\n // Request action has two kinds of save action. The save mode is passed to the backend to perform either a draft save or a submit save.\n if (actionDlgResult.pfActionRequestSaveMode) {\n formContext.actionRequestMode = actionDlgResult.pfActionRequestSaveMode;\n }\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.lmTransactionService.runActionForm(formContext, actionSpec, parameterView, dataViewList).subscribe(\n (transactionState: LMTransactionState) => {\n this.notifyManualRepSaveComplete(transactionState);\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n if (origTransactionState) {\n origTransactionState.cancel();\n }\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n } else if (transactionState.isCanceled) {\n // DPB this needs to update the audit fields like reason code\n\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n } else if (transactionState.isSuccess()) {\n this.closeActionFormDialog(transactionState, origTransactionState);\n } else {\n // List, multiple dataviews. Some succeeded, some failed and transaction state is finished.\n if (transactionState.completedTransactionList.length === 1) {\n this.handleTransactionStatus(transactionState.getTransactionResult());\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n\n } else {\n this.handleMultipleActionExceptionTransactions(transactionState, origTransactionState);\n }\n }\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n });\n }\n });\n } else if (actionDlgResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_PFACTION) {\n this.waitForFormToBeReady().subscribe(() => {\n this.runProcessFlowAction(actionDlgResult.pfActionName, this.sohoBusyIndicator);\n });\n } else if (actionDlgResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_COMPARE) {\n this.runCompareAction(this.sohoBusyIndicator);\n } else if (actionDlgResult.result === LMActionFormDialogResultCode.ACTION_FORM_VALIDATE_ONLY) {\n this.runValidateDataViewField();\n }\n });\n }\n\n private notifyManualRepSaveComplete(transactionState: LMTransactionState) {\n // If this is a screen that uses the lawson-api.js we need to fire an event that informs the iframe screen the save in either saved or not\n if (this.currentComponent && this.currentComponent.getHtmlUrlDocComponent()) {\n\n const refs: LMManualRepresentationComponent[] = this.lmHtmlUrlDocService.getManualRefCompRefs();\n for (const item of refs) {\n item.getLmHtmlUrlDocComponent().fireLandmarkFormSaveComplete(transactionState.isSuccess());\n }\n }\n }\n\n private handleMultipleActionExceptionTransactions(transactionState: LMTransactionState, origTransactionState: LMTransactionState) {\n if (transactionState.allRequestsFailedForSameReason()) {\n this.handleTransactionStatus(transactionState.getTransactionResult());\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS,\n transactionStateResult: transactionState\n });\n } else {\n // Multiple Transactions ran against this Action Form, going to close the dialog\n // because some transaction passed and some failed. How does the user know which records\n // failed and which records passed? Will let the list show the feedback!\n this.closeActionFormDialog(transactionState, origTransactionState);\n }\n }\n\n private closeActionFormDialog(transactionState: LMTransactionState, origTransactionState: LMTransactionState) {\n // close the action form!\n this.formOptions.actionFormDialogData.actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED,\n transactionStateResult: transactionState\n });\n\n // origTransactionState is the what the list is listening to\n if (origTransactionState) {\n origTransactionState.actionFormDialogSaved = true;\n\n for (let i = 0, l = transactionState.completedTransactionList.length; i < l; i++) {\n origTransactionState.completeResult(transactionState.completedTransactionList[i]);\n }\n if (transactionState.cancelledRTConfirmations.length > 0) {\n origTransactionState.cancelledRTConfirmations.push(...transactionState.cancelledRTConfirmations);\n }\n origTransactionState.finish();\n }\n }\n\n private subscribeToFormChanges() {\n // already exists, so do not add again\n if (this.hasModelStatusSubscription) {\n return;\n }\n\n this.hasModelStatusSubscription = true;\n const modelStatusSubscription = this.model.statusChanges\n .pipe(debounceTime(500))\n .subscribe((statusEvent: LMModelStatusEvent) => {\n\n this.allowUpdate = (this.formDataLoadedComplete && statusEvent.isDirty);\n // must wait until dataView is in before making toolbar button visible\n const dataView: LMDataView = this.getDataView();\n if (dataView) {\n this.updateToolbarState(dataView, this.allowUpdate, true);\n this.contentModified.emit(null);\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'form.statusChanges', 'end' ]);\n });\n\n this.subscriptionArray.push(modelStatusSubscription);\n }\n\n public validateConfigRequiredFields(configRequiredFields: Array): boolean {\n // NOTE: validation of config required fields take place on the client, although if a field is configured for required\n // and is within a visible when (false), the validation will take place on the server as that field will not be a\n // member of the configRequiredFields array\n\n this.model.resetFieldErrors();\n\n // 'Field {0} is required by configuration' when field does not have listeners, uses the dialog to display\n // 'Field is required by configuration' when field has listeners, message displays under the field\n if (configRequiredFields) {\n for (let index = 0, len = configRequiredFields.length; index < len; index++) {\n const bindId = configRequiredFields[index];\n const modelField = this.model.getField(bindId);\n\n // Compound field combined value isn't guaranteed to be set correctly when member field values are changed inline.\n // so, need to loop thru the member fields to determine if the compound field has a value\n // 1. If the field is a compound field, check that it has some values set.\n // 2. If the field isn't a compound field, only check if blank. If not blank, continue the loop\n if (modelField?.isCompoundField) {\n if (this.compoundFieldHasChangedValues(modelField)) {\n continue;\n }\n } else if (!modelField?.isBlank) {\n continue;\n }\n\n if (!this.model.setFieldError(bindId, Soho.Locale.translate('FieldRequiredByConfiguration'))) {\n // no listeners, so display with dialog\n const message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldLabelIsRequiredByConfiguration'),\n this.lmFormatUtilService.formatMessageRule(modelField.specLabel, this.model));\n this.lmErrorUtilService.handleError(message, undefined, undefined, Soho.Locale.translate('Error'));\n }\n return false;\n }\n }\n\n return true;\n }\n\n private compoundFieldHasChangedValues(field: LMModelField): boolean {\n // safety\n if (!field?.isCompoundField) {\n return field.isBlank;\n }\n\n if (field.members?.length < 1) {\n return false;\n }\n\n let hasValue = false;\n field.members.forEach((memberFieldId) => {\n const memberField = this.model.getField(memberFieldId);\n if (memberField !== undefined && memberField !== null && !memberField.isBlank) {\n hasValue = true;\n }\n });\n\n return hasValue;\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n const pagingUrls: LMFormPagingUrls = (this.model) ? this.model.getPagingUrls() : undefined;\n const formSpec: LMFormSpec = this.formSpec;\n\n const formRequestUrlTemplate = this.formUrlInfo && this.formUrlInfo.formRequestUrl ? urltemplate.parse(this.formUrlInfo.formRequestUrl) : undefined;\n const formRequestUrl = (formRequestUrlTemplate && this.model) ? formRequestUrlTemplate.expand({ resourceId: this.model.formResourceId }) : '';\n const compositeFormContextFormName: string = (formSpec && formSpec.busFormSpec.formType === 'Composite' && formSpec.busFormSpec.contextForm) ?\n this.formSpec.busFormSpec.contextForm.busFormSpec.name : undefined;\n let message = formSpec ? '' : 'SPEC NOT LOADED YET. ';\n message += this.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n message += this.model ? '' : 'MODEL NOT LOADED YET. ';\n const panelSpec: LMCompositePanelSpec = additionalInfo && additionalInfo.panelSpec ? additionalInfo.panelSpec as LMCompositePanelSpec : undefined;\n const contextFormSpec: LMBusFormSpec = additionalInfo && additionalInfo.contextFormSpec ? additionalInfo.contextFormSpec as LMBusFormSpec : undefined;\n message += panelSpec ? 'Has A Panel Spec. ' : '';\n\n const resourceInfo = this.formSpec && this.formSpec.busFormSpec && this.formSpec.busFormSpec.resourceInfo ? this.formSpec.busFormSpec.resourceInfo : undefined;\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = formSpec ? formSpec.busFormSpec.personalization : undefined;\n compConfigInfo['configuration'] = formSpec ? formSpec.busFormSpec.configuration : undefined;\n compConfigInfo['configStamp'] = formSpec ? formSpec.busFormSpec.configStamp : 0;\n compConfigInfo['classConfigStamp'] = formSpec ? formSpec.busFormSpec.classConfigStamp : 0;\n\n const formInfo: LMComponentInfo = {\n status: this.getStatus({ isDirty: this.model ? this.model.isDirty : false, hasError: this.model ? this.model.hasError : false }),\n componentType: 'FORM',\n name: formSpec && formSpec.busClassSpec ? formSpec.busFormSpec.name : undefined,\n busClassName: formSpec && formSpec.busClassSpec ? formSpec.busClassSpec.name : undefined,\n userWebRequestId: this.getUserWebRequestId(),\n module: formSpec ? formSpec.busClassSpec.module : undefined,\n contextFormName: compositeFormContextFormName,\n type: formSpec ? formSpec.busFormSpec.formType : 'Standard',\n developer: formSpec ? formSpec.developer : undefined,\n isWizard: formSpec ? formSpec.busFormSpec.isWizard : undefined,\n panelNavigation: formSpec ? formSpec.busFormSpec.panelNavigation : undefined,\n panelSpec: panelSpec ? panelSpec : undefined,\n contextFormSpec: contextFormSpec ? contextFormSpec : undefined,\n configInfo: compConfigInfo,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n\n lpl: formSpec ? formSpec.busFormSpec.lpl : undefined,\n resourceInfo,\n formRequestUrl,\n tenant: this.lmContextService.getContext() ? this.lmContextService.getContext().dataArea : undefined,\n\n message: message.length > 0 ? message : undefined,\n };\n\n if (pagingUrls) {\n formInfo.nextRecordUrl = pagingUrls.nextRecordUrl;\n formInfo.previousRecordUrl = pagingUrls.previousRecordUrl;\n formInfo.reloadRecordUrl = pagingUrls.reloadRecordUrl;\n }\n\n return formInfo;\n }\n\n public getComponentPlaceHolder() {\n return this.placeHolder;\n }\n\n loadComponentState(): void {\n if (this.lmContextService.disablePageState()) {\n return;\n }\n\n if (!this.useFormState) {\n return;\n }\n\n if (!this.formUrlInfo) {\n let error = `LMCLIENT UI ALERT: FORMURLINFO ERROR: LMFormComponent.loadComponentState: formUrlInfo is not set for form ${this.formSpec.resourceId}\\n`;\n error += `isActionForm ${this.isActionForm}\\n`;\n error += `isSearchForm ${this.isSearchForm}\\n`;\n error += `isPageContextForm ${this.isPageContextForm}\\n`;\n error += `isResponseRequired ${this.isResponseRequired}\\n`;\n error += `isMenuLayoutForm ${this.isMenuLayoutForm}\\n`;\n error += `isCompactForm ${this.isCompactForm}\\n`;\n error += `isSubForm ${this.isSubForm}\\n`;\n\n console.error(error, [ this.formSpec ]);\n this.lmLoggerService.logToServerConsole(error);\n return;\n }\n\n // for now, lets not load form state if we are in a create situation.\n if (this.lmContextService.getClearPageState() || this.model.isCreateAction) {\n this.clearComponentState(true);\n this.lmContextService.setClearNextPageState(false);\n }\n\n if (this.formSpec.postRegistration) {\n // fetch the anonymous page state - postRegistration is sticky because it is a url param.\n // example one registered i may leave the screen to do a create from a list and then use the back button to\n // return to the step or wizard. Because postReg=true is in the url params, this.formSpec.postRegistration\n // will be set to true.\n const anonymousKeyParams: LMFormStateKeyParams = this.buildFormStateKeyParams();\n anonymousKeyParams.actorId = this.formSpec.anonymousId;\n anonymousKeyParams.resourceId = this.buildAnonymousResourceId();\n anonymousKeyParams.routeResourceId = anonymousKeyParams.resourceId;\n const anonymousState = this.lmFormStateService.getFormState(anonymousKeyParams);\n const anonymousStateEmpty = Object.keys(anonymousState).length === 0;\n if (anonymousStateEmpty) { // checks if empty json\n // anonymous state not found or empty, this should mean that the it was already\n // retrieved, used and then deleted.\n this.formStateKeyParams = null;\n this.formState = this.lmFormStateService.getFormState(this.buildFormStateKeyParams());\n } else {\n // found an anonymous state. The user must of just moved from anonymous to registered,\n // use it and then delete it!\n this.formState = this.lmFormStateService.getFormState(anonymousKeyParams);\n this.lmFormStateService.deleteFormState(anonymousKeyParams);\n this.formStateKeyParams = null;\n }\n } else {\n this.formState = this.lmFormStateService.getFormState(this.buildFormStateKeyParams());\n }\n\n this.formPersonalization = this.lmFormPersonalizationService.getFormPersonalization(this.buildFormPersonalizationKeyParams());\n this.globalStorageModel = this.lmGlobalStorageService.getItem(this.buildGlobalStorageKeyParams());\n }\n\n saveComponentState(includeSubComponent?: boolean) {\n if (!this.useFormState) {\n return;\n }\n this.lmLoggerService.time({ id: 'LMForm.saveComponentState() ' + this.instanceId });\n\n // session storage\n this.lmFormStateService.saveFormState(this.buildFormStateKeyParams(), this.formState);\n\n // local storage\n this.lmFormPersonalizationService.saveFormPersonalization(this.buildFormPersonalizationKeyParams(), this.formPersonalization);\n if (includeSubComponent && this.formContentComponent) {\n this.formContentComponent.saveComponentState();\n }\n\n this.lmLoggerService.timeEnd('LMForm.saveComponentState() ' + this.instanceId, [ includeSubComponent ]);\n }\n\n clearComponentState(includeSubComponent?: boolean): void {\n const routeResourceId = this.formSpec.anonymousId === this.lmContextService.getActorId()\n ? this.buildAnonymousResourceId() : this.formUrlInfo.resource.resourceId;\n\n this.lmStateHelperService.clearFormComponentState(\n routeResourceId, this.formSpec, includeSubComponent);\n }\n\n private handleTransactionStatus(result: LMActionResult) {\n // NOTE: internal method - RECURSIVE\n const handleTransactionStatusForFieldId = ( (actionResult: LMActionResult, isSecondPass = false) => {\n let fieldHasObservers = false;\n\n // safety\n if (actionResult.fieldId) {\n fieldHasObservers = this.formModel.setFieldError(actionResult.fieldId, actionResult.message);\n\n // LMCLIENT-25416: temporarily log error until LMErrorUtilService dialog can display details\n if (!fieldHasObservers) {\n this.lmLoggerService.error([ actionResult.fieldId, actionResult.message ]);\n }\n }\n\n if (!fieldHasObservers) {\n // first pass: if a composite form and lazy load, then find the panel the field id is on and activate it\n if (!isSecondPass && actionResult.fieldId && this.canActivatePanel(actionResult.fieldId)) {\n this.zone.runOutsideAngular( () => {\n setTimeout(() => {\n this.zone.run( () => {\n // call the method again to set the error on the field\n handleTransactionStatusForFieldId(actionResult, true);\n });\n }, 1);\n });\n\n } else {\n this.lmErrorUtilService.handleError(actionResult.message, actionResult.details, actionResult.status);\n }\n }\n });\n\n // method starts here\n if (result.status === AppConstants.VIEW_EXCEPTION) {\n handleTransactionStatusForFieldId(result);\n\n } else if (result.status !== AppConstants.STATUS_COMPLETED && result.status !== AppConstants.CONFIRMATION_REQUIRED) {\n // If the status is confirmation required, it may be due to the user cancelling out of runtime confirmation.\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n }\n }\n\n private openDocumentResource(formButton: LMButtonLayout): void {\n const dataView = this.model.getData();\n const documentResource = new DocumentResource({\n resourceId: formButton.resourceId,\n dataView\n }, '');\n let url: string = this.lmUrlUtilService.buildUrl({\n resource: documentResource\n });\n\n let option: string;\n if (formButton.hasMimeType) {\n let mimeTypeFieldValue: string;\n\n if (formButton.mimeTypeField) {\n const mimeTypeField: LMField = dataView.fields[formButton.mimeTypeField];\n mimeTypeFieldValue = mimeTypeField.value as string;\n } else {\n mimeTypeFieldValue = formButton.mimeType;\n }\n\n if (mimeTypeFieldValue) {\n const urlParams: LMUrlParams = {};\n urlParams['contentType'] = mimeTypeFieldValue;\n\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n option = (mimeTypeFieldValue === 'application/pdf') ? 'external' : undefined;\n }\n } else if (formButton.fieldId) {\n const documentField = dataView.fields[formButton.fieldId];\n option = (documentField && documentField.mimeType && documentField.mimeType === 'application/pdf') ? 'external' : undefined;\n }\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n\n public toolbarMoreMenuSettings: SohoPopupMenuOptions = {\n beforeOpen: this.onBeforeFormToolbarMoreMenuOpen,\n attachToBody: true\n };\n\n public markForCheck() {\n this.changeDetectorRef.markForCheck();\n }\n\n // --------------------------------------------------------------------------------------------\n // methods for model cache\n /**\n * Will prompt user to apply or discard changes if indicated; otherwise, will auto-apply the changes.\n */\n private checkApplyModelCache(globalStorageModel: LMGlobalStorageModel) {\n if (!globalStorageModel || !globalStorageModel.modelCache) {\n return;\n }\n\n if (globalStorageModel.modelCache.autoApply === true) {\n // do not display prompt dialog\n this.applyModelCache(globalStorageModel);\n\n } else {\n // display prompt dialog so user can decide whether to apply or discard changes\n // TODO: dialog message text needs work to differentiate between the Leave/Stay dialog\n this.displayPendingChangesExist().then((applyChanges: boolean) => {\n if (applyChanges) {\n this.applyModelCache(globalStorageModel);\n }\n });\n }\n }\n\n /**\n * Applies the model cache to current model and will display a toast message if auto apply was not set.\n */\n private applyModelCache(globalStorageModel: LMGlobalStorageModel) {\n this.model.applyCache(globalStorageModel.modelCache);\n\n // display a toast message only if a prompt was displayed\n if (globalStorageModel.modelCache.autoApply !== true) {\n const message = Soho.Locale.translate('PreviousPendingChangesApplied');\n this.lmGlobalUtilService.displayToastMessage('', message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n\n /**\n * Captures or clears the model cache based on the model state\n * @param autoApply\n */\n private saveModelCache(autoApply?: boolean) {\n if (!this.isModelCacheAllowed) {\n return;\n }\n\n this.lmLoggerService.time({ id: 'LMForm.saveModelCache() ' + this.instanceId });\n\n let doSave = false;\n\n // if dirty or an error, the store the cache\n if (this.model.isDirty || this.model.hasError) {\n this.modelCache = this.model.getCache(autoApply);\n doSave = true;\n\n } else if (this.modelCache) {\n // all pristine, so remove cache if it exists\n this.modelCache = undefined;\n doSave = true;\n }\n\n if (doSave) {\n this.saveComponentState(true);\n\n this.globalStorageModel.lookupFieldId = this.lookupFieldId;\n this.globalStorageModel.modelCache = this.modelCache;\n this.globalStorageModel.timeStamp = Date.now();\n this.globalStorageModel.resourceId = this.model.resourceId;\n this.lmGlobalStorageService.saveItem(this.buildGlobalStorageKeyParams(), this.globalStorageModel);\n }\n\n this.lmLoggerService.timeEnd('LMForm.saveModelCache() ' + this.instanceId);\n }\n\n /**\n * Determines which form types will capture and store the model cache\n * @returns\n */\n private get isModelCacheAllowed(): boolean {\n return !(this.isActionForm\n || this.isSearchForm\n || this.isPageContextForm\n || this.isResponseRequired\n || this.isMenuLayoutForm\n || this.isCompactForm\n || this.isSubForm);\n }\n\n public buildLoadRecordUrl(resourceId: string, actionName: string) {\n const urlCompiledTemplate = urltemplate.parse(this.formUrlInfo.initialDataUrl);\n\n if (this.fromDataView) {\n if (this.formUrlInfo.sourceResource?.resourceType === 'relation') {\n // related form, send in bus class name for resourceId, or we get an incorrect url\n return urlCompiledTemplate.expand({\n resourceId: this.formSpec.busClassSpec.name,\n sourceResourceId: this.fromDataView.resourceId,\n actionName\n });\n }\n\n // oto related form resource to another table or oto related form resource to the same table\n return urlCompiledTemplate.expand({\n resourceId: this.fromDataView.resourceId,\n actionName\n });\n }\n\n return urlCompiledTemplate.expand({ resourceId, actionName });\n }\n\n public waitForFormToBeReady(): Observable {\n return this.lmFormService.waitForFormToBeReady();\n }\n}\n","\n

        \n CURRENTLY UNSUPPORTED SOHO XI PATTERN DETECTED\n

        \n \n
        \n\n
        \n \n
        \n \n \n \n
        \n
        \n
        \n\n
        \n","// tslint:disable\n/// \n/// \n// tslint:enable\n\nimport { LMFormContext } from '@form/services/lm-form-action-util.service';\nimport { FormRequestType } from '@utils/app.constants';\nimport { WidgetSize } from 'ids-enterprise-ng';\n\nexport interface LMFormContentBase {\n runSaveAction (formContext: LMFormContext, actionSpec: LMActionSpec, dataView: LMDataView);\n saveComponentState(): void;\n}\n\nexport interface LMFormRequest {\n requestType: FormRequestType;\n dataView?: LMDataView;\n fieldId?: string;\n formInvokeName?: string;\n drillName?: string;\n isBusinessClassCompute?: boolean;\n\n /**\n * the action full name\n */\n action?: string;\n sourceResourceType?: string;\n sourceResourceId?: string;\n\n param1?: any;\n param2?: any;\n param3?: any;\n\n scheduleView?: LMDataView;\n reportDataView?: LMDataView;\n viewReport?: boolean;\n\n computeType?: string;\n}\n\ntype StepPanelProgress =\n 'NONE' | 'IN_PROGRESS' | 'COMPLETED';\n\nexport interface LandmarkPanel {\n id?: string;\n automationId?: string;\n index?: number;\n type?: string; // todo type me\n icon?: string; // todo type me\n iconInfo?: string; // this is alert mouseover text\n\n /**\n * todo: sjw - is title needed? I noticed lm-this used?\n * todo: sjw - title should be a LMMessageRule. It will need to be processed every fromDataView change\n */\n title?: string;\n\n initialized?: boolean; // whether the component has been initialized for lazy loading form panels\n /** @deprecated use needsReload instead */\n reload?: boolean; // whether the components data needs to be reloaded\n\n activated?: boolean; // whether or not the component should be activated\n needsReload?: boolean; // whether the components data needs to be reloaded\n panelDataState?: LMPanelDataState;\n\n hidden?: boolean; // todo: sjw is loaded used anywhere\n loaded?: boolean; // todo: sjw is loaded used anywhere\n disabled?: boolean; // todo: sjw is loaded used anywhere\n\n fromDataView?: LMDataView;\n\n /**\n * todo: sjw are visible valid and validity all needed? seems redundant\n */\n isVisible?: boolean;\n isValid?: boolean;\n validity?: Array;\n visibility?: Array;\n listSpec?: LMListSpec;\n filterListSpecs?: Array;\n listOptions?: LMListSpec;\n formSpec?: LMFormSpec;\n busFormPanel?: LMCompositePanelSpec;\n layout?: any; // todo dpb type me\n onCompositeForm?: boolean;\n url?: LMMessageRule;\n sections?: Array;\n dashBoardPanes?: Array;\n hasNestedCardViewDetailSections?: boolean;\n formOptions?: LMFormOptions;\n\n /**\n * card panel display fields? doesn't seem right, the display fields\n * should come about because of the jsonspec cardview definition.\n */\n displayFields?: Array;\n content?: any; // todo: sjw is content used anywhere\n overviewNavigation?: LMOverviewNavigation;\n hasSubPanels?: boolean;\n saveOnNext?: boolean;\n finishForm?: boolean;\n stepProgress?: StepPanelProgress,\n acknowledged?: boolean,\n stepAlert?: 'RED' | 'YELLOW' | 'GREEN' | 'BLUE' | 'ICON' | 'NONE',\n stepAlertMouseOver?: string,\n selected?: boolean;\n linearVisited?: boolean,\n /**\n * Cube parameters from Dashboard panel\n */\n displayChart?: string;\n\n subPanels?: Array;\n isSubPanel?: boolean;\n displayWhenIndex?: number;\n parentId?: string;\n subPanelDataView?: LMDataView;\n mouseOverText?: string;\n\n specialActions?: Array;\n panelText?: LMMessageRule;\n panelHeader?: LMMessageRule;\n\n implementsManualLoad?: boolean;\n manualLoadInfo?: LMManualLoadInfo;\n\n dashboardColumns?: 3 | 4;\n widgetWidth?: WidgetSize;\n widgetHeight?: WidgetSize;\n\n spanningColumns?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n useTwelveColumnGrid?: boolean;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LMModel, LMModelServiceAdapter } from './model';\nimport { LMButtonEvent, LMFieldSubscriptionService, LMTextEvent } from '@field/index';\nimport { LMFormState } from '@states/models';\nimport { TemplateRecordInfo } from './lm-form-content-template.component';\nimport { LMFormatUtilService, LMLoggerService } from '@services/index';\nimport { AppConstants, LMGlobalUtilService } from '@utils/index';\nimport * as urltemplate from 'url-template';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\n\n@Component({\n selector: 'lm-template-form-record',\n providers: [\n LMFieldSubscriptionService,\n LMModelServiceAdapter\n ],\n template: `\n `\n})\n\nexport class LMTemplateFormRecordComponent {\n @Input() info: TemplateRecordInfo;\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() formOptions: LMFormOptions = null;\n\n @Input() specFields: LMSpecFields;\n @Input() layout: LMFormLayout;\n @Input() model: LMModel;\n @Input() formState: LMFormState;\n\n @Output() fieldEvent: EventEmitter = new EventEmitter();\n\n constructor(\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmNavigationService: LMNavigationService,\n private lmLoggerService: LMLoggerService\n ) {\n }\n\n onFieldEvent(event) {\n if ('ButtonEvent' === event.eventType) {\n const buttonEvent = event as LMButtonEvent;\n\n this.runFormButtonAction(buttonEvent.layoutObject);\n return;\n\n } else if ('TextLinkEvent' === event.eventType) {\n const linkEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n\n } else {\n this.runFormButtonAction(linkEvent.layoutObject);\n }\n\n return;\n }\n\n this.lmLoggerService.error([ 'lm-template-form-record: unsupported event', event ]);\n }\n\n // TODO: same as LMFormComponent; need a common service\n private runFormButtonAction(formButton: LMButtonLayout) {\n switch (formButton.type) {\n // case AppConstants.BUTTON_TYPE_ACTION:\n // this.runAction(formButton.actionSpec);\n // break;\n\n case AppConstants.BUTTON_TYPE_NAVIGATION:\n this.runNavigation(formButton.navigation, formButton.showAsPdf);\n break;\n\n // case AppConstants.BUTTON_TYPE_LIST_REFERENCE:\n // // TODO:\n // break;\n //\n // case AppConstants.BUTTON_TYPE_RELATED:\n // this.runButtonRelatedAction(formButton.relActionUrl, formButton.name);\n // break;\n //\n // case AppConstants.BUTTON_TYPE_FORMINVOKE:\n // // just need form url and csk params. no other params are required for a form invoke.\n // let formUrl = this.lmUrlUtilService.buildUrl({\n // context: this.formSpec.context,\n // resource: this.formResource\n // });\n // this.lmNavigationService.runFormInvoke(formUrl, formButton.formInvokeName, this.model.getData());\n // break;\n\n case AppConstants.BUTTON_TYPE_HTTPURL:\n const option: string = (formButton.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(formButton.httpUrl, this.info.model.getData());\n\n if (url) {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n break;\n\n // case AppConstants.BUTTON_TYPE_SUBFORM:\n // // TODO:\n // break;\n //\n // case AppConstants.BUTTON_TYPE_VIEWDOCUMENT:\n // case AppConstants.BUTTON_TYPE_SHOWEDITOR:\n // this.openDocumentResource(formButton);\n // break;\n // case AppConstants.BUTTON_TYPE_EXPORTDOCUMENT:\n // // TODO:\n // break;\n\n default:\n this.lmLoggerService.error([ 'lm-template-form-record: unsupported button action', formButton ]);\n break;\n }\n }\n\n // TODO: same as LMFormComponent; need a common service\n private buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n const option: string = (link.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(link.httpUrl, this.info.model.getData());\n\n if (url) {\n this.lmGlobalUtilService.navigate(url, null, option);\n\n }\n } else if (link.linkNavigation) {\n this.runNavigation(link.linkNavigation, link.showAsPdf);\n\n }\n }\n\n // TODO: same as LMFormComponent; need a common service\n private runNavigation(navigation: string, showAsPdf: boolean) {\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: this.info.model.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf });\n }\n}\n","export * from './lm-model';\nexport * from './lm-model-field';\nexport * from './lm-model-service-adapter';\nexport * from './lm-model-state';\n","import { LMModel } from './lm-model';\nimport { AppConstants, LMTransformOptions } from '@utils/index';\nimport { Subject } from 'rxjs';\n\nexport class\nLMModelField {\n private _applyState$ = new Subject();\n private _errorMessage$ = new Subject();\n\n private _decSize: number;\n private _displayFieldHistory = true;\n private _filterType: LMFilterFieldOperator;\n private _defaultFilterType: LMFilterFieldOperator;\n private _fireInitialValue = false;\n private _grpDelimiter: string;\n private _isCompoundField = false;\n private _isNestedCompoundField = false;\n private _isMultiSelectKeyField = false;\n private _isManualRepField = false;\n private _label: any;\n private _maxSelected: number;\n private _members: Array;\n private _missingImage = false;\n private _multiPartFile: File | Blob;\n private _mutable = true;\n private _mutexFieldId: string;\n private _originalValue: any;\n private _precision: number;\n // tri-state: null, false, true; needs to be initialized to null\n private _required: boolean = null;\n private _size: number;\n private _stateValues: Array;\n private _value: any;\n private _docTitleFieldId: string;\n private _mimeTypeFieldId: string;\n private _mimeType: string;\n private _filterCriteria: LMFilterFieldCriteria;\n private _isNumericArray: boolean;\n private _enteredFilterValue: string;\n private _dependentTimeZone: string[] = [];\n\n constructor(private specField: LMSpecField,\n private lmModel: LMModel) {\n }\n\n // private methods\n /**\n * Initialize properties\n */\n private initialize() {\n // boolean properties are initialized appropriately (true, false, or null)\n // all other properties are set to undefined\n this._decSize = undefined;\n this._displayFieldHistory = true;\n // TODO: Need soho controls to add a reset for filter type, since we don't have access to the drop down.\n // For now, don't reset the value here so the filter type will match what is displayed on the UI\n // https://github.com/infor-design/enterprise/issues/1181\n // this._filterType = undefined;\n this._fireInitialValue = false;\n this._grpDelimiter = undefined;\n this._isCompoundField = false;\n this._isNestedCompoundField = false;\n this._isMultiSelectKeyField = false;\n this._isManualRepField = false;\n this._label = undefined;\n this._maxSelected = undefined;\n this._members = undefined;\n this._missingImage = false;\n this._multiPartFile = undefined;\n this._mutable = true;\n this._mutexFieldId = undefined;\n this._originalValue = undefined;\n this._precision = undefined;\n this._required = null;\n this._size = undefined;\n this._stateValues = undefined;\n this._value = undefined;\n this._docTitleFieldId = undefined;\n this._mimeTypeFieldId = undefined;\n this._mimeType = undefined;\n this._filterCriteria = undefined;\n this._isNumericArray = false;\n }\n\n /**\n * Transforms localized data into Landmark data\n * @param value\n * @param specField\n * @param transformOptions\n * @returns\n * @private\n */\n private _toDataValue(value: any, specField: LMSpecField, transformOptions?: LMTransformOptions): any {\n // NOTE: EXCEPTION - state field values are not transformed in the model; they need to use the data value\n // because the value on each member/option also uses the data value\n if (specField.hasOwnProperty('stateValues') || specField.hasUserDefinedStates || this.isCompoundField) {\n return value;\n }\n\n return this.lmModel.lmModelServiceAdapter.toDataValue(value, specField.type, transformOptions);\n }\n\n // private populateMultiSelectStateValues(dvField: LMField, stateValues: Array, isSearchForm: boolean): Array {\n // if (isSearchForm) {\n // // Dropdowns should show up as multiselect on a search form, so get the correct values formatted and selected\n // let values = dvField.value as Array;\n // if (!Array.isArray(values)) {\n // values = [ values ];\n // }\n // return this.lmModel.lmModelServiceAdapter.fieldStatesToMultiOptionsArray(stateValues, values);\n // }\n //\n // return stateValues;\n // }\n\n // public getters/setters for member variables\n public get applyState(): Subject {\n return this._applyState$;\n }\n\n public get displayFieldHistory() {\n return this._displayFieldHistory;\n }\n\n public get errorMessage(): Subject {\n return this._errorMessage$;\n }\n\n public get evaluateIsDirty(): boolean {\n if (this.specField.type === AppConstants.BINARYDOCUMENT) {\n return !!(this.multiPartFile || this._originalValue !== this._value);\n }\n\n // LMCLIENT-30041: need to re-join the member values to properly evaluate if the multi-select field is dirty as\n // this._value is an array of selected values and this._originalValue is a string of selected values with the delimiter\n if (this.specField.hasUserDefinedStates && this.specField.isMultiselect && !this._isMultiSelectKeyField) {\n const delimiter = this._grpDelimiter || '';\n const memberFieldSize = this.lmModel.getField(this.members[0]).size;\n const val = this._value.map((memberValue: string) => {\n if (!delimiter) {\n // delimiter is undefined. This means that spaces have been added to each value up to the field size. Pad out the member\n // field values to match\n\n if (this.isNumericArray) {\n // member field values are numeric, pad with 0s\n return memberValue.padStart(memberFieldSize, '0');\n }\n\n // member field value is a string, pad with spaces\n return memberValue.padEnd(memberFieldSize);\n }\n return memberValue;\n }).join(delimiter);\n return !(this._originalValue === val);\n }\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n return !(this._originalValue == this._value);\n }\n\n public get filterType(): LMFilterFieldOperator {\n return this._filterType;\n }\n\n public set filterType(type: LMFilterFieldOperator) {\n this._filterType = type;\n }\n\n public get alphaFieldDefaultType(): LMFilterFieldOperator {\n return this._defaultFilterType;\n }\n\n public get filterCriteria(): LMFilterFieldCriteria {\n return this._filterCriteria;\n }\n\n public get fireInitialValue() {\n return this._fireInitialValue;\n }\n\n public set enteredFilterValue(value: string) {\n this._enteredFilterValue = value;\n }\n public get enteredFilterValue(): string {\n return this._enteredFilterValue;\n }\n\n public get groupFieldDelimiter() {\n return this._grpDelimiter;\n }\n\n public set imageUrl(value: any) {\n this._value = this.lmModel.lmModelServiceAdapter.toImageUrlValue(value);\n }\n\n public get isCompoundField() {\n return this._isCompoundField;\n }\n\n public get isNestedCompoundField() {\n return this._isNestedCompoundField;\n }\n\n public get isKeyFieldMultiselect() {\n return this._isMultiSelectKeyField;\n }\n\n public get isManualRep() {\n return this._isManualRepField;\n }\n\n public get isNumericArray() {\n return this._isNumericArray;\n }\n\n public get label() {\n return this._label;\n }\n\n public get maxSelected() {\n return this._maxSelected;\n }\n\n public get members() {\n return this._members;\n }\n\n public get missingImage() {\n return this._missingImage;\n }\n\n public get multiPartFile() {\n return this._multiPartFile;\n }\n\n // TODO: unable to set type of File?\n public set multiPartFile(file: File | Blob) {\n this._multiPartFile = file;\n }\n\n public get mutable() {\n return this._mutable;\n }\n\n public get mutexFieldId() {\n return this._mutexFieldId;\n }\n\n public get originalValue(): any {\n return this._originalValue;\n }\n\n public get precision() {\n return this._precision;\n }\n\n public get required() {\n return this._required;\n }\n\n public get size() {\n return this._size;\n }\n\n public get specLabel() {\n return (this.specField.label && this.specField.label.resourceValue)\n ? this.specField.label\n : this.specField.bindId;\n }\n\n public get states() {\n return this._stateValues;\n }\n\n public set states(stateValues) {\n this._stateValues = stateValues;\n }\n\n /**\n * Returns the localized value (display)\n * @returns\n */\n public get value() {\n return this._value;\n }\n\n /**\n * Sets the localized value\n * @param value\n */\n public set value(value: any) {\n if (this.specField.type === AppConstants.BOOLEAN) {\n this._value = this.lmModel.lmModelServiceAdapter.toBoolean(value);\n } else {\n this._value = value;\n }\n\n if (this._isCompoundField) {\n // When (1) The user enters or updates value manually,\n // or (2) The user selects the values from a select list,\n // Do not process member fields if returning from compact field members dialog\n\n // Only model is updated and not dataview\n // model field has the information if it is a group field and what the members are.\n this.lmModel.lmModelServiceAdapter.parseGroupFieldMembers(this, this.lmModel);\n }\n }\n\n public get properties(): LMModelField {\n const output = {};\n\n // skip any methods; keep booleans, numbers, and strings\n Object.keys(this).forEach((prop) => {\n if (typeof this[ prop ] === 'boolean'\n || typeof this[ prop ] === 'number'\n || typeof this[ prop ] === 'string'\n || Array.isArray(this[ prop ])) {\n output[ prop ] = this[ prop ];\n }\n });\n\n return output as LMModelField;\n }\n\n public set properties(modelFieldCache: LMModelField) {\n this.initialize();\n\n Object.keys(modelFieldCache).forEach((prop) => {\n this[ prop ] = modelFieldCache[ prop ];\n });\n }\n\n // Determines if the current value of the field is the blank value\n public get isBlank(): boolean {\n const isValueBlank = this.lmModel.lmModelServiceAdapter.isBlank(this.specField.type, this._value);\n\n if (this.specField.type === AppConstants.BINARYDOCUMENT) {return !this.multiPartFile && isValueBlank;}\n\n return isValueBlank;\n }\n\n public get docTitleFieldId() {\n return this._docTitleFieldId;\n }\n\n public set docTitleFieldId(docTitleFieldId) {\n this._docTitleFieldId = docTitleFieldId;\n }\n\n public get mimeTypeFieldId() {\n return this._mimeTypeFieldId;\n }\n\n public set mimeTypeFieldId(mimeTypeFieldId) {\n this._mimeTypeFieldId = mimeTypeFieldId;\n }\n\n public get mimeType() {\n return this._mimeType;\n }\n\n public set mimeType(mimeType) {\n this._mimeType = mimeType;\n }\n\n public set isManualRepField(isManualRepField: boolean) {\n this._isManualRepField = isManualRepField;\n }\n\n public set dependentTimeZone(fieldIds: string[]) {\n this._dependentTimeZone = fieldIds;\n }\n\n public get dependentTimeZone(): string[] {\n return this._dependentTimeZone;\n }\n\n // public methods\n public destroy() {\n this._applyState$.unsubscribe();\n this._applyState$ = null;\n\n this._errorMessage$.unsubscribe();\n this._errorMessage$ = null;\n }\n\n /**\n * Returns the data value; (Landmark)\n * @returns\n */\n public getData(): any {\n return this._value;\n }\n\n public setBlank() {\n this.value = this.lmModel.lmModelServiceAdapter.toBlankValue(this.specField.type);\n }\n\n // called from components where ngModel is split\n public toDataValue(value: any, transformOptions?: LMTransformOptions) {\n // use public setter here\n this.value = this._toDataValue(value, this.specField, transformOptions);\n }\n\n public get modelSpecField(): LMSpecField {\n return this.specField;\n }\n\n /**\n * Sets dataView field information onto the model field\n * @param dvField\n * @param dvFields\n * @param opts\n */\n public setData(dvField: LMField, dvFields: LMFields, opts?: LMModelSetFieldsOptions) {\n let fieldIsMutable = false;\n\n if (opts?.resetData) {\n this.initialize();\n\n if (dvField.hasOwnProperty('value')) {\n this._originalValue = dvField.value;\n }\n }\n\n if (opts?.filterCriteria) {\n this._filterCriteria = opts.filterCriteria.find(criteria => criteria.fieldId === this.specField.bindId);\n } else {\n this._filterCriteria = undefined;\n }\n\n if (opts?.alphaDefaultFilterCondition) {\n this._defaultFilterType = opts.alphaDefaultFilterCondition;\n }\n\n if (dvField.hasOwnProperty('size')) {\n this._size = dvField.size;\n }\n\n // TODO: evaluate - this._decSize is not referenced\n if (dvField.hasOwnProperty('decSize')) {\n this._decSize = dvField.decSize;\n }\n\n if (dvField.hasOwnProperty('precision')) {\n this._precision = dvField.precision;\n }\n\n if (dvField.hasOwnProperty('disableFieldHistory')) {\n this._displayFieldHistory = false;\n }\n\n if (dvField.hasOwnProperty('fireInitialValue')) {\n this._fireInitialValue = dvField.fireInitialValue;\n }\n\n if (dvField.hasOwnProperty('label')) {\n this._label = dvField.label;\n }\n\n // tri-state: null, false, true\n if (dvField.hasOwnProperty('required')) {\n // strict equality due to tri-state\n this._required = this.lmModel.lmModelServiceAdapter.modelActionState.isRequired === true && dvField.required === true;\n }\n\n if (dvField.hasOwnProperty('mutable')) {\n fieldIsMutable = this.lmModel.lmModelServiceAdapter.getMutableState(this.specField, dvField);\n this._mutable = fieldIsMutable;\n }\n\n if (dvField.hasOwnProperty('missingImage')) {\n this._missingImage = dvField.missingImage;\n }\n\n if (dvField.hasOwnProperty('mutexFieldId')) {\n this._mutexFieldId = dvField.mutexFieldId;\n }\n\n if (dvField.hasOwnProperty('type')) {\n this._isCompoundField = this.lmModel.lmModelServiceAdapter.isCompoundField(dvField, this.specField.isMultiselect);\n }\n\n if (dvField.hasOwnProperty('nested')) {\n this._isNestedCompoundField = true;\n }\n\n if (dvField.hasOwnProperty('delimiter')) {\n this._grpDelimiter = dvField.delimiter;\n }\n\n if (dvField.hasOwnProperty('members')) {\n // Group fields amd multiSelect fields have members\n this._members = dvField.members;\n }\n\n if (\n this.specField.hasUserDefinedStates\n && this.specField.isMultiselect\n && Array.isArray(this._members)\n ) {\n // a specField indicating it has user-defined states\n // and is multi-select\n // and members exist on the the data view\n // so set the selected state values\n // the multi-select dropdown will retrieve the values when clicked\n\n this._maxSelected = this._members.length;\n\n const hasStateValues: boolean = (this._stateValues !== undefined);\n\n // if this._stateValues already exists, then use it and don't rebuild\n const stateValues: Array = (!hasStateValues) ? [] : this._stateValues;\n const values = [];\n\n if (this._members.length > 0) {\n const dvMember = dvFields[ this._members[ 0 ] ];\n this._isNumericArray = (dvMember.hasOwnProperty('isNumber') || typeof dvMember.value === 'number');\n }\n\n for (let index = 0, len = this._members.length; index < len; index++) {\n const dvMember = dvFields[ this._members[ index ] ];\n const blankOrZero = this._isNumericArray ? 0 : '';\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n if (dvMember && dvMember.value != blankOrZero) {\n values.push(dvMember.value.toString());\n\n // if this._stateValues does not exist, then populate the entries\n if (!hasStateValues && dvMember.stateValues) {\n dvMember.stateValues.forEach((state) => {\n stateValues.push(state);\n });\n\n } else if (!hasStateValues && dvMember.stateValues === undefined) {\n // maf when LMRK-86561 is complete, this can be removed\n // LMCLIENT-23932: A multiselect that is a transient field that has value derived from does not return\n // the stateValues for its members, so add the stateValues with dvMember.value as the label and value\n stateValues.push( { label: dvMember.value.toString(), value: dvMember.value.toString() } );\n }\n }\n }\n\n // sets the type for multiselect to array\n this._value = values;\n this._stateValues = this.lmModel.lmModelServiceAdapter.fieldStatesToMultiOptionsArray(stateValues, values);\n // return here as value is set\n return;\n\n }\n if (\n this.lmModel.isSearchForm\n && this.specField.hasUserDefinedStates\n && this.specField.isMultiselect\n && this._members === undefined\n ) {\n // This is a search form with a keyfield that is showing as a multiselect\n this._isMultiSelectKeyField = true;\n\n // dataview field will have values when we are navigating back to a list that has filterCriteria set on it\n if (dvField.hasOwnProperty('stateValues')) {\n this.states = dvField.stateValues;\n }\n\n } else if (\n this.specField.hasUserDefinedStates\n && !fieldIsMutable\n && !dvField.hasOwnProperty('stateValues')\n && !dvField.hasOwnProperty('mutexFieldId')\n ) {\n // a non-mutable specField indicating it has user-defined states\n // and has no state values on the data view\n // and is not a mutex field\n // so retrieve the state values\n\n // TODO: non-mutable specField indicating it has user-defined states\n // this.lmModel.lmModelServiceAdapter.lmLoggerService.error([this, '//TODO: non-mutable specField indicating it has user-defined states', this.specField.bindId]);\n\n } else if (\n this.specField.hasUserDefinedStates\n && fieldIsMutable\n && String(dvField.value).trim().length > 0\n && !dvField.hasOwnProperty('stateValues')\n ) {\n // a mutable specField indicating it has user-defined states\n // and the data view value length is > 0\n // and has no state values on the data view\n // so retrieve the state values\n\n // TODO: mutable specField indicating it has user-defined states\n // this.lmModel.lmModelServiceAdapter.lmLoggerService.error([ this, '//TODO: mutable specField indicating it has user-defined states', this.specField.bindId ]);\n\n } else if (\n dvField.hasOwnProperty('stateValues')\n && this.specField.hasUserDefinedStates\n && !this.specField.generated\n ) {\n // user-defined state field\n // don't add an empty entry as this stateValues array is for the dataView value\n // empty entries are done on the server in JSONConverter.java > fieldStateArrayForFieldValueNg()\n // and in lm-dropdown.component.ts when the user-defined result is processed\n this._stateValues = this.lmModel.lmModelServiceAdapter.fieldStatesToOptionsArray(dvField.stateValues, false);\n\n // maf - 07/31/2018 commenting out as not sure the following checks are needed\n // } else if (dvField.hasOwnProperty('stateValues') && this.specField.generated) {\n // // this is a member of an occurs field\n // // no-op\n //\n // } else if (dvField.hasOwnProperty('stateValues') && !this.specField.generated) {\n // // not sure what this will catch\n // this._stateValues = this.lmModel.lmModelServiceAdapter.fieldStatesToOptionsArray(dvField.stateValues, true);\n\n } else if (this.specField.hasOwnProperty('stateValues')) {\n // static state field\n // need to format the zero value for BCD and PERCENT types as they need to match\n // the dataView field value for the track dirty processing to work correctly.\n // empty entries are done in ViewBuilderBase.java > fieldAttributeToJsonObject()\n\n if (this.specField.type === AppConstants.BCD\n || this.specField.type === AppConstants.PERCENT) {\n // fix the zero value so it matches the dataView value\n for (let index = 0, len = this.specField.stateValues.length; index < len; index++) {\n const stateValue: LMStateValue = this.specField.stateValues[ index ];\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n if (stateValue.value == 0) {\n // using precision here as that is the property available for a state\n stateValue.value = this.lmModel.lmModelServiceAdapter.fieldStateFormatZeroValue(this.specField.type, dvField.precision);\n break;\n }\n }\n }\n\n // Add a blank entry for cube search form\n const tempStateValues = this.lmModel.lmModelServiceAdapter.fieldStatesToOptionsArray(this.specField.stateValues, this.lmModel.isCubeSearchForm ? true : false);\n\n if (this.lmModel.isSearchForm && !this.specField.isBusClassContextField) {\n // Change blank entries to Not Entered when on a search form\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if ((tempStateValues[ 0 ].value == 0 && tempStateValues[ 0 ].label.trim() === '') ||\n tempStateValues[ 0 ].value === ' ') {\n tempStateValues[ 0 ].value = 'Not Entered';\n tempStateValues[ 0 ].label = Soho.Locale.translate('ListStaticFieldFilterNotEntered');\n }\n }\n this._stateValues = tempStateValues;\n\n } else if (this.lmModel.isSearchForm\n && this.specField.type === AppConstants.BOOLEAN) {\n // BOOLEAN fields are states on a search form\n this._stateValues = this.lmModel.lmModelServiceAdapter.booleanSearchStates();\n }\n\n if (dvField.hasOwnProperty('docTitleFieldId')) {\n this._docTitleFieldId = dvField.docTitleFieldId;\n }\n\n if (dvField.hasOwnProperty('mimeTypeFieldId')) {\n this._mimeTypeFieldId = dvField.mimeTypeFieldId;\n\n if (dvField.hasOwnProperty('mimeType')) {\n this._mimeType = dvField.mimeType;\n }\n }\n\n // NOTE: value should be the last property evaluated\n\n if (dvField.hasOwnProperty('value')) {\n let value = dvField.value;\n\n // for rich text fields, need to unescape any embedded < >\n if (dvField.hasOwnProperty('isRichText')) {\n value = value.toString();\n\n if (value.indexOf('>') > -1) {\n value = value.split('>').join('>');\n }\n\n if (value.indexOf('<') > -1) {\n value = value.split('<').join('<');\n }\n }\n\n // if numeric, percent or bcd on a search form, set value to empty string and not zero\n if ((this.specField.type === AppConstants.BCD || this.specField.type === AppConstants.PERCENT || this.specField.type === AppConstants.NUMERIC) && this.lmModel.isSearchForm) {\n\n // need non strict equality so 0, '0', '0.00' are all seen as zero. Only set to blank if there isn't a filtercriteria, since 0 can be searched on\n // eslint-disable-next-line eqeqeq\n if (!this._filterCriteria && value == 0) {\n value = '';\n }\n }\n\n if (this.specField.type === AppConstants.IMAGE) {\n this.imageUrl = value;\n\n } else {\n this._value = value;\n }\n }\n // NOTE: value should be the last property evaluated\n }\n}\n","import { forwardRef, Inject, Injectable, NgZone } from '@angular/core';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { AppConstants, LMFormType, LMTransformOptions } from '@utils/app.constants';\nimport { LMFormActionUtilService } from '@form/services/lm-form-action-util.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMModelField } from './lm-model-field';\nimport { LMModel } from './lm-model';\nimport { SafeUrl } from '@angular/platform-browser';\nimport * as _ from 'lodash';\nimport { LMFormSpecUtilService } from '@form/services/lm-form-spec-util.service';\n\n@Injectable()\nexport class LMModelServiceAdapter {\n\n private _modelActionState: LMModelActionState;\n private lmFormatUtilService;\n\n constructor(\n public lmLoggerService: LMLoggerService,\n private lmActionService: LMActionService,\n private lmFieldUtilService: LMFieldUtilService,\n @Inject(forwardRef(() => LMFormatUtilService)) lmFormatUtilService, // LMFormatUtilService\n private lmFormActionUtilService: LMFormActionUtilService,\n private lmFormService: LMFormService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmContextService: LMContextService,\n public ngZone: NgZone\n ) {\n this.lmFormatUtilService = lmFormatUtilService as LMFormatUtilService;\n\n const actionInfo: LMModelActionInfo = {\n isMutableAction: false,\n isCreateAction: false,\n isImportAction: false,\n isUpdateAction: false,\n isActionFormDialog: false\n };\n\n // initially populate with default settings\n this._modelActionState = {\n actionInfo,\n isFormMutable: false,\n isRequired: null // tri-state: null, false, true\n };\n }\n\n public getFormName(formSpec: LMFormSpec): string {\n return this.lmFormSpecUtilService.formName(formSpec);\n }\n\n public get modelActionState(): LMModelActionState {\n return this._modelActionState;\n }\n\n public get isFormMutable(): boolean {\n return this._modelActionState.isFormMutable;\n }\n\n public isReadOnlyForm(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isReadOnlyForm(formSpec);\n }\n\n public isPageContextForm(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isPageContextForm(formSpec);\n }\n\n public isSearchForm(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isSearchForm(formSpec);\n }\n\n public isCubeSearchForm(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isCubeSearchForm(formSpec);\n }\n\n public isDetailFieldsForm(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isDetailFieldsForm(formSpec);\n }\n\n // TODO: temporary; these need to be on busFormSpec via LMFormService\n private get isDetailSection(): boolean {\n return false;\n }\n\n private get isScheduleForm(): boolean {\n return false;\n }\n\n private isTemplateTarget(formSpec: LMFormSpec): boolean {\n return this.lmFormSpecUtilService.isTemplateTarget(formSpec);\n }\n\n // public methods\n public isBlank(type: string, value: any) {\n return this.lmFieldUtilService.isBlank(type, value);\n }\n\n public isCompoundField(dvField: LMField, isMultiSelect: boolean) {\n return this.lmFormatUtilService.isCompoundField(dvField, isMultiSelect);\n }\n\n public formatMessage(message: string, variables?: any) {\n return this.lmFormatUtilService.formatMessage(message, variables);\n }\n\n public toBoolean(value: any): boolean {\n return this.lmFormatUtilService.booleanToData(value);\n }\n\n /**\n * Transforms localized data into Landmark data\n * @param value\n * @param type\n * @param options - optional\n * @returns\n */\n public toDataValue(value: any, type: string, options?: LMTransformOptions): any {\n return this.lmFormatUtilService.toDataValue(value, type, options);\n }\n\n /**\n *\n * @param value\n * @param specField\n * @param options\n * @return\n */\n public toDisplayValue(value: any, specField: LMSpecField, options?: LMTransformOptions): any {\n return this.lmFormatUtilService.toDisplayValueWithSpec(value, specField, options);\n }\n\n public toImageUrlValue(value: any): SafeUrl {\n return this.lmFormatUtilService.toImageUrlValue(value);\n }\n\n public fieldStatesToMultiOptionsArray(stateValues: Array, values: Array): Array {\n return this.lmFormatUtilService.fieldStatesToMultiOptionsArray(stateValues, values);\n }\n\n public fieldStatesToOptionsArray(stateValues: Array, addBlankEntry: boolean, zeroOrBlankValue?: string): Array {\n return this.lmFormatUtilService.fieldStatesToOptionsArray(stateValues, addBlankEntry, zeroOrBlankValue);\n }\n\n public fieldStateFormatZeroValue(type: string, precision?: number): string {\n return this.lmFormatUtilService.fieldStateFormatZeroValue(type, precision);\n }\n\n /*public addEmptyStateItem(statesArray: Array, isSearchForm: boolean): Array {\n // add empty entry if a search form and one does not exist\n if (isSearchForm\n && statesArray.length > 0\n && statesArray[ 0 ].label.trim().length > 0) {\n\n // create a new Array; leave incoming Array as is\n const newStates: Array = [];\n\n // add empty entry to be first item\n newStates.push({ label: ' ', value: ' ' });\n\n for (let index = 0, len = statesArray.length; index < len; index++) {\n newStates.push(statesArray[ index ]);\n }\n\n return newStates;\n }\n\n return statesArray;\n }*/\n\n public booleanSearchStates(): Array {\n const states: Array = [];\n\n // add empty entry to be first item\n states.push({ label: ' ', value: ' ' });\n states.push({ label: Soho.Locale.translate('Yes'), value: 'true' });\n states.push({ label: Soho.Locale.translate('No'), value: 'false' });\n\n return states;\n }\n\n public updateActionOnDataView(currentDataView: LMDataView, newDataView: LMDataView, formSpec: LMFormSpec): LMDataView {\n // always returns the new dataView\n const newActionSpec: LMActionSpec = this.lmFormActionUtilService.getTargetAction(formSpec, newDataView);\n\n if (!currentDataView) {\n newDataView.action = (newActionSpec) ? newActionSpec.name : undefined;\n return newDataView;\n }\n\n if (!newActionSpec) {\n // if no actionSpec just return with the new DataView\n return newDataView;\n }\n\n const currentActionSpec: LMActionSpec = this.lmFormActionUtilService.getTargetAction(formSpec, currentDataView);\n const isInstanceOrDelete = (newActionSpec.type === AppConstants.ACTION_TYPE_FUNCTION || newActionSpec.type === AppConstants.ACTION_TYPE_DELETE);\n\n // if current dataView action is update and new dataView action is instance or delete,\n // continue to check if the new dataView action should be replaced with the current dataView action\n if (currentActionSpec && currentActionSpec.type === AppConstants.ACTION_TYPE_UPDATE) {\n if (isInstanceOrDelete) {\n\n // is current action valid\n const isValid: boolean = this.lmActionService.isValidAction(currentActionSpec, formSpec.busClassSpec.actions, currentDataView.actionIndexes, undefined, true, true);\n\n if (isValid) {\n // use current action if valid\n newDataView.action = currentDataView.action;\n } else {\n // otherwise, find new valid update action\n const updateActionSpec = this.lmActionService.getDefaultUpdateAction(formSpec.busClassSpec.actions, newDataView.actionIndexes, true);\n\n if (updateActionSpec) {\n newDataView.action = updateActionSpec.name;\n }\n }\n }\n }\n\n return newDataView;\n }\n\n public toBlankValue = (type: string) => {\n if (type === AppConstants.YYYYMMDD\n || type === AppConstants.YYYYMM\n || type === AppConstants.MMDD\n || type === AppConstants.YYYY\n || type === AppConstants.TIME\n || type === AppConstants.TIMESTAMP\n || type === AppConstants.NUMERIC\n || type === AppConstants.BCD\n || type === AppConstants.PERCENT) {\n return 0;\n }\n return '';\n };\n\n public parseGroupFieldMembers(modelField: LMModelField, model: LMModel): void {\n this.parseGroupFieldMemberValue(modelField.value, modelField, model);\n }\n\n public updateModelActionState(dataView: LMDataView, formSpec: LMFormSpec) {\n const actionSpec: LMActionSpec = this.lmActionService.getTargetAction({ formSpec, dataView });\n\n const actionInfo: LMModelActionInfo = this.getActionInfo(actionSpec);\n const isFormMutable: boolean = this.getFormMutable(dataView, formSpec, actionSpec);\n const isRequired: boolean = this.getRequired(isFormMutable);\n\n this._modelActionState = {\n actionInfo,\n isFormMutable,\n isRequired\n };\n }\n\n public getMutableState(specField: LMSpecField, dvField: LMField): boolean {\n // see this.getActionInfo()\n // isMutableAction - true = action is create or action has parameters (symbolic key fields are mutable)\n // isUpdateAction - true = action is update\n // isActionFormDialog - true = action has parameters or has action form\n\n if (!this._modelActionState.isFormMutable) {\n // disabled: form is not mutable\n return false;\n }\n\n if (this._modelActionState.actionInfo.isMutableAction) {\n if (specField.isContextKey\n && !dvField.mutable\n && this.isBlank(specField.type, dvField.value)) {\n // enabled: is a mutable action and is a context key and is not mutable and value is blank\n return true;\n }\n } else {\n if (specField.isSymbolicKey || specField.isPartOfRelativeKey) {\n // disabled: not a mutable action and is symbolic key or is part of relative key\n return false;\n }\n\n // TODO: need references\n // if (isBusinessClass({ fieldId: fieldId })) {\n // // disabled: not a mutable action and is a business class\n // return false;\n // }\n }\n\n if (this._modelActionState.actionInfo.isUpdateAction) {\n if (!this._modelActionState.actionInfo.isActionFormDialog\n && specField.isContextKey\n && !this.isBlank(specField.type, dvField.value)) {\n // disabled: is an update action and not a dialog and is not a context key or context field and value is not blank\n return false;\n }\n }\n\n // use value of mutable property\n return dvField.mutable;\n }\n\n // private methods\n private getActionInfo(actionSpec: LMActionSpec): LMModelActionInfo {\n // let formSpec: LMFormSpec = this.lmFormService.formSpec;\n // let actionSpec: LMActionSpec = this.lmFormActionUtilService.getTargetAction(formSpec, dataView, formSpec.action);\n\n // set return with initial values\n const data: LMModelActionInfo = {\n isMutableAction: true,\n isCreateAction: false,\n isImportAction: false,\n isUpdateAction: false,\n isActionFormDialog: false\n };\n\n if (actionSpec) {\n data.isMutableAction = (actionSpec.type === AppConstants.ACTION_TYPE_CREATE || actionSpec.type === AppConstants.ACTION_TYPE_IMPORT);\n data.isCreateAction = (actionSpec.type === AppConstants.ACTION_TYPE_CREATE);\n data.isUpdateAction = (actionSpec.type === AppConstants.ACTION_TYPE_UPDATE);\n data.isImportAction = (actionSpec.type === AppConstants.ACTION_TYPE_IMPORT);\n\n // if not a create action, see if there are parameters\n if (!data.isMutableAction) {\n if (actionSpec.hasParameters) {\n data.isMutableAction = true;\n }\n }\n\n if (actionSpec.hasParameters !== undefined\n || actionSpec.hasActionForm !== undefined) {\n data.isActionFormDialog = true;\n }\n }\n\n // isMutableAction - true = create action or has parameters (symbolic key fields are mutable)\n // isUpdateAction - true = update action\n // isActionFormDialog - true = has parameters or has action form\n return data;\n }\n\n private getFormMutable(dataView: LMDataView, formSpec: LMFormSpec, actionSpec: LMActionSpec): boolean {\n // LMContext.asOfDateInPast\n if (this.lmContextService.hasAsOfDateInPast()) {\n return false;\n }\n\n // set by FormControllerAction\n if (dataView.asOfDate) {\n return false;\n }\n\n // set by JsonConverter\n if (dataView.displayOnly) {\n return false;\n }\n\n // TODO: needs to be on busFormSpec\n if (this.isScheduleForm) {\n return true;\n }\n // if (parentWidget.isScheduleForm) {\n // return true;\n // }\n\n if (this.isTemplateTarget(formSpec)) {\n return true;\n }\n\n if (this.isSearchForm(formSpec)) {\n return true;\n }\n\n // TODO: needs to be on busFormSpec\n if (this.isDetailSection) {\n return false;\n }\n // if (parentWidget.isDetailSection) {\n // return false;\n // }\n\n if (this.isDetailFieldsForm(formSpec)) {\n return true;\n }\n\n // LMCLIENT-27632: action forms that do not have a valid target action need to display fields as readonly\n // in 3.5, this same evaluation is always undefined (because it was incorrect), so processing fell through to the\n // end where _getTargetAction() was evaluated;\n // in 4.0, the evaluation is correct and thus also needs to evaluate for getTargetAction() as evaluating actionSpec\n // alone is not enough\n if (formSpec.busFormSpec.formType === LMFormType.ACTION) {\n const action = this.lmFormActionUtilService.getTargetAction(formSpec, dataView, formSpec.action);\n return (action !== null);\n }\n\n if (this.lmFormSpecUtilService.isResponseRequired(formSpec)) {\n return true;\n }\n\n if (this.lmFormSpecUtilService.isCodeBlockFilter(formSpec)) {\n return true;\n }\n\n // let actionSpec: LMActionSpec = this.lmFormActionUtilService.getTargetAction(formSpec, dataView, formSpec.action);\n // var action = parentWidget._getTargetAction(dataView);\n return (actionSpec !== null);\n };\n\n // TODO: TECHNICAL DEBT: consider renaming this method to be more respective of what it is doing/meaning\n private getRequired(isFormMutable: boolean) {\n // TODO: this.isDetailSection needs to be on busFormSpec\n\n return ((!this.isDetailSection || (this.isDetailSection && isFormMutable)));\n };\n\n // ported from landmark.field.setMemberFieldValue\n private parseGroupFieldMemberValue(compactValue: string, modelField: LMModelField, model: LMModel): string {\n const delimiter = modelField.groupFieldDelimiter || '';\n const members = modelField.members;\n\n for (let i = 0, length = members.length; i < length; i++) {\n if (compactValue && compactValue.length === 0) {\n\n // Clear out the rest of the members in the model\n for (let j = i; j < length; j++) {\n model.getField(members[ j ]).setBlank();\n }\n // Break when compactValue is empty string\n break;\n }\n\n const memberFieldId = members[ i ];\n const memberField = model.getField(memberFieldId);\n\n if (memberField.isCompoundField) {\n compactValue = this.parseGroupFieldMemberValue(compactValue, memberField, model);\n\n } else {\n if (delimiter.length > 0) {\n const index = compactValue.indexOf(delimiter);\n const newValue = ((index === -1) ? compactValue : compactValue.substr(0, index));\n\n // need to set individual member with dirty state; comparing data values, need to transform\n // the original value to string as the compactValue is always a string\n model.setDirty(memberFieldId, (memberField.originalValue.toString() !== newValue));\n\n memberField.value = newValue;\n compactValue = (index === -1) ? '' : compactValue.substr(index + 1);\n\n } else {\n const newValue = (compactValue.substr(0, memberField.size));\n\n // need to set individual member with dirty state; comparing data values, need to transform\n // the original value to string as the compactValue is always a string\n model.setDirty(memberFieldId, (memberField.originalValue.toString() !== newValue));\n\n memberField.value = newValue;\n compactValue = compactValue.substr(memberField.size);\n }\n }\n }\n\n return compactValue;\n }\n\n public computeCompactFieldValue(dataView: LMDataView, fieldId: string, specFields: LMSpecFields): string {\n const dvField: LMField = dataView.fields[ fieldId ];\n return this._computeCompactFieldValue(dataView, dvField, specFields, true);\n }\n\n // NOTE: method is recursive\n private _computeCompactFieldValue(dataView: LMDataView, dvField: LMField, specFields: LMSpecFields, checkBlank: boolean): string {\n let delimiter = dvField.delimiter || '';\n let returnValue = '';\n let addDelimiter = false;\n let allFieldsBlank = true;\n\n dvField.members.forEach((item) => {\n const memberField: LMField = dataView.fields[ item ];\n const type = memberField.type || '';\n\n if (addDelimiter) {\n returnValue += delimiter;\n }\n\n if (type === 'array' || type === 'group') {\n delimiter = memberField.delimiter || '';\n addDelimiter = (delimiter.length > 0);\n\n memberField.value = this._computeCompactFieldValue(dataView, memberField, specFields, false);\n\n allFieldsBlank = (allFieldsBlank && memberField.value.length === 0);\n returnValue += memberField.value;\n\n } else {\n const value = memberField.value;\n\n if (specFields.hasOwnProperty(item)) {\n const specField: LMSpecField = specFields[ item ];\n\n if (specField.type === AppConstants.BINARYDOCUMENT) {\n // TODO: issue: check if linkValue is still used for 4.0\n // value = memberField.linkValue;\n }\n\n allFieldsBlank = (allFieldsBlank && this.lmFieldUtilService.isBlank(specField.type, value));\n }\n\n if (delimiter.length === 0) {\n returnValue += this.getFieldPaddedValue(memberField);\n\n } else {\n addDelimiter = true;\n returnValue += _.trim(value.toString());\n }\n }\n });\n\n if (specFields && allFieldsBlank && checkBlank) {\n return '';\n }\n\n // trim trailing delimiters\n let newLength = returnValue.length;\n const delimLength = delimiter.length;\n\n for (; newLength > 0; newLength -= delimLength) {\n if (delimiter !== (returnValue.substring(newLength - delimLength, newLength))) {\n break;\n }\n }\n\n returnValue = returnValue.substr(0, newLength);\n return returnValue;\n }\n\n private getFieldPaddedValue(dvField: LMField): string {\n let value = dvField.value.toString();\n const length = value.length;\n\n if (length < dvField.size) {\n for (let index = length; index < dvField.size; index++) {\n value += ' ';\n }\n\n } else {\n value = value.substr(0, dvField.size);\n }\n\n return value;\n }\n}\n","import { LMModelServiceAdapter } from './lm-model-service-adapter';\nimport { LMModelCache, LMModelStatusEvent } from './lm-model';\nimport { Subject } from 'rxjs';\n\nexport class LMModelState {\n\n private _dirtyFields: LMDirtyFields;\n private _errorFields: LMErrorFields;\n private _statusChanges$ = new Subject();\n\n constructor(private lmModelServiceAdapter: LMModelServiceAdapter) {\n this._clearDirtyFields();\n this._clearErrorFields();\n }\n\n // public getters / setters\n public set cache(modelCache: LMModelCache) {\n this._dirtyFields = modelCache.dirtyFields;\n this._errorFields = modelCache.errorFields;\n }\n\n public get dirtyFields(): LMDirtyFields {\n return this._dirtyFields;\n }\n\n public get errorFields(): LMErrorFields {\n return this._errorFields;\n }\n\n public get hasError(): boolean {\n return (Object.keys(this._errorFields).some(key => this._errorFields[ key ].hasError === true));\n }\n\n public get isDirty(): boolean {\n return (Object.keys(this._dirtyFields).some(key => this._dirtyFields[ key ] === true));\n }\n\n public get statusChanges(): Subject {\n return this._statusChanges$;\n }\n\n // private methods\n private _clearDirtyFields() {\n this._dirtyFields = {};\n }\n\n private _clearErrorFields() {\n this._errorFields = {};\n }\n\n private _sendStatus(cause?: LMModelStatusCause) {\n this._statusChanges$.next(\n new LMModelStatusEvent(this.isDirty, this.hasError, cause));\n }\n\n // public methods\n public clearAll() {\n this._clearDirtyFields();\n this._clearErrorFields();\n }\n\n public destroy() {\n this._statusChanges$.unsubscribe();\n this._statusChanges$ = null;\n }\n\n public isFieldDirty(bindId: string): boolean {\n return !(Object.keys(this._dirtyFields).find(fieldId => fieldId === bindId) === undefined);\n }\n\n public setDirty(bindId: string, isDirty: boolean) {\n if (isDirty) {\n this._dirtyFields[ bindId ] = isDirty;\n } else {\n delete this._dirtyFields[ bindId ];\n }\n\n this._sendStatus({ bindId, isDirty });\n }\n\n public setError(bindId: string, hasError: boolean, message: string) {\n if (hasError) {\n this._errorFields[ bindId ] = {\n hasError,\n message\n };\n } else {\n delete this._errorFields[ bindId ];\n }\n\n this._sendStatus({ bindId, hasError });\n }\n}\n","import { LMLoggerService } from '@services/lm-logger.service';\nimport { LMModelField } from './lm-model-field';\nimport { LMModelServiceAdapter } from './lm-model-service-adapter';\nimport * as _ from 'lodash';\nimport { LMModelState } from './lm-model-state';\nimport { Observable, Subject } from 'rxjs';\nimport { AppConstants, LMTransformOptions } from '@utils/index';\nimport { LMPanelTransactionEvent } from '@form/services';\n\nexport type LMModelFields = { [ key: string ]: LMModelField };\nexport type LMModelMultiPartFields = { [ key: string ]: File | Blob };\n\nexport interface LMModelCache {\n dirtyFields: LMDirtyFields;\n errorFields: LMErrorFields;\n modelFields: LMModelFields;\n autoApply: boolean;\n}\n\nexport class LMModelChangedEvent implements LMModelEvent {\n eventType: LMModelEventType;\n source?: LMModelSourceEvent;\n\n constructor(eventType: LMModelEventType, source?: LMModelSourceEvent) {\n this.eventType = eventType;\n this.source = source;\n }\n}\n\nexport class LMModelStatusEvent implements LMModelEvent {\n eventType: LMModelEventType;\n isDirty: boolean;\n hasError: boolean;\n cause?: LMModelStatusCause;\n\n constructor(isDirty: boolean, hasError: boolean, cause?: LMModelStatusCause) {\n this.eventType = 'status';\n this.isDirty = isDirty;\n this.hasError = hasError;\n this.cause = cause;\n }\n}\n\nexport class LMTimeZoneChangedEvent {\n bindId: string;\n timeZone: string;\n previousTimeZone?: string;\n}\n\nexport class LMModel {\n private _fields: LMModelFields;\n private _manualrepfields: LMModelFields = {};\n private _specFields: LMSpecFields;\n private _dataView: LMDataView;\n private _modelState: LMModelState;\n private _modelChanged$ = new Subject();\n private lmLoggerService: LMLoggerService;\n private _numberLabel: string;\n private _timeZoneChangedSource$ = new Subject();\n readonly instanceId: string;\n\n timeZoneChangedEvent$ = this._timeZoneChangedSource$.asObservable();\n\n constructor(public lmModelServiceAdapter: LMModelServiceAdapter,\n private lmModelOptions: LMModelOptions) {\n // a shortcut reference\n this.lmLoggerService = lmModelServiceAdapter.lmLoggerService;\n this.instanceId = this.lmLoggerService.instanceId;\n\n this._modelState = new LMModelState(lmModelServiceAdapter);\n }\n\n // private methods\n private _applyDirtyState(incomingModel: LMModel) {\n // going to the sub-form or to a compact group form\n const dataView = incomingModel.getData();\n const fields = dataView ? dataView.fields : incomingModel.state.dirtyFields;\n\n // need to iterate all field because the model.state.dirtyFields\n // does not include fields not in the layout. LMCLIENT-38786\n // TODO: consider adding non layout fields to the model.state.dirtyField collection.\n Object.keys(fields).forEach((key) => {\n const incomingField = incomingModel.getField(key);\n\n if (!incomingField || !incomingField?.evaluateIsDirty) {\n return;\n }\n\n const incomingSpecField: LMSpecField = incomingModel._specFields[ key ];\n const currentField = this.getField(key);\n const currentSpecField: LMSpecField = this._specFields[ key ];\n\n if (currentField) {\n const incomingValue = incomingField.value;\n\n if (currentSpecField && currentSpecField.isMultiselect) {\n // re-apply the selected values and to the stateValues\n currentField.value = incomingField.value;\n currentField.states = this.lmModelServiceAdapter.fieldStatesToMultiOptionsArray(incomingField.states, incomingField.value);\n\n } else {\n // need to apply the value here\n // LMCLIENT-24650: if incoming field is not on the parent form, but is on this form, then\n // use currentSpecField and format the display value\n if (currentSpecField && (!incomingSpecField || (incomingSpecField && incomingSpecField.generated))) {\n const options: LMTransformOptions = {\n precision: incomingField.precision,\n isCompoundField: incomingField.isCompoundField\n };\n currentField.value = this.lmModelServiceAdapter.toDisplayValue(incomingField.value, currentSpecField, options);\n\n } else {\n // value is already transformed or if currentSpecField is undefined, meaning the field is not on the form,\n // value could be in Landmark format\n currentField.value = incomingField.value;\n }\n\n if (currentSpecField && currentSpecField.hasUserDefinedStates && incomingField.states !== undefined) {\n // for user-defined state fields, need to set the selected value back onto the stateValues property\n currentField.states = incomingField.states;\n }\n }\n\n currentField.applyState.next(true);\n }\n\n this.setDirty(key, incomingModel.state.dirtyFields[ key ]);\n });\n }\n\n private _applyDirtyStateFromForm(incomingModel: LMModel, bindIds: Array) {\n // returning from a sub-form\n\n const currentDirtyFields = Object.keys(this.state.dirtyFields);\n const incomingDirtyFields = Object.keys(incomingModel.state.dirtyFields);\n\n // create a union of unique bindIds\n const allFields = _.union(bindIds, incomingDirtyFields, currentDirtyFields);\n\n allFields.forEach((key) => {\n const currentContainsKey = currentDirtyFields.includes(key);\n const incomingContainsKey = incomingDirtyFields.includes(key);\n\n // SPECIAL CASE: if both are true and is a multi-select field,\n // need to re-apply the value and statesValues from the incoming model\n if (currentContainsKey === true && incomingContainsKey === true) {\n const specField: LMSpecField = this._specFields[ key ];\n\n if (specField && specField.isMultiselect) {\n const currentField = this.getField(key);\n const incomingField = incomingModel.getField(key);\n\n // re-apply the selected values to the stateValues\n currentField.value = incomingField.value;\n currentField.states = this.lmModelServiceAdapter.fieldStatesToMultiOptionsArray(incomingField.states, incomingField.value);\n }\n\n // no need to notify listeners as both are dirty\n }\n\n // otherwise, if both are not equal, then a change has occurred between forms\n // and the state needs to be applied appropriately\n if (currentContainsKey !== incomingContainsKey) {\n let isDirty = true;\n const currentField = this.getField(key);\n\n if (currentField) {\n // SPECIAL CASE: if a multi-select field, need to re-apply the statesValues from the incoming model\n const specField: LMSpecField = this._specFields[ key ];\n const incomingField = incomingModel.getField(key);\n\n if (specField && specField.isMultiselect) {\n // re-apply the selected values to the stateValues\n currentField.states = this.lmModelServiceAdapter.fieldStatesToMultiOptionsArray(incomingField.states, incomingField.value);\n }\n\n // do not need to set the value because the incoming dataView values were applied via updateData()\n currentField.applyState.next(true);\n }\n\n if (currentContainsKey) {\n isDirty = false;\n }\n\n this.setDirty(key, isDirty);\n }\n });\n }\n\n private _applyErrorState(incomingModel: LMModel) {\n // TODO: need to refactor due to changes in sohoxi controls\n Object.keys(incomingModel.state.errorFields).forEach((key) => {\n const incomingError = incomingModel.state.errorFields[ key ];\n\n this.setFieldError(key, incomingError.message, false);\n this.setError(key, incomingError.hasError, incomingError.message);\n });\n }\n\n private _populateModel(specFields: LMSpecFields): LMModelFields {\n const fields: LMModelFields = {};\n\n Object.keys(specFields).forEach((key) => {\n fields[ key ] = new LMModelField(specFields[ key ], this);\n });\n\n return fields;\n }\n\n private _processMemberValue(value: any, dvField: LMField): any {\n // update the individual dataView member values from the parent value array\n if (dvField.members) {\n for (let index = 0, len = dvField.members.length; index < len; index++) {\n const memberId = dvField.members[ index ];\n const dvMember = this._dataView.fields[ memberId ];\n\n if (dvMember) {\n if (value !== null && value[ index ] !== undefined) {\n dvMember.value = value[ index ];\n\n } else {\n dvMember.value = '';\n }\n\n // need to keep the corresponding modelField value in sync\n // as model can be passed\n const modelMember = this.getField(memberId);\n if (modelMember) {\n modelMember.value = dvMember.value;\n }\n }\n }\n }\n return value;\n }\n\n // for multi-select, sets the selected stateValue onto each member dataview field\n private _processMultiSelectValues(dvField: LMField, specField: LMSpecField, modelField: LMModelField) {\n const dvFields = this._dataView.fields;\n\n if (modelField && modelField.states && modelField.members) {\n\n modelField.members.forEach( key => {\n const dvMemberField = dvFields[ key ];\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n const state = modelField.states.filter(item => item.value == dvMemberField.value);\n\n if (state && state.length > 0) {\n dvMemberField.stateValues = state;\n }\n });\n }\n }\n\n // for user-defined states, sets the current dataView field value back onto the dataView field stateValues property\n private _processUserDefinedStateValue(dvField: LMField, specField: LMSpecField, modelField?: LMModelField) {\n // if dataView view field stateValue equals current value, no need to change\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if (dvField.stateValues && dvField.stateValues[ 0 ].value == dvField.value) {\n return;\n }\n\n // dataView field value was not the same, so find value in the model field\n if (modelField && modelField.states) {\n for (let index = 0, len = modelField.states.length; index < len; index++) {\n const state: LMStateValue = modelField.states[ index ];\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n if (state.value == dvField.value) {\n dvField.stateValues = [ state ] as Array;\n return;\n }\n }\n }\n\n // safety: shouldn't get here, but value cannot be found so create a default\n let label = dvField.value;\n\n // need to set the label value to an empty string for BCD, NUMERIC, and PERCENT types when\n // the value evaluates to a zero as it is the blank entry for a user-defined state\n if (specField.type === AppConstants.BCD\n || specField.type === AppConstants.NUMERIC\n || specField.type === AppConstants.PERCENT) {\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n if (dvField.value == 0) {\n label = '';\n }\n }\n\n return [\n {\n value: dvField.value,\n label\n }\n ] as Array;\n }\n\n private _setFields(dvFields: LMFields, opts?: LMModelSetFieldsOptions) {\n Object.keys(dvFields).forEach((key) => {\n let field: LMModelField = this.getField(key);\n\n // if there is a dataView field, but not a specField,\n // add a model field for processing functionality; not bound to a component\n if (!field) {\n field = this.getDefaultField(key);\n this._fields[ key ] = field;\n }\n\n field.setData(dvFields[ key ], this._dataView.fields, opts);\n\n // checkDirtyState is set by this.setFields which is called by the result of LMFormComponent.fireInitialValueRules()\n // or by LMFormContentStepProcessComponent.updateModelAfterTransaction()\n if (opts && opts.checkDirtyState) {\n // in LMFieldBaseComponent, in combination with the model.changed event, this will cause a process in ngAfterViewChecked\n // to be executed to evaluate the whether the field is dirty\n field.applyState.next(true);\n }\n });\n }\n\n timeZoneChanged(event: LMTimeZoneChangedEvent): void {\n this._timeZoneChangedSource$.next(event);\n }\n\n public addManualRepField(fieldId: string) {\n const manRepModelField: LMModelField = new LMModelField( this._specFields[ fieldId ], this);\n manRepModelField.isManualRepField = true;\n this._manualrepfields[fieldId] = manRepModelField;\n }\n\n // public getters\n public get action(): string {\n if (this._dataView) {\n return this._dataView.action;\n }\n return '';\n }\n\n public get contextProperties(): any {\n // TODO: need safety\n return this._dataView.contextProperties;\n }\n\n public get dirtyFields(): LMDirtyFields {\n return this._modelState.dirtyFields;\n }\n\n /**\n * Used by form transactions.\n * @return\n */\n public get formResourceId(): string {\n if (this._dataView) {\n return this.resourceId + '.' + this.formSpec.busFormSpec.name;\n }\n\n return '';\n }\n\n public get hasError(): boolean {\n return this._modelState.hasError;\n }\n\n public get hasUpdateAction(): boolean {\n return this.lmModelServiceAdapter.modelActionState.actionInfo.isUpdateAction;\n }\n\n public get globalCache(): any {\n return this._dataView.globalCache;\n }\n\n public get isCreateAction(): boolean {\n return this.lmModelServiceAdapter.modelActionState.actionInfo.isCreateAction;\n }\n\n public get isDirty(): boolean {\n return this._modelState.isDirty;\n }\n\n public get isFormMutable(): boolean {\n return this.lmModelServiceAdapter.isFormMutable;\n }\n\n public get isReadOnlyForm(): boolean {\n return this.lmModelServiceAdapter.isReadOnlyForm(this.lmModelOptions.formSpec);\n }\n\n public get isPageContextForm(): boolean {\n return this.lmModelServiceAdapter.isPageContextForm(this.lmModelOptions.formSpec);\n }\n\n public get isSearchForm(): boolean {\n return this.lmModelServiceAdapter.isSearchForm(this.lmModelOptions.formSpec);\n }\n\n public get isCubeSearchForm(): boolean {\n return this.lmModelServiceAdapter.isCubeSearchForm(this.lmModelOptions.formSpec);\n }\n\n public get hasManualRepFileds(): boolean {\n return (Object.keys(this._manualrepfields).length > 0);\n }\n\n public get formName(): string {\n return this.lmModelServiceAdapter.getFormName(this.lmModelOptions.formSpec);\n }\n\n public get formSpec(): LMFormSpec {\n return this.lmModelOptions.formSpec;\n }\n\n public get formUrlInfo(): LMFormUrlInfo {\n return this.lmModelOptions.formUrlInfo;\n }\n\n public get modelChanged(): Subject {\n return this._modelChanged$;\n }\n\n // for use internally by LMModel only\n protected get state(): LMModelState {\n return this._modelState;\n }\n\n public get statusChanges(): Subject {\n return this._modelState.statusChanges;\n }\n\n public get multiPartFields(): LMModelMultiPartFields {\n const multiPartFields: LMModelMultiPartFields = {};\n\n Object.keys(this._fields).forEach((key) => {\n const field: LMModelField = this.getField(key);\n\n if (field && field.multiPartFile) {\n multiPartFields[ key ] = field.multiPartFile;\n }\n });\n\n return multiPartFields;\n }\n\n public get numberLabel(): string {\n return this._numberLabel;\n }\n\n public set numberLabel(value: string) {\n this._numberLabel = value;\n this._modelChanged$.next(new LMModelChangedEvent('numberLabelChanged'));\n }\n\n /**\n * Used by independent panel and template forms.\n * @return\n */\n public get resourceId(): string {\n if (this._dataView) {\n if (this.isSearchForm) {\n return this._dataView.name;\n }\n\n return this._dataView.resourceId;\n }\n\n return '';\n }\n\n public get navigations(): Array {\n if (this._dataView) {\n return this._dataView.navigations;\n }\n\n return [];\n }\n\n public evaluateAndApplyDirtyState(bindId: string): boolean {\n const modelField: LMModelField = this.getField(bindId);\n const isDirty = (modelField) ? modelField.evaluateIsDirty : false;\n this.setDirty(bindId, isDirty);\n return isDirty;\n }\n\n public isFieldDirty(bindId: string): boolean {\n return this._modelState.isFieldDirty(bindId);\n }\n\n public setDirty(bindId: string, isDirty: boolean) {\n this._modelState.setDirty(bindId, isDirty);\n }\n\n public setError(bindId: string, hasError: boolean, message?: string) {\n this._modelState.setError(bindId, hasError, message || '');\n }\n\n // public methods\n public applyState(incomingModel: LMModel, bindIds?: Array) {\n // need to process this down the stack so the sohoxi controls can catch up\n setTimeout(() => {\n this.lmLoggerService.time({ id: 'LMModel.applyState() ' + this.instanceId });\n\n if (bindIds) {\n this._applyDirtyStateFromForm(incomingModel, bindIds);\n\n } else {\n this._applyDirtyState(incomingModel);\n }\n\n this._applyErrorState(incomingModel);\n\n this._modelChanged$.next(new LMModelChangedEvent('update'));\n\n this.lmLoggerService.timeEnd('LMModel.applyState() ' + this.instanceId);\n }, 1);\n }\n\n public addFieldsFromModel(specFields: LMSpecFields, model: LMModel) {\n Object.keys(specFields).forEach((key) => {\n this._fields[ key ] = new LMModelField(specFields[ key ], this);\n this._fields[ key ].value = model.getField(specFields[ key ].bindId).value;\n });\n }\n\n public destroy() {\n // TODO: maf 08/08/2019 - issue here; cannot destroy model as will be needed on return of sub / compact form\n // this.lmLoggerService.log(['LMModel.destroy()', this.instanceId]);\n // this._modelState.destroy();\n // this._modelState = null;\n //\n // this._modelChanged$.unsubscribe();\n // this._modelChanged$ = null;\n //\n // Object.keys(this._fields).forEach((key) => {\n // let field = this.getField(key);\n //\n // if (field) {\n // field.destroy();\n // }\n // });\n }\n\n public updateModelFromCompactForm(dataView: LMDataView, incomingModel: LMModel, fieldId: string, bindIds?: Array) {\n // fieldId is the compact group field id\n const modelField = this.getField(fieldId);\n\n this.updateData(dataView);\n\n if (!modelField.isNestedCompoundField) {\n // don't call the public applyState() here as the setTimeout cannot be executed\n this._applyDirtyStateFromForm(incomingModel, bindIds);\n this._applyErrorState(incomingModel);\n\n } else {\n // nested compound fields will call applyState() in lmModelServiceAdapter.parseGroupFieldMembers()\n this._applyErrorState(incomingModel);\n }\n\n // lmModelServiceAdapter.parseGroupFieldMembers() will apply the dirty state\n const value = this.lmModelServiceAdapter.computeCompactFieldValue(dataView, fieldId, this._specFields);\n\n // setting the value will cause LMModel.parseGroupFieldMembers() to be executed\n modelField.value = value;\n modelField.applyState.next(true);\n\n this._modelChanged$.next(new LMModelChangedEvent('update'));\n }\n\n public updateModelFromManualRepField(fieldId: string, value: any, notifyListeners?: boolean) {\n // fieldId is the compact group field id\n const modelField = this.getField(fieldId);\n\n\n // setting the value will cause LMModel.parseGroupFieldMembers() to be executed\n modelField.value = value;\n modelField.applyState.next(true);\n\n if (notifyListeners) {\n this._modelChanged$.next(new LMModelChangedEvent('update'));\n } else {\n this._modelChanged$.next(new LMModelChangedEvent('manualRepChanged'));\n }\n }\n\n public updateModelFromSubForm(dataView: LMDataView, incomingModel: LMModel, bindIds?: Array) {\n this.updateData(dataView);\n this.applyState(incomingModel, bindIds);\n }\n\n public updateModelFromDataViewForm(bindId: string, value: string, incomingModel: LMModel) {\n const modelField: LMModelField = this.getField(bindId);\n\n modelField.value = value;\n this.evaluateAndApplyDirtyState(bindId);\n // const isDirty = this.evaluateAndApplyDirtyState(bindId);\n // this.setDirty(bindId, isDirty);\n modelField.applyState.next(true);\n\n this.applyState(incomingModel, [ bindId ]);\n }\n\n public getManuualRepFields(): LMModelFields {\n return this._manualrepfields;\n }\n\n public getPagingUrls(): LMFormPagingUrls {\n return (this._dataView && this._dataView.pagingUrls) ? this._dataView.pagingUrls : undefined;\n }\n\n public getData(): LMDataView {\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: `GetData-${this.instanceId}`,\n description: 'LMModel Get Data',\n functionName: 'getData()',\n className: 'LMModel'\n });\n }\n\n const dvFields = this._dataView ? this._dataView.fields : {};\n\n Object.keys(dvFields).forEach((key) => {\n const modelField: LMModelField = this.getField(key);\n const dvField: LMField = dvFields[ key ];\n const specField: LMSpecField = this._specFields[ key ];\n\n if (modelField) {\n if (specField && specField.isMultiselect) {\n dvField.value = this._processMemberValue(modelField.getData(), dvField);\n this._processMultiSelectValues(dvField, specField, modelField);\n\n } else {\n dvField.value = modelField.getData();\n\n if (specField && specField.hasUserDefinedStates) {\n // for user-defined state fields, need to set the selected value back onto the stateValues property\n this._processUserDefinedStateValue(dvField, specField, modelField);\n }\n }\n }\n });\n\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.timeEnd(`GetData-${this.instanceId}`);\n }\n\n return this._dataView;\n }\n\n public getOriginalData(): LMDataView {\n this.lmLoggerService.time({ id: 'LMModel.getOriginalData() ' + this.instanceId });\n const dvFields = this._dataView.fields;\n\n Object.keys(dvFields).forEach((key) => {\n const modelField: LMModelField = this.getField(key);\n const dvField: LMField = dvFields[ key ];\n const specField: LMSpecField = this._specFields[ key ];\n\n if (modelField) {\n if (specField && specField.isMultiselect) {\n // do not call _processMemberValue() here as the original value is just needed\n dvField.value = modelField.originalValue;\n\n } else {\n dvField.value = modelField.originalValue;\n\n if (specField && specField.hasUserDefinedStates) {\n // for user-defined state fields, need to set the selected value back onto the stateValues property\n this._processUserDefinedStateValue(dvField, specField, modelField);\n }\n }\n }\n });\n\n this.lmLoggerService.timeEnd('LMModel.getOriginalData() ' + this.instanceId);\n return this._dataView;\n }\n\n public getSkinnyData(): LMDataView {\n this.lmLoggerService.time({ id: 'LMModel.getSkinnyData() ' + this.instanceId });\n const dvFields = this._dataView.fields;\n const dataViewFields: LMFields = {};\n\n Object.keys(dvFields).forEach((key) => {\n const field: LMModelField = this.getField(key);\n const dvField = dvFields[ key ];\n\n if (field && dvField.hasOwnProperty('value')) {\n dataViewFields[ key ] = { value: field.getData() };\n }\n });\n\n const dataView: LMDataView = Object.assign({}, this._dataView);\n dataView.fields = dataViewFields;\n\n this.lmLoggerService.timeEnd('LMModel.getSkinnyData() ' + this.instanceId);\n return dataView;\n }\n\n public getDefaultField(bindId: string): LMModelField {\n const specField: LMSpecField = {\n bindId,\n type: '',\n label: null,\n generated: true\n };\n\n const modelField: LMModelField = new LMModelField(specField, this);\n modelField.value = '';\n\n return modelField;\n }\n\n public getField(bindId?: string): LMModelField {\n // if no bindId or bindId is not in the collection, return null\n // caller can execute getDefaultField() to use for binding\n if (!bindId\n || bindId.trim().length === 0\n || !this._fields.hasOwnProperty(bindId)) {\n return null;\n }\n\n return this._fields[ bindId ];\n }\n\n public populate(specFields: LMSpecFields) {\n this._specFields = specFields;\n this._fields = this._populateModel(this._specFields);\n }\n\n /**\n * Initial setting of model data, marking all fields as pristine (isDirty == false)\n * @param newDataView\n * @param opts\n */\n public setData(newDataView: LMDataView, opts?: LMModelSetDataOptions) {\n\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: `SetData-${this.instanceId}`,\n description: 'LMModel Set Data',\n functionName: 'setData()',\n className: 'LMModel'\n });\n }\n\n // notifyListeners defaults to true if not passed\n const notifyListeners = (opts && typeof opts.notifyListeners === 'boolean') ? opts.notifyListeners : true;\n const resetData = (opts && opts.source && opts.source.type === 'paging');\n\n // reset data is set after a previous or next operation\n const currentDataView = (resetData) ? undefined : this._dataView;\n this._dataView = this.lmModelServiceAdapter.updateActionOnDataView(currentDataView, newDataView, this.lmModelOptions.formSpec);\n\n this.lmModelServiceAdapter.updateModelActionState(this._dataView, this.lmModelOptions.formSpec);\n\n // Leave resetData to true for both types of LMModelSourceEvent, paging and transaction.\n // The const flag resetData will be used only for setting the correct action in dataView above.\n const fieldOptions = { resetData: true } as LMModelSetFieldsOptions;\n if (opts?.filterCriteria) {\n fieldOptions.filterCriteria = opts.filterCriteria;\n // since we are in the case of a search being clicked on a search form, we do NOT want to reset\n // the current data\n fieldOptions.resetData = false;\n }\n\n if (opts?.alphaDefaultFilterCondition) {\n fieldOptions.alphaDefaultFilterCondition = opts.alphaDefaultFilterCondition;\n }\n\n this._setFields(this._dataView.fields, fieldOptions);\n\n this._modelState.clearAll();\n\n if (notifyListeners) {\n const source = (opts && opts.source) ? opts.source : undefined;\n this._modelChanged$.next(new LMModelChangedEvent('set', source));\n }\n\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.timeEnd(`SetData-${this.instanceId}`, [ 'options', opts ]);\n }\n }\n\n /**\n * Updates model data, keeping fields in the current state\n * @param dataView\n * @param opts\n */\n public updateData(dataView: LMDataView, opts?: {\n notifyListeners?: boolean;\n }) {\n this.lmLoggerService.time({ id: 'LMModel.updateData() ' + this.instanceId });\n\n // notifyListeners defaults to true if not passed\n const notifyListeners = (opts && typeof opts.notifyListeners === 'boolean') ? opts.notifyListeners : true;\n\n // TODO: need to save incoming dataView to this._dataView ?\n\n this.lmModelServiceAdapter.updateModelActionState(dataView, this.lmModelOptions.formSpec);\n\n this._setFields(dataView.fields);\n\n if (notifyListeners) {\n this._modelChanged$.next(new LMModelChangedEvent('update'));\n }\n\n this.lmLoggerService.timeEnd('LMModel.updateData() ' + this.instanceId, [ 'options', opts ]);\n }\n\n public setFields(dvFields: LMFields, opts?: {\n notifyListeners?: boolean;\n source?: LMPanelTransactionEvent;\n }): Observable {\n return new Observable(observer => {\n this.lmLoggerService.time({ id: 'LMModel.setFields() ' + this.instanceId });\n\n // notifyListeners defaults to true if not passed\n const notifyListeners = (opts && typeof opts.notifyListeners === 'boolean') ? opts.notifyListeners : true;\n\n this._setFields(dvFields, { checkDirtyState: true });\n\n const source = (opts && opts.source) ? opts.source : undefined;\n const modelChangedEvent = new LMModelChangedEvent('update', source); // DPB\n\n if (notifyListeners) {\n this._modelChanged$.next(modelChangedEvent);\n }\n\n this.lmLoggerService.timeEnd('LMModel.setFields() ' + this.instanceId);\n\n observer.next(modelChangedEvent);\n observer.complete();\n });\n }\n\n public clearModelState(): void {\n this._modelState.clearAll();\n }\n\n public clearFieldError(errorFieldId: string): boolean {\n const modelField = this.getField(errorFieldId);\n\n if (!modelField) {\n return false;\n }\n\n this.setError(errorFieldId, false);\n modelField.errorMessage.next('');\n\n return true;\n }\n\n public resetFieldErrors() {\n Object.keys(this._fields).map((fieldId) => {\n this.clearFieldError(fieldId);\n });\n }\n\n /**\n * Sets the field error onto the field\n *\n * @param errorFieldId\n * @param errorFieldMessage\n * @param applyErrorState - default true\n * @param indicates recursion level - initial zero\n * @returns - there is not a modelField or the modelField.errorMessage does not have any listeners\n */\n // NOTE: recursive method\n public setFieldError(errorFieldId: string, errorFieldMessage: string, applyErrorState?: boolean, level = 0): boolean {\n applyErrorState = (applyErrorState === undefined) ? true : applyErrorState;\n\n const modelField = this.getField(errorFieldId);\n\n if (!modelField) {\n return false;\n }\n\n if (applyErrorState) {\n this.setError(errorFieldId, true, errorFieldMessage);\n }\n\n if (modelField.errorMessage.observers.length > 0) {\n modelField.errorMessage.next(errorFieldMessage);\n return true;\n }\n\n // LMCLIENT-30413: if there are no observers and field is a group field, try to find the first member field\n // that has an observer to place the message; only going one level deep\n if (modelField.isCompoundField && level === 0) {\n for (let index = 0, len = modelField.members.length; index < len; index++) {\n const hasObservers = this.setFieldError(modelField.members[ index ], errorFieldMessage, applyErrorState, ++level);\n if (hasObservers) {\n return true;\n }\n }\n }\n\n // there are not any components listening, so caller needs to display dialog\n return false;\n }\n\n public getCache(autoApply?: boolean): LMModelCache {\n this.lmLoggerService.time({ id: 'LMModel.getCache() ' + this.instanceId });\n\n // need to iterate the modelFields to get their properties\n const modelFields = {};\n Object.keys(this._fields).forEach((key) => {\n const field = this.getField(key);\n\n if (field) {\n modelFields[ key ] = field.properties;\n }\n });\n\n // create the model cache object\n const modelCache: LMModelCache = {\n dirtyFields: this.state.dirtyFields,\n errorFields: this.state.errorFields,\n modelFields,\n autoApply: autoApply || false\n };\n\n this.lmLoggerService.timeEnd('LMModel.getCache() ' + this.instanceId);\n return modelCache;\n }\n\n public applyCache(modelCache: LMModelCache) {\n this.lmLoggerService.time({ id: 'LMModel.applyCache() ' + this.instanceId });\n\n // create a local model with the state so changes can be applied\n const localModel = new LMModel(this.lmModelServiceAdapter, { formUrlInfo: this.formUrlInfo, formSpec: this.formSpec });\n localModel.populate(this._specFields);\n\n // set the model state collections\n localModel.state.cache = modelCache;\n\n // set the model field properties\n Object.keys(modelCache.modelFields).forEach((key) => {\n const field = localModel.getField(key);\n\n if (field) {\n field.properties = modelCache.modelFields[ key ];\n }\n });\n\n // apply the model state\n this.applyState(localModel);\n }\n\n public isNestedCompoundField(specField: LMSpecField): boolean {\n const modelField = this.getField(specField.bindId);\n return (modelField && modelField.isNestedCompoundField);\n }\n}\n","export * from './lm-form-action-util.service';\nexport * from './lm-form-layout.service';\nexport * from './lm-form-matrix.service';\nexport * from './lm-form-paging.service';\nexport * from './lm-form-panel.service';\nexport * from './lm-form-request.service';\nexport * from './lm-form.service';\nexport * from './lm-form-toolbar.service';\nexport * from './lm-form-spec-util.service';\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMActionRequest, LMActionService } from '@services/lm-action.service';\nimport { LMActionRequestSaveMode } from '@utils/app.constants';\n\n@Injectable()\nexport class LMFormActionUtilService {\n constructor(private lmActionService: LMActionService) {}\n\n /**\n * @deprecated use LMActionService.getTargetAction instead\n */\n public getTargetAction(formSpec: LMFormSpec, dataView: LMDataView, action?: string): any {\n return this.lmActionService.getTargetAction({ formSpec, dataView, actionName: action });\n }\n}\n\nexport interface LMFormContext {\n /**\n * Url info needed to resolve any urls using lm-url-util-service.\n */\n formUrlInfo: LMFormUrlInfo;\n /**\n * Response Required dialog prompt will use the formspec to determine what fields should be displayed.\n */\n formSpec: LMFormSpec;\n /**\n * Response Required updates form model. The audit fields are added back to the Form model.\n * The form model is kept in sync with the dataView. If the user attempts to save after fixing\n * an application error, the response required fields prompt will display the previous values.\n */\n formModel?: LMModel;\n /**\n * Confirmation dialog and Response required fields dialog uses the ViewContainerRef.\n */\n placeholder?: ViewContainerRef;\n /**\n * This is only used by request actions as there are two kinds of save button, draft and submit.\n */\n actionRequestMode?: LMActionRequestSaveMode;\n /**\n * This is set if formSpec.isDependentForm is true. The detail section form will depend on\n * list selection and so the from resource id will be used to set the value.\n */\n sourceResourceId?: string;\n\n /**\n * Value used to validate captcha\n */\n captchaValue?: string;\n}\n\nexport interface LMPanelTransactionArgs {\n busClassSpec: LMBusClassSpec,\n transactionUrl: string,\n actionRedirectUrl: string,\n placeholder: ViewContainerRef;\n}\n\n/**\n * Information sent by form + additional params\n */\nexport interface LMFormActionParams {\n observer?: any;\n actionRequestArray?: LMActionRequest[];\n url?: string;\n // From FormContext\n formSpec?: LMFormSpec;\n formModel?: LMModel;\n placeholder?: ViewContainerRef;\n hideToast?: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMModel } from '@form/model';\nimport * as _ from 'lodash';\nimport { LMFieldLayoutService, LMLayoutType } from '@field/services/index';\nimport { AppConstants } from '@app/utils';\n\n@Injectable()\nexport class LMFormLayoutService {\n\n constructor(\n private lmConditionUtilService: LMConditionUtilService,\n private lmFieldLayoutService: LMFieldLayoutService) {}\n\n /**\n * Check if section has a visible number label\n * Check to see if all fields have \"no label\"\n * Evaluate section to see if all fields are display as text (summary form)\n */\n public getSectionInfo(section: LMFormLayoutSectionUI, model: LMModel): LMFormSectionInfo {\n let numberOfFieldsInSection = 0;\n let numberOfDisplayAsTextFields = 0;\n let numberOfFieldsWithNoLabel = 0;\n let numberOfCheckBoxFields = 0;\n let numberOfHeadersInSection = 0;\n let hasNumberLabel = false;\n let paragraphHasTextAreaOnly = false;\n let paragraphHasRichTextOnly = false;\n\n if (section.columns) {\n section.columns.forEach((column) => {\n processElements(this.lmConditionUtilService, column.elements, model);\n });\n }\n\n if (section.paragraph?.elements) {\n const elements = section.paragraph.elements;\n const nbrElements = elements.length;\n const element = elements[ 0 ];\n\n if (element !== undefined && element.field !== undefined) {\n const isMultiLineTextArea = element.field?.type === 'textarea' && (element.field.lines !== undefined && element.field.lines > 1);\n const elementIsRichTextArea = element.field?.type === 'richText';\n\n paragraphHasTextAreaOnly = nbrElements === 1 && isMultiLineTextArea;\n paragraphHasRichTextOnly = nbrElements === 1 && elementIsRichTextArea;\n }\n\n processElements(this.lmConditionUtilService, section.paragraph.elements, model);\n }\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n function processElements(lmConditionUtilService: LMConditionUtilService, elements: LMFormLayoutElements[], _model: LMModel) {\n elements.forEach((element) => {\n const keys = Object.keys(element);\n\n if (keys.length === 0) {\n return;\n }\n\n const field = element[keys[0]];\n const isVisible = lmConditionUtilService.isValid(field.visibility, _model);\n\n if (field === undefined) {\n return;\n }\n\n // Nested paragraph\n if (field.elements) {\n processElements(lmConditionUtilService, field.elements, _model);\n } else {\n if (isVisible) {\n numberOfFieldsInSection++;\n\n if (field.numberLabel) {\n hasNumberLabel = true;\n }\n\n if (field.header) {\n numberOfHeadersInSection++;\n }\n\n\n // Count buttons, and formtext as fields with no label\n if ((field.label && field.label.nolabel)\n || (field.label === undefined && field.text)\n || (field.label === undefined && field.displayAsLink)\n || (field.label === undefined && field.type === AppConstants.FORMBUTTON)\n ) {\n numberOfFieldsWithNoLabel++;\n }\n\n // Include the following fields as display as text\n if (\n field.displayAsText\n || field.displayImageAs\n || field.type === 'formtext'\n || field.displayAsLink\n || field.type === 'progress'\n || field.type === 'forminvoke'\n || field.blankLine\n || field.tagStyle\n ) {\n numberOfDisplayAsTextFields++;\n }\n\n if (field.type === 'checkbox') {\n numberOfCheckBoxFields++;\n }\n }\n }\n });\n }\n\n return {\n paragraphHasTextAreaOnly,\n paragraphHasRichTextOnly,\n sectionHasNumberLabel: hasNumberLabel,\n isSummaryFormSection: (numberOfFieldsInSection === numberOfDisplayAsTextFields) && numberOfFieldsInSection !== 0,\n isNoLabelSection: this.isNoLabelSection(numberOfFieldsInSection, numberOfFieldsWithNoLabel, numberOfCheckBoxFields, numberOfHeadersInSection)\n };\n }\n\n /**\n * Check to see if there is a \"VISIBLE\" number label present anywhere in the form\n * @param sections\n * @param model\n */\n public formHasNumberLabel(sections: LMFormLayoutSection[], model: LMModel): boolean {\n let hasNumberLabel = false;\n\n sections.forEach((section) => {\n if (section.columns) {\n section.columns.forEach((column) => {\n processElements(this.lmConditionUtilService, column.elements, model);\n });\n }\n\n if (section.paragraph && section.paragraph.elements) {\n processElements(this.lmConditionUtilService, section.paragraph.elements, model);\n }\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n function processElements(lmConditionUtilService: LMConditionUtilService, elements: LMFormLayoutElements[], _model: LMModel) {\n elements.forEach((element) => {\n const keys = Object.keys(element);\n\n if (keys.length === 0) {\n return;\n }\n\n const field = element[keys[0]];\n const isVisible = lmConditionUtilService.isValid(field.visibility, _model);\n\n if (field === undefined) {\n return;\n }\n\n // Nested paragraph\n if (field.elements) {\n processElements(lmConditionUtilService, field.elements, _model);\n } else {\n if (isVisible) {\n if (field.numberLabel) {\n hasNumberLabel = true;\n }\n }\n }\n });\n }\n });\n\n return hasNumberLabel;\n }\n\n /**\n * @param numberOfFieldsInSection\n * @param numberOfFieldsWithNoLabel\n * @param numberOfCheckBoxFields\n * @private\n *\n * Implicitly hide labels in a section in certain use cases\n * - All fields have no label (marked as \"no label\") in LPL\n * - All fields are checkbox fields\n * - All fields are either checkbox fields or \"text of\" fields\n */\n private isNoLabelSection(\n numberOfFieldsInSection: number,\n numberOfFieldsWithNoLabel: number,\n numberOfCheckBoxFields: number,\n numberOfHeadersInSection: number\n ): boolean {\n // Exclude headers from total number of fields\n numberOfFieldsInSection = numberOfFieldsInSection - numberOfHeadersInSection;\n\n if ((numberOfFieldsInSection === numberOfFieldsWithNoLabel) && numberOfFieldsInSection !== 0) {\n return true;\n }\n\n if ((numberOfFieldsInSection === numberOfCheckBoxFields) && numberOfFieldsInSection !== 0) {\n return true;\n }\n\n if (numberOfFieldsInSection === (numberOfCheckBoxFields + numberOfFieldsWithNoLabel) && numberOfFieldsInSection !== 0) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Build implicit columns array\n */\n public buildImplicitColumns(section: LMFormLayoutSection, model: LMModel): Array {\n const implicitColumn = section.columns[ 0 ];\n const columns = [];\n\n for (let i = 0, l = section.nbrColumns; i < l; i++) {\n columns.push({ elements: [], index: i });\n }\n\n const visibleElements = implicitColumn.elements.filter((element) => {\n let bool = true;\n const key = Object.keys(element)[0];\n\n if (element[key] && element[key].visibility) {\n bool = this.lmConditionUtilService.isValid( element[key].visibility, model);\n }\n\n return bool;\n });\n\n const chunks = _.chunk(visibleElements, Math.ceil(visibleElements.length / section.nbrColumns));\n columns.forEach((column, index) => {\n column.elements = chunks[ index ];\n });\n\n return columns;\n }\n\n /**\n * Check if column layout is implicit\n */\n public columnsAreImplicit(section: LMFormLayoutSection): boolean {\n if (section.columns === undefined) {\n return false;\n }\n\n return section.nbrColumns > 1 && section.columns.length === 1;\n }\n\n public paragraphHasVisibleLabels(paragraph: LMFormParagraphLayout, model: LMModel, specFields: LMSpecFields, paragraphLayout: LMParagraphLayoutInfo): boolean {\n if (paragraph === undefined || paragraph.elements === undefined) {\n return false;\n }\n\n const elementsWithLabels = paragraph.elements.filter((el) => {\n if (el && el.field) {\n const specField = specFields[ el.field.bindId ];\n\n if (this.lmFieldLayoutService.getLayoutType(el.field, specField, model, paragraphLayout) === LMLayoutType.CHECKBOX) { /*el.field && el.field.type === 'checkbox'*/\n return false;\n }\n }\n return el[ Object.keys(el)[ 0 ] ].label;\n });\n\n return elementsWithLabels.length !== 0;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMLoggerService, LMUrlUtilService } from '@services/index';\nimport { FormResource } from '@resources/form.resource';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport * as urltemplate from 'url-template';\n\n@Injectable()\nexport class LMFormMatrixService {\n constructor(\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmNavigationService: LMNavigationService,\n private lmConditionUtilService: LMConditionUtilService\n ) {}\n\n public runMatrixLinkNavigation(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, dataView: LMDataView, displayField: LMListDisplayField) {\n this.lmLoggerService.log('runMatrixLinkNavigation');\n\n if (displayField.linkNavigation || displayField.navigation) {\n const linkNavigation = displayField.linkNavigation || displayField.navigation;\n this.lmLoggerService.log('runMatrixLinkNavigation: ' + linkNavigation);\n const fromListResource = new FormResource({ busClassName: dataView.busClassName, formName: formSpec.busFormSpec.name });\n const compiledUrlTemplate = urltemplate.parse(formUrlInfo.navigationUrl);\n let url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName: linkNavigation });\n\n url = this.lmUrlUtilService.appendToQueryString(url, this.lmUrlUtilService.objectToQueryString({ fromlist: fromListResource.resourceId}));\n this.lmNavigationService.runNavigation(url, undefined, {showAsPdf: displayField.showAsPdf});\n }\n }\n\n public copyStateValuesToCellView(rowDataViewsSet: LMDataViewSet) {\n const rowHeader: LMDataView = rowDataViewsSet.header;\n const rowDataViewList: Array = rowDataViewsSet.data;\n\n for (let i = 0, l = rowDataViewList.length; i < l; i++) {\n const rowDataView = rowDataViewList[ i ];\n const cellDataViewList = rowDataView.data;\n\n for (let j = 0, jl = cellDataViewList.length; j < jl; j++) {\n const cellDataView: LMDataView = cellDataViewList[ j ];\n\n for (const fieldId in cellDataView.fields) {\n if (rowHeader.fields[ fieldId ] && rowHeader.fields[ fieldId ].stateValues !== undefined) {\n cellDataView.fields[ fieldId ].stateValues = rowHeader.fields[ fieldId ].stateValues;\n }\n }\n }\n }\n }\n\n public getValidCheckControlActions(\n displayField: LMListDisplayField,\n dataView: LMDataView,\n isChecked?: boolean\n ): Array {\n const checkControlActions: Array = isChecked ? displayField.checkActions : displayField.uncheckActions;\n\n if (checkControlActions === null || checkControlActions.length === 0) {\n this.lmLoggerService.warn([ this, 'runCheckControlAction: No ' + (isChecked ? 'Check' : 'Uncheck') + ' actions defined.' ]);\n return;\n }\n\n const validActions: Array = [];\n\n checkControlActions.forEach((checkControlAction: LMCheckControlAction) => {\n if (checkControlAction.condition) {\n const conditions: LMCondition[] = [];\n conditions[ 0 ] = checkControlAction.condition;\n\n if (this.lmConditionUtilService.isValid(conditions, dataView)) {\n validActions.push(checkControlAction.actionSpec);\n }\n } else {\n validActions.push(checkControlAction.actionSpec);\n }\n });\n\n if (validActions.length === 0) {\n this.lmLoggerService.warn([ this, 'runCheckControlAction: No valid ' + (isChecked ? 'Check' : 'Uncheck') + ' action defined.' ]);\n return;\n }\n\n return validActions;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMDataService } from '@services/lm-data.service';\nimport * as urltemplate from 'url-template';\nimport { Observable, throwError } from 'rxjs';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\n\n@Injectable()\nexport class LMFormPagingService {\n\n constructor(\n private http: HttpClient,\n private lmUrlUtilService: LMUrlUtilService,\n private lmDataService: LMDataService\n ) {}\n\n /**\n * Retrieves an initial record of data for a form\n */\n public loadRecord(url: string): Observable {\n return this.lmDataService.getRecord(url);\n }\n\n nextRecord(dataView: LMDataView): Observable {\n if (!dataView) {\n return throwError('Invalid arguments: dataView is a required argument');\n }\n\n const url: string = dataView.pagingUrls.nextRecordUrl;\n return this.lmDataService.getRecord(url);\n }\n\n previousRecord(dataView: LMDataView): Observable {\n if (!dataView) {\n return throwError('Invalid arguments: dataView is a required argument');\n }\n\n const url: string = dataView.pagingUrls.previousRecordUrl;\n return this.lmDataService.getRecord(url);\n }\n\n loadTemplateRecords(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, fromDataView: LMDataView, sourceDataView: LMDataView, displayWhenIndex: number): Observable {\n if (!formSpec || !fromDataView) {\n return throwError('Invalid arguments: formSpec is a required argument');\n }\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n let url: string;\n\n if (sourceDataView) {\n url = urlCompiledTemplate.expand({\n resourceId: fromDataView.resourceId,\n sourceResourceId: sourceDataView.resourceId\n });\n } else {\n url = urlCompiledTemplate.expand({ resourceId: fromDataView.resourceId });\n }\n\n if (displayWhenIndex) {\n // this is only required in a sub panel\n url = url + '&displayWhenIndex=' + displayWhenIndex;\n }\n\n return this.lmDataService.getTemplateRecords(url);\n }\n\n loadSubPanels(dataView: LMDataView, loadPanelSubStepsURL: string): Observable {\n const urlCompiledTemplate = urltemplate.parse(loadPanelSubStepsURL);\n const url = urlCompiledTemplate.expand({ resourceId: dataView.resourceId });\n return this.lmDataService.getSubPanelRecords(url);\n }\n\n refreshRecord(dataView: LMDataView, navigationContext?: LMNavContextKeys): any {\n if (!dataView) {\n return throwError('Invalid arguments: dataView is a required argument');\n }\n\n let url: string = dataView.pagingUrls.reloadRecordUrl;\n if (navigationContext) {\n url = this.lmUrlUtilService.appendToQueryString(url, this.lmUrlUtilService.objectToQueryString(navigationContext))\n }\n return this.lmDataService.getRecord(url);\n }\n\n loadRelatedRecord(dataView: LMDataView): any {\n if (!dataView) {\n return throwError('Invalid arguments: dataView is a required argument');\n }\n\n const url: string = dataView.pagingUrls.reloadRecordUrl;\n return this.lmDataService.getRecord(url);\n }\n}\n","import { LMLoggerService } from '@services/lm-logger.service';\nimport { Injectable } from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMModel } from '@form/model';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { Observer, Observable } from 'rxjs';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMFormRequestService } from './lm-form-request.service';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\n\nexport type LMFieldIdMap = { [ key: string ]: Array };\n\n@Injectable()\nexport class LMFormPanelBaseService {\n private panelDisplayStateLastChanged: number;\n private panels: Array;\n private _panels: Array;\n private verticalTabs = false;\n private contextForm = undefined;\n private _furthestPanelIndex = 0;\n private _furthestSubPanelIndex = 0;\n private _mapFieldIds: LMFieldIdMap = {};\n\n constructor(\n private lmConditionUtilService: LMConditionUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmFormRequestService: LMFormRequestService,\n private lmSpecService: LMSpecService,\n private lmCommonUtilService: LMCommonUtilService,\n ) {}\n\n get furthestPanelIndex() {\n return this._furthestPanelIndex ;\n }\n set furthestPanelIndex(index: number) {\n this._furthestPanelIndex = index;\n }\n get furthestSubPanelIndex() {\n return this._furthestSubPanelIndex;\n }\n set furthestSubPanelIndex(index: number) {\n this._furthestSubPanelIndex = index;\n }\n\n public getPanelDisplayStateLastChanged(): number {\n return this.panelDisplayStateLastChanged;\n }\n\n public getPanels(): Array {\n return Object.assign([], this.panels);\n }\n\n public getVerticalTabs(): boolean {\n // No need to copy boolean values for immutability. primitives are immutable by\n // default and are compared by value, they don’t have individual identities.\n return this.verticalTabs;\n }\n\n public getContextForm(): LMContextForm {\n if (this.contextForm) {\n return Object.assign({}, this.contextForm);\n }\n return undefined;\n }\n\n // public setStepUnvisited(id: string): void {\n // this.changeStepIcon(id, AppConstants.STEP_PROCESS_UNVISITED_ICON);\n // }\n //\n // public setStepInprocess(id: string): void {\n // this.changeStepIcon(id, AppConstants.STEP_PROCESS_INPROCESS_ICON);\n // }\n //\n // public setStepCompleted(id: string): void {\n // this.changeStepIcon(id, AppConstants.STEP_PROCESS_COMPLETE_ICON);\n // }\n //\n public setStepError(id: string): void {\n this.changeStepIcon(id, AppConstants.STEP_PROCESS_ERROR_ICON);\n }\n\n public changeStepIcon(id: string, icon: string): void {\n let panel: LandmarkPanel;\n for (let i = 0, len = this._panels.length; i < len; i++) {\n panel = this._panels[i];\n if (panel.id === id) {\n panel.icon = icon;\n }\n }\n }\n\n public getPanelIdByIndex(index: number): string {\n return this._panels[index].id;\n }\n\n public getPanelIndexById(id: string): number {\n for (let i = 0, len = this._panels.length; i < len; i++) {\n if (id === this._panels[i].id) {\n return i;\n }\n }\n return -1;\n }\n\n public updateCompositePanels(busFormSpec: LMBusFormSpec, model: LMModel, clearSubPanels: boolean) {\n this.panels = [];\n let panel: LandmarkPanel;\n const panelSpecs: Array = busFormSpec.panels;\n let panelSpec: LMCompositePanelSpec;\n const dataView = model.getData();\n\n for (let i = 0, len = this._panels.length; i < len; i++) {\n panel = this._panels[ i ];\n\n // skip subPanels, they were added by their parent\n if (panel.isSubPanel) {\n continue;\n }\n\n panelSpec = panelSpecs[ i ];\n\n // wizard form has a finish form that is not included in the panelSpec collection, the finish form should\n // always be added to the list of panels\n\n panel.hidden = false;\n\n if (i <= this._furthestPanelIndex) {\n panel.linearVisited = true;\n }\n\n if (panelSpec) {\n panel.title = this.lmFormatUtilService.formatMessageRule(panelSpec.panelTitle, model, busFormSpec.fields);\n } else if (panel.finishForm) {\n panel.title = this.lmFormatUtilService.formatMessageRule(busFormSpec.wizardFinishForm.title, model, busFormSpec.fields);\n }\n\n if (panelSpec && panelSpec.visibility && !this.lmConditionUtilService.isValid(panelSpec.visibility, model)) {\n if (busFormSpec.panelNavigation || busFormSpec.isWizard) {\n continue;\n }\n panel.hidden = true;\n }\n\n let validPanel = (panelSpec && panelSpec.validity) ? this.lmConditionUtilService.isValid(panelSpec.validity, model) : true;\n\n if (panelSpec && !busFormSpec.isWizard && model.isCreateAction && this.isOTMPanel(panelSpec, model)) {\n validPanel = false;\n }\n\n // wizard pattern does not support visible when\n if (!validPanel && (busFormSpec.isWizard)) {\n continue;\n }\n\n panel.isValid = validPanel;\n\n if (panelSpec && (busFormSpec.panelNavigation || busFormSpec.isWizard)) {\n this.updateStepIcon(panel, dataView);\n }\n\n this.panels.push(panel);\n\n if (panel.hasSubPanels) {\n\n if (clearSubPanels) {\n // DPB TODO call folderClose on the panel.\n panel.subPanels = [];\n } else {\n // add the subpanels to the this.panels list\n this.addPanelSubPanels(busFormSpec, panel);\n }\n }\n\n if (panel.dashBoardPanes) {\n panel.dashBoardPanes.forEach(dashboardPanel => {\n this.updateDashBoardPanels(busFormSpec, model, dashboardPanel);\n });\n }\n }\n\n this.panelDisplayStateLastChanged = new Date().getTime();\n }\n\n private getNextAvailablePanelIndex(index: number): number {\n for (let n = 0, len = this.panels.length; n < len; n++) {\n if ((this.panels[n].index > index) && this.panels[n].isValid && this.panels[n].isVisible) {\n return this.panels[n].index;\n }\n }\n return -1;\n }\n\n private getPreviousAvailablePanelIndex(index: number): number {\n for (let n = this.panels.length -1; n >=0; n--) {\n if ((this.panels[n].index < index) && this.panels[n].isValid && this.panels[n].isVisible) {\n return this.panels[n].index;\n }\n }\n return -1;\n }\n\n public getClosestPanel(selectedPanelId: string) {\n let panel: LandmarkPanel;\n\n for (let i = 0, len = this._panels.length; i < len; i++) {\n panel = this._panels[ i ];\n\n // skip subPanels, they were added by their parent\n if (panel.isSubPanel) {\n continue;\n }\n\n if (panel.id === selectedPanelId) {\n // get selected index in this._panels\n // get index and then find next valid panel or go previous panels\n const nextPanelIndex = this.getNextAvailablePanelIndex(panel.index);\n if (nextPanelIndex === -1) {\n const previousPanelIndex = this.getPreviousAvailablePanelIndex(panel.index);\n if (previousPanelIndex === -1) {\n return null;\n } else {\n return this._panels[ previousPanelIndex ].id;\n }\n } else {\n return this._panels[ nextPanelIndex ].id;\n }\n return null;\n }\n }\n }\n\n private updateDashBoardPanels(busFormSpec: LMBusFormSpec, model: LMModel, dashboardPanel: LandmarkPanel): void {\n const panelSpec = dashboardPanel.busFormPanel;\n\n dashboardPanel.hidden = false;\n dashboardPanel.isVisible = true;\n dashboardPanel.title = this.lmFormatUtilService.formatMessageRule(panelSpec.panelTitle, model, busFormSpec.fields);\n\n if (panelSpec.visibility && !this.lmConditionUtilService.isValid(panelSpec.visibility, model)) {\n dashboardPanel.hidden = true;\n dashboardPanel.isVisible = false;\n }\n\n let validPanel = (panelSpec.validity) ? this.lmConditionUtilService.isValid(panelSpec.validity, model) : true;\n if (model.isCreateAction && this.isOTMPanel(panelSpec, model)) {\n validPanel = false;\n }\n\n dashboardPanel.isValid = validPanel;\n }\n\n public createSubPanels(panels: Array, busFormSpec: LMBusFormSpec, model: LMModel, formSpec: LMFormSpec): Array {\n let panel: LandmarkPanel;\n const panelSpecs: Array = panels;\n let panelSpec: LMCompositePanelSpec;\n const dataView = model.getData();\n\n const subPanels = this.buildInitialCompositePanels(busFormSpec, model, formSpec, panels, true);\n\n for (let i = 0, len = panels.length; i < len; i++) {\n panel = subPanels[ i ];\n panel.type = panels[ i ].panelType;\n\n // skip subPanels, they were added by their parent\n if (panel.isSubPanel) {\n continue;\n }\n\n panelSpec = panelSpecs[ i ];\n\n // wizard form has a finish form that is not included in the panelSpec collection, the finish form should\n // always be added to the list of panels\n\n panel.hidden = false;\n\n if (panelSpec) {\n panel.title = this.lmFormatUtilService.formatMessageRule(panelSpec.panelTitle, model);\n }\n\n if (panelSpec && panelSpec.visibility && !this.lmConditionUtilService.isValid(panelSpec.visibility, model)) {\n panel.hidden = true;\n }\n\n let validPanel = (panelSpec && panelSpec.validity) ? this.lmConditionUtilService.isValid(panelSpec.validity, model) : true;\n\n if (panelSpec) {\n if (model.isCreateAction && this.isOTMPanel(panelSpec, model)) {\n validPanel = false;\n }\n }\n\n if (!validPanel && (busFormSpec.panelNavigation || busFormSpec.isWizard)) {\n panel.hidden = true;\n }\n\n panel.isValid = validPanel;\n\n panel.isVisible = panel.isValid && !panel.hidden;\n\n if (panelSpec && (busFormSpec.panelNavigation || busFormSpec.isWizard)) {\n this.updateStepIcon(panel, dataView);\n }\n }\n\n return subPanels;\n }\n\n private isOTMPanel(panelSpec: LMCompositePanelSpec, model: LMModel): boolean {\n if (panelSpec.hasSubPanels) {\n return true;\n }\n\n return (panelSpec.panelType !== AppConstants.FORM_PANELTYPE_FORM);\n }\n\n private addPanelSubPanels(busFormSpec: LMBusFormSpec, panel: LandmarkPanel) {\n for (let i = 0, len = panel.subPanels.length; i < len; i++) {\n const subPanel: LandmarkPanel = panel.subPanels[ i ];\n\n const parentPanelIndex = this.getPanelIndexById(panel.id);\n\n if (parentPanelIndex < this._furthestPanelIndex || (panel.linearVisited && i <= this._furthestSubPanelIndex)) {\n subPanel.linearVisited = true;\n }\n\n if (panel.busFormPanel.subPanelSpec.validity) {\n subPanel.isValid = this.lmConditionUtilService.isValid(panel.busFormPanel.subPanelSpec.validity, subPanel.subPanelDataView);\n }\n\n if (panel.busFormPanel.subPanelSpec.mouseOverText) {\n subPanel.mouseOverText = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.subPanelSpec.mouseOverText, subPanel.subPanelDataView);\n }\n this.panels.push(subPanel);\n if (busFormSpec.panelNavigation || busFormSpec.isWizard) {\n this.updateStepIcon(subPanel, subPanel.subPanelDataView);\n }\n }\n }\n\n private updateStepProgress(panel: LandmarkPanel, dataView: LMDataView) {\n if (panel.busFormPanel.complete && this.lmConditionUtilService.isValid(panel.busFormPanel.complete, dataView)) {\n panel.stepProgress = 'COMPLETED';\n } else if (panel.busFormPanel.progress && this.lmConditionUtilService.isValid(panel.busFormPanel.progress, dataView)) {\n panel.stepProgress = 'IN_PROGRESS';\n } else {\n panel.stepProgress = 'NONE';\n }\n }\n\n private updateStepAlertInfo(panel: LandmarkPanel, dataView: LMDataView): boolean {\n if (panel.busFormPanel.alert) {\n if (panel.busFormPanel.redAlert && this.lmConditionUtilService.isValid([ panel.busFormPanel.redAlert.condition ], dataView)) {\n panel.stepAlert = 'RED';\n if (panel.busFormPanel.redAlert.alertMouseOverMessage) {\n panel.stepAlertMouseOver = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.redAlert.alertMouseOverMessage, dataView);\n }\n return true;\n } else if (panel.busFormPanel.yellowAlert && this.lmConditionUtilService.isValid([ panel.busFormPanel.yellowAlert.condition ], dataView)) {\n panel.stepAlert = 'YELLOW';\n if (panel.busFormPanel.yellowAlert.alertMouseOverMessage) {\n panel.stepAlertMouseOver = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.yellowAlert.alertMouseOverMessage, dataView);\n }\n return true;\n } else if (panel.busFormPanel.greenAlert && this.lmConditionUtilService.isValid([ panel.busFormPanel.greenAlert.condition ], dataView)) {\n panel.stepAlert = 'GREEN';\n if (panel.busFormPanel.greenAlert.alertMouseOverMessage) {\n panel.stepAlertMouseOver = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.greenAlert.alertMouseOverMessage, dataView);\n }\n return true;\n } else if (panel.busFormPanel.blueAlert && this.lmConditionUtilService.isValid([ panel.busFormPanel.blueAlert.condition ], dataView)) {\n panel.stepAlert = 'BLUE';\n if (panel.busFormPanel.blueAlert.alertMouseOverMessage) {\n panel.stepAlertMouseOver = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.blueAlert.alertMouseOverMessage, dataView);\n }\n return true;\n } else if (panel.busFormPanel.iconAlert && this.lmConditionUtilService.isValid([ panel.busFormPanel.iconAlert.condition ], dataView)) {\n panel.stepAlert = 'ICON';\n if (panel.busFormPanel.iconAlert.alertMouseOverMessage) {\n panel.stepAlertMouseOver = this.lmFormatUtilService.formatMessageRule(panel.busFormPanel.iconAlert.alertMouseOverMessage, dataView);\n }\n return true;\n }\n }\n return false;\n }\n\n public updateStepIcon(panel: LandmarkPanel, dataView: LMDataView) {\n this.updateStepProgress(panel, dataView);\n this.updateStepAlertInfo(panel, dataView);\n\n if (this.updateStepCompletedIcon(panel)) {\n return;\n }\n\n if (this.updateStepAlertIcon(panel)) {\n return;\n }\n\n if (this.updateStepInProgessIcon(panel)) {\n return;\n }\n\n panel.icon = AppConstants.STEP_PROCESS_UNVISITED_ICON;\n panel.iconInfo = null;\n }\n\n private updateStepCompletedIcon(panel: LandmarkPanel): boolean {\n if (panel.stepProgress === 'COMPLETED') {\n panel.icon = AppConstants.STEP_PROCESS_COMPLETE_ICON;\n panel.iconInfo = null;\n return true;\n } else {\n return false;\n }\n }\n\n private updateStepInProgessIcon(panel: LandmarkPanel): boolean {\n if (panel.stepProgress === 'IN_PROGRESS') {\n panel.icon = AppConstants.STEP_PROCESS_INPROCESS_ICON;\n panel.iconInfo = null;\n return true;\n } else {\n return false;\n }\n }\n\n private updateStepAlertIcon(panel: LandmarkPanel): boolean {\n if (panel.stepAlert === 'RED') {\n panel.icon = 'error';\n panel.iconInfo = panel.stepAlertMouseOver;\n return true;\n }\n\n if (panel.stepAlert === 'YELLOW') {\n panel.icon = 'alert';\n panel.iconInfo = panel.stepAlertMouseOver;\n return true;\n }\n\n if (panel.stepAlert === 'GREEN') {\n panel.icon = 'success';\n panel.iconInfo = panel.stepAlertMouseOver;\n return true;\n }\n\n if (panel.stepAlert === 'BLUE') {\n panel.icon = 'info';\n panel.iconInfo = panel.stepAlertMouseOver;\n return true;\n }\n\n // NOT SUPPORTED, SO USING info icon for now\n if (panel.stepAlert === 'ICON') {\n panel.icon = 'info';\n panel.iconInfo = panel.stepAlertMouseOver;\n return true;\n }\n\n panel.iconInfo = null;\n return false;\n }\n\n public buildCompositePanels(busFormSpec: LMBusFormSpec, model: LMModel, formSpec: LMFormSpec, compositeForm?: boolean): void {\n // The visibility condition is evaluated and only the tabs that are visible are included\n // in the collection\n // TODO: Identify when conditions are to be evaluated again and rebuild the tabs collection\n // TODO: An observable can be used to call this method to rebuild the collection\n\n this.panels = [];\n this._panels = [];\n\n const panelSpecs: Array = busFormSpec.panels;\n\n this._panels = this.buildInitialCompositePanels(busFormSpec, model, formSpec, panelSpecs, compositeForm);\n\n this.updateCompositePanels(busFormSpec, model, false);\n\n if (busFormSpec.contextForm) {\n this.contextForm = busFormSpec.contextForm;\n }\n\n if (!busFormSpec.panelNavigation && !busFormSpec.isWizard) {\n this.verticalTabs = (busFormSpec.showTabsOnLeft) ? busFormSpec.showTabsOnLeft : false;\n\n }\n }\n\n public buildSubStepPanels(panelSpec: LMCompositePanelSpec, landmarkPanel: LandmarkPanel, dataViewSet: LMDataViewSet): Array {\n const subPanels: Array = [];\n for (let i = 0, len = dataViewSet.data.length; i < len; i++) {\n subPanels.push(this.buildSubStepDynamicPanel(panelSpec, landmarkPanel, dataViewSet.data[ i ], i));\n }\n\n return subPanels;\n }\n\n private buildSubStepDynamicPanel(panelSpec: LMCompositePanelSpec, landmarkPanel: LandmarkPanel, subPanelDataView: LMDataView, index: number): LandmarkPanel {\n let panel: LandmarkPanel;\n const title: string = subPanelDataView.title; // DPB this is odd that it was added to the LMDataView should be handle on the browser client like other messagerules\n\n // find the first valid subPanel spec\n for (let i = 0, len = panelSpec.subPanelSpec.formSubPanels.length; i < len; i++) {\n\n // create a deep clone of the spec so we can add a unique namePrefix; see also lm-form-content-template.component.ts\n // TODO: future consideration for refactoring: use formOptions to pass form / panel id so deep-cloning would not be needed\n const subPanelSpec = JSON.parse(JSON.stringify(panelSpec.subPanelSpec.formSubPanels[ i ])) as LMCompositePanelSpec;\n const panelType = subPanelSpec.panelType;\n\n if (subPanelSpec.displayWhen\n && !this.lmConditionUtilService.isValid(subPanelSpec.displayWhen, subPanelDataView)) {\n continue;\n }\n\n const panelId = subPanelSpec.panelId + '_' + index;\n\n panel = {\n id: panelId,\n automationId: subPanelSpec.panelId,\n title,\n content: '',\n isVisible: true,\n isValid: true,\n isSubPanel: true,\n displayWhenIndex: i,\n parentId: landmarkPanel.id,\n subPanelDataView,\n busFormPanel: subPanelSpec,\n panelText: subPanelSpec.panelText,\n icon: AppConstants.STEP_PROCESS_UNVISITED_ICON,\n // onCompositeForm: compositeForm // DPB this needs to be understood\n };\n\n const parentPanelIndex = this.getPanelIndexById(landmarkPanel.id);\n\n if (parentPanelIndex < this._furthestPanelIndex || (landmarkPanel.linearVisited && index <= this._furthestSubPanelIndex)) {\n panel.linearVisited = true;\n }\n\n if (panelSpec.subPanelSpec.validity) {\n panel.isValid = this.lmConditionUtilService.isValid(panelSpec.subPanelSpec.validity, subPanelDataView);\n }\n\n if (panelSpec.subPanelSpec.mouseOverText) {\n panel.mouseOverText = this.lmFormatUtilService.formatMessageRule(panelSpec.subPanelSpec.mouseOverText, subPanelDataView);\n }\n\n if (panelType === AppConstants.FORM_PANELTYPE_ACTIONIS) {\n // add panelId to namePrefix to ensure field id uniqueness\n subPanelSpec.formSpec.busFormSpec.namePrefix = panelId;\n\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.busFormPanel = subPanelSpec;\n panel.formSpec = subPanelSpec.formSpec;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_FORMLIST) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.listSpec = subPanelSpec.listSpec;\n panel.type = subPanelSpec.panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_MULTILIST) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.busFormPanel = subPanelSpec;\n panel.sections = subPanelSpec.lists;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_TEMPLATEFORM) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.busFormPanel = subPanelSpec;\n panel.layout = subPanelSpec.formSpec.busFormSpec.busFormLayoutSpec.layout;\n panel.formSpec = subPanelSpec.formSpec;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_URL) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.type = panelSpec.panelType;\n panel.url = subPanelSpec.URL;\n panel.type = panelType;\n } else {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.type = subPanelSpec.panelType;\n panel.validity = subPanelSpec.validity;\n }\n\n this.updateStepIcon(panel, subPanelDataView);\n return panel;\n }\n }\n\n private updateFieldIdsMap(busFormSpec: LMBusFormSpec, layout: LMFormLayout, panelId: string) {\n if (busFormSpec.implementsDashBoardView) {\n return;\n }\n\n // need to add specFields? not sure, issue to determine which panel compound field is on\n this.lmCommonUtilService.getBindIdsFromLayout(layout).forEach( fieldId => {\n if (this._mapFieldIds[ fieldId ]) {\n if (!this._mapFieldIds[ fieldId ].includes(panelId)) {\n this._mapFieldIds[ fieldId ].push(panelId);\n }\n\n } else {\n this._mapFieldIds[ fieldId ] = [ panelId ];\n }\n });\n }\n\n public getPanelIdsForFieldId(fieldId: string) {\n if (this._mapFieldIds && this._mapFieldIds[ fieldId ]) {\n return this._mapFieldIds[ fieldId ];\n }\n\n return [];\n }\n\n private buildInitialCompositePanels(busFormSpec: LMBusFormSpec, model: LMModel, formSpec: LMFormSpec, panelSpecs: Array, compositeForm?: boolean): Array {\n let panel: LandmarkPanel;\n const panels: Array = [];\n let finishFormIndex = 0;\n\n for (let i = 0, len = panelSpecs.length; i < len; i++) {\n finishFormIndex = i + 1;\n const panelSpec = panelSpecs[ i ];\n const title = this.lmFormatUtilService.formatMessageRule(panelSpec.panelTitle, model);\n const panelType = panelSpec.panelType;\n\n panel = {\n id: panelSpec.panelId,\n automationId: panelSpec.automationId,\n title,\n content: '',\n isVisible: true,\n isValid: true,\n onCompositeForm: compositeForm,\n busFormPanel: panelSpec,\n hidden: false,\n panelText: panelSpec.panelText,\n panelHeader: panelSpec.panelHeader,\n visibility: panelSpec.visibility,\n widgetWidth: this.lmSpecService.toWidgetSizeToType(panelSpec.dashboardViewWidth),\n widgetHeight: this.lmSpecService.toWidgetSizeToType(panelSpec.dashboardViewHeight),\n spanningColumns: panelSpec.twelveColumnGridSpan? panelSpec.twelveColumnGridSpan : undefined\n };\n\n if (panelSpec.specialActions) {\n panel.specialActions = panelSpec.specialActions;\n }\n\n if (panelSpec.overviewNavigation) {\n panel.overviewNavigation = panelSpec.overviewNavigation;\n }\n\n if (panelType === AppConstants.FORM_PANELTYPE_FORM) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.layout = panelSpec.busFormLayoutSpec.layout;\n panel.formSpec = formSpec;\n panel.type = panelType;\n panel.saveOnNext = panelSpec.saveOnNext;\n\n // maps a panelId to a fieldId; used when lazyloadform is true and needed when an error is set on a field where\n // a panel has not been initialized\n this.updateFieldIdsMap(busFormSpec, panelSpec.busFormLayoutSpec.layout, panel.id);\n\n } else if (panelType === AppConstants.FORM_PANELTYPE_INDEPENDENTFORM) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.formSpec = panelSpec.formSpec;\n\n // add panelId to namePrefix to ensure field id uniqueness\n panel.formSpec.busFormSpec.namePrefix = panelSpec.panelId;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_ACTIONIS) {\n // todo spec-url-refactor dboehm what do to do here?\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.formSpec = panelSpec.formSpec;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_FORMLIST) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.listSpec = panelSpec.listSpec;\n panel.listSpec.busListSpec.disableFieldOptions = panelSpec.listSpec.busListSpec.disableFieldOptions || formSpec.disableFieldOptions;\n panel.type = panelSpec.panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_MULTILIST) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.sections = panelSpec.lists;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_TEMPLATEFORM) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.layout = panelSpec.formSpec.busFormSpec.busFormLayoutSpec ? panelSpec.formSpec.busFormSpec.busFormLayoutSpec.layout : null;\n panel.formSpec = panelSpec.formSpec;\n panel.type = panelType;\n } else if (panelType === AppConstants.FORM_PANELTYPE_URL) {\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.type = panelSpec.panelType;\n panel.url = panelSpec.URL;\n } else {\n panel.id = panelSpec.panelId;\n panel.index = i;\n panel.initialized = false;\n panel.loaded = false;\n panel.reload = false;\n panel.disabled = false;\n panel.hidden = false;\n panel.type = panelSpec.panelType;\n panel.validity = panelSpec.validity;\n panel.useTwelveColumnGrid = panelSpec.useTwelveColumnGrid;\n }\n // add default icon\n panel.icon = AppConstants.STEP_PROCESS_UNVISITED_ICON;\n\n panel.hasSubPanels = panelSpec.hasSubPanels;\n\n if (panelSpec.hasSubPanels) {\n panel.subPanels = new Array();\n panel.busFormPanel = panelSpec;\n }\n\n panels.push(panel);\n }\n\n if ((busFormSpec.panelNavigation || busFormSpec.isWizard) && busFormSpec.wizardFinishForm) {\n if (busFormSpec.wizardFinishForm.formType === 'Summary') {\n this.lmLoggerService.log('Summary Form not allowed');\n } else {\n\n const finishFormTitle = this.lmFormatUtilService.formatMessageRule(busFormSpec.wizardFinishForm.title, model);\n const formOptions: LMFormOptions = {\n isReadOnlyForm: true\n };\n\n // Add wizard finish form\n const finishFormPanel: LandmarkPanel = {\n id: busFormSpec.wizardFinishForm.name,\n title: finishFormTitle,\n content: '',\n isVisible: true,\n isValid: true,\n index: finishFormIndex,\n initialized: false,\n // add default icon\n icon: AppConstants.STEP_PROCESS_UNVISITED_ICON,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n type: 'form',\n layout: busFormSpec.wizardFinishForm.busFormLayoutSpec.layout,\n // validity: true, // validity is of type LMCondition[]. We can make it a boolean too but not sure what that means.\n finishForm: true,\n formSpec, // busFormSpec.wizardFinishForm,\n formOptions\n };\n\n panels.push(finishFormPanel);\n }\n }\n\n return panels;\n }\n\n public getPanelTransaction(options: LMGetPanelTransactionOptions): PanelTransactionEnum {\n const busFormSpec: LMBusFormSpec = options.busFormSpec;\n const currentPanel: LandmarkPanel = options.currentPanel;\n const targetPanel: LandmarkPanel = options.targetPanel;\n const isNext: boolean = options.isNext;\n const isPanelDirty: boolean = options.isPanelDirty;\n const isCreateMode: boolean = options.isCreateMode;\n const enforceLinearWhen = options.enforceLinearWhen;\n\n // enforce linear when kicks off the validation process only when the 'Next' action is used!!!\n if (enforceLinearWhen) {\n let panelTransaction = PanelTransactionEnum.FORM_PANEL_TRANSACTION_NONE_TYPE;\n\n if (isNext) {\n\n if (isPanelDirty || isCreateMode) {\n panelTransaction = PanelTransactionEnum.FORM_PANEL_TRANSACTION_VALIDATION_TYPE;\n }\n\n if (currentPanel.type !== AppConstants.FORM_PANELTYPE_FORM || currentPanel.saveOnNext || this.isCrossingBoundary(busFormSpec, currentPanel, targetPanel, isNext)) {\n panelTransaction = PanelTransactionEnum.FORM_PANEL_TRANSACTION_COMMIT_TYPE;\n }\n }\n return panelTransaction;\n }\n\n // leaving the existing logic unchanged, goal is to deprecate this behavior!!!\n if (currentPanel.type === AppConstants.FORM_PANELTYPE_ACTIONIS\n || currentPanel.type === AppConstants.FORM_PANELTYPE_URL) {\n return (isNext\n ? PanelTransactionEnum.FORM_PANEL_TRANSACTION_COMMIT_TYPE\n : PanelTransactionEnum.FORM_PANEL_TRANSACTION_NONE_TYPE);\n } else if (currentPanel.type !== AppConstants.FORM_PANELTYPE_FORM) {\n return (isPanelDirty\n ? PanelTransactionEnum.FORM_PANEL_TRANSACTION_COMMIT_TYPE\n : PanelTransactionEnum.FORM_PANEL_TRANSACTION_NONE_TYPE);\n } else {\n if (isNext && currentPanel.saveOnNext && (isPanelDirty || isCreateMode)) {\n return PanelTransactionEnum.FORM_PANEL_TRANSACTION_COMMIT_TYPE;\n }\n if (this.isCrossingBoundary(busFormSpec, currentPanel, targetPanel, isNext)) {\n return (isCreateMode || isPanelDirty // commit\n ? PanelTransactionEnum.FORM_PANEL_TRANSACTION_COMMIT_TYPE\n : PanelTransactionEnum.FORM_PANEL_TRANSACTION_NONE_TYPE);\n } else {\n return (isCreateMode || isPanelDirty // validate\n ? PanelTransactionEnum.FORM_PANEL_TRANSACTION_VALIDATION_TYPE\n : PanelTransactionEnum.FORM_PANEL_TRANSACTION_NONE_TYPE);\n }\n }\n }\n\n private isCrossingBoundary(busFormSpec: LMBusFormSpec, currentPanel: LandmarkPanel, targetPanel: LandmarkPanel, isNext: boolean) {\n if (busFormSpec.isWizard) {\n return this.isCrossingWizardBoundary(currentPanel, targetPanel, isNext);\n } else {\n return this.isCrossingStepBoundary(currentPanel, targetPanel, isNext);\n }\n }\n\n private isCrossingWizardBoundary(currentPanel: LandmarkPanel, targetPanel: LandmarkPanel, isNext: boolean): boolean {\n /*\n if the target step is the summary panel\n you are crossing a boundary\n\n if the current step is not a AppConstants.FORM_PANELTYPE_FORM\n you are crossing a boundary\n\n if the current step is a AppConstants.FORM_PANELTYPE_FORM and\n the target step is not a AppConstants.FORM_PANELTYPE_FORM and\n the navigation is to the next step.\n you are crossing a boundary\n */\n\n if ((targetPanel == null) || (targetPanel.id === currentPanel.id) || (targetPanel.finishForm)\n || (targetPanel.type !== AppConstants.FORM_PANELTYPE_FORM)\n || (isNext && currentPanel.type === AppConstants.FORM_PANELTYPE_FORM && targetPanel.type !== AppConstants.FORM_PANELTYPE_FORM)) {\n return true;\n } else {\n return false;\n }\n }\n\n private isCrossingStepBoundary(currentPanel: LandmarkPanel, targetPanel: LandmarkPanel, isNext: boolean): boolean {\n /*\n if the target step is the summary panel\n you are crossing a boundary\n\n if the current step is not a AppConstants.FORM_PANELTYPE_FORM\n you are crossing a boundary\n\n if the current step is a AppConstants.FORM_PANELTYPE_FORM and\n the target step is not a AppConstants.FORM_PANELTYPE_FORM\n you are crossing a boundary\n */\n\n // if ((targetPanel == null) || (targetPanel.finishForm)\n // || (currentPanel.type !== AppConstants.FORM_PANELTYPE_FORM)\n // || (currentPanel.type === AppConstants.FORM_PANELTYPE_FORM && targetPanel.type !== AppConstants.FORM_PANELTYPE_FORM)) {\n // return true;\n // } else {\n // return false;\n // }\n\n return true; // in 3.5 landmarksubstep.js it always returns true\n }\n\n public requiresAcknowledgement(panel: LandmarkPanel, dataView: LMDataView): boolean {\n if (panel.hasSubPanels) { // DONT run acknowledgment on a subpanel header\n return false;\n }\n\n if (!panel.busFormPanel) {\n return false; // must be a summary form on a wizard\n }\n\n if (panel.busFormPanel.acknowledgeAction && panel.busFormPanel.acknowledgeCompletedWhen) {\n return !this.lmConditionUtilService.isValid(panel.busFormPanel.acknowledgeCompletedWhen, dataView);\n } else {\n return panel.busFormPanel.acknowledgeAction ? true : false;\n }\n }\n\n public refreshSubPanelViews(formUrl: string, dataViews: LMDataView[]): Observable {\n return this.lmFormRequestService.refreshSubPanelViews(formUrl, dataViews);\n }\n}\n\nexport type PanelTransaction = 'commit' | 'validation' | 'none';\n\nexport enum PanelTransactionEnum {\n FORM_PANEL_TRANSACTION_COMMIT_TYPE = 'commit',\n FORM_PANEL_TRANSACTION_VALIDATION_TYPE = 'validation',\n FORM_PANEL_TRANSACTION_NONE_TYPE = 'none'\n}\n\nexport interface LMGetPanelTransactionOptions {\n busFormSpec: LMBusFormSpec,\n currentPanel: LandmarkPanel,\n targetPanel: LandmarkPanel,\n isNext: boolean,\n isPanelDirty: boolean,\n isCreateMode: boolean,\n enforceLinearWhen: boolean\n}\n\nexport class LMStepPanelEvent {\n private _panelId: string;\n private _panelTransaction: PanelTransaction;\n private _transactionObserver: Observer;\n\n constructor(\n panelId: string,\n panelTransaction: PanelTransaction,\n transactionObserver: Observer) {\n this._panelId = panelId;\n this._panelTransaction = panelTransaction;\n this._transactionObserver = transactionObserver;\n }\n\n get panelId(): string {\n return this._panelId;\n }\n\n get panelTransaction(): PanelTransaction {\n return this._panelTransaction;\n }\n\n get transactionObserver(): Observer {\n return this._transactionObserver;\n }\n}\n\nexport class LMPanelTransactionEvent implements LMModelSourceEvent {\n private _originatingPanel: string;\n private _originatingList: string;\n private _callBack: Observer;\n\n constructor(\n originatingPanel: string) {\n this._originatingPanel = originatingPanel;\n }\n\n get type(): LMModelSourceType {\n return 'transaction';\n }\n get originatingPanel(): string {\n return this._originatingPanel;\n }\n\n get originatingList(): string {\n return this._originatingList;\n }\n\n set originatingList(originatingList: string) {\n this._originatingList = originatingList;\n }\n\n get callBack(): Observer {\n return this._callBack;\n }\n\n set callBack(callBack: Observer) {\n this._callBack = callBack;\n }\n}\n","/**\n * Created by ppatton on 2/28/2017.\n */\nimport { Injectable } from '@angular/core';\nimport { FormRequestType } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormRequest } from '@form/lm-form.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class LMFormRequestService {\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n ) {}\n\n // \"requestType\":\"userDefinedStates\",\n // \"fieldId\":\"PrmSource\",\n // \"dataView\":{ },\n // \"action\":\"SubmitJobApplicationInProgress\",\n\n // pageSize = -1 means infinite page size, so all records are returned\n public getUserDefinedStates(formUrl: string, fieldId: string, dataView: LMDataView, actionName?: string, pageSize = -1): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.UserDefinedStates },\n { fieldId, dataView, action: actionName, pageSize });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public fireInitialValueRules(formUrl: string, fieldId: string, dataView: LMDataView, actionName?: string, sourceResource?: Resource): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.InitialValue },\n { fieldId, dataView, action: actionName });\n\n if (sourceResource) {\n formRequest.sourceResourceType = sourceResource.resourceType;\n formRequest.sourceResourceId = sourceResource.resourceId;\n }\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getDefineFormUrl(formUrl: string, fieldId: string, dataView: LMDataView, actionName?: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.DefineFormUrl },\n { fieldId, dataView, action: actionName });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getConditionNamesForBusClass(formUrl: string, busClassName: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.ConditionNamesForBusClass },\n { param1: busClassName });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getFieldValues(formUrl: string, fieldList: Array): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.FieldValues },\n { param1: fieldList });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getBusinessClassOntology(formUrl: string, businessClass: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n {\n requestType: FormRequestType.BusClassOntology,\n businessClass });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getRelatedBusClasses(formUrl: string, businessClass: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n {\n requestType: FormRequestType.RelatedBusClassNames,\n businessClass });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getBusClasses(formUrl: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.BusClassNames });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getListNamesAndViewsForBusClass(formUrl: string, busClassName: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.ListNamesAndViewsForBusClass },\n { param1: busClassName });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getListViewsForBusClass(formUrl: string, busClassName: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.ListNamesForBusClass },\n { param1: busClassName });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public refreshSubPanelViews(formUrl: string, dataViews: LMDataView[]): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.RefreshSubPanelList },\n { param1: dataViews });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getDataViewFieldButtonFormInfo(formUrl: string, fieldId: string, dataView: LMDataView, displayedSelectDialog = false): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.DataViewDataFormInfo },\n { fieldId },\n { dataView },\n { param1: displayedSelectDialog });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public getDataViewFieldButtonValue(formUrl: string, dataView: LMDataView, fieldId: string, fieldDataView: LMDataView, busClassName: string, busFormName: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.DataViewDataFieldValue },\n { dataView },\n { fieldId },\n { param1: fieldDataView },\n { param2: busClassName },\n { param3: busFormName });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public validateLplQuery(formUrl: string, dataView: LMDataView, lpl: string, busClass: string,\n isBusinessClassCompute = false, computeType = ''): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.ValidateCondition },\n { param1: busClass },\n { param2: lpl },\n { dataView },\n { isBusinessClassCompute },\n { computeType });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n public validateCubeRelationLplQuery(formUrl: string, lpl: string, busClass: string): Observable {\n const formRequest: LMFormRequest = Object.assign(\n { requestType: FormRequestType.CubeRelValidateLPL },\n { param1: busClass },\n { param2: lpl });\n\n return this.executeFormRequest(formUrl, formRequest);\n }\n\n private executeFormRequest(url: string, formRequest: LMFormRequest): Observable {\n return this.http\n .post(url, formRequest).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n}\n\nexport interface DefineFormSpecUrlResponse {\n defineFormResourceId: string;\n defineFormUrl: string;\n status: LMServerResponseStatus;\n statusCode?: number;\n statusText?: string;\n details?: string;\n message?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { AppConstants, LMFormType } from '@utils/app.constants';\nimport { LMContextService } from '@services/lm-context.service';\n\n@Injectable()\nexport class LMFormSpecUtilService {\n\n constructor(private lmContextService: LMContextService) {}\n\n public formName(formSpec?: LMFormSpec): string {\n return (formSpec) ? formSpec.busFormSpec.name : '';\n }\n\n public formNamePrefix(formSpec?: LMFormSpec): string {\n return (formSpec && formSpec.busFormSpec && formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n }\n\n public isActionForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.formType === LMFormType.ACTION);\n }\n\n public isActionFormWithSections(formSpec: LMFormSpec) {\n return this.isActionForm && formSpec.busFormSpec.panels;\n }\n\n public isBusinessTask(formSpec: LMFormSpec): boolean {\n return (formSpec && formSpec.busClassSpec && formSpec.busClassSpec.isBusTask)\n }\n\n public isChangePasswordForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.name === 'ChangePasswordUIMenuForm');\n }\n\n public isCompactForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.subFormType\n && formSpec.busFormSpec.subFormType === AppConstants.FORMSUBTYPE_COMPOUNDFLD\n );\n }\n\n public isContextForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.isContextForm) ? true : false;\n }\n\n public isContextFormOnSide(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.isContextForm && formSpec.busFormSpec && formSpec.busFormSpec.showContextFormOnLeft);\n }\n\n public isCompositeForm(formSpec?: LMFormSpec): boolean {\n return (formSpec\n && (formSpec.busFormSpec.formType === LMFormType.COMPOSITE || this.isActionFormWithSections(formSpec))\n && !formSpec.busFormSpec.panelNavigation\n && !formSpec.busFormSpec.isWizard);\n }\n\n public isDetailFieldsForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.isDetailFieldsForm);\n }\n\n public isInstanceCountChartForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.formType === LMFormType.CHART);\n }\n\n public isMatrixForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.formType === LMFormType.MATRIX);\n }\n\n public isCodeBlockFilter(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec && formSpec.busFormSpec.hasOwnProperty('codeBlockFieldId'));\n }\n\n public isMenuLayoutForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.formType === LMFormType.MENU);\n }\n\n public isReadOnlyForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.isReadOnly === true) || this.lmContextService.inMingleWidget();\n }\n\n public isResponseRequired(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.subFormType\n && formSpec.busFormSpec.subFormType === AppConstants.FORMSUBTYPE_RESPONSEREQD);\n }\n\n public isPageContextForm(formSpec: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec && formSpec.busFormSpec.formType === LMFormType.PAGE_CONTEXT);\n }\n\n public isSearchForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec && formSpec.busFormSpec.formType === LMFormType.SEARCH\n && !(formSpec.busFormSpec.panelNavigation || formSpec.busFormSpec.isWizard));\n }\n\n public isCubeSearchForm(formSpec?: LMFormSpec): boolean {\n return this.isSearchForm(formSpec) && formSpec.busFormSpec.subFormType === AppConstants.FORMSUBTYPE_CUBESEARCHFORM;\n }\n\n public isStandardForm(formSpec?: LMFormSpec): boolean {\n return (formSpec\n && (formSpec.busFormSpec.formType === LMFormType.STANDARD\n || formSpec.busFormSpec.formType === LMFormType.ACTION)\n && !(formSpec.busFormSpec.panelNavigation || formSpec.busFormSpec.isWizard))\n && !this.isActionFormWithSections(formSpec);\n }\n\n public isStepProcessForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.formType === LMFormType.COMPOSITE\n && (formSpec.busFormSpec.panelNavigation || formSpec.busFormSpec.isWizard));\n }\n\n public isSubForm(formSpec?: LMFormSpec): boolean {\n return (formSpec && formSpec.busFormSpec.subFormType\n && formSpec.busFormSpec.subFormType === AppConstants.BUTTON_TYPE_SUBFORM\n );\n }\n\n public isTemplateTarget(formSpec: LMFormSpec): boolean {\n return (formSpec && formSpec.isTemplateForm);\n }\n\n public originalCompactFieldLayout(formSpec?: LMFormSpec): LMCompoundFieldLayout {\n return formSpec && formSpec.busFormSpec ? formSpec.busFormSpec.originalCompoundFieldLayout : null;\n }\n\n public storageKey(formSpec?: LMFormSpec): string {\n // NOTE: if the storageKey is undefined, then use this pattern; needs to be the same as UrlUtils.java > buildStorageKeyTemplate()\n return (formSpec && formSpec.storageKey)\n ? formSpec.storageKey\n : this.lmContextService.getUrlPdlOrDa() + '_{resourceId}_{contextResourceId}_' + this.lmContextService.getActorId();\n }\n\n public includeFormPaging(dataView: DataView): boolean {\n return (dataView\n && dataView.hasOwnProperty('pagingInfo')\n && dataView.hasOwnProperty('includeFormPaging'));\n // && dataView.includeFormPaging);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMActionService } from '@services/lm-action.service';\nimport { AppConstants, LMDialogButtonKey, LMFormType } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMToolbarServiceBase } from '@toolbar/lm-toolbar-service.base';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormActionUtilService } from './lm-form-action-util.service';\nimport { LMFormSpecUtilService } from './lm-form-spec-util.service';\nimport { LMContextService } from '@services/lm-context.service';\n\nimport * as urltemplate from 'url-template';\nimport * as _ from 'lodash';\nimport { LMToolbarServiceAdapter } from '@toolbar/lm-toolbar-service-adapter';\nimport { LMFormatUtilService } from '@services/utils';\n\n@Injectable()\nexport class LMFormToolbarService extends LMToolbarServiceBase {\n private isCreateMode = false;\n\n constructor(\n private lmActionService: LMActionService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmContextService: LMContextService,\n private lmFormActionUtilService: LMFormActionUtilService,\n private lmLoggerService: LMLoggerService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n public lmToolbarServiceAdapter: LMToolbarServiceAdapter\n ) {\n super(lmToolbarServiceAdapter);\n }\n\n public buildToolbarButtons(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): void {\n this.updateToolbarState(formUrlInfo, formSpec, formStateInfo);\n }\n\n public updateToolbarState(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): void {\n // -----------------------------------------------------------\n // Must rebuild the toolbar so that actions in the overflow\n // menu will be available for the dataView.\n // TODO ppatton - look into building the static part of the\n // toolbar during a single build and only rebuilding the\n // dynamic actions menu in UpdateToolbar. May not be worth\n // the effort as I can't imagine it will save much processing\n // time.\n // -----------------------------------------------------------\n try {\n this.toolbarButtons = [];\n\n // LMCLIENT-33564: BusTask/ActionForm direct link\n const mingleInbox = (this.lmContextService.inMingleInbox() || formUrlInfo.fromInbox);\n if (this.lmFormSpecUtilService.isBusinessTask(formSpec) || (this.lmFormSpecUtilService.isActionForm(formSpec) && !mingleInbox)) {\n formStateInfo.disableAllActions = true;\n this.toolbarButtons = this.getBustaskToolbarButtons(formSpec, formStateInfo.dataView);\n }\n\n if (!formStateInfo.disableAllActions) {\n if (!formSpec.busFormSpec.isWizard) {\n // Two entry points - buildToolbarButtons and updateToolbarState - isCreateMode is set twice\n // isCreateMode is used in building the list of toolbar buttons.\n const actionSpec = (formStateInfo && formStateInfo.dataView) ?\n this.lmFormActionUtilService.getTargetAction(formSpec, formStateInfo.dataView) : undefined;\n this.isCreateMode = (actionSpec && actionSpec.type === AppConstants.ACTION_TYPE_CREATE);\n\n if (formStateInfo && formStateInfo.dataView && formStateInfo.dataView.processFlowActions) {\n this.toolbarButtons = this.getProcessFlowActionToolbarButtons(formUrlInfo, formSpec, formStateInfo);\n } else if (formSpec.busFormSpec.toolbar) {\n this.toolbarButtons = this.getCalledOutToolbarButtons(formSpec, formStateInfo);\n } else {\n this.toolbarButtons = this.getStandardToolbarButtons(formSpec, formStateInfo);\n }\n }\n }\n\n this._updateToolbarState(this.toolbarButtons, formSpec, formStateInfo);\n this.fireToolbarObservable();\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n // ----------------------------------------------------------------------------------------\n // PRIVATE METHODS\n // ----------------------------------------------------------------------------------------\n\n private _updateToolbarState(toolbarButtons: Array, formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): void {\n if (!formStateInfo.dataView) {\n return;\n }\n\n try {\n formStateInfo.disableSave = formStateInfo.isModified === undefined || !formStateInfo.isModified ? true : false;\n formStateInfo.disableSaveAndNew = formStateInfo.includeSaveAndNew !== undefined ? formStateInfo.disableSave : true;\n\n toolbarButtons.map(\n (toolbarButton: LMToolbarButton) => {\n // Update state for non menu buttons\n this.setStateByActionType(formSpec, toolbarButton, formStateInfo);\n\n // ----------------------------------------------------\n // if the createMenuButton is in the toolbarButtons\n // then build it's menu item.\n // ----------------------------------------------------\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON) {\n this.buildCreateMenuButtonMenu(toolbarButton, formSpec, formStateInfo.dataView)\n }\n });\n\n toolbarButtons.map(toolbarButton => {\n if (toolbarButton.menu) {\n toolbarButton.menu.map(item =>\n this.setStateByActionType(formSpec, toolbarButton, formStateInfo));\n }\n });\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n private getBustaskToolbarButtons(formSpec: LMFormSpec, dataView: LMDataView): LMToolbarButton[] {\n const actionRefs = [\n {\n id: AppConstants.STANDARD_SAVE,\n type: 'standard',\n label: Soho.Locale.translate(LMDialogButtonKey.SUBMIT)\n } as LMBusActionReference\n ];\n const actionSpec = this.lmActionService.getTargetAction({ formSpec, dataView });\n if (actionSpec.willRunAsynchronous && !this.lmContextService.hasAsOfDateInPast()) {\n actionRefs.splice(0, 0, {\n id: AppConstants.STANDARD_TOOLBAR_SCHEDULE,\n type: 'standard',\n label: Soho.Locale.translate(LMDialogButtonKey.SCHEDULE)\n });\n }\n return this.actionRefArrayToToolbarButtonArray(formSpec, actionRefs);\n }\n\n private getProcessFlowActionToolbarButtons(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): Array {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n const pfActionRefs = this.pfActionsToActionRefArray(formStateInfo.dataView.processFlowActions);\n\n // Add Save as draft button if target action is available\n const actionSpec = this.lmFormActionUtilService.getTargetAction(formSpec, formStateInfo.dataView);\n if (actionSpec) {\n pfActionRefs.push(this.getStandardToolbarActions().saveAsDraft);\n }\n\n if ((this.lmContextService.inMingleInbox() || formUrlInfo.fromInbox ) && formSpec.busFormSpec.formType === LMFormType.ACTION) {\n // Add compare button for action requests\n if (formStateInfo.dataView.canCompare) {\n pfActionRefs.push(this.getStandardToolbarActions().pfCompare);\n }\n }\n\n const pfActionToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(formSpec, pfActionRefs);\n return pfActionToolbarButtons;\n }\n\n private getCalledOutToolbarButtons(formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): Array {\n // make a deep clone of the toolbar so the relActionUrl does not get over-written\n const calledOutActionRefs = this.getCalledOutToolbarActionRefs(formSpec, formStateInfo);\n let calledOutToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(formSpec, calledOutActionRefs);\n\n if (!this.lmContextService.casualMode()) {\n let actionTypes = [\n AppConstants.ACTION_TYPE_DELETE,\n AppConstants.ACTION_TYPE_FUNCTION,\n AppConstants.ACTION_TYPE_UPDATE ];\n\n if (formStateInfo.isModified) {\n actionTypes = [ ...actionTypes, AppConstants.STANDARD_SAVE ];\n }\n\n if (!formStateInfo.calledOutActionsOnly) {\n const moreMenuItems = this.getAllActionsMenuItems(formSpec, formStateInfo, calledOutActionRefs, actionTypes);\n calledOutToolbarButtons = [ ...calledOutToolbarButtons, ...moreMenuItems ];\n }\n }\n\n return calledOutToolbarButtons;\n }\n\n private getCalledOutToolbarActionRefs(formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): LMBusActionReference[] {\n return formSpec.busFormSpec.toolbar\n .map(actionRef =>\n this.mapCalledOutActionRef(formSpec, actionRef, formStateInfo));\n }\n\n private mapCalledOutActionRef(formSpec: LMFormSpec, actionRef: LMBusActionReference, formStateInfo: LMFormStateInfo): LMBusActionReference {\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON) {\n\n const actionSpecArray: Array = this.lmActionService.getCreateActions(\n formSpec.busClassSpec.actions, formStateInfo.dataView.actionIndexes);\n\n // if only one valid create action, display that instead of the called out create menu\n if (actionSpecArray && actionSpecArray.length === 1) {\n const createActionRefs = this.actionSpecsToActionRefs(actionSpecArray);\n let createRef = createActionRefs[0]\n\n // If there is no label on called out, show no label\n if (!actionRef.label) {\n createRef.label = undefined;\n }\n\n // if single create doesn't have a icon, use the create menu icon\n if (!createRef.icon) {\n createRef.icon = actionRef.icon;\n }\n\n return createRef;\n }\n }\n\n return actionRef;\n }\n\n private getStandardToolbarButtons(formSpec: LMFormSpec, formStateInfo: LMFormStateInfo): Array {\n const standardActionRefs: Array = this.getStandardToolbarActionReferences(formSpec);\n let standardToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(formSpec, standardActionRefs);\n let excludedActionRefs = standardActionRefs;\n\n const deleteActionRefs = this.lmActionService.getValidFormDeleteActions( formSpec.busClassSpec.actions, formStateInfo.dataView);\n if (!this.lmActionService.hasStandardDelete(deleteActionRefs)) {\n excludedActionRefs = excludedActionRefs.filter(action => !(action.id === AppConstants.STANDARD_TOOLBAR_DELETE));\n }\n\n if (formStateInfo.suppressStandardToolbar) {\n standardToolbarButtons.forEach((button: LMToolbarButton) => button.isMoreMenuItem = true);\n }\n\n const moreMenuItems: Array = this.getAllActionsMenuItems(formSpec, formStateInfo, excludedActionRefs);\n\n standardToolbarButtons = [ ...standardToolbarButtons, ...moreMenuItems ];\n\n return standardToolbarButtons;\n }\n\n private getStandardToolbarActionReferences(formSpec: LMFormSpec): Array {\n const actionReferenceArray: Array = [];\n const isMatrixForm = formSpec.busFormSpec.formType === LMFormType.MATRIX;\n if (isMatrixForm) {\n actionReferenceArray.push(this.getStandardToolbarActions().save);\n actionReferenceArray.push(this.getStandardToolbarActions().matrixShowDetails);\n actionReferenceArray.push(this.getStandardToolbarActions().matrixHideDetails);\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n } else {\n actionReferenceArray.push(this.getStandardToolbarActions().prevRecord);\n actionReferenceArray.push(this.getStandardToolbarActions().nextRecord);\n actionReferenceArray.push(this.getStandardToolbarActions().create);\n actionReferenceArray.push(this.getStandardToolbarActions().createMenu);\n actionReferenceArray.push(this.getStandardToolbarActions().save);\n actionReferenceArray.push(this.getStandardToolbarActions().saveAndNew);\n actionReferenceArray.push(this.getStandardToolbarActions().delete);\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n }\n\n return actionReferenceArray;\n }\n\n private getAllActionsMenuItems(formSpec: LMFormSpec, formStateInfo: LMFormStateInfo, excludedActionRefs?: Array, actionTypes?: Array): Array {\n if (this.lmContextService.casualMode()) {\n return [];\n }\n\n // all actions for a more or right click menu\n const validActionRefs: Array = this.getAllValidActionReferences(formSpec, formStateInfo, excludedActionRefs, actionTypes);\n\n // put separator before options/drill\n if (validActionRefs && validActionRefs.length > 0 && validActionRefs[validActionRefs.length - 1].id !== this.getStandardSeparatorMenuItem().id) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n }\n\n // OPTIONS MENU\n validActionRefs.push(this.getStandardToolbarActions().options);\n\n // DRILL MENU\n validActionRefs.push(this.getStandardToolbarActions().drillAroundMenu);\n\n // How could this have ever been true?\n // if (validActionRefs.length === 0) {\n // return [];\n // }\n\n // ----------------------------------------------------------\n // turn valid action refs into toolbar buttons.\n // ----------------------------------------------------------\n const allActionsMenuItems = this.createToolbarMenuItemsFromActionReferences(formSpec, validActionRefs, true);\n\n // --------------------------------------------------------------\n // Don't create an options menu button if in casual mode.\n // --------------------------------------------------------------\n if (!this.lmContextService.casualMode()) {\n const optionsMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON);\n if (optionsMenuButton) {\n this.buildOptionsMenu(optionsMenuButton, formSpec, formStateInfo, true);\n }\n\n const drillMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON);\n if (drillMenuButton) {\n this.buildDrillMenPlaceholder(formSpec, drillMenuButton);\n }\n }\n\n return allActionsMenuItems;\n }\n\n private filterValidActionRefs(\n validActionRefs: LMBusActionReference[],\n excludedActionRefs: LMBusActionReference[] = []\n ) {\n if (!excludedActionRefs.length) {\n return validActionRefs;\n }\n\n return validActionRefs.filter(actionRef =>\n !excludedActionRefs.find(item => {\n // Need to strip off _ before comparing to the actionRef.id.\n // .+(?=_\\d+$) - to match everything up to an _\n const match = item.id.match(/.+(?=_\\d+$)/);\n const itemId = match ? match.toString() : item.id;\n return itemId === actionRef.id;\n })\n );\n }\n\n private getAllValidActionReferences(\n formSpec: LMFormSpec,\n formStateInfo: LMFormStateInfo,\n excludedActionRefs?: Array,\n actionTypes?: Array\n ): Array {\n\n if (!formStateInfo.dataView) {\n this.lmLoggerService.warn('DataView is undefined, valid action references not populated');\n return;\n }\n\n const isMatrixForm = formSpec.busFormSpec.formType === LMFormType.MATRIX;\n const isStandardToolbar = !formSpec.busFormSpec.toolbar;\n const actions = formSpec.busClassSpec.actions;\n let validActionRefs: Array = [];\n\n // how does this work? validActionRefs is an empty array at this point. Is Matrix Form not supposed to have any actions on it?\n if (isMatrixForm) {\n return this.filterValidActionRefs(validActionRefs, excludedActionRefs);\n }\n\n if (this.isCreateMode) {\n // SAVE / SAVE AND NEW\n validActionRefs.push(this.getStandardToolbarActions().save);\n validActionRefs.push(this.getStandardActionMenuItems().saveAndNew);\n return this.filterValidActionRefs(validActionRefs, excludedActionRefs);\n }\n\n // NEXT & PREVIOUS\n validActionRefs.push(this.getStandardToolbarActions().prevRecord);\n validActionRefs.push(this.getStandardToolbarActions().nextRecord);\n\n let addSeparator = false;\n\n const includeCreateActions = (actionTypes) ? actionTypes.indexOf(AppConstants.ACTION_TYPE_CREATE) > -1 : true;\n if (includeCreateActions) {\n if (isStandardToolbar) {\n const createActionButton = this.toolbarButtons.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_CREATE);\n if (createActionButton) {\n // CREATE\n validActionRefs.push(this.getStandardToolbarActions().create);\n }\n } else {\n // CREATE / CREATE MENU\n validActionRefs.push(this.getStandardToolbarActions().create);\n validActionRefs.push(this.getStandardToolbarActions().createMenu);\n }\n addSeparator = true;\n }\n\n // SAVE / SAVE AND NEW / REFRESH\n validActionRefs.push(this.getStandardToolbarActions().save);\n validActionRefs.push(this.getStandardActionMenuItems().saveAndNew);\n validActionRefs.push(this.getStandardToolbarActions().refresh);\n\n // sorted create actions\n if (isStandardToolbar) {\n let includeSortedCreateActions = true;\n const createActionSpecArray: Array = this.lmActionService.getCreateActions(\n formSpec.busClassSpec.actions, formStateInfo.dataView.actionIndexes);\n\n if (createActionSpecArray && createActionSpecArray.length > 1) {\n includeSortedCreateActions = false;\n }\n if (includeSortedCreateActions) {\n const createActionRefs = this.actionSpecsToActionRefs(createActionSpecArray);\n const sortedCreateActionRefs = _.sortBy(createActionRefs, 'label');\n validActionRefs = validActionRefs.concat(sortedCreateActionRefs);\n }\n }\n\n validActionRefs = this.filterValidActionRefs(validActionRefs, excludedActionRefs);\n\n if (addSeparator && (validActionRefs && validActionRefs.length > 0 && validActionRefs[validActionRefs.length - 1].id !== this.getStandardSeparatorMenuItem().id)) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n addSeparator = false;\n }\n\n // import actions\n const importActionsRefs = this.actionSpecsToActionRefs(this.lmActionService.getImportActions(actions, formStateInfo.dataView.actionIndexes));\n const sortedImportActionRefs = _.sortBy(importActionsRefs, 'label');\n validActionRefs = validActionRefs.concat(sortedImportActionRefs);\n if (sortedImportActionRefs && sortedImportActionRefs.length > 0) {\n addSeparator = true;\n }\n validActionRefs = this.filterValidActionRefs(validActionRefs, excludedActionRefs);\n\n if (addSeparator && (validActionRefs && validActionRefs.length > 0 && validActionRefs[validActionRefs.length - 1].id !== this.getStandardSeparatorMenuItem().id)) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n addSeparator = false;\n }\n\n // update and instance actions\n const updateActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getActions(actions, formStateInfo.dataView.actionIndexes, AppConstants.ACTION_TYPE_UPDATE, false, true, false));\n const instanceActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidFormInstanceActions(actions, formStateInfo.dataView));\n const updateAndInstanceActionRef = [].concat(updateActionRefs).concat(instanceActionRefs);\n const sortedUpdateAndInstanceActionRef = _.sortBy(updateAndInstanceActionRef, 'label');\n validActionRefs = validActionRefs.concat(sortedUpdateAndInstanceActionRef);\n\n // delete actions\n const deleteActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidFormDeleteActions(actions, formStateInfo.dataView));\n // is the standard delete on the toolbar?\n if (excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_DELETE)) {\n // do not display a single delete action in the More menu\n if (deleteActionRefs.length > 1) {\n validActionRefs = validActionRefs.concat(deleteActionRefs);\n }\n } else {\n validActionRefs = validActionRefs.concat(deleteActionRefs);\n }\n\n return this.filterValidActionRefs(validActionRefs, excludedActionRefs);\n }\n\n private buildCreateMenuButtonMenu(createMenuButton: LMToolbarButton, formSpec: LMFormSpec, dataView: LMDataView): void {\n const actions = formSpec.busClassSpec.actions;\n const createActions = this.actionSpecsToActionRefs(this.lmActionService.getCreateActions(actions, dataView.actionIndexes));\n createMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(formSpec, createActions);\n }\n\n private buildOptionsMenu(\n optionsMenuButton: LMToolbarButton,\n formSpec: LMFormSpec,\n formStateInfo: LMFormStateInfo,\n moreMenuActions: boolean\n ): void {\n const context = this.lmContextService.getContext();\n const disallowExport = context.disallowExport;\n const configuredFeatures = context.configuredFeatures;\n const noPdfInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToPDF) !== -1;\n const noCsvInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToCSV) !== -1;\n const isMatrixForm = formSpec.busFormSpec.formType === LMFormType.MATRIX;\n const actions = [];\n\n // Do not allow exporting when in CreateMode LMCLIENT-37786\n if (!disallowExport && noPdfInConfig && !this.isCreateMode) {\n\n actions.push(this.getStandardOptionsMenuItems().printToFile);\n }\n\n if (noCsvInConfig && isMatrixForm && !this.isCreateMode) {\n actions.push(this.getStandardOptionsMenuItems().exportToCSV);\n }\n\n if (!this.isCreateMode\n && formSpec.busClassSpec\n && (formSpec.busClassSpec.implAuditing || formSpec.busClassSpec.implEffectiveDated)\n && formStateInfo.dataView) {\n if (!formStateInfo.dataView.viewAuditSecured) {\n const auditLogRef: LMBusActionReference = this.getStandardOptionsMenuItems().auditLog;\n auditLogRef.label = this.lmFormatUtilService.formatMessage(auditLogRef.label, formSpec.busClassSpec.name);\n actions.push(auditLogRef);\n }\n\n if (!formStateInfo.dataView.viewFullAuditSecured) {\n const fullAuditLogRef: LMBusActionReference = this.getStandardOptionsMenuItems().fullAuditLog;\n fullAuditLogRef.label = this.lmFormatUtilService.formatMessage(fullAuditLogRef.label, formSpec.busClassSpec.name);\n actions.push(this.getStandardOptionsMenuItems().fullAuditLog);\n }\n }\n\n actions.push(this.getStandardOptionsMenuItems().refresh);\n\n if (optionsMenuButton) {\n optionsMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(formSpec, actions);\n }\n }\n\n private setStateByActionType(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n formStateInfo: LMFormStateInfo\n ) {\n\n let type: string;\n if (toolbarButton.actionReference) {\n type = toolbarButton.actionReference.type;\n } else if (toolbarButton.actionSpec) {\n type = toolbarButton.actionSpec.type;\n\n if (AppConstants.STANDARD_TOOLBAR_TYPES.includes(type)) {\n type = AppConstants.BUTTON_TYPE_STANDARD_ACTION;\n }\n\n }\n\n switch (type) {\n case AppConstants.BUTTON_TYPE_STANDARD_ACTION:\n toolbarButton = this.standardActionState(formSpec, toolbarButton, formStateInfo);\n break;\n\n case AppConstants.BUTTON_TYPE_FORMINVOKE:\n toolbarButton.state = this.getFormInvokeState(formStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_HTTPURL:\n this.httpUrlActionState(formSpec, toolbarButton, formStateInfo.dataView);\n break;\n\n case AppConstants.BUTTON_TYPE_NAVIGATION:\n toolbarButton = this.navigationActionState(formSpec, toolbarButton, formStateInfo);\n break;\n\n case AppConstants.BUTTON_TYPE_ACTION:\n toolbarButton = this.busClassActionState(formSpec, toolbarButton, formStateInfo.dataView);\n break;\n\n case AppConstants.BUTTON_TYPE_PROCESSFLOW:\n toolbarButton = this.processFlowActionState(formSpec, toolbarButton, formStateInfo);\n break;\n\n case AppConstants.BUTTON_TYPE_RELATED:\n toolbarButton = this.relatedActionState(formSpec, toolbarButton, formStateInfo.dataView);\n break;\n }\n }\n\n private standardActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n formStateInfo: LMFormStateInfo\n ): LMToolbarButton {\n\n let action: string;\n\n if (toolbarButton.actionReference) {\n action = toolbarButton.actionReference.id;\n } else if (toolbarButton.actionSpec) {\n action = toolbarButton.actionSpec.type;\n }\n\n let visible = false;\n let valid = false;\n\n const isMatrix = formSpec.busFormSpec.formType === LMFormType.MATRIX;\n const includeFormPaging = this.includeFormPaging(formStateInfo.dataView) && !isMatrix;\n\n const showRelated = (this.lmContextService.getContext().disallowNavigations === undefined || !this.lmContextService.getContext().disallowNavigations);\n\n switch (action) {\n case AppConstants.STANDARD_TOOLBAR_MATRIXSHOWDETAIL:\n case AppConstants.STANDARD_TOOLBAR_MATRIXHIDEDETAIL:\n if (isMatrix) {\n const matrixFormSpec: LMBusMatrixFormSpec = formSpec.busFormSpec;\n for (let i = 0, l = matrixFormSpec.cells.length; i < l; i++) {\n const displayField = matrixFormSpec.cells[i];\n if (displayField.detail) {\n valid = AppConstants.STANDARD_TOOLBAR_MATRIXSHOWDETAIL === action ? !formStateInfo.showMatrixDetail : formStateInfo.showMatrixDetail;\n break;\n }\n }\n\n visible = valid;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_CREATE:\n case AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON:\n if (!isMatrix && !this.isCreateMode) {\n const createActions = this.getValidCreateActions(formSpec, formStateInfo);\n if (action === AppConstants.STANDARD_TOOLBAR_CREATE) {\n valid = createActions.length === 1;\n } else {\n valid = createActions.length > 1\n }\n visible = valid;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_SCHEDULE:\n case AppConstants.STANDARD_TOOLBAR_UPDATE:\n case AppConstants.STANDARD_TOOLBAR_OPEN:\n visible = true;\n valid = true;\n break;\n case AppConstants.STANDARD_SAVE:\n case AppConstants.STANDARD_TOOLBAR_SAVECLOSE:\n case AppConstants.STANDARD_TOOLBAR_SAVEASDRAFT:\n if (this.isCreateMode) {\n if (formSpec.busFormSpec.showPanelInfo && formSpec.busFormSpec.showPanelInfo.linearWhen) {\n valid = this.lmConditionUtilService.isValid( [ formSpec.busFormSpec.showPanelInfo.linearWhen ], formStateInfo.dataView)\n } else {\n visible = true;\n valid = true;\n }\n } else if (formSpec.busFormSpec.showPanelInfo && formSpec.busFormSpec.showPanelInfo.linearWhen) {\n valid = this.lmConditionUtilService.isValid( [ formSpec.busFormSpec.showPanelInfo.linearWhen ], formStateInfo.dataView)\n } else {\n // Save needs to available in composite forms even if\n // the form is not updateable because one of its dependent list\n // could be updateable.\n visible = true;\n valid = formStateInfo.isModified;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_SAVENEW:\n if (this.isCreateMode) {\n if (formSpec.busFormSpec.showPanelInfo && formSpec.busFormSpec.showPanelInfo.linearWhen) {\n valid = this.lmConditionUtilService.isValid( [ formSpec.busFormSpec.showPanelInfo.linearWhen ], formStateInfo.dataView)\n } else {\n visible = true;\n valid = true;\n }\n } else {\n // STANDARD_TOOLBAR_SAVENEW is available if there is a create action without parameters or is not an action form\n if (!isMatrix) {\n if (this.getValidCreateActions(formSpec, formStateInfo).filter( (item) => {\n if (!item.hasActionForm && !item.hasParameters) {\n return true;\n }\n }).length > 0) {\n if (formSpec.busFormSpec.showPanelInfo && formSpec.busFormSpec.showPanelInfo.linearWhen) {\n valid = this.lmConditionUtilService.isValid( [ formSpec.busFormSpec.showPanelInfo.linearWhen ], formStateInfo.dataView)\n } else {\n visible = formStateInfo.isModified;\n valid = formStateInfo.isModified;\n }\n }\n }\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_NEXTRECORD:\n if (includeFormPaging) {\n visible = true;\n valid = formStateInfo.dataView.pagingInfo.hasNext && !formStateInfo.dataView.pagingInfo.nextDisabled;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_PREVRECORD:\n if (includeFormPaging) {\n visible = true;\n valid = formStateInfo.dataView.pagingInfo.hasPrevious && !formStateInfo.dataView.pagingInfo.previousDisabled;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n visible = true;\n valid = true;\n break;\n case AppConstants.STANDARD_TOOLBAR_DELETE:\n if (!isMatrix) {\n const validDeleteActionSpecs = this.lmActionService.getValidFormDeleteActions(\n formSpec.busClassSpec.actions, formStateInfo.dataView);\n valid = (!this.isCreateMode && this.lmActionService.hasStandardDelete(validDeleteActionSpecs));\n visible = true;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON:\n valid = true;\n visible = true;\n break;\n case AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON:\n if (showRelated) {\n valid = true;\n visible = true;\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_PFCOMPARE:\n valid = true;\n visible = true;\n break;\n case AppConstants.STANDARD_TOOLBAR_EXPORTPDF:\n valid = !this.lmContextService.getContext().disallowExport;\n visible = !this.lmContextService.getContext().disallowExport;\n break;\n }\n\n if (valid && toolbarButton.actionReference && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, formStateInfo.dataView);\n }\n\n toolbarButton.state.disabled = !valid;\n if (toolbarButton.actionReference && visible) {\n toolbarButton.state.visible = !(toolbarButton.actionReference.hideWhenInvalid && !valid);\n } else {\n toolbarButton.state.visible = visible;\n }\n return toolbarButton;\n }\n\n private getFormInvokeState(formStateInfo: LMFormStateInfo, toolbarButton: LMToolbarButton): LMToolbarButtonState {\n const dataView = formStateInfo.dataView;\n const valid = toolbarButton.actionReference.validity\n ? this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView)\n : true;\n\n return {\n disabled: !valid,\n visible: valid || !toolbarButton.actionReference.hideWhenInvalid\n };\n }\n\n private httpUrlActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n dataView: LMDataView,\n ): LMToolbarButton {\n\n const valid = toolbarButton.actionReference.validity\n ? this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView)\n : true;\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n\n return toolbarButton;\n }\n\n private navigationActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n formStateInfo: LMFormStateInfo,\n ): LMToolbarButton {\n const dataView = formStateInfo.dataView;\n let valid = formStateInfo.isCreateMode ? false : true;\n\n if (valid) {\n // check navigation validity in the dataView\n valid = dataView.navigations.indexOf(toolbarButton.actionReference.navigation) > -1;\n }\n\n // check for navigation button validity\n if (valid && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid( toolbarButton.actionReference.validity, dataView);\n }\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n\n return toolbarButton;\n }\n\n private processFlowActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n formStateInfo: LMFormStateInfo,\n ): LMToolbarButton {\n // Validity / Visibility for process flow button.. If there is one in dataview, it is valid and visible.\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n\n return toolbarButton;\n }\n\n private busClassActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n dataView: LMDataView\n ): LMToolbarButton {\n const actionSpec: LMActionSpec = this.getActions(formSpec)[ toolbarButton.actionReference.index ];\n\n if (!actionSpec) {\n // actionSpec is restricted if not in the busClassSpec.actions list.\n toolbarButton.state.disabled = true;\n\n // todo should restricted actions be made !visible by default?\n toolbarButton.state.visible = false; // !toolbarButton.actionReference.hideWhenInvalid;\n\n return toolbarButton;\n }\n\n switch (actionSpec.type) {\n case AppConstants.ACTION_TYPE_CREATE:\n case AppConstants.ACTION_TYPE_CREATE_WITHIN:\n case AppConstants.ACTION_TYPE_SET:\n case AppConstants.ACTION_TYPE_FUNCTION:\n case AppConstants.ACTION_TYPE_DELETE:\n case AppConstants.ACTION_TYPE_UPDATE:\n case AppConstants.ACTION_TYPE_IMPORT:\n // Set and import actions are generally available on a form in create mode.\n let valid = this.isCreateMode ? actionSpec.type === AppConstants.ACTION_TYPE_SET || actionSpec.type === AppConstants.ACTION_TYPE_IMPORT : true;\n // In update mode, other update request actions are generally available.\n if (actionSpec.type === AppConstants.ACTION_TYPE_UPDATE) {\n valid = !this.isCreateMode && actionSpec.requestAction;\n }\n // Check only the noted types above against the dataview for validity.\n if (valid) {\n valid = this.lmActionService.isValidAction(actionSpec, this.getActions(formSpec), dataView.actionIndexes, undefined, false);\n }\n\n // check for action button validity\n if (valid && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView);\n }\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n\n if (actionSpec.type === AppConstants.ACTION_TYPE_UPDATE && !actionSpec.requestAction) {\n // if update action and not a request action, hide the button\n toolbarButton.state.visible = false;\n }\n\n break;\n }\n return toolbarButton;\n }\n\n private relatedActionState(\n formSpec: LMFormSpec,\n toolbarButton: LMToolbarButton,\n dataView: LMDataView,\n ): LMToolbarButton {\n let valid = true;\n if (toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView);\n }\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n\n // Also build relation action url\n const relActionTemplate = urltemplate.parse(toolbarButton.actionReference.relActionUrl);\n const relActionUrl = relActionTemplate.expand({ resourceId: dataView.resourceId });\n toolbarButton.actionReference.relActionUrl = relActionUrl;\n toolbarButton.data = JSON.stringify(toolbarButton.actionReference);\n return toolbarButton;\n }\n\n private getValidCreateActions(formSpec: LMFormSpec, formStateInfo: LMFormStateInfo) {\n const actions: Array = this.getActions(formSpec);\n return this.lmActionService.getCreateActions(actions, formStateInfo.dataView.actionIndexes);\n }\n\n private includeFormPaging( dataView: LMDataView) {\n // TODO: check if paging options is available. May be check if urls are available\n return dataView\n && dataView.hasOwnProperty('pagingInfo')\n && dataView.hasOwnProperty('includeFormPaging')\n && dataView.includeFormPaging;\n }\n\n // override to decide whether an actionRef should be included when building\n // the toolbar buttons.\n protected includeActionRef(spec: any, actionReference: LMBusActionReference) {\n const formSpec: LMFormSpec = spec;\n return true;\n }\n\n private getActions(formSpec: LMFormSpec): Array {\n return formSpec.busClassSpec.actions;\n }\n\n private getDisallowRelated(formSpec: LMFormSpec): boolean {\n return this.lmContextService.getContext().disallowNavigations;\n }\n\n private buildDrillMenPlaceholder(formSpec: LMFormSpec, drillMenuButton: LMToolbarButton) {\n const validActionRefs: Array = [ { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') } ];\n drillMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(formSpec, validActionRefs);\n }\n}\n","import { Injectable, forwardRef, Inject } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, filter, flatMap, map, tap } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\n\nimport { AppConstants, LMFormType } from '@utils/app.constants';\nimport { LMActionService, LMActionRequest } from '@services/lm-action.service';\nimport {\n LMFormContext,\n LMPanelTransactionArgs\n} from './lm-form-action-util.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMModel, LMModelMultiPartFields } from '@form/model/lm-model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { KeyedResource } from '@resources/keyed.resource';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMTransactionService, LMTransactionState } from '@transaction/index';\n\n@Injectable()\nexport class LMFormTransactionService {\n constructor(\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService,\n private lmActionService: LMActionService,\n private lmLoggerService: LMLoggerService,\n private lmNavigationService: LMNavigationService,\n private lmSpecService: LMSpecService,\n private lmTransactionService: LMTransactionService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n private createActionRedirectUrl(\n formUrlInfo: LMFormUrlInfo,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): string {\n const actionRedirectUrlTemplate = urltemplate.parse(formUrlInfo.actionRedirectUrl);\n return actionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name,\n contextResourceId: dataView.resourceId\n });\n }\n\n private getTransactionState(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): LMTransactionState {\n const formSpec = formContext.formSpec;\n const url = this.lmTransactionService.createFormTransactionUrl(formContext, actionSpec, dataView, formContext.sourceResourceId);\n const transaction = new LMTransactionState(url);\n transaction.busFormSpec = formSpec.busFormSpec;\n transaction.multiPartFields = formContext.formModel.multiPartFields;\n return transaction;\n }\n\n public runIndependentAction(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const transaction = this.getTransactionState(formContext, actionSpec, dataView);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec });\n transaction.setRequestPayload(transactionRequests);\n\n // this is a special entry into the transaction service! We do NOT want to prompt for an action form.\n return this.lmTransactionService.runCheckResponseRequired(transaction, formContext.formSpec.busClassSpec, formContext.formSpec.busFormSpec).pipe(\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled),\n flatMap((proceed: boolean) => proceed ?\n this.lmTransactionService.executeAction(transaction) :\n of(transaction)\n )\n );\n }\n\n public runValidateFormPanel(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n validatePanelName: string\n ): Observable {\n const transaction = this.getTransactionState(formContext, actionSpec, dataView);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({\n dataViewLists: [ dataView ],\n actionSpec,\n validateOnly: true,\n validatePanelName\n });\n\n transaction.setRequestPayload(transactionRequests);\n\n return this.lmTransactionService.executeAction(transaction);\n }\n\n // TODO: No longer needed?\n public runValidateKeysOnly(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const url = this.createValidateKeysOnlyTransactionUrl(formContext.formUrlInfo, formContext.formSpec, actionSpec, dataView);\n const transaction = new LMTransactionState(url);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({\n dataViewLists: [ dataView ],\n actionSpec,\n validateOnly: true,\n validatePanelName: '',\n validateKeysOnly: true\n });\n\n transaction.setRequestPayload(transactionRequests);\n\n return this.lmTransactionService.executeAction(transaction);\n }\n\n public runSetAction(formContext: LMFormContext, actionSpec: LMActionSpec, dataView: LMDataView): Observable {\n return this.runInstanceAction(formContext, actionSpec, dataView);\n }\n\n public runInstanceAction(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const transaction = this.getTransactionState(formContext, actionSpec, dataView);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec });\n transaction.setRequestPayload(transactionRequests);\n\n const actionChecks$ = this.runActionChecks(transaction, formContext, actionSpec, dataView);\n return actionChecks$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n private runActionChecks(\n transaction: LMTransactionState,\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const formSpec = formContext.formSpec;\n const buildTransactionRequest = (scheduleView: LMDataView) =>\n this.lmActionService.buildActionRequestForDataView(\n dataView,\n actionSpec,\n null,\n null,\n null,\n scheduleView\n );\n\n // get schedule view details\n return this.lmTransactionService.getScheduleView(actionSpec, formSpec.busClassSpec.name).pipe(\n filter(scheduleView => (scheduleView !== undefined)),\n // build action requests payload\n map((scheduleView: LMDataView) => buildTransactionRequest(scheduleView)),\n // builds action url\n map((transactionRequest: LMActionRequest) => {\n transaction.setRequestPayload([ transactionRequest ]);\n return this.createActionRedirectUrl(formContext.formUrlInfo, actionSpec, dataView);\n }),\n // check if form input is required\n flatMap((actionUrl: string) => this.lmTransactionService.runCheckFormInputRequired(\n actionUrl,\n actionSpec,\n transaction\n )),\n // proceed if form input is done or not required; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transaction, formSpec.busClassSpec, formSpec.busFormSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n }\n\n // used by panel Visited and Acknowledge action pattern\n public runPanelAction(\n actionSpec: LMActionSpec,\n dataView: LMDataView,\n args: LMPanelTransactionArgs\n ): Observable {\n const transaction = new LMTransactionState(args.transactionUrl);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec });\n transaction.setRequestPayload(transactionRequests);\n\n const proceed$ = this.lmTransactionService.runCheckFormInputRequired(\n args.actionRedirectUrl,\n actionSpec,\n transaction\n ).pipe(\n // proceed if form input is done or not required; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transaction, args.busClassSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runSaveAction(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const transaction = this.getTransactionState(formContext, actionSpec, dataView);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec });\n transaction.setRequestPayload(transactionRequests);\n transaction.isMatrixForm = formContext.formSpec.busFormSpec && LMFormType.MATRIX === formContext.formSpec.busFormSpec.formType;\n\n const actionChecks$ = this.runActionChecks(transaction, formContext, actionSpec, dataView);\n return actionChecks$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runDeleteAction(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n return this.runInstanceAction(formContext, actionSpec, dataView);\n }\n\n // public runCreateAction(\n // formUrlInfo: LMFormUrlInfo,\n // formSpec: LMFormSpec,\n // actionSpec: LMActionSpec,\n // dataView: LMDataView,\n // placeholder: any\n // ): Observable {\n // return new Observable(observer => {\n // let createActionUrl;\n //\n // // TODO: need drill and navigation RESOURCETYPE evaluation here\n // if (formSpec.sourceResourceType === AppConstants.RESOURCETYPE_LIST) {\n // let contextCreateResource = new KeyedResource({resourceId: formSpec.sourceResourceId});\n // let dataViewCreateResource = new KeyedResource({\n // resourceId: dataView.resourceId,\n // keyValueArray: contextCreateResource.keyValueArray\n // });\n // // get decoded contextResourceId as it will be encoded in the expand()\n // let contextResourceId = dataViewCreateResource.generateResourceId(false);\n // const actionRedirectUrlTemplate = urltemplate.parse(formSpec.actionRedirectUrl);\n // createActionUrl = actionRedirectUrlTemplate.expand({\n // resourceId: contextResourceId,\n // actionName: actionSpec.name,\n // contextResourceId: dataView.resourceId\n // });\n //\n // } else if (formSpec.sourceResourceType === AppConstants.RESOURCETYPE_RELATION) {\n // let contextCreateResource = new KeyedResource({resourceId: formSpec.fromListResourceId});\n // let contextResourceId = contextCreateResource.resourceId;\n // const actionRedirectUrlTemplate = urltemplate.parse(formSpec.actionRedirectUrl);\n // createActionUrl = actionRedirectUrlTemplate.expand({\n // // remove the list name from the resourceId\n // resourceId: contextResourceId.substr(0, contextResourceId.indexOf('.')),\n // actionName: actionSpec.name\n // });\n //\n // // remove the form parameter and add the list parameter\n // createActionUrl = this.lmUrlUtilService.removeParam(createActionUrl, 'form');\n // createActionUrl = this.lmUrlUtilService.appendToQueryString(createActionUrl, 'list=' + contextResourceId);\n //\n // } else {\n // // Using current dataview resource id in action url instead of busclassSpec name to pass upper level keys.\n // createActionUrl = this.createActionRedirectUrl(formSpec, actionSpec, dataView);\n // }\n //\n // if (actionSpec.hasParameters || actionSpec.hasActionForm) {\n // // -------------------------------------------------------------------------\n // // Need createActionUrl to get the LMFormSpec in order for the dialog\n // // to show the target form.\n // // -------------------------------------------------------------------------\n //\n // // TODO: Replace URL key template\n // this.lmSpecService.getFormSpecFromRedirectActionUrl(createActionUrl).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n // if ((response as LMSystemException).status\n // && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // result.result = LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR;\n // result.openError = {message: (response as LMSystemException).message, details: (response as LMSystemException).details, status: (response as LMSystemException).status};\n // observer.next(result);\n // return;\n // }\n // const urlCompiledTemplate = urltemplate.parse((response as LMActionFormUrlResponse).formSpec.initialDataUrl);\n // let url = urlCompiledTemplate.expand({resourceId: (response as LMActionFormUrlResponse).resourceId, actionName: (response as LMActionFormUrlResponse).action});\n // this.lmActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n // let formDataView: LMDataView = responseDV;\n // if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n // this.lmActionFormDialogService\n // .runActionFormDialog((response as LMActionFormUrlResponse).formSpec, actionSpec, placeholder, formDataView)\n // .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // Object.assign(result, actionFormDialogResult);\n // observer.next(result);\n // });\n // } else {\n // this.lmLoggerService.error(responseDV);\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // result.result = LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR;\n // result.openError = {message: responseDV.message, details: responseDV.details, status: responseDV.status};\n // observer.next(result);\n // }\n // });\n // });\n // } else {\n // this.lmNavigationService.runCreateActionNavigation(createActionUrl);\n // }\n // });\n // }\n\n public runCreateAction(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n let createActionUrl: string;\n let keyedResource: KeyedResource;\n let contextResourceId: string;\n let actionRedirectUrlTemplate;\n\n // TODO: need drill and navigation RESOURCETYPE evaluation here\n switch (formUrlInfo.sourceResource?.resourceType) {\n case AppConstants.RESOURCETYPE_LIST:\n keyedResource = formUrlInfo.sourceResource as KeyedResource;\n const dataViewCreateResource = new KeyedResource({\n resourceId: dataView.resourceId,\n keyValueArray: keyedResource.keyValueArray\n });\n actionRedirectUrlTemplate = urltemplate.parse(formUrlInfo.actionRedirectUrl);\n createActionUrl = actionRedirectUrlTemplate.expand({\n // get decoded contextResourceId as it will be encoded in the expand\n resourceId: dataViewCreateResource.generateResourceId(false),\n actionName: actionSpec.name,\n contextResourceId: dataView.resourceId\n });\n break;\n\n case AppConstants.RESOURCETYPE_RELATION:\n keyedResource = new KeyedResource({ resourceId: formUrlInfo.fromListResource.resourceId });\n contextResourceId = keyedResource.resourceId;\n actionRedirectUrlTemplate = urltemplate.parse(formUrlInfo.actionRedirectUrl);\n createActionUrl = actionRedirectUrlTemplate.expand({\n // remove the list name from the resourceId\n resourceId: contextResourceId.substr(0, contextResourceId.lastIndexOf('.')),\n actionName: actionSpec.name\n });\n\n // remove the form parameter and add the list parameter\n createActionUrl = this.lmUrlUtilService.removeParam(createActionUrl, 'form');\n createActionUrl = this.lmUrlUtilService.appendToQueryString(createActionUrl, `list=${contextResourceId}`);\n break;\n\n default:\n // Using current dataview resource id in action url instead of busclassSpec name to pass upper level keys.\n createActionUrl = this.createActionRedirectUrl(formUrlInfo, actionSpec, dataView);\n }\n\n if (!actionSpec.hasParameters && !actionSpec.hasActionForm) {\n return of(this.lmNavigationService.runCreateActionNavigation(createActionUrl));\n }\n\n return this.runFormActionUrl(createActionUrl, actionSpec);\n }\n\n private runFormActionUrl(actionUrl: string, actionSpec: LMActionSpec, response?: LMActionFormUrlResponse): Observable {\n\n if (this.lmLoggerService.cskLog === 2) {\n this.lmLoggerService.time({\n id: 'TotalActionForm',\n description: 'TOTAL ACTION FORM',\n className: 'LMFormTransactionService',\n timingStart: 'LMFormTransactionService -> runFormActionUrl()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n }\n\n const response$ = response ? of(response) :\n this.lmSpecService.getFormSpecFromRedirectActionUrl(actionUrl).pipe(\n // eslint-disable-next-line @typescript-eslint/no-shadow\n map((response: LMActionFormUrlResponse | LMSystemException) => {\n // process LMSystemException\n if (response.hasOwnProperty('status')) {\n const exception = response as LMSystemException;\n const knownExceptions = [ AppConstants.STATUS_SYSTEM_ERROR, AppConstants.STATUS_UNAUTHORIZED ];\n if (knownExceptions.includes(exception.status) ) {\n throw exception;\n }\n }\n\n return response as LMActionFormUrlResponse;\n }),\n );\n\n let formUrlInfo: LMFormUrlInfo;\n let formSpec: LMFormSpec;\n const lmActionFormDialogService = (this.lmActionFormDialogService as LMActionFormDialogService);\n\n return response$.pipe(\n // eslint-disable-next-line @typescript-eslint/no-shadow\n flatMap((response: LMActionFormUrlResponse) => {\n formUrlInfo = response.formUrlInfo;\n formSpec = response.formSpec;\n\n // construct form data url\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const resourceId = response.resourceId;\n const actionName = response.action;\n const formDataUrl = urlCompiledTemplate.expand({ resourceId, actionName });\n // get form dataview\n return lmActionFormDialogService.getActionFormDialogDataView(formDataUrl);\n }),\n flatMap((formDataView: LMDataView) => {\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n return lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView, null, null, true);\n }\n throw formDataView as LMSystemException;\n }),\n catchError((error) => {\n // unexpected error\n if (!error.status) {\n throw error;\n }\n // handle LMSystemException\n const exception = error as LMSystemException;\n this.lmLoggerService.error(exception);\n\n const result = {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR,\n openError: error\n } as LMActionFormDialogResult;\n return of(result);\n })\n );\n }\n\n // // hmmmm test this must be for Request Action\n // public runUpdateAction(\n // formSpec: LMFormSpec,\n // actionSpec: LMActionSpec,\n // formModel: LMModel,\n // placeholder: any\n // ): Observable {\n // return new Observable(observer => {\n // let dataView = formModel.getData();\n // if (actionSpec.hasParameters || actionSpec.hasActionForm) {\n // // -------------------------------------------------------------------------\n // // Need actionRedirectUrl to get the LMFormSpec in order for the dialog\n // // to show the target form.\n // // -------------------------------------------------------------------------\n // const actionRedirectUrlTemplate = urltemplate.parse(formSpec.actionRedirectUrl);\n // const actionRedirectUrl = actionRedirectUrlTemplate.expand({\n // resourceId: dataView.resourceId,\n // actionName: actionSpec.name,\n // contextResourceId: dataView.resourceId\n // });\n //\n // // TODO: Replace URL key template\n // this.lmSpecService.getFormSpecFromRedirectActionUrl(actionRedirectUrl).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n // if ((response as LMSystemException).status\n // && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // result.result = LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR;\n // result.openError = {message: (response as LMSystemException).message, details: (response as LMSystemException).details, status: (response as LMSystemException).status};\n // observer.next(result);\n // return;\n // }\n // const urlCompiledTemplate = urltemplate.parse((response as LMActionFormUrlResponse).formSpec.initialDataUrl);\n // let url = urlCompiledTemplate.expand({resourceId: (response as LMActionFormUrlResponse).resourceId, actionName: (response as LMActionFormUrlResponse).action});\n // this.lmActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n // let formDataView: LMDataView = responseDV;\n // if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n // this.lmActionFormDialogService\n // .runActionFormDialog((response as LMActionFormUrlResponse).formSpec, actionSpec, placeholder, formDataView)\n // .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // Object.assign(result, actionFormDialogResult);\n // observer.next(result);\n // });\n // } else {\n // this.lmLoggerService.error(responseDV);\n // let result: LMActionFormDialogResult = new LMActionFormDialogResult();\n // result.result = LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR;\n // result.openError = {message: responseDV.message, details: responseDV.details, status: responseDV.status};\n // observer.next(result);\n // }\n // });\n // });\n // } else {\n // // Example: Employee Self Service > My Profile > Ethnicity Details\n // // Same business class, same record but it navigates to a different form.\n // const actionRedirectUrlTemplate = urltemplate.parse(formSpec.actionRedirectUrl);\n // const actionRedirectUrl = actionRedirectUrlTemplate.expand({\n // resourceId: dataView.resourceId,\n // actionName: actionSpec.name,\n // contextResourceId: dataView.resourceId\n // });\n // this.lmNavigationService.runNavigation(actionRedirectUrl);\n // }\n // });\n // }\n\n // hmmmm test this must be for Request Action\n public runUpdateAction(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n // -------------------------------------------------------------------------\n // Need actionRedirectUrl to get the LMFormSpec in order for the dialog\n // to show the target form.\n // -------------------------------------------------------------------------\n const actionRedirectUrlTemplate = urltemplate.parse(formUrlInfo.actionRedirectUrl);\n const actionRedirectUrl = actionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name,\n contextResourceId: dataView.resourceId\n });\n\n if (!actionSpec.hasParameters && !actionSpec.hasActionForm) {\n return of(this.lmNavigationService.runNavigation(actionRedirectUrl));\n }\n\n return this.runFormActionUrl(actionRedirectUrl, actionSpec);\n }\n\n public runRelatedAction(\n relatedActionUrl: string,\n actionSpec: LMActionSpec,\n resourceId: string\n ): Observable {\n const actionName = actionSpec.name;\n\n if (!actionSpec.hasParameters && !actionSpec.hasActionForm) {\n const result = {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR,\n openError: { message: 'Related instance actions w/o a parameter form or action form are not yet supported' }\n } as LMActionFormDialogResult;\n return of(result);\n }\n\n return this.lmSpecService.getFormSpec(relatedActionUrl).pipe(\n flatMap((response: LMFormSpecResponse | LMSystemException) => {\n const formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n const formSpec = (response as LMFormSpecResponse).formSpec;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId, actionName });\n\n const actionFormUrlResponse = {\n formUrlInfo,\n formSpec,\n action: actionName,\n resourceId\n } as LMActionFormUrlResponse;\n return this.runFormActionUrl(dataUrl, actionSpec, actionFormUrlResponse);\n })\n );\n }\n\n public runButtonRelatedAction(\n relActionUrl: string,\n actionName: string,\n resourceId: string\n ): Observable {\n const urlCompiledTemplate = urltemplate.parse(relActionUrl);\n const relatedActionUrl = urlCompiledTemplate.expand({\n resourceId,\n actionName\n });\n\n return this.lmSpecService.getRedirectUrl(relatedActionUrl);\n }\n\n public runCompareAction(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n // transactionURL does NOT use the action name\n const transactionUrlTemplate = urltemplate.parse(formContext.formUrlInfo.transactionUrl);\n let transactionUrl = transactionUrlTemplate.expand({ resourceId: dataView.resourceId });\n const delimiter = transactionUrl.indexOf('?') === -1 ? '?' : '&';\n transactionUrl = transactionUrl + delimiter + this.lmUrlUtilService.objectToQueryString(formContext.formUrlInfo.navigationContext);\n transactionUrl = transactionUrl + '&executionType=_executeCompare';\n\n const transactionState: LMTransactionState = new LMTransactionState(transactionUrl);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec });\n transactionState.busFormSpec = formContext.formSpec.busFormSpec;\n transactionState.multiPartFields = formContext.formModel.multiPartFields;\n transactionState.setRequestPayload(transactionRequests);\n\n // No response required or confirmation for compare action\n return this.lmTransactionService.executeAction(transactionState);\n }\n\n public runProcessFlowAction(\n formContext: LMFormContext,\n pfAction: LMProcessFlowAction,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): Observable {\n const navigationContext = formContext.formUrlInfo.navigationContext;\n const busClassSpec = formContext.formSpec.busClassSpec;\n const busFormSpec = formContext.formSpec.busFormSpec;\n\n // transactionURL does NOT use the action name\n const transactionUrlTemplate = urltemplate.parse(formContext.formUrlInfo.transactionUrl);\n let transactionUrl = transactionUrlTemplate.expand({ resourceId: dataView.resourceId });\n // Add Navigation context and executionType to URL. Navigation context contains the pfi workunit parameters.\n const delimiter = transactionUrl.indexOf('?') === -1 ? '?' : '&';\n transactionUrl += delimiter + this.lmUrlUtilService.objectToQueryString(navigationContext);\n transactionUrl += '&executionType=_processflow';\n\n const transaction = new LMTransactionState(transactionUrl);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec, pfAction });\n transaction.busFormSpec = busFormSpec;\n transaction.multiPartFields = formContext.formModel.multiPartFields;\n transaction.setRequestPayload(transactionRequests);\n\n const proceed$ = this.lmTransactionService.runCheckResponseRequiredPF(\n transaction,\n pfAction,\n busClassSpec,\n navigationContext,\n busFormSpec\n ).pipe(\n // proceed if response PF is done or not required; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transaction, busClassSpec, busFormSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runSaveTemplateAction(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n fromDataView: LMDataView,\n templateModels: Array,\n templateDataViewSet: LMDataViewSet,\n displayPanelId: string,\n displayWhenIndex?: number,\n subPanelResourceId?: string\n ): Observable {\n this.lmLoggerService.trace([ '@FormTransactionService -> runSaveTemplateAction' ]);\n\n const compiledTemplate = urltemplate.parse(formUrlInfo.transactionUrl);\n const transactionUrl = compiledTemplate.expand({ resourceId: fromDataView.resourceId });\n const templateMultiPartFields = new Array();\n\n for (let i = 0, len = templateModels.length; i < len; i++) {\n const model = templateModels[i];\n const dataView = model.getData();\n templateDataViewSet.data[i].dataView = dataView;\n templateMultiPartFields.push(model.multiPartFields);\n }\n\n if (!displayWhenIndex) {\n displayWhenIndex = 0;\n }\n\n const actionRequest = {\n actionSpec: AppConstants.ACTIONSPEC_TEMPLATEFORM_SAVE,\n templateDataViewSet,\n displayWhenIndex,\n subPanelResourceId,\n displayPanelId, // need for attachments\n } as LMActionRequest;\n\n const transaction = new LMTransactionState(transactionUrl);\n transaction.busFormSpec = formSpec.busFormSpec;\n transaction.setRequestPayload([ actionRequest ]);\n transaction.templateMultiPartFields = templateMultiPartFields;\n\n return this.lmTransactionService.executeAction(transaction);\n }\n\n public runMatrixAction(\n matrixActionTarget: LMMatrixActionTarget,\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n columnDataView: LMDataView\n ): Observable {\n const url = this.createMatrixTransactionUrl(matrixActionTarget, formContext.formUrlInfo, actionSpec, columnDataView);\n const transaction = new LMTransactionState(url);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ columnDataView ], actionSpec });\n transaction.setRequestPayload(transactionRequests);\n\n const actionChecks$ = this.runActionChecks(transaction, formContext, actionSpec, columnDataView);\n return actionChecks$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n private createMatrixTransactionUrl(\n matrixActionTarget: LMMatrixActionTarget,\n formUrlInfo: LMFormUrlInfo,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): string {\n const transactionUrlTemplate = urltemplate.parse(matrixActionTarget === 'column' ?\n formUrlInfo.matrixColumnTransactionUrl : formUrlInfo.matrixCellTransactionUrl);\n\n return transactionUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n }\n\n private createValidateKeysOnlyTransactionUrl(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n actionSpec: LMActionSpec,\n dataView: LMDataView\n ): string {\n const transactionUrlTemplate = urltemplate.parse(formUrlInfo.transactionUrl);\n return transactionUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n }\n\n public processStepUpAuthActionResult(\n formContext: LMFormContext,\n actionResult: LMActionResult,\n dataView: LMDataView\n ): Observable {\n const transaction = this.getTransactionState(formContext, actionResult.actionSpec, dataView);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: [ dataView ], actionSpec: actionResult.actionSpec });\n transaction.setRequestPayload(transactionRequests);\n transaction.response = [ actionResult ];\n return this.lmTransactionService.processStepUpAuthActionResult(transaction, actionResult, transactionRequests[0]);\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nconst MAX_QUEUE = 2;\n\n@Injectable()\nexport class LMFormService {\n private _isFiringInitialValueRule = false;\n private _firingInitialValueRuleCompleted$ = new Subject();\n private _initialValueRuleQueueCounter = 0;\n\n // Observable sources\n private visibleWhenEventSource = new Subject();\n\n // Observable streams\n visibleWhenEvent$ = this.visibleWhenEventSource.asObservable();\n\n constructor() {}\n\n public waitForFormToBeReady(): Observable {\n return new Observable(observer => {\n if (this.isFiringInitialValueRule) {\n this.firingInitialValueRuleCompleted\n .pipe(first())\n .subscribe(() => {\n observer.next(true);\n observer.complete();\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n public get firingInitialValueRuleCompleted(): Subject {\n return this._firingInitialValueRuleCompleted$;\n }\n\n public get isFiringInitialValueRule(): boolean {\n return this._initialValueRuleQueueCounter > 0;\n }\n\n public set isFiringInitialValueRule(value: boolean) {\n this._isFiringInitialValueRule = value;\n }\n\n // Service message commands\n visibleWhenEvent(element: ElementRef) {\n this.visibleWhenEventSource.next(element);\n }\n\n public initialValueRuleQueueCountUp() {\n this._initialValueRuleQueueCounter++;\n }\n\n public initialValueRuleQueueCountDown() {\n if (this._initialValueRuleQueueCounter > 0) {\n this._initialValueRuleQueueCounter--;\n }\n }\n\n public get canFireIntialValueRule() {\n return this._initialValueRuleQueueCounter < MAX_QUEUE;\n }\n}\n","export * from './lm-home-page.component';\nexport * from './lm-suite-home.component';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class LMHomePageUtilService {\n\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService) {}\n\n public getHomePageRedirect(url: string): Observable {\n return this.http\n .get(url).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n}\n","import { AfterViewInit, Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LMHomePageUtilService } from './lm-home-page-util.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\n\n@Component({\n selector: 'lm-home-page',\n template: `
        `,\n providers: [LMHomePageUtilService]\n})\nexport class LMHomePageComponent implements AfterViewInit {\n\n private routerEventSubscription: ISubscription;\n\n constructor(\n private router: Router,\n private lmHomePageUtilService: LMHomePageUtilService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n ngAfterViewInit() {\n this.loadHomePageRedirect(this.router.url);\n }\n\n // todo combine all \"getRedirectUrl\" functions into a single service.\n loadHomePageRedirect(url: string) {\n // append output=spec so we can retreive the redirect url in a json format.\n const delimiter = (url.indexOf('?') === -1) ? '?' : '&';\n url += delimiter + 'output=spec';\n\n this.lmHomePageUtilService.getHomePageRedirect(url).subscribe(\n response => {\n // router requires a relative url, FQDN url doesn't work with navigateByUrl\n const relativeUrl = this.lmUrlUtilService.toRelativeUrl(response.redirectUrl);\n this.router.navigateByUrl(relativeUrl, { replaceUrl: true });\n },\n error => {\n // handle error\n });\n }\n\n checkSaveRequired() {\n return false;\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMToolbarServiceBase } from '@toolbar/lm-toolbar-service.base';\nimport { LMToolbarServiceAdapter } from '@toolbar/lm-toolbar-service-adapter';\n\n@Injectable()\nexport class LMSuiteHomeToolbarService extends LMToolbarServiceBase {\n constructor(public lmToolbarServiceAdapter: LMToolbarServiceAdapter) {\n super(lmToolbarServiceAdapter); // must msg the base class constructor\n }\n\n public buildToolbar(): void {\n const actionRefArray: Array = [];\n\n this.toolbarButtons = this.createToolbarMenuItemsFromActionReferences(null, actionRefArray);\n this.fireToolbarObservable();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n NgZone,\n OnDestroy,\n OnInit, ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SohoModalDialogService, } from 'ids-enterprise-ng';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMBannerHeaderComponentRef } from '@banner/lm-banner-header-component-ref.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMSuiteHomeToolbarService } from './lm-suite-home-toolbar.service';\nimport {\n LMLoggerService,\n LMBusyIndicatorService,\n LMAccessibleWebAppService,\n LMErrorUtilService,\n LMRouteComponentService,\n LMComponentInfoService,\n RoamingUIProfileResponse,\n RoamingUIProfileResult,\n LMRoamingUIProfileService,\n} from '@services/index';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMDrillService } from '@services/lm-drill.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { Observable, Subscription } from 'rxjs';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMGlobalUtilService, LMUniqueIdService } from '@utils/index';\nimport { LMBannerService } from '@banner/lm-banner.service';\n\n@Component({\n selector: 'lm-suite-home',\n templateUrl: './lm-suite-home.component.html',\n styleUrls: [ 'lm-suite-home.component.scss' ],\n providers: [ LMSuiteHomeToolbarService, LMDrillService, LMRoamingUIProfileService ],\n})\nexport class LMSuiteHomeComponent extends LMBaseComponent implements AfterViewInit, OnInit, OnDestroy {\n\n public availableApps: Array;\n private routerEventsSubscription: Subscription;\n public preferredWebApp: string;\n public instructions: String = '';\n public hideTitleBar = false;\n public toolbarButtons: Observable>;\n public pageTitle: string;\n public sectionTitle: string;\n public preferredWebAppUrl: string;\n public preferredWebAppTitle: string;\n public globalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n public hasDefaultStartPage = false;\n\n @ViewChild(LMToolbarComponent) toolbar: LMToolbarComponent;\n\n constructor(\n private zone: NgZone,\n private changeDetectionRef: ChangeDetectorRef,\n public router: Router,\n public sohoModalDialogService: SohoModalDialogService,\n private lmAccessibleWebAppService: LMAccessibleWebAppService,\n private lmBannerHeaderCompRef: LMBannerHeaderComponentRef,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n private lmErrorUtilService: LMErrorUtilService,\n public lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmRouteComponentService: LMRouteComponentService,\n private lmSuiteHomeToolbarService: LMSuiteHomeToolbarService,\n public lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmContextUtilService: LMContextUtilService,\n private lmBannerService: LMBannerService,\n private lmRoamingUIProfileService: LMRoamingUIProfileService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmGlobalUtilService: LMGlobalUtilService\n ) {\n super (sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n\n // setTimeout(() => {\n // this.zone.run(() => {\n // this.changeDetectionRef.detectChanges();\n // });\n // });\n\n this.routerEventsSubscription = router.events.subscribe(event => {\n // if (event instanceof NavigationEnd) {\n // // why do I have to cast this?\n // this.lmRouteComponentService.setRouteComponent(this);\n // } else if (event instanceof NavigationStart) {\n // // show busy indicator when leaving a route.\n // this.lmBusyIndicatorService.showBusyIndicator();\n // }\n });\n }\n\n ngOnInit() {\n this.lmLoggerService.time({ id: '>> Total Home' });\n this.lmRouteComponentService.setRouteComponent(this as Component);\n this.hideTitleBar = this.lmContextService.isHideTitlebar();\n this.checkForDefaultStartPage();\n }\n\n ngAfterViewInit() {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n if (!this.lmContextService.inMingleWidget() && !this.hasDefaultStartPage) {\n if (!this.hideTitleBar) {\n this.lmBannerHeaderCompRef.instance.toolbarButtons = this.lmSuiteHomeToolbarService.getToolbarButtonsObservable();\n this.lmBannerHeaderCompRef.instance.fullPageScroll = false;\n\n setTimeout(() => {\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = Soho.Locale.translate('AvailableApplications');\n this.instructions = Soho.Locale.translate('Instructions');\n this.lmSuiteHomeToolbarService.buildToolbar();\n }, 50);\n } else {\n this.toolbarButtons = this.lmSuiteHomeToolbarService.getToolbarButtonsObservable();\n\n setTimeout(() => {\n this.pageTitle = Soho.Locale.translate('SuiteHome');\n this.sectionTitle = Soho.Locale.translate('AvailableApplications');\n this.instructions = Soho.Locale.translate('Instructions');\n this.lmSuiteHomeToolbarService.buildToolbar();\n }, 50);\n }\n }\n\n setTimeout(() => {\n this.availableApps = this.lmContextService.getAccessibleWebApps();\n\n // Sort by webApp name.\n this.availableApps.sort((a, b) => {\n if (a.webAppName < b.webAppName) {\n return -1;\n } else if (a.webAppName > b.webAppName) {\n return 1;\n } else {\n return 0;\n }\n });\n\n // remove any webApp without a title defined.\n for (let i = 0; i < this.availableApps.length; i++) {\n if (!this.availableApps[i].webAppTitle) {\n this.availableApps.splice(i, 1);\n i--;\n }\n }\n\n const loadTime = this.lmLoggerService.timeEnd('>> Total Home', [ this, 'ngAfterViewInit()', 'end' ]);\n this.sendPageAnalytics(loadTime);\n this.sendShortcut();\n this.lmBusyIndicatorService.hideBusyIndicator();\n }, 100);\n }\n\n ngOnDestroy() {\n if (this.routerEventsSubscription) {\n this.routerEventsSubscription.unsubscribe();\n }\n }\n\n getComponentInfo(): LMComponentInfo {\n return undefined;\n }\n\n getComponentPlaceHolder(): ViewContainerRef {\n return undefined;\n }\n\n isPreferredWebApp(webAppSpec: LMWebAppSpec) {\n return this.preferredWebApp === webAppSpec.webAppName;\n }\n\n private validWebApp(webApp: String) {\n const preferredWebAppSpec = this.availableApps.find(webAppSpec => webAppSpec.webAppName === this.preferredWebApp);\n if (!preferredWebAppSpec) {\n return false;\n }\n\n this.preferredWebAppUrl = preferredWebAppSpec.webAppUrl;\n this.preferredWebAppTitle = preferredWebAppSpec.webAppTitle;\n return true;\n }\n\n public get hasPreferred(): boolean {\n if (this.preferredWebApp !== '') {\n return true;\n }\n }\n\n private sendPageAnalytics(loadTime: number): void {\n const busHomeSpec = { name: 'Home' };\n this.lmGlobalUtilService.updateClientStatsTelegraf(this.getComponentInfo(), loadTime).subscribe((response: any) => {});\n }\n\n private sendShortcut(): void {\n if (!this.hasDefaultStartPage) {\n this.lmContextUtilService.enableStandardShortcut();\n }\n }\n\n loadComponentState(): void {\n }\n\n saveComponentState(includeSubComponents?: boolean): void {\n }\n\n public onToolbarButtonButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent): void {\n }\n\n public onAnchorClicked(webAppTitle: string) {\n const selectedWebApp = this.availableApps.filter(webApp => webApp.webAppTitle === webAppTitle);\n const webAppSpec: LMWebAppSpec = selectedWebApp[0];\n }\n\n public onPreferredMenuEvent(event) {\n if (event.preferredWebAppRemoved) {\n this.preferredWebApp = '';\n this.availableApps = Object.assign([], this.availableApps);\n }\n }\n\n public checkForDefaultStartPage() {\n if (!this.lmContextService.inMingleWidget()) {\n let isValidWebApp = false;\n this.availableApps = this.lmContextService.getAccessibleWebApps();\n\n if (this.availableApps.length === 1) {\n isValidWebApp = true;\n this.preferredWebAppUrl = this.availableApps[ 0 ].webAppUrl;\n this.preferredWebAppTitle = this.availableApps[ 0 ].webAppTitle;\n } else {\n const context = this.lmContextService.getContext();\n if (context.roamingUIProfile && context.roamingUIProfile.landingPageDefault && context.roamingUIProfile.landingPageDefault[0].webApp !== '') {\n this.preferredWebApp = context.roamingUIProfile.landingPageDefault[0].webApp;\n isValidWebApp = this.validWebApp(this.preferredWebApp);\n\n if (isValidWebApp) {\n if (this.globalPersonalization.preferredWebApp !== this.preferredWebApp) {\n this.globalPersonalization.preferredWebApp = this.preferredWebApp;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.globalPersonalization);\n }\n } else {\n const clearWebApp = '';\n this.lmRoamingUIProfileService.setPreferredWebApp(clearWebApp)\n .subscribe(\n (results: RoamingUIProfileResponse) => {\n if (results.status === RoamingUIProfileResult.COMPLETED) {\n this.globalPersonalization.preferredWebApp = clearWebApp;\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(this.globalPersonalization);\n this.lmLoggerService.log([ 'RoamingUIProfile updated' ]);\n } else {\n this.lmLoggerService.log([ 'RoamingUIProfile not updated' ]);\n }\n });\n }\n }\n\n if (!isValidWebApp && (context.defaultStartingPage && context.defaultStartingPage !== '')) {\n this.preferredWebApp = context.defaultStartingPage;\n isValidWebApp = this.validWebApp(this.preferredWebApp);\n }\n\n if (!isValidWebApp && (this.globalPersonalization.preferredWebApp && this.globalPersonalization.preferredWebApp !== '')) {\n this.preferredWebApp = this.globalPersonalization.preferredWebApp;\n isValidWebApp = this.validWebApp(this.preferredWebApp);\n }\n }\n\n if (isValidWebApp) {\n this.hasDefaultStartPage = true;\n this.lmGlobalUtilService.navigateByUrl(this.preferredWebAppUrl);\n this.onAnchorClicked(this.preferredWebAppTitle);\n }\n }\n }\n}\n","\n
        \n \n
        \n
        \n\n\n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n","export * from './lm-horizontal-scroller.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit, Output,\n ViewChild\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'lm-horizontal-scroller',\n templateUrl: 'lm-horizontal-scroller.component.html',\n styleUrls: [ 'lm-horizontal-scroller.component.scss' ],\n animations: [\n trigger('scroll', [\n state('next', style({\n transform: 'translateX({{scrollAmount}})'\n }), { params: { scrollAmount: '0', duration: '1s' } }),\n state('next2', style({\n transform: 'translateX({{scrollAmount}})'\n }), { params: { scrollAmount: '0', duration: '1s' } }),\n state('previous', style({\n transform: 'translateX({{scrollAmount}})'\n }), { params: { scrollAmount: '0', duration: '1s' } }),\n state('previous2', style({\n transform: 'translateX({{scrollAmount}})'\n }), { params: { scrollAmount: '0', duration: '1s' } }),\n\n // Need two instances of next/previous state.\n // Otherwise animation change detection fails to fire when coming from same state\n // next => next would fail to properly animate for example.\n transition('* => next', animate('{{duration}}s ease')),\n transition('* => next2', animate('{{duration}}s ease')),\n transition('* => previous', animate('{{duration}}s ease')),\n transition('* => previous2', animate('{{duration}}s ease')),\n\n transition('next => *', animate('{{duration}}s ease')),\n transition('next2 => *', animate('{{duration}}s ease')),\n transition('previous => *', animate('{{duration}}s ease')),\n transition('previous2 => *', animate('{{duration}}s ease')),\n\n transition('next => next2', animate('{{duration}}s ease')),\n transition('next2 => next', animate('{{duration}}s ease')),\n transition('previous => previous2', animate('{{duration}}s ease')),\n transition('previous2 => previous', animate('{{duration}}s ease')),\n\n transition('next => previous', animate('{{duration}}s ease')),\n transition('next => previous2', animate('{{duration}}s ease')),\n transition('next2 => previous', animate('{{duration}}s ease')),\n transition('next2 => previous2', animate('{{duration}}s ease')),\n\n transition('previous => next', animate('{{duration}}s ease')),\n transition('previous => next2', animate('{{duration}}s ease')),\n transition('previous2 => next', animate('{{duration}}s ease')),\n transition('previous2 => next2', animate('{{duration}}s ease')),\n ])\n ]\n})\nexport class LMHorizontalScrollerComponent implements OnInit, AfterViewInit {\n // Amount gallery container will scroll left or right in px\n @Input() public scrollAmount = 320;\n\n // Time per animation in seconds\n @Input() public duration = .4;\n\n // Used to help keep track of scroll position\n @Input() itemCount: number;\n\n // Inner container, used to move content left/right via translateX\n @ViewChild('HorizontalScrollerContainer') scrollerContainer: ElementRef;\n\n @HostListener('window:resize', [ '$event' ]) onResize() {\n this.updateState();\n }\n\n @HostListener('(@scroll.start), [$event]') animationStart(e) {\n this.isAnimating = true;\n }\n\n @HostListener('(@scroll.done), [$event]') animationDone(e) {\n this.isAnimating = false;\n this.updateState();\n }\n\n // Check if gallery container is larger than host container\n @Output() overflowed = new EventEmitter();\n\n // Check if scroller is at start\n @Output() scrollIsStartEvent = new EventEmitter();\n\n // Check if scroller is at end\n @Output() scrollIsEndEvent = new EventEmitter();\n\n // Animation finished\n @Output() animationFinished = new EventEmitter();\n\n public scrolling: boolean;\n\n private scrollPosition = 0;\n private touchStart: number;\n private touchEnd: number;\n private _translateXPosition: string;\n private _animationState: string;\n private _isAnimating = false;\n private _scrollIsStart: boolean;\n private _scrollIsEnd: boolean;\n private scrollWidth: number;\n\n // 0 = start\n // -x = scroll left position\n // +x = scroll right position\n private position = 0;\n\n // Host of gallery container\n private readonly hostElement: HTMLElement;\n\n constructor(private elementRef: ElementRef) {\n this.hostElement = elementRef.nativeElement;\n }\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.scrollWidth = this.scrollerContainer.nativeElement.scrollWidth;\n }\n\n public scrollNext(): void {\n this.position++;\n this.setCurrentScrollAmount();\n this.animationState = this.animationState === 'next' ? 'next2' : 'next';\n }\n\n public scrollPrevious(): void {\n this.position--;\n this.setCurrentScrollAmount(true);\n this.animationState = this.animationState === 'previous' ? 'previous2' : 'previous';\n }\n\n public set translateXPosition(currentScrollAmount: string) {\n this._translateXPosition = currentScrollAmount;\n }\n\n public get translateXPosition(): string {\n return this._translateXPosition;\n }\n\n public set animationState(condition: string) {\n this._animationState = condition;\n }\n\n public get animationState() {\n return this._animationState;\n }\n\n public hasOverflow(): boolean {\n if (this?.scrollerContainer?.nativeElement?.parentElement) {\n return !(this.scrollerContainer.nativeElement.parentElement.scrollWidth <= this.scrollerContainer.nativeElement.parentElement.clientWidth);\n }\n\n return false;\n }\n\n public set isAnimating(isAnimating: boolean) {\n this._isAnimating = isAnimating;\n }\n\n public get isAnimating(): boolean {\n return this._isAnimating;\n }\n\n public set scrollIsStart(scrollIsStart: boolean) {\n this._scrollIsStart = scrollIsStart;\n }\n\n public get scrollIsStart(): boolean {\n return this._scrollIsStart;\n }\n\n public set scrollIsEnd(scrollIsEnd: boolean) {\n this._scrollIsEnd = scrollIsEnd;\n }\n\n public get scrollIsEnd(): boolean {\n return this._scrollIsEnd;\n }\n\n public onTouchStart(event: TouchEvent) {\n if (event.changedTouches === undefined) {\n return;\n }\n\n this.touchStart = event.changedTouches[0].clientX;\n }\n\n public onTouchEnd(event: TouchEvent) {\n if (event.changedTouches === undefined) {\n return;\n }\n\n this.touchEnd = event.changedTouches[0].clientX;\n const threshold = Math.abs(this.touchStart - this.touchEnd);\n\n // Touch moved more than 100px (left or right)\n if (threshold > 100) {\n if (this.touchEnd < this.touchStart) {\n this.scrollPrevious();\n } else {\n this.scrollNext();\n }\n }\n }\n\n private isEnd(): boolean {\n let bool: boolean;\n\n // check if end using itemCount\n // otherwise fallback to the somewhat effective but flaky hasOverflow()\n if (this.itemCount) {\n bool = ((this.position + 1) * this.scrollAmount) >= this.scrollWidth;\n } else {\n bool = !this.hasOverflow();\n }\n\n return bool;\n }\n\n private isStart(): boolean {\n return this.scrollPosition === 0;\n }\n\n public updateState() {\n this.animationFinished.emit(true);\n this.overflowed.emit(this.hasOverflow());\n\n this.scrollIsStart = this.isStart();\n this.scrollIsStartEvent.emit(this.isStart());\n\n this.scrollIsEnd = this.isEnd();\n this.scrollIsEndEvent.emit(this.isEnd());\n }\n\n private setCurrentScrollAmount(isPrevious?: boolean) {\n const scrollAmount = this.scrollerContainer.nativeElement.clientWidth <=320 ? 320 : this.scrollAmount;\n\n if (isPrevious) {\n this.scrollPosition = this.scrollPosition + scrollAmount;\n } else {\n this.scrollPosition = this.scrollPosition - scrollAmount;\n }\n\n this.translateXPosition = `${this.scrollPosition}px`;\n }\n}\n","\n \n\n","export * from './lm-html-page.component';\nexport * from './lm-html-page-util.service';\nexport * from './lm-html-url-doc.component';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMUrlUtilService } from '@services/utils';\n\n@Injectable()\nexport class LMHtmlPageUtilService {\n\n private use3_5 = true;\n\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService) {}\n\n public getListPersonalizationSpec(url: string): Observable {\n return this.http\n .get(url).pipe(\n catchError(this.handleError));\n }\n\n public getHtmlPage(url: string): string {\n // let htmlPageSpec = this.http\n // .get(url + (url.lastIndexOf('?') >= 0 ? '&' : '?') + 'output=html')\n // .map(res => res.text())\n // .catch(this.handleError);\n // return htmlPageSpec;\n\n if (this.use3_5) {\n const paramLoc: number = url.indexOf('?');\n if (paramLoc >= 0) {\n const paramsStr: string = url.substring(paramLoc + 1);\n const params = paramsStr.split('&');\n for (let i = 0; i < params.length; i++) {\n const values = params[i].split('=');\n if (values[0] === 'csk.cli' || values[0] === 'csk.ng') {\n params.splice(i, 1);\n }\n }\n url = url.substring(0, paramLoc);\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n }\n\n // adding csk.hidemenubar=true, csk.hidemenubar=true and csk.3x=true so the iframe will render correctly\n url = this.lmUrlUtilService.updateUrlParams(url, {'csk.hidetitlebar': true, 'csk.hidemenubar': true, 'csk.3x': true});\n return url;\n }\n\n return url + (url.indexOf('?') >= 0 ? '&' : '?') + 'output=html'\n }\n\n public getHtmlPageSpec(url: string): Observable {\n const htmlPageSpec = this.http\n .get(url + (url.lastIndexOf('?') >= 0 ? '&' : '?') + 'fragment=true').pipe(\n catchError(this.handleError));\n return htmlPageSpec;\n }\n\n public getHtmlPageCode(): Observable {\n const htmlPageCode = this.http\n .get('/hcm/CandidateSelfService/lib/htmlPage/testHtmlPage.html').pipe(\n catchError(error => this.handleError(error)));\n return htmlPageCode;\n }\n\n public getHtmlPageCss(): Observable {\n const htmlPageCss = this.http\n .get('/hcm/CandidateSelfService/lib/htmlPage/testHtmlPage.css').pipe(\n catchError(error => this.handleError(error)));\n return htmlPageCss;\n }\n\n public getHtmlPageJs(): Observable {\n const htmlPageJs = this.http\n .get('/hcm/CandidateSelfService/lib/htmlPage/testHtmlPage.js').pipe(\n catchError(error => this.handleError(error)));\n\n return htmlPageJs;\n }\n\n private handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","import {\n Component,\n AfterViewInit,\n OnInit,\n ElementRef,\n ApplicationRef,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { LMHtmlPageUtilService } from './lm-html-page-util.service';\nimport { Router, NavigationEnd, NavigationStart, ActivatedRoute } from '@angular/router';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { SaveRequired } from '@base/lm-base';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { SohoMessageService, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMComponentInfoService, LMLoggerService } from '@services/index';\nimport { LMBannerHeaderComponentRef } from '@banner/lm-banner-header-component-ref.service';\nimport { BehaviorSubject, Observable, SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport {\n LMActionFormDialogComponent,\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/index';\nimport { filter } from 'rxjs/operators';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\n\n@Component({\n selector: 'lm-htmlpage',\n template: `\n \n `,\n providers: [ LMHtmlPageUtilService, LMFormManualRepService, LMUrlUtilService, LMHtmlUrlDocService ]\n})\nexport class LMHtmlPageComponent extends LMBaseComponent implements AfterViewInit, OnInit, OnDestroy, SaveRequired {\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent; // : LMHtmlUrlDocComponent;\n\n private htmlPageCodeLoaded = false;\n public url;\n public _isHtmlFragment: false;\n public autoLoadUrl: string;\n private toolbarButtonEventSubscription: ISubscription;\n\n constructor(\n private zone: NgZone,\n private changeDetectionRef: ChangeDetectorRef,\n private elementRef: ElementRef,\n private router: Router,\n private route: ActivatedRoute,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private activatedRoute: ActivatedRoute,\n private lmLoggerService: LMLoggerService,\n private lmBannerHeaderCompRef: LMBannerHeaderComponentRef,\n private lmActionFormDialogService: LMActionFormDialogService,\n private sohoMessageService: SohoMessageService,\n public sohoModalDialogService: SohoModalDialogService,\n public lmContextService: LMContextService,\n private appRef: ApplicationRef,\n private currentComponent: LMRouteComponentService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n\n this.activatedRoute.queryParams.subscribe((params: any) => {\n console.log(params);\n\n if (params.autoLoadUrl) {\n this.autoLoadUrl = params.autoLoadUrl;\n this._isHtmlFragment = params.isHtmlFragment;\n }\n });\n // This is added for now to get by an issue where the preceived loading of the component is delayed.\n // The constructor is called but then a 4-10 second delay is seen before the ngOnInit is called.\n // The issue was written up but the issue closed as no example was submitted and the problem was not\n // seen by a large number of people. Current plan is to try to dup the issue in a small example and\n // submit. A link to the issue Below\n // https://github.com/angular/angular/issues/18816\n // setTimeout(() => {\n // this.zone.run(() => {\n // // DETECT CHANGES\n // this.lmLoggerService.time('LMHtmlPage.constructor > setTimeout > zone.run detectChanges()');\n // this.changeDetectionRef.detectChanges();\n // this.lmLoggerService.timeEndCheck('LMHtmlPage.constructor > setTimeout > zone.run detectChanges()', 200);\n // });\n // });\n\n const routerEventsSubscription = router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n // This is needed to trigger a repaint when a mingle link is pressed\n setTimeout(() => {\n appRef.tick();\n });\n } else if (event instanceof NavigationStart) {\n // safety to anable the toolbar when leaving the screen since we do not want tto maintain the state between screens.\n if (this.lmBannerHeaderCompRef && this.lmBannerHeaderCompRef.instance) {\n this.lmBannerHeaderCompRef.instance.lmToolbarComponent.setToolbarDisabled(false);\n }\n }\n });\n }\n\n ngOnInit() {\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n if (!this.htmlPageCodeLoaded) {\n this.loadHtmlSpec(event.url);\n }\n }\n });\n\n this.loadHtmlSpec(this.router.url);\n this.subscribeToBannerEvents();\n }\n\n ngAfterViewInit() {\n this.currentComponent.setRouteComponent(this);\n this.htmlPageCodeLoaded = true;\n\n if (this.lmBannerHeaderCompRef && this.lmBannerHeaderCompRef.instance) {\n this.lmBannerHeaderCompRef.instance.fullPageScroll = false;\n }\n\n setTimeout(() => {\n if (!this.lmBannerHeaderCompRef.instance) {\n return;\n }\n\n const webApp = this.route.snapshot.params['webApp'];\n const resourceId = this.route.snapshot.params['resourceId'];\n\n if (webApp === resourceId) {\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = Soho.Locale.translate('Home');\n } else {\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = '';\n }\n }, 1);\n }\n\n ngOnDestroy() {\n if (this.toolbarButtonEventSubscription) {\n this.toolbarButtonEventSubscription.unsubscribe();\n }\n }\n\n public onCustomButtonsSet(customButtons: any) {\n if (this.htmlDocComponent) {\n setTimeout(() => {\n NgZone.assertInAngularZone();\n this.buildToolbarButtons(customButtons);\n }, 1);\n }\n }\n\n checkSaveRequired() {\n return this.modalOpen();\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n\n modalOpen() {\n return this.lmActionFormDialogService.hasOpenDialog;\n }\n\n displayNavigationConfirmation(): Promise | boolean {\n const comp: LMActionFormDialogComponent = this.lmActionFormDialogService.getOpenDialog.componentDialog;\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const dialogId = 'UnsavedChanges';\n if (comp.formComponent.isModified()) {\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.LEAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.LEAVE),\n click: (e, modal) => {\n this.lmActionFormDialogService.getOpenDialog.close({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.STAY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.STAY),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n this.hideBusyIndicator();\n }\n }\n ];\n\n // Show the confirmation message dialog.\n // todo I18n\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('NavigateAwayMessage'))\n .title(Soho.Locale.translate('UnsavedChangesMessage'))\n .buttons(buttons)\n .open();\n\n } else {\n // the form in the action form dialog component isn't dirty, so just return a boolean rather than\n // a promise attached to a confirmation\n this.lmActionFormDialogService.getOpenDialog.close();\n return true;\n }\n\n return (youMayNavigate.pipe(filter(el => el))).toPromise();\n }\n\n loadHtmlSpec(url: string) {\n if (this.autoLoadUrl) {\n this.url = this.autoLoadUrl;\n } else {\n this.url = this.lmHtmlPageUtilService.getHtmlPage(url);\n }\n }\n\n setHtmlPageSpec(spec: any) {\n\n }\n\n setHtmlPageCode(code: string) {\n this.elementRef.nativeElement.innerHTML = code;\n }\n\n loadHtmlPageCSSArray(urlArray) {\n for (let i = 0; i < urlArray.length; i++) {\n this.loadHtmlPageCSS(urlArray[i]);\n }\n }\n\n loadHtmlPageCSS(url) {\n // Create link\n const link = document.createElement('link');\n link.href = url;\n link.rel = 'stylesheet';\n link.type = 'text/css';\n\n const head = document.getElementsByTagName('head')[0];\n const links = head.getElementsByTagName('link');\n const style = head.getElementsByTagName('style')[0];\n\n // Check if the same style sheet has been loaded already.\n let isLoaded = false;\n for (let i = 0; i < links.length; i++) {\n const node = links[i];\n if (node.href.indexOf(link.href) > -1) {\n isLoaded = true;\n }\n }\n if (isLoaded) {\n return;\n }\n\n head.insertBefore(link, style);\n }\n\n loadHtmlPageJSArray(urlArray): Promise {\n const self: LMHtmlPageComponent = this;\n return new Promise(function(resolve, rejectPromise) {\n const promiseArray = [];\n\n for (let i = 0; i < urlArray.length; i++) {\n promiseArray.push(\n // todo: use an observable instead.\n new Promise(function(resolve2, rejectPromise2) {\n const scr = document.createElement('script');\n scr.type = 'text/javascript';\n scr.src = urlArray[i] + '?ts=' + new Date().getTime();\n document.getElementsByTagName('head')[0].appendChild(scr);\n setTimeout(function() {\n resolve2(true);\n }, 100);\n })\n\n );\n }\n Promise.all(promiseArray).then(function(results) {\n resolve(self);\n });\n });\n }\n\n loadHtmlPageJS(url): Promise {\n const promise = new Promise((resolve: Function, reject: Function) => {\n const scr = document.createElement('script');\n scr.type = 'text/javascript';\n scr.src = url + '?ts=' + new Date().getTime();\n document.getElementsByTagName('head')[0].appendChild(scr);\n setTimeout(() => resolve(true), 100);\n });\n\n promise.catch(e => this.lmLoggerService.log('fail JS load' + e.getStacktrace()));\n\n return promise;\n }\n\n setHtmlPageCss(code: string) {\n const style = document.createElement('style');\n style.innerHTML = code;\n document.head.appendChild(style);\n }\n setHtmlPageJs(code: string): boolean {\n const script = document.createElement('script');\n script.innerHTML = code;\n setTimeout(function() {\n document.head.appendChild(script);\n }, 1);\n return true;\n }\n\n public buildToolbarButtons(toolbarButtons: Array ) {\n this.lmBannerHeaderCompRef.instance.lmToolbarComponent.forceUpdate();\n this.lmBannerHeaderCompRef.instance.lmToolbarComponent.buttons = toolbarButtons;\n }\n\n private subscribeToBannerEvents() {\n this.toolbarButtonEventSubscription = this.lmBannerHeaderCompRef?.instance?.toolbarButtonEvent.subscribe((toolbarButtonEvent: LMToolbarButtonEvent) => {\n this.onToolbarButtonEvent(toolbarButtonEvent);\n });\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent): void {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.fireCustomButtonPressed(toolbarButtonEvent.customToolbarButtonInfo);\n }\n }\n\n public onTitleChanged(event: any) {\n if (this.lmBannerHeaderCompRef.instance) {\n const titleChanged = event.detail;\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle =\n (this.url.indexOf('/land/') >= 0) ? '' : titleChanged.newTitle;\n }\n }\n\n public onChangeToolbarDisabledState(event: any) {\n if (this.lmBannerHeaderCompRef.instance) {\n this.lmBannerHeaderCompRef.instance.lmToolbarComponent.setToolbarDisabled(event);\n }\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n // let compiledTemplate = urltemplate.parse(this.pageSpec);\n // let loadUrl = compiledTemplate.expand({ resourceId: this.model.getData().resourceId });\n\n const formInfo: LMComponentInfo = {\n componentType: 'HTMLPage',\n name: 'HTMLPage',\n type: 'page',\n developer: false,\n isWizard: false,\n panelNavigation: false,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n // loadUrl: '',\n // dataUrl: '',\n // specUrl: '',\n };\n\n return formInfo;\n }\n\n public getComponentPlaceHolder() {\n return this.placeHolder;\n }\n\n saveComponentState(includeSubComponents?: boolean): void {\n }\n}\n","import {\n AfterViewInit,\n Component,\n OnInit,\n Input,\n Output,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n ChangeDetectorRef,\n ViewContainerRef,\n ViewChild, NgZone, HostListener\n} from '@angular/core';\n\nimport { Event, Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMBrowserUtilService, LMContextUtilService, LMGlobalUtilService, LMUniqueIdService } from '@utils/index';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { OnDestroy } from '@angular/core';\nimport { LMComponentInfoService, LMErrorUtilService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMContextService } from '@services/lm-context.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { SubscriptionLike as ISubscription, Observable, Observer, Subject, Subscription, BehaviorSubject } from 'rxjs';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMBannerMenuService } from '@banner/lm-banner-menu.service';\nimport {\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/lm-action-form-dialog.service';\nimport * as urltemplate from 'url-template';\nimport { AppConstants } from '@utils/app.constants';\nimport { Location } from '@angular/common';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMCtrlShiftClickEvent } from '@base/index';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMActionFormDialogComponent, LMManualRepresentationComponent } from '@app/components';\n\nexport class LMUrlToastMessage {\n public messageTitle: string = null;\n public message: string = null;\n}\n\nexport class LMUrlDocSaveResult {\n private _isComplete: boolean;\n private _message: string = null;\n private _isError = false;\n\n get isComplete(): boolean {\n return this._isComplete;\n }\n\n get isError(): boolean {\n return this._isError;\n }\n\n get hasMessage(): boolean {\n return this._message !== null;\n }\n get message(): string {\n return this._message;\n }\n\n constructor(isComplete: boolean, isError: boolean,\n message?: string) {\n this._isComplete = isComplete;\n this._isError = isError;\n if (message) {\n this._message = message;\n }\n }\n}\n\n@Component({\n selector: 'lm-html-url-doc',\n template: `\n \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n `,\n styles: [ `:host {\n display: block;\n height: 100%;\n }` ]\n})\nexport class LMHtmlUrlDocComponent extends LMBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('urlDialogPlaceholder', { read: ViewContainerRef, static: true }) urlPlaceHolder: ViewContainerRef;\n\n @HostListener('window:resize') public onResize() {\n this.setDefaultFrameHeight();\n }\n\n @Input() bottomSpacing = 0;\n @Input() upToLines?: 0;\n @Input() upToChar?: 0;\n @Input() adjustFrameToWindow = true;\n @Input() isPanelNavigation = false;\n @Input() isDashboardPanel = false;\n @Input() fieldManualRep = false;\n @Input() parentContainerId: string;\n @Input() showLoading = false;\n @Input() frameIdentifier: string;\n @Input() automationId: string;\n\n // this is only set when an html fragment is needed. Default is false and used this way except for fragment loading\n // [isHtmlFragment] must be listed before [url] from calling component due to order process.\n @Input() set isHtmlFragment(isHtmlFragment: boolean) {\n this._isHtmlFragment = isHtmlFragment;\n }\n @Input() set url(url: string) {\n // this.customUrl = this.getCustomURL();\n // remove ng=true and ng3x=true if it is in the url\n this.inputUrl = url;\n this._url = url\n .replace(/&csk.ng=true/g, '')\n .replace(/csk.ng=true&/g, '')\n .replace(/&csk.ng3x=true/g, '')\n .replace(/csk.ng3x=true&/g, '')\n .replace(/&csk.showusingxi=true/g, '')\n .replace(/csk.showusingxi=true&/g, '');\n\n // const iframe = this.elementRef.nativeElement.getElementsByTagName('iframe');\n // iframe.src = this.getCustomURL(); // this._sanitizer.bypassSecurityTrustResourceUrl(this.getCustomURL());\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(this._url);\n let host = this.lmContextUtilService.getLocation(noDefaultPortUrl).host;\n\n // We use the getLocation method on the contextUtilService to allow us to get the host from the url.\n // Even when we pass in the default port stripped from the url to the method when you ask for the host\n // it includes the port(IE only). So we look for the default port and strip it if it is at the the end of the host.\n // The browsers strip default ports so they cannot be used to compare to window.location.host\n // This will allow the code to take the proper path when loading the iframe below\n if (this.lmBrowserUtil.isIE) {\n host = (host.endsWith(':80')) ? host.substring(0, host.length - 3) : host;\n host = (host.endsWith(':443')) ? host.substring(0, host.length - 4) : host;\n }\n\n const standAloneParam = this.lmUrlUtilService.getUrlParam(url, 'standalone') || this.isManualRep(url);\n\n const log = {\n codeLoc: 'lm-html-url-doc.component.td - set url @Input',\n url,\n localUrl: this._url,\n noDefaultPortUrl,\n host,\n standAloneParam,\n 'window.location.host': window.location.host,\n 'url.length': url.length,\n doHostsMatch: (host.toLowerCase() === window.location.host.toLowerCase()),\n };\n\n this.lmLoggerService.log(log);\n\n if (url.length > 0 && host.toLowerCase() === window.location.host.toLowerCase()) {\n const hashPos = url.indexOf('#');\n let hash = '';\n if (hashPos >= 0) {\n const searchPos = url.indexOf('?');\n hash = searchPos >= 0 ? url.substring(hashPos, searchPos) : url.substring(hashPos);\n }\n\n if (standAloneParam && standAloneParam === 'true') {\n // NOOP at this point we will not insert the landmark-api.js file. We might decide to in the future.\n } else if (this._isHtmlFragment) {\n const dataArea = this.route.snapshot.params['dataArea'];\n const webApp = this.route.snapshot.params['webApp'];\n\n const destinationUrl = this.fixedEncodeURIComponent(this.lmUrlUtilService.stripDefaultPort(this._url));\n const customUrl = window.location.protocol + '//' + window.location.host.toLowerCase() + '/' + dataArea + '/' + webApp + '/custom/custom';\n this._url = customUrl + '?csk.3x=true&loadUrl=' + destinationUrl;\n this._url = this.lmUrlUtilService.propagateSessionKeys(this._url, '&');\n // remove ng and showusingxi again after propagatingSessionKeys (basically to propagate lidkey)\n this._url = this._url.replace(/&csk.ng=true/g, '').replace(/csk.ng=true&/g, '').replace(/&csk.ng3x=true/g, '').replace(/csk.ng3x=true&/g, '').replace(/&csk.showusingxi=true/g, '')\n .replace(/csk.showusingxi=true&/g, '');\n if (this.fieldManualRep) {\n this._url += '&manRepType=field';\n }\n }\n // if the hosts match add the 'internal' parameter to let the server know to set the iframe option to the servlet host.\n this._url = this.lmUrlUtilService.addParamToUrl(this._url, 'internal', 'true');\n // now if a hash value exists on the incoming url we tack it onto the custom url to have it available to an AngularJS\n // or other app passing info in the hash while loading.\n if (hash.length > 0){\n this._url += hash;\n }\n }\n\n this.loadedUrl = this._url;\n\n const sanitizedUrl = this._sanitizer.bypassSecurityTrustResourceUrl( this._url); // this.getCustomURL()\n // this.customUrl = sanitizedUrl;\n this.customUrl = sanitizedUrl;\n\n // after loading the url we wait a second and then try to access the iframe contentWindow.\n // This process will set a flag that triggers a message to display if a security exception is hit.\n // This would be a Cross-site Origin issue.\n setTimeout(() => {\n this.getContentWindow();\n }, 1000);\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() htmlUrlDisplayed = new EventEmitter();\n @Output() setFieldDirty = new EventEmitter();\n @Output() titleChanged = new EventEmitter();\n @Output() landmarkApiLoaded = new EventEmitter();\n @Output() customDocumentLoaded = new EventEmitter();\n @Output() landmarkCustomReady = new EventEmitter();\n @Output() customButtonsSet = new EventEmitter();\n @Output() changeToolbarDisabledState = new EventEmitter();\n @Output() notifyUrlTransactionComplete = new EventEmitter();\n\n private innerIframe: NodeListOf;\n private _isHtmlFragment = false;\n private _manualRepFields = {};\n private _url: string;\n private customButtons: Array;\n public iFrameSecurityException = false;\n public iFrameSizingElement: HTMLElement;\n private defaultFrameHeight = 600;\n private minimumFrameHeight = 350;\n public crossOriginMessage = {\n title: 'Error loading web page',\n icon: 'icon-empty-error-loading',\n info: 'Cross-site origin not allowed.',\n color: 'azure'\n };\n private formType: LMFormType = 'Standard';\n\n private localThemeSubjectSubscription;\n private localColorSubjectSubscription;\n public readonly localThemeSubject = new Subject();\n public readonly localColorSubject = new Subject();\n\n /**\n * Used internally so that the subscription can be released when\n * the component is destroyed.\n */\n private routerEventsSubscription: ISubscription;\n\n public testVersion1: boolean;\n\n public customUrl: SafeResourceUrl = null;\n public loadedUrl: string = null;\n public inputUrl: string = null;\n constructor(\n public sohoModalDialogService: SohoModalDialogService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected _sanitizer: DomSanitizer,\n protected lmErrorUtilService: LMErrorUtilService,\n private location: Location,\n private lmContextService: LMContextService,\n private lmThemeService: LMThemeService,\n private lmLoggerService: LMLoggerService,\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService, // LMActionFormDialogService,\n private router: Router,\n private ngZone: NgZone,\n private route: ActivatedRoute,\n private routeComponent: LMRouteComponentService,\n private lmSpecService: LMSpecService,\n private elementRef: ElementRef,\n private lmNavigationService: LMNavigationService,\n private currentComponent: LMRouteComponentService,\n private lmUrlUtilService: LMUrlUtilService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmFormManualRepService: LMFormManualRepService,\n private lmHtmlUrlDocService: LMHtmlUrlDocService,\n private lmContextUtilService: LMContextUtilService,\n private lmBrowserUtil: LMBrowserUtilService,\n protected lmComponentInfoService: LMComponentInfoService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmBannerMenuService: LMBannerMenuService,\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n\n this.routerEventsSubscription = router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n this.lmLoggerService.log('lm-html-url-doc: navigationend');\n } else if (event instanceof NavigationStart) {\n this.lmLoggerService.log('lm-html-url-doc: navigationstart');\n }\n });\n\n }\n\n // events\n ngOnInit() {\n\n this.localColorSubjectSubscription =\n this.lmThemeService.getColorChangeSubject().subscribe(color => this.localColorSubject.next(color));\n this.localThemeSubjectSubscription =\n this.lmThemeService.getThemeChangeSubject().subscribe(theme => this.localThemeSubject.next(theme));\n\n this.localColorSubject.subscribe( (color) => {\n this.getLandmarkApiRef().fireLandmarkColorChanged(color);\n });\n this.localThemeSubject.subscribe( (theme) => {\n this.getLandmarkApiRef().fireLandmarkThemeChanged(theme);\n });\n\n this.lmLoggerService.trace([ this, 'ngOnInit()' ]);\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n // todo: remove once testversion 1 is no longer supported.\n // This is to maintain backward compatability when no parentContainerId is set.\n // This is wrong as there could be duplicate ids but I don't want to break any\n // existing tests.\n if (this.testVersion1 && !this.parentContainerId) {\n this.parentContainerId = 'landmark3_5frame';\n }\n\n if (!this.frameIdentifier) {\n this.frameIdentifier = this.testVersion1 ? this.parentContainerId : this.parentContainerId + '_iframe';\n }\n\n if (this.showLoading) {\n this.showBusyIndicator();\n } else {\n this.hideBusyIndicator();\n }\n this.placeHolder = this.urlPlaceHolder;\n }\n\n ngAfterViewInit(): void {\n\n $(window.document).off('titleChangedEvent').on('titleChangedEvent', (e: any) => {\n this.titleChanged.emit(e);\n });\n $(window.document).off('customDocumentLoadedEvent').on('customDocumentLoadedEvent', (e: any) => {\n this.customDocumentLoaded.emit(this);\n });\n $(window.document).off('lmApiLoadEvent').on('lmApiLoadEvent', (e: any) => {\n try {\n const loadApi = e.detail.api;\n const frameIdentifier = e.detail.identifier;\n let apiSpace: {[key: string]: any};\n // We take a very indirect path to make sure we match up the correct api with the correct hand coded screen or manual rep\n\n // We need to tie the correct lm-html-url-doc to the calling landmark-api.js so information is correct\n // this has not been done in the past and it works because for the most part the hand coded screens to this point\n // have not had a need to be that specific. The need was discovered when Manual Rep was implemented and many\n // iframe/html-url-doc's are on the same page and they are always tied to a set of fields from the lpl definition.\n const refFrame = this.lmHtmlUrlDocService.getFrameRefs()[frameIdentifier];\n if (!refFrame) {\n apiSpace = this.getFormApi();\n } else {\n apiSpace = refFrame.compRef.getLmHtmlUrlDocComponent().getFormApi();\n }\n loadApi(apiSpace);\n this.landmarkApiLoaded.emit(this);\n this.hideBusyIndicator();\n } catch (error) {\n this.lmLoggerService.log('Unable to add api method set to docueents using landmark-api');\n }\n });\n\n $(window.document).off('IFrameUnloadedEvent').on('IFrameUnloadedEvent', (e: any) => {\n this.lmLoggerService.log('*** screen unloading ***');\n });\n\n $(window.document).off('IFrameContentModifiedEvent').on('IFrameContentModifiedEvent', (e: any) => {\n this.contentModified.emit(e);\n // here we would find the angular event for content modified\n // alert(this.checkModified(e));\n });\n\n this.lmLoggerService.trace([ this, 'ngAfterViewInit' ]);\n this.routeComponent.setHtmlUrlDocComponent(this);\n this.build();\n\n this.htmlUrlDisplayed.emit(this);\n\n // need to be ceative on when we do this\n setTimeout(() => {\n this.setDefaultFrameHeight();\n }, 1);\n\n }\n\n ngOnDestroy() {\n\n /**\n * Only call un-subscribe from routerOutletSubscription on ngOnDestory\n * since it's created in the constructor and is necessary when\n * ListComponent object is being re-used.\n */\n if (this.routerEventsSubscription) {\n this.routerEventsSubscription.unsubscribe();\n }\n\n // added to try to fix memory leak in IE11 when using the harness\n $(window.document).off('titleChangedEvent');\n $(window.document).off('lmApiLoadEvent');\n $(window.document).off('IFrameUnloadedEvent');\n $(window.document).off('IFrameContentModifiedEvent');\n\n if (this.localColorSubject) {\n this.localColorSubject.unsubscribe();\n }\n if (this.localThemeSubject) {\n this.localThemeSubject.unsubscribe();\n }\n }\n\n public getFormApi() {\n return {\n fieldManualRepInfo: this.fieldManualRep ? { isFieldManualRep: true, defaultLineHeight: AppConstants.DEFAULT_LINE_HEIGHT, lines: this.upToLines } : { isFieldManualRep: false },\n isNg: () => true,\n closeNavigationMenu: () => {this.closeNavigationMenu();},\n getManualRefFieldsInternal: (identifier: string) => this.getManualRefFields(identifier),\n getFormStateInternal: (identifier: string) => this.getFormState(identifier),\n getContext: () => this.getContext(),\n closeFormDialogs: () => this.closeFormDialogs(),\n getThemeInfo: () => this.getThemeInfo(),\n showToast: (message: string, messageTitle?: string) => this.showToast(message, messageTitle),\n setModelFieldValueInternal: (identifier: string, fieldId: string, value: any, notifyListeners?: boolean) => {\n this.ngZone.run(() => {\n this.setModelFieldValue(identifier, fieldId, value, notifyListeners);\n });\n },\n notifyTransactionComplete: (toastMessage?: LMUrlToastMessage) => {\n this.notifyTransactionComplete(toastMessage);\n },\n setDataView: (dataView) => {},\n landmarkCustomReady: () => {\n this.ngZone.run(() => this.landmarkCustomReady.emit());\n },\n setRouteUrl: (url: string, sendContextMessages?: boolean) => {\n this.setRouteUrl(url, sendContextMessages);\n },\n setSizingElement: (element) => (this.setSizingElement(element)),\n setCustomToolbarButtons: (buttonData) => {\n\n try {\n const toolBarButtons: Array = buttonData as Array;\n // If the button is an icon button and it is a menu button we will supress the down arrow on the menu button by dafault\n // If the value is set we will honor it so it still could be false if that is desired.\n for (const toolBarButton of toolBarButtons) {\n const buttonInfo = toolBarButton.customToolbarButtonInfo;\n if (!buttonInfo.text && buttonInfo.menu && buttonInfo.hideMenuArrow === undefined) {\n buttonInfo.hideMenuArrow = true;\n }\n }\n this.customButtons = buttonData; this.ngZone.run(() => this.customButtonsSet.emit(buttonData));\n\n } catch (err) {\n this.lmLoggerService.log('Unable to process buttons: Need to be of type Array');\n }\n },\n setToolbarDisabledState: (state) => {\n this.ngZone.run(() => {\n this.changeToolbarDisabledState.emit(state);\n });\n },\n sendClientStatsTelegraf: (name: string, telegrafProperties: LMTelegrafProperties) => this.sendClientStatsTelegraf(name, telegrafProperties),\n getCustomToolbarButtons: () => this.customButtons,\n save: (callback) => {callback(true, false, \"\");},\n setFieldDirty: (dirty: boolean) => {this.ngZone.run(() => {this.runSetFieldDirty(dirty);});},\n isModified: (): boolean => false,\n runMenuItem: (menuUrl: string) => {this.runMenuItem(menuUrl);},\n runNavigationItem: (navigationUrl: string) => {this.runNavigationItem(navigationUrl);},\n runDrillItem: (drillUrl: string) => {this.runDrillItem(drillUrl);},\n runUrl: (url: string) => {this.runUrl(url);},\n runMobileUrl: (url: string) => {this.runMobileUrl(url);},\n replaceUrl: (url: string) => {this.replaceUrl(url);},\n log: (value: any) => { this.lmLoggerService.log(value); },\n isDashboardPanel: () => this.isDashboardPanel,\n openActionForm: (webapp: string, prodline: string, resourceId: string, search: string, fields: LMHarnessInterfaceFields, actionName?: string, hideActionButtons?: boolean) => [\n this.ngZone.run(() => {\n this.openForm(webapp, prodline, resourceId, search, fields, actionName, hideActionButtons);\n }) ],\n openForm: (webapp: string, prodline: string, resourceId: string, search: string, fields: LMHarnessInterfaceFields, actionName?: string, hideActionButtons?: boolean) => [\n this.ngZone.run(() => {\n this.openForm(webapp, prodline, resourceId, search, fields, actionName, hideActionButtons);\n }) ],\n runActionItem: (url: string) => {\n this.ngZone.run(() => {\n this.processActionItem(url);\n });\n },\n run3xAction: (url: string) => {\n this.run3xAction(url);\n },\n execute3_5MinglEvent: (method: string, param: any) => this.execute3_5MinglEvent(method, param),\n showComponentInfo: () => {\n this.showComponentInfo();\n },\n };\n }\n\n public build() {\n }\n\n public execute3_5MinglEvent(method: string, param: any): any {\n if (method === 'registerMessageHandlers') {\n this.lmContextUtilService.registerMessageHandlers();\n } else if (method === 'clearAll') {\n this.lmContextUtilService.clearAll();\n } else if (method === 'disableShortcut') {\n this.lmContextUtilService.disableShortcut();\n } else if (method === 'enableShortcut') {\n this.lmContextUtilService.enableStandardShortcut();\n } else if (method === 'sendContextMessages') {\n this.lmContextUtilService.sendContextMessages(param);\n } else if (method === 'sendMessagesForConfigHome') {\n this.lmContextUtilService.sendMessagesForConfigHome(param);\n }\n }\n\n public reload() {\n // must allow the angular stuff to finish before firing the event to the frame\n setTimeout(() => {\n this.getLandmarkApiRef().fireLandmarkDataUpdated();\n }, 1);\n\n // this.ngZone.runOutsideAngular(() => this.getLandmarkApiRef().fireLandmarkDataUpdated());\n }\n\n public showComponentInfo() {\n const event = document.createEvent('MouseEvents');\n event.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, true, false, true, false, 0, null);\n // document.body.dispatchEvent(event);\n const ctrlShiftClickEvent: LMCtrlShiftClickEvent = event as LMCtrlShiftClickEvent;\n ctrlShiftClickEvent.srcEventElement = this.elementRef.nativeElement;\n\n ctrlShiftClickEvent.routeComponent = (this.currentComponent.getRouteComponent() as LMBaseComponent);\n\n this.elementRef.nativeElement.dispatchEvent(ctrlShiftClickEvent);\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n // let compiledTemplate = urltemplate.parse(this.pageSpec);\n // let loadUrl = compiledTemplate.expand({ resourceId: this.model.getData().resourceId });\n\n const message = this.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n let manualRepComp: LMManualRepresentationComponent = null;\n if (this.frameIdentifier && this.fieldManualRep) {\n manualRepComp = this.lmHtmlUrlDocService.getFrameRefs()[this.frameIdentifier].compRef;\n }\n\n\n const formInfo: LMComponentInfo = {\n componentType: this.fieldManualRep ? 'MANUAL_REP' : 'HTMLDOC',\n name: this.fieldManualRep ? manualRepComp._manualRep.repName : this.parentContainerId,\n type: this.fieldManualRep ? 'Manual Representation' : 'HTML Page',\n developer: this.lmContextService.getContext().developer,\n loadedUrl: this._url,\n inputUrl: this.inputUrl,\n bottomSpacing: this.bottomSpacing,\n adjustFrameToWindow: this.adjustFrameToWindow,\n isDashboardPanel: this.isDashboardPanel,\n fieldManualRep: this.fieldManualRep,\n uniqueId: this.parentContainerId,\n showLoading: this.showLoading,\n // manualRepFields: this.manualRepFields,\n isHtmlFragment: this._isHtmlFragment,\n tenant: this.lmContextService.getContext().dataArea,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n\n message: message.length > 0 ? message : undefined,\n };\n\n if (formInfo.fieldManualRep) {\n formInfo.manualRepName = manualRepComp._manualRep.repName;\n formInfo.frameIdentifier = this.frameIdentifier;\n }\n\n return formInfo;\n }\n\n public getCustomURL() {\n if (this._url) { // this._url;\n return 'http://usspnswolynie2.infor.com:2041/uitest/web/samples/iframetest/test.html';\n } else {\n return null;\n }\n }\n private fixedEncodeURIComponent(str: string) { // tslint:disable-line\n return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16));\n }\n\n public getContentWindow() {\n // let contentWindow: any = document.getElementById(this.parentContainerId);\n const findStr = '[identifier=\"' + this.frameIdentifier + '\"]';\n const contentWindows: any = document.querySelectorAll(findStr);\n const contentWindow = contentWindows.length > 0 ? contentWindows[0] : undefined;\n\n if (!contentWindow) {\n return undefined;\n }\n return contentWindow.contentWindow;\n }\n\n private setSizingElement(element: HTMLElement) {\n this.iFrameSizingElement = element;\n this.setDefaultFrameHeight();\n }\n\n private setRouteUrl(url: string, sendContextMessages = true) {\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n this.location.replaceState(url);\n\n if (sendContextMessages) {\n this.lmContextUtilService.sendMessagesForHtmlPage({\n dataArea: this.lmContextService.getUrlPdlOrDa(),\n webApp: this.lmContextService.getContext().webApp\n });\n }\n }\n\n private hasLandmarkApiRef(): boolean {\n try {\n const contentWindow = this.getContentWindow();\n // we will have no landmarkApiRef if the content window does nto exist or we have hit an iFrameSecurityException\n if (!contentWindow || this.iFrameSecurityException) {\n return false;\n }\n return contentWindow !== undefined && contentWindow.landmarkNg !== undefined && contentWindow.landmarkNg.api !== undefined;\n } catch (e) {\n console.log(e);\n return false;\n }\n }\n\n private getLandmarkApiRef() {\n if (this.iFrameSecurityException) {\n this.lmLoggerService.log('Security error on iframe detected');\n return null;\n }\n const contentWindow = this.getContentWindow();\n if (contentWindow && contentWindow.landmarkNg) {\n return contentWindow.landmarkNg.api;\n }\n\n return null;\n }\n\n public getRouterUrl() {\n return this.router.url;\n }\n\n public getLoadedUrl() {\n return this.loadedUrl;\n }\n\n public setLoadedUrl(loadedUrl: string) {\n this.loadedUrl = loadedUrl;\n }\n\n public setModelFieldValue(frameIdentifier: string, fieldId: string, value: any, notifyListeners?: boolean) {\n notifyListeners = (notifyListeners === undefined) ? true : notifyListeners;\n this.lmHtmlUrlDocService.getFrameData(frameIdentifier).compRef.setModelFields(fieldId, value, notifyListeners);\n }\n\n public getFormState(identifier) {\n const data = this.lmHtmlUrlDocService.getFrameData(identifier);\n return data.compRef.getFormState();\n }\n\n public getManualRefFields(identifier: string) {\n\n const data = this.lmHtmlUrlDocService.getFrameData(identifier);\n return data.manualRepFields;\n // let name = this.getLandmarkApiRef().manualRepName;\n // return this.lmFormManualRepService.getManualRefFields(name);\n }\n\n public runActionFormIn3_5(url: string) {\n // fix url to run in 3x\n\n // todo sjw ppatton would be nice to use LMUrlUtilService.updateUrlParams for removing params from a url.\n // however in updateUrlParams we need to implement the ability to remove a param if undefined|null is\n // passed in as the value to LMUrlParam property\n // const params: LMUrlParams = {\n // 'csk.cli': undefined,\n // 'csk.ng': undefined,\n // 'csk.ng3x': undefined,\n // 'csk.3x': true\n // };\n // this.lmUrlUtilService.updateUrlParams(url, params);\n\n url = url\n .replace(/&csk.cli=true/g, '')\n .replace(/&csk.ng=true/g, '')\n .replace(/csk.ng=true&/g, '')\n .replace(/&csk.ng3x=true/g, '')\n .replace(/csk.ng3x=true&/g, '');\n\n const delimiter: string = url.indexOf('?') === -1 ? '?' : '&';\n url = url + delimiter + 'csk.3x=true';\n this.getContentWindow().runActionForm(url);\n\n // Since we know we are going to a 3.5 action form we close the 4.0 busy indicator as we call the 3.5 form and let 3.5 handle this beyond that point.\n this.hideBusyIndicator();\n }\n\n public replaceUrl(url: string) {\n let fixedUrl = url;\n\n fixedUrl = this.lmUrlUtilService.remove3XParams(fixedUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(fixedUrl, 'custom-replaceUrl');\n fixedUrl = this.lmUrlUtilService.updateContextSessionKeyParams(fixedUrl);\n fixedUrl = this.checkForRedirect(fixedUrl);\n fixedUrl = this.lmUrlUtilService.toRelativeUrl(fixedUrl);\n\n this.lmGlobalUtilService.navigateByUrl(fixedUrl, { replaceUrl: true }).then((completed?: boolean) => {\n this.lmLoggerService.log('navigationByUrl completed?: ' + completed);\n });\n }\n\n public get3_5Url() {\n return this._url;\n }\n\n public isManualRep(url: string): boolean {\n return url.indexOf('manualrep/manualrep') >= 0;\n }\n\n public runMobileUrl(url: string) {\n this.runUrl(url, false, true);\n }\n\n public runUrl(url: string, newWindow?: boolean, maintainWindowCSK?: boolean) {\n\n if (this.currentComponent.getHtmlUrlDocComponent() === this) {\n // get url path of current and future url.\n const futureUrl = url;\n const currentUrl = this.get3_5Url();\n\n const futurePath = this.lmUrlUtilService.getUrlPath(futureUrl);\n const currentPath = this.lmUrlUtilService.getUrlPath(currentUrl);\n\n if (futurePath === currentPath) {\n this.getLandmarkApiRef().fireSameUrlRequested(this.lmUrlUtilService.getUrlParams(futureUrl));\n return;\n }\n\n }\n let fixedUrl = url;\n if (!maintainWindowCSK) {\n fixedUrl = this.lmUrlUtilService.remove3XParams(fixedUrl);\n } else {\n fixedUrl = this.lmUrlUtilService.remove3XParam(fixedUrl);\n }\n\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(fixedUrl, 'custom-runUrl');\n\n fixedUrl = this.lmUrlUtilService.updateContextSessionKeyParams(fixedUrl);\n fixedUrl = this.lmUrlUtilService.stripDefaultPort(fixedUrl);\n fixedUrl = this.checkForRedirect(fixedUrl);\n\n const extUrlCheck = this.lmUrlUtilService.toRelativeUrl(fixedUrl);\n if (newWindow || extUrlCheck.indexOf('http') === 0) {\n this.lmUrlUtilService.openExternalUrl(fixedUrl);\n } else {\n if (this.lmContextService.inMingleWidget()) {\n this.lmContextUtilService.sendDrillbackMessage(url);\n } else {\n this.ngZone.run(() => {\n this.lmGlobalUtilService.navigateByUrl(fixedUrl).then((completed?: boolean) => {\n this.lmLoggerService.log('navigationByUrl completed?: ' + completed);\n });\n });\n }\n }\n }\n\n public fireSameUrlRequested(url) {\n this.hideBusyIndicator();\n const params = this.lmUrlUtilService.getUrlParams(url);\n // this.location.go( url);\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n\n this.getLandmarkApiRef().fireSameUrlRequested(params);\n }\n\n private checkForRedirect(url: string): string {\n if (url.indexOf('/action/') >= 0) {\n return this.processActionItem(url);\n }\n return url;\n }\n\n public run3xAction(actionUrl: string) {\n actionUrl = this.lmUrlUtilService.remove3XParams(actionUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(actionUrl, 'custom-run3xAction');\n actionUrl = this.lmUrlUtilService.updateContextSessionKeyParams(actionUrl);\n this.lmSpecService.getRedirectUrl(actionUrl).subscribe(response => {\n const url = response.redirectUrl;\n // url = this.lmUrlUtilService.updateContextSessionKeyParams(url, this.lmContextService.getContext())\n this.lmGlobalUtilService.navigateByUrl(url);\n });\n }\n\n public runDrillItem(drillUrl: string) {\n drillUrl = this.lmUrlUtilService.remove3XParams(drillUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(drillUrl, 'custom-runDrillItem');\n drillUrl = this.lmUrlUtilService.updateContextSessionKeyParams(drillUrl);\n this.lmSpecService.getDrillSpec(drillUrl).subscribe(\n response => {\n if (response.redirectUrl) {\n let url = response.redirectUrl;\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n }\n\n public closeFormDialogs() {\n while(this.lmActionFormDialogService.hasOpenDialog) {\n this.lmActionFormDialogService.getOpenDialog.close();\n }\n }\n\n // This will always open a XI action form if called\n public openForm(webapp: string, prodline: string, resourceId: string, search: string, harnessFields: LMHarnessInterfaceFields, actionName?: string, hideActionButtons?: boolean) {\n\n let actionFormUrl = '/' + prodline + '/' + webapp + '/form/' + resourceId + '?' + search\n + (search && search.length > 0 ? '&' : '')\n + (actionName ? 'action=' + actionName : '');\n actionFormUrl = this.lmUrlUtilService.propagateSessionKeys(actionFormUrl, '&');\n\n actionFormUrl = this.lmUrlUtilService.remove3XParams(actionFormUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(actionFormUrl, 'custom-openActionForm');\n\n this.lmSpecService.getFormSpec(actionFormUrl).subscribe((response: LMFormSpecResponse | LMSystemException) => {\n\n const formUrlInfo = (response as LMFormSpecResponse).formUrlInfo;\n const formSpec = (response as LMFormSpecResponse).formSpec;\n\n let actionSpec: LMActionSpec = formSpec.busClassSpec.actionSpec;\n if (!actionSpec) {\n let index = 0;\n formSpec.busClassSpec.actions.forEach(data => {\n if (data.name === actionName) {\n index = data.index;\n }\n });\n actionSpec = formSpec.busClassSpec.actions[index];\n }\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n let url = urlCompiledTemplate.expand({ resourceId, actionName: actionSpec.name });\n\n // now add the fields passed in to the url params to be added to dataview.\n const fieldParamString = this.lmUrlUtilService.fieldsToUrlParams(harnessFields, 'f');\n url += fieldParamString;\n\n this.lmActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n\n const options: LMActionFormOptions = {\n forceXI: true,\n };\n this.lmActionFormDialogService\n .runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView, undefined, options, false, hideActionButtons)\n .subscribe((actionFormDialogResult: LMActionFormDialogResult) => {\n if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // The view exception and errors will be prompted before the dialog closes.\n // So just print the success message here after the dialog closes\n const transaction = actionFormDialogResult.transactionStateResult.completedTransactionList[ 0 ];\n const actionMessage = transaction.message;\n this.lmGlobalUtilService.displayToastMessage('', actionMessage, AppConstants.TRA_ACTION_COMPLETED);\n\n this.fireFormActionComplete(LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED,\n { message: actionMessage, resourceId: transaction.dataView.resourceId });\n\n // Check to see if the form return call includes a redirectUrl. If so navigate to that url.\n setTimeout(() => {\n const formResponse = actionFormDialogResult.transactionStateResult.response[0];\n if (formResponse.redirectUrl) {\n this.lmGlobalUtilService.navigateByUrl(formResponse.redirectUrl);\n }\n }, 1);\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n });\n });\n }\n\n public fireFormActionComplete(status: LMActionFormDialogResultCode, data: LMActionFormCompleteData) {\n const apiRef = this.getLandmarkApiRef();\n // fire an event in the landmark-api to inform the calling code that the action was completed.\n\n this.ngZone.run(() => {\n apiRef.fireFormActionComplete(status, data);\n });\n }\n\n public processActionItem(actionUrl: string): string {\n actionUrl = this.lmUrlUtilService.remove3XParams(actionUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(actionUrl, 'custom-processActionItem');\n actionUrl = this.lmUrlUtilService.updateContextSessionKeyParams(actionUrl);\n this.lmSpecService.getActionSpec(actionUrl).subscribe(\n response => {\n if (response.redirectUrl) {\n let url = response.redirectUrl;\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n if (this.lmContextService.inMingleWidget()) {\n this.lmContextUtilService.sendDrillbackMessage(url);\n } else {\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n return actionUrl;\n }\n\n public sendClientStatsTelegraf(name: string, telegrafProperties: LMTelegrafProperties): Subscription {\n return this.lmGlobalUtilService.sendClientStatsTelegraf(telegrafProperties, true, name).subscribe((response: any) => {});\n }\n\n public runNavigationItem(navigationUrl: string) {\n navigationUrl = this.lmUrlUtilService.remove3XParams(navigationUrl);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(navigationUrl, 'custom-runNavigationItem');\n navigationUrl = this.lmUrlUtilService.updateContextSessionKeyParams(navigationUrl);\n this.lmSpecService.getNavigationSpec(navigationUrl).subscribe(\n response => {\n if (response.redirectUrl) {\n let url = response.redirectUrl;\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n\n // put pdf in its own tab\n if (url.indexOf('output=pdf') >= 0 || url.indexOf('/document/') >= 0 ) {\n this.lmUrlUtilService.openFile(url);\n } else if (this.lmContextService.inMingleWidget()) {\n this.lmContextUtilService.sendDrillbackMessage(url);\n } else {\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n //\n //\n //\n // this.lmSpecService.getRedirectUrl(navigationUrl).first().subscribe(response => {\n // this.lmUrlUtilService.navigateByUrl(response.redirectUrl);\n\n }\n\n public runMenuItem(menuUrl: string) {\n let fixedMenuLink = menuUrl;\n\n if (fixedMenuLink.indexOf('/menu/') < 0) {\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(fixedMenuLink, 'custom-runMenuItem');\n this.lmGlobalUtilService.navigateByUrl(fixedMenuLink).then((completed?: boolean) => {\n this.lmLoggerService.log('navigationByUrl completed?: ' + completed);\n });\n } else {\n fixedMenuLink = this.lmUrlUtilService.remove3XParams(fixedMenuLink);\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(fixedMenuLink, 'custom-runMenuItem');\n\n fixedMenuLink = this.lmUrlUtilService.updateContextSessionKeyParams(fixedMenuLink);\n const routeComponent: LMRouteComponentService = this.routeComponent;\n this.lmSpecService.getBannerSpec(fixedMenuLink).subscribe(\n response => {\n if (response.external) {\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.dialogUrl) {\n const personalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (this.lmContextService.is3_5Content(personalization.appDisplay)) {\n const comp: LMHtmlUrlDocComponent = routeComponent.getHtmlUrlDocComponent();\n comp.runActionFormIn3_5(response.dialogUrl);\n } else {\n\n const url = this.lmUrlUtilService.updateContextSessionKeyParams(response.dialogUrl);\n this.lmBannerMenuService.requestActionFromPageMenu(url, response.resourceId, this.placeHolder);\n }\n } else if (response.redirectUrl) {\n const url = this.lmUrlUtilService.updateContextSessionKeyParams(response.redirectUrl);\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(url);\n this.ngZone.run(() => {\n this.lmGlobalUtilService.navigateByUrl(noDefaultPortUrl).then((completed?: boolean) => {\n this.lmLoggerService.log('navigationByUrl completed?: ' + completed);\n });\n });\n }\n },\n error => {\n this.lmLoggerService.log('Unable to find menu from 3.5 iframe menu call');\n });\n }\n }\n\n public showToast(message: string, messageTitle?: string) {\n this.lmGlobalUtilService.displayToastMessage(messageTitle, message, 'unknown');\n }\n\n public notifyTransactionComplete(toastMessage?: LMUrlToastMessage) {\n // emit the trans\n this.notifyUrlTransactionComplete.emit();\n this.showToast(toastMessage.message, toastMessage.messageTitle);\n }\n\n public getContext() {\n // this will need to be refined once we get back to the Manual Rep work.\n if (this.lmFormManualRepService.getContext()) {\n return this.lmFormManualRepService.getContext();\n } else {\n return this.lmContextService.getContext();\n }\n }\n\n public getThemeInfo() {\n const theme = this.lmThemeService.getAvailableThemes().filter((themeInstance) => {\n if (themeInstance.id === this.lmThemeService.getCurrentThemeId()) {\n return themeInstance;\n }\n });\n\n return { color: this.lmThemeService.getCurrentColor(), theme };\n }\n\n public getComponentPlaceHolder() {\n return this.placeHolder;\n }\n\n public setDataView(dataView: LMDataView) {\n if (this.hasLandmarkApiRef()) {\n this.getLandmarkApiRef().setDataView(dataView);\n }\n }\n\n public fireCustomButtonPressed(customToolbarButtonInfo: CustomToolbarButtonInfo) {\n if (this.hasLandmarkApiRef()) {\n this.getLandmarkApiRef().fireCustomButtonPressed(customToolbarButtonInfo);\n }\n }\n\n public runSave(): BehaviorSubject {\n const runSaveSubject = new BehaviorSubject(new LMUrlDocSaveResult(false, false));\n if (this.hasLandmarkApiRef()) {\n const callback = (success: boolean, error: any, message: string) => {\n // if the old callback signature is used we will adjust the fields before continuing with the code\n if (typeof error === 'string' || error instanceof String) {\n message = error as string;\n error = false;\n }\n this.ngZone.run(() => this.handleSave(success, error, message, runSaveSubject));\n };\n this.ngZone.runOutsideAngular(() => this.getLandmarkApiRef().save(callback));\n } else {\n runSaveSubject.next(new LMUrlDocSaveResult(true, false,\"\"));\n runSaveSubject.complete();\n }\n return runSaveSubject\n\n }\n\n public fireLandmarkFormSaveComplete(successful: boolean) {\n const apiRef = this.getLandmarkApiRef();\n // fire an event in the landmark-api to inform the calling code that the action was completed.\n if (apiRef) {\n this.ngZone.run(() => {\n apiRef.fireLandmarkFormSaveComplete(successful);\n });\n } else {\n this.lmLoggerService.log('Unable to find apiRef needed to run fireLandmarkFormSaveComplete');\n }\n }\n\n private setDefaultFrameHeight() {\n const iframe = this.elementRef.nativeElement.getElementsByTagName('iframe');\n if (this.iFrameSizingElement) {\n const height = this.iFrameSizingElement.offsetHeight + 30; // add just a little to cover for small errors\n $(iframe).css('height', height + 'px');\n } else if (this.upToChar > 0 || this.upToLines > 0) {\n // This will need to be changed. this is just for now to get it working.\n const fullFrameHeight = iframe[0].contentWindow.document.body ? iframe[0].contentWindow.document.body.scrollHeight : 0;\n const width = this.upToChar === 0 ? '100%' : ((this.upToChar * 10) + 'px');\n const height = this.upToLines === 0 ? AppConstants.DEFAULT_LINE_HEIGHT +'px' : (this.upToLines * AppConstants.DEFAULT_LINE_HEIGHT) + 'px';\n $(iframe).css('width', width);\n $(iframe).css('height', height);\n if (width !== fullFrameHeight && fullFrameHeight > 0) {\n $(iframe).css('height', fullFrameHeight);\n }\n } else if (this.adjustFrameToWindow) {\n const inMingleWidget = this.lmContextService.inMingleWidget();\n const isMobile = this.lmBrowserUtil.isMobile;\n const bottom: number = isMobile ? this.bottomSpacing : 0;\n let height = document.body.clientHeight - (this.elementRef.nativeElement.getElementsByTagName('iframe')[ 0 ].getBoundingClientRect().top);\n // if by chance the frame would be to small we will force a default height only do it for desktop\n if (!inMingleWidget && !isMobile && height < this.minimumFrameHeight) {\n height = (this.defaultFrameHeight - bottom);\n }\n\n if (this.isDashboardPanel || (isMobile && this.isPanelNavigation) ) {\n // center the embedded url media for dashboard panels\n $(iframe).css('height', 'inherit');\n } else {\n $(iframe).css('height', height + 'px');\n }\n }\n }\n\n private handleSave(success: boolean, error: boolean, message: string, observer: BehaviorSubject ) {\n const result = new LMUrlDocSaveResult(success, error, message);\n observer.next(result);\n // observer.complete();\n }\n\n public runSetFieldDirty(dirty) {\n this.setFieldDirty.emit(dirty);\n }\n\n public isModified(): boolean {\n // this check is placed handle a situation where an iframe has a now Infor server document and we are looking to find a reference\n // to landmark-api. We catch this to avoid a possible security error of referencing a frame from another domain.\n try {\n return this.hasLandmarkApiRef() ? this.getLandmarkApiRef().isModified() : false;\n } catch (error) {\n return false;\n }\n }\n\n // public removeThisArea(e) {\n // let element = $(e.srcElement).parent().remove();\n // }\n\n closeNavigationMenu() {\n const iframeWindow = this.getContentWindow();\n if (iframeWindow) {\n const parentDoc = iframeWindow.parent.document;\n // noinspection TypeScriptValidateTypes\n $(parentDoc).trigger('click.applicationmenu');\n }\n }\n\n}\n\n//
        \n// \n// \n// \n// \n//

        THIS WILL BE REMOVED ***DEVELOPMENT ONLY***

        \n//
        \n","export * from './auditLog';\nexport * from './applicationmenu';\nexport * from './banner';\nexport * from './base';\nexport * from './blockgrid';\nexport * from './card';\nexport * from './chart';\nexport * from './componentInfo';\nexport * from './custom';\nexport * from './dashboard';\nexport * from './error';\nexport * from './field';\nexport * from './form';\nexport * from './home';\nexport * from './horizontalscroller';\nexport * from './html';\nexport * from './list';\nexport * from './login';\nexport * from './manual';\nexport * from './modal';\nexport * from './navigation';\nexport * from './page';\nexport * from './routes';\nexport * from './toolbar';\nexport * from './twelvecolumngrid';\nexport * from './visiblewhen';\n","export * from './lm-code-block.component';\n","import {\n Component,\n ElementRef,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: '[lm-code-block]', // tslint:disable-line\n template: `
        \n
        \n \n
        \n
        `,\n})\nexport class LMCodeBlockComponent {\n\n @Input() layoutObject: LMFormLayoutElements;\n @Input() dataView: LMDataView;\n\n constructor(private elementRef: ElementRef) {\n }\n}\n","export * from './lm-bcd.serializer';\nexport * from './lm-boolean.serializer';\nexport * from './lm-checkcontrol-editable.editor';\nexport * from './lm-checkcontrol.serializer';\nexport * from './lm-date-time.serializer';\nexport * from './lm-editor.service';\nexport * from './lm-is-editable.editor';\nexport * from './lm-percent.serializer';\nexport * from './lm-state-field.source';\nexport * from './lm-code-block.editor';\nexport * from './lm-code-block.serializer';\n","import { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmBarCodeClickFunction = (\n lmFormatUtilService: LMFormatUtilService,\n event: any,\n lookup: SohoLookupStatic,\n clickArguments: BarCodeClickFunctionClickArguments\n) => {\n\n if (clickArguments === undefined) {\n return;\n }\n\n const listGridComponent = clickArguments.grid.settings.userObject();\n const column = clickArguments.column;\n\n if (!column.name) {\n column.name = (listGridComponent?.dataViewSet?.header && column.displayField?.label)\n ? lmFormatUtilService.formatMessageRule(column.displayField?.label, listGridComponent.dataViewSet?.header)\n : '';\n }\n\n const listBarCodeClickedEvent: LMListBarCodeClickedEvent = {\n triggerButtonEvent: event,\n dataView: clickArguments.rowData,\n lookup,\n sourceField: column.displayField.selectFieldId,\n selectListUrl: column.displayField.selectListUrl,\n column,\n scannable: column.displayField.scannable\n };\n\n listGridComponent.listBarCodeClicked.emit(listBarCodeClickedEvent);\n};\n","/**\n * Created by claudenbach on 1/27/2017.\n */\n\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormatterService } from '@list/formatters';\n\nexport const lmBcdSerializer = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n value: string,\n oldValue: string,\n columnDef: ListGridColumn,\n row: number,\n cell: number,\n dataView: LMListDataView\n): string => {\n const decSize: number = columnDef.displayField.decSize;\n const targetDataView = lmFormatterService.listSpec.isTemplateList ? dataView.dataView : dataView;\n const precision: number = lmFormatterService.getDisplayFieldPrecision(columnDef.displayField, targetDataView);\n\n return lmFormatUtilService.bcdToData(value, {decSize, precision});\n};\n","/**\n * Created by claudenbach on 2/16/2017.\n */\n\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport {LMFormatterService} from \"@app/components\";\n\nexport const lmBooleanSerializer = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n value: string,\n oldValue: string,\n columnDef: ListGridColumn,\n row: number,\n cell: number,\n dataView: any\n): boolean => {\n\n if (lmFormatUtilService.lmFieldUtilService.isBlank(columnDef.displayField.type, value)) {\n const targetDataView = lmFormatterService.listSpec?.isTemplateList ? dataView.dataView : dataView;\n value = targetDataView.fields[ columnDef.fieldId ].value;\n }\n\n return lmFormatUtilService.booleanToData(value);\n};\n","/**\n * Created by claudenbach on 2/7/2017.\n */\n\nimport { LMEditorService } from './lm-editor.service';\n\nexport const isCheckControlEditable = (\n lmEditorService: LMEditorService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): boolean => {\n\n let isCheckActionValid = false;\n let isUncheckActionValid = false;\n\n if (!dataView || dataView.isTreeMoreLink) {\n return;\n }\n\n if (columnDef.displayField.validity && columnDef.displayField.checkActions && columnDef.displayField.uncheckActions) {\n let len = columnDef.displayField.checkActions.length;\n for (let i = 0; i < len; i++) {\n const checkAction = columnDef.displayField.checkActions[i];\n\n /*\n * The rule of thumb is to always take the first valid action. If\n * there is no when condition on the first check action then\n * pick that one and make it valid.\n */\n if (checkAction.condition) {\n isCheckActionValid = lmEditorService.isConditionValid([checkAction.condition], dataView);\n } else {\n isCheckActionValid = true;\n }\n\n if (isCheckActionValid) {\n if (!columnDef.displayField.checkAction) {\n columnDef.displayField.checkAction = [];\n }\n\n columnDef.displayField.checkAction[row] = checkAction;\n break;\n }\n }\n\n len = columnDef.displayField.uncheckActions.length;\n for (let i = 0; i < len; i++) {\n const uncheckAction = columnDef.displayField.uncheckActions[i];\n if (uncheckAction.condition) {\n isUncheckActionValid = lmEditorService.isConditionValid([uncheckAction.condition], dataView);\n } else {\n isUncheckActionValid = true;\n }\n\n if (isUncheckActionValid) {\n if (!columnDef.displayField.uncheckAction) {\n columnDef.displayField.uncheckAction = [];\n }\n\n columnDef.displayField.uncheckAction[row] = uncheckAction;\n break;\n }\n }\n }\n\n if (!dataView.fields[columnDef.displayField.fieldId].value && !isCheckActionValid\n || dataView.fields[columnDef.displayField.fieldId].value && !isUncheckActionValid) {\n return false; // is ReadOnly\n } else {\n return true; // is editable\n }\n};\n","/**\n * Created by claudenbach on 2/8/2017.\n */\n\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmCheckControlSerializer = (\n lmFormatUtilService: LMFormatUtilService,\n // columnDef: ListGridColumn,\n value: boolean\n): boolean => value;\n","import {\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewChild,\n Inject,\n NgZone\n} from '@angular/core';\n\nimport { LMCodeBlockComponent } from '@list/code-block/lm-code-block.component';\nimport { LMCompoundFieldService } from '@services/lm-compound-field.service';\n\n@Component({\n template: `\n
        \n \n
        \n \n {{element.label}}\n {{element.displayValue}}\n
        \n
        \n \n
        `,\n})\n\n// Template must contain an input elment for an editor\nexport class LMCodeBlockEditorComponent implements SohoDataGridCellEditor, OnInit {\n @ViewChild(LMCodeBlockComponent, { static: true }) codeblock: LMCodeBlockComponent;\n\n className = '.code-block';\n name = 'codeblock';\n\n row: number;\n cell: number;\n value: string;\n columnDef: ListGridColumn;\n dataGrid: SohoDataGridStatic;\n listGridComponent: any;\n dataView: LMListDataView;\n flatLayout: LMFormLayoutElements;\n codeBlockFields: Array = [];\n\n constructor(\n private lmCompoundFieldService: LMCompoundFieldService,\n private changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject('args') private args: SohoDataGridPostRenderCellArgs) {\n this.value = args.value;\n this.columnDef = args.col as ListGridColumn;\n this.row = args.row;\n this.cell = args.cell;\n this.dataGrid = args.api;\n }\n\n ngOnInit() {\n this.listGridComponent = this.dataGrid.settings.userObject();\n this.dataView = this.listGridComponent.dataViewSet.data[ this.row ];\n this.flatLayout = this.columnDef.flatLayout;\n }\n\n val(value?: any) {\n if (value) {\n this.value = value;\n } else if (value === undefined) {\n this.value = this.lmCompoundFieldService.computeCompactFieldValue(this.dataView, this.columnDef.fieldId);\n }\n return this.value;\n }\n\n focus() {\n const listOpenCompactFormEvent: LMListOpenCompactFormEvent = {\n fieldId: this.columnDef.fieldId,\n title: this.columnDef.displayField.label,\n layout: this.columnDef.displayField.layout,\n dataView: this.dataView,\n row: this.row,\n cell: this.cell,\n datagrid: this.dataGrid,\n columnDef: this.columnDef\n };\n\n this.listGridComponent.listOpenCompactForm.emit(listOpenCompactFormEvent);\n }\n}\n","import { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMCompoundFieldService } from '@services/lm-compound-field.service';\n\nexport const lmCodeBlockSerializer = (\n lmFormatUtilService: LMFormatUtilService,\n lmCompoundFieldService: LMCompoundFieldService,\n value: string,\n oldValue: string,\n columnDef: ListGridColumn,\n row: number,\n cell: number,\n dataView: LMListDataView\n): string => lmCompoundFieldService.computeCompactFieldValue(dataView, columnDef.fieldId);\n","/**\n * Created by claudenbach on 2/10/2017.\n */\n\nimport { AppConstants, LMTimeStampDirective, LMTransformOptions } from '@utils/app.constants';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmDateTimeSerializer = (\n lmFormatUtilService: LMFormatUtilService,\n value: string,\n oldValue: string,\n columnDef: ListGridColumn,\n row: number,\n cell: number,\n dataView: any,\n type: string): string => {\n\n const transformOptions: LMTransformOptions = {};\n\n if (type === AppConstants.MMDD) {\n return lmFormatUtilService.mmddToData(value);\n } else if (type === AppConstants.YYYY) {\n return lmFormatUtilService.yyyyToData(value);\n } else if (type === AppConstants.YYYYMM) {\n return lmFormatUtilService.yyyymmToData(value);\n } else if (type === AppConstants.YYYYMMDD) {\n return lmFormatUtilService.yyyymmddToData(value);\n } else if (type === AppConstants.TIMESTAMP) {\n if (columnDef.displayField?.timeZoneIs) {\n transformOptions.timeZone = dataView?.fields[columnDef.displayField.timeZoneIs].value as string;\n }\n if (columnDef.displayField?.displayWithTimeZone) {\n transformOptions.displayWithTimeZone = true;\n }\n if (columnDef.displayField?.displayDateAndHoursAndMinutes || columnDef.displayField?.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES;\n }\n if (columnDef.displayField?.disableDST) {\n transformOptions.disableDST = true;\n }\n return lmFormatUtilService.timestampToData(value, transformOptions);\n } else if (type === AppConstants.TIME) {\n if (columnDef.displayField?.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n }\n return lmFormatUtilService.timeToData(value, transformOptions);\n }\n};\n","/**\n * Created by claudenbach on 1/19/2017.\n */\n\nimport { Injectable } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\n@Injectable()\nexport class LMEditorService {\n listSpec: LMListSpec;\n\n constructor(\n private lmConditionUtilService: LMConditionUtilService,\n private lmFormatUtilService: LMFormatUtilService\n ) { }\n\n public isConditionValid(conditions: LMCondition[], dataView: LMDataView): boolean {\n return this.lmConditionUtilService.isValid(conditions, dataView);\n }\n\n public getDataValue(type: string, val: string | number): string | number {\n const value = {\n [AppConstants.NUMERIC] : () => this.lmFormatUtilService.numericToData(val).toString(),\n [AppConstants.BCD] : () => this.lmFormatUtilService.bcdToData(String(val)),\n [AppConstants.TIMESTAMP] : () => this.lmFormatUtilService.timestampToData(val),\n [AppConstants.YYYYMMDD] : () => this.lmFormatUtilService.yyyymmToData(val),\n [AppConstants.TIME] : () => this.lmFormatUtilService.timeToData(val),\n [AppConstants.YYYYMM] : () => this.lmFormatUtilService.yyyymmToData(val),\n [AppConstants.MMDD] : () => this.lmFormatUtilService.mmddToData(val),\n [AppConstants.YYYY] : () => this.lmFormatUtilService.yyyyToData(val),\n default : () => val\n };\n\n return (value[type] || value['default'])();\n }\n}\n","export const lmFieldLookupClickFunction = (\n event: any,\n lookup: SohoLookupStatic,\n clickArguments: any) => {\n\n if (!clickArguments) {\n return;\n }\n\n const listFieldLookupClickedEvent: LMListFieldLookupClickedEvent = {\n dataView: clickArguments.rowData,\n selectListUrl: clickArguments.column.displayField.selectListUrl,\n lookup,\n sourceField: clickArguments.column.displayField.selectFieldId,\n lplFieldInfo: clickArguments.column.displayField.lplFieldInfo,\n };\n\n const listGridComponent = clickArguments.grid.settings.userObject();\n listGridComponent.listFieldLookupClicked.emit(listFieldLookupClickedEvent);\n};\n","\nexport const lmFilterClearClickFunction = (\n event: any,\n filterLookup: SohoLookupStatic,\n clearArguments: FilterClearFunctionClickArguments\n) => {\n\n if (clearArguments === undefined) {\n return;\n }\n\n const listGridComponent = clearArguments.grid.settings.userObject();\n const column = clearArguments.column;\n\n if (!column.displayField || !column.displayField.compactFormatByForm) {\n return;\n }\n\n const listFilterClearClickedEvent: LMListFilterClearClickedEvent = {\n filterLookup,\n column\n };\n\n listGridComponent.listFilterClearClicked.emit(listFilterClearClickedEvent);\n};\n","export const lmFilterDropdownKeydownFunction = (\n event: any\n) => {\n const target = event?.target ? event.target as HTMLElement : null;\n if (target &&\n target.classList.contains('dropdown') &&\n target.parentElement.parentElement.classList.contains('datagrid-filter-wrapper')\n ) {\n if (event.which === 13) {\n //this will run filter if field is entered\n\n let grid: any;\n let gridInst: any;\n\n if (target.closest('div[role=datagrid]')) {\n grid = target.closest('div[role=datagrid]');\n gridInst = $(grid).data('datagrid');\n } else if (target.closest('div[role=treegrid]')) {\n grid = target.closest('div[role=treegrid]');\n gridInst = $(grid).data('datagrid');\n }\n\n gridInst?.applyFilter();\n return false;\n } else if (event.which === 32) {\n return true;\n }\n }\n};\n","\nexport const lmFilterLookupClickFunction = (\n event: any,\n filterLookup: SohoLookupStatic,\n clickArguments: FilterLookupFunctionClickArguments\n) => {\n\n if (clickArguments === undefined) {\n return;\n }\n\n const listGridComponent = clickArguments.grid.settings.userObject();\n const column = clickArguments.column;\n\n if (!column.displayField || !column.displayField.compactFormatByForm) {\n return;\n }\n\n const listFilterLookupClickedEvent: LMListFilterLookupClickedEvent = {\n filterLookup,\n column\n };\n\n listGridComponent.listFilterLookupClicked.emit(listFilterLookupClickedEvent);\n};\n","/**\n * Created by claudenbach on 1/23/2017.\n */\n\nimport { LMEditorService } from './lm-editor.service';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMFormatterService } from '@list/formatters';\n\nexport const isEditable = (\n lmFormatterService: LMFormatterService,\n lmEditorService: LMEditorService,\n lmActionService: LMActionService,\n columnDef: ListGridColumn,\n dataView: LMListDataView\n): boolean => {\n\n // Handle a field that is conditionally editable. Use the method columnRequiresEditor()\n // to handle a field that is unconditionally non-editable.\n if (!dataView || dataView?.isTreeMoreLink) {\n return false;\n }\n\n if (dataView.rowStatus && dataView.rowStatus.icon === 'new' || dataView.isNewRow) {\n return true;\n }\n\n if (columnDef.displayField.isSymbolicKey) {\n return false;\n }\n\n if (lmEditorService.listSpec.busListSpec.implementsCubeView) {\n // Cash forecast period cubes is an overloaded example of cells that are editable if it is a factorw.\n // And if not a fact row, it has a cube drill. Render editor if fact row.\n return(columnDef.displayField.allowUpdate && dataView.cubeInfo.isFactRowElement);\n }\n\n if (!columnDef.displayField.allowUpdate) {\n return false;\n }\n\n // if listSpec has 'disable select in webui' and list field has 'allow update' return false\n if (lmEditorService.listSpec.busListSpec.selection === 'disabled') {\n return false;\n }\n\n if (lmFormatterService.isTotalRow(dataView)) {\n return false;\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return false;\n }\n }\n\n const actions = lmEditorService.listSpec.busClassSpec.actions;\n let actionSpec = null;\n\n if (lmEditorService.listSpec.isTemplateList) {\n const targetDataView = dataView.dataView;\n\n if (!targetDataView.isAlreadyDefined) {\n const createActions = lmActionService.getCreateActions(actions, targetDataView.actionIndexes);\n actionSpec = (createActions.length > 0) ? createActions[ 0 ] : null;\n } else {\n actionSpec = lmActionService.getDefaultUpdateAction(actions, targetDataView.actionIndexes, true, true);\n }\n } else {\n actionSpec = lmActionService.getDefaultUpdateAction(actions, dataView.actionIndexes, true, true);\n }\n\n return (actionSpec) ? true : false;\n};\n","import { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmLookupClickFunction = (\n lmFormatUtilService: LMFormatUtilService,\n event: any,\n lookup: SohoLookupStatic,\n clickArguments: LookupClickFunctionClickArguments\n) => {\n\n if (clickArguments === undefined) {\n return;\n }\n\n const listGridComponent = clickArguments.grid.settings.userObject();\n const column = clickArguments.column;\n\n if (!column.name) {\n column.name = (listGridComponent?.dataViewSet?.header && column.displayField?.label)\n ? lmFormatUtilService.formatMessageRule(column.displayField?.label, listGridComponent.dataViewSet?.header)\n : '';\n }\n\n const listLookupClickedEvent: LMListLookupClickedEvent = {\n dataView: clickArguments.rowData,\n lookup,\n sourceField: column.displayField.selectFieldId,\n selectListUrl: column.displayField.selectListUrl,\n column\n };\n\n listGridComponent.listLookupClicked.emit(listLookupClickedEvent);\n};\n","import { LMFormatterService } from '@list/formatters';\nimport { AppConstants } from '@app/utils';\n\nexport const lmMaskOptionsFunction = (\n lmFormatterService: LMFormatterService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView\n): SohoMaskOptions => {\n\n if (!columnDef || columnDef.displayField.type !== AppConstants.BCD) {\n return;\n }\n\n const decSize: number = columnDef.displayField.decSize;\n const targetDataView = lmFormatterService.listSpec.isTemplateList ? dataView.dataView : dataView;\n const precision: number = lmFormatterService.getDisplayFieldPrecision(columnDef.displayField, targetDataView);\n\n const allowDecimal: boolean = (decSize !== undefined && decSize > 0);\n const decimalLimit: number = (allowDecimal)\n ? (precision < decSize) ? precision : decSize\n : 0;\n const integerLimit: number = (allowDecimal) ? columnDef.displayField.size - decimalLimit : columnDef.displayField.size;\n\n const maskOptions: SohoMaskOptions = {\n process: 'number',\n patternOptions: {\n allowDecimal,\n allowNegative: !columnDef.displayField.positiveOnly,\n integerLimit,\n decimalLimit,\n allowLeadingZeros: true,\n allowThousandsSeparator: false,\n symbols: {\n decimal: Soho.Locale.numbers().decimal,\n negative: Soho.Locale.numbers().minusSign,\n thousands: Soho.Locale.numbers().group\n }\n }\n };\n\n return maskOptions;\n};\n","/**\n * Created by claudenbach on 1/25/2017.\n */\n\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmPercentSerializer = (\n lmFormatUtilService: LMFormatUtilService,\n value: string,\n oldValue: string,\n columnDef: ListGridColumn,\n row: number,\n cell: number,\n dataView: LMListDataView\n): string => lmFormatUtilService.percentToData(value, {decSize: columnDef.displayField.decSize});\n","/**\n * Created by claudenbach on 3/1/2017.\n */\n\nimport { LMEditorService } from './lm-editor.service';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nimport { AppConstants } from '@utils/app.constants';\nimport { ListResource } from '@resources/list.resource';\nimport { LMContextService } from '@services/lm-context.service';\n\nexport const lmStateFieldSource = (\n lmEditorService: LMEditorService,\n lmFieldUtilService: LMFieldUtilService,\n lmFormatUtilService: LMFormatUtilService,\n lmContextService: LMContextService,\n response: any,\n searchTerm: any,\n sourceArguments: any\n) => {\n\n const columnDef = sourceArguments.column;\n const listGridComponent = sourceArguments.grid.settings.userObject();\n const userFolderId = listGridComponent.listSpec?.userFolder;\n const fieldId = columnDef.displayField.fieldId;\n let dataView = sourceArguments.rowData;\n\n if (!dataView.hasOwnProperty('resourceId')) {\n // coming in as a dropdown on a filter, so no row data with the data view\n\n // currently, when you pass in the dataViewSet.header, no states will be returned.\n // So if we are in a list where some records exist, grab the first one to pass in\n // so we get actual states.\n const dataViewSet: LMDataViewSet = listGridComponent.dataViewSet;\n if (dataViewSet.data.length > 0) {\n dataView = dataViewSet.data[0];\n } else {\n dataView = dataViewSet.header;\n }\n }\n\n const listResource = new ListResource({\n resourceId: dataView.resourceId,\n listName: lmEditorService.listSpec.busListSpec.name\n });\n\n lmFieldUtilService.getUserDefinedStates({\n resource: listResource,\n fieldId,\n dataView,\n userFolderId,\n callback: (status, result) => {\n if (status === AppConstants.STATUS_COMPLETED) {\n let states;\n if (lmContextService.userDefinedStatesPageSizeAndIndicator()) {\n if (result && result.hasOwnProperty('states') && Array.isArray(result.states)) {\n states = lmFormatUtilService.fieldStatesToOptionsArray(result.states, true);\n }\n } else {\n if (Array.isArray(result)) {\n states = lmFormatUtilService.fieldStatesToOptionsArray(result, true);\n }\n }\n dataView.fields[ fieldId ].stateValues = states;\n // var selRow = self.getSelectedRows();\n //\n // if (selRow[0] > -1 && self.dataViewSet.data.length > 0)\n // self.dataViewSet.data[selRow].fields[column.field].stateValues = states;\n //\n // // put the state values on the header as they are used later\n // self.dataViewSet.header.fields[column.field].stateValues = states;\n response(states);\n } else if (status === AppConstants.VIEW_EXCEPTION) {\n }\n }\n });\n};\n","export * from './lm-button.formatter';\nexport * from './lm-favorite.formatter';\nexport * from './lm-formatter.service';\nexport * from './lm-progress.formatter';\nexport * from './lm-tree.formatter';\n","/**\n * Created by claudenbach on 1/30/2017.\n */\n\nimport { LMFormatterService } from './lm-formatter.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmButtonFormatter = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return '';\n }\n }\n\n const displayValue = columnDef.displayField.title ? lmFormatUtilService.formatMessageRule(columnDef.displayField.title, dataView) : '';\n return lmFormatterService.formatButtonText(row, cell, displayValue, columnDef, dataView, dataGrid);\n};\n","import { LMFormatterService } from './lm-formatter.service';\nimport { LMListCardService } from '@list/services/lm-list-card.service';\nimport { NavigationResource } from '@resources/navigation.resource';\nimport { LMUrlUtilService } from '@services/utils';\nimport { lmProcessIndicatorFormatter } from './lm-process-indicator.formatter';\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace lmCardViewFormatter {\n export const format = (\n lmFormatterService: LMFormatterService,\n lmListCardService: LMListCardService,\n lmUrlUtilService: LMUrlUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic,\n /**\n * containerClass - The class placed on the surrounding div of the card.\n * This is useful for different margins/ padding depending on the context it's used in.\n */\n containerClass: string\n ): string => {\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n } else {\n const card = getCardTemplateData(lmListCardService, columnDef.displayField, dataView);\n\n if (card === undefined) {\n return '';\n }\n\n /**\n * Note:\n * This template should match the markup and CSS used in lm-list-card.component.html\n */\n const cardViewTemplate = `\n
        \n\n ${card.imageUrl ? getImageHTML(card) : ''}\n ${!card.imageUrl && card.isMissingImage && !card.imageForegroundText ? getMissingImageHTMLAsSVG(card) : ''}\n ${card.isMissingImage && card.imageForegroundText ? getAvatarHTML(card) : ''}\n\n
        \n
        \n ${card.columns.map( (col, colIndex) => `\n
        \n
          \n ${col.column.map((item, index) => `\n
        • \n ${index === 0 && colIndex === 0 ? `

          ` : ''}\n
          \n ${item.label ? `` : ''}\n ${item.alertCondition ? getAlertHTML(item) : ''}\n ${item.displayAsTag || isField(item) ? `${getFieldValue(item, dataView, lmFormatterService, lmUrlUtilService)}` : ''}\n ${item.isProcessIndicator ? `${getProcessIndicatorHTML(item)}` : ''}\n ${!item.displayAsTag && isExternalNavigation(item) ? getExternalNavigationHTML(item) : ''}\n ${!item.displayAsTag && isInternalNavigation(item) ? getInternalNavigationHTML(item, dataView, lmFormatterService, lmUrlUtilService) : ''}\n
          \n ${index === 0 ? `

          ` : ''}\n
        • `).join('')}\n
        \n
        `).join('')}\n
        \n
        \n
        \n\n \n ${card.buttonRow.length > 0 ? getButtonRowHTML(card, lmUrlUtilService, lmListCardService) : ''}`;\n\n\n let html = '
        ' + cardViewTemplate + '
        ';\n\n if (dataView?.doesNotExist) {\n html = '' + html + '';\n }\n\n return html;\n }\n };\n\n export const getAvatarHTML = (card: LMCardTemplateData): string => `\n
        \n ${card.imageForegroundText}\n
        `;\n\n export const getImageHTML = (card: LMCardTemplateData): string => {\n const altText = card.imageForegroundText || '';\n return `
        \"${altText}\"/
        `;\n };\n\n export const getMissingImageHTMLAsSVG = (card: LMCardTemplateData): string => `\n
        \n \n \n \n
        `;\n\n export const getInternalNavigationHTML = (item: LMListViewTemplateField, dataView: LMDataView, lmFormatterService: LMFormatterService, lmUrlUtilService: LMUrlUtilService): string => {\n const isValid = lmFormatterService.isNavigationNameValid(item.navigationParams.navigationName, dataView);\n if (isValid) {\n const markup = `\n ${item.displayValue}`;\n\n return markup;\n\n } else {\n return `${item.displayValue}`;\n }\n };\n\n export const buildUrlNavigation = (item, lmUrlUtilService): string => {\n const navigationResource = new NavigationResource({ resourceId: item.navigationParams.dataView.resourceId, actionName: item.navigationParams.navigationName });\n return lmUrlUtilService.buildUrl({ resource: navigationResource }, true);\n };\n\n export const getExternalNavigationHTML = (item) => `${item.displayValue}`;\n\n export const getAlertHTML = (item): string => {\n const markup = `\n `;\n\n return markup;\n };\n\n export const getButtonRowHTML = (card: LMCardTemplateData, lmUrlUtilService: LMUrlUtilService, lmListCardService:LMListCardService): string => {\n const markup = `\n
        \n ${card.buttonRow.map(button => `\n ${button.isDisplayAsLink && !button.isIconOnly ? getButtonAsLink(button, lmUrlUtilService) : ''}\n ${button.isIconOnly ? getButtonAsIcon(lmListCardService.encodeHtmlSingleQuote(button)) : '' }\n ${!button.isIconOnly && !button.isDisplayAsLink ? getDefaultButton(lmListCardService.encodeHtmlSingleQuote(button)) : '' }\n `).join('')}\n
        `;\n\n return markup;\n };\n\n /** Note,\n * do not remove lm-card-button class, see onColumnClicked() in lm-datagrid-base.component\n * extra span here to match icon button used in lm-list-card.component.html\n * **/\n export const getButtonAsIcon = (button: LMCardViewButtonRowButton): string => `\n \n ${button.icon ? `${button.actionReference.label}` : ``}\n ${button.icon ? `\n \n \n ` : `${button.actionReference.label ? button.actionReference.label : ` `}`}\n `;\n\n export const getButtonAsLink = (button: LMCardViewButtonRowButton, lmUrlUtilService: LMUrlUtilService): string => {\n /** Note, do not remove lm-card-button class, see onColumnClicked() in lm-datagrid-base.component **/\n let href = 'javascript:void(0);';\n let targetBlank = false;\n\n if (button.httpUrl && button.isOpenExternal && (button.actionReference.cardViewFormButtonSpec\n && button.actionReference.cardViewFormButtonSpec.httpUrl\n && !button.actionReference.cardViewFormButtonSpec.httpUrl.variables)) {\n\n href = button.httpUrl;\n targetBlank = true;\n } else if (button.navigationParams && !button.isOpenExternal) {\n\n href = buildUrlNavigation(button, lmUrlUtilService);\n }\n\n // The issue on single quote does not affect buttons displayed as link\n return `${button.actionReference.label}`;\n };\n\n export const getDefaultButton = (button: LMCardViewButtonRowButton): string => {\n const classArray = [\n 'btn',\n 'lm-card-button'\n ];\n\n if (button.isPrimary) {\n classArray.push('lm-is-primary');\n } else if (button.fieldStyle && button.fieldStyle.color) {\n classArray.push('lpl-' + button.fieldStyle.color);\n }\n\n /** Note, do not remove lm-card-button class, see onColumnClicked() in lm-datagrid-base.component **/\n return ``;\n };\n\n export const getCardTemplateData = (\n lmListCardService: LMListCardService,\n displayField: LMListDisplayField,\n dataView: LMListDataView\n ): LMCardTemplateData => lmListCardService.getCardTemplateData(displayField, dataView);\n\n export const isInternalNavigation = (item: LMListViewTemplateField): boolean => {\n if (!item || item.value === '' || !item.navigationParams) {\n return false;\n }\n\n return true;\n };\n\n export const isExternalNavigation = (item: LMListViewTemplateField): boolean => {\n if (!item || !item.httpUrl || item.httpUrl.trim().length === 0) {\n return false;\n }\n\n return true;\n };\n\n export const isField = (item: LMListViewTemplateField): boolean => {\n if (item && (item.isField || item.displayAsTag)) {\n return true;\n }\n\n return false;\n };\n\n export const getProcessIndicatorHTML = (item: LMListViewTemplateField): string => lmProcessIndicatorFormatter.getProcessIndicatorHTML(item.processIndicatorDisplayData);\n\n export const getFieldValue = (\n item: LMListViewTemplateField,\n dataView: LMDataView,\n lmFormatterService: LMFormatterService,\n lmUrlUtilService: LMUrlUtilService\n ): string => {\n if (item.displayAsTag) {\n const classArray = [ 'tag lm-font-md' ];\n\n if (item.fieldStyle && item.fieldStyle.color) {\n classArray.push('lpl-' + item.fieldStyle.color + '-bg'); // for tag background\n classArray.push('lpl-white'); // for tag foreground text when there is background color\n }\n\n if (isExternalNavigation(item)) {\n classArray.push('is-clickable');\n const externalLinkClasses = classArray.join(' ');\n return `\n \n ${item.displayValue}\n \n \n \n \n \n \n \n `;\n }\n\n if (isInternalNavigation(item)) {\n const isValid = lmFormatterService.isNavigationNameValid(item.navigationParams.navigationName, dataView);\n if (isValid) {\n classArray.push('is-clickable');\n const internalLinkClasses = classArray.join(' ');\n return `\n \n ${item.displayValue}\n \n \n \n \n \n \n \n `;\n }\n }\n\n const classes = classArray.join(' ');\n return `${item.displayValue}`;\n\n } else {\n\n if (item.fieldStyle) {\n const styles = lmFormatterService.getFieldStyleClasses(item.fieldStyle);\n return `${item.displayValue}`;\n } else {\n return `${item.displayValue}`;\n }\n\n }\n };\n}\n","import { LMFormatterService } from './lm-formatter.service';\n\nexport const lmCheckBoxFormatter = (\n lmFormatterService: LMFormatterService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n datagrid: SohoDataGridStatic\n): string => {\n\n if (lmFormatterService.isTotalRow(dataView) && cell === 0) {\n return '';\n }\n\n // --------------------------------------------------------------------------\n // Use regular formatter if this row isn't a totalling row.\n // --------------------------------------------------------------------------\n return Soho.Formatters.SelectionCheckbox(row, cell, value, columnDef, dataView, datagrid);\n};\n","import { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport { LMFormatterService } from './lm-formatter.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmCodeBlockFormatter = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n lmCommonUtilService: LMCommonUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n }\n\n const listGridComponent = dataGrid.settings.userObject();\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return '';\n }\n }\n\n if (lmFormatterService.isTotalRow(dataView)) {\n return lmFormatterService.formatTotalRowColumn(row, cell, value, columnDef, dataView, dataGrid);\n }\n\n let markup = '';\n if (columnDef.flatLayout && columnDef.flatLayout.elements) {\n columnDef.flatLayout.elements.forEach((layoutField) => {\n\n let isVisible = true;\n let isValid = true;\n\n if (layoutField.field && layoutField.field.validity) {\n isValid = lmFormatterService.isConditionValid(layoutField.field.validity, dataView);\n }\n\n if (layoutField.field && layoutField.field.visibility) {\n isVisible = lmFormatterService.isConditionValid(layoutField.field.visibility, dataView);\n }\n\n if (isValid && isVisible) {\n const displayField = lmFormatterService.buildDisplayField(layoutField, dataView);\n const fieldValue = (dataView.fields[displayField.fieldId]) ? dataView.fields[displayField.fieldId].value : '';\n let displayValue = lmFormatterService.getDisplayText(displayField, fieldValue, dataView, listGridComponent.dataViewSet);\n\n if (lmFormatterService.isBlank(displayField.type, displayValue)) {\n displayValue = '';\n }\n\n const label = (displayValue.length === 0) ? lmFormatUtilService.formatMessageRule(displayField.label, dataView) : '';\n const classes = (displayValue.length === 0) ? 'lm-list-code-block' : 'lm-list-code-block lm-field-data';\n\n markup += '';\n }\n });\n markup = '' + markup + '';\n }\n\n if (columnDef.displayField.alert) {\n markup = lmFormatterService.formatDisplayAlert(row, cell, markup, columnDef, dataView, dataGrid);\n }\n\n return markup;\n};\n","import { LMFormatterService } from './lm-formatter.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\n\nexport const colSpan = (\n lmFormatterService: LMFormatterService,\n lmConditionUtilService: LMConditionUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): number => {\n\n if (lmFormatterService.isTotalRow(dataView)) {\n const listGridComponent = dataGrid.settings.userObject();\n const dataViewSet = listGridComponent.dataViewSet;\n const gridColumns = dataGrid.settings.columns as Array;\n\n const firstVisibleColumn = lmFormatterService.firstVisibleColumn(gridColumns, dataViewSet.header);\n if (firstVisibleColumn !== columnDef) {\n return 0;\n }\n\n let adjustment = (gridColumns[0] && gridColumns[0].id === 'selectionCheckbox') ? 1 : 0;\n\n for (let i = 0, len = gridColumns.length; i < len; i++) {\n const column = gridColumns[ i ];\n if (!column.displayField) {\n continue;\n }\n\n if (dataView.isSubtotalSummaryView) {\n return lmFormatterService.getColSpanForSubtotalSummaryRow(column, gridColumns, dataViewSet.header);\n }\n\n if (column.displayField.columnVisibility) {\n if (!lmConditionUtilService.isValid(column.displayField.columnVisibility, dataViewSet.header)) {\n adjustment = adjustment + 1;\n continue;\n }\n }\n\n if (lmFormatterService.isTotalColumn(column.fieldId, dataView, dataViewSet)) {\n return i - adjustment;\n }\n }\n }\n return 0;\n};\n","/**\n * Created by ppatton on 1/26/2017.\n */\n\nimport { LMFormatterService } from './lm-formatter.service';\n\nexport const lmFavoriteFormatter = (\n lmFormatterService: LMFormatterService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n let hasEditable = false;\n let isEditable = false;\n\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return '';\n }\n }\n\n // make readonly when an editability function exists and it returns a false\n if (columnDef.isEditable) {\n hasEditable = true;\n isEditable = columnDef.isEditable(row, cell, value, columnDef, dataView, dataGrid);\n }\n\n // TODO: CAL - a readonly favorite?\n // if (hasEditable && !isEditable) {\n // return Soho.Formatters.Readonly(row, cell, markup);\n // }\n\n const checkedState: boolean = (!value ? false : value === true);\n if (columnDef.displayField.displayAsStar) {\n return Soho.Formatters.Favorite(row, cell, value, columnDef, dataView, dataGrid);\n } else {\n return Soho.Formatters.Checkbox(row, cell, value, columnDef, dataView, dataGrid);\n }\n};\n","import { LMFormatterService } from './lm-formatter.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmFieldFormatter = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n if (dataView.isTreeMoreLink) {\n const moreColumnIndex = dataGrid?.settings.selectable === 'single' ? 0 : 1;\n return lmFormatterService.getMoreLink(cell, dataView, moreColumnIndex);\n }\n\n const displayField = columnDef.displayField;\n\n if (displayField.visibility) {\n if (!lmFormatterService.isConditionValid(displayField.visibility, dataView)) {\n return '';\n }\n }\n\n if (displayField.inlineCreateFieldId) {\n if (dataView.fields && dataView.fields[ displayField.inlineCreateFieldId ]) {\n // LMCLIENT-34312: Value is escaped and the formatted value will be HTML encoded to be displayed in cell node HTML.\n // dataView.fields(displayField.fieldId) is already set using the unescaped coerced value in sohoxi.\n // (See SOHO Datagrid's commitCellEdit that calls updateCellNode routine)\n if (dataView.fields[ displayField.fieldId ]) {\n dataView.fields[ displayField.inlineCreateFieldId ].value = dataView.fields[ displayField.fieldId ].value;\n } else {\n dataView.fields[ displayField.inlineCreateFieldId ].value = value;\n }\n }\n }\n\n const listGridComponent = dataGrid.settings.userObject();\n const displayValue = lmFormatterService.getDisplayText(displayField, value, dataView, listGridComponent.dataViewSet, row);\n return lmFormatterService.formatDisplayText(row, cell, displayValue, columnDef, dataView, dataGrid);\n};\n","/**\n * Created by claudenbach on 1/18/2017.\n */\n\nimport { Injectable, SecurityContext } from '@angular/core';\nimport { AppConstants, LMConditionUtilService, LMTimeStampDirective, LMTransformOptions } from '@utils/index';\nimport { LMFieldUtilService, LMFormatUtilService, LMUrlUtilService } from '@services/utils/';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NavigationResource } from '@resources/navigation.resource';\nimport { ListResource } from '@app/resources';\n\n@Injectable()\nexport class LMFormatterService {\n listSpec: LMListSpec;\n\n constructor(\n private domSanitizer: DomSanitizer,\n private lmConditionUtilService: LMConditionUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n ) { }\n\n public getAlertCondition(\n displayField: LMListDisplayField,\n dataView: LMDataView,\n dataViewHeader?: LMDataView\n ): LMAlertCondition {\n let icon: string;\n let tooltipMessageRule: LMMessageRule;\n let alertTooltip: string;\n\n if (displayField.redAlert\n && this.isConditionValid([ displayField.redAlert.condition ], dataView)) {\n icon = 'error';\n tooltipMessageRule = displayField.redAlert.alertMouseOverMessage;\n } else if (displayField.yellowAlert\n && this.isConditionValid([ displayField.yellowAlert.condition ], dataView)) {\n icon = 'alert';\n tooltipMessageRule = displayField.yellowAlert.alertMouseOverMessage;\n } else if (displayField.greenAlert\n && this.isConditionValid([ displayField.greenAlert.condition ], dataView)) {\n icon = 'success';\n tooltipMessageRule = displayField.greenAlert.alertMouseOverMessage;\n } else if (displayField.blueAlert\n && this.isConditionValid([ displayField.blueAlert.condition ], dataView)) {\n icon = 'info';\n tooltipMessageRule = displayField.blueAlert.alertMouseOverMessage;\n } else if (displayField.iconAlert\n && this.isConditionValid([ displayField.iconAlert.condition ], dataView)) {\n icon = displayField.iconAlert.icon;\n tooltipMessageRule = displayField.iconAlert.alertMouseOverMessage;\n }\n\n if (tooltipMessageRule) {\n /*Commenting this if until TODO in stateValues is done\n if (tooltipMessageRule.variables) {\n let fieldId = tooltipMessageRule.variables[0].fieldId;\n let stateValues;\n\n if (displayField.states) {\n stateValues = displayField.states;\n } else if (dataViewHeader && dataViewHeader.fields[fieldId] && dataViewHeader.fields[fieldId].stateValues) {\n stateValues = dataViewHeader.fields[fieldId].stateValues;\n }\n\n if (stateValues) {\n// TODO: getFieldStateForFieldValue is not defined?\n // let fieldState = this.lmFormatUtilService.getFieldStateForFieldValue(dataView.fields[fieldId].value, stateValues);\n // if (fieldState && fieldState.label) {\n // dataView.fields[alertTooltip.variables[0].fieldId].label = fieldState.label;\n // }\n }\n }*/\n const fieldSpecs = this.listSpec?.busListSpec?.fields;\n alertTooltip = this.lmFormatUtilService.formatMessageRule(tooltipMessageRule, dataView, fieldSpecs);\n }\n\n return ({ icon, alertTooltip });\n }\n\n public buildDisplayField(layoutField: LMFormLayoutElement, dataView: LMDataView): LMListDisplayField {\n let messageRule: LMMessageRule;\n if (layoutField.field && layoutField.field.label) {\n const fieldLabel: any = layoutField.field.label;\n if (fieldLabel.resourceValue) {\n messageRule = fieldLabel as LMMessageRule;\n } else if (fieldLabel.label.resourceValue) {\n messageRule = fieldLabel.label as LMMessageRule;\n }\n }\n\n let type = layoutField.field.type;\n const listSpecField = this.listSpec?.busListSpec?.fields[ layoutField.field.bindId ];\n if (listSpecField) {\n type = listSpecField.type;\n }\n\n const displayField: LMListDisplayField = {\n columnId: '',\n fieldId: layoutField.field.bindId,\n type,\n label: messageRule\n };\n\n if (type === 'BCD') {\n displayField.decSize = listSpecField.decSize;\n }\n\n if (layoutField.field && layoutField.field.type === 'state') {\n if (!layoutField.field.hasUserDefinedStates) {\n displayField.states = dataView.fields[ displayField.fieldId ].stateValues;\n displayField.isStaticStateField = true;\n }\n }\n\n return displayField;\n }\n\n public isBlank(type: string, value: any): boolean {\n return this.lmFieldUtilService.isBlank(type, value);\n }\n\n public isConditionValid(conditions: LMCondition[] | boolean, dataView: LMDataView): boolean {\n return this.lmConditionUtilService.isValid(conditions, dataView);\n }\n\n public isNavigationValid(displayField: LMListDisplayField, dataView: LMDataView): boolean {\n\n const navigationName: any = displayField.linkNavigation || displayField.navigation;\n\n return this.isNavigationNameValid(navigationName, dataView);\n }\n\n public isNavigationNameValid(navigationName: string, dataView: LMDataView): boolean {\n\n if (!navigationName) {\n return true; // this is NOT a navigation\n }\n\n if ((this.listSpec?.listType === 'select')\n || !dataView.navigations\n || dataView.navigations.length === 0) {\n return false;\n }\n\n return dataView.navigations.indexOf(navigationName) === -1 ? false : true;\n }\n\n public isTotalRow(dataView: LMListDataView): boolean {\n return (dataView.subtotalLabel) ? true : false;\n }\n\n public isTotalColumn(fieldId: string, dataView: LMListDataView, dataViewSet: LMDataViewSet): boolean {\n return this.isTotalRow(dataView) && dataViewSet.totalingFields.includes(fieldId);\n }\n\n public firstVisibleColumn(gridColumns: Array, dataView: LMListDataView): ListGridColumn {\n return gridColumns.find(column => {\n if (!column.displayField) {\n return false;\n }\n\n if (!column.displayField.columnVisibility) {\n return true;\n }\n return this.lmConditionUtilService.isValid(column.displayField.columnVisibility, dataView);\n });\n }\n\n public getColSpanForSubtotalSummaryRow(column: ListGridColumn, gridColumns: Array, dataViewHeader: LMDataView): number {\n const columnIndex = gridColumns.findIndex(gridColumn => gridColumn.id === column.id);\n const columns = gridColumns.slice(columnIndex);\n const hiddenColumns = columns.filter(col => {\n if (col.displayField.columnVisibility) {\n if (!this.isConditionValid(col.displayField.columnVisibility, dataViewHeader)) {\n return col;\n };\n }\n });\n\n return gridColumns.length - columnIndex - hiddenColumns.length;\n }\n\n public getMoreLink(cell: number, dataView: LMListDataView, moreColumnIndex = 1): string {\n const cellNumber = (dataView.cubeInfo) ? 0 : moreColumnIndex;\n if (cell === cellNumber) {\n const moreLink = `\n \n more...\n `;\n\n return moreLink;\n } else {\n return '';\n }\n }\n\n public formatLink(\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMDataView,\n dataGrid: SohoDataGridStatic\n ) {\n if (!value) {\n return '';\n }\n\n // Cube view has an example where the cell is both editable and is a link navigation.\n const isCubeList = this.listSpec?.busListSpec.implementsCubeView;\n\n if (!isCubeList && columnDef.isEditable && columnDef.isEditable(row, cell, value, columnDef, dataView)) {\n return value;\n }\n\n if (columnDef.displayField.linkNavigation || columnDef.displayField.navigation) {\n let navigationResource;\n const params = {};\n\n if (columnDef.displayField.navigation) {\n navigationResource = new NavigationResource({ resourceId: dataView.resourceId, actionName: columnDef.displayField.navigation });\n\n if (dataView.resourceId) {\n // params[landmark.constants.PARAM_FROMLIST] = listResource.resourceId;\n params[AppConstants.PARAM_FROMLIST] = dataView.resourceId;\n }\n } else {\n if (columnDef.displayField.cubeDrill) {\n // dataView.cubeInfo.periodDate = columnDef.displayField.periodDate;\n params['cubeDrill'] = true; // Used to set NavigationAction in NavigationController\n navigationResource = new NavigationResource({ resourceId: columnDef.displayField.resourceId, actionName: columnDef.displayField.linkNavigation });\n } else {\n if (columnDef.isTemplate && !dataView.isAlreadyDefined) {\n params['isTemplateView'] = true;\n }\n navigationResource = new NavigationResource({ resourceId: dataView.resourceId, actionName: columnDef.displayField.linkNavigation });\n }\n }\n\n const href = this.lmUrlUtilService.buildUrl({ resource: navigationResource, params });\n\n columnDef.href = href;\n } else if (columnDef.displayField.aggDrill) {\n const resourceId = new ListResource( { resourceId: columnDef.displayField.resourceId });\n // build filter based on dimensions\n const href = this.lmUrlUtilService.buildUrl({ resource: resourceId });\n columnDef.href = href;\n } else if (columnDef.displayField.hasHttpUrl) {\n columnDef.href = this.lmFormatUtilService.formatMessageRule(columnDef.displayField.httpUrl, dataView);\n } else if (!columnDef.href) {\n columnDef.href = 'javascript:void(0);';\n }\n\n let markup = Soho.Formatters.Hyperlink(row, cell, value, columnDef, dataView, dataGrid);\n if (columnDef.displayField.openExternal || columnDef.displayField.displayAsTag) {\n\n const element = this.lmFormatUtilService.stringToElement(markup) as HTMLAnchorElement;\n\n if (columnDef.displayField.openExternal) {\n element.setAttribute('target', '_blank');\n }\n\n // todo: consider moving to soho syntax for this so we don't have to keep up to date with the css.\n // see https://master-enterprise.demo.design.infor.com/components/datagrid/test-alerts.html for example\n //
        \n // \n // #210.99\n // \n // \n //
        \n\n if (this.lmConditionUtilService.displayAsTag(columnDef.displayField, dataView, value)) {\n const classArray: string[] = this.getTagStyleClasses(value, columnDef, dataView, true);\n element.classList.add(... classArray);\n element.classList.remove('hyperlink');\n\n const innnerHtml = element.innerHTML;\n element.innerHTML = `\n ${innnerHtml}\n \n \n \n \n \n \n `;\n }\n\n markup = element.outerHTML;\n }\n return markup;\n }\n\n private adjustColumnAlignment(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic) {\n const listGridComponent = dataGrid.settings.userObject();\n const dataViewSet = listGridComponent.dataViewSet;\n\n const gridColumns = dataGrid.settings.columns as Array;\n const firstVisibleColumn = this.firstVisibleColumn(gridColumns, dataViewSet.header);\n if (firstVisibleColumn === columnDef && columnDef?.align === 'right') {\n columnDef.align = 'left';\n }\n }\n\n public formatTotalRowColumn(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n const listGridComponent = dataGrid.settings.userObject();\n const dataViewSet = listGridComponent.dataViewSet;\n if (this.isTotalColumn(columnDef.fieldId, dataView, dataViewSet)) {\n return (dataView.isSubtotalSummaryView && !dataViewSet.columnarInfo) ? '' : `${value}`;\n }\n\n const gridColumns = dataGrid.settings.columns as Array;\n const firstVisibleColumn = this.firstVisibleColumn(gridColumns, dataViewSet.header);\n\n if (firstVisibleColumn === columnDef) {\n return `${dataView.subtotalLabel}`;\n }\n\n return '';\n }\n\n public formatForDisplay(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic) {\n const targetDataView = this.getTargetDataView(dataView);\n\n if (columnDef.colspan) {\n this.adjustColumnAlignment(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n\n if (this.isTotalRow(dataView)) {\n return this.formatTotalRowColumn(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n\n if (columnDef.inputType === 'password') {\n return Soho.Formatters.Password(row, cell, value, columnDef, targetDataView, dataGrid);\n } else if (columnDef.displayField.isTreeColumn) {\n return Soho.Formatters.Tree(row, cell, value, columnDef, targetDataView, dataGrid);\n } else {\n return Soho.Formatters.Text(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n }\n\n public formatDisplayAlert(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n const listGridComponent = dataGrid.settings.userObject();\n const dataViewSet = listGridComponent.dataViewSet;\n const alertCondition: LMAlertCondition = this.getAlertCondition(columnDef.displayField, dataView, dataViewSet.header);\n const icon: string = alertCondition.icon;\n const alertTooltip: string = alertCondition.alertTooltip;\n\n // building the markup via a smart quote caused rendering issues. See LMCLIENT-19400.\n if (icon && alertTooltip) {\n const alertTooltipEncoded = this.lmUrlUtilService.encodeHtmlEntity(alertTooltip);\n return `` +\n `` +\n `` +\n `${value}`;\n } else if (icon) {\n return `` +\n `` +\n `${value}`;\n } else {\n return value;\n }\n }\n\n public formatTagStyle(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n const classArray = this.getTagStyleClasses(value, columnDef, dataView);\n return '' + value + '';\n }\n\n private getTagStyleClasses(value: any, columnDef: ListGridColumn, dataView: LMDataView, isClickable = false): string[] {\n // todo refactor this to use soho classes once ticket is completed and NG soho-tag.directive.ts is completed.\n // https://github.com/infor-design/enterprise/issues/3631\n\n if (!value || value.trim().length === 0) {\n return [];\n }\n\n const classArray = [ 'tag' ];\n\n if (isClickable) {\n classArray.push('is-clickable', 'hide-focus');\n\n // can't just place is-linkable from EP css here because a TagFormatter is needed.\n // classArray.push('is-linkable', 'hide-focus');\n }\n\n if (columnDef.displayField.tagStyle && columnDef.displayField.tagStyle.length > 0) {\n const foundTagStyle: LMTagStyle = columnDef.displayField.tagStyle.find(tagStyle => {\n if (!tagStyle.condition) {\n return true;\n }\n\n return this.isConditionValid([ tagStyle.condition ], dataView);\n });\n\n if (foundTagStyle && foundTagStyle && foundTagStyle.style.color) {\n classArray.push('lpl-' + foundTagStyle.style.color + '-bg'); // for tag background\n classArray.push('lpl-white'); // for tag foreground text when there is background color\n }\n }\n\n return classArray;\n }\n\n private formatFieldStyle(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n\n if (!columnDef.displayField.fieldStyle) {\n return value;\n }\n\n const spanClasses: string[] = this.getFieldStyleClasses(columnDef.displayField.fieldStyle);\n return '' + value + '';\n }\n\n public getFieldStyleClasses(fieldStyle: LMFieldStyle): string[] {\n const spanClasses: string[] = [];\n if (!fieldStyle) {\n return spanClasses;\n }\n\n if (fieldStyle.color) {\n let color = fieldStyle.color;\n switch (color) {\n case 'magenta':\n color = 'purple';\n break;\n case 'jade':\n color = 'green';\n break;\n case 'maroon':\n color = 'red';\n break;\n }\n spanClasses.push('lpl-' + color);\n\n // const color: Color = this.lmThemeService.getColorForLPLColor(fs.color);\n // if (color) {\n // spanClasses.push(color.colorClass);\n // }\n }\n\n if (fieldStyle.bold) {\n spanClasses.push('text-strong');\n }\n\n if (fieldStyle.italics) {\n spanClasses.push('text-emphasis');\n }\n\n if (fieldStyle.header) {\n const fontSizeClass = this.lmThemeService.getFontSizeClass(fieldStyle.header);\n if (fontSizeClass) {\n spanClasses.push(fontSizeClass);\n }\n }\n\n // if (fs.align) {\n // // todo implement me - is a alignment a property of datagrid columns?\n // }\n // if (fs.valign) {\n // // todo implement me - is a alignment a property of datagrid columns?\n // }\n\n return spanClasses;\n\n }\n\n public formatButtonText(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n // decorate the markup for totalling -- button can NOT be totaled\n if (this.isTotalRow(dataView)) {\n return this.formatTotalRowColumn(row, cell, value, columnDef, dataView, dataGrid);\n }\n\n let isValid = true;\n\n if (columnDef.displayField.validity) {\n isValid = this.isConditionValid(columnDef.displayField.validity, dataView);\n }\n\n if (isValid && columnDef.displayField.linkNavigation || columnDef.displayField.navigation) {\n isValid = this.isNavigationValid(columnDef.displayField, dataView);\n }\n\n if (columnDef.displayField.isStandardAction) {\n isValid = false;\n }\n\n // DPB shouldn't we check if the button is an action and that the action is valid (restricted actions should be allowed)\n\n // decorate the markup per SOHO styling\n if (columnDef.displayField.displayAsLink) {\n if (isValid) {\n // SOHO issue displaying both hyperlink text and icon\n if (columnDef.icon) {\n delete columnDef.icon;\n }\n // value = Soho.Formatters.Hyperlink(row, cell, value, columnDef, dataView, dataGrid);\n value = this.formatLink(row, cell, value, columnDef, dataView, dataGrid);\n } else {\n value = Soho.Formatters.Text(row, cell, value, columnDef, dataView, dataGrid);\n }\n } else {\n if (columnDef.displayField.fieldStyle) {\n const fieldStyleClasses = this.getFieldStyleClasses(columnDef.displayField.fieldStyle);\n columnDef.cssClass = fieldStyleClasses.join(' ');\n }\n\n // SOHO issue displaying both button label and icon\n const isValidSohoIcon = this.lmThemeService.isValidSohoIcon(columnDef.icon);\n if (!isValidSohoIcon && columnDef.displayField.iconUrl !== undefined) {\n value = ``;\n } else {\n value = Soho.Formatters.Button(row, cell, value, columnDef, dataView, dataGrid);\n\n if (columnDef.displayField.isPrimary) {\n value = value.replace('btn-secondary', 'btn-primary');\n }\n if (!isValid) {\n value = value.replace('class', 'disabled class');\n }\n value = value.replace('class=\"row-btn ', 'class=\"row-btn actionable ');\n }\n }\n\n // Rich Client is NOT supporting alerts on buttons - lets wait until we have a use case\n // // decorate the markup for alerts\n // if (columnDef.displayField.alert) {\n // value = this.formatDisplayAlert(row, cell, value, columnDef, dataView, dataGrid);\n // }\n\n return value;\n }\n\n public formatDisplayText(row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string {\n const targetDataView = this.getTargetDataView(dataView);\n\n if (columnDef.colspan) {\n this.adjustColumnAlignment(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n\n // decorate the markup for totalling\n const isTotalRow: boolean = this.isTotalRow(targetDataView);\n if (isTotalRow) {\n value = this.formatTotalRowColumn(row, cell, value, columnDef, targetDataView, dataGrid);\n value = Soho.Formatters.Tree(row, cell, value, columnDef, targetDataView, dataGrid);\n } else if (columnDef.displayField.caption) {\n // Used in aggregation tables\n const formattedValue = this.lmFormatUtilService.formatMessageRule(columnDef.displayField.caption, dataView);\n const allFieldsFilled = formattedValue.match(/\\{\\d+\\}/g);\n if (allFieldsFilled === null || allFieldsFilled.length === 0) {\n // If a variable in the message rule is not filled, there will be a {1} in the formatted value.\n // In that case, just fall back to the key value.\n value = formattedValue;\n }\n }\n\n let isValidNavigation = true;\n if (columnDef.displayField.linkNavigation || columnDef.displayField.navigation) {\n isValidNavigation = this.isNavigationValid(columnDef.displayField, targetDataView);\n }\n\n let isHyperlink = false;\n // decorate the markup per SOHO styling\n if (columnDef.inputType === 'password') {\n value = Soho.Formatters.Password(row, cell, value, columnDef, targetDataView, dataGrid);\n } else if (columnDef.displayField.isTreeColumn && !isTotalRow) {\n value = Soho.Formatters.Tree(row, cell, value, columnDef, targetDataView, dataGrid);\n } else if (this.isDisplayFieldLink(columnDef.displayField) && isValidNavigation && !isTotalRow) {\n value = this.formatLink(row, cell, value, columnDef, targetDataView, dataGrid);\n isHyperlink = true;\n } else if (columnDef.displayField.type === AppConstants.TEXTAREA || columnDef.displayField.type === AppConstants.TEXT) {\n if (columnDef.singleline) {\n value = Soho.Formatters.Editor(row, cell, value, columnDef, targetDataView, dataGrid);\n } else {\n if (columnDef.displayField.isRichText) {\n value = Soho.Formatters.Editor(row, cell, value, columnDef, targetDataView, dataGrid);\n } else {\n value = Soho.Formatters.Textarea(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n }\n } else {\n value = Soho.Formatters.Ellipsis(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n\n if (!isTotalRow) {\n if (!isHyperlink) {\n if (this.lmConditionUtilService.displayAsTag(columnDef.displayField, targetDataView, value)) {\n value = this.formatTagStyle(row, cell, value, columnDef, targetDataView, dataGrid);\n } else if (columnDef.displayField.fieldStyle) {\n value = this.formatFieldStyle(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n }\n\n if (columnDef.displayField.alert) {\n value = this.formatDisplayAlert(row, cell, value, columnDef, targetDataView, dataGrid);\n } else {\n if (columnDef.icon) {\n const isValidSohoIcon = this.lmThemeService.isValidSohoIcon(columnDef.icon);\n const textValue = this.formatFieldStyle(row, cell, value, columnDef, targetDataView, dataGrid);\n if (!isValidSohoIcon && columnDef.displayField.iconUrl !== undefined) {\n value = ``;\n } else {\n value = Soho.Formatters.Button(row, cell, value, columnDef, targetDataView, dataGrid);\n }\n value += textValue;\n }\n }\n }\n\n if (targetDataView.doesNotExist) {\n value = '' + value + '';\n }\n\n return value;\n }\n\n public getDisplayText(displayField: LMListDisplayField, value: any, dataView: LMListDataView, dataViewSet: LMDataViewSet, row?: number): string {\n // sanitize strips off the inline styles, so bypass sanitizing until this doesn't happen: https://github.com/angular/angular/issues/19645\n if (!displayField.isRichText) {\n value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n }\n\n const type = displayField.type;\n const targetDataView = this.getTargetDataView(dataView);\n\n if (displayField.isUserDefinedStateField || displayField.isStaticStateField) {\n return this.getStateText(displayField, value, targetDataView, dataViewSet, row);\n } else {\n switch (type) {\n case AppConstants.YYYY:\n return this.getYearText(displayField, value);\n case AppConstants.YYYYMM:\n return this.getYYMMText(displayField, value);\n case AppConstants.MMDD:\n return this.getMMDDText(displayField, value);\n case AppConstants.YYYYMMDD:\n return this.getYYMMDDText(displayField, value);\n case AppConstants.TIMESTAMP:\n return this.getTimeStampText(displayField, value, targetDataView);\n case AppConstants.TIME:\n return this.getTimeText(displayField, value);\n case AppConstants.NUMERIC:\n return this.getNumericText(displayField, value, targetDataView, dataViewSet);\n case AppConstants.BCD:\n return this.getBcdText(displayField, value, targetDataView, row);\n case AppConstants.PERCENT:\n return this.getPercentText(displayField, value, targetDataView);\n case AppConstants.BOOLEAN:\n return this.getBooleanText(displayField, value);\n case AppConstants.FORMTEXT:\n return this.getFormTextText(displayField, value, targetDataView);\n default:\n return value;\n }\n }\n }\n\n private getStateText(displayField: LMListDisplayField, value: any, dataView: LMDataView, dataViewSet: LMDataViewSet, row: number): string {\n //Using escaped field state value from soho causes an issue when looking for the item\n //e.g. 'Hello &' becomes 'Hello &', findStateItem will return null that's why 'Hello &' is displayed and not its label.\n const fieldId = displayField.fieldId;\n const field = dataView.fields[ fieldId ];\n const unescapedValue: any = field ? field.value : value;\n\n // Handle totaling of state fields that are numerical\n if (this.isTotalColumn(displayField.fieldId, dataView, dataViewSet)) {\n if (displayField.type === AppConstants.BCD) {\n return this.getBcdText(displayField, value, dataView, row);\n } else if (displayField.type === AppConstants.NUMERIC) {\n return this.getNumericText(displayField, value, dataView, dataViewSet);\n } else if (displayField.type === AppConstants.PERCENT) {\n return this.getPercentText(displayField, value, dataView);\n }\n }\n\n if (displayField.isStaticStateField) {\n return this.getDefinedStateText(displayField, unescapedValue);\n } else {\n return this.getUserDefinedStateText(displayField, unescapedValue, dataView);\n }\n }\n\n private getDefinedStateText(displayField: LMListDisplayField, value: any) {\n const item = this.lmFormatUtilService.findStateItem({ value: value.toString(), stateValues: displayField.states });\n if (item) {\n return item.label;\n }\n return this.lmFieldUtilService.isBlank(displayField.type, value) ? '' : value;\n }\n\n private getUserDefinedStateText(displayField: LMListDisplayField, value: any, dataView: LMDataView) {\n let item = null;\n const fieldId = displayField.fieldId;\n if (dataView.fields[ fieldId ]) {\n const states = dataView.fields[ fieldId ].stateValues;\n item = this.lmFormatUtilService.findStateItem({ value: value.toString(), stateValues: states });\n }\n\n if (item) {\n return item.label;\n }\n return this.lmFieldUtilService.isBlank(displayField.type, value) ? '' : value;\n }\n\n private getFormTextText(displayField: LMListDisplayField, value: any, dataView: LMDataView): string {\n return this.lmFormatUtilService.formatMessageRule(displayField.text, dataView);\n }\n\n private getPercentText(displayField: LMListDisplayField, value: any, dataView: LMDataView): string {\n const precision: number = this.getDisplayFieldPrecision(displayField, dataView);\n const displayNegativeParens = this.displayNegativeParens(displayField);\n\n const transformOptions: LMTransformOptions = {\n precision,\n displayNegativeParens,\n displayZero: !displayField.displayBlankWhenZero\n };\n\n return this.lmFormatUtilService.percentToDisplay(value, transformOptions);\n }\n\n private getBooleanText(displayField: LMListDisplayField, value: any): string {\n return this.lmFormatUtilService.booleanToDisplay(value);\n }\n\n private getNumericText(displayField: LMListDisplayField, value: any, dataView: LMDataView, dataViewSet: LMDataViewSet): string {\n const displayZero = this.isTotalColumn(displayField.fieldId, dataView, dataViewSet)\n || (dataViewSet.columnarInfo && dataViewSet.columnarInfo.isColumnarChart && !dataViewSet.columnarInfo.isAggregationTable);\n const displayThousandsCharacter = this.isTotalColumn(displayField.fieldId, dataView, dataViewSet)\n || (dataViewSet.columnarInfo && dataViewSet.columnarInfo.isColumnarChart && !dataViewSet.columnarInfo.isAggregationTable);\n const displayNegativeParens = this.displayNegativeParens();\n return this.lmFormatUtilService.numericToDisplay(value, {\n displayZero,\n displayThousandsCharacter,\n displayNegativeParens\n });\n }\n\n private getBcdText(displayField: LMListDisplayField, value: any, dataView: LMDataView, row: number): string {\n if (displayField.isPercentOfTotal && value !== undefined && value.indexOf('-') === 0) {\n return AppConstants.PERCENT_OF_TOTAL_INDETERMINATE_VALUE;\n }\n\n const displayInThousands = this.displayInThousands();\n const displayInMillions = this.displayInMillions();\n const displayNegativeParens = this.displayNegativeParens(displayField);\n const precision: number = this.getDisplayFieldPrecision(displayField, dataView);\n const currencySymbolIs: string = (displayField.hasCurrencySymbol) ?\n this.getCurrencySymbol(displayField.currencySymbolInfo, dataView, row) : '';\n const showPercentSymbol: boolean = (displayField.showPercentSymbol) ?\n this.getPercentSymbol(displayField, dataView, row) : false;\n\n const transformOptions: LMTransformOptions = {\n precision,\n displayZero: !displayField.displayBlankWhenZero,\n decSize: displayField.decSize,\n displayInThousands,\n displayInMillions,\n displayNegativeParens,\n showPercentSymbol,\n currencySymbolIs\n };\n\n let returnValue = this.lmFormatUtilService.bcdToDisplay(value, transformOptions);\n\n if (displayInThousands || displayInMillions) {\n returnValue = `${returnValue}`;\n }\n\n return returnValue;\n }\n\n public getCurrencySymbol(currencySymbolInfo: LMCurrencySymbolInfo, dataView: LMDataView, row: number): string {\n // check to see if first row or a total row.\n if (currencySymbolInfo.currencySymbolFirstLineAndTotalsOnly) {\n const targetDataView = this.getTargetDataView(dataView);\n const isTotalRow: boolean = this.isTotalRow(targetDataView);\n\n if (row === 0 || isTotalRow) {\n return this.lmFormatUtilService.getCurrencySymbol(currencySymbolInfo, dataView);\n }\n } else {\n return this.lmFormatUtilService.getCurrencySymbol(currencySymbolInfo, dataView);\n }\n }\n\n public getPercentSymbol(displayField: LMListDisplayField, dataView: LMDataView, row: number): boolean {\n // check to see if first row or a total row.\n if (displayField.percentSymbolFirstLineAndTotalsOnly) {\n const targetDataView = this.getTargetDataView(dataView);\n const isTotalRow: boolean = this.isTotalRow(targetDataView);\n\n if (row === 0 || isTotalRow) {\n return true;\n }\n } else {\n return true;\n }\n }\n\n private getYearText(displayField: LMListDisplayField, value: any): string {\n return this.lmFormatUtilService.numericToDisplay(value);\n }\n\n private getYYMMText(displayField: LMListDisplayField, value: any): string {\n return this.lmFormatUtilService.yyyymmToDisplay(value);\n }\n\n private getMMDDText(displayField: LMListDisplayField, value: any): string {\n return this.lmFormatUtilService.mmddToDisplay(value);\n }\n\n private getYYMMDDText(displayField: LMListDisplayField, value: any): string {\n return this.lmFormatUtilService.yyyymmddToDisplay(value);\n }\n\n private getTimeStampText(displayField: LMListDisplayField, value: any, dataView?: LMListDataView): string {\n const transformOptions: LMTransformOptions = {};\n\n if (displayField.displayDateAndHoursAndMinutes || displayField.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES;\n }\n if (displayField.displayHoursAndMinutesOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n }\n if (displayField.displayDateOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE;\n }\n if (displayField.displayTimeOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_TIME;\n }\n if (displayField.timeZoneIs) {\n transformOptions.timeZone = dataView?.fields[displayField.timeZoneIs].value as string;\n }\n if (displayField.displayWithTimeZone) {\n transformOptions.displayWithTimeZone = true;\n }\n if (displayField.disableDST) {\n transformOptions.disableDST = true;\n }\n return this.lmFormatUtilService.timestampToDisplay(value, transformOptions);\n }\n\n private getTimeText(displayField: LMListDisplayField, value: any): string {\n const transformOptions: LMTransformOptions = {};\n\n if (displayField.displayHoursAndMinutesOnly || displayField.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n }\n if (displayField.displayDateOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE;\n }\n if (displayField.displayTimeOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_TIME;\n }\n return this.lmFormatUtilService.timeToDisplay(value, transformOptions);\n }\n\n public getDisplayFieldPrecision(displayField: LMListDisplayField, dataView: LMDataView) {\n let precision: number = displayField.decSize;\n const fieldId = displayField.fieldId;\n\n // use field precision when it exists, dec size is the maximum number of decimals\n if (dataView.fields[ fieldId ] && dataView.fields[ fieldId ].precision !== undefined) {\n precision = dataView.fields[ fieldId ].precision;\n }\n\n if (displayField.numberOfDecimals || displayField.numberOfDecimals === 0) {\n precision = displayField.numberOfDecimals;\n }\n\n return precision;\n }\n\n private isDisplayFieldLink(displayField: LMListDisplayField): boolean {\n return displayField.linkNavigation || displayField.hasHttpUrl || displayField.cubeDrill || displayField.aggDrill || displayField.displayAsLink ? true : false;\n }\n\n private getTargetDataView(dataView: LMDataView): LMDataView {\n return this.listSpec?.isTemplateList ? dataView.dataView : dataView;\n }\n\n private displayNegativeParens(displayField?: LMListDisplayField): boolean {\n if (displayField?.displayNegativeAmountAs === 'parens') {\n return true;\n }\n\n return this.listSpec?.busListSpec?.displayNegativeParens;\n }\n\n private displayInThousands(): boolean {\n return this.listSpec?.busListSpec?.displayAmountRelative?.displayInThousands;\n }\n\n private displayInMillions(): boolean {\n return this.listSpec?.busListSpec?.displayAmountRelative?.displayInMillions;\n }\n}\n","import { LMFormatterService } from '@list/formatters';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMProcessIndicatorService } from '../../field/processindicator/lm-process-indicator.service';\nimport { AppConstants } from '../../../utils';\nimport { LMListCardService } from '../services';\nimport {LMProcessIndicatorTooltipPipe} from '@field/processindicator/lm-process-indicator-tooltip.pipe';\n\nexport const lmListCellTooltip = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n lmProcessIndicatorService: LMProcessIndicatorService,\n lmProcessIndicatorTooltipPipe: LMProcessIndicatorTooltipPipe,\n lmListCardService: LMListCardService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n let tooltip = '';\n const listGridComponent = dataGrid.settings.userObject();\n\n if (columnDef.displayField.type === AppConstants.CARDVIEW) {\n if (columnDef.displayField.mainColumn) {\n const cardHTML = [];\n const card = lmListCardService.getCardTemplateData(columnDef.displayField, dataView);\n\n card.columns.forEach((column) => {\n column.column.forEach((field) => {\n if (!field.isProcessIndicator) {\n cardHTML.push(`

        ${field.displayValue}

        `);\n }\n\n if (field.isProcessIndicator) {\n const templateData = lmProcessIndicatorService.getTemplateData(JSON.parse(field.displayValue));\n const current = lmProcessIndicatorService.getStepInProgress(templateData);\n const toolTipHTML = lmProcessIndicatorTooltipPipe.transform(current);\n const progressHTML = `\n
        \n

        Current Step

        \n
        ${toolTipHTML}
        \n
        \n `;\n\n cardHTML.push(`${progressHTML}`);\n }\n\n });\n })\n\n tooltip = `${cardHTML.join('')}`;\n } else {\n tooltip = '';\n }\n } else if (columnDef.displayField.isProcessIndicator) {\n const processIndicatorData: LMProcessIndicatorData = lmProcessIndicatorService.formatProcessIndicatorData(dataView, columnDef);\n const templateData = lmProcessIndicatorService.getTemplateData(processIndicatorData);\n const current = lmProcessIndicatorService.getStepInProgress(templateData);\n const toolTipHTML = lmProcessIndicatorTooltipPipe.transform(current);\n\n tooltip = `${toolTipHTML}`;\n } else if (columnDef.displayField.compactFormatByForm) {\n columnDef.flatLayout.elements.forEach((layoutField) => {\n\n let isVisible = true;\n let isValid = true;\n\n if (layoutField.field && layoutField.field.validity) {\n isValid = lmFormatterService.isConditionValid(layoutField.field.validity, dataView);\n }\n\n if (layoutField.field && layoutField.field.visibility) {\n isVisible = lmFormatterService.isConditionValid(layoutField.field.visibility, dataView);\n }\n\n if (isValid && isVisible) {\n const displayField = lmFormatterService.buildDisplayField(layoutField, dataView);\n const fieldValue = (dataView.fields[displayField.fieldId]) ? dataView.fields[displayField.fieldId].value : '';\n let displayValue = lmFormatterService.getDisplayText(displayField, fieldValue, dataView, listGridComponent.dataViewSet);\n\n if (lmFormatterService.isBlank(displayField.type, displayValue)) {\n displayValue = '';\n }\n\n const label = lmFormatUtilService.formatMessageRule(displayField.label, dataView);\n\n tooltip = (tooltip.length > 0 ? tooltip + ' • ' : tooltip) + label + (displayValue.length > 0 ? ': ' + displayValue : '');\n }\n });\n\n } else if (columnDef.displayField.displayAsProgressBar) {\n const ranges = columnDef.displayField.ranges;\n tooltip = lmFormatterService.getDisplayText(columnDef.displayField, value, dataView, dataGrid.settings.userObject().dataViewSet);\n\n if (ranges) {\n const rangeKeys = Object.keys(ranges);\n\n for (let i = 0; i < rangeKeys.length; i++){\n const key = rangeKeys[i];\n const r = ranges[ key ];\n\n if (r.tooltip){\n const min = (typeof r.start === 'string')\n ? dataView.fields[r.start].value\n : r.start;\n\n const max = (typeof r.end === 'string')\n ? dataView.fields[r.end].value\n : r.end;\n\n if (value >= min && value <= max){\n tooltip = lmFormatUtilService.formatMessageRule(r.tooltip, dataView);\n\n break;\n }\n } else {\n continue;\n }\n }\n }\n\n } else {\n tooltip = value;\n }\n return tooltip;\n};\n","import { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { AppConstants, LMTransformOptions } from '@utils/index';\n\nexport const lmMatrixRowFormatter = (\n lmFormatUtilService: LMFormatUtilService,\n lmConditionUtilService: LMConditionUtilService,\n matrixFormSpec: LMBusMatrixFormSpec,\n showDetailFields: boolean,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n // console.log('columnDef.id: ' + columnDef.id + ' ' + columnDef.matrixIndex);\n const matrixCellIndex = columnDef.id === 'ROW_HEADER' ? 0 : columnDef.matrixIndex;\n const cellDataView: LMDataView = dataView.data[matrixCellIndex];\n\n // should NOT happen\n if (!cellDataView) {\n return '';\n }\n\n const markup = [];\n\n if (columnDef.id === 'ROW_HEADER') {\n // matrix row view\n matrixFormSpec.cells.forEach((displayField: LMListDisplayField) => {\n if (displayField.detail && !showDetailFields) {\n return;\n }\n\n let label = '';\n\n if (displayField.label) {\n let messageRule: any = displayField.label;\n\n if (messageRule.label) {\n // spec is messed up here when the displayField is a button\n messageRule = messageRule.label;\n }\n\n label = lmFormatUtilService.formatMessageRule(messageRule, cellDataView, matrixFormSpec.fields);\n }\n\n markup.push(`
        ${label}
        `);\n });\n } else {\n // matrix column views\n matrixFormSpec.cells.forEach((displayField: LMListDisplayField) => {\n if (displayField.detail && !showDetailFields) {\n return;\n }\n\n const field: LMField = cellDataView.fields[ displayField.fieldId ];\n\n if (displayField.visibility && !lmConditionUtilService.isValid(displayField.visibility, cellDataView)) {\n markup.push(`
        `);\n } else if (displayField.condition && !lmConditionUtilService.isValid([displayField.condition], cellDataView)) {\n markup.push(`
        `);\n } else if (displayField.type === AppConstants.CHECKCONTROL) {\n // TODO Need work in java to bring back actionindex on cell dataview so can determine\n // if the check action is valid\n markup.push(`\n
        \n \n \n
        \n `);\n } else if (displayField.navigation) {\n const buttonTitle = lmFormatUtilService.formatMessageRule(displayField.title, cellDataView);\n const hyperlinkDisplayValue = `${lmFormatUtilService.toDisplayValue(buttonTitle, displayField.type)}`;\n const hyperlinkClasses = 'lm-matrix-element hyperlink lm-card-internal-link';\n markup.push(``);\n } else if (!field) {\n markup.push(`
        `);\n } else if (displayField.linkNavigation) {\n const hyperlinkDisplayValue = `${getFieldDisplayValue(displayField, field)}`;\n const hyperlinkClasses = 'lm-matrix-element hyperlink lm-card-internal-link';\n markup.push(``);\n } else {\n const displayValue = getFieldDisplayValue(displayField, field);\n markup.push(`
        ${displayValue}
        `);\n }\n });\n }\n\n function getFieldDisplayValue(displayField: LMListDisplayField, field: LMField): string {\n let options: LMTransformOptions;\n if (displayField.type === AppConstants.BCD || displayField.type === AppConstants.PERCENT) {\n options = {decSize: field.precision, precision: field.precision};\n }\n return lmFormatUtilService.toDisplayValue(field.value, displayField.type, options);\n }\n\n function isChecked(displayField): boolean {\n if (displayField.hasCheckedState) {\n return cellDataView.fields[displayField.bindId].value as boolean;\n }\n\n return false;\n }\n\n return markup.join('');\n};\n","import { LMProcessIndicatorService } from '../../field/processindicator/lm-process-indicator.service';\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace lmProcessIndicatorFormatter {\n export const format = (\n processIndicatorService: LMProcessIndicatorService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView\n ): string => {\n const processIndicatorData: LMProcessIndicatorData = processIndicatorService.formatProcessIndicatorData(dataView, columnDef);\n const templateData = processIndicatorService.getTemplateData(processIndicatorData);\n\n return getProcessIndicatorHTML(templateData);\n };\n\n export const getProcessIndicatorHTML = (templateData: Array): string => `\n
        \n
        \n ${templateData.map((data, i) => `\n
        \n
        \n ${getIndicatorHTML(data)}\n \n
        \n
        \n `).join('')}\n
        \n
        `;\n\n export const getSeparatorClasses = (data: LMProcessIndicatorDisplayData): string => {\n const cssClasses = ['separator'];\n\n if (data.status === 'C' || data.status === 'X') {\n cssClasses.push('darker');\n }\n\n return cssClasses.join(' ');\n }\n\n export const getIndicatorClasses = (data: LMProcessIndicatorDisplayData): string => {\n const cssClasses = ['indicator'];\n\n if (data.completionStatusInfo.indicatorClass) {\n cssClasses.push(data.completionStatusInfo.indicatorClass);\n }\n\n if (data.completionStatusInfo.iconInfo.icon) {\n cssClasses.push('icon');\n }\n\n return cssClasses.join(' ');\n }\n\n export const getIndicatorHTML = (data: LMProcessIndicatorDisplayData): string => `\n
        \n ${data.completionStatusInfo.iconInfo.icon ? `\n \n \n ` : ''}\n
        \n `;\n}\n","/**\n * Created by claudenbach on 3/2/2017.\n */\n\nimport { AppConstants } from '@utils/app.constants';\n\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport { LMFormatterService } from './lm-formatter.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmProgressFormatter = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n lmCommonUtilService: LMCommonUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return '';\n }\n }\n\n const ranges = columnDef.displayField.ranges;\n const meterRange = columnDef.displayField.meterRangeField || columnDef.displayField.meterRangeValue || 1.0;\n\n let target; let displayValue; let precision;\n const fieldId = columnDef.displayField.fieldId;\n // Formatter service sanitizes the value\n displayValue = lmFormatterService.getDisplayText(columnDef.displayField, value, dataView, dataGrid.settings.userObject().dataViewSet);\n\n if (columnDef.displayField.type === AppConstants.PERCENT) {\n precision = dataView.fields[ fieldId ] && dataView.fields[ fieldId ].precision !== undefined\n ? dataView.fields[ fieldId ].precision\n : columnDef.displayField.decSize;\n // displayValue = lmFormatUtilService.percentToDisplay(String(value), {precision: precision});\n target = (value / meterRange).toPrecision(precision);\n } else if (columnDef.displayField.type === AppConstants.BCD) {\n precision = dataView.fields[ fieldId ] && dataView.fields[ fieldId ].precision !== undefined\n ? dataView.fields[ fieldId ].precision\n : columnDef.displayField.decSize;\n // displayValue = lmFormatUtilService.bcdToDisplay(value, {precision: precision, decSize: columnDef.displayField.decSize, displayZero: true});\n target = (value / meterRange).toPrecision(precision);\n } else if (columnDef.displayField.type === AppConstants.NUMERIC) {\n // displayValue = lmFormatUtilService.numericToDisplay(value, { displayZero: true });\n target = (value / meterRange);\n }\n\n const sohoRanges = [];\n\n if (ranges) {\n Object.keys(ranges).forEach((item) => {\n const r = ranges[ item ];\n let color = lmCommonUtilService.convertColor({color: item});\n color = lmCommonUtilService.convertColorToState({color});\n\n const min = (typeof r.start === 'string')\n ? dataView.fields[r.start].value\n : r.start;\n\n const max = (typeof r.end === 'string')\n ? dataView.fields[r.end].value\n : r.end;\n\n sohoRanges.push( {\n min: ((min / meterRange) * 100),\n max: ((max / meterRange) * 100),\n classes: color,\n text: ''\n })\n });\n }\n\n const col = {\n ranges: sohoRanges,\n target,\n showPercentText: false,\n text: displayValue\n };\n\n // console.log('*** lmProgressFormatter: value=' + value + ' displayValue=' + displayValue + ' target=' + target);\n\n // 2018-01-08 - maf\n // issues with Soho.Formatters.TargetedAchievment\n // 1. percent sign is hard-coded\n // 2. all values regardless type will display as percent\n // 3. it does it's own range checking, hence the need to pass the ranges in its format\n // 4. it does not support all of the features of the Targeted Achievement chart that form uses\n\n // TODO: CAL - Need to revisit once work on the progress bar in the controls is completed\n // http://jira.infor.com/browse/SOHO-7367\n return Soho.Formatters.TargetedAchievement(row, cell, target, col, dataView, dataGrid);\n};\n","import { LMFormatterService } from './lm-formatter.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\nexport const lmRatingFormatter = (\n lmFormatterService: LMFormatterService,\n lmFormatUtilService: LMFormatUtilService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n if (dataView.isTreeMoreLink) {\n return lmFormatterService.getMoreLink(cell, dataView);\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n return '';\n }\n }\n\n if (lmFormatterService.isTotalRow(dataView)) {\n return lmFormatterService.formatTotalRowColumn(row, cell, value, columnDef, dataView, dataGrid);\n }\n\n const fieldId = columnDef.displayField.fieldId;\n const dataViewValue = dataView.fields[ fieldId ].value as number;\n\n const ratingOptions = lmFormatUtilService.formatStarRatingOptions(dataViewValue, columnDef.id);\n\n return `\n
        \n ${ratingOptions.map((option: LMStarRatingOption) => `\n \n `).join('')}\n
        \n `;\n};\n","import { LMFormatterService } from './lm-formatter.service';\n\nexport const lmTreeFormatter = (\n lmFormatterService: LMFormatterService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n dataView: LMListDataView,\n dataGrid: SohoDataGridStatic\n): string => {\n\n if (dataView.isTreeMoreLink) {\n const moreColumnIndex = dataGrid?.settings.selectable === 'single' ? 0 : 1;\n return lmFormatterService.getMoreLink(cell, dataView, moreColumnIndex);\n }\n\n if (columnDef.displayField.visibility) {\n if (!lmFormatterService.isConditionValid(columnDef.displayField.visibility, dataView)) {\n value = '';\n }\n }\n\n return lmFormatterService.formatForDisplay(row, cell, value, columnDef, dataView, dataGrid);\n};\n","export * from './services';\nexport * from './editors';\nexport * from './formatters';\nexport * from './code-block';\n\nexport * from './lm-datagrid-base.component';\nexport * from './lm-detail-section-base';\nexport * from './lm-detail-section-dashboard.component';\nexport * from './lm-detail-section-card.component';\nexport * from './lm-detail-section-form.component';\nexport * from './lm-detail-section-list.component';\nexport * from './lm-detail-section-multilist.component';\nexport * from './lm-detail-section-notfound.component';\nexport * from './lm-detail-sections.component';\nexport * from './lm-list-chart.component';\nexport * from './lm-list-chart-selectors.component';\nexport * from './lm-list-content-base.component';\nexport * from './lm-list.component';\nexport * from './lm-list-content.component';\nexport * from './lm-list-cube-viewer.component';\nexport * from './lm-list-grid.component';\nexport * from './lm-list-image.component';\nexport * from './lm-list-searchtags.component';\nexport * from './lm-list-tree.component';\nexport * from './lm-list-view.component';\nexport * from './lm-list-hierarchy.component';\nexport * from './lm-list-search-form-dialog.component';\nexport * from './lm-list-content-filterlist.component';\nexport * from './lm-detail-section-url.component';\nexport * from './lm-list-card.component';\nexport * from './lm-list-calendar.component';\n\nexport * from './lm-list-search-form.directive';\nexport * from './lm-list-gallery.component';\n","import { Directive, Input, ViewChild } from '@angular/core';\nimport { LMListEventService, LMListGridBuilderService, LMListSpecUtilService, LMListUtilService, } from './services';\nimport { LMEditorService } from './editors';\nimport { LMFormatterService } from './formatters';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { AppConstants, LMDialogButtonKey, LMTransformOptions } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { SohoBusyIndicatorDirective, SohoDataGridComponent, SohoMessageService } from 'ids-enterprise-ng';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMCompoundFieldService } from '@services/lm-compound-field.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMContextService } from '@app/services';\nimport { SohoDataGridKeyDownEvent } from 'ids-enterprise-ng/lib/datagrid/soho-datagrid.component';\n\n@Directive() // tslint:disable-next-line:directive-class-suffix\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class LMDataGridBaseComponent extends LMListContentBaseComponent {\n /**\n * Only load data if filterCriteria or filterListFilterCriteria are set.\n */\n @Input() hasFilterList: boolean;\n @Input() set showFilter(showFilter: boolean) {\n this.toggleFilterRow();\n }\n\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('SohoDataGrid') sohoDataGridComponent: SohoDataGridComponent;\n\n gridOptions: SohoDataGridOptions;\n savedColumns: ListGridColumn[];\n\n protected allowUpdate = false;\n protected hasDisplayFields = false;\n protected hasMultiLineTextArea = false;\n // protected nbrMultiLineTextAreaLines = 0;\n // protected maxNbrMultiLineTextAreaLines = 3;\n protected showFilterMenuItemEnabled = true;\n protected allowMultiSelections = false;\n\n protected disableSelectionListener = false;\n\n protected selectionInProgress = false;\n\n protected testVersion1: boolean;\n\n public dataGridAutomationId: string;\n\n protected timeZoneDependentFields: LMTimeZoneDependentField[] = [];\n\n protected constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmContextService: LMContextService,\n protected lmEditorService: LMEditorService,\n protected lmFormatterService: LMFormatterService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridBuilderService: LMListGridBuilderService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmCompoundFieldService: LMCompoundFieldService,\n protected sohoMessageService: SohoMessageService,\n protected lmUniqueIdService: LMUniqueIdService,\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n protected build(): void {\n this.initialize();\n this.buildGridOptions();\n }\n\n /**\n * Called at the end of buildGridOptions to give the\n * implementing class a chance to update the grid options\n * object before creating the data grid.\n */\n public abstract updateGridOptions(): void;\n\n public initialize() {\n this.showFilterMenuItemEnabled = this.listSpec.listType !== 'multilist';\n this.allowUpdate = this.lmListSpecUtilService.allowUpdate(this.listSpec);\n this.hasDisplayFields = this.lmListSpecUtilService.hasDisplayFields(this.listSpec);\n this.allowMultiSelections = this.selectRequestData?.allowMultiSelections || false;\n }\n\n public buildGridOptions(): void {\n // -------------------------------------------------------------\n // build grid options\n // make sure context and listSpec are set for the grid options builder\n // -------------------------------------------------------------\n this.lmEditorService.listSpec = this.listSpec;\n this.lmFormatterService.listSpec = this.listSpec;\n\n // -------------------------------------------------------------\n // assigning the grid options variable should cause the datagrid\n // component to be created. see lm-list-grid.component.html\n // -------------------------------------------------------------\n this.gridOptions = this.lmListGridBuilderService.buildDataGridOptions(this.listUrlInfo, this.listSpec, this.listState, this.listPersonalization, this.allowMultiSelections);\n\n // ----------------------------------------------------------------\n // Used by grid formatters (and editors?) to get the dataViewSet\n // ----------------------------------------------------------------\n this.gridOptions.userObject = () => this;\n\n this.gridOptions.columns\n .map(column => column)\n .forEach((column: ListGridColumn) => {\n // ----------------------------------------------------------------\n // if selection is disable run the rowClick event emitter\n // when clicking in a cell that's not a checkbox, link, or button\n // ----------------------------------------------------------------\n if (column.isActionable) {\n column.click = (event, args) => this.onColumnClicked(column, event, args);\n }\n\n if (column.displayField?.type === AppConstants.TIMESTAMP && column.displayField?.timeZoneIs) {\n const timeZoneFieldId = column.displayField?.timeZoneIs;\n const timeStampFieldId = column.displayField?.fieldId;\n const dependentField: LMTimeZoneDependentField = this.timeZoneDependentFields.find(fields => fields[timeZoneFieldId]);\n\n if (dependentField) {\n dependentField[timeZoneFieldId].push(timeStampFieldId);\n } else {\n const timeZoneDependentField: LMTimeZoneDependentField = {};\n timeZoneDependentField[timeZoneFieldId] = [];\n timeZoneDependentField[timeZoneFieldId].push(timeStampFieldId);\n this.timeZoneDependentFields.push(timeZoneDependentField);\n }\n }\n });\n\n this.updateGridOptions();\n }\n\n /***********************************************************************\n * EVENT HANDLERS\n ***********************************************************************/\n public onEnterEditMode(event: SohoDataGridEditModeEvent) {\n if (!event) {\n return;\n }\n\n const columns = this.sohoDataGridComponent.getColumns();\n const columnDef = columns[event.cell];\n\n switch (columnDef.displayField.type) {\n case AppConstants.PERCENT:\n case AppConstants.NUMERIC:\n case AppConstants.BCD:\n if (this.listSpec.busListSpec.displayAmountRelative\n || this.listSpec.busListSpec.displayNegativeParens) {\n const row = event.row;\n const dataViewSet: LMDataViewSet = this.getDataViewSet();\n const dataView: LMDataView = dataViewSet.data[row];\n const dvField: LMField = dataView.fields[columnDef.fieldId] ? dataView.fields[columnDef.fieldId] : dataView.dataView.fields[columnDef.fieldId];\n const value: string = this.lmFormatUtilService.toDisplayValueWithSpec(dvField.value, columnDef.displayField, { precision: dvField.precision || 0 });\n\n event.editor.val(value);\n }\n // eslint-disable-next-line no-fallthrough\n default:\n break;\n }\n }\n\n public onRowSelected(event: SohoDataGridSelectedEvent) {\n if (this.disableSelectionListener) {\n return;\n }\n\n this.lmListEventService.listRowSelectedEvent({ event: event.e, rows: event.rows as LMListRowData[] });\n }\n\n public onRowActivated(event: SohoDataGridRowActivated) {\n this.lmListEventService.listRowActivatedEvent(this.toListRowActivatedEvent(event));\n }\n\n public onRowDeactivated(event: SohoDataGridRowActivated) {\n this.lmListEventService.listRowDeactivatedEvent(this.toListRowActivatedEvent(event));\n }\n\n private toListRowActivatedEvent(event: SohoDataGridRowActivated): LMListRowActivatedEvent {\n return { item: event.item, row: event.row, fromDataView: this.fromDataView, sourceIsPagingEvent: this.selectionInProgress };\n }\n\n public onKeyDown(event: SohoDataGridKeyDownEvent|KeyboardEvent) {\n const keyboardEvent = event as KeyboardEvent;\n const isFilterTarget = (keyboardEvent?.target as HTMLElement)?.classList.contains('btn-filter') &&\n (keyboardEvent?.target as HTMLElement)?.parentElement.classList.contains('datagrid-filter-wrapper');\n\n if (!this.lmListUtilService.isAutoFilterEnabled() && isFilterTarget && keyboardEvent.which === 13) {\n this.sohoDataGridComponent.applyFilter();\n return false;\n } else {\n this.lmListEventService.listKeyDownEvent(event as LMListKeyDownEvent);\n }\n }\n\n public onRowClicked(event: SohoDataGridRowClicked) {\n // handle if a form button is clicked off of a form button\n if (!event) {\n return;\n }\n\n const eventTarget = event.originalEvent.target as HTMLElement;\n const isCellButton = (eventTarget.nodeName === 'BUTTON' || eventTarget.classList.contains('lm-list-icon-button')) &&\n !eventTarget.classList.contains('datagrid-expand-btn');\n const isHyperlink = eventTarget.classList.contains('hyperlink');\n const isCheckBox = eventTarget.classList.contains('datagrid-checkbox');\n\n if (isCellButton || isHyperlink || isCheckBox) {\n return;\n }\n\n if (this.listSpec.busListSpec.selection === 'disabled' && !this.listSpec.busListSpec.openActionRestricted) {\n // only fire row click event if the open action is not restricted and selection is 'disabled'.\n // 'disabled' this essentially means a single click is available to open a record.\n if (isNaN(event.cell)) {\n // if the event is not a cell click event\n return;\n }\n\n const element: HTMLElement = event.originalEvent.target as HTMLElement;\n if (!element.classList.contains('datagrid-cell-wrapper')) {\n return;\n }\n\n this.lmListEventService.listRowClickedEvent(event);\n } else if (this.lmContextService.useSingleSelectList() && this.listSpec.listType === 'select' && !this.inSelectListEditMode) {\n const isExpandButton = eventTarget.classList.contains('datagrid-expand-btn');\n if (isExpandButton) {\n return;\n }\n\n if (this.lmListSpecUtilService.isTreeView(this.listSpec)) {\n event.item = this.getDataView(event.row);\n }\n\n this.lmListEventService.listRowClickedEvent(event);\n } else if (this.listSpec.busListSpec.selection === 'multiple') {\n /**\n * Fix for issue LMCLIENT-29260.\n *\n * BACKGROUND: We are using the activatedRow event to also select that activated row. But we don't auto select\n * the first row anymore on initial load. A multiselect list will now default so having a zeroth activated row but no row\n * will be selected.\n *\n * ISSUE: since first row is activated (and not selected) by default a new activated event will not be fired\n * if the user clicks on the activated row. There for no selection will take place.\n *\n * WORKAROUND: Manage the click event ourselves and decide if the setRowSelection should be called.\n */\n if (this.activatedRow() === event.row && this.getSelectedRows().length === 0) {\n this.setSelectedRows([ event.row ]);\n }\n }\n }\n\n public onRowDoubleClicked(event: SohoDataGridRowClicked): void {\n // Safety if double click on filter row and no event is returned\n if (!event) {\n return;\n }\n this.lmListEventService.listRowDoubleClickedEvent(event);\n }\n\n public onContextMenu(event: SohoDataGridRowClicked): void {\n // clicked in open area of datagrid. could bring up only class level actions (create or set actions).\n if (!event) {\n return;\n }\n\n if (!event.originalEvent.clientX || !event.originalEvent.clientY) {\n const domRect: DOMRect = (event.originalEvent.target as HTMLElement).getBoundingClientRect();\n event.originalEvent.clientX = domRect.x;\n event.originalEvent.clientY = domRect.y;\n }\n\n this.lmListEventService.contextMenuEvent({\n ...event,\n type: 'grid'\n });\n }\n\n public onRowAdd(event: SohoDataGridAddRowEvent): void {\n if (!event || !event.value || !event.value.isNewRow) {\n return;\n }\n\n const columns = this.sohoDataGridComponent.getColumns();\n if (columns && columns[ 0 ].id !== 'selectionCheckbox') {\n return;\n }\n\n const cell = this.firstInputCellIndex(AppConstants.INLINE_CREATE_ROW);\n if (cell !== -1) {\n this.sohoDataGridComponent.setActiveCell(AppConstants.INLINE_CREATE_ROW, cell);\n }\n }\n\n public firstInputCellIndex(row: number): number {\n const column = this.firstInputColumn(row);\n if (column) {\n // temporary until SOHO fixes getColumnIndex\n // let cellIndex = this.sohoDataGridComponent.getColumnIndex(column.id);\n const columns = this.sohoDataGridComponent.getColumns();\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].id === column.id) {\n return i;\n }\n }\n }\n\n return -1;\n }\n\n public firstInputColumn(row: number): ListGridColumn {\n const columns = this.sohoDataGridComponent.getColumns();\n\n const column = columns.find(col => {\n if (!col.displayField || !col.editor) {\n return false;\n }\n\n if (col.displayField.type === AppConstants.CHECKCONTROL) {\n return false;\n }\n\n if (!col.displayField.columnVisibility) {\n return true;\n }\n\n if (col.displayField.columnVisibility) {\n return this.lmConditionUtilService.isValid(col.displayField.columnVisiblity, this.getDataViewSet().header);\n }\n });\n\n return column;\n }\n\n isTimeZoneHasDependentFields(fieldId: string): boolean {\n return !!this.timeZoneDependentFields.find(fields => fields[fieldId]?.length);\n }\n\n public onCellChange(event: SohoDataGridCellChangeEvent) {\n if (!event) {\n return;\n }\n\n const columns = this.sohoDataGridComponent.getColumns();\n const columnDef = columns[event.cell];\n const row = event.row;\n const cell = event.cell;\n const dataView: LMDataView = this.getDataViewSet().data[row];\n const dvField: LMField = dataView.fields[columnDef.fieldId] ? dataView.fields[columnDef.fieldId] : dataView.dataView.fields[columnDef.fieldId];\n\n if (this.lmFormatUtilService.isCompoundField(dvField)) {\n // Needs to be performed before calling rowStatus() since the\n // dataView changes are overwritten.\n this.lmCompoundFieldService.setGroupFieldMemberValue(dataView, dvField);\n }\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n dvField.oldValue = event.oldValue;\n }\n\n if (this.isTimeZoneHasDependentFields(columnDef.displayField?.fieldId)) {\n const transformOptions: LMTransformOptions = {};\n const timeZoneDependentField = this.timeZoneDependentFields.find(field => field[columnDef.displayField.fieldId]);\n\n if (timeZoneDependentField[columnDef?.fieldId]) {\n timeZoneDependentField[columnDef.fieldId].forEach(field => {\n const timeStampfield = dataView.fields[field];\n transformOptions.timeZone = event.oldValue;\n const displayValue = this.lmFormatUtilService.toDisplayValue(\n timeStampfield.value, AppConstants.TIMESTAMP, transformOptions);\n\n transformOptions.timeZone = event.value;\n timeStampfield.value = this.lmFormatUtilService.toDataValue(\n displayValue, AppConstants.TIMESTAMP, transformOptions);\n });\n }\n }\n\n // check control is NOT a field it can not be dirty, it is a toggle button\n if (columnDef.displayField.type === AppConstants.CHECKCONTROL) {\n this.sohoDataGridComponent.clearDirtyCell(row, cell);\n }\n\n if (this.isRowDirty(dataView)) {\n this.sohoDataGridComponent.rowStatus(row, 'in-progress', Soho.Locale.translate('RowDataChanged'));\n } else {\n this.sohoDataGridComponent.clearRowError(row);\n }\n\n if (columnDef.displayField.type === AppConstants.CHECKCONTROL) {\n this.lmListEventService.checkControlEvent({ columnDef, dataView, row });\n } else {\n this.lmListEventService.fieldChangedEvent({ columnDef, dataView });\n }\n }\n\n public onColumnClicked(columnDef: ListGridColumn, event: any, args: any) {\n\n const row = args[0].row;\n const cell = args[0].cell;\n const dataView = args[0].item;\n const isCardButton = event.target.classList.contains('lm-card-button');\n const isCardLinkNavigation = event.target.classList.contains('lm-card-internal-link');\n\n // Get displayfield info from element\n // Card button displayfield is a buttonRow with an Array of display fields\n if (isCardButton) {\n const displayField = JSON.parse(event.target.dataset.displayfield);\n const cardViewFormButtonSpec = displayField.cardViewFormButtonSpec;\n\n // Check if it is an external button link displayed as text, no icon, and no http resource value\n // if it is, it should not propagate the button event.\n if (cardViewFormButtonSpec\n && cardViewFormButtonSpec.displayAsLink\n && !cardViewFormButtonSpec.iconUrl\n && cardViewFormButtonSpec.openExternal\n && (cardViewFormButtonSpec.httpUrl\n && !cardViewFormButtonSpec.httpUrl.variables)) {\n return;\n }\n\n this.lmListEventService.toolbarButtonEvent({\n event,\n actionReference: displayField,\n customToolbarButtonInfo: cardViewFormButtonSpec\n });\n } else {\n let navigationParams: LMCardNavigationParams = null;\n\n if (event.target.dataset?.navigationName) {\n navigationParams = { navigationName: event.target.dataset.navigationName, dataView };\n }\n\n if (isCardLinkNavigation) {\n const cardLinkFieldId = event.target.dataset.fieldId;\n const cardViewDisplayFields: Array = [\n ...(columnDef?.displayField?.mainColumn || []),\n ...(columnDef?.displayField?.rightColumn || [])\n ];\n\n const cardLinkDisplayField: LMListDisplayField = cardViewDisplayFields.find(displayField => displayField.fieldId === cardLinkFieldId);\n const tmpColDef: ListGridColumn = { ...columnDef };\n tmpColDef.displayField = cardLinkDisplayField;\n\n this.onFormButtonClicked(tmpColDef, dataView, row, cell, navigationParams, event);\n } else {\n this.onFormButtonClicked(columnDef, dataView, row, cell, navigationParams, event);\n }\n }\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: number, cell: number, navigationParams: any, event: any, fromNoDataMessageFormButton?: boolean) {\n // Handle click of the no data message button or button click from a datagrid cell\n if (columnDef.displayField?.linkNavigation ||\n columnDef.displayField?.navigation ||\n columnDef.displayField?.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = {\n columnDef,\n dataView,\n event,\n navigationParams,\n options: { fromNoDataMessageFormButton }\n };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n public onSettingsChanged(event: SohoDataGridSettingsChangedEvent) {\n const columns = event.columns as ListGridColumn[];\n this.lmListEventService.settingsChangedEvent({ columns });\n }\n\n public onFilterOperatorChanged(event: SohoDataGridFilterOperatorChangedEvent) {\n this.lmListEventService.filterOperatorChangedEvent({\n id: event.columnId,\n operator: AppConstants.OperatorMap.find(operatorEntry => operatorEntry.sohoOperator === event.operator).lmOperator\n });\n }\n\n public onRendered(event: SohoDataGridRenderedEvent) {\n // onRendered is not called anymore\n }\n\n /***********************************************************************\n * PUBLIC FUNCTIONS\n ***********************************************************************/\n\n public getColumns(): Array {\n if (this.sohoDataGridComponent) {\n return this.sohoDataGridComponent.getColumns();\n }\n }\n\n public toggleFilterRow(): void {\n if (this.sohoDataGridComponent) {\n // ----------------------------------------------------------------\n // if filter bar is currently displayed then clear the filter\n // running clearFilter will cause a 'filtered' message to\n // the this.dataGridSource function.\n // ----------------------------------------------------------------\n if (this.sohoDataGridComponent.filterable) {\n this.sohoDataGridComponent.clearFilter();\n }\n\n this.sohoDataGridComponent.toggleFilterRow();\n this.listState.isFilterBarOpened = this.sohoDataGridComponent.filterable;\n }\n }\n\n public getDataViewSet(): LMDataViewSet {\n return this.dataViewSet;\n }\n\n public getDataView(row: any) {\n if (!this.dataViewSet || this.dataViewSet.data.length <= 0) {\n return null;\n }\n return this.dataViewSet.data[ row ];\n }\n\n public clearDirty() {\n this.sohoDataGridComponent?.clearDirty();\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n this.sohoDataGridComponent.updateRow(key, dataView);\n }\n\n protected inSelectedListEditModeChanged(): void {\n if (!this.sohoDataGridComponent) {\n return;\n }\n\n let row: number;\n const fromSelectionMode = this.sohoDataGridComponent.gridOptions.selectable;\n const toSelectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode, this.allowMultiSelections);\n if (toSelectionMode !== fromSelectionMode) {\n this.sohoDataGridComponent.gridOptions.selectable = toSelectionMode;\n\n const showSelectionColumn = toSelectionMode === 'mixed';\n this.showSelectionCheckBoxColumn(showSelectionColumn);\n\n this.selectionInProgress = true;\n row = (showSelectionColumn) ? this.getSelectedRow() : this.activatedRow();\n this.sohoDataGridComponent.unSelectAllRows();\n\n if (showSelectionColumn) {\n // Going from single select to multiple select\n this.sohoDataGridComponent.gridOptions.disableRowDeactivation = true;\n this.sohoDataGridComponent.activateRow(row);\n } else {\n // Going from multiple select to single select\n this.sohoDataGridComponent.gridOptions.disableRowDeactivation = false;\n this.sohoDataGridComponent.deactivateRow();\n this.sohoDataGridComponent.selectRows([ row ]);\n }\n this.selectionInProgress = false;\n } else {\n if (!this.allowMultiSelections) {\n row = (this.getSelectedRow() > -1) ? this.getSelectedRow() : 0;\n this.sohoDataGridComponent.selectRows([ row ]);\n } else {\n row = (this.activatedRow() > -1) ? this.activatedRow() : 0;\n }\n }\n\n // When cellNavigation is false get the hand cursor; otherwise get the pointer cursor\n this.sohoDataGridComponent.gridOptions.cellNavigation = !this.sohoDataGridComponent.gridOptions.cellNavigation;\n\n setTimeout( () => { this.setActiveCell(row, 0); }, 2);\n }\n\n protected showSelectionCheckBoxColumn(show: boolean) {\n const columns: SohoDataGridColumn[] = this.sohoDataGridComponent.gridOptions.columns;\n this.lmListGridBuilderService.updateDataGridColumn(columns, show);\n this.sohoDataGridComponent.columns = columns;\n\n const frozenColumns: SohoDataGridFrozenColumns = this.sohoDataGridComponent.gridOptions.frozenColumns;\n if (frozenColumns?.left.length > 0) {\n this.lmListGridBuilderService.updateFrozenColumns(frozenColumns, show);\n this.sohoDataGridComponent.frozenColumns = frozenColumns;\n }\n\n const columnGroups: SohoDataGridColumnGroup[] = this.sohoDataGridComponent.gridOptions.columnGroups;\n if (columnGroups?.length > 0) {\n this.lmListGridBuilderService.updateColumnGroups(columnGroups, show);\n this.sohoDataGridComponent.columnGroup = columnGroups;\n }\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // depending on the the status,\n // Complete - row marked pristine and successful\n // else - row marked in error\n // TODO how do we handle transactions that have bee canceled because\n // the user did not confirm the action or did not enter the required input\n // The cancelled transaction will have status AppConstants.CONFIRMATION_REQUIRED\n\n const rowStatus = AppConstants.STATUS_COMPLETED === status ? '' : 'error';\n this.rowStatus(key, rowStatus, message);\n }\n\n public activateRow(row: number, scrollIntoView?: boolean): void {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return; // safety\n }\n\n // todo: deal with when the row is greater than the number of rows.\n this.sohoDataGridComponent.activateRow(row);\n }\n\n public activatedRow(): number {\n if (!this.sohoDataGridComponent || !this.sohoDataGridComponent.activatedRow()) {\n return -1;\n }\n const activatedRowResult = this.sohoDataGridComponent.activatedRow();\n return (activatedRowResult instanceof Array) ? activatedRowResult[ 0 ].row : activatedRowResult.row;\n }\n\n public get sohoFilterConditions(): Array {\n return this.sohoDataGridComponent.filterConditions();\n }\n\n public get lmFilterCriteria(): Array {\n return this.getFilterCriteria(this.sohoFilterConditions);\n }\n\n public isModified(): boolean {\n return (this.getDirtyRows().length > 0);\n }\n\n public isRowDirty(dataView: LMDataView) {\n const dirtyDataViews: Array = this.getDirtyRows(true);\n return dirtyDataViews.includes(dataView);\n }\n\n public getDirtyRows(commitEdits: boolean = undefined): Array {\n return this.sohoDataGridComponent.dirtyRows();\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean, data?: Object): void {\n this.sohoDataGridComponent.setDirtyIndicator(row, cell, showDirty, data);\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n public addDataView(inlineCreateDataView: LMDataView, row: number) {\n this.sohoDataGridComponent.addRow(inlineCreateDataView, row);\n }\n\n public removeDataView(row: number) {\n this.setSelectedRows([ row ]);\n this.sohoDataGridComponent.removeSelected();\n }\n\n public removeRow(row: number) {\n this.sohoDataGridComponent.removeRow(row);\n }\n\n public rowStatus(row: number, status: string, tooltip: string) {\n // Need to remove any existing row state, otherwise row\n // status indicator is not changed\n this.sohoDataGridComponent.clearRowError(row);\n this.sohoDataGridComponent.rowStatus(row, status, tooltip);\n if (status === '') {\n this.sohoDataGridComponent.clearDirtyRow(row);\n }\n }\n\n public setActiveCell(row: number, cell: number) {\n this.sohoDataGridComponent.setActiveCell(row, cell);\n }\n\n public updateRow(idx: number, row: any) {\n this.sohoDataGridComponent.updateRow(idx, row);\n }\n\n public setSelectedRows(rows: Array, scrollIntoView?: boolean): void {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return; // safety\n }\n this.sohoDataGridComponent.selectRows(rows);\n }\n\n public unSelectAllRows(): void {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return;\n }\n\n this.sohoDataGridComponent.unSelectAllRows();\n }\n\n public getSelectedRows(): Array {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return [];\n }\n\n const dataGridSelectedRows: SohoDataGridSelectedRow[] = this.sohoDataGridComponent.selectedRows();\n return dataGridSelectedRows.map(dataGridSelectedRow => dataGridSelectedRow.idx);\n }\n\n public getSelectedRow(): number {\n const selectedRows = this.getSelectedRows();\n return selectedRows && selectedRows.length > 0 ? selectedRows[ 0 ] : -1;\n // the code below break matrix when it has more than one row selected\n // the matrix uses the first selected row'd resource id to do a navigation\n // if (selectedRows && selectedRows.length === 1) {\n // return selectedRows[ 0 ];\n // } else {\n // return -1;\n // }\n }\n\n public columnById(id: string) {\n const columns: Array = this.sohoDataGridComponent.columnById(id);\n return (columns.length > 0) ? columns[0] : null;\n }\n\n public commitCellEdit(): void {\n this.sohoDataGridComponent.commitCellEdit();\n }\n\n public clearFilter(): void {\n this.sohoDataGridComponent.clearFilter();\n }\n\n public applyFilter(): void {\n this.sohoDataGridComponent.applyFilter();\n }\n\n private filterCriteriaForRequiredSearchField(filterCriteria: LMFilterFieldCriteria, requiredFieldId: string): boolean {\n if (filterCriteria.fieldId === requiredFieldId) {\n return true;\n }\n\n if (filterCriteria.isCompactFormatField) {\n return (filterCriteria.fieldId.startsWith(requiredFieldId));\n }\n\n return false;\n }\n\n protected validateFilterCriteria(filterCriteria: LMFilterFieldCriteria[]): boolean {\n let isValid = true;\n const requiredFields = [];\n if (filterCriteria && filterCriteria.length > 0 && this.listSpec.busListSpec.requiredSearchParameters) {\n this.listSpec.busListSpec.requiredSearchParameters.forEach(rsp => {\n const requiredField = filterCriteria.find(fc => this.filterCriteriaForRequiredSearchField(fc, rsp.fieldId));\n\n if (!requiredField) {\n isValid = false;\n requiredFields.push(rsp.fieldId);\n }\n });\n }\n\n if (!isValid) {\n const title = Soho.Locale.translate('InvalidSearchParameters');\n let fieldId = requiredFields[0];\n const gridColumn = this.getColumns().find(col => col.fieldId === fieldId && col.isRequiredSearch);\n\n if (gridColumn) {\n fieldId = gridColumn.name;\n }\n\n const message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SearchParameterRequired'), fieldId);\n this.showError(title, message);\n }\n\n return isValid;\n }\n\n protected showError(title: string, message: string) {\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ 'listGridErrorDlg', LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate('Close'), click: (e, modal) => {\n modal.close(true);\n }\n }\n ];\n\n this.sohoMessageService\n .error()\n .message(message)\n .buttons(buttons)\n .title(title)\n .open();\n }\n\n /**\n * Column visibility should be updated before loading data into the grid\n * @param listSpec\n * @param dataViewSet\n */\n protected updateColumnVisibility(listSpec: LMListSpec, dataViewSet: LMDataViewSet) {\n const gridColumns: ListGridColumn[] = this.sohoDataGridComponent.getColumns();\n for (let i = gridColumns.length - 1; i >= 0; i--) {\n const gridColumn: ListGridColumn = gridColumns[ i ];\n const displayField: LMListDisplayField = gridColumn.displayField;\n if (displayField && displayField.columnVisibility) {\n let dataView = dataViewSet.header;\n\n // for template list, framework does NOT put the visibility conditions in the header dataView\n // so we need to use the first targetView in the list.\n if (this.listSpec.isTemplateList) {\n if (dataViewSet.data && dataViewSet.data.length > 0) {\n dataView = dataViewSet.data[ 0 ].dataView;\n }\n }\n\n if (this.lmConditionUtilService.isValid(displayField.columnVisibility, dataView)) {\n this.sohoDataGridComponent.showColumn(gridColumn.id);\n } else {\n this.sohoDataGridComponent.hideColumn(gridColumn.id);\n }\n }\n }\n }\n\n /**\n * Updates the column labels on a datagrid. This must be called before data is loaded into the data\n * grid with the gridOptions.source function. Otherwise the pager bar gets screwed up. Here is the\n * soho ticket for this: https://jira.infor.com/browse/SOHO-6990\n */\n public updateColumnLabels(listSpec: LMListSpec, dataViewSet: LMDataViewSet) {\n const gridColumns: ListGridColumn[] = this.sohoDataGridComponent.getColumns();\n const columnGroups: SohoDataGridColumnGroup[] = this.sohoDataGridComponent.getColumnGroups();\n if (this.lmListUtilService.updateColumnLabels(listSpec, dataViewSet, gridColumns, columnGroups)) {\n // ----------------------------------------------------------\n // only call updateColumns if a column has actually had it's\n // column label changed.\n // ----------------------------------------------------------\n this.sohoDataGridComponent.updateColumns(gridColumns, columnGroups);\n }\n }\n\n protected getSohoConditions(filterCriteriaArray: LMFilterFieldCriteria[]): SohoDataGridFilterCondition[] {\n const gridColumns: ListGridColumn[] = this.sohoDataGridComponent.getColumns() as ListGridColumn[];\n return filterCriteriaArray\n .filter(filterCriteria => !filterCriteria.isKeywordSearch)\n .map(filterCriteria => this.lmListUtilService.buildSohoCondition(filterCriteria, gridColumns))\n .filter(sohoFilterCondition => sohoFilterCondition != null);\n }\n\n // todo move to a service. perhaps lmListUtilService or a FitlerCriteria services somewhere.\n protected getFilterCriteria(conditions: SohoDataGridFilterCondition[]): LMFilterFieldCriteria[] {\n let filterCriteria: LMFilterFieldCriteria[] = [];\n conditions.map((condition) => {\n const columnDef: ListGridColumn = this.sohoDataGridComponent.columnById(condition.columnId)[ 0 ] as ListGridColumn;\n if (!columnDef.displayField.compactFormatByForm) {\n filterCriteria.push(this.lmListUtilService.buildFilterCriteria(condition, columnDef));\n } else {\n filterCriteria = filterCriteria.concat(this.listState.codeBlockFilterCriteria);\n }\n });\n return filterCriteria;\n }\n\n public getSavedColumns(): void {\n const columnString = this.listPersonalization.columns ? JSON.stringify(this.listPersonalization.columns) : undefined;\n\n if (columnString) {\n this.savedColumns = this.sohoDataGridComponent.columnsFromString(columnString) as ListGridColumn[];\n }\n const saveColumnsCount = this.savedColumns ? this.savedColumns.length : 0;\n\n if (saveColumnsCount > 0) {\n if (this.gridOptions.columns.length !== saveColumnsCount) {\n this.savedColumns = [];\n this.lmListEventService.settingsChangedEvent({ columns: this.savedColumns });\n } else {\n for (let i = 0; i < this.gridOptions.columns.length; i++) {\n if (this.gridOptions.columns[i].id !== this.savedColumns[i].id) {\n this.savedColumns = [];\n this.lmListEventService.settingsChangedEvent({ columns: this.savedColumns });\n break;\n }\n }\n }\n }\n }\n\n protected updateFilterBar() {\n // ----------------------------------------------------------------------------\n // apply filter criteria only if the soho-datagrid filter bar is being used.\n // ----------------------------------------------------------------------------\n if (this.listState.filterCriteria && !this.listSpec.busListSpec.searchForm && !this.listSpec.busListSpec.searchFields) {\n const conditions: Array = this.getSohoConditions(this.listState.filterCriteria);\n this.sohoDataGridComponent.setFilterConditions(conditions);\n }\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {LandmarkPanel} from '@form/lm-form.model';\nimport {lmCardViewFormatter} from '@list/formatters/lm-card-view.formatter';\nimport {LMFormatterService} from '@list/formatters/lm-formatter.service';\nimport {LMListCardService} from '@list/services/lm-list-card.service';\nimport {LMDetailSectionBase} from './lm-detail-section-base';\nimport {Observable, Observer, of} from 'rxjs';\nimport {LMUrlUtilService} from '@services/utils';\nimport {LMCtrlShiftClickBaseComponent, LMRefreshRequest} from '@base/index';\nimport {LMComponentInfoService, LMContextService} from '@services/index';\n\n@Component({\n selector: 'lm-detail-section-card',\n template: `
        `,\n styleUrls: ['./lm-detail-section-card.scss']\n})\n\nexport class LMDetailSectionCardComponent extends LMCtrlShiftClickBaseComponent implements LMDetailSectionBase {\n\n @Input() panel: LandmarkPanel;\n\n @Input() needsReload: boolean;\n\n @Input() set fromDataView(dataView) {\n this._fromDataView = dataView;\n this.build();\n }\n get fromDataView() {\n if (this.needsReload) {\n return null;\n }\n return this._fromDataView;\n }\n\n @Input() public set activated(activated: boolean) {\n this._activated = activated;\n this.build();\n }\n public get activated(): boolean {\n return this._activated;\n }\n\n @Output() uiLinkEvent = new EventEmitter();\n @Output() detailSectionDisplayed = new EventEmitter();\n\n public columnInfo: string;\n\n private _fromDataView: LMDataView;\n private _activated = false;\n\n constructor(\n public lmComponentInfoService: LMComponentInfoService,\n public lmContextService: LMContextService,\n private lmFormatterService: LMFormatterService,\n private lmListCardService: LMListCardService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {\n super(lmComponentInfoService);\n }\n\n get type() {\n return 'cardview';\n }\n\n build() {\n if (this.panel && this._fromDataView) {\n this.columnInfo = this.LMCardViewFormatter(0, 0, 0, { displayField: this.panel.displayFields[ 0 ] }, this._fromDataView, null);\n this.detailSectionDisplayed.emit(this);\n }\n }\n\n LMCardViewFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string => lmCardViewFormatter.format(this.lmFormatterService, this.lmListCardService, this.lmUrlUtilService, row, cell, value, columnDef, dataView, dataGrid, 'lm-detail-section-card-container');\n\n isModified(): boolean {\n return false;\n }\n\n saveDetailSectionState() {}\n\n clearDetailSectionState() {\n // noop\n }\n\n save(callBack: Observer) {\n return of(true);\n }\n\n refresh(request: LMRefreshRequest): Observable {\n return of(true); // TODO: Implement Me!\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n let cardviewSpec: LMListDisplayField = {};\n if (this.panel.displayFields && this.panel.displayFields[0].type === 'CardView') {\n cardviewSpec = this.panel.displayFields[ 0 ];\n\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = cardviewSpec ? cardviewSpec.personalization : undefined;\n compConfigInfo['configuration'] = cardviewSpec ? cardviewSpec.configuration : undefined;\n compConfigInfo['configStamp'] = cardviewSpec ? cardviewSpec.configStamp : 0;\n compConfigInfo['classConfigStamp'] = cardviewSpec ? cardviewSpec.classConfigStamp : 0;\n\n if (cardviewSpec.type === 'CardView') {\n cardviewSpec['componentType'] = 'CARDVIEW';\n }\n cardviewSpec['configInfo'] = compConfigInfo;\n\n const formInfo: LMComponentInfo = {\n componentType: 'CARDVIEW',\n name: cardviewSpec ? cardviewSpec.id : undefined,\n cardviewSpec,\n hasConfigAccess: false,\n type: 'card'\n };\n\n return formInfo;\n }\n }\n}\n","import {AfterViewChecked, Component, EventEmitter, Input, Output, ViewChild} from '@angular/core';\nimport {LMDetailSectionBase} from './lm-detail-section-base';\nimport {LandmarkPanel} from '@form/lm-form.model';\nimport {LMDashboardViewComponent} from '@dashboard/lm-dashboard-view.component';\nimport {Observable, Observer, of} from 'rxjs';\nimport {LMPanelTransactionEvent, LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-detail-section-dashboard',\n template: `\n \n \n \n \n \n \n `\n})\nexport class LMDetailSectionDashBoardComponent implements LMDetailSectionBase, AfterViewChecked {\n @ViewChild('lmDashBoardComponent') lmDashBoardComponent: LMDashboardViewComponent;\n\n @Output() detailSectionDisplayed = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() uiLinkEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n @Input() public activated: boolean;\n @Input() public panels: Array = null;\n @Input() public columns: 3 | 4 = 3;\n @Input() public set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n public get fromDataView(): LMDataView {\n if (this.needsReload) {\n return null;\n }\n return this._fromDataView;\n }\n\n @Input() needsReload: boolean;\n @Input() useTwelveColumnGrid = false;\n\n private _fromDataView: LMDataView = null;\n private _refreshDashboard = false;\n\n constructor() { }\n\n get type() {\n return 'dashboard';\n }\n\n ngAfterViewChecked(): void {\n if (this._refreshDashboard && this.lmDashBoardComponent) {\n this._refreshDashboard = false;\n this.lmDashBoardComponent.refreshHomepage(false);\n }\n }\n\n public refreshDashboard() {\n this._refreshDashboard = true;\n }\n\n isModified(): boolean {\n return false;\n }\n\n saveDetailSectionState() {\n if (this.lmDashBoardComponent) {\n this.lmDashBoardComponent.saveDashboardViewState();\n }\n }\n\n clearDetailSectionState() {\n if (this.lmDashBoardComponent) {\n this.lmDashBoardComponent.clearDashboardViewState();\n }\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onDashboardContentDisplayed(event) {\n this.detailSectionDisplayed.emit(event);\n }\n\n onUILinkEvent(event: any) {\n this.uiLinkEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n\n refresh(request?: LMRefreshRequest): Observable {\n if (this.lmDashBoardComponent) {\n return this.lmDashBoardComponent.refresh(request);\n } else {\n return of(true);\n }\n }\n}\n","import {Component, EventEmitter, forwardRef, Input, Output, ViewChild} from '@angular/core';\nimport {LMDetailSectionBase} from './lm-detail-section-base';\nimport {LMFormTransactionEvent} from '@form/lm-form.component';\nimport {Observable, Observer, of} from 'rxjs';\nimport {LMUrlInfoBuilderService} from '@services/lm-url-info-builder.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\n@Component({\n selector: 'lm-detail-section-form',\n template:\n ``\n})\nexport class LMDetailSectionFormComponent implements LMDetailSectionBase {\n @ViewChild(forwardRef(() => 'lmFormComponent')) lmFormComponent; // : LMFormComponent;\n\n @Input() set formSpec(formSpec: LMFormSpec) {\n this._formSpec = formSpec;\n // todo: set this value on the server.\n this._formSpec.isReadOnly = true;\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(formSpec);\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n }\n\n @Input() needsReload: boolean;\n\n @Input() set activated(activated: boolean) {\n this._activated = activated;\n }\n\n @Output() detailSectionDisplayed = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n\n private _activated;\n // todo: can remove once readOnly is placed into the formSpec on the server.\n private _formSpec: LMFormSpec = null;\n private _fromDataView: LMDataView = null;\n\n public formUrlInfo: LMFormUrlInfo;\n\n constructor(\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService\n ) {}\n\n get activated() {\n return this._activated;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload) {\n return null;\n }\n return this._fromDataView;\n }\n\n onFormDisplayed(formComponent: any) {\n this.detailSectionDisplayed.emit(this);\n }\n\n onFormTransactionEvent(event: LMFormTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n get formSpec(): LMFormSpec {\n return this._formSpec;\n }\n\n get type() {\n return 'standardform';\n }\n\n isModified(): boolean {\n return false;\n }\n\n saveDetailSectionState() { // TODO: Doesn't make sense to have a state on a detail section form\n if (this.lmFormComponent) {\n this.lmFormComponent.saveComponentState(true);\n }\n }\n\n clearDetailSectionState() { // TODO: Doesn't make sense to have a state on a detail section form\n if (this.lmFormComponent) {\n this.lmFormComponent.clearComponentState(true);\n }\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n\n public refresh(request: LMRefreshRequest): Observable {\n return new Observable(observer => {\n if (this.lmFormComponent) {\n this.lmFormComponent.runRefresh(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n LMCubeDetailSectionPVPeriodEvent,\n LMListDragDropEvent,\n LMListSelectionEvent,\n LMListTransactionEvent\n} from './lm-list.component';\nimport { LMDetailSectionBase } from './lm-detail-section-base';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable, Observer, of } from 'rxjs';\nimport { SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMContextService , LMUrlInfoBuilderService} from '@services/index';\nimport { LMRefreshRequest } from '@app/components';\n\n@Component({\n selector: 'lm-detail-section-list',\n templateUrl: './lm-detail-section-list.component.html',\n styleUrls: [ './lm-detail-section-list.component.scss' ],\n})\nexport class LMDetailSectionListComponent implements LMDetailSectionBase, AfterViewInit, OnDestroy, OnInit {\n @HostBinding('attr.id') get classes() {\n return this.detailSectionId;\n };\n\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(forwardRef(() => 'filterListComponent')) lmFilterListComponent; // : LMListComponent;\n @ViewChild(forwardRef(() => 'listComponent')) lmListComponent; // : LMListComponent;\n\n // --------------------------------------------\n // INPUTS\n // --------------------------------------------\n @Input()\n set panel(panel: LandmarkPanel) {\n this._panel = panel;\n\n let targetListAdditionalUrlFields: string[] = [];\n\n if (panel.filterListSpecs && panel.filterListSpecs.length > 0) {\n if (panel.filterListSpecs.length !== 1) {\n throw 'LMDetailSectionListComponent: only a single filter list is supported';\n }\n\n const filterListSpec = panel.filterListSpecs[ 0 ];\n\n // ------------------------------------------------------------------------\n // target list needs teh LMFilterListSpec.fieldId (i.e. the thing in the\n // filter-list used to match with the target-list).\n // ------------------------------------------------------------------------\n const filterListAdditionalUrlFields = filterListSpec.filterUsing.map(filterUsing => filterUsing.value.fieldId);\n if (filterListSpec.groupLabel) {\n filterListAdditionalUrlFields.push(filterListSpec.groupLabel.fieldId);\n }\n\n this.filterListSpec = filterListSpec;\n this.filterListUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(\n filterListSpec, { additionalFieldIds: filterListAdditionalUrlFields });\n\n // ------------------------------------------------------------------------\n // target list needs teh LMFilterListSpec.value.fieldId (i.e. the thing\n // you are matching on the in the target-list).\n // ------------------------------------------------------------------------\n targetListAdditionalUrlFields = filterListSpec.filterUsing.map(filterUsing => filterUsing.fieldId);\n }\n\n this.listSpec = panel.listSpec;\n this.listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(\n panel.listSpec, { additionalFieldIds: targetListAdditionalUrlFields });\n\n this.buildDetailSectionId(this.panel); // build the id once the panel comes in\n }\n\n get panel(): LandmarkPanel {\n return this._panel;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n\n // ------------------------------------------------------------------------\n // reset the filter criteria when the from dataView has changed. This will\n // prevent a bad combination between the valid filter list values and the\n // fromDataView.\n // ------------------------------------------------------------------------\n this.updatedHasFilterListFlag();\n if (this.hasFilterList) {\n this.filterListFilterCriteria = null;\n if (this.filterListSpec.implementsDragAndDrop) {\n this.implementsDragAndDrop = true;\n }\n }\n }\n\n @Input() needsReload: boolean;\n @Input() activated: boolean;\n // private _activated = false;\n // @Input() set activated(activated: boolean) {\n // this._activated = activated;\n // }\n // get activated() {\n // return this._activated;\n // }\n\n // --------------------------------------------\n // OUTPUTS\n // --------------------------------------------\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() detailSectionDisplayed = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n @Output() cubeDetailSectionPVPeriodEvent = new EventEmitter();\n\n // --------------------------------------------\n // VARIABLES\n // --------------------------------------------\n private _fromDataView: LMDataView = null;\n private _panel: LandmarkPanel = null;\n private detailSectionId: string = null;\n private listDetail: any;\n readonly instanceId: string;\n\n public testVersion1: boolean;\n\n public listUrlInfo: LMListUrlInfo;\n public listSpec: LMListSpec;\n\n public filterListUrlInfo: LMListUrlInfo;\n public filterListSpec: LMFilterListSpec;\n public hasFilterList = false;\n public implementsDragAndDrop = false;\n public filterListFilterCriteria: { filterDataView: LMDataView, filterCriteria: LMFilterFieldCriteria[] };\n public uiLoadingIndicatorTimeout = 0;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private lmConditionUtilService: LMConditionUtilService,\n private lmContextService: LMContextService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmLoggerService: LMLoggerService,\n private lmBusyIndicatorService: LMBusyIndicatorService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n }\n\n ngOnDestroy() {\n if (this.listDetail) {\n this.listDetail.destroy();\n }\n }\n\n // --------------------------------------------\n // GETTERS\n // --------------------------------------------\n // get listSpec(): LMListSpec {\n // return this.panel.listSpec;\n // }\n //\n get fromDataView(): LMDataView {\n if (this.needsReload || (this._fromDataView && this._fromDataView.isNewRow)) {\n return null;\n }\n return this._fromDataView;\n }\n\n get type() {\n return 'list';\n }\n\n private updatedHasFilterListFlag(): boolean {\n if (!this.panel.filterListSpecs || this.panel.filterListSpecs.length === 0) {\n this.hasFilterList = false;\n return;\n }\n\n this.hasFilterList = this.lmConditionUtilService.isValid(this.panel.filterListSpecs[ 0 ].validity, this.fromDataView);\n }\n\n // get filterListSpec(): LMFilterListSpec {\n // return this.panel.filterListSpecs[ 0 ];\n // }\n\n // --------------------------------------------\n // EVENT HANDLERS\n // --------------------------------------------\n onFilterListRowSelected(event: LMListSelectionEvent): void {\n if (!this.lmFilterListComponent) {\n this.lmListComponent.disabled = true;\n return;\n }\n\n const selectedRow = this.lmFilterListComponent.getSelectedRow();\n if (selectedRow === undefined || selectedRow === -1) {\n this.lmListComponent.disabled = true;\n return;\n }\n\n const filterListDataView = this.lmFilterListComponent.getDataView(selectedRow);\n if (!filterListDataView) {\n this.lmListComponent.disabled = true;\n return;\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'Filter List Index Selected ' + event.selectedRows[ 0 ].idx + ', building filter criteria' ]);\n\n // call in a timeout since soho event is outside an angular zone\n setTimeout(() => this.buildFilterListCriteria(filterListDataView), 1);\n }\n\n onFilterListDisplayed(event: any) {\n if (this.hasFilterList) {\n if (this.lmFilterListComponent.getDataViewSet().data.length === 0) {\n // ---------------------------------------------------------------------\n // causes any data in the filter-lists target list to be cleared.\n // ---------------------------------------------------------------------\n this.filterListFilterCriteria = null;\n }\n }\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onListTransactionEvent(event: LMListTransactionEvent) {\n // Do not refresh filter list itself, let its parent send the update event\n // if (this.lmFilterListComponent) {\n // this.lmFilterListComponent.refresh().subscribe(result => {\n // });\n // }\n this.panelDataUpdated.emit(event);\n }\n\n onBusyIndicatorDisplayed(event: LMBusyIndicatorDisplayedEvent) {\n if (event.show && !this.sohoBusyIndicator.isActive()) {\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n } else if (!event.show && this.sohoBusyIndicator.isActive()) {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n }\n\n onContentModified(event: LMListFieldChangedEvent) {\n this.contentModified.emit(event);\n }\n\n onUpdateToolbarStateEvent(event: any) {\n this.updateToolbarStateEvent.emit();\n }\n\n onListDisplayed(event: any) {\n this.detailSectionDisplayed.emit(event);\n\n if (this.hasFilterList) {\n const $detailSectionPanel = $('#' + this.detailSectionId + ' .list-detail');\n\n // only initialize once.\n if (!this.listDetail) {\n const listElement = '#' + this.detailSectionId + ' .accordion';\n const detailElement = '#' + this.detailSectionId + ' .filterlist-content-area';\n const backElement = '#' + this.detailSectionId + ' .list-detail-back-button';\n const listCloseElement = '#' + this.detailSectionId + ' .list-detail-list-close-button';\n\n this.listDetail = $detailSectionPanel.listdetail({\n listElement,\n detailElement,\n backElement,\n listCloseElement,\n edgeBleed: true,\n edgeBleedBreakpoint: 'tablet'\n }).data('listdetail');\n }\n }\n }\n\n onCubeDetailSectionPVPeriodEvent(event: LMCubeDetailSectionPVPeriodEvent) {\n this.cubeDetailSectionPVPeriodEvent.emit(event);\n }\n\n // --------------------------------------------\n // PRIVATE FUNCTIONS\n // --------------------------------------------\n private buildFilterListCriteria(selectedDataView: LMDataView) {\n if (this.filterListFilterCriteria && this.filterListFilterCriteria.filterDataView.resourceId === selectedDataView.resourceId) {\n // if the dataView for the fitlerListCriteria hasn't change then don't\n // build a new filterListFilterCriteria object so the filter list target\n // doesn't load more than it has to.\n return;\n }\n\n const filterCriteria: LMFilterFieldCriteria[] = this.filterListSpec.filterUsing.map(filterUsing => {\n const filterFieldCriteria: LMFilterFieldCriteria = {\n operator: 'equals',\n fieldId: filterUsing.fieldId,\n value: selectedDataView.fields[ filterUsing.value.fieldId ].value.toString()\n };\n return filterFieldCriteria;\n });\n\n this.filterListFilterCriteria = {\n filterDataView: selectedDataView,\n filterCriteria\n }\n }\n\n // --------------------------------------------\n // INFRASTRUCTURE\n // --------------------------------------------\n isModified(): boolean {\n if (!this.lmListComponent) {\n return false;\n }\n\n return this.lmListComponent.isModified();\n }\n\n refresh(request: LMRefreshRequest): Observable {\n if (this.hasFilterList && this.lmFilterListComponent) {\n return this.lmFilterListComponent.refresh(request);\n }\n\n if (this.lmListComponent?.listId !== request?.originatingSourceId) {\n // console.log('list-detail-section refresh: ' + this.lmListComponent?.listSpec.busListSpec.name);\n return this.lmListComponent.refresh(request);\n } else {\n // console.log('list-detail-section refresh canceled: ' + this.lmListComponent?.listSpec.busListSpec.name);\n return of(true);\n }\n }\n\n // private _refreshList(request: LMRefreshRequest): Observable {\n // if (this.lmListComponent?.listId !== request?.originatingSourceId) {\n // console.log('list-detail-section refresh: ' + this.lmListComponent?.listSpec.busListSpec.name);\n // return this.lmListComponent.refresh(request);\n // } else {\n // console.log('list-detail-section refresh canceled: ' + this.lmListComponent?.listSpec.busListSpec.name);\n // return of(true);\n // }\n // }\n\n save(callBack: Observer) {\n this.lmListComponent.runSaveAction(AppConstants.STANDARD_SAVE, callBack);\n }\n\n saveDetailSectionState() {\n if (this.lmFilterListComponent) {\n this.lmFilterListComponent.saveComponentState()\n }\n if (this.lmListComponent) {\n this.lmListComponent.saveComponentState();\n }\n }\n\n onListDragDropEvent(event: LMListDragDropEvent) {\n if (this.lmFilterListComponent) {\n const rows: Array = (event.row) || event.row === 0 ? [ event.row ] : this.lmListComponent.getSelectedRows();\n this.lmListComponent.runInstanceAction(this.filterListSpec.dragAndDrop.actionSpec, this.lmListComponent.getDataViewSet(), rows, null,\n null, this.filterListSpec.dragAndDrop.actionFieldMap, this.lmFilterListComponent.getDataView(event.filterRow));\n }\n }\n\n private buildDetailSectionId(panel: LandmarkPanel) {\n this.detailSectionId = panel.id + '_panel';\n }\n\n clearDetailSectionState() {\n if (this.lmFilterListComponent) {\n this.lmFilterListComponent.clearComponentState()\n }\n if (this.lmListComponent) {\n this.lmListComponent.clearComponentState();\n }\n }\n}\n","\n\n \n\n\n\n\n
        \n
        \n \n\n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n\n\n\n
        \n \n
        \n
        \n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChildren,\n} from '@angular/core';\nimport {AppConstants, LMConditionUtilService} from '@utils/index';\nimport {LMListComponent, LMListTransactionEvent} from './lm-list.component';\nimport {forkJoin, Observable, Observer} from 'rxjs';\nimport {LMDetailSectionBase} from './lm-detail-section-base';\nimport {LandmarkPanel, LMFormComponent} from '@form/index'\nimport {LMContextService, LMLoggerService, LMUrlInfoBuilderService} from '@services/index';\nimport {LMRefreshRequest} from '@app/components';\n\ninterface MultiListSectionDefinition {\n spec: LMListSpec | LMFormSpec,\n visibility: LMCondition,\n hidden: boolean,\n url: LMListUrlInfo | LMFormUrlInfo,\n type: 'list' | 'form'\n}\n\n@Component({\n selector: 'lm-detail-section-multilist',\n templateUrl: 'lm-detail-section-multilist.component.html',\n})\n\nexport class LMDetailSectionMultiListComponent implements LMDetailSectionBase, AfterViewInit, AfterViewChecked, OnDestroy, OnInit {\n @HostBinding('attr.id') get id() {\n return this.testVersion1 ? this.detailSectionId : null;\n };\n\n @ViewChildren('LMListComponent') listComponents: QueryList;\n @ViewChildren('LMFormComponent') formComponents: QueryList;\n\n // --------------------------------------------\n // INPUTS\n // --------------------------------------------\n @Input()\n set panel(panel: LandmarkPanel) {\n this._panel = panel;\n\n /* build the id once the panel comes in */\n this.buildDetailSectionId(this.panel);\n\n this._updateVisibility = !!this.fromDataView;\n }\n\n get panel(): LandmarkPanel {\n return this._panel;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n\n this._updateVisibility = !!this.panel;\n }\n\n @Input() needsReload: boolean;\n\n @Input() set activated(activated: boolean) {\n this._activated = activated;\n }\n\n // --------------------------------------------\n // OUTPUTS\n // --------------------------------------------\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() detailSectionDisplayed = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n\n // --------------------------------------------\n // VARIABLES\n // --------------------------------------------\n public sectionDefinitions: Array = [];\n private _activated = false;\n private _fromDataView: LMDataView = null;\n private _panel: LandmarkPanel = null;\n private detailSectionId: string = null;\n private listDetail: any;\n private _updateVisibility = false;\n readonly instanceId: string;\n public testVersion1: boolean;\n\n public formOptions: LMFormOptions = {\n isReadOnlyForm: true,\n isMultiSelectContent: true\n }\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private lmConditionUtilService: LMConditionUtilService,\n private lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n\n this.panel.sections.forEach((multiList: LMMultiListSectionSpec) => {\n if (multiList.hasOwnProperty('listSpec')) {\n this.sectionDefinitions.push({\n url: this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(multiList.listSpec),\n spec: multiList.listSpec,\n visibility: multiList.visibility,\n hidden: false,\n type: 'list'\n });\n } else if (multiList.hasOwnProperty('formSpec')) {\n this.sectionDefinitions.push({\n spec: multiList.formSpec,\n url: this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(multiList.formSpec),\n visibility: multiList.visibility,\n hidden: false,\n type: 'form'\n })\n }\n });\n }\n\n ngAfterViewChecked(): void {\n if (this._updateVisibility) {\n this._updateVisibility = false;\n this.updateSectionVisibility();\n }\n }\n\n ngOnDestroy() {\n if (this.listDetail) {\n this.listDetail.destroy();\n }\n }\n\n // --------------------------------------------\n // GETTERS\n // --------------------------------------------\n get listSpec(): LMListSpec {\n return this.panel.listSpec;\n }\n\n get activated() {\n return this._activated;\n }\n\n get fromDataView(): LMDataView {\n if (this.needsReload) {\n return null;\n }\n return this._fromDataView;\n }\n\n get type() {\n return 'list';\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onListTransactionEvent(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n onContentModified(event: LMListFieldChangedEvent) {\n this.contentModified.emit(event);\n }\n\n onUpdateToolbarStateEvent(event: any) {\n this.updateToolbarStateEvent.emit(event);\n }\n\n onSectionDisplayed(event: any) {\n this.detailSectionDisplayed.emit(event);\n }\n\n // --------------------------------------------\n // INFRASTRUCTURE\n // --------------------------------------------\n isModified(): boolean {\n // don't need to check for modified forms, they will always be read only\n if (!this.listComponents) {\n return false;\n }\n\n return this.listComponents.filter((list) => list.isModified()).length > 0;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n const refreshCalls: Observable[] = this.listComponents.toArray().filter(list => list.listId !== request?.originatingSourceId)\n .map((list: LMListComponent) => list.refresh());\n\n // console.log('multilist to be refresh:' + refreshCalls.length);\n\n forkJoin(refreshCalls).subscribe(value => {\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n save(callBack: Observer) {\n // forms are read only, so don't need to save any changes\n this.listComponents.forEach((list) => list.runSaveAction(AppConstants.STANDARD_SAVE, callBack));\n }\n\n saveDetailSectionState() {\n // forms are read only, so don't need to save any changes\n if (this.listComponents) {\n this.listComponents.forEach((list) => list.saveComponentState());\n }\n }\n\n /**\n * no longer used for testVersion V2 and above.\n */\n private buildDetailSectionId(panel: LandmarkPanel) {\n this.detailSectionId = panel.id + '_panel';\n }\n\n clearDetailSectionState() {\n if (this.listComponents) {\n this.listComponents.forEach((list: LMListComponent) => list.clearComponentState());\n }\n if (this.formComponents) {\n this. formComponents.forEach((form: LMFormComponent) => form.clearComponentState());\n }\n }\n\n private updateSectionVisibility() {\n this.sectionDefinitions.forEach((section: MultiListSectionDefinition) => {\n section.hidden = (section.visibility && this.fromDataView) ? !this.lmConditionUtilService.isValid([section.visibility], this.fromDataView) : false;\n })\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Observable, Observer, of } from 'rxjs';\nimport { LMRefreshRequest, LMDetailSectionBase } from '@app/components';\n\n@Component({\n selector: 'lm-detail-section-notfound',\n template: `\n
        \n

        {{'UnsupportedListDetailSectionType' | translate}}

        \n
        \n `\n})\nexport class LMDetailSectionNotFoundComponent implements LMDetailSectionBase {\n @Input()\n set activated(activated: boolean) {\n this._activated = activated;\n }\n\n get activated() {\n this.detailSectionDisplayed.emit(this);\n return this._activated;\n }\n\n @Output() detailSectionDisplayed = new EventEmitter();\n\n private _activated;\n\n needsReload: boolean;\n fromDataView: LMDataView;\n type: string;\n\n constructor() {}\n\n isModified(): boolean {\n return false;\n }\n\n saveDetailSectionState() {\n // noop\n }\n\n clearDetailSectionState() {\n // noop\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n\n refresh(request: LMRefreshRequest): Observable {\n return of(true);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { LMDetailSectionBase } from './lm-detail-section-base';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { LMFieldOptionsToolbarService } from '@field/services';\nimport { Observable, Observer, of } from 'rxjs';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMListTransactionEvent } from './lm-list.component';\nimport { LMContextService } from '@services/lm-context.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMRefreshRequest } from '@app/components';\n\n@Component({\n selector: 'lm-detail-section-url',\n template: `\n
        \n \n
        \n `,\n providers: [ LMFormService, LMFormManualRepService, LMFieldOptionsToolbarService ]\n})\nexport class LMDetailSectionUrlComponent implements LMDetailSectionBase, OnInit {\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent: LMHtmlUrlDocComponent;\n\n // todo change this to be @Input() panel: LandmarkPanel; and call\n // this.setUrl() in ngOnInit.\n // The panel should be set before ngOnInit is called and should not\n // change once the component is constructed.\n @Input() set panel(panel: LandmarkPanel) {\n this._panel = panel;\n this.setUrl();\n }\n get panel(): LandmarkPanel {\n return this._panel;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this.setUrl();\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n @Input() needsReload: boolean;\n @Output() detailSectionDisplayed = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n @Input() public activated: boolean;\n\n // todo: can remove once readOnly is placed into the formSpec on the server.\n public url: string = undefined;\n\n private _fromDataView: LMDataView = null;\n private _panel: LandmarkPanel = null;\n\n public testVersion1: boolean;\n type: string;\n\n constructor(\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService\n ) {}\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n setUrl() {\n if (!this._panel || !this._fromDataView) {\n return;\n }\n\n this.url = this.lmFormatUtilService.formatMessageRule(this._panel.url, this._fromDataView);\n }\n\n onLandmarkCustomReady(event: any) {\n if (!this.htmlDocComponent) {\n return;\n }\n\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n\n onLandmarkApiLoaded(event: any) {\n }\n\n onHtmlUrlDisplayed(event: any) {\n this.detailSectionDisplayed.emit(this);\n }\n\n onNotifyUrlTransactionComplete(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n isModified(): boolean {\n return false;\n }\n\n saveDetailSectionState() {\n // noop\n }\n\n clearDetailSectionState() {\n // noop\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n\n\n refresh(request: LMRefreshRequest): Observable { // TODO: Implement Me! Landmark api method telling the content to refresh?\n return of(true);\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n OnInit,\n} from '@angular/core';\nimport { SohoTabsComponent } from 'ids-enterprise-ng';\nimport { LMDetailSectionBase } from './lm-detail-section-base';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMWorker } from '../../types/lm-worker';\nimport { LMContextService } from '@services/index';\nimport { LMCubeDetailSectionPVPeriodEvent, LMListTransactionEvent } from './lm-list.component';\nimport { Observable } from 'rxjs';\nimport { LMDetailSectionDashBoardComponent } from './lm-detail-section-dashboard.component';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMRefreshRequest } from '@app/components';\n\nexport class LMDetailSectionsSaveWorker extends LMWorker {\n readonly detailSections: LMDetailSectionBase[];\n\n constructor(detailSections: LMDetailSectionBase[]) {\n super();\n\n this.detailSections = detailSections;\n }\n\n protected has(i: number): boolean {\n return (i < this.detailSections.length);\n }\n\n protected get(i: number): LMDetailSectionBase {\n return this.detailSections[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const detailSection = this.detailSections[ i ];\n if (detailSection) {\n detailSection.save(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-detail-sections',\n templateUrl: './lm-detail-sections.component.html',\n styleUrls: [ 'lm-detail-sections.component.scss' ]\n})\nexport class LMDetailSectionsComponent implements AfterViewChecked, OnDestroy, OnInit {\n @Input() detailSectionPanels: Array;\n @Input() public detailSectionIdPrefix: string;\n @Input() public detailSectionAutomationIdPrefix: string;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this.m_fromDataView = fromDataView;\n this.build();\n }\n get fromDataView(): LMDataView {\n return this.m_fromDataView;\n }\n\n @Input() hideTabs = false;\n @Input() isCardListDetailSections = false;\n @Input() listState: LMListState = {};\n @Input() showSinglePanelTab = false;\n\n @ViewChildren('detailListComponent') detailListComponents: QueryList;\n @ViewChild('sohoTabsComponent') sohoTabsComponent: SohoTabsComponent;\n\n @Output() panelContentDisplayed = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n @Output() uiLinkEvent = new EventEmitter();\n @Output() cubeDetailSectionPVPeriodEvent = new EventEmitter();\n /**\n * Using null to determine if fromDataView is set or not.\n * Each detail section component needs to handle a null `fromDataView`\n * by disabling itself and removing its current data.\n */\n private m_fromDataView: LMDataView | null = null;\n private m_componentDestroyed = false;\n private activateSinglePanel = false;\n private runHandleResize = false;\n\n public visiblePanels: Array;\n public initialBuildComplete = false;\n public testVersion1: boolean;\n public detailSectionAttributes: SohoAttributesArray = [];\n public uiLoadingIndicatorTimeout = 0;\n\n public readonly tabIdSuffix = AppConstants.ELEMENT_ID_SUFFIX_DETAIL_SECTION_TAB;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n ) {\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.detailSectionAttributes.push({ name: 'data-automation-id', value: 'lm-' + this.detailSectionAutomationIdPrefix + '-tabset' });\n if (!this.testVersion1) {\n this.detailSectionAttributes.push({ name: 'id', value: this.detailSectionIdPrefix + AppConstants.ELEMENT_ID_SUFFIX_DETAIL_SECTION_TABSET });\n }\n\n this.build();\n }\n\n ngAfterViewChecked() {\n if (this.activateSinglePanel) {\n // todo uncomment this and this.getVisiblePanelIndex() for april CU\n // const panelIndex = this.getVisiblePanelIndex();\n\n let panelIndex = 0;\n for (let i = 0; i < this.detailSectionPanels.length; i++) {\n const panel: LandmarkPanel = this.detailSectionPanels[ i ];\n if (!panel.hidden) {\n panelIndex = i;\n }\n }\n this.activateSinglePanel = false;\n setTimeout(() => this.activatePanel(panelIndex), 1);\n return;\n }\n\n if (this.runHandleResize) {\n if (this.useSohoTabsComponent) {\n setTimeout(() => this.sohoTabsComponent.handleResize());\n }\n this.runHandleResize = false;\n }\n }\n\n // todo uncomment this and use it above in ngAfterViewChecked,\n // consider placing this into a service where it can be tested\n // private getVisiblePanelIndex(): number {\n // const panelIndex = this.detailSectionPanels.findIndex(panel => !panel.hidden);\n // return panelIndex > -1 ? panelIndex : 0;\n // }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n }\n\n private build() {\n if (this.hasPanels && this.fromDataView) {\n this.updateTabVisibility();\n this.checkSinglePanel();\n this.updateDetailSections();\n\n if (!this.initialBuildComplete) {\n this.initialBuildComplete = true;\n } else {\n this.runHandleResize = true;\n }\n }\n }\n\n onTabActivated(event: SohoTabsEvent) {\n setTimeout(() => {\n const panelIndex = event.tab ? this.getTabIndex(event.tab) : this.activePanelIndex;\n this.activatePanel(panelIndex);\n }, 1);\n }\n\n onPanelDataUpdated(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n onDashboardContentDisplayed(event) {\n this.panelContentDisplayed.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onContentModified(event: LMListFieldChangedEvent) {\n this.contentModified.emit(event);\n }\n\n onDetailSectionDisplayed(event: any) {\n // this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n\n onUILinkEvent(event: any) {\n this.uiLinkEvent.emit(event);\n }\n\n onCubeDetailSectionPVPeriodEvent(event: LMCubeDetailSectionPVPeriodEvent) {\n this.cubeDetailSectionPVPeriodEvent.emit(event);\n }\n\n trackById(index: number, panel: LandmarkPanel): string {\n return panel.id;\n }\n\n get hasPanels(): boolean {\n if (this.detailSectionPanels) {\n return this.detailSectionPanels.some(panel => !panel.hidden && panel.isValid);\n }\n\n return false;\n }\n\n get useSohoTabsComponent() {\n if (this.showSinglePanelTab) {\n return true;\n }\n\n this.visiblePanels = this.detailSectionPanels.filter (panel => !panel.hidden && panel.isValid);\n return this.visiblePanels.length > 1;\n }\n\n public isModified(): boolean {\n return this.detailListComponents.toArray().some(detailSectionComponent =>\n detailSectionComponent.isModified())\n }\n\n private activatePanel(panelIndex: number) {\n if (this.detailSectionPanels[panelIndex].hidden) {\n // safety - sometimes the timeouts allow for index of 0 to be activated event when it's hidden.\n // this is most notably an issue with soho-tabs where init'ing the tabs.js component causes an\n // activated event of tab '0' before any user input.\n return;\n }\n\n this.listState.selectedTabIndex = panelIndex;\n\n const detailSectionPanel = this.detailSectionPanels[panelIndex];\n if (!detailSectionPanel.activated) {\n detailSectionPanel.activated = true;\n } else if (detailSectionPanel.needsReload) {\n detailSectionPanel.needsReload = false;\n }\n\n if (detailSectionPanel.type === 'dashboard') {\n const detailDashboard = this.detailListComponents.toArray()[panelIndex] as LMDetailSectionDashBoardComponent;\n detailDashboard.refreshDashboard();\n }\n }\n\n private getTabIndex(tab: HTMLElement): number {\n return Number(tab.dataset.index);\n }\n\n private get activePanelIndex() {\n if (!this.useSohoTabsComponent) {\n return 0;\n }\n\n return this.listState.selectedTabIndex;\n }\n\n private updateDetailSections(): void {\n if (!this.hasPanels) {\n return; // safety\n }\n\n const index = this.activePanelIndex; // returns 0 if not useSohoTabsComponent === false\n\n // if (index === -1) {\n // this.markTabsForReload(index);\n // return;\n // }\n\n this.detailSectionPanels[ index ].fromDataView = this.fromDataView;\n if (this.useSohoTabsComponent) {\n this.markTabsForReload(index);\n }\n }\n\n private checkSinglePanel() {\n if (!this.fromDataView || !this.hasPanels) {\n return;\n }\n\n if (!this.useSohoTabsComponent) {\n this.activateSinglePanel = true;\n }\n }\n\n private markTabsForReload(selectedIndex: any) {\n this.detailSectionPanels\n .filter((panel, index) => index !== selectedIndex)\n .forEach(panel => panel.needsReload = panel.activated);\n }\n\n private updateTabVisibility() {\n if (!this.hasPanels || !this.fromDataView) {\n return;\n }\n\n // DPB List does this work\n // this.detailSectionPanels.forEach((panel: LandmarkPanel) =>\n // panel.hidden = (panel.visibility && this.fromDataView) ? !this.lmConditionUtilService.isValid(panel.visibility, this.fromDataView) : false);\n\n if (this.listState.selectedTabIndex === undefined) {\n this.listState.selectedTabIndex = 0;\n }\n\n if (this.listState.selectedTabIndex > this.detailSectionPanels.length - 1) {\n this.listState.selectedTabIndex = 0; // safety\n }\n\n const currentPanel = this.detailSectionPanels[this.listState.selectedTabIndex];\n if (currentPanel.hidden || !currentPanel.isValid ) {\n const nearestPanel = this.findNearestVisibleValidPanel(this.listState.selectedTabIndex);\n if (nearestPanel) {\n if (!this.initialBuildComplete) {\n // ------------------------------------------------------------------------------------\n // if initial build then use template variables to pass in the selection. Otherwise\n // we get a scrollIntoView that causes the screen to get hosed up when detail\n // sections are used with a card list in mobile view. See LMCLIENT-22363 for details\n // ------------------------------------------------------------------------------------\n this.detailSectionPanels.forEach(panel => panel.selected = false);\n nearestPanel.selected = true;\n } else {\n if (this.useSohoTabsComponent) {\n // todo ppatton claudenbach - concern about setting activated = false. This may\n // causes slight performance degradation due to the datagrid being deconstructed.\n // See LMCLIENT-31795 for details and TCLMRK-4392 for automated testing.\n nearestPanel.activated = false;\n\n setTimeout(() => this.sohoTabsComponent.select('#' + nearestPanel.id));\n }\n }\n }\n }\n }\n\n findNearestVisibleValidPanel(selectedIndex: number): LandmarkPanel {\n\n for (let i = selectedIndex; i > -1; i--) {\n const panel = this.detailSectionPanels[i];\n if (!panel.hidden && panel.isValid) {\n return panel;\n }\n }\n\n for (let i = selectedIndex, length = this.detailSectionPanels.length; i < length; i++) {\n const panel = this.detailSectionPanels[i];\n if (!panel.hidden && panel.isValid) {\n return panel;\n }\n }\n\n return null;\n }\n\n refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n const detailListComponentsArray = this.detailListComponents.toArray();\n const detailSection = detailListComponentsArray[ this.activePanelIndex ];\n\n if (detailSection) {\n detailSection.refresh(request).subscribe(() => {\n if (this.useSohoTabsComponent) {\n this.markTabsForReload(this.activePanelIndex);\n }\n observer.next(true);\n observer.complete();\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n runSaveAction(): Observable {\n const detailListComponentsArray = this.detailListComponents.toArray();\n const modifiedDetailSections = detailListComponentsArray.filter(detailSectionComponent => detailSectionComponent.isModified());\n\n return new Observable(observer => {\n this.lmBusyIndicatorService.showBusyIndicator();\n this.saveDetailSections(modifiedDetailSections).subscribe((continueOn: boolean) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n observer.next(continueOn);\n observer.complete();\n },\n (err => {\n // let errorPanel: LMDetailSectionBase = err;\n // if (errorPanel) {\n // this.sohoTabsComponent.select('#' + errorPanel.panelId);\n observer.next(false);\n observer.complete();\n }\n ));\n\n });\n }\n\n saveDetailSections(detailSections: LMDetailSectionBase[]): Observable {\n const saveWorker: LMDetailSectionsSaveWorker = new LMDetailSectionsSaveWorker(detailSections);\n return saveWorker.start();\n }\n\n saveDetailSectionsState(): void {\n this.detailListComponents.toArray().forEach(detailListComponent => detailListComponent.saveDetailSectionState());\n }\n\n clearDetailSectionState(): void {\n this.detailListComponents.toArray().forEach(detailListComponent => detailListComponent.clearDetailSectionState());\n }\n\n public get componentDestroyed(): boolean {\n return this.m_componentDestroyed;\n }\n\n protected setComponentDestroyed() {\n this.m_componentDestroyed = true;\n }\n}\n"," \n\n\n \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n
        \n \n \n \n \n \n \n \n \n
        \n
        \n
        \n\n \n \n
        \n \n \n \n \n \n \n \n
        \n
        \n
        \n","import { AfterViewInit, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormatUtilService } from '@services/utils';\nimport { SohoDataGridComponent } from 'ids-enterprise-ng';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-list-audit-compare-panel',\n templateUrl: './lm-list-audit-compare-panel.component.html',\n styleUrls: [ './lm-list-audit-compare-panel.component.css' ]\n})\nexport class LMListAuditComparePanelComponent extends LMListContentBaseComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild(SohoDataGridComponent, { static: true }) dataGridComponent: SohoDataGridComponent;\n @ViewChild(LMToolbarComponent) toolBarComponent: LMToolbarComponent;\n\n @Input() auditCompareInfo: LMAuditCompareInfos;\n\n // todo ben can this be moved into the template with the translate pipe?\n changedValuesTitle = Soho.Locale.translate('ChangedValues');\n\n constructor(\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmFormatUtilService: LMFormatUtilService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n }\n\n ngOnInit() {\n this.build();\n }\n\n protected build(): void {\n const headerColumns: SohoDataGridColumn[] = [\n {\n name: Soho.Locale.translate('FieldName'),\n field: 'FieldName',\n sortable: false,\n formatter: 'Editor',\n singleline: true,\n },\n {\n name: Soho.Locale.translate('OldValue'),\n field: 'FromValue',\n sortable: false,\n formatter: 'Editor',\n singleline: true,\n },\n {\n name: Soho.Locale.translate('NewValue'),\n field: 'ToValue',\n sortable: false,\n formatter: 'Editor',\n singleline: true,\n }\n ];\n\n const changedValues = [];\n\n const gridOptions: SohoDataGridOptions = {\n columns: headerColumns,\n dataset: changedValues,\n selectable: false,\n paging: false,\n rowReorder: true,\n rowHeight: 'short'\n };\n\n this.dataGridComponent.gridOptions = gridOptions;\n }\n\n protected loadManualData(): void {\n // Not implemented\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Not implemented\n }\n\n protected fromDataViewChanged(): void {\n if (this.auditCompareInfo) {\n const dataset = this.createChangeValueData(this.fromDataView);\n this.dataGridComponent.dataset = dataset;\n }\n }\n\n protected filterCriteriaChanged(): void {\n }\n\n protected filterListCriteriaChanged(): void {\n }\n\n ngOnDestroy(): void {\n }\n\n ngAfterViewInit(): void {\n }\n\n private createChangeValueData(dataView: LMDataView): LMAuditCompareChangedValues[] {\n const changedValues = [];\n if (dataView) {\n const keys = Object.keys(this.auditCompareInfo);\n keys.forEach(key => {\n if (dataView.fields[ key ] && dataView.fields[ key ].oldValue !== undefined && dataView.fields[ key ].value !== dataView.fields[ key ].oldValue) {\n changedValues.push(\n {\n FieldName: this.auditCompareInfo[ key ].label ? this.auditCompareInfo[ key ].label : key,\n FromValue: this.lmFormatUtilService.toDisplayValue(dataView.fields[ key ].oldValue, this.auditCompareInfo[ key ].type),\n ToValue: this.lmFormatUtilService.toDisplayValue(dataView.fields[ key ].value, this.auditCompareInfo[ key ].type)\n } as LMAuditCompareChangedValues\n );\n }\n });\n }\n return changedValues;\n }\n}\n","
        \n
        \n

        {{ this.changedValuesTitle }}

        \n
        \n
        \n
        \n
        \n
        \n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Directive, EventEmitter, OnDestroy,\n OnInit, Output,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {\n LMListEventService,\n LMListGridPagingService,\n LMBlockItemComponent,\n LMListSpecUtilService,\n LMListUtilService\n} from '@app/components';\nimport { SohoBlockGridComponent, SohoBusyIndicatorDirective, SohoCheckBoxComponent } from 'ids-enterprise-ng';\nimport { Observable, of, Subject } from 'rxjs';\nimport {\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService, LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService\n} from '@app/services';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { AppConstants } from '@app/utils';\nimport * as urltemplate from 'url-template';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\n\nexport interface PagerIdAttributes {\n name?: string;\n value?: string;\n}\n\n@Directive()\nexport abstract class LMListBlockGridBaseDirective extends LMListContentBaseComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy, LMListContentInterface {\n @ViewChildren(LMBlockItemComponent) blockItemComponent: LMBlockItemComponent;\n @ViewChild('SohoBlockgrid') sohoBlockgrid: SohoBlockGridComponent;\n\n /**\n * View child reference to the soho busy indicator - use for paging.\n */\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n @Output() itemSelected = new EventEmitter();\n @Output() itemDoubleClicked = new EventEmitter();\n\n set showEmptyMessage(bool: boolean) {\n this._showEmptyMessage = bool;\n }\n\n get showEmptyMessage(): boolean {\n return this._showEmptyMessage;\n }\n\n public hasNextPage = false;\n public hasPreviousPage = false;\n public hasFirstPage = false;\n public hasLastPage = false;\n public pageSize = 20;\n public firstPageButtonTooltip;\n public previousPageButtonTooltip;\n public nextPageButtonTooltip;\n public lastPageButtonTooltip;\n public showPageSizeSelector = false;\n public pagerIdAttributes: Array;\n public blockGridOptions: BlockGridOptions = undefined;\n public menuIsOpen = false;\n public _showEmptyMessage = false;\n public recordCount = 0;\n public showAsCard: boolean;\n public selectionMode: SohoListViewSelectable;\n public showAsMingleWidget = false;\n public testVersion1: boolean;\n public uiLoadingIndicatorTimeout = 0;\n\n private selectedItem: LMBlockItemComponent;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n private fFromDataViewChanged = false;\n\n constructor(\n protected lmContextService: LMContextService,\n protected lmLoggerService: LMLoggerService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected changeDetectorRef: ChangeDetectorRef,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridPagingService: LMListGridPagingService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmUrlUtilService: LMUrlUtilService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n ngOnInit() {\n this.clearEmptyMessage();\n this.validateInitialInputs();\n this.initialize();\n\n if (!this.listSpec.dependentList) {\n this.build();\n }\n }\n\n ngAfterViewInit() {\n\n }\n\n ngAfterViewChecked() {\n if (this.componentDestroyed) { // this caused problems when the list had no records\n return;\n }\n\n if (this.listSpec.dependentList && this.fFromDataViewChanged) {\n this.fFromDataViewChanged = false;\n setTimeout(() => this.build());\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n this.cancelOutstandingPagingRequest();\n }\n\n protected loadManualData() {\n this.initialPage();\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Handle click of the no data message button\n if (columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = { columnDef, dataView, event, navigationParams, options: { fromNoDataMessageFormButton: true } };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n fromDataViewChanged() {\n // TODO this is different why???\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n this.fFromDataViewChanged = true;\n }\n }\n\n public isModified(): boolean {\n return false;\n }\n\n public getDirtyRows(commitEdits: boolean = undefined): Array {\n return [];\n }\n\n get currentDataViewSet(): LMDataViewSet {\n return this.dataViewSet;\n }\n\n // TODO implement me.\n public updateDataView(key: number, dataView: LMDataView) {\n }\n\n public addDataView(dataView: LMDataView, index: number) {\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string) {\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) {\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n public removeDataView(index: number) {\n }\n\n public getDataViewIndex(event: ChartEvent): number {\n return event.data.ref;\n }\n\n private reset() {\n // set dataViewSet\n // this.dataViewSet = {};\n\n this.recordCount = 0;\n\n // set pager button state\n this.hasNextPage = false;\n this.hasPreviousPage = false;\n this.hasFirstPage = false;\n this.hasLastPage = false;\n this.showPageSizeSelector = false;\n\n // build the image list\n // this.buildImageListData();\n }\n\n private handleInitialPageCancel() {\n this.reset();\n this.showEmptyMessage = true;\n const message = '';\n const title = Soho.Locale.translate('NoDataAvailable');\n this.handleError(message, title); // THIS IS NOT SHOWING AN ERROR\n this.changeDetectorRef.markForCheck();\n }\n\n private handleCancelableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n private initialPageWait(): Observable {\n return this._initialPage();\n }\n\n private initialPage() {\n this._initialPage().subscribe();\n }\n\n private disableComponent() {\n // set dataViewSet\n this.dataViewSet = undefined;\n\n // set pager button state\n this.hasNextPage = false;\n this.hasPreviousPage = false;\n this.hasFirstPage = false;\n this.hasLastPage = false;\n this.showPageSizeSelector = false;\n\n // todo need to remove any selection and any data currently in the block grid\n this.blockGridOptions = undefined;\n\n this.changeDetectorRef.markForCheck();\n }\n\n private _initialPage(): Observable {\n return new Observable(observer => {\n // console.log('listimage-initialPage: ' + this.listSpec.busListSpec.name);\n\n if (this.componentDestroyed) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n this.showEmptyMessage = false;\n\n if (this.listSpec.dependentList) {\n if (this.fromDataView === undefined) {\n observer.next(true);\n observer.complete();\n return; // safety\n }\n\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can responsd appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already now it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n observer.next(true);\n observer.complete();\n return;\n }\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const url = this.buildInitialPageUrl();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const isManualLoad = this.isManualLoading();\n\n this.lmLoggerService.time({ id: 'LMListView.initialPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.initialPage(url, this.pageSize, postContent, undefined, isManualLoad).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n if (this.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.handleInitialPageCancel();\n }\n observer.next(true);\n observer.complete();\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n this.setEmptyMessage();\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n setTimeout(() => this.lmListEventService.dataLoadedEvent(listPagingResponse));\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n observer.next(listPagingResponse.status === 'COMPLETED');\n observer.complete();\n },\n error => {\n observer.next(false);\n observer.complete();\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n }\n );\n });\n }\n\n private reloadPage(): void {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.pagingSubscription = this.lmListGridPagingService.reloadPage(this.currentDataViewSet, this.pageSize).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n onFirstPage(event: any) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.pagingSubscription = this.lmListGridPagingService.firstPage(this.currentDataViewSet, this.pageSize).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n onPreviousPage(event: any) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.pagingSubscription = this.lmListGridPagingService.previousPage(this.currentDataViewSet).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n onNextPage(event: any) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.pagingSubscription = this.lmListGridPagingService.nextPage(this.currentDataViewSet).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n onLastPage(event: any) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.pagingSubscription = this.lmListGridPagingService.lastPage(this.currentDataViewSet).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'CANCELED') {\n return;\n }\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n refresh(): Observable {\n if (this.isBusyPaging()) {\n return of (true);\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n // console.log('listimage-refresh: ' + this.listSpec.busListSpec.name);\n return this.initialPageWait();\n }\n\n onPageSizeChange(args: any[]) {\n if (!this.showPageSizeSelector) {\n return; // safety\n }\n this.pageSize = args[1].pagesize;\n this.listPersonalization.pageSize = args[1].pagesize;\n this.reloadPage();\n }\n\n public togglePagingSelectMenu() {\n this.menuIsOpen = !this.menuIsOpen;\n\n // CHANGE DETECTION\n this.changeDetectorRef.detectChanges();\n }\n\n public getSelectedRow(): number {\n const selectedRows = this.getSelectedRows();\n\n if (selectedRows.length === 1) {\n return selectedRows[0];\n } else {\n return -1;\n }\n }\n\n public getSelectedRows(): Array {\n if (this.selectedItem) {\n return [ this.selectedItem.data.dvIndex ];\n }\n return [ 0 ];\n }\n\n public unSelectAllRows(): void {\n // todo sjw - implement me\n }\n\n public setSelectedRows(rows: Array, scrollIntoView?: boolean): void { // [1, 3, 5 ]\n this.getSelectedRows();\n // this.sohoChartComponent.setSelectDataIndex(rows[0]);\n }\n\n activateRow(rowsToActivate: number, scrollIntoView?: boolean) {\n if (this.sohoBlockgrid) {\n this.sohoBlockgrid.activateBlock(rowsToActivate);\n }\n }\n\n activatedRow(): number {\n return -1;\n }\n\n onSelected(imageItemEvent: LMBlockGridItemEvent): void {\n this.selectedItem = imageItemEvent.item;\n\n const listRowSelectedEvent: LMListRowSelectedEvent = {\n event: imageItemEvent.originalEvent,\n rows: [ {\n idx: imageItemEvent.row,\n data: this.blockGridOptions.data[imageItemEvent.row],\n elem: null\n } ]\n };\n\n this.lmListEventService.listRowSelectedEvent(listRowSelectedEvent);\n }\n\n onDoubleClick(imageItemEvent: LMBlockGridItemEvent): void {\n const listRowClickedEvent: LMListRowClickedEvent = {\n row: imageItemEvent.row,\n cell: imageItemEvent.cell,\n item: imageItemEvent.item,\n originalEvent: imageItemEvent.originalEvent\n };\n this.lmListEventService.listRowDoubleClickedEvent(listRowClickedEvent);\n }\n\n onContextMenu(event: LMBlockGridItemEvent): void {\n if (this.selectedItem && this.selectedItem !== event.item) {\n this.selectedItem.unSelect();\n }\n this.selectedItem = event.item;\n this.lmListEventService.contextMenuEvent(event);\n }\n\n public initialize() {\n this.pagerIdAttributes = [ { name: 'id', value: this.listSpec.busListSpec.id + '_pager' } ];\n this.pageSizes = this.lmListUtilService.getPageSizesArray(this.listSpec);\n this.pageSize = this.lmListUtilService.getPageSize(this.listSpec, this.listPersonalization);\n this.showAsCard = (!this.listSpec.showAsMingleWidget && !this.lmListSpecUtilService.isDashBoardContent(this.listSpec));\n this.selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec) as SohoListViewSelectable; // check for has dependents\n this.showAsMingleWidget = this.listSpec.showAsMingleWidget;\n }\n\n protected build() {\n this.initialPage();\n }\n\n /**\n * todo implement me!\n */\n protected filterCriteriaChanged() {\n }\n\n /**\n * todo: ppatton implement me! See lm-list-view.component for initial implementation\n */\n protected filterListCriteriaChanged() {\n }\n\n private postLoad(listPagingResponse: LMListPagingResponse) {\n // set dataViewSet\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n\n this.recordCount = listPagingResponse.dataViewSet.data.length;\n this.showEmptyMessage = this.recordCount === 0;\n // set pager button state\n this.hasNextPage = this.dataViewSet.pagingInfo.hasNext;\n this.hasPreviousPage = this.dataViewSet.pagingInfo.hasPrevious;\n this.hasFirstPage = !this.dataViewSet.pagingInfo.firstDisabled && this.dataViewSet.pagingInfo.hasPrevious;\n this.hasLastPage = !this.dataViewSet.pagingInfo.lastDisabled && this.dataViewSet.pagingInfo.hasNext;\n this.showPageSizeSelector = this.lmListUtilService.showPageSizeChooser(this.listSpec);\n\n // build the image list\n this.buildImageListData();\n }\n\n private buildImageListData() {\n const buildImageListOptions: BlockGridOptions = { data: Array() };\n\n for (let i = 0; i < this.dataViewSet.data.length; i++) {\n const dataView: LMDataView = this.dataViewSet.data[i];\n const foregroundText = this.getForegroundText(dataView);\n const blockGridData: BlockGridData = {\n imageUrl: dataView.representativeImageUrl,\n itemText: dataView.representativeText,\n dvIndex: i,\n detailFields: this._listSpec.busListSpec.detailFields,\n dataView,\n foregroundText,\n bgClass: this.lmThemeService.getUniqueBackgroundColorClass(foregroundText)\n };\n\n buildImageListOptions.data.push(blockGridData);\n }\n this.blockGridOptions = buildImageListOptions;\n }\n\n private getForegroundText(dataView: LMDataView): string {\n if (this.listSpec\n && this.listSpec.busClassSpec\n && this.listSpec.busClassSpec.representativeImage\n && this.listSpec.busClassSpec.representativeImage.missingImageInfo\n ) {\n if (dataView.missingImage && this.listSpec.busClassSpec.representativeImage.missingImageInfo.foregroundText) {\n const msgRule: LMMessageRule = this.listSpec.busClassSpec.representativeImage.missingImageInfo.foregroundText;\n return this.lmFormatUtilService.formatMessageRule(msgRule, dataView);\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n\n // onItemSelected(imageitemEvent: LMBlockGridItemEvent) {\n //\n // this.clickCount++;\n // setTimeout(() => {\n // if (this.clickCount === 1) {\n // if (this.selectedItem && this.selectedItem !== imageitemEvent.item) {\n // this.selectedItem.unSelect();\n // }\n // this.selectedItem = imageitemEvent.item;\n // this.clickCount = 0;\n // }\n // }, 300);\n //\n // if (this.clickCount >= 2) {\n // const listRowClickedEvent: LMListRowClickedEvent = {\n // row: imageitemEvent.row,\n // cell: imageitemEvent.cell,\n // item: imageitemEvent.item,\n // originalEvent: imageitemEvent.originalEvent\n // };\n // this.lmListEventService.listRowDoubleClickedEvent(listRowClickedEvent);\n // this.clickCount = 0;\n // }\n // }\n //\n // onListRowDoubleClicked(event: any) {\n // // todo: implement me!\n // }\n\n private buildInitialPageUrl(): string {\n let url: string;\n if (this._listSpec.dependentList && this._fromDataView) {\n if (this.listState\n && this.listState.currentPageUrl\n && this._fromDataView.resourceId === this.listState.fromResourceId\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // if the fromDataView hasn't changed and there is a currentPageUrl then load that\n // to keep our position in the dependent list.\n url = this.listState.currentPageUrl;\n } else {\n // else resolve template against the fromDataView's resourceId\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n url = compiledUrlTemplate.expand({ resourceId: this._fromDataView.resourceId });\n }\n } else if (this.listState.currentPageUrl\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n && this.lmUrlUtilService.hasSameParamValue(this.listState.currentPageUrl, this.listUrlInfo.initialDataUrl, 'filter')\n ) {\n url = this.listState.currentPageUrl;\n } else {\n url = this.listUrlInfo.initialDataUrl;\n }\n\n return url;\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input, NgZone,\n OnDestroy,\n OnInit,\n Renderer2, ViewChild\n} from '@angular/core';\nimport * as urltemplate from 'url-template';\n\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { ChangeDetectorRef } from '@angular/core';\n\nimport { LMBusyIndicatorService, LMContextService } from '@services/index';\nimport {\n LMListEventService,\n LMListGridPagingService,\n LMListSpecUtilService,\n LMListUtilService\n} from './services/';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { SohoBusyIndicatorDirective, SohoCalendarComponent } from 'ids-enterprise-ng';\nimport { AppConstants, LMConditionUtilService, LMTransformOptions } from '@utils/index';\nimport { LMColorId, LMThemeService } from '@banner/lm-theme.service';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMFormatterService } from './formatters';\n\n@Component({\n selector: 'lm-list-calendar',\n templateUrl: './lm-list-calendar.component.html',\n styleUrls: [ 'lm-list-calendar.component.scss' ]\n})\nexport class LMListCalendarComponent extends LMListContentBaseComponent implements LMListContentInterface, AfterViewInit, OnDestroy, OnInit, AfterViewChecked {\n @ViewChild('SohoCalendarComponent') sohoCalendarComponent: SohoCalendarComponent;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n public initialMonth = new Date(Date.now()).getMonth();\n public initialYear = new Date(Date.now()).getFullYear();\n public legends: Array = [];\n public events = [];\n public eventTypes = [];\n public showViewChanger = true;\n public eventTooltip;\n public iconTooltip = 'status';\n public displayContextMenu = false;\n public uiLoadingIndicatorTimeout = 0;\n\n @HostBinding('class.calendar-container') get hostScrollable() {\n return true;\n }\n\n @HostBinding('class.card') showAsCard = false;\n\n /**\n * Used to retrieve data when this list is a 'dependentList'\n */\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this._fromDataViewChanged = true;\n }\n\n /**\n * ListState for a list and all it's contents\n */\n @Input() listState: LMListState;\n\n /**\n * The listSpec used to build\n * @type {LMListSpec}\n */\n @Input() set listSpec(listSpec: LMListSpec) {\n if (!listSpec) {\n return; // safety\n }\n\n this._listSpec = listSpec;\n\n if (this.lmListSpecUtilService.isMultiListPanelContent(this._listSpec)) {\n this.renderer.addClass(this.elementRef.nativeElement, 'multiListCalendar');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'multiListCalendar');\n }\n\n // this.eventTooltip = this.getCalendar().mouseOverMessage !== undefined ? 'comments' : 'overflow';\n this._listSpecChanged = true;\n }\n\n public type: string;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n private _fromDataViewChanged = false;\n private _listSpecChanged = false;\n private _monthChanged = false;\n private _filterCriteriaChanged = false;\n private _calendarViewChanged = false;\n /**\n * Internal member variable, Use listSpec getter when referencing this object.\n */\n private initialPageSubscription: Subscription;\n private node: Node;\n private renderMonthCallbackFunction: Function;\n private listComponentId: string;\n private _contextMenuEvent: any;\n private eventIndex: number;\n\n private static noMessage: SohoEmptyMessageOptions = {};\n\n /** public so it can be used in a template of any subclasses. */\n public emptyMessage: SohoEmptyMessageOptions = LMListCalendarComponent.noMessage;\n\n constructor(\n public elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n private ngZone: NgZone,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n protected lmFormatUtilService: LMFormatUtilService,\n private lmFormatterService: LMFormatterService,\n private lmListEventService: LMListEventService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmListUtilService: LMListUtilService,\n protected lmLoggerService: LMLoggerService,\n private lmConditionUtilService: LMConditionUtilService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n\n ngOnInit(): void {\n // load initial month and year from listState\n this.initialMonth = this.listState?.month;\n this.initialYear = this.listState?.year;\n }\n\n ngAfterViewInit(): void {\n this._filterCriteriaChanged = false;\n // setTimeout(() => this.build());\n }\n\n ngAfterViewChecked() {\n let rebuild = false;\n\n if (this._monthChanged) {\n this._monthChanged = false;\n rebuild = true;\n }\n\n if ((this._fromDataViewChanged) && this._listSpec) {\n this._fromDataViewChanged = false;\n rebuild = true;\n }\n\n if (this._filterCriteriaChanged) {\n this._filterCriteriaChanged = false;\n rebuild = true;\n }\n\n if (this._calendarViewChanged) {\n this.buildCalendarData(this.dataViewSet, this._listSpec, this.renderMonthCallbackFunction);\n this._calendarViewChanged = false;\n }\n\n if (rebuild) {\n setTimeout(() => this.build());\n }\n\n this.listComponentId = this._listSpec.busListSpec.id + '_chart';\n }\n\n ngOnDestroy() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnDestroy' ]);\n }\n\n public onRenderMonthCallback = (node: Node, response: Function, args: any) => {\n this.renderMonthCallbackFunction = response;\n\n // onRenderMonthCallback gets called when changing from week/day to month view\n // need to rebuild if it is the same resource.\n if ((this._fromDataView && this._fromDataView.resourceId) === (this.listState && this.listState.fromResourceId)) {\n this._calendarViewChanged = true;\n }\n\n if (this.initialMonth !== args.month || this.initialYear !== args.year) {\n this._monthChanged = true;\n }\n\n // store off year and month in listState\n this.listState.month = args.month;\n this.listState.year = args.year;\n }\n\n // public onCalendarDateSelectedCallback = (node: Node, args: SohoCalendarDateSelectedEvent) => {\n // this.node = node;\n // console.log('onCalendarEventSelectedCallback', args);\n // }\n\n public onCalendarEventClicked(e: SohoCalendarEventClickEvent) {\n if (!e || !e.event) {\n // if the event is not a cell click event\n return;\n }\n\n this.eventIndex = Number(e.event.id);\n const listRowClickedEvent: LMListRowClickedEvent = {\n originalEvent: e.originalEvent,\n item: this.node,\n row: this.eventIndex,\n cell: -1\n };\n this.lmListEventService.listRowClickedEvent(listRowClickedEvent);\n }\n\n public onCalendarEventDblClicked(e: SohoCalendarEventClickEvent) {\n if (!e || !e.event) {\n // if the event is not a cell click event\n return;\n }\n\n this.eventIndex = Number(e.event.id);\n const listRowClickedEvent: LMListRowClickedEvent = {\n originalEvent: e.originalEvent,\n item: this.node,\n row: this.eventIndex,\n cell: -1\n };\n this.lmListEventService.listRowDoubleClickedEvent(listRowClickedEvent);\n }\n\n public onCalendarEventContextMenu(e: SohoCalendarEventClickEvent) {\n if (!e || !e.event) {\n // if the event is not a cell click event\n return;\n }\n\n this.eventIndex = Number(e.event.id);\n const listRowClickedEvent: LMListRowClickedEvent = {\n originalEvent: e.originalEvent,\n item: this.node,\n row: this.eventIndex,\n cell: -1\n };\n this.lmListEventService.contextMenuEvent({\n ...listRowClickedEvent,\n type: 'calendar'\n });\n }\n\n public isModified(): boolean {\n return false;\n }\n\n public showLegend() {\n // TODO (VW): need to revisit legend implementation\n return this.getCalendar().legend && this.lmContextService.isDeveloper();\n }\n\n public legendStates(): LMChartState[] {\n return this.getCalendar().legendStates;\n }\n\n public animate() {\n return true;\n }\n\n public showTooltips() {\n return true;\n }\n\n public getDirtyRows(commitEdits: boolean = undefined): Array {\n return [];\n }\n\n public getType() {\n return this.type;\n }\n\n public refresh(): Observable {\n return new Observable(observer => {\n this.build();\n observer.next(true);\n observer.complete();\n });\n }\n\n public getDataViewSet(): LMDataViewSet {\n return this.dataViewSet;\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) {\n // TODO implement me.\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // TODO implement me.\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n // not implemented\n }\n\n public getDataViewIndex(event: SohoCalendarEvent): number {\n return -1;\n }\n\n public getSelectedRow(): number {\n const selectedRows = this.getSelectedRows();\n\n if (selectedRows.length === 1) {\n return selectedRows[0];\n } else {\n return 0;\n }\n }\n\n public getSelectedRows(): Array {\n if (this._listSpec.busListSpec.selection === 'disabled') {\n return [];\n }\n\n return [ this.eventIndex ];\n }\n\n public unSelectAllRows() {\n // not implemented\n }\n\n public setSelectedRows(rows: Array, scrollIntoView?: boolean) { // [1, 3, 5 ]\n }\n\n public activateRow(row: number, scrollIntoView?: boolean) {\n // not implemented\n }\n\n public activatedRow(): number {\n return -1;\n }\n\n public get contextMenuId(): string {\n return this.lmListSpecUtilService.getContextMenuId(this._listSpec);\n }\n\n onContextMenu(event: LMContextMenuEvent): void {\n if (this.lmContextService.casualMode()\n || this._listSpec.showAsMingleWidget) {\n // disallow right click when:\n // - in casual mode\n // - in mingle widget.\n return;\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'onContextMenu()', event ]);\n\n setTimeout(() => {\n this._contextMenuEvent = event.originalEvent;\n this.displayContextMenu = true;\n });\n }\n\n private getStateInfo(): LMListStateInfo {\n const stateInfo: LMListStateInfo = {\n dataViewSet: this.getDataViewSet(),\n selectedDataView: this.getDataView(this.getSelectedRow()),\n selectedRows: this.getSelectedRows(),\n isModified: this.isModified(),\n searchFormDisplayed: false,\n isUpdatable: this.lmListSpecUtilService.allowUpdate(this.listSpec) || this.lmListSpecUtilService.implementsInlineCreate(this.listSpec),\n inlineCreateEnabled: false,\n inlineCreateModified: false,\n createWithinEnabled: false,\n isRootComponent: true,\n fromDataView: this.fromDataView,\n specialActions: [],\n displayAs: this.listState.displayAs\n };\n\n return stateInfo;\n }\n\n public getDataView(row: number): LMDataView {\n const dataViewSet = this.getDataViewSet();\n if (!dataViewSet || dataViewSet.data.length <= 0) {\n return null;\n }\n\n return dataViewSet.data[row];\n }\n\n private initialize() {\n if (!this._listSpec) {\n return;\n }\n\n this.showAsCard = (!this._listSpec.showAsMingleWidget && !this.lmListSpecUtilService.isDashBoardContent(this._listSpec));\n }\n\n protected build() {\n if (!this._listSpec) {\n return;\n }\n this.handleCancellableRequest();\n this.eventTooltip = this.getCalendar().mouseOverMessage !== undefined ? 'comments' : 'overflow';\n if (this.lmListSpecUtilService.isCubeView(this._listSpec)\n && !(this.lmListSpecUtilService.isDashBoardContent(this._listSpec))) {\n // Data is available for non dashboard types. Build the calendar using the data.\n if (this.dataViewSet) {\n // Data is available, so build calendar data directly.\n this.buildCalendarData(this.dataViewSet, this._listSpec);\n }\n return;\n }\n\n if (this._listSpec.dependentList && !this._fromDataView) {\n this.dataViewSet = undefined;\n this.buildCalendarData(this.dataViewSet, this._listSpec);\n /**\n * emitting the dataLoaded event with a undefined dataView should\n * cause the lm-list to fully disable.\n * NOTE: Must be called from a timeout to ensure this component is available to the observer.\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n return;\n }\n\n if (this._listSpec.dependentList && this._fromDataView) {\n // Cancel outstanding initial page request, since the selection on the parent list has changed.\n if (this.initialPageSubscription && !this.initialPageSubscription.closed) {\n this.initialPageSubscription.unsubscribe();\n }\n }\n\n // todo 1. deal with tree view\n // todo 2. deal with cube options - probably need to be in url somewhere set on the server\n\n let url: string = this.buildInitialPageUrl();\n\n // -------------------------------------------------------------\n // Get pageSize to pass into the paging service\n // -------------------------------------------------------------\n const pageSize = -1;\n const postContent = undefined;\n\n if (this.lmListSpecUtilService.isCubeView(this._listSpec)\n && (this.lmListSpecUtilService.isDashBoardContent(this._listSpec))) {\n let delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n // Add dimension and calendar name for Dashboard panel cube views.\n if (this._listSpec.cubeOptions.dimensionName) {\n url = url + delimiter + 'dimensionName=' + this._listSpec.cubeOptions.dimensionName;\n delimiter = '&';\n }\n url = url + delimiter + 'dashboardView=true';\n }\n // -------------------------------------------------------------\n // request the first page of records and log how long it took\n // -------------------------------------------------------------\n this.lmLoggerService.time({ id: 'LMListcalendar.initialPage() ' + this.instanceId });\n\n // check to see if month and year have been saved to listState\n if (this.listState.month && this.listState.year) {\n this.initialMonth = this.listState.month;\n this.initialYear = this.listState.year;\n }\n\n const chart = this._listSpec.busListSpec.charts['Calendar'] as LMCalendarSpec;\n const firstDayOfMonth: Date = new Date(this.initialYear, this.initialMonth, 1);\n let startDate: Date = new Date();\n startDate = this.previousMonthDate(firstDayOfMonth);\n let endDate: Date = new Date();\n endDate = this.nextMonthDate(firstDayOfMonth);\n const transFormOptions: LMTransformOptions = {\n isRange: true\n };\n\n const formatDateAttribs: any = {\n pattern: Soho.Locale.calendar().dateFormat.short\n };\n const startDateFormatted = Soho.Locale.formatDate(startDate, formatDateAttribs);\n const endDateFormatted = Soho.Locale.formatDate(endDate, formatDateAttribs);\n\n const startDateString = this.lmFormatUtilService.toDataValue(startDateFormatted, AppConstants.YYYYMMDD, transFormOptions);\n const endDateString = this.lmFormatUtilService.toDataValue(endDateFormatted, AppConstants.YYYYMMDD, transFormOptions);\n const filterValue = startDateString + ',' + endDateString;\n\n const filterCriteria: LMFilterFieldCriteria = {\n operator: this.lmListUtilService.getLMOperator('in-range'),\n fieldId: chart.fromDate,\n label: chart.fromDate,\n value: filterValue,\n isRequired: true,\n };\n\n this.initialPageSubscription = this.lmListGridPagingService.filterPage(url, [ filterCriteria ], pageSize, postContent)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n this.lmLoggerService.timeEnd('LMListcalendar.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n this.postLoadCalendar(listPagingResponse, this.renderMonthCallbackFunction);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n if (this.lmListSpecUtilService.isCubeView(this._listSpec)\n && !(this.lmListSpecUtilService.isDashBoardContent(this._listSpec))) {\n // Do not emit dataloaded event.\n return;\n }\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n });\n }\n\n private buildInitialPageUrl(): string {\n let url: string;\n if (this._listSpec.dependentList) {\n if (this.listState.currentPageUrl\n && this._fromDataView.resourceId === this.listState.fromResourceId\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // if the fromDataView hasn't changed and there is a currentPageUrl then load that\n // to keep our position in the dependent list.\n url = this.listState.currentPageUrl;\n } else {\n // else resolve template against the fromDataView's resourceId\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n url = compiledUrlTemplate.expand({ resourceId: this._fromDataView.resourceId });\n }\n } else if (this.listState.currentPageUrl\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n url = this.listState.currentPageUrl;\n } else {\n url = this.listUrlInfo.initialDataUrl;\n }\n\n return url;\n }\n\n private postLoadCalendar(listPagingResponse: LMListPagingResponse, fn: Function) {\n this.buildCalendarData(listPagingResponse.dataViewSet, this._listSpec, fn);\n\n if (this.lmListSpecUtilService.isCubeView(this._listSpec)\n && !(this.lmListSpecUtilService.isDashBoardContent(this._listSpec))) {\n // Do not emit dataloaded event.\n return;\n }\n setTimeout(() => this.lmListEventService.dataLoadedEvent(listPagingResponse));\n }\n\n private buildCalendarData(dataViewSet: LMDataViewSet, listSpec: LMListSpec, fn?: Function) {\n if (!dataViewSet) {\n return null;\n }\n this.getEvents(dataViewSet, listSpec);\n this.getEventTypes();\n\n if (dataViewSet.data.length === 0) {\n // this.sohoCalendarComponent.renderMonthCallback = null;\n this.sohoCalendarComponent.updated();\n } else {\n fn(this.events, this.eventTypes);\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n\n private evaluateEventIcon(dataView: LMDataView): LMCalendarAlert {\n let alert: LMCalendarAlert = null;\n\n if (this.getCalendar().alert) {\n if (this.getCalendar().redAlert && this.lmConditionUtilService.isValid([ this.getCalendar().redAlert.condition ], dataView)) {\n alert = {\n icon: 'icon-error-solid',\n mouseoverText: this.getCalendar().redAlert.alertMouseOverMessage ? this.lmFormatUtilService.formatMessageRule(\n this.getCalendar().redAlert.alertMouseOverMessage, dataView) : ''\n };\n } else if (this.getCalendar().yellowAlert && this.lmConditionUtilService.isValid([ this.getCalendar().yellowAlert.condition ], dataView)) {\n alert = {\n icon: 'icon-alert-solid',\n mouseoverText: this.getCalendar().yellowAlert.alertMouseOverMessage ? this.lmFormatUtilService.formatMessageRule(\n this.getCalendar().yellowAlert.alertMouseOverMessage, dataView) : ''\n };\n } else if (this.getCalendar().greenAlert && this.lmConditionUtilService.isValid([ this.getCalendar().greenAlert.condition ], dataView)) {\n alert = {\n icon: 'icon-info-solid',\n mouseoverText: this.getCalendar().greenAlert.alertMouseOverMessage ? this.lmFormatUtilService.formatMessageRule(\n this.getCalendar().greenAlert.alertMouseOverMessage, dataView) : ''\n };\n } else if (this.getCalendar().blueAlert && this.lmConditionUtilService.isValid([ this.getCalendar().blueAlert.condition ], dataView)) {\n alert = {\n icon: 'icon-success-solid',\n mouseoverText: this.getCalendar().blueAlert.alertMouseOverMessage ? this.lmFormatUtilService.formatMessageRule(\n this.getCalendar().blueAlert.alertMouseOverMessage, dataView) : ''\n };\n } else if (this.getCalendar().iconAlert && this.lmConditionUtilService.isValid([ this.getCalendar().iconAlert.condition ], dataView)) {\n alert = {\n icon: this.getCalendar().iconAlert.icon,\n mouseoverText: this.getCalendar().iconAlert.alertMouseOverMessage ? this.lmFormatUtilService.formatMessageRule(\n this.getCalendar().iconAlert.alertMouseOverMessage, dataView) : ''\n };\n }\n }\n return alert;\n }\n\n private populateLegendStates(dataView: LMDataView) {\n if (this.getCalendar().legend) {\n const legendField = dataView.fields[this.getCalendar().legend];\n const legendFieldValue = legendField.value as string;\n const legendsLength = this.legends.length;\n if (legendsLength > 0) {\n const matchLegends = this.legends.filter(field => legendField.value === field.label);\n if (matchLegends.length === 0) {\n let color = null;\n switch (legendsLength) {\n case 1:\n color = LMColorId.amethyst;\n break;\n case 2:\n color = LMColorId.emerald;\n break;\n case 3:\n color = LMColorId.amber;\n break;\n default:\n color = LMColorId.graphite;\n }\n this.legends.push({ color, label: legendFieldValue });\n }\n } else {\n this.legends.push({ color: LMColorId.azure, label: legendFieldValue });\n }\n }\n }\n\n private evaluateEventColor(subject: string) {\n if (this.legends.length > 0) {\n const matchLegends = this.legends.filter(field => subject === field.label);\n\n return matchLegends[0].color;\n }\n return LMColorId.amethyst;\n }\n\n private getEvents(dataViewSet: LMDataViewSet, listSpec: LMListSpec) {\n this.events = [];\n const chart = listSpec.busListSpec.charts['Calendar'] as LMCalendarSpec;\n\n for (let s = 0; s < dataViewSet.data.length; s++) {\n const dataView = dataViewSet.data[s];\n this.populateLegendStates(dataView);\n const eventAlert = this.evaluateEventIcon(dataView);\n\n const fromDate = dataView.fields[chart.fromDate].value;\n const toDate = chart.toDate ?\n (dataView.fields[chart.toDate].value && dataView.fields[chart.toDate].value !== '00000000') ? dataView.fields[chart.toDate].value : null\n : null;\n const subject = chart.textMessage ? this.lmFormatUtilService.formatMessageRule(chart.textMessage, dataView) : '';\n const specFields = this.lmListUtilService.buildSpecFields(listSpec.busListSpec.displayFields);\n const mouseOver = chart.mouseOverMessage ? this.lmFormatUtilService.formatMessageRule(chart.mouseOverMessage, dataView, specFields) : '';\n const showDate = chart.dateField ? dataView.fields[chart.dateField].value : undefined;\n const event: LMCalendarEvent = {\n starts: this.lmFormatUtilService.yyyymmddhhmmssToDisplay(fromDate + '000000000'),\n ends: toDate ? this.lmFormatUtilService.yyyymmddhhmmssToDisplay(toDate + '235959999') : this.lmFormatUtilService.yyyymmddhhmmssToDisplay(fromDate + '235959999'),\n id: s.toString(),\n isAllDay: 'true',\n comments: mouseOver,\n subject,\n color: this.evaluateEventColor(subject),\n type: subject\n };\n\n if (eventAlert) {\n event.icon = eventAlert.icon;\n if (eventAlert.mouseoverText) {\n event.status = eventAlert.mouseoverText;\n }\n }\n this.events.push(event);\n }\n }\n\n private getEventTypes() {\n this.eventTypes = [];\n this.legends.forEach((legendItem: LMCalendarLegend) => {\n this.eventTypes.push(\n {\n id: legendItem.label,\n label: legendItem.label,\n color: legendItem.color,\n checked: true,\n click: null\n });\n });\n }\n\n public getLegendColorId(color: LMColorId) {\n return this.lmThemeService.getColorById(color).backgroundColorClass;\n }\n\n public addDataView(inlineCreateDataVie: LMDataView, row: number) {\n // not implemented\n }\n\n public removeDataView(row: number) {\n // not implemented\n }\n\n private getCalendar(): LMChartSpec {\n return this._listSpec.busListSpec.charts['Calendar'];\n }\n\n protected handleError(message: string, title: string) {\n const error: LMError = { message, title };\n this.setErrorLoadingMessage(error);\n }\n\n private noDaysInMonth(month: number, year: number): number {\n switch (month) {\n case 0:\n case 2:\n case 4:\n case 6:\n case 8:\n case 9:\n case 10:\n case 11:\n return 31;\n case 1: {\n if (year % 4 === 0) {\n return 29;\n } else {\n return 28;\n }\n }\n case 3:\n case 5:\n case 7:\n return 30;\n }\n }\n\n private previousMonthDate(date: Date): Date {\n if (date.getMonth() === 0) {\n return (new Date(date.getFullYear() - 1, 11, 1));\n } else {\n return (new Date(date.getFullYear(), date.getMonth() - 1, 1));\n }\n }\n\n private nextMonthDate(date: Date): Date {\n if (date.getMonth() === 11) {\n const endDate: number = this.noDaysInMonth(0, date.getFullYear());\n return (new Date(date.getFullYear() + 1, 0, endDate));\n } else {\n const endDate: number = this.noDaysInMonth(date.getMonth() + 1, date.getFullYear());\n return (new Date(date.getFullYear(), date.getMonth() + 1, endDate));\n }\n }\n\n private handleCancellableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n protected loadManualData() {\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n // Protect against a calendar list being defined with implements manual loading\n this.allowDataLoading = true;\n this.build();\n }\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Not implemented\n }\n\n protected fromDataViewChanged() {\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n // Protect against a calendar list being defined with implements manual loading\n this.allowDataLoading = true;\n this.build();\n }\n }\n\n protected filterCriteriaChanged() {\n // See the actual processing of the changed filterCriteriaChanged is in ngAfterViewChecked\n this._filterCriteriaChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n protected filterListCriteriaChanged(): void {\n }\n}\n","\n
        \n
        \n
        \n \n\n \n Legend\n \n \n
        \n
        \n\n
        \n
        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
        \n
        \n
        \n
        \n
        \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChildren\n} from '@angular/core';\nimport { LMListCardService } from '@list/services/lm-list-card.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMUrlUtilService } from '@services/utils';\nimport { LMComponentInfoService } from '@services/lm-componentinfo.service';\nimport { SohoRatingComponent } from 'ids-enterprise-ng';\nimport { LMNavigationService } from '@app/components';\nimport { LMCardBaseDirective } from '@card/lm-card-base.directive';\n\n@Component({\n selector: 'lm-list-card',\n templateUrl: './lm-list-card.component.html',\n styleUrls: [ './lm-list-card.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LMListCardComponent extends LMCardBaseDirective implements OnInit, AfterViewInit {\n\n @ViewChildren('CardColumn') cardColumns;\n @ViewChildren(SohoRatingComponent) ratings;\n @HostListener('window:resize') onResize() {\n this.rightColumnIsWrapped = this.isRightColumnWrapped();\n }\n\n @Input() listUrlInfo: LMListUrlInfo;\n @Input() listSpec: LMListSpec;\n @Input() dataView: LMDataView;\n @Input() boldFirstRow = true;\n\n @Output() uiLinkEvent = new EventEmitter();\n\n public cardTemplateData: LMCardTemplateData;\n public rightColumnIsWrapped = false;\n public noDataAvailable: string;\n\n constructor(\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmNavigationService: LMNavigationService,\n protected lmUrlUtilService: LMUrlUtilService,\n private lmListCardService: LMListCardService,\n private lmSpecService: LMSpecService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super(lmComponentInfoService, lmNavigationService, lmUrlUtilService);\n }\n\n ngOnInit() {\n let displayFields: LMListDisplayField = this.listSpec.busListSpec.displayFields[0];\n\n if (this.listSpec.busListSpec.responsiveCardView) {\n displayFields = this.listSpec.busListSpec.responsiveCardView;\n }\n\n this.cardTemplateData = this.lmListCardService.getCardTemplateData(displayFields, this.dataView);\n this.noDataAvailable = Soho.Locale.translate('NoDataAvailable');\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.rightColumnIsWrapped = this.isRightColumnWrapped();\n this.changeDetectorRef.markForCheck();\n\n if (this.ratings) {\n // ensure all rating components are disabled\n this.ratings.forEach((rating: SohoRatingComponent) => {\n rating.readonly();\n });\n }\n }, 1);\n }\n\n public navigate(item: LMListViewTemplateField) {\n const uiLinkEvent: LMUILinkEvent = {\n columnDef: null, dataView:\n item.navigationParams.dataView,\n event,\n navigationParams: item.navigationParams };\n this.uiLinkEvent.emit(uiLinkEvent);\n }\n\n public isBlankLine(item: LMListViewTemplateField) {\n if (item === undefined) {\n return false;\n }\n return item.type === 'BLANKLINE';\n }\n\n public isAlert(item: LMListViewTemplateField) {\n if (item === undefined || item.alertCondition === undefined) {\n return false;\n }\n\n return item.alertCondition !== undefined;\n }\n\n public displayFieldAsTitle(index: number, columns: LMCardTemplateColumn): boolean {\n\n if (columns.column === undefined) {\n return false;\n }\n\n return index === 0 && columns.column.length > 1;\n }\n\n public alertClass(item: LMListViewTemplateField): string {\n return 'icon-' + item.alertCondition.icon;\n }\n\n private isRightColumnWrapped(): boolean {\n if (this.cardColumns && this.cardColumns.toArray().length === 2) {\n const mainColumn = this.cardColumns.toArray()[0].nativeElement.nextElementSibling;\n const rightColumn = this.cardColumns.toArray()[1].nativeElement.nextElementSibling;\n\n if ((rightColumn && mainColumn) && (rightColumn.offsetTop > mainColumn.offsetTop)) {\n return true;\n }\n }\n\n return false;\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n let cardviewSpec: LMCardviewSpec = {};\n if (this.listSpec.busListSpec.displayFields && this.listSpec.busListSpec.displayFields[0].type === 'CardView') {\n cardviewSpec = this.listSpec.busListSpec.displayFields[ 0 ];\n\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = cardviewSpec ? cardviewSpec.personalization : undefined;\n compConfigInfo['configuration'] = cardviewSpec ? cardviewSpec.configuration : undefined;\n compConfigInfo['configStamp'] = cardviewSpec ? cardviewSpec.configStamp : 0;\n compConfigInfo['classConfigStamp'] = cardviewSpec ? cardviewSpec.classConfigStamp : 0;\n\n if (cardviewSpec.type === 'CardView') {\n cardviewSpec['componentType'] = 'CARDVIEW';\n }\n cardviewSpec['configInfo'] = compConfigInfo;\n\n const formInfo: LMComponentInfo = {\n componentType: cardviewSpec.componentType,\n name: cardviewSpec ? cardviewSpec.id : undefined,\n cardviewSpec,\n hasConfigAccess: false,\n type: 'card',\n };\n\n return formInfo;\n }\n }\n}\n","\n\n\n
        \n\n \n
        \n \"\"/\n
        \n\n \n
        \n {{cardTemplateData?.imageForegroundText}}\n
        \n\n
        \n
        \n \n \n
        \n
        \n \n \n \n

        0}\">\n {{item.label}}: \n \n

        \n
        \n\n \n \n \n\n \n \n \n\n \n {{item?.displayValue}}\n {{item?.displayValue}}\n \n\n \n \n\n {{item?.displayValue}}\n\n {{item?.displayValue}}\n \n \n \n \n \n \n\n {{item?.displayValue.trim()}}\n \n \n \n \n \n \n \n\n \n \n
        \n
        \n \n \n \n \n \n
        \n
        \n
        \n\n \n {{item?.displayValue}}\n\n \n \n \n \n {{item?.displayValue}}\n \n\n \n \n\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n\n \n \n\n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        0\" class=\"lm-card-button-row\">\n \n \n \n \n {{b.actionReference?.label}}\n \n \n  \n {{b.actionReference?.label}}\n \n \n \n \n \n \n {{b.actionReference?.label}}\n \n\n \n \n\n \n \n \n \n
        \n
        \n\n\n \n \n \n\n\n\n

        {{noDataAvailable}}

        \n
        \n\n\n","import {\n LMDataGridBaseComponent,\n LMEditorService,\n LMFormatterService,\n LMListEventService,\n LMListGridBuilderService,\n LMListGridPagingService,\n LMListGridUtilService,\n LMListSpecUtilService,\n LMListUtilService\n} from './index';\nimport {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n LMBusyIndicatorService, LMCompoundFieldService,\n LMContextService, LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService, LMUrlInfoBuilderService,\n LMUrlUtilService\n} from '@services/index';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { AppConstants, LMConditionUtilService, LMUniqueIdService } from '@utils/index';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { ListResource } from '@resources/list.resource';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport * as urltemplate from 'url-template';\n\n@Component({\n selector: 'lm-list-chart-aggregation',\n template: `\n
        \n\n
        \n
        \n\n
        \n\n \n
        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n `\n})\nexport class LMListChartAggregationComponent extends LMDataGridBaseComponent implements LMListContentInterface, OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n\n @Input() set chartName(chartName: string) {\n // Safety check\n if (!chartName || this._chartName === chartName) {\n return;\n }\n\n this._chartName = chartName;\n this.chartNameChanged();\n }\n\n @Input() sortOrder?: LMListSortOrder;\n\n data: any[];\n pageSize: number;\n firstPageButtonTooltip: string;\n previousPageButtonTooltip: string;\n nextPageButtonTooltip: string;\n lastPageButtonTooltip: string;\n enableFirstPage = true;\n enablePreviousPage = true;\n enableNextPage = true;\n enableLastPage = true;\n uiLoadingIndicatorTimeout = 0;\n public sohoGridEmptyMessage: SohoEmptyMessageOptions = null;\n public hasChartData = false;\n public inProgress = false;\n public inProgressMessage: SohoEmptyMessageOptions = { };\n public _chartName: string;\n private _chartNameChanged = false;\n private fLoadInitialData = false;\n private fFilterCriteriaChanged = false;\n private readonly implementsCancelablePaging;\n private cancelPagingNotifier$: Subject;\n private initialPageSubscription: Subscription;\n private listEventSubs: Subscription[] = [];\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmListGridUtilService: LMListGridUtilService,\n private lmListGridPagingService: LMListGridPagingService,\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmEditorService: LMEditorService,\n protected lmFormatterService: LMFormatterService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridBuilderService: LMListGridBuilderService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmCompoundFieldService: LMCompoundFieldService,\n protected sohoMessageService: SohoMessageService,\n protected lmUniqueIdService: LMUniqueIdService,\n protected lmContextService: LMContextService,\n protected lmErrorUtilService: LMErrorUtilService,\n ) {\n super(\n lmConditionUtilService,\n lmContextService,\n lmEditorService,\n lmFormatterService,\n lmFormatUtilService,\n lmListEventService,\n lmListGridBuilderService,\n lmLoggerService,\n lmThemeService,\n lmUrlUtilService,\n lmListSpecUtilService,\n lmListUtilService,\n lmCompoundFieldService,\n sohoMessageService,\n lmUniqueIdService,\n );\n\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n }\n\n ngOnInit() {\n this.clearEmptyMessage();\n this.validateInitialInputs();\n this.build();\n }\n\n ngAfterViewInit() {\n this.getSavedColumns();\n if (this.savedColumns && this.savedColumns.length > 0) {\n this.sohoDataGridComponent.restoreUserSettings({ columns: this.savedColumns });\n }\n if (!this.listSpec.dependentList) {\n this.fLoadInitialData = true;\n }\n }\n\n ngAfterViewChecked() {\n if (!this.sohoDataGridComponent || this.componentDestroyed) {\n return;\n }\n\n if (this._chartNameChanged) {\n this.build();\n }\n\n if (this.fLoadInitialData) {\n this.fLoadInitialData = false;\n\n this.fFilterCriteriaChanged = false;\n setTimeout(() => this.initialPage());\n }\n\n if (this.fFilterCriteriaChanged\n || this._chartNameChanged) {\n this.fFilterCriteriaChanged = false;\n this._chartNameChanged = false;\n\n if (this.filterCriteria) {\n setTimeout(() => this.filterPage(this.filterCriteria));\n } else {\n setTimeout(() => this.initialPage());\n }\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n\n if (this.initialPageSubscription && !this.initialPageSubscription.closed) {\n // ---------------------------------------------------------------------------------\n // If a call to the back end is still out then we want to\n // unsubscribe from it to cancel the client side processing\n // of the http client request.\n // ---------------------------------------------------------------------------------\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnDestroy(): initialPageSubscription is still open, unsubscribing...' ]);\n this.initialPageSubscription.unsubscribe();\n }\n\n this.listEventSubs.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n protected loadManualData(): void {\n // Not implemented\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Not implemented\n }\n\n public fromDataViewChanged(): void {\n if (this.listState.filterCriteria) {\n setTimeout(() => this.filterPage(this.listState.filterCriteria));\n } else {\n setTimeout(() => this.initialPage());\n }\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n protected filterCriteriaChanged(): void {\n this.fFilterCriteriaChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n protected chartNameChanged(): void {\n this._chartNameChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n protected filterListCriteriaChanged(): void {\n // currently not supported.\n }\n\n public updateGridOptions(): void {\n // nothing to update.\n }\n\n public get datagridId(): string {\n if (!this.listSpec) {\n return null;\n }\n return this.listSpec.busListSpec.id + '_aggtable_datagrid';\n }\n\n onCloseFilterRow(event: SohoDataGridOpenFilterRowEvent) {\n this.m_filterCriteria = [];\n this.listState.filterCriteria = [];\n this.sohoDataGridComponent.clearFilter();\n }\n\n // overrides LMDataGridBaseComponent\n protected build(): void {\n this.pageSize = this.listPersonalization.pageSize || this.listSpec.busListSpec.showLines || this.listSpec.pageSize;\n\n if (this.listEventSubs.length === 0) {\n this.listEventSubs.push(this.lmListEventService.listGridContinuePagingEvent$.subscribe((pagingEvent: LMListGridPagingEvent) => {\n this.onContinuePaging(pagingEvent);\n }));\n }\n\n this.lmEditorService.listSpec = this.listSpec;\n this.lmFormatterService.listSpec = this.listSpec;\n this.listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(this.listSpec);\n\n this.gridOptions = this.lmListGridBuilderService.buildAggregationDataGridOptions(this.listUrlInfo, this.listSpec, this.listState, this.listPersonalization, this._chartName);\n // ----------------------------------------------------------------\n // Used by grid formatters (and editors?) to get the dataViewSet\n // ----------------------------------------------------------------\n this.gridOptions.userObject = () => this;\n\n this.gridOptions.columns\n .map(column => column)\n .forEach((column: ListGridColumn) => {\n // ----------------------------------------------------------------\n // if selection is disable run the rowClick event emitter\n // when clicking in a cell that's not a checkbox, link, or button\n // ----------------------------------------------------------------\n if (column.isActionable) {\n column.click = (event, args) => this.onColumnClicked(column, event, args);\n }\n });\n }\n\n private handleInitialPageCancel() {\n this.enableFirstPage = false;\n this.enablePreviousPage = false;\n this.enableNextPage = false;\n this.enableLastPage = false;\n this.data = [];\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.removeSelected();\n }\n\n const message = '';\n const title = Soho.Locale.translate('NoDataAvailable');\n this.handleError(message, title);\n this.changeDetectorRef.markForCheck();\n }\n\n private handleCancelableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n private initialPage(): void {\n if (this.componentDestroyed) {\n return;\n }\n this.handleCancelableRequest();\n\n const url = this.buildInitialPageUrl();\n const initialNbrRecs = this.lmListUtilService.getInitialNumberOfRecs(this.listSpec, this.listState, this.pageSize);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // -------------------------------------------------------------\n // request the first page of records and log how long it took\n // -------------------------------------------------------------\n this.lmLoggerService.time({ id: 'LMListGrid.initialPage() ' + this.instanceId });\n this.hasChartData = false;\n this.inProgress = true;\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.initialPageSubscription = this.lmListGridPagingService.initialPage(url, initialNbrRecs, postContent, this.listState.columnarOptions).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.componentDestroyed) {\n return;\n }\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.handleInitialPageCancel();\n }\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.updateColumnVisibility(this.listSpec, listPagingResponse.dataViewSet);\n this.postInitialPage(listPagingResponse);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n onBeforePaging(pageOp: LMPageOp, event: any) {\n const beforePagingEvent: LMListGridPagingEvent = { pageOp, sohoDataGridEvent: event };\n\n this.lmListEventService.listGridBeforePagingEvent(beforePagingEvent);\n }\n\n onContinuePaging(continuePagingEvent: LMListGridPagingEvent) {\n switch (continuePagingEvent.pageOp) {\n case 'first':\n this.onFirstPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'last':\n this.onLastPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'next':\n this.onNextPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'previous':\n this.onPreviousPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'filter':\n this.onFilterPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'sort':\n this.onSortPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'pagesize':\n this.onPageSizeChange(continuePagingEvent.sohoDataGridEvent, true);\n break;\n }\n }\n\n onPageSizeChange(args: any[], continuePaging = false) {\n if (!continuePaging) {\n this.onBeforePaging('pagesize', args);\n return;\n }\n\n this.pageSize = args[1].pagesize;\n this.listPersonalization.pageSize = args[1].pagesize;\n this.reloadPage();\n }\n\n /******************************************************************************\n * FIRST PAGE\n ******************************************************************************/\n onFirstPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('first', event);\n return;\n }\n\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.firstPage() ' + this.instanceId });\n this.lmListGridPagingService.firstPage(this.dataViewSet, this.pageSize, postContent, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.firstPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse, -1, 0);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /******************************************************************************\n * LAST PAGE\n ******************************************************************************/\n onLastPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('last', event);\n return;\n }\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the last page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.lastPage() ' + this.instanceId });\n\n this.lmListGridPagingService.lastPage(this.dataViewSet, postContent, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.lastPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse, -1, 0);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /******************************************************************************\n * NEXT PAGE\n ******************************************************************************/\n onNextPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('next', event);\n return;\n }\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the next page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.nextPage() ' + this.instanceId });\n this.lmListGridPagingService.nextPage(this.dataViewSet, postContent, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.nextPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse, -1, 0);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /******************************************************************************\n * PREVIOUS PAGE\n ******************************************************************************/\n onPreviousPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('previous', event);\n return;\n }\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListGrid.previousPage() ' + this.instanceId });\n this.lmListGridPagingService.previousPage(this.dataViewSet, postContent, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.previousPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse, -1, 0);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /******************************************************************************\n * SORT PAGE\n ******************************************************************************/\n onSortPage(event: SohoDataGridSortedEvent, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('sort', event);\n return;\n }\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const sortColumn = this.sohoDataGridComponent.columnById(event.sortId)[ 0 ];\n const sortAscending = event.sortAsc;\n const sortOrderName = sortColumn.displayField.fieldId;\n\n if (!this.listState.columnarOptions) {\n this.listState.columnarOptions = {};\n }\n\n this.listState.columnarOptions.selectedDimension = sortOrderName;\n this.listState.columnarOptions.selectedOrderBy = sortOrderName;\n this.listState.columnarOptions.isAscending = sortAscending;\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.listState.sortOrderCriteria = {\n sortOrderName,\n isAscending: sortAscending\n };\n\n // request the sorted page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.sortPage() ' + this.instanceId });\n this.lmListGridPagingService.sortPage(url, this.listState.filterCriteria, this.listState.sortOrderCriteria, this.pageSize, postContent, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.sortPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n // ----------------------------------------------------------------------------------\n // initial, filter and sort page should call postInitialPage\n // first, last, next, prev, and refresh/reload should call processListPagingResponse.\n // ----------------------------------------------------------------------------------\n listPagingResponse.resetSelection = true;\n this.postInitialPage(listPagingResponse);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /******************************************************************************\n * FILTER PAGE\n ******************************************************************************/\n onFilterPage(event: SohoDataGridFilteredEvent, continueFiltering = false): void {\n if (this.disabled) {\n // -------------------------------------------------------------\n // this is here until soho grid.js has a disabled state that\n // would restrict the filter bar field entry from messaging\n // this function.\n // -------------------------------------------------------------\n return;\n }\n\n if (event.op === 'clear' || !event.conditions || event.conditions.length === 0) {\n if (!this.listState.filterCriteria || this.listState.filterCriteria.length === 0) {\n // --------------------------------------------------------------------------\n // getting a 'filtered' event when closing the filter row. On the close\n // filter row event I set a flag and if we are asked to close a filter\n // we should only clear the filter if a filter has already ben executed\n // --------------------------------------------------------------------------\n return;\n }\n }\n\n if (!continueFiltering) {\n this.onBeforePaging('filter', event);\n return;\n }\n // --------------------------------------------------------------------------\n // setting filterCriteria input here will causes a filterCriteriaChanged()\n // message which will cause filterPage() to be called during the\n // ngAfterViewChecked lifecycle event.\n // --------------------------------------------------------------------------\n const pendingFilterCriteria = this.getFilterCriteria(event.conditions);\n\n if (this.lmListUtilService.areTheSameJson(pendingFilterCriteria, this.listState.filterCriteria)) {\n return;\n }\n\n if (this.validateFilterCriteria(pendingFilterCriteria)) {\n this.listState.filterCriteria = pendingFilterCriteria;\n this.lmListEventService.updateFilterCriteriaEvent(this.listState.filterCriteria);\n }\n }\n\n private filterPage(filterCriteria: LMFilterFieldCriteria[]) {\n this.handleCancelableRequest();\n this.lmLoggerService.log([ this, this.instanceId, 'datagrid.source - filtered called' ]);\n this.lmListGridUtilService.unSelectAllRows(this.sohoDataGridComponent);\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.filterPage() ' + this.instanceId });\n this.hasChartData = false;\n this.inProgress = true;\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.lmListGridPagingService.filterPage(url, filterCriteria, this.pageSize, postContent, this.sortOrder, null, null).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.filterPage() ' + this.instanceId, [ this, this.dataViewSet, 'pageSize: ' + this.pageSize, 'filterCriteria:', this.m_filterCriteria ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n // ----------------------------------------------------------------------------------\n // initial, filter and sort page should call postInitialPage\n // first, last, next, prev, and refresh/reload should call processListPagingResponse.\n // ----------------------------------------------------------------------------------\n this.listState.filterCriteria = filterCriteria;\n this.listState.sortOrderCriteria = this.sortOrder;\n listPagingResponse.resetSelection = true;\n this.postInitialPage(listPagingResponse);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n /*****************************************************************************\n * RELOAD PAGE\n *****************************************************************************/\n private reloadPage(): void {\n this.handleCancelableRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const selectedRow = this.lmListGridUtilService.getSelectedIndex(this.sohoDataGridComponent, true);\n const activatedRow = this.lmListGridUtilService.getActivatedRow(this.sohoDataGridComponent, true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.reloadPage() ' + this.instanceId });\n this.lmListGridPagingService.reloadPage(this.dataViewSet, this.pageSize, postContent, null, this._chartName).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMChartAggregation.reloadPage() ' + this.instanceId, [ this, this.dataViewSet, 'newPageSize: ' + this.pageSize ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse, selectedRow, activatedRow);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n }\n\n public refresh(): Observable {\n this.disableSelectionListener = true;\n this.unSelectAllRows();\n this.clearRowAndCellIndicators();\n\n return new Observable(observer => {\n this.reloadPage();\n this.disableSelectionListener = false;\n\n observer.next(true);\n observer.complete();\n });\n }\n\n // Changes here should be reflected in lm-list-chart.ts::buildInitalPageUrl().\n private buildInitialPageUrl(forceUrlRebuild = false): string {\n let url: string;\n if (this.listSpec\n && this.listSpec.dependentList) {\n if (this.listState.currentPageUrl\n && !forceUrlRebuild\n && this._fromDataView.resourceId === this.listState.fromResourceId\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // if the fromDataView hasn't changed and there is a currentPageUrl then load that\n // to keep our position in the dependent list.\n url = this.listState.currentPageUrl;\n } else {\n // else resolve template against the fromDataView's resourceId\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n url = compiledUrlTemplate.expand({ resourceId: this._fromDataView.resourceId });\n }\n } else if (this.listState.currentPageUrl\n && !forceUrlRebuild\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n url = this.listState.currentPageUrl;\n } else {\n url = this.listUrlInfo.initialDataUrl;\n }\n\n return this.lmUrlUtilService.appendToQueryString(url, 'aggregation=' + this._chartName);\n }\n\n private processListPagingResponse(listPagingResponse: LMListPagingResponse, selectRow = -1, activatedRow = -1) {\n /**\n * Set the member dataViewSet variable\n */\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n /**\n * Store the current paging url into list state\n */\n this.listState.currentPageUrl = this.lmUrlUtilService.removeParam(this.dataViewSet.pagingUrls.reloadPageUrl, 'aggregation');\n this.dataViewSet.pagingUrls.reloadPageUrl = this.lmUrlUtilService.removeParam(this.lmUrlUtilService.removeParam(\n this.dataViewSet.pagingUrls.reloadPageUrl, 'lk'), 'fk');\n\n if (listPagingResponse.status === AppConstants.STATUS_COMPLETED) {\n this.loadDataIntoDataGrid();\n // --------------------------------------------------------------\n // need in a timeout to make sure the datagrid is built and\n // loaded before attempting to call functions on it.\n // --------------------------------------------------------------\n setTimeout(() => {\n this.selectionInProgress = true;\n this.clearRowAndCellIndicators();\n\n // update the sort indicator\n this.updateSortColumn(this.listSpec, this.dataViewSet);\n\n if (activatedRow !== undefined && activatedRow > -1) {\n if (activatedRow >= this.dataViewSet.data.length) {\n activatedRow = this.dataViewSet.data.length - 1;\n }\n // https://jira.lawson.com/browse/LMCLIENT-25037\n if (activatedRow > -1) {\n this.activateRow(activatedRow);\n } else {\n // need to fire an event to update related content like detail panels ?? see if cheryl will promote for me\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n }\n\n if (selectRow > -1) {\n if (selectRow >= this.dataViewSet.data.length) {\n selectRow = this.dataViewSet.data.length - 1;\n }\n this.lmListGridUtilService.selectRow(this.sohoDataGridComponent, selectRow);\n }\n this.selectionInProgress = false;\n });\n } else {\n // todo handle other landmark return status'\n }\n }\n\n private loadDataIntoDataGrid() {\n if (this.disabled) {\n // safety - in case function is called when disabled\n this.disableComponent();\n return;\n }\n\n this.enableFirstPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.firstDisabled && this.dataViewSet.data.length > 0;\n this.enablePreviousPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.previousDisabled && this.dataViewSet.data.length > 0;\n this.enableNextPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.nextDisabled && this.dataViewSet.data.length > 0;\n this.enableLastPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.lastDisabled && this.dataViewSet.data.length > 0;\n\n this.firstPageButtonTooltip = !this.enableFirstPage && this.dataViewSet.pagingInfo.firstDisabledReason ?\n this.dataViewSet.pagingInfo.firstDisabledReason : Soho.Locale.translate('FirstPage');\n\n this.previousPageButtonTooltip = !this.enablePreviousPage && this.dataViewSet.pagingInfo.previousDisabledReason ?\n this.dataViewSet.pagingInfo.previousDisabledReason : Soho.Locale.translate('PreviousPage');\n\n this.nextPageButtonTooltip = !this.enableNextPage && this.dataViewSet.pagingInfo.nextDisabledReason ?\n this.dataViewSet.pagingInfo.nextDisabledReason : Soho.Locale.translate('NextPage');\n\n this.lastPageButtonTooltip = !this.enableLastPage && this.dataViewSet.pagingInfo.lastDisabledReason ?\n this.dataViewSet.pagingInfo.lastDisabledReason : Soho.Locale.translate('LastPage');\n\n this.data = this.dataViewSet.data;\n this.hasChartData = (this.data && this.data.length > 0);\n this.inProgress = false;\n this.setEmptyMessage();\n this.sohoGridEmptyMessage = this.emptyMessage;\n\n this.changeDetectorRef.markForCheck();\n }\n\n private clearRowAndCellIndicators(): void {\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.clearDirty();\n }\n }\n\n private updateSortColumn(listSpec: LMListSpec, dataViewSet: LMDataViewSet): void {\n this.listSpec.busListSpec.displayFields\n .filter(displayField => displayField.fieldId === this.dataViewSet.pagingInfo.sortOrderName)\n .forEach(displayField => {\n const visibleColumns = this.sohoDataGridComponent.getColumns();\n const column: ListGridColumn = this.getFirstVisibleColumnForFieldId(displayField.fieldId, visibleColumns);\n if (column != null) {\n this.sohoDataGridComponent.setSortIndicator(column.id, this.dataViewSet.pagingInfo.isAscending);\n }\n });\n }\n\n private getFirstVisibleColumnForFieldId(fieldId: string, visibleColumns: Array): ListGridColumn {\n const foundColumn: ListGridColumn = visibleColumns.find(column => column.fieldId === fieldId);\n return foundColumn;\n }\n\n private disableComponent() {\n this.enableFirstPage = false;\n this.enablePreviousPage = false;\n this.enableNextPage = false;\n this.enableLastPage = false;\n this.data = [];\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.removeSelected();\n }\n\n this.setEmptyMessage();\n this.sohoGridEmptyMessage = this.emptyMessage;\n\n this.changeDetectorRef.markForCheck();\n }\n\n /**\n * Assumes this.dataViewSet is already set.\n * @param gridPagingRequest\n * @param gridPagingResponse\n */\n private postInitialPage(listPagingResponse: LMListPagingResponse) {\n\n this.updateColumnLabels(this.listSpec, listPagingResponse.dataViewSet);\n this.processListPagingResponse(listPagingResponse, this.getSelectedRow());\n\n /**\n * Reset the listResource to be the rangeViewKey + listName once a dataViewSet\n * is initially loaded. This will be the actual listResource used for anything\n * else that happens in the client.\n *\n * This is needed for:\n * - When this list becomes a sourceResource to another list.\n * - Opening a create form, the list will have the range keys.\n *\n * Phillip\n */\n // List resource will be that of targetList and it is used to perform create or update.\n // So do not overwrite the listResource based on dataviewSet header.\n this.listResource = new ListResource({\n resourceId: this.dataViewSet.header.resourceId,\n listName: this.listSpec.busListSpec.name,\n chartName: this._chartName\n });\n\n this.updateFilterBar();\n this.updateSortColumn(this.listSpec, listPagingResponse.dataViewSet);\n\n /**\n * fire dataloaded event once datagrid has been initially loaded with data.\n * Do not fire for any other paging requests other than 'initial', 'sort' or 'filtered'.\n * Must put this into a timeout so a timeout in sohoxi (which un-selects\n * all rows) can execute first.\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(listPagingResponse));\n }\n\n public onRowClicked(event: SohoDataGridRowClicked) {\n return;\n }\n\n public onRowDoubleClicked(event: SohoDataGridRowClicked): void {\n return;\n }\n\n public onRowSelected(event: SohoDataGridSelectedEvent) {\n return;\n }\n\n public onColumnClicked(columnDef: any, event: any, args: any) {\n\n const row = args[0].row;\n const cell = args[0].cell;\n const dataView = args[0].item;\n const navigationParams = event.target.dataset.navigationParams ? JSON.parse(event.target.dataset.navigationParams) : null;\n\n if (columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = {\n columnDef,\n dataView,\n event,\n navigationParams\n };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n } else if (columnDef.displayField.aggDrill) {\n // Send an event up with the url\n const options: LMUILinkEventOptions = { aggDrill: true, savedFilter: this.buildAggDrillDimensionFilter(dataView) };\n const uiLinkEvent: LMUILinkEvent = {\n columnDef,\n dataView,\n event,\n options,\n };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n }\n }\n\n private buildAggDrillDimensionFilter(dataView: LMDataView): string {\n // Failed attempts\n // fc.filter did not work if the list did not have those columns defined\n // setting static keys did not work since the keyset and keys required to build the drill list resourceId is unknown in columnar list\n // Going with saved filter instead and it sticks around even if the user filters the list.\n\n // 1. filter= !v.isTotal)\n // .map((v) => '( ' + v.fieldId + ' = \"' + encodeURIComponent(dataView.fields[v.fieldId].value as string) + '\" )')\n // .join (' and ');\n\n // 2. fc.field = eqauls(fieldValue)\n // return this.listSpec.busListSpec.charts[this._chartName].aggFields\n // .filter((v) => !v.isTotal)\n // .map((v) => 'fc.' + v.fieldId + '=equals(' + encodeURIComponent(dataView.fields[v.fieldId].value as string) +')')\n // .join ('&');\n\n // 3. Add it to static keys\n // const staticKeys = this.listSpec.busListSpec.charts[this._chartName].aggFields\n // .filter((v) => !v.isTotal)\n // .map((v) => v.fieldId + '=' + encodeURIComponent(dataView.fields[v.fieldId].value as string))\n // .join (',');\n // return dataView.resourceId.substring(0, dataView.resourceId.length - 1) + '|' + staticKeys + ')';\n\n // 4. savedFilter=\n // The values will be encoded when ListComponent builds the URL.\n const columnarInstanceSelection = this.getDataViewSet().columnarInfo.aggFilter ? this.getDataViewSet().columnarInfo.aggFilter + ' and ': '';\n\n return columnarInstanceSelection\n + this.listSpec.busListSpec.charts[this._chartName].aggFields\n .filter((v) => !v.isTotal)\n .map((v) => '( ' + v.filterFieldId + ' = \"' + (dataView.fields[v.fieldId].value as string) + '\" )')\n .join (' and ');\n }\n\n /**\n * Call this one new data has come in but only on initialPage to\n * @param listSpec\n * @param dataViewSet\n */\n protected updateColumnVisibility(listSpec: LMListSpec, dataViewSet: LMDataViewSet) {\n const gridColumns: ListGridColumn[] = this.sohoDataGridComponent.getColumns();\n for (let i = gridColumns.length - 1; i >= 0; i--) {\n const gridColumn: ListGridColumn = gridColumns[ i ];\n const displayField: LMListDisplayField = gridColumn.displayField;\n if (displayField && displayField.columnVisibility) {\n const dataView = this.dataViewSet.header;\n\n if (this.lmConditionUtilService.isValid(displayField.columnVisibility, dataView)) {\n this.sohoDataGridComponent.showColumn(gridColumn.id);\n } else {\n this.sohoDataGridComponent.hideColumn(gridColumn.id);\n }\n }\n }\n }\n\n protected validateFilterCriteria(filterCriteria: LMFilterFieldCriteria[]): boolean {\n return true;\n }\n\n public activateRow(row: number, scrollIntoView?: boolean): void {\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.activateRow(row);\n }\n }\n\n protected updateFilterBar() {\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // depending on the the status,\n // Complete - row marked pristine and successful\n // else - row marked in error\n // TODO how do we handle transactions that have bee canceled because\n // the user did not confirm the action or did not enter the required input\n // The cancelled transaction will have status AppConstants.CONFIRMATION_REQUIRED\n\n const rowStatus = AppConstants.STATUS_COMPLETED === status ? '' : 'error';\n this.rowStatus(key, rowStatus, message);\n }\n}\n","import {\n OnInit,\n Component,\n Input\n} from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\n\n@Component({\n selector: 'lm-list-chart-selectors',\n templateUrl: 'lm-list-chart-selectors.component.html'\n})\nexport class LMListChartSelectorsComponent implements OnInit {\n\n @Input() set listSpec(listSpec) {\n this._listSpec = listSpec;\n };\n\n get listSpec(): LMListSpec {\n return this._listSpec;\n };\n\n @Input() set dataViewSet(dataViewSet) {\n this._dataViewSet = dataViewSet;\n };\n\n get dataViewSet(): LMDataViewSet {\n return this._dataViewSet;\n };\n\n @Input() set selectedDimension(selectedDimension) {\n this._selectedDimension = selectedDimension;\n };\n\n get selectedDimension(): string {\n return this._selectedDimension;\n };\n\n @Input() set selectedTotal(selectedTotal) {\n this._selectedTotal = selectedTotal;\n };\n\n get selectedTotal(): string {\n return this._selectedTotal;\n };\n\n @Input() set selectedOrderBy(selectedOrderBy) {\n this._selectedOrderBy = selectedOrderBy;\n };\n\n get selectedOrderBy(): string {\n if (this._selectedOrderBy && this.totals.findIndex(x => x.value === this._selectedOrderBy) === -1) {\n return this.selectedDimension;\n }\n\n return this._selectedOrderBy;\n };\n\n @Input() set isAscending(isAscending) {\n this._isAscending = isAscending;\n };\n\n get isAscending(): boolean {\n return this._isAscending;\n };\n\n @Input() set listState(listState) {\n this._listState = listState;\n };\n\n get listState(): LMListState {\n return this._listState;\n };\n\n @Input() set chartName(chartName) {\n this._chartName = chartName;\n };\n\n get chartName(): string {\n return this._chartName;\n };\n\n constructor(\n private lmFormatUtilService: LMFormatUtilService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n _listSpec: LMListSpec;\n _dataViewSet: LMDataViewSet;\n _selectedDimension: string;\n _dimensionId: string;\n _selectedTotal: string;\n _totalId: string;\n _selectedOrderBy: string;\n _orderById: string;\n _isAscending: boolean;\n _isAscendingId: string;\n _listState: LMListState;\n _chartName: string;\n _dimensions: LMStateValue[] = [];\n _totals: LMStateValue[] = [];\n _orderBy: LMStateValue[] = [];\n _dimensionChanged = false;\n _totalChanged = false;\n _orderByChanged = false;\n _isAscendingChanged = false;\n\n set dimensions(dimensions) {\n this._dimensions = dimensions;\n };\n\n get dimensions(): LMStateValue[] {\n return this._dimensions;\n };\n\n get dimensionId(): string {\n return this._dimensionId;\n }\n\n set totals(totals) {\n this._totals = totals;\n };\n\n get totals(): LMStateValue[] {\n return this._totals;\n }\n\n get totalId(): string {\n return this._totalId;\n }\n\n set orderBy(orderBy) {\n this._orderBy = orderBy;\n };\n\n get orderBy(): LMStateValue[] {\n return this._orderBy;\n };\n\n get orderById(): string {\n return this._orderById;\n }\n\n get isAscendingId(): string {\n return this._isAscendingId;\n }\n\n set dimensionChanged(dimensionChanged) {\n this._dimensionChanged = dimensionChanged;\n };\n\n get dimensionChanged(): boolean {\n return this._dimensionChanged;\n };\n\n set totalChanged(totalChanged) {\n this._totalChanged = totalChanged;\n };\n\n get totalChanged(): boolean {\n return this._totalChanged;\n };\n\n set orderByChanged(orderByChanged) {\n this._orderByChanged = orderByChanged;\n };\n\n get orderByChanged(): boolean {\n return this._orderByChanged;\n };\n\n set isAscendingChanged(isAscendingChanged) {\n this._isAscendingChanged = isAscendingChanged;\n };\n\n get isAscendingChanged(): boolean {\n return this._isAscendingChanged;\n };\n\n ngOnInit() {\n const listId = this.listSpec.busListSpec.id;\n this._dimensionId = this.lmUniqueIdService.uniqueId([listId, 'dimension']);\n this._totalId = this.lmUniqueIdService.uniqueId([listId, 'total']);\n this._orderById = this.lmUniqueIdService.uniqueId([listId, 'orderBy']);\n this._isAscendingId = this.lmUniqueIdService.uniqueId([listId, 'isAscending']);\n\n for (let i = 0; i < this.listSpec.busListSpec.displayFields.length; i++) {\n const field: LMListDisplayField = this.listSpec.busListSpec.displayFields[ i ];\n const value: string = this.lmFormatUtilService.formatMessageRule(field.label, this.dataViewSet.header);\n if (field.isTotal) {\n this.totals.push({ value: field.fieldId, label: value });\n this.orderBy.push({ value: field.fieldId, label: value });\n } else {\n let cantJoin: Boolean = false;\n\n if (this.dataViewSet.columnarInfo.cantJoinList) {\n for (const rfsId of this.dataViewSet.columnarInfo.cantJoinList) {\n if (field.fieldId === rfsId) {\n cantJoin = true;\n }\n }\n }\n\n if (!cantJoin) {\n this.dimensions.push({ value: field.fieldId, label: value });\n }\n }\n\n if (field.fieldId === this.dataViewSet.columnarInfo.defaultDimension) {\n this.orderBy.unshift({ value: field.fieldId, label: value });\n }\n }\n\n if (this.totals.length > 1\n && this.listSpec.busListSpec.charts[ this._chartName ].chartType !== 'pie') {\n this.totals.unshift({value: 'COLUMNAR_All', label: 'All'});\n this.selectedTotal = 'COLUMNAR_All';\n }\n\n if (this.listState.columnarOptions) {\n if (this.listState.columnarOptions.selectedDimension) {\n const selDim: LMStateValue = this.dimensions.find(x => x.value === this.listState.columnarOptions.selectedDimension);\n if (selDim) {\n this.selectedDimension = selDim.value;\n\n if (this.orderBy[ 0 ] !== selDim) {\n this.orderBy.shift();\n this.orderBy.unshift(selDim);\n }\n\n if (this.totals.findIndex(x => x.value === this.listState.columnarOptions.selectedOrderBy) === -1) {\n this.listState.columnarOptions.selectedOrderBy = selDim.value;\n }\n } else {\n this.listState.columnarOptions.selectedDimension = this.dataViewSet.columnarInfo.defaultDimension;\n this.listState.columnarOptions.selectedOrderBy = this.dataViewSet.columnarInfo.defaultDimension;\n this.selectedDimension = this.dataViewSet.columnarInfo.defaultDimension;\n }\n } else {\n this.selectedDimension = this.dataViewSet.columnarInfo.defaultDimension;\n }\n\n if (this.listState.columnarOptions.selectedTotal) {\n if (this.listState.columnarOptions.selectedTotal === 'COLUMNAR_All'\n && this.listSpec.busListSpec.charts[ this._chartName ].chartType !== 'pie') {\n this.selectedTotal = 'COLUMNAR_All'\n } else {\n this.selectedTotal = this.totals.find(x => x.value === this.listState.columnarOptions.selectedTotal).value;\n }\n } else {\n if (this.totals.length > 1\n && this.listSpec.busListSpec.charts[ this._chartName ].chartType !== 'pie') {\n this.selectedTotal = 'COLUMNAR_All';\n } else {\n this.selectedTotal = this.listSpec.busListSpec.charts[ this.chartName ].fields[ 0 ].fieldId;\n }\n }\n\n if (this.listState.columnarOptions.selectedOrderBy) {\n this.selectedOrderBy = this.orderBy.find(x => x.value === this.listState.columnarOptions.selectedOrderBy).value;\n } else {\n this.selectedOrderBy = this.dataViewSet.columnarInfo.defaultDimension;\n }\n\n if (this.listState.columnarOptions.isAscending !== undefined) {\n this.isAscending = this.listState.columnarOptions.isAscending;\n } else {\n this.isAscending = !this.dataViewSet.columnarInfo.isDefaultDescending;\n }\n\n this.listSpec = undefined;\n }\n }\n\n trackByValueDimension(index: number, state: LMStateValue) {\n return state.value;\n }\n\n trackByValueTotal(index: number, state: LMStateValue) {\n return state.value;\n }\n\n trackByValueOrderBy(index: number, state: LMStateValue) {\n return state.value;\n }\n}\n","
        \n
        \n \n \n \n \n
        \n\n
        \n \n \n \n \n
        \n\n
        \n \n \n \n \n
        \n\n
        \n \n \n
        \n
        ","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input, NgZone,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport * as urltemplate from 'url-template';\nimport { AppConstants, LMTransformOptions } from '@utils/index';\nimport { ChangeDetectorRef, QueryList, ViewChildren } from '@angular/core';\nimport {\n LMBusyIndicatorService,\n LMContextService, LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService\n} from '@services/index';\nimport {\n LMListEventService,\n LMListGridPagingService,\n LMListSpecUtilService,\n LMListUtilService\n} from './services/';\nimport { LMChartBase } from '@chart/lm-chart-base';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { LMListChartSelectorsComponent } from './lm-list-chart-selectors.component';\nimport { LMFormatterService } from './formatters';\nimport { SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMDataGridBaseComponent } from '@app/components';\nimport { LMListChartAggregationComponent } from '@list/lm-list-chart-aggregation';\n\n@Component({\n selector: 'lm-list-chart',\n templateUrl: './lm-list-chart.component.html',\n styleUrls: [ 'lm-list-chart.component.scss' ]\n})\nexport class LMListChartComponent extends LMListContentBaseComponent implements LMListContentInterface, OnInit, OnDestroy, AfterViewChecked, AfterViewInit {\n\n @ViewChildren('LMChartComponent') lmChartComponents: QueryList;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('LMListChartSelectors') lmListChartSelectors: LMListChartSelectorsComponent;\n @ViewChild('LMListChartAggregation') lmListChartAggregation: LMListContentInterface;\n\n @HostBinding('class.chart-container') get hostScrollable() {\n return true;\n }\n\n @HostBinding('class.card') showAsCard = false;\n\n @Input() set chartName(chartName: string) {\n // Safety check\n if (!chartName || this._chartName === chartName) {\n return;\n }\n\n this._chartName = chartName;\n this._chartNameChanged = true;\n\n this.setChartType();\n\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation\n && this.lmListChartAggregation.chartName !== chartName) {\n this.lmListChartAggregation.chartName = chartName;\n }\n }\n\n /**\n * ListState for a list and all it's contents\n */\n @Input() listState: LMListState;\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n // error TS2610: 'listSpec' is defined as an accessor in class 'LMListContentBaseComponent'\n // @Input() listSpec: LMListSpec;\n\n // error TS2610: 'disabled' is defined as an accessor in class 'LMListContentBaseComponent\n // @Input() disabled: boolean;\n\n @Input() set periodIndex(periodIndex: number) {\n this._periodIndex = periodIndex;\n this._periodIndexChanged = true;\n }\n\n get periodIndex(): number {\n return this._periodIndex;\n }\n\n @Input() isDashBoardContent: boolean;\n\n public lmChartComponent: LMChartBase;\n public type: string;\n\n public _chartName: string;\n private _chartNameChanged = false;\n private _fromDataViewChanged = false;\n private _periodIndexChanged = false;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n private _filterCriteriaChanged = false;\n\n /**\n * Internal member variable, Use listSpec getter when referencing this object.\n */\n private _labels: any = {\n contentsTop: 'value',\n formatterTop: '$,.2f',\n hideLabels: false\n };\n\n private basicData: SohoDataSet;\n private _basicData: SohoDataSet;\n public xAxisFields = [];\n public yAxisFields = [];\n public xAxisId: string;\n public yAxisId: string;\n public selectedXAxis = 0;\n public selectedYAxis = 0;\n public hasChartData = false;\n private _isColumnarView: boolean;\n\n get isColumnarView() {\n if (this._isColumnarView === undefined) {\n this._isColumnarView = this.lmListSpecUtilService.isColumnarView(this.listSpec);\n }\n\n return this._isColumnarView;\n }\n\n public lines = {};\n public tooltip = { show: 'label (value)', formatter: '.0f' };\n public showAxisLabels = false;\n\n private statesArray = [];\n private initialPageSubscription: Subscription;\n private _periodIndex = 0;\n private isPercentPie = false;\n\n get uiLoadingIndicatorTimeout(): number {\n return this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n constructor(\n public elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n private ngZone: NgZone,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n protected lmFormatUtilService: LMFormatUtilService,\n private lmFormatterService: LMFormatterService,\n private lmListEventService: LMListEventService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmListUtil: LMListUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n protected lmErrorUtilService: LMErrorUtilService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n }\n\n ngOnInit() {\n this.setChartType();\n if (this.getType() === 'aggregation') {\n return;\n }\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.clearEmptyMessage();\n let chartName: string;\n if (this._chartName && this._chartName.length > 0) {\n chartName = this._chartName;\n } else if (this.listSpec.busListSpec.defaultChartName && this.listSpec.busListSpec.defaultChartName.length > 0) {\n chartName = this.listSpec.busListSpec.defaultChartName;\n } else {\n chartName = this.listSpec.busListSpec.charts[0].id;\n }\n\n this.xAxisId = this.listSpec.busListSpec.id + chartName + 'X';\n this.yAxisId = this.listSpec.busListSpec.id + chartName + 'Y';\n\n // was in @Input() set listSpec(), moved here and now using basic @Input() listSpec;\n if (this.lmListSpecUtilService.isMultiListPanelContent(this.listSpec)) {\n this.renderer.addClass(this.elementRef.nativeElement, 'multiListChart');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'multiListChart');\n }\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)\n && this.listState\n && !this.listState.columnarOptions) {\n this.listState.columnarOptions = {};\n }\n }\n\n ngAfterViewInit() {\n if (this.getType() === 'aggregation') {\n return;\n }\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this._chartNameChanged = false;\n this._fromDataViewChanged = false;\n this._periodIndexChanged = false;\n if (this.lmListChartSelectors) {\n this.lmListChartSelectors.dimensionChanged = false;\n this.lmListChartSelectors.totalChanged = false;\n this.lmListChartSelectors.orderByChanged = false;\n this.lmListChartSelectors.isAscendingChanged = false;\n }\n this._filterCriteriaChanged = false;\n setTimeout(() => this.build());\n }\n\n ngAfterViewChecked() {\n if (this.getType() === 'aggregation') {\n if (this._fromDataViewChanged) {\n this.lmListChartAggregation.fromDataView = this._fromDataView;\n }\n return;\n }\n let rebuild = false;\n if ((this._chartNameChanged || this._fromDataViewChanged || this._periodIndexChanged) && this.listSpec) {\n this._chartNameChanged = false;\n this._fromDataViewChanged = false;\n this._periodIndexChanged = false;\n rebuild = true;\n }\n\n if (this.lmListChartSelectors && this.lmListChartSelectors.dimensionChanged) {\n this.lmListChartSelectors.dimensionChanged = false;\n rebuild = true;\n }\n\n if (this.lmListChartSelectors && this.lmListChartSelectors.totalChanged) {\n this.listState.columnarOptions.selectedTotal = this.selectedTotal;\n this.lmListChartSelectors.totalChanged = false;\n rebuild = true;\n }\n\n if (this.lmListChartSelectors && this.lmListChartSelectors.orderByChanged) {\n this.lmListChartSelectors.orderByChanged = false;\n rebuild = true;\n }\n\n if (this.lmListChartSelectors && this.lmListChartSelectors.isAscendingChanged) {\n this.lmListChartSelectors.isAscendingChanged = false;\n rebuild = true;\n }\n\n if (this._filterCriteriaChanged) {\n this._filterCriteriaChanged = false;\n rebuild = true;\n }\n\n if (rebuild) {\n if (this.listState.columnarOptions) {\n this.listState.columnarOptions.selectedDimension = this.selectedDimension;\n this.listState.columnarOptions.selectedOrderBy = this.selectedOrderBy;\n this.listState.columnarOptions.isAscending = this.isAscending;\n }\n setTimeout(() => this.build());\n }\n }\n\n ngOnDestroy() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnDestroy' ]);\n }\n\n protected loadManualData() {\n if (this.getType() === 'aggregation') {\n return;\n }\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n this.build();\n }\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Handle click of the no data message button\n if (columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = { columnDef, dataView, event, navigationParams, options: { fromNoDataMessageFormButton: true } };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n protected fromDataViewChanged() {\n if (this.getType() === 'aggregation') {\n this.lmListChartAggregation.fromDataView = this._fromDataView;\n (this.lmListChartAggregation as LMListChartAggregationComponent).fromDataViewChanged();\n return;\n }\n\n // TODO this is different why\n if (this.listSpec.dependentList && !this.componentDestroyed && this.sohoBusyIndicator) {\n this.build();\n }\n }\n\n public isModified(): boolean {\n return false;\n }\n\n public showLegend() {\n return this.getChart().showLegend;\n }\n\n public showLines() {\n return this.getChart().showLabels;\n }\n\n public showLinesMobile() {\n return false;\n }\n\n public hideCenterLabel() {\n return true;\n }\n\n public isDateChart() {\n return this.getChart().showAsDateChart;\n }\n\n public isArea() {\n return this.getChart().showArea;\n }\n\n public isBubble() {\n return this.type === 'bubble';\n }\n\n public hideDots() {\n return false;\n }\n\n public isDonut() {\n return this.getChart().showAsDonut;\n }\n\n public legendPlacement() {\n if (this.type === 'donut' || this.type === 'pie') {\n return 'right';\n }\n return 'bottom';\n }\n\n public isStacked() {\n return this.getChart().showElements === 'Stacked';\n }\n\n public isNormalized() {\n return false;\n }\n\n public getLines() {\n return this.lines;\n }\n\n public isGrouped() {\n return this.getChart().showElements !== 'Stacked';\n }\n\n public animate() {\n return true;\n }\n\n public showTooltips() {\n return true;\n }\n\n public getDirtyRows(commitEdits: boolean = undefined): Array {\n return [];\n }\n\n // temp functions to get chart to display\n public getBasicData() {\n return this.basicData;\n }\n\n public getId() {\n if (this.listSpec) {\n return this.listSpec.busListSpec.id + '_' + this._chartName;\n }\n return this._chartName;\n }\n public getType() {\n return this.type;\n }\n\n public setChartType() {\n const chart = this.getChart();\n let type: any = chart.chartType;\n const fields = chart.fields;\n\n type = (type === 'scatter') ? 'bubble' : type;\n type = (type === 'pie' && fields.length > 1) ?\n (this.lmListSpecUtilService.isCubeView(this.listSpec) && chart.orientation === 'column' ? 'pie' : 'bar') : type;\n type = (type === 'pie' && chart.showAsDonut) ? 'donut' : type;\n type = (type === 'line' && chart.showArea) ? 'area' : type;\n if (type === 'bar') {\n if (chart.showBars === 'Vertically') {\n type = 'column-grouped';\n if (chart.showElements === 'Stacked') {\n type = 'column-stacked';\n }\n } else if (chart.showBars === 'Horizontally') {\n type = 'bar-grouped';\n if (chart.showElements === 'Stacked') {\n type = 'bar-stacked';\n }\n } else {\n type = 'column-grouped';\n }\n }\n this.type = type;\n }\n\n public getChartAnimate() {\n return false;\n }\n\n public getLabels() {\n return this._labels;\n }\n\n public refresh(): Observable {\n return new Observable(observer => {\n this.build(); // need to refresh! this should be in an observable!.\n observer.next(true);\n observer.complete();\n });\n }\n\n public getDataViewSet(): LMDataViewSet {\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation) {\n return this.lmListChartAggregation.getDataViewSet();\n }\n return this.dataViewSet;\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) {\n // TODO implement me.\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // TODO implement me.\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n // this.sohoDataGridComponent.updateRow(key, dataView);\n }\n\n public getDataViewIndex(event: ChartEvent): number {\n if (!event.data) {\n return -1;\n }\n if (event.data.ref) {\n return event.data.ref;\n }\n if (event.data && event.data.length === 1 && event.data[0].ref) {\n return event.data[0].ref;\n }\n if (event.data.data && event.data.data.ref) {\n return event.data.data.ref;\n }\n if (event.data.data && event.data.data.length === 1 && event.data.data[0].ref) {\n return event.data.data[0].ref;\n }\n return -1;\n }\n\n public getSelectedRow(): number {\n const selectedRows = this.getSelectedRows();\n\n if (selectedRows.length === 1) {\n return selectedRows[0];\n } else {\n return 0;\n }\n }\n\n public getSelectedRows(): Array {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return [];\n }\n // let selectedRows: Array = [];\n\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation) {\n return this.lmListChartAggregation.getSelectedRows();\n }\n\n const index = (this.lmListSpecUtilService.isCubeView(this._listSpec)) ? -1 : this.getDVindex();\n // let dataGridSelectedRows: SohoDataGridSelectedRow[] = this.sohoDataGridComponent.getSelectedRows();\n // for (let i = 0, len = dataGridSelectedRows.length; i < len; i++) {\n // selectedRows.push(dataGridSelectedRows[i].idx);\n // }\n // return selectedRows;\n\n return [ index ];\n }\n\n private get selectedDimension() {\n if (this.lmListChartSelectors) {\n return this.lmListChartSelectors.selectedDimension;\n } else\n if (this.listState.columnarOptions\n && this.listState.columnarOptions.selectedDimension) {\n return this.listState.columnarOptions.selectedDimension;\n } else {\n return undefined;\n }\n }\n\n private get selectedTotal() {\n if (this.lmListChartSelectors) {\n return this.lmListChartSelectors.selectedTotal;\n } else\n if (this.listState.columnarOptions\n && this.listState.columnarOptions.selectedTotal) {\n return this.listState.columnarOptions.selectedTotal;\n } else {\n return undefined;\n }\n }\n\n private get selectedOrderBy() {\n if (this.lmListChartSelectors) {\n return this.lmListChartSelectors.selectedOrderBy;\n } else\n if (this.listState.columnarOptions\n && this.listState.columnarOptions.selectedOrderBy) {\n return this.listState.columnarOptions.selectedOrderBy;\n } else {\n return undefined;\n }\n }\n\n private get isAscending() {\n if (this.lmListChartSelectors) {\n return this.lmListChartSelectors.isAscending;\n } else\n if (this.listState.columnarOptions) {\n return this.listState.columnarOptions.isAscending;\n } else {\n return true;\n }\n }\n\n protected filterCriteriaChanged() {\n // See the actual processing of the changed filterCriteriaChanged is in ngAfterViewChecked\n this._filterCriteriaChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n public unSelectAllRows() {\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation) {\n // This will go to lm-datagrid-base component\n this.lmListChartAggregation.unSelectAllRows();\n }\n }\n\n public setSelectedRows(rows: Array, scrollIntoView?: boolean) { // [1, 3, 5 ]\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation) {\n this.lmListChartAggregation.setSelectedRows(rows, scrollIntoView);\n return;\n }\n setTimeout(() => {\n this.lmChartComponent = this.lmChartComponents.toArray()[0];\n if (this.lmChartComponent) {\n this.lmChartComponent.setSelectRef(rows[0]);\n }\n }, 100);\n }\n\n public activateRow(row: number, scrollIntoView?: boolean) {\n // if (this.listSpec.busListSpec.selection === 'disabled') {\n // return; // safety\n // }\n // this.sohoDataGridComponent.activateRow(row);\n if (this.getType() === 'aggregation'\n && this.lmListChartAggregation) {\n return this.lmListChartAggregation.activateRow(row);\n }\n }\n\n public activatedRow(): number {\n return -1;\n }\n\n onSelected(chartEvent: ChartEvent) {\n\n const idx = (this.hasChartData && this.getSelectedRow() != null) ? this.getSelectedRow() : 0;\n\n const listRowSelectedEvent: LMListRowSelectedEvent = {\n event: chartEvent.event,\n rows: [ {\n idx,\n data: {},\n elem: null\n } ]\n };\n\n this.lmListEventService.listRowSelectedEvent(listRowSelectedEvent);\n this.lmLoggerService.log([ this, this.instanceId, chartEvent.event, chartEvent.ui, chartEvent.data ]);\n }\n\n onUnselected(chartEvent: ChartEvent): void {\n // todo: implement me!\n }\n\n // onActivated(chartEvent: ChartEvent): void {\n // // this.listRowActivated.emit(event);\n // this.lmLogger.log([this, this.instanceId, chartEvent.event, chartEvent.ui, chartEvent.data]);\n // }\n\n onRendered(chartEvent: ChartEvent): void {\n // this.listRowDeactivated.emit(event);\n this.lmLoggerService.log([ this, this.instanceId, chartEvent.event ]);\n }\n\n onContextMenu(chartEvent: ChartEvent): void {\n\n if (chartEvent instanceof MouseEvent || (!chartEvent.data && !chartEvent.event.data)) {\n return;\n }\n\n const listRowSelectedEvent: LMListRowSelectedEvent = {\n event: chartEvent.event,\n rows: [ {\n idx: this.getDataViewIndex(chartEvent),\n data: {},\n elem: null\n } ]\n };\n\n // force a row selection before bringing up the the right click menu\n this.lmListEventService.listRowSelectedEvent(listRowSelectedEvent);\n\n const selectedChartRow: LMContextMenuEvent = {\n originalEvent: chartEvent.event,\n row: this.getDataViewIndex(chartEvent),\n item: {},\n cell: 1,\n type: 'chart'\n };\n this.ngZone.run(() => {\n this.lmListEventService.contextMenuEvent(selectedChartRow);\n });\n }\n\n // private buildChart() {\n // this.initialize();\n // this.build();\n // this.events();\n // }\n //\n // private initialize() {\n // if (!this.listSpec) {\n // return;\n // }\n //\n // this.showAsCard = (!this.listSpec.showAsMingleWidget && !this.lmListSpecUtilService.isDashBoardContent(this.listSpec));\n // }\n\n public onAxisChanged(event: ChartAxisChangedEvent) {\n this.selectedXAxis = event.xSelectionIndex;\n this.selectedYAxis = event.ySelectionIndex;\n this.buildChartData(this.dataViewSet, this.listSpec);\n this.basicData = this._basicData;\n }\n\n protected build() {\n if (!this.listSpec || !this._chartName) {\n return;\n }\n this.handleCancellableRequest();\n this.setChartType();\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)\n && !(this.lmListSpecUtilService.isDashBoardContent(this.listSpec))) {\n // Data is available for non dashboard types. Build the chart using the data.\n if (this.dataViewSet) {\n // Data is available, so build chart data directly.\n this.buildChartData(this.dataViewSet, this.listSpec);\n this.basicData = this._basicData;\n }\n this.setEmptyMessage();\n return;\n }\n\n if (this.listSpec.dependentList) {\n if (this.fromDataView === undefined) {\n return; // safety\n }\n\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n // this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can responsd appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already now it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n return;\n }\n\n // Cancel outstanding initial page request, since the selection on the parent list has changed.\n if (this.initialPageSubscription && !this.initialPageSubscription.closed) {\n this.initialPageSubscription.unsubscribe();\n }\n\n if (!this._fromDataView) {\n this.dataViewSet = undefined;\n this.buildChartData(this.dataViewSet, this.listSpec);\n this.basicData = this._basicData;\n\n /**\n * emitting the dataLoaded event with a undefined dataView should\n * cause the lm-list to fully disable.\n * NOTE: Must be called from a timeout to ensure this component is available to the observer.\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n return;\n }\n }\n\n // todo 1. deal with tree view\n // todo 2. deal with cube options - probably need to be in url somewhere set on the server\n\n // let pageSize = this.listPersonalization.pageSize;\n\n // reset to initial url\n let url = this.buildInitialPageUrl();\n\n // // -------------------------------------------------------------\n // // Get the base url\n // // -------------------------------------------------------------\n // const url: string = this.listSpec.dependentList ?\n // this.urlUtilService.buildRelatedUrl(this.listSpec.initialRelatedData, this.fromDataView) :\n // this.listSpec.initialDataUrl;\n\n // -------------------------------------------------------------\n // Get pageSize to pass into the paging service\n // -------------------------------------------------------------\n const pageSize = this.getType() === 'aggregation' ? 0 : -1; // this.sohoDataGridComponent.pageSize();\n const postContent = undefined; // this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const isManualLoad = this.isManualLoading();\n\n url = this.lmUrlUtilService.removeFilterCriteria(url);\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)\n && (this.lmListSpecUtilService.isDashBoardContent(this.listSpec))) {\n let delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n // Add dimension and chart name for Dashboard panel cube views.\n if (this.listSpec.cubeOptions.dimensionName) {\n url = url + delimiter + 'dimensionName=' + this.listSpec.cubeOptions.dimensionName;\n delimiter = '&';\n }\n url = url + delimiter + 'chartName=' + this._chartName;\n url = url + delimiter + 'dashboardView=true';\n }\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n if (this.selectedDimension) {\n const selectedDisplayField = this._listSpec.busListSpec.displayFields.find(x => x.fieldId === this.selectedDimension);\n if (selectedDisplayField === undefined || (selectedDisplayField && selectedDisplayField.isTotal)) {\n this.listState.columnarOptions.selectedDimension = undefined;\n } else {\n url = this.lmUrlUtilService.removeParam(url, 'sortOrderName');\n url = this.lmUrlUtilService.appendToQueryString(url, 'gbfn=' + this.selectedDimension);\n\n this.listState.currentPageUrl = this.lmUrlUtilService.appendToQueryString(\n this.lmUrlUtilService.removeParam(this.listState.currentPageUrl, 'sortOrderName'),\n 'sortOrderName=' + this.selectedDimension);\n\n this.listState.currentPageUrl = this.lmUrlUtilService.appendToQueryString(\n this.lmUrlUtilService.removeParam(this.listState.currentPageUrl, 'pageop'), 'pageop=sort');\n }\n }\n\n if (this.selectedOrderBy) {\n url = this.lmUrlUtilService.appendToQueryString(url, 'obfn=' + this.selectedOrderBy);\n }\n\n if (this.isAscending !== undefined) {\n url = this.lmUrlUtilService.removeParam(url, 'isAscending');\n url = this.lmUrlUtilService.appendToQueryString(url, 'asc=' + this.isAscending);\n\n this.listState.currentPageUrl = this.lmUrlUtilService.appendToQueryString(\n this.lmUrlUtilService.removeParam(this.listState.currentPageUrl, 'isAscending'),\n 'isAscending=' + this.isAscending);\n }\n\n url = this.lmUrlUtilService.appendToQueryString(url, 'chartName=' + this._chartName);\n // url = this.lmUrlUtilService.removeFilterCriteria(url);\n // filterCriteria = this.listState.filterCriteria;\n }\n\n // -------------------------------------------------------------\n // request the first page of records and log how long it took\n // -------------------------------------------------------------\n this.lmLoggerService.time({ id: 'LMListChart.initialPage() ' + this.instanceId });\n // Hide chart when fetching data\n this.hasChartData = false;\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.initialPageSubscription = this.lmListGridPagingService.initialPageFiltered(url, this.filterCriteria,\n pageSize, postContent, isManualLoad).subscribe((listPagingResponse: LMListPagingResponse) => {\n this.lmLoggerService.timeEnd('LMListChart.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n this.setEmptyMessage();\n if (listPagingResponse.status === 'COMPLETED') {\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n this.listState.currentPageUrl = this.dataViewSet.pagingUrls.reloadPageUrl;\n this.postLoadChart(listPagingResponse);\n } else {\n this.basicData = [];\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if (this.lmListSpecUtilService.isDashBoardContent(this.listSpec)) {\n this.lmListEventService.cubeDataLoadedEvent(listPagingResponse);\n }\n return;\n }\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n });\n }\n\n // Changes here should be reflected in lm-list-chart-aggregation.ts::buildInitalPageUrl().\n private buildInitialPageUrl(): string {\n let url;\n if (this.listSpec.dependentList) {\n if (this.listState.currentPageUrl\n && this._fromDataView.resourceId === this.listState.fromResourceId\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // if the fromDataView hasn't changed and there is a currentPageUrl then load that\n // to keep our position in the dependent list.\n url = this.listState.currentPageUrl;\n } else {\n // else resolve template against the fromDataView's resourceId\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n url = compiledUrlTemplate.expand({ resourceId: this._fromDataView.resourceId });\n }\n } else if (this.listState.currentPageUrl\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n && this.lmUrlUtilService.hasSameParamValue(this.listState.currentPageUrl, this.listUrlInfo.initialDataUrl, 'filter')\n ) {\n url = this.listState.currentPageUrl;\n } else {\n url = this.listUrlInfo.initialDataUrl;\n }\n return url;\n }\n\n private handleCancellableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n // data: [{name: 'January', tooltip: 'This is a January', value: {x: 5, y: 3, z: 3}\n\n private buildChartData(dataViewSet: LMDataViewSet, listSpec: LMListSpec) {\n\n this.statesArray = [];\n\n let chartName = '';\n const chartType = this.getType();\n\n if (this._chartName && this._chartName.length > 0) {\n chartName = this._chartName;\n } else if (listSpec.busListSpec.defaultChartName && listSpec.busListSpec.defaultChartName.length > 0) {\n this._chartName = listSpec.busListSpec.defaultChartName;\n } else {\n this._chartName = listSpec.busListSpec.charts[0].id;\n }\n\n const chart = listSpec.busListSpec.charts[chartName];\n const legendFieldId = chart.legend;\n\n if (chart.orientation === 'periodView') {\n const periodData = this.getDataSetForPeriodViewOrientation(dataViewSet);\n if (periodData !== null) {\n this._basicData = periodData.chartData;\n this.hasChartData = (this._basicData && this._basicData[0] && this._basicData[0].data && this._basicData[0].data.length > 0);\n } else {\n this._basicData = [ { data: [] } ];\n this.hasChartData = false;\n this.setNoChartableDataMessage();\n }\n return;\n }\n\n let dataLength = 0;\n\n if (dataViewSet) {\n // if(dataViewSet.data.length > self.MAX_PIE_SLICES)\n // dataLength = self.MAX_PIE_SLICES;\n // else\n dataLength = dataViewSet.data.length;\n }\n\n let fields = chart.fields;\n const fieldsFormatOptions = new Array(fields.length);\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if (dataViewSet && dataViewSet.chartPeriods) {\n fields = dataViewSet.chartPeriods[chartName][this.periodIndex].fields;\n }\n }\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)\n && this.selectedTotal\n && this.selectedTotal !== 'COLUMNAR_All') {\n const dispFld: LMListDisplayField = this.listSpec.busListSpec.displayFields.find(x => x.fieldId === this.selectedTotal);\n const fld: LMChartField = { fieldId: dispFld.fieldId, label: dispFld.label, type: dispFld.type };\n fields = [ fld ];\n }\n\n const xAxis = Array();\n const yAxis = Array();\n let otherTotal = 0;\n let fullTotal = 0;\n\n // let selectedXAxis = 0;\n // let selectedYAxis = 0;\n // let zAxisTitle = '';\n\n if (chartType === 'bubble' || chartType === 'scatter') {\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n if (field.axis === 'X') {\n xAxis.push(field);\n } else if (field.axis === 'Y') {\n yAxis.push(field);\n }\n }\n }\n let chartData: Array = [];\n\n const dataArray = new Array(dataLength);\n for (let i = 0; i < dataLength; i++) {\n dataArray[i] = new Array(fields.length);\n }\n\n const rowTitles = this.buildChartRowTitles(dataViewSet);\n const specFields = this.lmListUtil.buildSpecFields(this.listSpec.busListSpec.displayFields);\n const categories = this.buildChartCategories(dataViewSet, chartName, specFields);\n const dataviewIndexMap = new Array(fields.length);\n\n if (dataViewSet) {\n // setup the data object for a line chart and Gap\n if (chartType === 'line' || chartType === 'bubble' || chartType === 'scatter' || chartType === 'area' || chartType === 'gap') {\n for (let dataSets = 0; dataSets < rowTitles.length; dataSets++) {\n const dataSet: SohoDataSetItem = { name: rowTitles[dataSets], data: Array() };\n chartData.push(dataSet);\n }\n }\n const xField = xAxis[this.selectedXAxis];\n const yField = yAxis[this.selectedYAxis];\n // if (dataViewSet.data[i].id === chart.pointSize) {\n // zAxisTitle = dataview.data[i];\n // }\n // let xFieldObj = typeof xField === 'object' ? xField.label : xField;\n let xFieldTitle = xField ? this.lmFormatUtilService.formatMessageRule(xField.label, undefined) : undefined;\n // let yFieldObj = typeof yField === 'object' ? yField.label : yField;\n let yFieldTitle = yField ? this.lmFormatUtilService.formatMessageRule(yField.label, undefined) : undefined;\n let zFieldTitle = '';\n if (chart.pointSize) {\n zFieldTitle = this.lmFormatUtilService.formatMessageRule(chart.pointSize, dataViewSet.data[0]);\n }\n let record: SohoDataSetItem = { data: Array() };\n for (let t = 0; t < dataLength; t++) {\n if (chartType !== 'donut' && chartType !== 'pie' && chartType !== 'area' && chartType !== 'line' && chartType !== 'gap') {\n record = { data: Array() };\n record['name'] = categories[t];\n if (chartType === 'bubble' || chartType === 'scatter') {\n // let xFieldObj = typeof xField === 'object' ? xField.label : xField;\n xFieldTitle = xField ? this.lmFormatUtilService.formatMessageRule(xField.label, undefined) : undefined;\n // let yFieldObj = typeof yField === 'object' ? yField.label : yField;\n yFieldTitle = yField ? this.lmFormatUtilService.formatMessageRule(yField.label, undefined) : undefined;\n record['labels'] = { name: '', value: { x: xFieldTitle, y: yFieldTitle, z: zFieldTitle } };\n }\n }\n\n if ((chartType !== 'donut' && chartType !== 'pie' && chartType !== 'area' && chartType !== 'line') && t === this.getSelectedRow()) {\n record['selected'] = true;\n }\n const dataView = dataViewSet.data[t];\n const bubbleRecordData = { value: {}, tooltip: '' };\n let bubbleRecord = {};\n\n const axisLabels = {\n value: {\n x: xFieldTitle,\n y: yFieldTitle,\n },\n tooltip: ''\n };\n\n if (chartType === 'bubble') {\n axisLabels.value['z'] = zFieldTitle;\n }\n let stateFieldLabel = '';\n let stateFieldValue = 0;\n if (chartType === 'bubble' || chartType === 'scatter') {\n if (legendFieldId) {\n stateFieldValue = this.getFieldValue(legendFieldId, dataView.fields[legendFieldId]);\n\n if (!this.statesArray[stateFieldValue]) {\n\n if (chart.legendStates && chart.legendStates.length > 0) {\n stateFieldLabel = this.getStateDisplay(stateFieldValue, chart.legendStates);\n }\n if (stateFieldLabel.length === 0 && dataView.fields[legendFieldId]) {\n const legendFieldItem = this.lmFormatUtilService.findStateItem({ value: stateFieldValue, stateValues: dataView.fields[legendFieldId].stateValues });\n if (legendFieldItem !== null) {\n stateFieldLabel = legendFieldItem.label;\n }\n }\n }\n }\n\n if (!this.statesArray[stateFieldValue]) {\n bubbleRecord = {};\n bubbleRecord['data'] = [];\n // bubbleRecord[ 'tooltip' ] = '';\n bubbleRecord['name'] = stateFieldLabel;\n bubbleRecord['labels'] = { name: '', value: axisLabels };\n this.statesArray[stateFieldValue] = bubbleRecord;\n }\n\n bubbleRecordData.value['x'] = this.getFieldValue(xField, dataView.fields[xField.fieldId]);\n bubbleRecordData.value['y'] = this.getFieldValue(yField, dataView.fields[yField.fieldId]);\n\n // if a fixedSclaePointSize is defined use it before setting standard pointsize.\n if (chart.fixedScalePointSize) {\n bubbleRecordData.value['z'] = chart.fixedScalePointSize;\n } else {\n bubbleRecordData.value['z'] = chart.chartType === 'scatter' ? 1 : this.getFieldValue(chart.pointSize, dataView.fields[chart.pointSize]);\n }\n\n bubbleRecordData['name'] = ''; // dataView.fields[ chart.pointSize ].label;\n\n if (this.listSpec.busListSpec.detailFields) {\n bubbleRecordData.tooltip = this.lmListUtil.buildDetailFieldsAsTooltip(dataView, this.listSpec.busListSpec.detailFields);\n } else {\n bubbleRecordData.tooltip = this.buildDefaultBubbleTooltip(bubbleRecordData.value['x'], bubbleRecordData.value['y'],\n bubbleRecordData.value['z'], axisLabels);\n }\n if (bubbleRecordData.value['z'] <= 0) {\n continue;\n }\n\n this.statesArray[stateFieldValue].data.push(bubbleRecordData);\n\n } else {\n for (let s = 0; s < fields.length; s++) {\n const specDecSize = this.listSpec.busListSpec.fields[fields[s].fieldId].decSize;\n const datviewPrecision = dataView.fields[fields[s].fieldId].precision;\n\n const options: LMTransformOptions = {\n precision: datviewPrecision,\n decSize: specDecSize,\n displayZero: true\n };\n const fieldVal: number = this.getFieldValue(fields[s], dataView.fields[fields[s].fieldId]);\n\n const sohoChartData: SohoChartData = { name: '', value: 0 };\n fieldsFormatOptions[s] = options;\n\n dataArray[t][s] = fieldVal;\n dataviewIndexMap[t] = t;\n\n // let type = fields[ s ].type\n const name = (chartType === 'line' || chartType === 'area') && chart.showAsDateChart ? (new Date(categories[t]).toLocaleDateString()) : categories[t];\n\n sohoChartData['name'] = (chartType === 'donut' || chartType === 'line' || chartType === 'area' || chartType === 'gap'\n || chartType === 'pie' || chartType === 'donut') ? name : rowTitles[s];\n // dataView.fields[fields[s].fieldId].label;\n if (chartType === 'line' || chartType === 'area') {\n sohoChartData['value'] = fieldVal;\n } else {\n sohoChartData['value'] = fieldVal;\n }\n\n // ref to dataview Index so we will know where the data came from.\n sohoChartData['ref'] = t;\n\n if (t === this.getSelectedRow() && ((chartType === 'pie') || chartType === 'donut')) {\n sohoChartData['selected'] = true;\n }\n\n if (chart.showAsDateChart) {\n sohoChartData['tooltip'] = rowTitles[s] + ' ' + fieldVal + '
        ' + categories[t];\n } else if (chartType === 'donut' || chartType === 'pie') {\n sohoChartData['tooltip'] = categories[t] + '
        ' + this.lmFormatUtilService.bcdToDisplay(fieldVal.toString(), options) + ' - {{percent}}';\n }\n\n if (chartType === 'line' || chartType === 'area' || chartType === 'gap') {\n chartData[s].data.push(sohoChartData);\n } else {\n record.data.push(sohoChartData);\n }\n\n if (this.listSpec.busListSpec.detailFields) {\n record['tooltip'] = this.lmListUtil.buildDetailFieldsAsTooltip(dataView, this.listSpec.busListSpec.detailFields);\n } else if (chartType.startsWith('column') || chartType.startsWith('bar')) {\n // noop\n } else {\n record['tooltip'] = fields[s].fieldId;\n }\n }\n }\n\n if ((chartType !== 'line' && chartType !== 'bubble' && chartType !== 'scatter' && chartType !== 'area' && chartType !== 'gap')) {\n chartData.push(record);\n }\n }\n this.xAxisFields = xAxis;\n this.yAxisFields = yAxis;\n\n let topRecords: Array;\n if (chartType === 'pie' || chartType === 'donut') {\n // for a pie of donut chart put the data together another way.\n\n const chartFieldSpec: Array = this.listSpec.busListSpec.displayFields.filter((specField: LMListDisplayField) => {\n // you can only have one pie\n if (this.selectedDimension) {\n if (this.selectedDimension === specField.fieldId) {\n return specField;\n }\n } else\n if (chart.fields[0].fieldId === specField.fieldId) {\n return specField;\n }\n });\n\n record.data = this.getTopValueRecords(record.data);\n chartData = Array();\n topRecords = record.data.slice(0, (AppConstants.CHART_MAX_PIE_SLICES - 1)); // leave 1 position for the other slice\n\n // total up the amt so a percent can be figured out for the pie, also total the data that does not make up the CHART_MAX_PIE_SLICES - 1 so we know the otherTotal\n for (let i = 0; i < record.data.length; i++) {\n if (i > (AppConstants.CHART_MAX_PIE_SLICES - 1)) {\n otherTotal += (record.data[i].value as number);\n }\n fullTotal += (record.data[i].value as number);\n }\n\n // Add in the other node if any other value exists\n if (otherTotal > 0) {\n const sohoChartOtherData: SohoChartData = { name: '', value: 0 };\n sohoChartOtherData['name'] = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('OtherLabel'), null); // dataView.fields[fields[s].fieldId].label;\n sohoChartOtherData['value'] = otherTotal;\n topRecords.push(sohoChartOtherData);\n }\n\n // set the display for the chart to be the label instead of the value\n if (this.showLegend()) {\n this.lines = {};\n } else {\n this.lines = { show(d) {\n return d.name + ' (' + (parseFloat(d.percent) * 100).toFixed(2) + '%)';\n }\n };\n }\n\n topRecords = this.removeZeroValues(topRecords);\n\n topRecords.map((item: SohoChartData) => {\n const sliceValue: number = (item.value as number);\n const slicePercent = ((item.value as number) / fullTotal) * 100;\n let displayValue: String = String(item.value);\n\n // we can use 0 here for now since we do not support more that one element for a pie chart\n if (chartFieldSpec.length && chartFieldSpec[0].type === AppConstants.PERCENT) {\n displayValue = slicePercent.toFixed(2) + '%';\n }\n item['tooltip'] = item.name + '
        ' + displayValue + '';\n });\n\n chartData.push({ data: topRecords });\n }\n }\n if (chartType === 'bubble' || chartType === 'scatter') {\n // states array is built using the index of the state to sort records into states. Chart does not like chart data that uses an\n // array that has undefined items. We need to rebuild te array without undefined items.\n const cleanArray = this.statesArray.filter(function(element) {\n if (element) {\n return element;\n }\n });\n this._basicData = cleanArray;\n } else {\n this._basicData = chartData;\n }\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n // this.changeDetectorRef.markForCheck();\n // this.changeDetectorRef.detectChanges();\n\n // temp until control support empty data sets\n this.hasChartData = (this._basicData && this._basicData[0] && this._basicData[0].data && this._basicData[0].data.length > 0);\n if (!this.hasChartData && dataLength > 0) {\n this.setNoChartableDataMessage();\n }\n }\n\n private getStateDisplay(value, states): string {\n let retVal = value;\n for (let i = 0; i < states.length; i++) {\n // tslint:disable-next-line:triple-equals > using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n if (states[i].value == value) {\n retVal = states[i].label;\n }\n }\n return retVal;\n }\n\n private buildDefaultBubbleTooltip(xAxis: number, yAxis: number, zAxis: number, labels): string {\n let tooltip = '';\n const xTitle = labels ? labels.value.x : 'X Axis';\n const yTitle = labels ? labels.value.y : 'Y Axis';\n const zTitle = labels ? labels.value.z : 'Z Axis';\n\n tooltip += ''\n + '';\n tooltip += ''\n + '';\n if (zTitle && zTitle.length > 0) {\n tooltip += ''\n + '';\n }\n\n tooltip += '
        ' + xTitle + '' + xAxis + '
        ' + yTitle + '' + yAxis + '
        ' + zTitle + '' + zAxis + '
        ';\n return tooltip;\n }\n\n private getDataSetForPeriodViewOrientation(dataViewSet: LMDataViewSet): any {\n if (dataViewSet && dataViewSet.chartPeriods\n && dataViewSet.chartPeriods[this._chartName][this.periodIndex]\n && dataViewSet.chartPeriods[this._chartName][this.periodIndex].periodDataSet) {\n const fields = this.listSpec.busListSpec.charts[this._chartName].fields;\n const periodDataSet = dataViewSet.chartPeriods[this._chartName][this.periodIndex].periodDataSet;\n const categories = []; // This is the X - axis (usually the date /time component)\n const seriesName = []; // This is the field labels or chart legend\n const dataArray = new Array(periodDataSet.length); // Data point for each field. Chart plots (period, fieldValue)\n\n for (let i = 0, len = periodDataSet.length; i < len; i++) {\n const period = periodDataSet[i];\n categories[i] = period.period;\n dataArray[i] = new Array(fields.length);\n\n for (let j = 0, fieldLen = fields.length; j < fieldLen; j++) {\n const key = j + '';\n\n if (i === 0) {\n seriesName[j] = period[key].label;\n }\n dataArray[i][j] = period[key].value;\n }\n }\n\n const chartData: Array = [];\n for (let i = 0, len = fields.length; i < len; i++) {\n const record: SohoDataSetItem = { data: Array() };\n record['name'] = seriesName[i];\n if (i === 0) {\n record['selected'] = true;\n }\n for (let j = 0, len2 = categories.length; j < len2; j++) {\n const sohoChartData: SohoChartData = { name: '', value: 0 };\n sohoChartData['name'] = categories[j];\n sohoChartData['value'] = dataArray[j][i];\n sohoChartData['ref'] = i;\n record.data.push(sohoChartData);\n }\n chartData.push(record);\n }\n return { chartData };\n }\n return null;\n }\n\n // private getBubbleValue(): BubbleCordinates {\n // // return {x: 5, y: 3, z: 3}\n // }\n\n private removeZeroValues(topRecords: Array): Array {\n const nonZeroRecords: Array = [];\n\n topRecords.map((item) => {\n if (item.value > 0) {\n nonZeroRecords.push(item);\n }\n });\n\n return nonZeroRecords;\n }\n\n private buildChartRowTitles(dataViewSet: LMDataViewSet) {\n if (!dataViewSet) {\n return [];\n }\n\n const fields = this.listSpec.busListSpec.charts[this._chartName].fields;\n const rowTitleArray = new Array(fields.length);\n\n if (this.selectedTotal\n && this.selectedTotal !== 'COLUMNAR_All') {\n const dspField: LMListDisplayField = this.listSpec.busListSpec.displayFields.find(x => x.fieldId === this.selectedTotal);\n rowTitleArray[0] = this.lmFormatUtilService.formatMessageRule(dspField.label, this.dataViewSet.header);\n return rowTitleArray;\n }\n\n for (let i = 0, length = fields.length; i < length; i++) {\n const rowTitle = this.lmFormatUtilService.formatMessageRule(fields[i].label, dataViewSet.data[i]);\n rowTitleArray[i] = rowTitle;\n }\n return rowTitleArray;\n }\n\n private getTopValueRecords(records: SohoChartDataArray): SohoChartDataArray {\n const sortedRecords = records.slice(0);\n sortedRecords.sort(function(a: SohoChartData, b: SohoChartData) {\n return +b.value - +a.value;\n });\n\n return sortedRecords;\n }\n\n private getFieldValue(field, dataviewField) {\n if (field && field.isPercentField) {\n return dataviewField.value * 100;\n } else {\n return parseInt(dataviewField.value, 10);\n }\n }\n\n private buildChartCategories(dataViewSet: LMDataViewSet, chartName: string, specFields) {\n if (!dataViewSet) {\n return [];\n }\n\n if (this.listSpec.busListSpec.implementsCubeView) {\n return this._buildCubeChartElementLabels(dataViewSet);\n }\n\n const labelArray = new Array(dataViewSet.data.length);\n let uniqueIndex = 2;\n const labelMessageRule = this.listSpec.busListSpec.charts[chartName].elementLabel;\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n return this._buildColumnarChartElementLabels(dataViewSet);\n }\n\n if (labelMessageRule) {\n for (let i = 0, length = dataViewSet.data.length; i < length; i++) {\n\n let text = this.lmFormatUtilService.formatMessageRule(labelMessageRule, dataViewSet.data[i], specFields);\n\n // if a value is not found use the index to display some value. This is what Canvas and 3.5 do\n if (text === '') {\n text = i.toString();\n }\n\n // if the same display value is found make it unique by adding a counter. Canvas and 3.5 do this alsp\n if (labelArray.includes(text)) {\n text += '(' + (uniqueIndex++) + ')';\n }\n labelArray[i] = text;\n }\n }\n\n return labelArray;\n }\n\n private _buildCubeChartElementLabels(dataViewSet: LMDataViewSet): Array {\n const labelArray = new Array(dataViewSet.data.length);\n let uniqueIndex = 2;\n for (let i = 0; i < dataViewSet.data.length; i++) {\n let label = dataViewSet.data[i].representativeText;\n if (!label) {\n label = dataViewSet.data[i].cubeInfo.chartLabel;\n }\n if (labelArray.indexOf(label) > -1) {\n label += '(' + (uniqueIndex++) + ')';\n }\n labelArray[i] = label;\n }\n return labelArray;\n }\n\n private _buildColumnarChartElementLabels(dataViewSet: LMDataViewSet): Array {\n const labelArray = new Array(dataViewSet.data.length);\n for (let i = 0; i < dataViewSet.data.length; i++) {\n let label: string = dataViewSet.data[i].subtotalLabel;\n let formattedLabel: string;\n\n if (label && label !== 'Other') {\n let dispField: LMListDisplayField;\n if (this.selectedDimension) {\n dispField = this.listSpec.busListSpec.displayFields.find(x => x.fieldId === this.selectedDimension);\n } else {\n dispField = this.listSpec.busListSpec.displayFields.find(x => x.fieldId === this.dataViewSet.columnarInfo.defaultDimension);\n }\n\n const value = dataViewSet.data[i].fields[label].value;\n this.lmFormatterService.listSpec = this.listSpec;\n formattedLabel = this.lmFormatterService.getDisplayText(dispField, value, dataViewSet.data[i], dataViewSet);\n } else {\n formattedLabel = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('OtherLabel'), null);\n }\n\n let uniqueIndex = 0;\n for (let j = 0; j < labelArray.length; j++) {\n if (labelArray[j] === label) {\n uniqueIndex++;\n }\n }\n if (uniqueIndex > 0) {\n label += '(' + (uniqueIndex + 1) + ')';\n }\n\n labelArray[i] = formattedLabel;\n }\n return labelArray;\n }\n\n private getDVindex() {\n let index = this.dataViewSet && this.dataViewSet.data && this.dataViewSet.data.length > 0 ? 0 : -1;\n this.lmChartComponent = this.lmChartComponents.toArray()[0];\n if (this.lmChartComponent && this.lmChartComponent.getSelected) {\n const chartSelected = this.lmChartComponent.getSelected();\n if (chartSelected.length > 0) {\n if (chartSelected[0].groupItems) {\n index = chartSelected[0].groupItems[0].data.ref;\n } else {\n index = chartSelected[0].data.ref;\n }\n }\n } else {\n index = -1;\n }\n\n return index;\n }\n\n private postLoadChart(listPagingResponse: LMListPagingResponse) {\n if (this.getType() === 'aggregation') {\n return;\n }\n let chartDataViewSet = listPagingResponse.dataViewSet;\n const isCubeDashboardContent = this.lmListSpecUtilService.isCubeView(this.listSpec)\n && this.lmListSpecUtilService.isDashBoardContent(this.listSpec);\n if (isCubeDashboardContent\n && this.getChart().orientation === 'column'\n && chartDataViewSet.data.length > 0) {\n const chartDataViewSetClone = JSON.parse(JSON.stringify(chartDataViewSet));\n const chartDataViewSelected = chartDataViewSetClone.data[0];\n chartDataViewSetClone.data = [];\n chartDataViewSetClone.data[0] = chartDataViewSelected;\n chartDataViewSet = chartDataViewSetClone;\n }\n this.buildChartData(chartDataViewSet, this.listSpec);\n this.basicData = this._basicData;\n\n if (chartDataViewSet.data.length === 0 && !this.isManualLoading()) {\n this.setNoDataMessage(this.listState.filterCriteria && this.listState.filterCriteria.length > 0);\n }\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if (isCubeDashboardContent) {\n this.lmListEventService.cubeDataLoadedEvent(listPagingResponse);\n }\n return;\n }\n // setTimeout(() =>\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n // );\n }\n\n public addDataView(inlineCreateDataVie: LMDataView, row: number) {\n // not implemented\n }\n\n public removeDataView(row: number) {\n // not implemented\n }\n\n private getChart() {\n return this.listSpec.busListSpec.charts[this._chartName];\n }\n\n public cubeUpdateChart(dataViewSet: LMDataViewSet | LMDataView) {\n this.dataViewSet = dataViewSet as LMDataViewSet;\n this.buildChartData(this.dataViewSet, this.listSpec);\n this.basicData = this._basicData;\n }\n\n hasFilterList: boolean;\n implementsDragAndDrop: boolean;\n showFilter: boolean;\n sortOrder: LMListSortOrder;\n\n protected filterListCriteriaChanged(): void {\n }\n\n}\n","
        \n \n
        \n\n \n \n \n\n \n \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n","import { Input, Directive } from '@angular/core';\n\nimport { ListResource } from '@resources/list.resource';\nimport { KeyedResource } from '@resources/keyed.resource';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMFormatUtilService } from '@services/utils';\nimport { Subscription } from 'rxjs';\n\n@Directive()\nexport abstract class LMListContentBaseComponent {\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n /**\n * The listSpec used to build\n * @type {LMListSpec}\n */\n @Input() set listSpec(listSpec: LMListSpec) {\n if (!listSpec) {\n return; // safety\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'set listSpec()' ]);\n this._listSpec = listSpec;\n\n /*\n * set the list resource for use in paging.\n */\n this.listResource = new ListResource({ resourceId: listSpec.resourceId });\n\n this.inDashboardPanel = listSpec.listType === 'dashboard';\n\n if (this.listUrlInfo?.sourceResource) {\n /**\n * if there is a \"source\" resource set the \"from\" resource for use in paging.\n * todo: doesn't seem like this is needed as sourceResource could be used instead.\n */\n this.fromResource = new KeyedResource({\n resourceId: this.listUrlInfo.sourceResource.resourceType,\n resourceType: this.listUrlInfo.sourceResource.resourceId\n });\n }\n };\n\n /**\n * Causes the datagrid to reload with the given set of filterCriteria\n */\n @Input() set filterCriteria(filterCriteria: LMFilterFieldCriteria[]) {\n this.lmLoggerService.trace([ this, this.instanceId, 'filterCriteria', filterCriteria ]);\n\n // check to make sure filterCriteria has changed from undefined to a null or an Array of at least 1 object\n if (this.m_filterCriteria === undefined && (filterCriteria === undefined || filterCriteria === null || filterCriteria.length === 0)) {\n // Then this is first time in and hence it just an initialization. Make sure to set\n // m_filterCriteria to null so 2nd time in with a null will run the filterPage.\n // This is done so that search form being executed w/o filter criteria will show\n // all records.\n this.m_filterCriteria = null;\n return;\n }\n\n this.m_filterCriteria = filterCriteria;\n\n // need to wait on the fromDataView to come in before calling filterCriteriaChanged\n if (this.listSpec.dependentList && !this.fromDataView) {\n return;\n }\n\n this.filterCriteriaChanged();\n }\n\n get filterCriteria(): LMFilterFieldCriteria[] {\n return this.m_filterCriteria;\n }\n\n @Input() set columnfilterOperators(filterOperators: Map) {\n this.m_columnfilterOperators = filterOperators;\n }\n\n get columnfilterOperators(): Map {\n return this.m_columnfilterOperators;\n }\n\n /**\n * Causes the datagrid to reload with the given set of filterCriteria\n */\n @Input() set filterListFilterCriteria(filterCriteria: LMFilterFieldCriteria[]) {\n this.lmLoggerService.trace([ this, this.instanceId, 'filterCriteria', filterCriteria ]);\n this.m_filterListFilterCriteria = filterCriteria;\n\n if (this.m_filterListFilterCriteria === undefined || this.m_filterListFilterCriteria === null) {\n return;\n }\n\n this.filterListCriteriaChanged();\n }\n\n get filterListFilterCriteria(): LMFilterFieldCriteria[] {\n return this.m_filterListFilterCriteria;\n }\n\n /**\n * Used to retrieve data when this list is a 'dependentList'\n */\n @Input() set fromDataView(fromDataView: LMDataView) {\n if (this.listSpec?.dependentList || this.listSpec?.busListSpec.showChangedValuesOnRight) {\n this.lmLoggerService.trace([ this, 'fromDataView' ]);\n if ((fromDataView)?.isTreeMoreLink) {\n fromDataView = null;\n }\n\n // if undefined then this is angular initializing so don't run fromDataViewChanged().\n if (fromDataView === undefined) {\n return;\n }\n\n const previousFromResource = this._fromDataView;\n this._fromDataView = fromDataView;\n\n // fromResource keys change we are on a new record so fetch new data\n // expected that refresh is called if the fromDataView was only updated!\n if (!this.isSameFromResource(fromDataView, previousFromResource)) {\n this.allowDataLoading = false; //CHERYL what is this for!\n this.fromDataViewChanged();\n }\n }\n }\n\n private isSameFromResource(fromDataView1: LMDataView, fromDataView2: LMDataView): boolean {\n if (fromDataView1?.cubeInfo && fromDataView2?.cubeInfo) {\n // Resource Ids are just the cube mediator and they are the same for all dataviews.\n const dimTree1 = fromDataView1.cubeInfo.dimensions.map(dim => dim.dimVal).join(' ');\n const dimTree2 = fromDataView2.cubeInfo.dimensions.map(dim => dim.dimVal).join(' ');\n let retVal = dimTree1 === dimTree2;\n\n if (fromDataView1.cubeInfo.extraInfo && fromDataView2.cubeInfo.extraInfo) {\n if (fromDataView1.cubeInfo.extraInfo.periodKey) {\n retVal = retVal && (fromDataView1.cubeInfo.extraInfo.periodKey === fromDataView2.cubeInfo.extraInfo.periodKey);\n }\n if (fromDataView1.cubeInfo.extraInfo.periodView) {\n retVal = retVal && (fromDataView1.cubeInfo.extraInfo.periodView === fromDataView2.cubeInfo.extraInfo.periodView)\n && (fromDataView1.cubeInfo.extraInfo.pvPeriodIdx === fromDataView2.cubeInfo.extraInfo.pvPeriodIdx);\n }\n }\n return retVal;\n // Use dataViewResId which is based on the view key of dataview.\n // return fromDataView1.dataViewResId === fromDataView2.dataViewResId;\n } else {\n const resourceId = fromDataView1 ? fromDataView1.resourceId : '';\n const newResourceId = fromDataView2 ? fromDataView2.resourceId : '';\n\n return resourceId === newResourceId;\n }\n }\n /**\n * The information needed to fill out data for a select list.\n */\n @Input() selectRequestData: SelectRequestData;\n\n /**\n * ListState for a list and all it's contents\n */\n @Input() listState: LMListState = {};\n\n /**\n * ListPersonalization for a list and all it's contents\n */\n @Input() listPersonalization: LMListPersonalization = {};\n\n @Input() set disabled(disabled: boolean) {\n this._disabled = disabled;\n // disabled ? this.clearEmptyMessage() : this.setNoDataMessage(this.filterCriteria && this.filterCriteria.length > 0)\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() implementsManualLoad: boolean;\n\n @Input() manualLoadInfo: LMManualLoadInfo;\n\n protected selectListEditModeChanged = false;\n\n private _inSelectListEditMode = false;\n @Input() public set inSelectListEditMode(inSelectListEditMode: boolean) {\n this._inSelectListEditMode = inSelectListEditMode;\n this.inSelectedListEditModeChanged();\n }\n\n public get inSelectListEditMode(): boolean {\n return this._inSelectListEditMode;\n }\n\n /**\n * Internal member variable, used to hold the filter field state.\n * Get set by using the filterCriteria @Input.\n */\n public _listSpec: LMListSpec;\n\n /**\n * interntal member variable, used by the view to determine if\n * this list is in a dashboard panel.\n */\n public inDashboardPanel: boolean;\n\n /**\n * Used for lm-page-standalone for each list implementation that uses it.\n */\n public pageSizes: number[] = AppConstants.PAGE_SIZES;\n\n public dataViewSet: LMDataViewSet;\n public savedSearches: LMDataViewSet;\n\n /**\n * Internal member variable, used to hold the filter field state.\n * Get set by using the filterCriteria @Input.\n */\n protected m_filterCriteria: LMFilterFieldCriteria[];\n\n /**\n * Internal member variable, used to hold internal filter field state.\n * Gets set by using the filterListFilterCritera @Input.\n */\n protected m_filterListFilterCriteria: LMFilterFieldCriteria[];\n\n protected m_columnfilterOperators: Map;\n\n protected allowDataLoading: boolean;\n\n protected pagingSubscription: Subscription;\n\n /**\n * Used by get/set fromDataView typescript property methods\n * Set to undefined to distinguish it from a null fromDataView.\n * - undefined fromDataView means dependent list is not yet ready to be used.\n * - null fromDataView is a valid input value meaning that this dependent list should be treated as disabled.\n */\n protected _fromDataView = undefined;\n\n /**\n * Whether or not the list implementation (grid, list-view, tree-list, etc...) should be disabled or not.\n */\n protected _disabled;\n\n protected listResource: ListResource;\n protected fromResource: KeyedResource;\n\n private _noListDataMessage: SohoEmptyMessageOptions = null;\n private get noListDataMessage(): SohoEmptyMessageOptions {\n if (!this._noListDataMessage) {\n this._noListDataMessage = {\n title: Soho.Locale.translate('NoDataAvailable'),\n icon: this.listSpec?.listType !== 'multilist' ? 'icon-empty-no-data' : '',\n color: 'azure'\n };\n };\n\n return this._noListDataMessage;\n };\n\n private _noSearchDataMessage: SohoEmptyMessageOptions = null;\n private get noSearchDataMessage(): SohoEmptyMessageOptions {\n if (!this._noSearchDataMessage) {\n this._noSearchDataMessage = {\n title: Soho.Locale.translate('NoSearchResultsFound'),\n icon: this.listSpec?.listType !== 'multilist' ? 'icon-empty-generic': '',\n color: 'azure'\n };\n };\n\n return this._noSearchDataMessage;\n };\n\n // Search Empty Message displayed to inform the user\n // to do search to display records on the list\n private get useAboveSearchMessage(): SohoEmptyMessageOptions {\n return {\n title: Soho.Locale.translate('UseSearchAbove'),\n icon: 'icon-empty-search-data',\n color: 'azure'\n };\n }\n\n private _noChartableDataAvailable: SohoEmptyMessageOptions = null;\n private get noChartableDataAvailable(): SohoEmptyMessageOptions {\n if (!this._noChartableDataAvailable) {\n this._noChartableDataAvailable = {\n title: Soho.Locale.translate('NoChartableDataAvailable'),\n icon: 'icon-empty-generic',\n color: 'azure'\n };\n };\n\n return this._noChartableDataAvailable;\n }\n\n private manualLoadMessage(manualLoadInfo: LMManualLoadInfo): SohoEmptyMessageOptions {\n // default message options\n const messageOptions: SohoEmptyMessageOptions = {\n title: Soho.Locale.translate('ManuallyLoadData'),\n icon: this.listSpec?.listType !== 'multilist' ? 'icon-empty-no-data': '',\n color: 'azure',\n button: {\n id: 'loadDataBtn',\n text: Soho.Locale.translate('LoadData'),\n isPrimary: true,\n click: (event) => {\n event.stopPropagation();\n this.allowDataLoading = true;\n this.loadManualData();\n }\n }\n };\n\n if (manualLoadInfo) {\n const dataViewHeader = this.dataViewSet && this.dataViewSet.header ? this.dataViewSet.header : undefined;\n if (manualLoadInfo.message) {\n messageOptions.title = this.lmFormatUtilService.formatMessageRule(manualLoadInfo.message, dataViewHeader);\n }\n\n if (manualLoadInfo.description) {\n messageOptions.info = this.lmFormatUtilService.formatMessageRule(manualLoadInfo.description, dataViewHeader);\n }\n\n if (manualLoadInfo.buttonText) {\n messageOptions.button.text = this.lmFormatUtilService.formatMessageRule(manualLoadInfo.buttonText, dataViewHeader);\n }\n\n if (manualLoadInfo.icon) {\n // must be the full soho empty message icon name\n if (this.lmThemeService.isValidSohoIconEmptyMessage(manualLoadInfo.icon)) {\n messageOptions.icon = manualLoadInfo.icon;\n }\n }\n }\n\n return messageOptions;\n }\n\n private noDataEmptyMessage(noDataEmptyMessageInfo: LMNoDataEmptyMessageInfo): SohoEmptyMessageOptions {\n // default message options\n const messageOptions: SohoEmptyMessageOptions = {\n icon: this.listSpec?.listType !== 'multilist' ? 'icon-empty-no-data' : '',\n color: 'azure'\n };\n\n if (noDataEmptyMessageInfo) {\n const dataViewHeader: LMDataView = this.dataViewSet && this.dataViewSet.header ? this.dataViewSet.header : undefined;\n messageOptions.title = this.lmFormatUtilService.formatMessageRule(noDataEmptyMessageInfo.message, dataViewHeader);\n\n if (noDataEmptyMessageInfo.description) {\n messageOptions.info = this.lmFormatUtilService.formatMessageRule(noDataEmptyMessageInfo.description, dataViewHeader);\n }\n\n if (noDataEmptyMessageInfo.icon) {\n // must be the full soho empty message icon name\n if (this.lmThemeService.isValidSohoIconEmptyMessage(noDataEmptyMessageInfo.icon)) {\n messageOptions.icon = noDataEmptyMessageInfo.icon;\n }\n }\n\n if (noDataEmptyMessageInfo.button) {\n const button: SohoEmptyMessageButtonOptions = {\n id: 'noDataBtn',\n text: this.lmFormatUtilService.formatMessageRule(noDataEmptyMessageInfo.button.title, dataViewHeader),\n isPrimary: true,\n click: (event) => {\n event.stopPropagation();\n const columnDef: ListGridColumn = { displayField: noDataEmptyMessageInfo.button };\n const dataView: LMDataView = this.dataViewSet && this.dataViewSet.header ? this.dataViewSet.header : undefined;\n this.onFormButtonClicked(columnDef, dataView, null, null, null, event, true);\n }\n };\n messageOptions.button = button;\n }\n }\n\n return messageOptions;\n }\n\n private static errorLoadingMessage: SohoEmptyMessageOptions = {\n icon: 'icon-empty-error-loading',\n color: 'azure'\n };\n\n /** public so it can be used in a template of any subclasses. */\n public emptyMessage: SohoEmptyMessageOptions = null;\n\n protected instanceId: string;\n\n /**\n * If ngOnDestroy is called, set this flag to true. this will be used\n * internally by the component for any extraneous calls still attached\n * to this component.\n */\n private m_componentDestroyed = false;\n\n protected constructor(\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmFormatUtilService: LMFormatUtilService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n protected abstract build(): void;\n\n protected abstract fromDataViewChanged(): void;\n\n protected abstract filterCriteriaChanged(): void;\n\n protected abstract filterListCriteriaChanged(): void;\n\n protected inSelectedListEditModeChanged(): void {\n }\n\n protected abstract loadManualData(): void;\n\n protected abstract onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any, fromNoDataMessageFormButton?: boolean): void;\n\n public isManualLoading(): boolean {\n return !!(this.implementsManualLoad && !this.allowDataLoading);\n }\n\n get listSpec(): LMListSpec {\n return this._listSpec;\n }\n\n get fromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n public getDataViewSet(): LMDataViewSet {\n return this.dataViewSet;\n }\n\n public getDataView(index: number) {\n if (!this.dataViewSet || this.dataViewSet.data.length <= 0) {\n return null;\n }\n return this.dataViewSet.data[ index ];\n }\n\n protected setEmptyMessage() {\n if (this.disabled) {\n this.clearEmptyMessage();\n return;\n }\n\n if (this.isManualLoading()) {\n this.emptyMessage = this.manualLoadMessage(this.manualLoadInfo);\n return;\n }\n\n const searchForm = this.listSpec.busListSpec.searchForm;\n if (searchForm && !searchForm.useSearchAsFilter && !(this.filterCriteria && this.filterCriteria.length > 0)) {\n this.emptyMessage = this.useAboveSearchMessage;\n return;\n }\n\n this.setNoDataMessage(this.filterCriteria && this.filterCriteria.length > 0);\n\n }\n\n protected clearEmptyMessage() {\n this.emptyMessage = null;\n }\n\n protected handleError(message: string, title: string) {\n const error: LMError = { message, title };\n this.setErrorLoadingMessage(error);\n }\n\n protected setErrorLoadingMessage(error: LMError) {\n this.emptyMessage = Object.assign(\n LMListContentBaseComponent.errorLoadingMessage,\n {\n title: error.title,\n info: error.message\n });\n }\n\n protected setNoDataMessage(noSearchData: boolean) {\n this.emptyMessage = noSearchData\n ? this.noSearchDataMessage\n : (this.listSpec.busListSpec.noDataEmptyMessageInfo)\n ? this.noDataEmptyMessage(this.listSpec.busListSpec.noDataEmptyMessageInfo)\n : this.noListDataMessage;\n }\n\n protected setNoChartableDataMessage() {\n this.emptyMessage = this.noChartableDataAvailable;\n }\n\n public get componentDestroyed(): boolean {\n return this.m_componentDestroyed;\n }\n\n protected setComponentDestroyed() {\n this.m_componentDestroyed = true;\n }\n\n protected validateInitialInputs(): void {\n if (!this.listSpec) {\n throw 'component requires listSpec before ngOnInit';\n }\n if (!this.listState) {\n throw 'component requires listState before ngOnInit';\n }\n if (!this.listPersonalization) {\n throw 'component requires listPersonalization before ngOnInit';\n }\n }\n\n protected _hidePagerBar(): boolean {\n if (this.listSpec.showAsMingleWidget) {\n return true;\n }\n\n if (this.dataViewSet && this.dataViewSet.data) {\n\n // If the list has no data, hide the pager bar\n if (this.dataViewSet.data.length === 0) {\n return true;\n }\n\n if (this.listSpec.listType === 'multilist'\n && !this.dataViewSet.pagingInfo.hasNext\n && !this.dataViewSet.pagingInfo.hasPrevious\n && this.dataViewSet.data.length <= this.listSpec.pageSize) {\n // for multi-list listSpec.pageSize is the fixedNumberOfRows defined in the LPL\n // todo: maybe make a fixedNumberOfRows param on the LMListSpec definition\n return true;\n }\n }\n\n return false;\n }\n\n protected isBusyPaging(): boolean {\n return this.pagingSubscription && !this.pagingSubscription.closed;\n }\n\n protected cancelOutstandingPagingRequest(): void {\n if (this.pagingSubscription && !this.pagingSubscription.closed) {\n // ----------------------------------------------------------------\n // If a call to the back end is still out then we want to\n // unsubscribe from it to cancel the client side processing\n // of the http client request.\n // ----------------------------------------------------------------\n this.lmLoggerService.log([ this, this.instanceId, 'cancelOutstandingPagingRequest(): pagingSubscription is still open, unsubscribing...' ]);\n this.pagingSubscription.unsubscribe();\n }\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n HostBinding,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { SohoAccordionComponent, SohoAccordionHeaderComponent, SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport * as urltemplate from 'url-template';\nimport { Observable } from 'rxjs';\n\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport {\n LMListContentFilterListService,\n LMListContentFilterListUtilService,\n LMListEventService,\n LMListGridPagingService\n} from './services/';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMFormatUtilService } from '@services/utils';\n\n@Component({\n selector: 'lm-list-content-filterlist',\n templateUrl: './lm-list-content-filterlist.component.html',\n styleUrls: ['./lm-list-content-filterlist.component.scss'],\n providers: [LMListContentFilterListService],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMListContentFilterListComponent extends LMListContentBaseComponent implements OnInit, AfterViewChecked, LMListContentInterface {\n\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(SohoAccordionComponent, { static: true }) sohoAccordionComponent: SohoAccordionComponent;\n @ViewChildren('AccordionHeader') accordionHeaders: QueryList;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n\n @HostBinding('id') get filterListId() {\n return this?.listSpec?.busListSpec?.id + '_filterlist';\n }\n\n @HostBinding('attr.data-automation-id') get filterListAutomationId() {\n if (!this?.listSpec?.busListSpec?.automationId) {\n return null;\n }\n return `lm-${this.listSpec.busListSpec.automationId}-filterlist`;\n }\n\n public filterListTemplateData: Array;\n public dataViewSet: LMDataViewSet = null;\n private pageSize = -1;\n private fFromDataViewChanged = false;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmFormatUtilService: LMFormatUtilService,\n\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmFilterListService: LMListContentFilterListService,\n private lmListContentFilterListUtilService: LMListContentFilterListUtilService,\n private lmListEventService: LMListEventService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmUrlUtilService: LMUrlUtilService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n }\n\n ngOnInit() {\n this.clearEmptyMessage();\n }\n ngAfterViewChecked() {\n if (this.fFromDataViewChanged) {\n this.fFromDataViewChanged = false;\n setTimeout(() => this.buildFilterList());\n }\n }\n /**\n * There is nothing to build at this point. Filter lists must\n * have a fromDataView to load data.\n */\n public build() { }\n\n protected loadManualData(): void {\n // Not implemented\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Not implemented\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n protected fromDataViewChanged() {\n if (this.listSpec.dependentList) {\n // Protect against a filter list being defined with implements manual loading\n this.allowDataLoading = true;\n }\n this.fFromDataViewChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n /**\n * Required abstract method - NOOP impl is fine\n * for filter-list since it's unlikely we will allow users to filter\n * the filter list.\n */\n protected filterCriteriaChanged() { }\n\n /**\n * Required abstract method - NOOP impl is fine for filter-list\n * since it's unlikely we will allow users to apply filterListCrteria\n * to a filter-list.\n */\n protected filterListCriteriaChanged() { }\n\n public getSelectedRow(): number {\n if (!this.sohoAccordionComponent) {\n return -1;\n }\n\n const selectedAccordionHeader = this.accordionHeaders.find(header =>\n header.elementRef.nativeElement.classList.contains('is-selected'));\n\n if (!selectedAccordionHeader) {\n return -1;\n }\n\n return Number(selectedAccordionHeader.elementRef.nativeElement.dataset.index);\n }\n\n public getSelectedRows(): Array {\n return [this.getSelectedRow()];\n }\n\n public setSelectedRow(row: number, scrollIntoView = true): void {\n if (!this.sohoAccordionComponent) {\n return;\n }\n\n if (row === -1) {\n this.fireListRowSelectedEvent(-1, null, event);\n return;\n }\n\n const selectedAccordionHeader = this.accordionHeaders.find(header => {\n const index = Number(header.elementRef.nativeElement.dataset.index);\n return (row === index);\n });\n\n this.unSelectAllRows();\n\n const selectedElement = selectedAccordionHeader.elementRef.nativeElement;\n selectedElement.classList.add('is-selected');\n\n if (scrollIntoView) {\n this.lmCommonUtilService.scrollIntoView(selectedElement);\n }\n\n setTimeout(() => {\n const selectedRow = Number(selectedElement.dataset.index);\n\n // const selRow = this.getSelectedRow();\n // this.sohoAccordionComponent.updated();\n // this.sohoAccordionComponent.expandAll();\n // this.setSelectedRow(selRow, true);\n\n this.fireListRowSelectedEvent(selectedRow, selectedElement, event);\n }, 1);\n }\n\n public setSelectedRows(rows: Array, scrollIntoView = true): void {\n if (this.dataViewSet && this.dataViewSet.data && this.dataViewSet.data.length > 0) {\n this.setSelectedRow(rows[0]);\n } else {\n this.setSelectedRow(-1);\n }\n }\n\n public unSelectAllRows(): void {\n if (this.sohoAccordionComponent) {\n this.sohoAccordionComponent.headers.forEach(header =>\n header.elementRef.nativeElement.classList.remove('is-selected'));\n }\n }\n\n public onSelected(event: Event) {\n setTimeout(() => {\n // ----------------------------------------------------------\n // SetTimeout in order to allow SOHO process to finish\n // updating the DOM with new selection\n // ----------------------------------------------------------\n const targetElement: HTMLElement = event.currentTarget as HTMLElement;\n const headerElement: HTMLElement = targetElement.getElementsByClassName('is-selected')[0] as HTMLElement;\n if (headerElement.dataset.index === undefined) {\n // ----------------------------------------------------------\n // Return if header is a grouped header\n // ----------------------------------------------------------\n return;\n }\n\n const selectedRow = Number(headerElement.dataset.index);\n this.fireListRowSelectedEvent(selectedRow, headerElement, event);\n }, 1);\n }\n\n private fireListRowSelectedEvent(idx: number, elem: HTMLElement, event?: any) {\n const data = this.dataViewSet ? this.dataViewSet.data[idx] : null; // safety\n const listRowSelectedEvent: LMListRowSelectedEvent = {\n event,\n rows: [{ idx, data, elem }]\n };\n this.lmListEventService.listRowSelectedEvent(listRowSelectedEvent);\n }\n\n private buildFilterList() {\n // console.log('listfilter buildFilterList');\n if (!this.listSpec.dependentList) {\n throw 'filter list must be a dependent list.';\n }\n\n if (!this.fromDataView) {\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n return;\n }\n\n const url = this.buildInitialPageUrl();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: true });\n // -1 means get all records for the filter list.\n this.lmListGridPagingService.initialPage(url, -1, postContent).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n this.setEmptyMessage();\n\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: false });\n if (listPagingResponse.status === 'COMPLETED') {\n this.postInitialLoad(listPagingResponse);\n return;\n }\n\n if (listPagingResponse.status === 'SYSTEM_EXCEPTION') {\n this.lmErrorUtilService.handleError(listPagingResponse.statusText, listPagingResponse.details, listPagingResponse.status);\n return;\n }\n\n },\n err => {\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: false });\n this.lmErrorUtilService.handleUnexpectedError(err, this.placeholder);\n });\n }\n\n private buildInitialPageUrl(): string {\n if (this.listState\n && this.listState.currentPageUrl\n && this.fromDataView.resourceId === this.listState.fromResourceId\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // ------------------------------------------------------------------\n // if the fromDataView hasn't changed and there is a currentPageUrl\n // then load that to keep our position in the dependent list.\n // ------------------------------------------------------------------\n return this.listState.currentPageUrl;\n } else {\n // ------------------------------------------------------------------\n // else resolve template against the fromDataView's resourceId\n // ------------------------------------------------------------------\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n return compiledUrlTemplate.expand({ resourceId: this.fromDataView.resourceId });\n }\n }\n\n private postInitialLoad(listPagingResponse: LMListPagingResponse) {\n\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.filterListTemplateData = this.lmFilterListService.getFilterListTemplateData(this.dataViewSet, this.listSpec.groupLabel);\n this.pageSize = this.dataViewSet.pagingInfo.pageSize;\n\n /**\n * fire dataLoaded event once listview has been initially loaded with data.\n * Do not fire for any other paging requests other than 'initialPage' load.\n */\n setTimeout(() => {\n if (this.sohoAccordionComponent) {\n // -----------------------------------------------------------------\n // expand the accordion before making any selection.\n // todo ppatton keep track of expanded state in session storage.\n // -----------------------------------------------------------------\n this.sohoAccordionComponent.updated();\n this.sohoAccordionComponent.expandAll();\n }\n });\n setTimeout(() => {\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n\n // this code below causes a 2nd selection event which tries to load the\n // filter list target twice.\n // if (this.sohoAccordionComponent) {\n // // soho updated loses track of what is selected, so save off what is\n // // selected and reselect\n // const selRow = this.getSelectedRow();\n // this.sohoAccordionComponent.updated();\n // this.sohoAccordionComponent.expandAll();\n // this.setSelectedRow(selRow, true);\n // }\n });\n }\n\n public refresh(): Observable {\n return new Observable(observer => {\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: true });\n // console.log('listfilter reload');\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'reload-page' });\n this.lmListGridPagingService.reloadPage(this.dataViewSet, -1, postContent).subscribe((listPagingResponse: LMListPagingResponse) => {\n this.lmLoggerService.timeEnd('reload-page', [this, listPagingResponse.dataViewSet]);\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: false });\n this.postInitialLoad(listPagingResponse);\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n // noop functions\n public updateDataView(key: number, dataView: LMDataView): void { }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void { }\n\n public getDirtyRows(): Array {\n return [];\n }\n\n public activatedRow(): number {\n return 0;\n }\n\n public activateRow(row: number, scrollIntoView = true): void { }\n\n public isModified(): boolean {\n return false;\n }\n\n public addDataView(dataView: LMDataView, index: number) { }\n\n public removeDataView(index: number) { }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) { }\n\n onDrop(event: DragEvent) {\n const target = event.srcElement as HTMLElement;\n const header = target.closest('.accordion-header') as HTMLElement;\n const filterRow = Number(header.dataset.index);\n\n setTimeout(() => {\n header.style.borderStyle = 'solid';\n header.style.borderWidth = '1px';\n header.style.borderColor = '#d8d8d8';\n }, 1);\n\n const row = Number(event.dataTransfer.getData('text'));\n this.lmListContentFilterListUtilService.emitCardDrop(row, filterRow);\n }\n\n onDragOver(event: DragEvent) {\n const target = event.srcElement as HTMLElement;\n\n const header: HTMLElement = target.closest('.accordion-header') as HTMLElement;\n // let index = header.dataset.index;\n\n header.style.borderWidth = '2px';\n header.style.borderStyle = 'dashed';\n header.style.borderColor = 'black';\n\n return false;\n }\n\n onDragStart(event: DragEvent) {\n event.preventDefault();\n\n return false;\n }\n\n onDragLeave(event: DragEvent) {\n const target = event.srcElement as HTMLElement;\n\n const header: HTMLElement = target.closest('.accordion-header') as HTMLElement;\n const index = header.dataset.index;\n\n const selectedAccordionHeader = this.accordionHeaders.toArray()[index];\n header.style.borderStyle = 'solid';\n header.style.borderWidth = '1px';\n header.style.borderColor = '#d8d8d8';\n }\n\n setEmptyMessage(clear = false) {\n if (clear) {\n this.clearEmptyMessage();\n } else {\n this.setNoDataMessage(this.filterCriteria && this.filterCriteria.length > 0);\n }\n }\n}\n","
        \n\n \n 0; else ShowEmptyDataMessage\">\n \n\n \n \n \n \n \n\n \n \n {{data.item}}\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n
        \n
        \n\n
        \n\n
        \n","import {\n Component,\n ComponentFactoryResolver,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChange,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { LMListGridComponent } from './lm-list-grid.component';\nimport { LMListTreeComponent } from './lm-list-tree.component';\nimport { LMListCubeViewerComponent } from './lm-list-cube-viewer.component';\nimport { LMListViewComponent } from './lm-list-view.component';\nimport { LMListService } from '@list/services/lm-list.service';\nimport { LMListCalendarComponent } from './lm-list-calendar.component';\nimport { LMLookupComponent } from '@field/lookup';\n\n@Component({\n selector: 'lm-list-content',\n template: '
        ',\n styleUrls: [ 'lm-list-content.component.scss' ]\n})\nexport class LMListContentComponent implements LMListContentInterface, OnInit, OnChanges {\n @ViewChild('listContainer', { read: ViewContainerRef, static: true }) listContainer: ViewContainerRef;\n\n @Input() displayType: string;\n @Input() listUrlInfo: LMListUrlInfo;\n @Input() listSpec: LMListSpec;\n @Input() listState: LMListState;\n @Input() listPersonalization: LMListPersonalization;\n @Input() fromDataView: LMDataView;\n @Input() sortOrder: LMListSortOrder;\n @Input() filterCriteria: Array;\n @Input() columnfilterOperators: Map;\n @Input() filterListFilterCriteria: Array;\n @Input() hasFilterList: boolean;\n @Input() showFilter: boolean;\n @Input() implementsDragAndDrop: boolean;\n @Input() selectRequestData: SelectRequestData;\n @Input() chartName: string;\n @Input() disabled = false;\n @Input() isDashBoardContent = false;\n @Input() implementsManualLoad: boolean;\n @Input() manualLoadInfo: LMManualLoadInfo;\n @Input() inSelectListEditMode: boolean;\n\n @HostBinding('style.height') get hostHeight() {\n if (this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.implementsOrgChartView) {\n return 'auto';\n }\n }\n\n private holdSelectedRows: Array;\n private component: LMListContentInterface;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private lmListService: LMListService\n ) {}\n\n ngOnInit() {\n this.buildComponent();\n }\n\n ngOnChanges(changes: {[propKey: string]: SimpleChange}) {\n for (const propKey of Object.keys(changes)) {\n const changedInput = changes[propKey];\n // Ignore first change done from OnInit\n if (changedInput.isFirstChange()) {\n break;\n }\n // Rebuild component\n // displayType changes when the user switches between chart or list.\n // listSpec changes when period view changes in cube viewer.\n if (propKey === 'displayType' || propKey === 'listSpec') {\n this.buildComponent();\n break;\n }\n\n this.component[propKey] = changedInput.currentValue;\n }\n }\n\n private buildComponent() {\n this.listContainer.clear();\n const component = this.lmListService.getListByDisplayType(this.displayType);\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n const componentRef = this.listContainer.createComponent(componentFactory);\n this.component = componentRef.instance;\n\n // Set required component inputs first so any that call methods\n // will have what they need available.\n // todo ppatton ben remove the method calls from input setters and place in ngOnChanges maybe.\n // this.listState must be set before this.listSpec\n this.component.listState = this.listState;\n this.component.listUrlInfo = this.listUrlInfo;\n this.component.listSpec = this.listSpec;\n this.component.listPersonalization = this.listPersonalization;\n this.component.inSelectListEditMode = this.inSelectListEditMode;\n\n // Set component inputs\n this.component.hasFilterList = this.hasFilterList;\n this.component.implementsDragAndDrop = this.implementsDragAndDrop;\n this.component.selectRequestData = this.selectRequestData;\n this.component.isDashBoardContent = this.isDashBoardContent;\n this.component.implementsManualLoad = this.implementsManualLoad;\n this.component.manualLoadInfo = this.manualLoadInfo;\n\n // Inputs having setters that executes some method:\n this.component.disabled = this.disabled;\n this.component.showFilter = this.showFilter;\n this.component.filterCriteria = this.filterCriteria;\n this.component.columnfilterOperators = this.columnfilterOperators;\n this.component.filterListFilterCriteria = this.filterListFilterCriteria;\n this.component.chartName = this.chartName;\n this.component.fromDataView = this.fromDataView;\n this.component.sortOrder = this.sortOrder;\n }\n\n public columnById(id: string): ListGridColumn {\n if (this.isType('list')) {\n return this.listGrid.columnById(id);\n }\n if (this.isType('tree')) {\n return this.listTree.columnById(id);\n }\n return null;\n }\n\n public get savedSearches(): LMDataViewSet {\n return this.component.savedSearches;\n }\n\n public get sohoFilterConditions(): Array {\n if (this.isType('list')) {\n return this.listGrid.sohoFilterConditions;\n }\n if (this.isType('tree')) {\n return this.listTree.sohoFilterConditions;\n }\n return [];\n }\n\n public getSelectedTreeDataView(): LMListDataView {\n if (this.displayType === 'tree') {\n return this.listTree.getSelectedTreeDataView();\n }\n if (this.displayType === 'cubeView') {\n return (this.component).getSelectedTreeDataView();\n }\n return null;\n }\n\n public isType(type: string): boolean {\n return (this.displayType === type);\n }\n\n public getDataViewSet(): LMDataViewSet {\n return this.component ? this.component.getDataViewSet() : null;\n }\n\n public getSelectedRows(): number[] {\n return this.component ? this.component.getSelectedRows() : [ -1 ];\n }\n\n public getSelectedRow(): number {\n return this.component ? this.component.getSelectedRow() : -1;\n }\n\n public getDirtyRows(commit: boolean): Array {\n return this.component ? this.component.getDirtyRows(commit) : null;\n }\n\n public isModified(): boolean {\n return this.component ? this.component.isModified() : false;\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean, data?: any) {\n if (this.component) {\n this.component.setDirtyIndicator(row, cell, showDirty, data);\n }\n }\n\n public clearDirtyCell(row: number, cell: number): void {\n if (this.isType('list')) {\n this.listGrid.sohoDataGridComponent.clearDirtyCell(row, cell);\n } else if (this.isType('tree')) {\n this.listTree.sohoDataGridComponent.clearDirtyCell(row, cell);\n }\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView) {\n if (this.component) {\n this.component.onContextMenuItemSelected(actionReference, selectedDataView);\n }\n }\n\n public refresh(): Observable {\n return this.component ? this.component.refresh() : of(true);\n }\n\n public activatedRow(): number {\n return this.component ? this.component.activatedRow() : -1;\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n if (this.component) {\n this.component.updateDataView(key, dataView);\n }\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string) {\n if (this.component) {\n this.component.updateDataViewTransaction(key, status, message);\n }\n }\n\n public setSelectedRows(rowsToSelect: Array, scrollIntoView?: boolean) {\n if (this.component) {\n this.component.setSelectedRows(rowsToSelect, scrollIntoView);\n }\n }\n\n public unSelectAllRows() {\n if (this.component) {\n this.component.unSelectAllRows();\n }\n }\n\n public activateRow(rowToActivate: number, scrollIntoView?: boolean) {\n if (this.component) {\n this.component.activateRow(rowToActivate, scrollIntoView);\n }\n }\n\n public updated(): void {\n // need to implement\n }\n\n public addDataView(dataView: LMDataView, index: number) {\n if (this.component) {\n this.component.addDataView(dataView, index);\n }\n }\n\n public removeDataView(index: number) {\n if (this.component) {\n this.component.removeDataView(index);\n }\n }\n\n public get listGrid(): LMListGridComponent {\n if (this.displayType === 'list') {\n return this.component;\n }\n return null;\n }\n\n public get listTree(): LMListTreeComponent {\n if (this.displayType === 'tree') {\n return this.component;\n }\n return null;\n }\n\n public getColumns(): Array {\n if (this.isType('list')) {\n return this.listGrid.getColumns();\n } else if (this.isType('tree')) {\n return this.listTree.getColumns();\n }\n }\n\n public clearDirty() {\n if (this.isType('list')) {\n return this.listGrid.clearDirty();\n } else if (this.isType('tree')) {\n return this.listTree.clearDirty();\n } else if (this.isType('cubeView')) {\n return (this.component).clearDirty();\n }\n }\n\n public rowStatus(row: number, status: string, tooltip: string) {\n if (this.isType('list')) {\n this.listGrid.rowStatus(row, status, tooltip);\n } else if (this.isType('tree')) {\n this.listTree.rowStatus(row, status, tooltip);\n }\n }\n\n public commitCellEdit(): void {\n if (this.isType('list')) {\n this.listGrid.commitCellEdit();\n } else if (this.isType('tree')) {\n this.listTree.commitCellEdit();\n }\n }\n\n public setActiveCell(row: number, cell: number) {\n if (this.listGrid) {\n this.listGrid.setActiveCell(row, cell);\n }\n }\n\n public removeRow(row: number) {\n if (this.listGrid) {\n this.listGrid.removeRow(row);\n }\n }\n\n public get hasFilterConditions(): boolean {\n if (this.displayType === 'list') {\n return (this.listGrid.sohoDataGridComponent.filterConditions().length > 0);\n } else if (this.displayType === 'tree') {\n return (this.listTree.sohoDataGridComponent.filterConditions().length > 0);\n }\n return false;\n }\n\n public get lmFilterCriteria(): Array {\n if (this.displayType === 'list') {\n return this.listGrid.lmFilterCriteria;\n } else if (this.displayType === 'tree') {\n return this.listTree.lmFilterCriteria;\n }\n return [];\n }\n\n public setSelectListFocus(): void {\n if (this.isType('list')) {\n this.listGrid.setSelectListFocus();\n } else if (this.isType('tree')) {\n this.listTree.setSelectListFocus();\n } else if (this.isType('listView')) {\n (this.component).setSelectListFocus();\n }\n }\n\n public get listCalendar(): LMListCalendarComponent {\n if (this.displayType === 'calendar') {\n return this.component;\n }\n return null;\n }\n\n public cubeSearchOpenLookup(field: LMLookupComponent, searchFormDataView: LMDataView) {\n if (this.displayType === 'cubeView') {\n (this.component).cubeSearchOpenLookup(field, searchFormDataView);\n }\n }\n}\n","import { Component, Input, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, of, of as observableOf, Subscriber, Subscription } from 'rxjs';\nimport { SohoMessageService } from 'ids-enterprise-ng';\n\nimport { LMBannerHeaderComponentRef } from '@banner/lm-banner-header-component-ref.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { AppConstants, LMDialogButtonKey } from '@utils/app.constants';\nimport { LMCubeUtilService } from '@modal/cubes/lm-cube-util.service';\nimport { LMListTreeComponent } from './lm-list-tree.component';\nimport { LMListChartComponent } from './lm-list-chart.component';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMListEventService, LMListSpecUtilService, LMListToolbarService, } from './services/';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { RelatedReportParams } from '@services/lm-relatedreport.service';\nimport {\n LMDimension, LMDimensionMappingResult, LMReportingBasis,\n} from '@modal/cubes/lm-cubes';\nimport { PersonalizeParams } from '@app/services';\nimport { KeyedResource } from '@app/resources';\nimport { LMLookupComponent } from '@field/lookup';\n\nexport class LMPeriodViewCubeEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n periodViewCommand: string;\n\n constructor(event: Event, pCommand: string) {\n this.event = event;\n this.eventType = 'periodViewEvent';\n this.periodViewCommand = pCommand;\n }\n}\n\nexport class LMColumnViewCubeEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n columnViewCommand: string;\n\n constructor(event: Event, cCommand: string) {\n this.event = event;\n this.eventType = 'columnViewEvent';\n this.columnViewCommand = cCommand;\n }\n}\n\nexport class LMExportCubeEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n\n constructor(event: Event, eventType: LMCubeEventType) {\n this.event = event;\n this.eventType = eventType;\n }\n}\n\nexport class LMCubeSaveEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n\n constructor(event: Event, eventType: LMCubeEventType) {\n this.event = event;\n this.eventType = eventType;\n }\n}\n\nexport class LMCreateReportCubeEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n\n constructor(event: Event, eventType: LMCubeEventType) {\n this.event = event;\n this.eventType = eventType;\n }\n}\n\nexport class LMCubeSearchEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n actionReference: LMBusActionReference;\n\n constructor(event: Event, eventType: LMCubeEventType, actionReference: LMBusActionReference) {\n this.event = event;\n this.eventType = eventType;\n this.actionReference = actionReference;\n }\n}\n\nexport class LMCreateReportPersonalizationCubeEvent implements LMCubeEvent {\n event: Event;\n eventType: LMCubeEventType;\n actionReference: LMBusActionReference;\n\n constructor(event: Event, eventType: LMCubeEventType, actionReference: LMBusActionReference) {\n this.event = event;\n this.eventType = eventType;\n this.actionReference = actionReference;\n }\n}\n\n@Component({\n selector: 'lm-cube-view',\n providers: [\n LMCubeUtilService,\n LMListToolbarService,\n ],\n templateUrl: 'lm-list-cube-viewer.component.html',\n styleUrls: [ 'lm-list-cube-viewer.component.scss' ]\n})\nexport class LMListCubeViewerComponent extends LMListContentBaseComponent implements LMListContentInterface, OnInit, OnDestroy {\n\n @Input() listUrlInfo: LMListUrlInfo;\n // error TS2610: 'listSpec' is defined as an accessor in class 'LMListContentBaseComponent'\n // @Input() listSpec: LMListSpec;\n @Input() listState: LMListState;\n @Input() listPersonalization: LMListPersonalization;\n // error TS2610: 'disabled' is defined as an accessor in class 'LMListContentBaseComponent'\n // @Input() disabled = false;\n\n // Dashboard panel cubes\n @Input() chartName: string;\n @Input() dimensionTree: string;\n // Dashboard panel cubes\n\n @Input() isDashBoardContent: boolean;\n\n // error TS2610: 'fromDataView' is defined as an accessor in class 'LMListContentBaseComponent'\n // @Input() fromDataView: LMDataView;\n\n @ViewChild('modalPlaceholder', { read: ViewContainerRef, static: true }) modalPlaceholder: ViewContainerRef;\n @ViewChild(LMListTreeComponent) listTreeComponent: LMListTreeComponent;\n @ViewChild(LMListChartComponent) listChartComponent: LMListChartComponent;\n @ViewChild(LMToolbarComponent) toolbarComponent: LMToolbarComponent;\n\n listTitle = '';\n displayType: string;\n orientation: SohoDataGridSelectable;\n displayChartName: string;\n toolbarButtons: Observable>;\n chartToolbarButtons: Observable>;\n chartTitle: string;\n periodIndex: number;\n\n hasFilterList: boolean;\n implementsDragAndDrop: boolean;\n showFilter: boolean;\n sortOrder: LMListSortOrder;\n\n private cubeComponentId: string;\n private cubeDataLoadedSub: Subscription;\n private cubeFieldChangedSub: Subscription;\n private chartToolbarButtonObserver: Subscriber>;\n private pvPeriodToolbarButton: LMToolbarButton;\n\n private topDimensionMapping: Array;\n private filterDimensionMapping: Array;\n private dimensionMappingDrillDown: LMDimensionValues;\n private searchFormContextFields: Array;\n\n get cubeHostContainerClass(): string {\n if (this.isDashBoardContent || this.listSpec.dependentList) {\n return 'lm-cube-view-host-nomargin';\n } else if (this.listSpec.busListSpec.searchForm) {\n return 'lm-cube-view-host-searchform';\n }\n return 'lm-cube-view-host';\n }\n constructor(\n private router: Router,\n protected lmBannerHeaderCompRef: LMBannerHeaderComponentRef,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListToolbarService: LMListToolbarService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmCubeUtilService: LMCubeUtilService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmContextService: LMContextService,\n protected sohoMessageService: SohoMessageService,\n protected lmUniqueIdService: LMUniqueIdService,\n protected lmGlobalUtilService: LMGlobalUtilService,\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n }\n\n ngOnInit() {\n this.build();\n this.cubeDataLoadedSub =\n this.lmListEventService.cubeDataLoadedEvent$.subscribe(event => this.onDataLoaded(event));\n this.cubeFieldChangedSub =\n this.lmListEventService.fieldChangedEvent$.subscribe(event => this.onContentModified(event));\n }\n\n ngOnDestroy() {\n this.cubeDataLoadedSub.unsubscribe();\n this.cubeFieldChangedSub.unsubscribe();\n this.onBeforeListToolbarMoreMenuOpen = null;\n }\n\n get inMingleWidget(): boolean {\n return this.lmContextService.inMingleWidget();\n }\n\n get hideToolbarTitles(): boolean {\n // It is used only by display type = tree, when in a list detail section.\n // Do not want to push the cube toolbar such as dimensions, period override to overflow menu in a cube viewer.\n return (this.listSpec.dependentList && !this.isDashBoardContent && !this.lmContextService.inMingleWidget()) ? false : true;\n }\n\n protected build() {\n this.initialize();\n }\n\n protected loadManualData(): void {\n // Not implemented\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Not implemented\n }\n\n protected fromDataViewChanged(): void {\n if (this.listSpec.dependentList) {\n // Protect against a cube list being defined with implements manual loading\n this.allowDataLoading = true;\n }\n }\n\n private initialize() {\n this.cubeComponentId = this.listSpec.busListSpec.id;\n if (this.isDashBoardContent) {\n this.displayType = 'chart';\n if (this.chartName) {\n this.displayChartName = this.chartName;\n this.setOrientation(this.displayChartName);\n } else if (this.listSpec.busListSpec.defaultChartName) {\n this.displayChartName = this.listSpec.busListSpec.defaultChartName;\n this.setOrientation(this.displayChartName);\n } else {\n this.displayType = 'tree';\n this.orientation = 'single';\n }\n } else {\n if (this.listSpec.cubeOptions && this.listSpec.cubeOptions.chartName) {\n this.displayChartName = this.listSpec.cubeOptions.chartName;\n this.displayType = 'treeandchart';\n this.setOrientation(this.displayChartName);\n } else if (this.listSpec.busListSpec.charts && Object.keys(this.listSpec.busListSpec.charts).length > 0) {\n this.displayChartName = (this.listSpec.busListSpec.defaultChartName)\n ? this.listSpec.busListSpec.defaultChartName : Object.keys(this.listSpec.busListSpec.charts)[ 0 ];\n this.displayType = 'treeandchart';\n this.setOrientation(this.displayChartName);\n } else {\n this.displayType = 'tree';\n this.orientation = 'single';\n }\n }\n\n if (!this.isDashBoardContent && !this.lmContextService.inMingleWidget()) {\n // Dashboard panels in a page will not have a cube viewer toolbar. The overview navigation will take the user to the cube viewer.\n // Same with Mingle widget too.\n this.toolbarButtons = this.lmListToolbarService.getToolbarButtonsObservable();\n if (!this.listSpec.dependentList) {\n // If the cube is a dependent list (detail panel), do not clear the banner toolbar buttons.\n // If the cube viewer list is the main list, clear the banner toolbar and make use of the tree and chart toolbars.\n this.lmBannerHeaderCompRef.instance.toolbarButtons = observableOf([]);\n }\n }\n\n if (this.displayType === 'treeandchart') {\n this.chartToolbarButtons = new Observable>(observer => {\n this.chartToolbarButtonObserver = observer;\n });\n this.periodIndex = 0;\n if (this.listState\n && this.listState.cubeOverrides) {\n if (this.listState.cubeOverrides.chartName\n && this.listState.cubeOverrides.chartName.length > 0) {\n this.displayChartName = this.listState.cubeOverrides.chartName;\n }\n if (this.listState.cubeOverrides.periodViewPeriod) {\n this.periodIndex = this.listState.cubeOverrides.periodViewPeriod;\n }\n }\n }\n this.dimensionMappingDrillDown = {};\n this.searchFormContextFields = [];\n if (this.listState?.filterCriteria?.length) {\n this.listState.filterCriteria.forEach(f => {\n if (f.isBusClassContextField && !f.isDisplayOnly) {\n this.searchFormContextFields.push(f.fieldId);\n }\n }, this);\n }\n }\n\n private setOrientation(chartName: string) {\n this.orientation = (this.listSpec.busListSpec.charts[ chartName ].orientation === 'row')\n ? 'siblings' : 'single';\n }\n\n private buildToolbar() {\n this.lmListToolbarService.buildToolbarButtons(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n\n // Build Chart toolbar\n this.buildChartToolbar();\n }\n\n private buildChartToolbar() {\n if (this.displayType === 'treeandchart') {\n this.setChartTitle(this.displayChartName);\n\n this.setChartPVPeriodsToolbarButtons();\n }\n }\n\n private getStateInfo(): LMListStateInfo {\n // LMListStateInfo vs LMListState\n // This is used by LMListToolbarService only.\n const stateInfo: LMListStateInfo = {\n dataViewSet: this.getDataViewSet(),\n selectedDataView: this.getSelectedTreeDataView(),\n selectedRows: this.getSelectedRows(),\n isModified: this.isModified(),\n isUpdatable: this.lmListSpecUtilService.allowUpdate(this.listSpec),\n inlineCreateEnabled: false,\n createWithinEnabled: false,\n cubeDisplayChartName: this.displayChartName\n };\n\n return stateInfo;\n }\n\n private setChartTitle(chartName: string) {\n const listChartTitle = this.listSpec.busListSpec.charts[ chartName ].title;\n this.chartTitle = this.lmFormatUtilService.formatMessageRule(listChartTitle, this.getDataViewSet().header);\n }\n\n private setChartPVPeriodsToolbarButtons(): void {\n const pvPeriodToolbar: Array = new Array();\n\n const hasPeriodViews = this.listSpec.cubeOptions.periods && this.listSpec.cubeOptions.periods.length > 0;\n const pvPeriods = this.getDataViewSet().cubeInfo.pvPeriods;\n if (hasPeriodViews && pvPeriods && pvPeriods.length > 0) {\n let currentPVPeriod = pvPeriods[ 0 ];\n if (this.listState.cubeOverrides && this.listState.cubeOverrides.periodViewPeriod) {\n // When the user switches period view, the index stored in state may or may not have an item.\n if (this.listState.cubeOverrides.periodViewPeriod < pvPeriods.length) {\n currentPVPeriod = pvPeriods[ this.listState.cubeOverrides.periodViewPeriod ];\n } else {\n this.listState.cubeOverrides.periodViewPeriod = undefined;\n this.periodIndex = 0;\n }\n }\n this.pvPeriodToolbarButton = this.getPeriodViewPeriodMenuItem(currentPVPeriod, true);\n this.pvPeriodToolbarButton.menu = pvPeriods.map(pvPeriod => this.getPeriodViewPeriodMenuItem(pvPeriod));\n pvPeriodToolbar.push(this.pvPeriodToolbarButton);\n }\n this.chartToolbarButtonObserver.next(pvPeriodToolbar);\n }\n\n private getPeriodViewPeriodMenuItem(pvPeriod: LMPeriodViewPeriod, isTopLevel = false): LMToolbarButton {\n const label = pvPeriod.label;\n const pvPeriodActionRef: LMBusActionReference = {\n id: AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS,\n type: 'cube', label, index: pvPeriod.idx, tooltip: Soho.Locale.translate('ChartPeriod')\n };\n const pvPeriodToolbarItem: LMToolbarButton = {\n actionReference: pvPeriodActionRef,\n state: { visible: true, disabled: null },\n data: JSON.stringify(pvPeriodActionRef),\n isToggle: false,\n };\n if (!isTopLevel) {\n const currSelectionIndex = (this.listState.cubeOverrides && this.listState.cubeOverrides.periodViewPeriod)\n ? this.listState.cubeOverrides.periodViewPeriod : 0;\n if (pvPeriod.idx === currSelectionIndex) {\n pvPeriodToolbarItem.isChecked = true;\n }\n }\n return pvPeriodToolbarItem;\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent): void {\n this.lmLoggerService.trace([ this, this.cubeComponentId, 'onToolbarButtonEvent', toolbarButtonEvent ]);\n\n const actionReference: LMBusActionReference = toolbarButtonEvent.actionReference;\n this.runToolbarButtonAction(actionReference);\n }\n\n private runToolbarButtonAction(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // Action reference type is cube for all cube related actions.\n switch (actionReference.id) {\n case AppConstants.CUBE_TOOLBAR_SET_CH_DIMENSIONS:\n this.setTopDimensionValues();\n break;\n case AppConstants.CUBE_TOOLBAR_DRILLDOWN_DIMENSIONS:\n this.drillDownDimensionTree(selectedDataView);\n break;\n case AppConstants.CUBE_TOOLBAR_SET_FILTER_DIMENSIONS:\n this.setFilterDimensionValues();\n break;\n case AppConstants.CUBE_TOOLBAR_DIMENSIONS:\n this.buildDimensionsDialog();\n break;\n case AppConstants.CUBE_TOOLBAR_PIVOTVIEWS:\n this.changePivotView(actionReference.pivotViewCommand);\n break;\n case AppConstants.CUBE_TOOLBAR_COLUMNVIEWS:\n this.changeColumnView(actionReference.columnViewCommand);\n break;\n case AppConstants.CUBE_TOOLBAR_PERIODOVERRIDE:\n this.buildPeriodOverrideDialog();\n break;\n case AppConstants.CUBE_TOOLBAR_PERIODVIEW:\n this.changePeriodView(actionReference.periodViewCommand);\n break;\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n this.refresh().subscribe();\n break;\n case AppConstants.CUBE_TOOLBAR_OPTIONS_CUBESTATUS:\n this.displayCubeStatus();\n break;\n case AppConstants.STANDARD_TOOLBAR_PRINTTOFILE:\n this.runPdfAction();\n break;\n case AppConstants.STANDARD_TOOLBAR_EXPORTCSV:\n this.runCsvAction();\n break;\n case AppConstants.STANDARD_TOOLBAR_CREATEREPORT:\n this.runCreateReport();\n break;\n // case AppConstants.STANDARD_TOOLBAR_PERSONALIZE:\n // this.runCreateReportPersonalization(actionReference);\n // break;\n case AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON:\n this.switchChart(actionReference.name);\n break;\n case AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS:\n this.switchChartPeriodViewPeriod(actionReference.index);\n break;\n case AppConstants.STANDARD_SAVE:\n this.runCubeSaveAction();\n break;\n case AppConstants.STANDARD_TOOLBAR_RELATEDREPORT:\n this.lmGlobalUtilService.navigateByUrl(actionReference.relActionUrl);\n break;\n case AppConstants.STANDARD_TOOLBAR_SEARCH:\n this.openSearchForm(actionReference);\n break;\n default:\n if (actionReference.type === 'personalize') {\n this.runCreateReportPersonalization(actionReference);\n }\n }\n }\n\n private initializeTopAndFilterDimensionValues() {\n // Do it only for GL95 for now with Child hierarchy dimensions.\n // The values are set in the List state. It will be applied when the user goes to period override but does not visit the structure or filter dialogs.\n // TODO: Filter eventually will be available for all cubes. At that time initialize filter even when child hierarchy dimensions are not present.\n // TODO: This will merge the top node or filter dimension values in a saved report for cubes.\n if (this.listSpec.busListSpec.hasChildHierarchyDims) {\n if (!this.listState) {\n this.listState = {};\n }\n if (!this.listState.cubeOverrides) {\n this.listState.cubeOverrides = {};\n }\n\n // Initialize top dimensions and reporting basis\n if (!this.listState.cubeOverrides.topDimensions) {\n const topDimensions: Array = [];\n if (this.dataViewSet?.cubeInfo.topNodeDims) {\n Object.keys(this.dataViewSet.cubeInfo.topNodeDims)\n .map((key) => {\n const value = this.dataViewSet.cubeInfo.topNodeDims[ key ];\n topDimensions.push({\n topDimId: key,\n topDimVal: value,\n // Removing dimension type since all the top node dimenions are Child hierarchy dimension. It need not be in the request.\n // 'topDimType': dimension.dimType\n });\n });\n this.listState.cubeOverrides.topDimensions = topDimensions;\n this.listState.cubeOverrides.reportingBasis = this.dataViewSet.cubeInfo.reportingBasis;\n }\n }\n // Initialize ctx field value\n if (!this.listState.cubeOverrides.topContextFields && this.dataViewSet?.cubeInfo.topContextFields) {\n this.listState.cubeOverrides.topContextFields = [ ... this.dataViewSet.cubeInfo.topContextFields ];\n }\n\n // TODO: Initialize filter dimensions for saved search\n if (!this.listState.cubeOverrides.fltrDimensions) {\n }\n\n if (this.listSpec.busListSpec.searchForm && !this.listState.filterCriteria) {\n this.initializeDimensionMappingForSearch()\n .subscribe((ready) => {\n if (ready) {\n // TODO: Initialize filter criteria for saved search\n }\n });\n }\n }\n }\n\n private setTopDimensionValues(): void {\n // this.topDimensionMapping is an Array of LMDimension. Output of cubeDimensionMapping that includes dimension name, type, value, selecturl etc.\n // initTopNodeValues - If the user has not clicked on structures dialog, get the name and value of top dimensions from DVS to initialize the Dimension in Structure dialog.\n const initTopNodeValues: LMDimensionValues = {};\n if (this.topDimensionMapping === undefined) {\n // Will this value be the same as top dimensions in a saved report?\n // When the user switches period view or pivot view, the dataviewset will have the correct top dimension values.\n Object.keys(this.dataViewSet.cubeInfo.topNodeDims).forEach((dim) => {\n initTopNodeValues[dim] = this.dataViewSet.cubeInfo.topNodeDims[dim].replace(/(\\r\\n|\\n|\\r)/gm, '/');\n });\n }\n // Initialize the reporting basis required in the structure dialog.\n let reportingBasis: LMReportingBasis;\n if (this.dataViewSet.cubeInfo.reportingBasis) {\n const selectResource = new KeyedResource({ resourceType: 'list', resourceId:this.dataViewSet.cubeInfo.reportingBasisBusClass + '.' + this.dataViewSet.cubeInfo.reportingBasisSelList });\n const contextResource = new KeyedResource({ resourceType: 'select', resourceId: this.dataViewSet.cubeInfo.reportingBasisBusClass + '.' + this.dataViewSet.cubeInfo.reportingBasisFieldId });\n reportingBasis = { busClass: this.dataViewSet.cubeInfo.reportingBasisBusClass,\n cubeListName: this.listSpec.busListSpec.name,\n fieldId: this.dataViewSet.cubeInfo.reportingBasisFieldId,\n label: this.dataViewSet.cubeInfo.reportingBasisLabel,\n value: this.dataViewSet.cubeInfo.reportingBasis,\n selectUrl: this.lmUrlUtilService.buildUrl({ resource: selectResource, contextResource, params: { output: 'spec', type: 'select' } })\n };\n }\n this.lmCubeUtilService.buildCubeStructuresDialog(this.modalPlaceholder, this.listSpec.busClassSpec.name, initTopNodeValues, this.topDimensionMapping, reportingBasis)\n .subscribe((response: LMDimensionMappingResult) => {\n if (response && response.dimensionMapping && response.dimensionMapping.length > 0) {\n this.topDimensionMapping = response.dimensionMapping;\n const topDimensions: Array = new Array();\n this.topDimensionMapping\n .filter((item: LMDimension) => item.value && item.value.trim().length)\n .map((item: LMDimension) => {\n topDimensions.push({\n topDimId: item.name,\n topDimVal: item.value ? item.value.replace('/', '\\n') : item.value,\n // Removing dimension type since all the top node dimenions are Child hierarchy dimension. It need not be in the request.\n // 'topDimType': item.dimType\n });\n });\n let reload = false;\n if (response.reportingBasis && this.dataViewSet.cubeInfo.reportingBasis !== response.reportingBasis) {\n this.listState.cubeOverrides.reportingBasis = response.reportingBasis;\n if (this.listState.cubeOverrides.topContextFields) {\n const ctxField = this.listState.cubeOverrides.topContextFields.find(c => c.topcFldId === this.dataViewSet.cubeInfo.reportingBasisFieldId);\n if (ctxField) {\n ctxField.topcFldVal = response.reportingBasis;\n }\n }\n reload = true;\n // drop filter child hierarchy dimensions since they are in the context of old reporting basis/topDimensions.\n this.clearFilterDimensionValues(topDimensions, true);\n }\n if (topDimensions.length) {\n // Compare old and new top dimension value in the listState.\n // If they are not the same, then clear the corresponding filter dimension value.\n // If reload is set, the filter dimensions are already cleared (reporting basis changed)\n if (!reload) {\n this.clearFilterDimensionValues(topDimensions);\n }\n this.listState.cubeOverrides.topDimensions = topDimensions;\n reload = true;\n }\n if (reload) {\n this.listTreeComponent.cubeReload();\n }\n } else if (response && response.message && response.message === 'reset') {\n // Reset in Structure dialog brings back to the first reporting basis in the list of Reporting basis.\n // The framework will fetch the top dimension values if reporting basis and top dimension values are not provided.\n this.topDimensionMapping = undefined;\n this.listState.cubeOverrides.reportingBasis = undefined;\n if (this.listState.cubeOverrides.topContextFields) {\n const ctxField = this.listState.cubeOverrides.topContextFields.findIndex(c => c.topcFldId === this.dataViewSet.cubeInfo.reportingBasisFieldId);\n if (ctxField !== -1) {\n this.listState.cubeOverrides.topContextFields.splice(ctxField, 1);\n }\n }\n // drop filter hierarchy dimensions since they are in the context of the reporting basis/topDimensions.\n this.clearFilterDimensionValues(this.listState.cubeOverrides.topDimensions, true);\n this.listState.cubeOverrides.topDimensions = [];\n this.listTreeComponent.cubeReload();\n }\n });\n }\n\n private clearFilterDimensionValues(topDimensions: Array, all = false) {\n const listState = this.listState;\n topDimensions.forEach((newTopD) => {\n if (all) {\n this.clearAFilterDimension(newTopD.topDimId);\n } else {\n const oldTopD = listState.cubeOverrides.topDimensions.find(topD => topD.topDimId === newTopD.topDimId);\n if (oldTopD && oldTopD.topDimVal !== newTopD.topDimVal) {\n // Remove the corresponding filter dimension value. The top node value has changed and is no longer valid.\n this.clearAFilterDimension(newTopD.topDimId);\n }\n }\n });\n }\n private clearAFilterDimension(fltrDimId: string) {\n if (this.listState?.cubeOverrides?.fltrDimensions?.length) {\n const index = this.listState.cubeOverrides.fltrDimensions.findIndex(fltrD => fltrD.fltrDimId === fltrDimId);\n if (index !== -1) {\n this.listState.cubeOverrides.fltrDimensions.splice(index, 1);\n }\n }\n if (this.filterDimensionMapping) {\n const index2 = this.filterDimensionMapping.findIndex(f => f.id === fltrDimId);\n if (index2 !== -1) {\n this.filterDimensionMapping[index2].value = '';\n }\n }\n }\n\n private setFilterDimensionValues(): void {\n const initFilterValues = this.initializeFilterState();\n // Pass DVS top dimension values (base values) to initialize the select dataview appropriately. The select window will\n // show only the top node and its children as a result.\n const topNodeBaseValues: LMDimensionValues = this.getTopNodeBaseValues();\n\n this.lmCubeUtilService.buildCubeDimensionMappingDialog(this.modalPlaceholder, this.listSpec.busClassSpec.name,\n topNodeBaseValues, initFilterValues, this.filterDimensionMapping)\n .subscribe((response: LMDimensionMappingResult) => {\n if (response && response.dimensionMapping && response.dimensionMapping.length > 0) {\n this.filterDimensionMapping = response.dimensionMapping;\n const fltrDimensions: Array = new Array();\n this.filterDimensionMapping\n .filter((item: LMDimension) => item.value && item.value.trim().length)\n .map((item: LMDimension) => {\n fltrDimensions.push({\n fltrDimId: item.name,\n fltrDimVal: item.value ? item.value.replace('/', '\\n') : item.value,\n fltrDimType: item.dimType });\n });\n if (fltrDimensions.length) {\n this.listState.cubeOverrides.fltrDimensions = fltrDimensions;\n this.listTreeComponent.cubeReload();\n }\n } else if (response && response.message && response.message === 'reset') {\n this.listState.cubeOverrides.fltrDimensions = undefined;\n if (this.filterDimensionMapping) {\n this.filterDimensionMapping.forEach((dim) => { dim.value = ''; });\n }\n // Drill down will also add filters. Reset will clear the drill down filters also.\n if (Object.keys(this.dimensionMappingDrillDown).length > 0) {\n this.dimensionMappingDrillDown = {};\n }\n this.listTreeComponent.cubeReload();\n }\n });\n }\n\n private initializeFilterState(): LMDimensionValues {\n const initFilterValues: LMDimensionValues = {};\n if (this.filterDimensionMapping === undefined) {\n // Check if there are values in the state and apply. This will happen when user changes the period view or pivot view.\n if (this.listState?.cubeOverrides?.fltrDimensions && this.listState.cubeOverrides.fltrDimensions.length > 0) {\n this.listState.cubeOverrides.fltrDimensions.forEach((dim) => {\n initFilterValues[dim.fltrDimId] = dim.fltrDimVal.replace(/(\\r\\n|\\n|\\r)/gm, '/');\n });\n }\n }\n return initFilterValues;\n }\n\n private getTopNodeBaseValues(): LMDimensionValues {\n const topNodeBaseValues: LMDimensionValues = {};\n if (this.dataViewSet.cubeInfo.topNodeDims) {\n // Will this value be the same as top dimensions in a saved report?\n // When the user switches period view or pivot view, the dataviewset will have the correct top dimension values.\n Object.keys(this.dataViewSet.cubeInfo.topNodeDims).forEach((dim) => {\n // topNodeBaseValues[dim] = this.dataViewSet.cubeInfo.topNodeDims[dim].substr(this.dataViewSet.cubeInfo.topNodeDims[dim].lastIndexOf('\\n') + 1);\n topNodeBaseValues[dim] = this.dataViewSet.cubeInfo.topNodeDims[dim].replace(/(\\r\\n|\\n|\\r)/gm, '/');\n });\n }\n return topNodeBaseValues;\n }\n\n private drillDownDimensionTree(selectedDataView: LMDataView): void {\n // Get the dimension mapping and save it for bringing up the dialog.\n if (selectedDataView) {\n this.initializeDimensionMappingForDrillDown().subscribe((ready) => {\n // get the cube info of selected dataview and populate the filter dimensions\n // Following two member variables are used by filter dialog\n // dimensionMappingDrillDown will have the name / value of dimension. Initialize it here based on the current dimensions in selected row's cubeInfo.\n // filterDimensionMapping - This is the result of backend call to get the BusClass dimensions. It has type information and selectUrl etc to render the filter dialog.\n this.dimensionMappingDrillDown = {};\n // fltrDimensions - Used by drill down operation\n let fltrDimensions: Array = new Array();\n selectedDataView.cubeInfo.dimensions.forEach((dim) => {\n this.dimensionMappingDrillDown[dim.dimId] = dim.dimVal.replace(/(\\r\\n|\\n|\\r)/gm, '/');\n fltrDimensions.push({\n fltrDimId: dim.dimId,\n fltrDimVal: dim.dimVal,\n fltrDimType: dim.dimType });\n });\n // Do not have to prompt the dialog. Just update the dimension mapping drill down and it can be used to initialize the filter dialog.\n // this.setFilterDimensionValues();\n\n // LMCLIENT-37438 - Merge with what is in filter dimensions already. The above block of code where fltrDimensions is built will be used if the user has not visited filter dialog.\n if (this.filterDimensionMapping && this.filterDimensionMapping.length > 0) {\n fltrDimensions = [];\n this.filterDimensionMapping.forEach((dim) => {\n // Get the value from the selected dataview or use what is already picked up in Filter dialog\n if (this.dimensionMappingDrillDown.hasOwnProperty(dim.id)) {\n dim.value = this.dimensionMappingDrillDown[dim.id];\n }\n if (dim.value.trim().length > 0) {\n fltrDimensions.push({\n fltrDimId: dim.name,\n fltrDimVal: dim.value ? dim.value.replace('/', '\\n') : dim.value,\n fltrDimType: dim.dimType });\n }\n });\n }\n\n if (fltrDimensions.length) {\n this.listState.cubeOverrides.fltrDimensions = fltrDimensions;\n this.listTreeComponent.cubeReload();\n // Update list state filter criteria used in search forms\n // Search button will be rendered in toolbar and not filter button.\n // Search form may be open. If the row dimension field is in the search form, update the value.\n if (this.listSpec.busListSpec.searchForm) {\n this.updateFilterCriteriaAfterDrillDown();\n }\n }\n });\n }\n }\n\n private initializeDimensionMappingForDrillDown(): Observable {\n // Filter Mapping is required to be filled out if a search form is available.\n // This is to fetch the labels for the dimensions in search tags.\n // Other information can be picked up from rowDimensions in selected Dataview.\n // Do this before Drill down reloads the cube, since onDataLoaded will update the searchDataView\n // bound to the search form.\n if (this.listSpec.busListSpec.searchForm) {\n return this.initializeDimensionMappingForSearch();\n } else {\n return of(true);\n }\n }\n private updateFilterCriteriaAfterDrillDown() {\n // The filter dimension mapping, if not available will be retrieved and initialized with values in listState for filter dimensions.\n // Retrieving filter dimension mapping is necessary since label for a dimension is required to be displayed in tags.\n if (!this.listState.filterCriteria) {\n this.listState.filterCriteria = [];\n }\n this.filterDimensionMapping.forEach((dim) => {\n if (dim.value.trim().length > 0) {\n // Get the filter criteria from state. If a dimension is in filter criteria, update its value to row dimension value.\n // Else add a criterion to the collection. The other filter criteria in the search form will still apply\n // as the row dimension values are merged.\n let filterCriterion = this.listState.filterCriteria.find(f => f.fieldId === dim.encId);\n if (filterCriterion) {\n filterCriterion.value = dim.value.trim();\n } else {\n filterCriterion = { fieldId: dim.encId,\n operator: 'equals',\n value: dim.value.trim(),\n displayValue: dim.value.trim(),\n label: dim.label,\n };\n this.listState.filterCriteria.push(filterCriterion);\n }\n }\n });\n }\n\n\n private buildDimensionsDialog(): void {\n this.lmCubeUtilService.openCubeDimensionsDialog(this.listSpec, this.dataViewSet, this.listState, this.modalPlaceholder).subscribe((result: boolean) => {\n // TODO: Refresh cubes\n if (result) {\n // reload list.\n this.listTreeComponent.cubeReload();\n }\n });\n }\n\n private buildPeriodOverrideDialog(): void {\n this.lmCubeUtilService.openCubePeriodOverrideDialog(this.listSpec, this.dataViewSet, this.listState, this.modalPlaceholder).subscribe((result: boolean) => {\n // TODO: Refresh cubes\n if (result) {\n // reload list.\n this.listTreeComponent.cubeReload(true);\n }\n });\n }\n\n private changePivotView(pivotView: string) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n // If dimensionOverrides are present, remove them from cubeOverrides.\n // Changing to a different pivot view will apply all but dimension override.\n // The resulting cube will have the row dimensions for the given pivot view.\n if (this.listState.cubeOverrides.dimensionOverrides?.dimensionsOverride) {\n delete this.listState.cubeOverrides.dimensionOverrides.dimensionsOverride;\n }\n this.listState.cubeOverrides.pivotView = pivotView;\n // Rely on dataviewset to set the current pivot view in lm-list-toolbar.service\n this.listTreeComponent.cubeReload();\n }\n\n private changeColumnView(columnView: string) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.columnView = columnView;\n // Changes the display fields. Fetch the new busListSpec.\n this.lmListEventService.cubeEvent(new LMColumnViewCubeEvent(null, columnView));\n }\n\n private changePeriodView(pCommand: string): void {\n if (this.chartToolbarButtonObserver) {\n this.chartToolbarButtonObserver.next([]);\n }\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.periodView = pCommand;\n if (this.listState.cubeOverrides.periodViewPeriod !== undefined) {\n this.listState.cubeOverrides.periodViewPeriod = 0;\n }\n // Cant do cubeReload since busListSpec changes\n // this.listTreeComponent.cubeReload();\n // Attempt #1\n // let url = this.lmUrlUtilService.removeParam(this.router.url, 'periodView');\n // this.router.navigateByUrl(url+ '&periodView=' + pCommand, { skipLocationChange: true });\n // Attempt #2\n this.lmListEventService.cubeEvent(new LMPeriodViewCubeEvent(null, pCommand));\n }\n\n private displayCubeStatus(): void {\n let cubeStatusText = Soho.Locale.translate('CubeUnableToDetermineStatus');\n if (this.dataViewSet.cubeInfo.cubeStatus) {\n cubeStatusText = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('CubeLastRefreshText'),\n this.lmFormatUtilService.timestampToDisplay(this.dataViewSet.cubeInfo.cubeStatus));\n }\n\n const dialogId = 'CheckCubeStatus';\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ];\n this.sohoMessageService\n .message()\n .message(cubeStatusText)\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .open();\n }\n\n private runPdfAction() {\n this.lmListEventService.cubeEvent(new LMExportCubeEvent(null, 'exporttopdf'));\n }\n\n private runCsvAction() {\n this.lmListEventService.cubeEvent(new LMExportCubeEvent(null, 'exporttocsv'));\n }\n\n private runCreateReport() {\n this.lmListEventService.cubeEvent(new LMCreateReportCubeEvent(null, 'createreport'));\n }\n\n private runCreateReportPersonalization(actionReference: LMBusActionReference) {\n this.lmListEventService.cubeEvent(new LMCreateReportPersonalizationCubeEvent(null, 'createreportpersonalization', actionReference));\n }\n\n private runCubeSaveAction() {\n this.lmListEventService.cubeEvent(new LMCubeSaveEvent(null, 'cubesave'));\n }\n\n private openSearchForm(actionReference: LMBusActionReference) {\n this.initializeDimensionMappingForSearch()\n .subscribe((ready) => {\n if (ready) {\n this.lmListEventService.cubeEvent(new LMCubeSearchEvent(null, 'cubesearch', actionReference));\n }\n });\n }\n\n public cubeSearchOpenLookup(field: LMLookupComponent, searchFormDataView: LMDataView) {\n const topNodeBaseValues: LMDimensionValues = this.getTopNodeBaseValues();\n // Open lookup dialog component for cube views.\n // The field may be a context field and hence not in the dimension collection.\n this.initializeDimensionMappingForSearch()\n .subscribe((ready) => {\n if (ready) {\n const dimension = this.filterDimensionMapping.find(d => d.encId === field.bindId);\n const topNodeDimValue = (dimension) ? topNodeBaseValues[dimension.id] : '';\n this.lmCubeUtilService.cubeSearchOpenSelectListDialog(dimension, topNodeDimValue, field, searchFormDataView);\n }\n });\n // });\n }\n\n private initializeDimensionMappingForSearch(): Observable {\n if (this.filterDimensionMapping) {\n return of(true);\n }\n return new Observable((observer) => {\n const initFilterValues = this.initializeFilterState();\n\n this.lmCubeUtilService.getDimensionMapping(this.listSpec.busClassSpec.name, initFilterValues, this.filterDimensionMapping)\n .subscribe((dimMappingResult: LMDimensionMappingResult) => {\n this.filterDimensionMapping = dimMappingResult.dimensionMapping;\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n private cubeSearchOrClearButtonClicked() {\n const fltrDimensions = [];\n const ctxFields = [];\n if (!this.filterCriteria || this.filterCriteria.length === 0) {\n // Clear Search\n if (this.filterDimensionMapping) {\n this.filterDimensionMapping.forEach(f => { f.value = ''; });\n }\n } else {\n // Do Search\n this.filterCriteria.forEach((f) => {\n if (this.filterDimensionMapping) {\n const index2 = this.filterDimensionMapping.findIndex(fd => fd.encId === f.fieldId);\n if (index2 !== -1) {\n if (Array.isArray(f.value) && f.value.length > 0) {\n this.filterDimensionMapping[index2].value = f.value[0];\n fltrDimensions.push({\n fltrDimId: this.filterDimensionMapping[ index2 ].id,\n fltrDimVal: this.filterDimensionMapping[ index2 ].value.replace('/', '\\n'),\n fltrDimType: this.filterDimensionMapping[ index2 ].dimType\n });\n } else {\n // Check for empty value. The merge that happens with sticky filterOperators in list component is introducing blank entries in filterCriteria\n if (f.value.trim().length > 0) {\n this.filterDimensionMapping[index2].value = f.value;\n fltrDimensions.push({\n fltrDimId: this.filterDimensionMapping[ index2 ].id,\n fltrDimVal: this.filterDimensionMapping[ index2 ].value.replace('/', '\\n'),\n fltrDimType: this.filterDimensionMapping[ index2 ].dimType\n });\n }\n }\n } else {\n // Context fields such as BudgetIdentifier\n if (!f.isDisplayOnly) {\n ctxFields[f.fieldId] = f.value;\n // ContextFields in cube is a collection of top dimension context fields in the parent link of 'top node is..' definition.\n // It also includes business class context fields in search form definition.\n // Adding it to a collection, so clear search will clear only the context fields in search form.\n if (!this.searchFormContextFields.includes(f.fieldId)) {\n this.searchFormContextFields.push(f.fieldId);\n }\n }\n }\n }\n });\n }\n // Filter dimensions may be an empty array on clear.\n if (!this.listState.cubeOverrides) {\n this.listState.cubeOverrides = {};\n }\n this.listState.cubeOverrides.fltrDimensions = fltrDimensions;\n if (!this.listState.cubeOverrides.topContextFields) {\n this.listState.cubeOverrides.topContextFields = [];\n }\n this.searchFormContextFields.forEach((fieldId: string) => {\n const cIndex = this.listState.cubeOverrides.topContextFields.findIndex(c => c.topcFldId === fieldId);\n if (ctxFields.hasOwnProperty(fieldId)) {\n // include the value for search\n if (cIndex !== -1 ) {\n this.listState.cubeOverrides.topContextFields[cIndex].topcFldVal = ctxFields[fieldId];\n } else {\n this.listState.cubeOverrides.topContextFields.push( { topcFldId: fieldId, topcFldVal: ctxFields[fieldId] });\n }\n } else {\n // clear the value for search\n if (cIndex !== -1) {\n this.listState.cubeOverrides.topContextFields.splice(cIndex, 1);\n }\n }\n }, this);\n this.listTreeComponent.cubeReload();\n }\n\n private switchChart(chartName: string) {\n this.displayChartName = chartName;\n this.setOrientation(this.displayChartName);\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.chartName = chartName;\n\n this.setChartTitle(chartName);\n // Update toolbar is required if the chart toolbar uses chart title instead of icon.\n // this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo());\n if (this.listTreeComponent) {\n this.listTreeComponent.updateChartOrientationForCube();\n }\n }\n\n private switchChartPeriodViewPeriod(periodIndex: number) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.periodViewPeriod = periodIndex;\n\n this.pvPeriodToolbarButton.actionReference.label = this.getDataViewSet().cubeInfo.pvPeriods[ periodIndex ].label;\n this.periodIndex = periodIndex;\n }\n\n public onContentModified(fieldChangedEvent: LMListFieldChangedEvent) {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n\n public onDataLoaded(listPagingResponse: LMListPagingResponse) {\n // dataLoaded still need to be emitted so the list visibility is not set to hidden\n if (listPagingResponse.dataViewSet) {\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.initializeTopAndFilterDimensionValues();\n if (!this.isDashBoardContent && !this.lmContextService.inMingleWidget()) {\n this.buildToolbar();\n }\n }\n // Set the title for cube view in a detail section.\n if (!this.hideToolbarTitles) {\n this.setScreenTitle((listPagingResponse.dataViewSet) ? listPagingResponse.dataViewSet.header : undefined);\n }\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n\n private setScreenTitle(dataView?: LMDataView) {\n if (this.disabled) {\n const hasNoVariables = (!this.listSpec.busListSpec.title.variables || this.listSpec.busListSpec.title.variables.length === 0);\n this.listTitle = hasNoVariables ? this.listSpec.busListSpec.title.resourceValue : ' ' ;\n } else {\n this.listTitle = dataView\n ? this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.title, dataView)\n : this.listSpec.busListSpec.title.resourceValue;\n }\n }\n\n public onCubeRowsSelected(dataViewSet: LMDataViewSet | LMDataView) {\n if (this.displayType === 'treeandchart') {\n this.listChartComponent.cubeUpdateChart(dataViewSet);\n }\n }\n\n public getSelectedTreeDataView(): LMListDataView {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.getSelectedTreeDataView();\n }\n return null;\n }\n\n public clearDirty() {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.clearDirty();\n }\n }\n\n protected filterCriteriaChanged(): void {\n if ((this.displayType === 'treeandchart' || this.displayType === 'tree') && this.listTreeComponent) {\n this.cubeSearchOrClearButtonClicked();\n }\n }\n\n protected filterListCriteriaChanged(): void {\n //\n }\n\n // Begin LMListContentInterface\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.runToolbarButtonAction(actionReference, selectedDataView);\n }\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.listTreeComponent.updateDataViewTransaction(key, status, message);\n }\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.listTreeComponent.updateDataView(key, dataView);\n }\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.listTreeComponent.setDirtyIndicator(row, cell, showDirty);\n }\n }\n\n public getDataViewSet(): LMDataViewSet {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.getDataViewSet();\n }\n // Else for dashboard, just return the main dataviewset.\n return this.dataViewSet;\n }\n\n public getDirtyRows(commitEdits: boolean = undefined): Array {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.getDirtyRows(commitEdits);\n }\n return [];\n }\n\n public getSelectedRows(): Array {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.getSelectedRows();\n }\n // Else for dashboard, return empty array\n return [];\n }\n\n public getSelectedRow(): number {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.getSelectedRow();\n }\n // Else for dashboard\n return 0;\n }\n\n setSelectedRows(rowsToSelect: Array, scrollIntoView?: boolean) {\n // TODO:\n if (!this.isDashBoardContent) {\n if (rowsToSelect.length > 0) {\n this.listTreeComponent.cubeSelectRows(rowsToSelect, scrollIntoView);\n } else {\n // No data, zero rows to select.\n // Say, on reset period override, there is no data available.\n // If the chart was up for a different period,\n // clear the chart that belongs to a different period.\n if (this.displayType === 'treeandchart') {\n // sohoxi selectRow for tree does not trigger events if there are no rows to select (empty dataviewset)\n // In that case, listTreeComponent onRowsSelected will not be called either. Clear the chart here.\n this.listChartComponent.cubeUpdateChart(this.dataViewSet);\n }\n }\n }\n }\n\n public unSelectAllRows(): void {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.listTreeComponent.unSelectAllRows();\n }\n }\n\n public activateRow(row: number, scrollIntoView?: boolean): void {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n this.listTreeComponent.activateRow(row, scrollIntoView);\n }\n }\n\n public activatedRow(): number {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.activatedRow();\n }\n return -1;\n }\n\n public isModified(): boolean {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.isModified();\n }\n return false;\n }\n\n public refresh(): Observable {\n if (this.displayType === 'treeandchart' || this.displayType === 'tree') {\n return this.listTreeComponent.refresh();\n }\n return of(false);\n }\n\n public addDataView(inlineCreateDataVie: LMDataView, row: number) {\n // TODO:\n }\n\n public removeDataView(row: number) {\n // TODO:\n }\n\n // End LMListContentInterface\n\n public get toolbarId(): string {\n if (!this.listSpec) {\n return null;\n }\n return this.listSpec.busListSpec.id + '_toolbar';\n }\n\n public get chartToolbarId(): string {\n if (!this.listSpec) {\n return null;\n }\n return this.listSpec.busListSpec.id + '_chart_toolbar';\n }\n\n onBeforeListToolbarMoreMenuOpen = (response: SohoPopupMenuResponseFunction, options: any) => {\n // -----------------------------------------------------------------------------------------\n // if a submenu, then need all the buttons for flex toolbar. This is because a menu button\n // could get overflowed and since it was in the buttonset, it wasn't in the flexMoreButtons\n // -----------------------------------------------------------------------------------------\n const buttons = options.isSubmenu ? this.toolbarComponent.flexButtons : this.toolbarComponent.flexMoreButtons;\n\n if (options.hasOwnProperty('contextElement')) {\n const listStateInfo = this.getStateInfo();\n let dataView = listStateInfo.selectedDataView ? listStateInfo.selectedDataView : listStateInfo.dataViewSet.data[ 0 ];\n if (!dataView) {\n dataView = listStateInfo.dataViewSet.header;\n }\n const relatedReportParams: RelatedReportParams = {\n sourceResourceUrl: this.listUrlInfo.relatedReportSourceUrl,\n listTitle: this.listTitle\n };\n const personalizeParams: PersonalizeParams = {\n sourceResourceUrl: this.listUrlInfo.reportPersonalizationUrl\n };\n let relatedActionsFunction: (response: AjaxBeforeOpenResponseFunction, options: any) => void;\n if (this.toolbarComponent) {\n relatedActionsFunction = this.toolbarComponent.onBeforeRelatedActionsOpen;\n } else if (this.lmBannerHeaderCompRef.instance.lmToolbarComponent) {\n relatedActionsFunction = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.onBeforeRelatedActionsOpen;\n }\n\n this.lmListToolbarService.buildMoreButtonMenu(this.listSpec, response, options, buttons,\n { showDrillAround: false, isContextMenu: false, personalizeParams, relatedReportParams }, relatedActionsFunction);\n } else {\n const responseString = this.lmListToolbarService.buildFirstLevelMoreMenu(this.listSpec, buttons, false);\n response(responseString);\n }\n };\n\n public toolbarMoreMenuSettings: SohoPopupMenuOptions = {\n beforeOpen: this.onBeforeListToolbarMoreMenuOpen,\n attachToBody: true\n };\n}\n","
        \n\n
        \n \n \n
        \n \n
        \n
        \n\n \n
        \n
        \n
        \n \n
        \n\n
        \n \n
        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n\n
        \n \n
        \n
        \n
        \n\n
        \n \n \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n","import { ChangeDetectorRef, Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { LMListBlockGridBaseDirective } from '@list/lm-list-blockgrid-base.directive';\nimport {\n LMBusyIndicatorService,\n LMContextService, LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService, LMUrlUtilService,\n} from '@app/services';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMListEventService, LMListGridPagingService, LMListSpecUtilService, LMListUtilService } from '@list/services';\nimport { LMHorizontalScrollerComponent } from '@app/components';\n\n@Component({\n selector: 'lm-list-gallery',\n templateUrl: './lm-list-gallery.component.html',\n styleUrls: [ 'lm-list-gallery.component.scss' ],\n})\nexport class LMListGalleryComponent extends LMListBlockGridBaseDirective implements OnInit {\n public hasOverflow: boolean;\n public nextDisabled: boolean;\n public previousDisabled: boolean;\n public selected = false;\n\n private _isHorizontal: boolean;\n private _toolbarTitle: string;\n\n @ViewChild('HorizontalScroller') horizontalScroller: LMHorizontalScrollerComponent;\n\n constructor(\n protected lmContextService: LMContextService,\n protected lmLoggerService: LMLoggerService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected changeDetectorRef: ChangeDetectorRef,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridPagingService: LMListGridPagingService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmUrlUtilService: LMUrlUtilService\n ) {\n super(\n lmContextService,\n lmLoggerService,\n lmFormatUtilService,\n lmThemeService,\n lmBusyIndicatorService,\n changeDetectorRef,\n lmErrorUtilService,\n lmListEventService,\n lmListGridPagingService,\n lmListSpecUtilService,\n lmListUtilService,\n lmUrlUtilService\n );\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isHorizontal = this.listSpec.allowHoriztonalPaging;\n }\n\n public isModified(): boolean {\n return false;\n }\n\n public get isHorizontal(): boolean {\n return this._isHorizontal;\n }\n\n public set isHorizontal(bool: boolean) {\n this._isHorizontal = bool;\n }\n\n public onHasOverflow(bool: boolean) {\n this.hasOverflow = bool;\n\n // Notify change so template updates state\n this.changeDetectorRef.detectChanges();\n }\n\n public onScrollIsStart(bool: boolean) {\n this.previousDisabled = bool;\n\n // Notify change so template updates state\n this.changeDetectorRef.detectChanges();\n }\n\n public onScrollIsEnd(bool: boolean) {\n this.nextDisabled = bool;\n\n // Notify change so template updates state\n this.changeDetectorRef.detectChanges();\n }\n\n public set toolbarTitle(title: string) {\n this._toolbarTitle = title;\n }\n\n public get toolbarTitle(): string {\n return this._toolbarTitle;\n }\n\n public scrollNext() {\n this.horizontalScroller.scrollNext();\n }\n\n public scrollPrevious() {\n this.horizontalScroller.scrollPrevious();\n }\n}\n","\n
        \n {{toolbarTitle}}\n \n \n \n \n \n \n
        \n 0\"\n #HorizontalScroller\n [scrollAmount]=\"640\"\n [itemCount]=\"blockGridOptions.data.length\"\n (overflowed)=\"onHasOverflow($event)\"\n (scrollIsStartEvent)=\"onScrollIsStart($event)\"\n (scrollIsEndEvent)=\"onScrollIsEnd($event)\"\n >\n 0\"\n [showEmptyMessage]=\"showEmptyMessage\"\n [selectionMode]=\"selectionMode\"\n [emptyMessageOptions]=\"emptyMessage\"\n [display]=\"'flex'\"\n [padding]=\"'5px 0 5px 0'\"\n >\n \n \n \n \n \n \n \n \n \n
        \n\n 0\"\n [showEmptyMessage]=\"showEmptyMessage\"\n [selectionMode]=\"selectionMode\"\n [emptyMessageOptions]=\"emptyMessage\"\n >\n \n \n \n \n \n \n \n \n
        \n
        \n
        \n
        \n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter, HostBinding,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Observable, of, Subject, Subscription } from 'rxjs';\nimport * as urltemplate from 'url-template';\n\nimport { AppConstants, LMConditionUtilService, LMUniqueIdService } from '@utils/index';\nimport { ListResource } from '@resources/list.resource';\nimport { LMEditorService } from './editors';\nimport { LMFormatterService } from './formatters';\nimport {\n LMBusyIndicatorService,\n LMCompoundFieldService,\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService,\n} from '@services/index';\nimport {\n LMListEventService,\n LMListGridBuilderService,\n LMListGridPagingService,\n LMListGridUtilService,\n LMListSpecUtilService,\n LMListUtilService,\n} from './services';\nimport { LMDataGridBaseComponent } from './lm-datagrid-base.component';\nimport { SohoBusyIndicatorEvent, SohoMessageService } from 'ids-enterprise-ng';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-list-grid',\n templateUrl: './lm-list-grid.component.html',\n styleUrls: [ 'lm-list-grid.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMListGridComponent extends LMDataGridBaseComponent implements LMListContentInterface, OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n @HostBinding('class.is-single-select') get isSingleSelectClass() {\n return this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode, this.allowMultiSelections) === 'single';\n }\n\n @HostBinding('class.has-button-row') get hasButtonRowClass() {\n return this.listSpec.busListSpec.displayFields[0]?.buttonRow;\n }\n\n @HostBinding('class.no-button-row') get noButtonRowClass() {\n return !this.listSpec.busListSpec.displayFields[0]?.buttonRow;\n }\n\n @Output() updateToolbarStateEvent = new EventEmitter();\n\n // TODO: Remove after converting lm-lookup-click.function.ts into a service\n @Output() listBarCodeClicked = new EventEmitter();\n @Output() listLookupClicked = new EventEmitter();\n @Output() listFieldLookupClicked = new EventEmitter();\n @Output() listFilterLookupClicked = new EventEmitter();\n @Output() listFilterClearClicked = new EventEmitter();\n @Output() listOpenCompactForm = new EventEmitter();\n\n public data: any[];\n public dataGridId: string;\n public dataGridAutomationId: string;\n public pageSize: number;\n public hidePagerBar: boolean;\n public showPageSizeChooser: boolean;\n public enableFirstPage = false;\n public enablePreviousPage = false;\n public enableNextPage = false;\n public enableLastPage = false;\n public firstPageButtonTooltip: string;\n public previousPageButtonTooltip: string;\n public nextPageButtonTooltip: string;\n public lastPageButtonTooltip: string;\n public pagerId: string;\n public pagerAutomationId: string;\n public pagerIdAttributes: SohoAttributesArray;\n public uiLoadingIndicatorTimeout = 0;\n public testVersion1;\n public searchResultText: string;\n public sortOrder?: LMListSortOrder;\n\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n\n private fLoadInitialData = false;\n private fFromDataViewChanged = false;\n private fFilterCriteriaChanged = false;\n private listEventSubs: Subscription[] = [];\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n protected sohoMessageService: SohoMessageService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmListGridUtilService: LMListGridUtilService,\n\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmContextService: LMContextService,\n protected lmEditorService: LMEditorService,\n protected lmFormatterService: LMFormatterService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridBuilderService: LMListGridBuilderService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmCompoundFieldService: LMCompoundFieldService,\n protected lmErrorUtilService: LMErrorUtilService\n ) {\n super(\n lmConditionUtilService,\n lmContextService,\n lmEditorService,\n lmFormatterService,\n lmFormatUtilService,\n lmListEventService,\n lmListGridBuilderService,\n lmLoggerService,\n lmThemeService,\n lmUrlUtilService,\n lmListSpecUtilService,\n lmListUtilService,\n lmCompoundFieldService,\n sohoMessageService,\n lmUniqueIdService,\n );\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.testVersion1 = lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n ngOnInit() {\n this.clearEmptyMessage();\n this.validateInitialInputs();\n this.build();\n }\n\n initialize() {\n super.initialize();\n\n this.dataGridId = this.listSpec?.busListSpec?.id + '_datagrid';\n this.dataGridAutomationId = 'lm-' + this.listSpec?.busListSpec?.automationId + '-datagrid';\n\n this.pagerId = `${this.listSpec.busListSpec.id}_pager`;\n this.pagerAutomationId = `lm-${this.listSpec?.busListSpec?.automationId}-pager`;\n this.pagerIdAttributes = [\n { name: 'id', value: this.pagerId },\n { name: 'data-automation-id', value: this.pagerAutomationId }\n ];\n\n this.listBarCodeClicked.subscribe(event => this.lmListEventService.listBarCodeClickedEvent(event));\n this.listLookupClicked.subscribe(event => this.lmListEventService.listLookupClickedEvent(event));\n this.listFieldLookupClicked.subscribe(event => this.lmListEventService.listFieldLookupClickedEvent(event));\n this.listFilterLookupClicked.subscribe(event => this.lmListEventService.listFilterLookupClickedEvent(event));\n this.listFilterClearClicked.subscribe(event => this.lmListEventService.listFilterClearClickedEvent(event));\n this.listOpenCompactForm.subscribe(event => this.lmListEventService.listOpenCompactFormEvent(event));\n this.hidePagerBar = this._hidePagerBar();\n this.pageSizes = this.lmListUtilService.getPageSizesArray(this.listSpec);\n this.pageSize = this.lmListUtilService.getPageSize(this.listSpec, this.listPersonalization);\n this.showPageSizeChooser = false; // this.lmListUtilService.showPageSizeChooser(this.listSpec);\n\n this.listEventSubs.push(this.lmListEventService.listGridContinuePagingEvent$.subscribe((pagingEvent: LMListGridPagingEvent) => {\n this.onContinuePaging(pagingEvent);\n }));\n\n // todo why not allow pagesize chooser and personalization on multi lists. seems more usable. Phillip 1/10/19\n // this.showPageSizeChooser = this.lmListUtilService.showPageSizeChooser(this.listSpec) && this.listSpec.listType !== 'multilist';\n }\n\n ngAfterViewInit() {\n // ---------------------------------------------------------------------------------\n // Related lists need to have the soho-datagrid built before fromDataViewChanged()\n // can be called. In most cases fromDataViewChanged can be called directly from the\n // '@Input() fromDataView` input setter. But for initial load of a dependent list\n // the datagrid isn't built before the fromDataView input is called. So we call\n // fromDataViewChanged in a timeout here so that change detection will fire.\n // ---------------------------------------------------------------------------------\n // if (this.listSpec.dependentList) {\n // setTimeout(() => this.fromDataViewChanged());\n // }\n\n this.getSavedColumns();\n if (this.savedColumns && this.savedColumns.length > 0) {\n this.sohoDataGridComponent.restoreUserSettings({ columns: this.savedColumns });\n }\n\n // ---------------------------------------------------------------------------------\n // Non dependent lists can be loaded here, dependent list cannot\n // be loaded until there is fromDataView available\n // ---------------------------------------------------------------------------------\n if (!this.listSpec.dependentList) {\n this.fLoadInitialData = true;\n }\n }\n\n ngAfterViewChecked() {\n if (!this.sohoDataGridComponent || this.componentDestroyed) {\n return;\n }\n\n if (this.listSpec.dependentList && this.fFromDataViewChanged) {\n this.fFromDataViewChanged = false;\n // LMCLIENT-36782 - When periodview changes in cube view, the cube view will get reloaded.\n // But the listState.fromResourceId may be the same as fromDataView resourceId, causing initialPageUrl to be returned from liststate.\n // For eg: Say, we are looking at number of job applications processed by a recruiter. Changing\n // periodview from month to quarter will still have the same recruiter up on the top.\n // eg2: If the cube has a 'show total node', the first record is always going to be the total record, when period view changes.\n // eg3: If the user clicks on different rows, the fromDataView will change\n // In either cases, the url has to be rebuilt using the new periodview and period view period.\n if (this.fromDataView?.cubeInfo) {\n this.listState.currentPageUrl = undefined;\n }\n setTimeout(() => this.initialPage());\n }\n\n if (this.fLoadInitialData) {\n // in case both load and filter criteria are set change these flags both to false.\n this.fLoadInitialData = false;\n this.fFilterCriteriaChanged = false;\n setTimeout(() => this.initialPage());\n }\n\n if (this.fFilterCriteriaChanged) {\n this.fFilterCriteriaChanged = false;\n\n // when clearing a use as search call initialPage which handles the use as search initial display.\n if (this.lmListUtilService.isUseAsSearchTargetList(this.listSpec) && this.filterCriteria === null) {\n setTimeout(() => this.initialPage());\n } else {\n setTimeout(() => this.filterPage(this.filterCriteria));\n }\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n this.cancelOutstandingPagingRequest();\n\n this.listEventSubs.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n public get listGridScrollableContentClasses(): string {\n if (this.lmListSpecUtilService.isSelectList(this.listSpec)\n && this.listSpec.busListSpec.searchForm === undefined\n && !this.listSpec.busListSpec.implementsTreeView) {\n return 'lm-lookup-listgrid';\n }\n return '';\n }\n\n public get showEmptyMessageOnList(): string {\n if ((!this.listSpec?.busListSpec?.noDataEmptyMessageInfo\n && this.listSpec?.listType === 'multilist')\n || (!this.listSpec?.busListSpec?.noDataEmptyMessageInfo?.icon\n && this.listSpec?.listType === 'multilist')) {\n return 'nofolder';\n }\n return '';\n }\n\n protected loadManualData() {\n this.initialPage();\n }\n\n protected fromDataViewChanged() {\n // See the actual processing of the changed fromDataView is in ngAfterViewChecked\n this.fFromDataViewChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n protected filterCriteriaChanged() {\n // See the actual processing of the changed filterCriteriaChanged is in ngAfterViewChecked\n this.fFilterCriteriaChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n\n public setSelectListFocus() {\n if (!this.lmContextService.useSingleSelectList() || !this.lmListSpecUtilService.isSelectList(this.listSpec)) {\n return;\n }\n\n const row = (this.allowMultiSelections) ? this.activatedRow() : this.getSelectedRow();\n if (row === -1) {\n return;\n }\n\n this.setActiveCell(row, 0);\n }\n\n public get datagridId(): string {\n if (!this.listSpec) {\n return null;\n }\n return this.listSpec.busListSpec.id + '_datagrid';\n }\n\n protected filterListCriteriaChanged() {\n // TODO implement me! ppatton implement me! See lm-list-view.component for initial implementation\n }\n\n public updateGridOptions() {\n // commenting out for now due to : issue in some fieldIds\n // LMCLIENT-40306 MISC AOC details missing on PO Header Add On Charge\n // To duplicate issue uncomment the code below and in uitest find a Product\n // list and config it to have Manufacturer.ManufacturerName in the display\n // field. This will cause the colon : to get into the automation id.\n // if (this.lmContextService.testVersion() >= 3) {\n // this.gridOptions.attributes = [\n // {\n // name: 'id',\n // value: this.listSpec?.busListSpec?.id\n // }, {\n // name: 'data-automation-id',\n // value: `lm-${this.listSpec?.busListSpec?.id}`\n // }\n // ];\n // }\n }\n\n private static ServerLogVersionId = 'LMCLIENT UI ALERT: BUSY INDICATOR TIMEOUT';\n\n // eslint-disable-next-line no-unused-vars\n onBusyIndicatorComplete(event?: SohoBusyIndicatorEvent) {\n if (this.isBusyPaging()) {\n const pagingInfo: LMCurrentPagingInfo = this.pagingSubscription['pagingInfo'];\n const errorStringArray = [\n `${LMListGridComponent.ServerLogVersionId}`,\n `id: ${this.dataGridId}`,\n `pageOp: ${pagingInfo.pageOp}`,\n `xhref: ${pagingInfo.url}`,\n `browserHref: ${window.location.href}`\n ];\n\n this.lmLoggerService.error(errorStringArray.join('\\n'));\n this.lmLoggerService.logToServerConsole(errorStringArray.join(', '));\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n onCloseFilterRow(event: SohoDataGridOpenFilterRowEvent) {\n this.m_filterCriteria = [];\n this.listState.filterCriteria = [];\n this.listState.codeBlockFilterCriteria = [];\n if (this.listState.codeBlockFilterDataView) {\n delete this.listState.codeBlockFilterDataView;\n }\n this.sohoDataGridComponent.clearFilter();\n }\n\n private handleInitialPageCancel() {\n this.enableFirstPage = false;\n this.enablePreviousPage = false;\n this.enableNextPage = false;\n this.enableLastPage = false;\n this.sohoDataGridComponent.data = [];\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.removeSelected();\n }\n\n const message = '';\n const title = Soho.Locale.translate('NoDataAvailable');\n this.handleError(message, title);\n this.changeDetectorRef.markForCheck();\n }\n\n private handleCancelableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n private initialPageWait(): Observable {\n return this._initialPage();\n }\n\n private initialPage() {\n this._initialPage().subscribe();\n }\n\n private _initialPage(): Observable {\n return new Observable(observer => {\n // console.log('list-grid._initialPage: ' + this.listSpec.busListSpec.name);\n if (this.componentDestroyed) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n this.handleCancelableRequest();\n\n if (this.listSpec.dependentList) {\n if (this.fromDataView === undefined) {\n observer.next(true);\n observer.complete();\n return; // safety\n }\n\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can responsd appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already now it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n observer.next(true);\n observer.complete();\n return;\n }\n }\n this.cancelOutstandingPagingRequest();\n // todo akila: deal with cube options - probably need to be in url somewhere set on the server\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const url = this.buildInitialPageUrl();\n const initialNbrRecs = this.lmListUtilService.getInitialNumberOfRecs(this.listSpec, this.listState, this.pageSize);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const isManualLoad = this.isManualLoading();\n\n // -------------------------------------------------------------\n // request the first page of records and log how long it took\n // -------------------------------------------------------------\n this.lmLoggerService.time({ id: 'LMListGrid.initialPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService\n .initialPage(url, initialNbrRecs, postContent, this.listState.columnarOptions, isManualLoad)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n if (this.componentDestroyed) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.handleInitialPageCancel();\n }\n observer.next(true);\n observer.complete();\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.updateColumnVisibility(this.listSpec, listPagingResponse.dataViewSet);\n this.postInitialPage(listPagingResponse);\n\n if (listPagingResponse.columnFilterFields) {\n const sohoConditions = this.getSohoConditions(listPagingResponse.columnFilterFields);\n this.sohoDataGridComponent.setFilterConditions(sohoConditions);\n this.sohoDataGridComponent.applyFilter(sohoConditions);\n this.sohoDataGridComponent.toggleFilterRow();\n }\n\n // todo why is this here? The toolbar should have been updated via the onDataLoaded event.\n this.updateToolbarStateEvent.emit();\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n this.lmListEventService.buildToolbarEvent();\n }\n\n observer.next(listPagingResponse.status === 'COMPLETED');\n observer.complete();\n },\n (error: any) => {\n observer.next(false);\n observer.complete();\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'init',\n url\n });\n });\n\n }\n\n onBeforePaging(pageOp: LMPageOp, event: any) {\n const beforePagingEvent: LMListGridPagingEvent = { pageOp, sohoDataGridEvent: event };\n this.lmListEventService.listGridBeforePagingEvent(beforePagingEvent);\n }\n\n onContinuePaging(continuePagingEvent: LMListGridPagingEvent) {\n switch (continuePagingEvent.pageOp) {\n case 'first':\n this.onFirstPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'last':\n this.onLastPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'next':\n this.onNextPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'previous':\n this.onPreviousPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'filter':\n this.onFilterPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'sort':\n this.onSortPage(continuePagingEvent.sohoDataGridEvent, true);\n break;\n case 'pagesize':\n this.onPageSizeChange(continuePagingEvent.sohoDataGridEvent, true);\n break;\n }\n }\n\n onPageSizeChange(args: any[], continuePaging = false) {\n if (!continuePaging) {\n this.onBeforePaging('pagesize', args);\n return;\n }\n\n this.pageSize = args[1].pagesize;\n this.listPersonalization.pageSize = args[1].pagesize;\n this.reloadPage();\n }\n\n /******************************************************************************\n * FIRST PAGE\n ******************************************************************************/\n onFirstPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('first', event);\n return;\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.firstPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.firstPage(this.dataViewSet, this.pageSize, postContent, this.listUrlInfo.cubeParams, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.firstPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'first',\n url: this.dataViewSet.pagingUrls.firstPageUrl\n });\n }\n\n /******************************************************************************\n * LAST PAGE\n ******************************************************************************/\n onLastPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('last', event);\n return;\n }\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the last page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.lastPage() ' + this.instanceId });\n\n this.pagingSubscription = this.lmListGridPagingService.lastPage(this.dataViewSet, postContent, this.listUrlInfo.cubeParams, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.lastPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'last',\n url: this.dataViewSet.pagingUrls.lastPageUrl\n });\n }\n\n /******************************************************************************\n * NEXT PAGE\n ******************************************************************************/\n onNextPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('next', event);\n return;\n }\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the next page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.nextPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.nextPage(this.dataViewSet, postContent, this.listUrlInfo.cubeParams, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.nextPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'next',\n url: this.dataViewSet.pagingUrls.nextPageUrl\n });\n }\n\n /******************************************************************************\n * PREVIOUS PAGE\n ******************************************************************************/\n onPreviousPage(event: any, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('previous', event);\n return;\n }\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListGrid.previousPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.previousPage(this.dataViewSet, postContent, this.listUrlInfo.cubeParams, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.previousPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.processListPagingResponse(listPagingResponse);\n this.sohoDataGridComponent.scrollRowIntoView(0);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'previous',\n url: this.dataViewSet.pagingUrls.previousPageUrl\n });\n }\n\n /******************************************************************************\n * SORT PAGE\n ******************************************************************************/\n onSortPage(event: SohoDataGridSortedEvent, continuePaging = false): void {\n if (!continuePaging) {\n this.onBeforePaging('sort', event);\n return;\n }\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const sortColumn = this.sohoDataGridComponent.columnById(event.sortId)[ 0 ];\n const sortAscending = event.sortAsc;\n let sortOrderName;\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n sortOrderName = sortColumn.displayField.fieldId;\n\n if (!this.listState.columnarOptions) {\n this.listState.columnarOptions = {};\n }\n\n this.listState.columnarOptions.selectedDimension = sortOrderName;\n this.listState.columnarOptions.selectedOrderBy = sortOrderName;\n this.listState.columnarOptions.isAscending = sortAscending;\n } else {\n sortOrderName = sortColumn.displayField.sortOrderName;\n }\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const sortOrder = { sortOrderName, isAscending: sortAscending };\n\n this.sortOrder = sortOrder;\n this.listState.sortOrderCriteria = sortOrder;\n\n // request the sorted page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.sortPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.sortPage(url, this.filterCriteria, sortOrder, this.pageSize, postContent, this.listUrlInfo.cubeParams, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.sortPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n // ----------------------------------------------------------------------------------\n // initial, filter and sort page should call postInitialPage\n // first, last, next, prev, and refresh/reload should call processListPagingResponse.\n // ----------------------------------------------------------------------------------\n listPagingResponse.resetSelection = true;\n this.postInitialPage(listPagingResponse);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'sort',\n url\n });\n }\n\n // leaving this here in case we need to do filterCriteria comparisons in the future\n // private compareFilterCriteria(event: SohoDataGridFilteredEvent): boolean {\n // if (this.listState.filterCriteria) {\n // let incomingFilterConditions = this.getFilterCriteria(event.conditions);\n // if (incomingFilterConditions.length !== this.listState.filterCriteria.length) {\n // return false;\n // }\n //\n // let matchedFilters = true;\n // for (let index = 0; incomingFilterConditions.length > index; index++) {\n // let incCondition = incomingFilterConditions[ index ];\n // let storedCondition = this.listState.filterCriteria.find(x => x.fieldId === incCondition.fieldId);\n // if (storedCondition) {\n // matchedFilters = (incCondition.operator === storedCondition.operator && incCondition.value === storedCondition.value);\n // if (!matchedFilters) {\n // return false;\n // }\n // } else {\n // return false;\n // }\n // }\n // return matchedFilters;\n // }\n // return false;\n // }\n\n /******************************************************************************\n * FILTER PAGE\n ******************************************************************************/\n onFilterPage(event: SohoDataGridFilteredEvent, continueFiltering = false): void {\n if (this.disabled) {\n // -------------------------------------------------------------\n // this is here until soho grid.js has a disabled state that\n // would restrict the filter bar field entry from messaging\n // this function.\n // -------------------------------------------------------------\n return;\n }\n\n // LMCLIENT-38371: Adding --> && this.columnfilterOperators.size === 0 will make the modifier sticky\n // if it is changed before setting the value of listState.filterCriteria\n if (event.op === 'clear' || ((!event.conditions || event.conditions.length === 0) && this.columnfilterOperators.size === 0)) {\n if (!this.listState.filterCriteria || this.listState.filterCriteria.length === 0) {\n // --------------------------------------------------------------------------\n // getting a 'filtered' event when closing the filter row. On the close\n // filter row event I set a flag and if we are asked to close a filter\n // we should only clear the filter if a filter has already ben executed\n // --------------------------------------------------------------------------\n return;\n }\n }\n\n if (!this.lmListUtilService.isAutoFilterEnabled() && event?.trigger === 'selected') {\n return;\n }\n\n if (!continueFiltering) {\n this.onBeforePaging('filter', event);\n return;\n }\n // --------------------------------------------------------------------------\n // setting filterCriteria input here will causes a filterCriteriaChanged()\n // message which will cause filterPage() to be called during the\n // ngAfterViewChecked lifecycle event.\n // --------------------------------------------------------------------------\n const pendingFilterCriteria = this.getFilterCriteria(event.conditions);\n\n if (this.lmListUtilService.areTheSameJson(pendingFilterCriteria, this.filterCriteria)) {\n return;\n }\n\n if (this.validateFilterCriteria(pendingFilterCriteria)) {\n this.lmListEventService.updateFilterCriteriaEvent(pendingFilterCriteria);\n }\n }\n\n private filterPage(filterCriteria: LMFilterFieldCriteria[]) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmLoggerService.log([ this, this.instanceId, 'datagrid.source - filtered called' ]);\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.lmListGridUtilService.unSelectAllRows(this.sohoDataGridComponent);\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.filterPage() ' + this.instanceId });\n this.pagingSubscription = this.pagingSubscription = this.lmListGridPagingService\n .filterPage(url, filterCriteria, this.pageSize, postContent, this.sortOrder, this.listUrlInfo.cubeParams, this.listState.columnarOptions)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.filterPage() ' + this.instanceId, [ this, this.dataViewSet, 'pageSize: ' + this.pageSize, 'filterCriteria:', this.m_filterCriteria ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n // ----------------------------------------------------------------------------------\n // initial, filter and sort page should call postInitialPage\n // first, last, next, prev, and refresh/reload should call processListPagingResponse.\n // ----------------------------------------------------------------------------------\n this.listState.filterCriteria = filterCriteria;\n this.listState.sortOrderCriteria = this.sortOrder;\n listPagingResponse.resetSelection = true;\n this.postInitialPage(listPagingResponse);\n\n if (listPagingResponse.dataViewSet && listPagingResponse.dataViewSet.data.length === 0) {\n this.searchResultText = Soho.Locale.translate('NoSearchResultsFound');\n } else {\n const searchTags = this.lmListUtilService.buildSearchTags(this.listState.filterCriteria);\n const searchCriteria = searchTags.reduce((text, criteria) => `${text}, ${criteria.label} : ${criteria.tag}`, '');\n\n this.searchResultText = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SearchResultsFound'), searchCriteria);\n }\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n this.searchResultText = Soho.Locale.translate('UnexpectedErrorOccured');\n }\n\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'filter',\n url\n });\n }\n\n /*****************************************************************************\n * RELOAD PAGE\n *****************************************************************************/\n private reloadPage(): void {\n this._reloadPage().subscribe();\n }\n\n private reloadPageAndWait(): Observable {\n return this._reloadPage();\n }\n\n private _reloadPage(): Observable {\n return new Observable(observer => {\n if (this.componentDestroyed) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n // Helper list is the exception since a transaction has run to add\n // the selected items to the list and should not be selected\n const selectedRow = this.lmListSpecUtilService.isHelperList(this.listSpec)\n ? -1\n : this.lmListGridUtilService.getSelectedIndex(this.sohoDataGridComponent, true);\n const activatedRow = this.lmListGridUtilService.getActivatedRow(this.sohoDataGridComponent, true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n // request the first page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListGrid.reloadPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.reloadPage(this.dataViewSet, this.pageSize, postContent, this.listUrlInfo.cubeParams, null, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListGrid.reloadPage() ' + this.instanceId, [ this, this.dataViewSet, 'newPageSize: ' + this.pageSize ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.updateColumnVisibility(this.listSpec, listPagingResponse.dataViewSet);\n this.updateColumnLabels(this.listSpec, listPagingResponse.dataViewSet);\n this.processListPagingResponse(listPagingResponse, false, selectedRow, activatedRow);\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n\n observer.next(listPagingResponse.status === 'COMPLETED');\n observer.complete();\n },\n (error: any) => {\n observer.next(false);\n observer.complete();\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleUnexpectedError(error);\n });\n\n this.setPagingSubscriptionPageOp(this.pagingSubscription, {\n pageOp: 'reload',\n url: ''\n });\n });\n }\n\n public refresh(): Observable {\n // if the list is asked to refresh from another component\n // then do an initial page because the from dataview may have changed\n // a field that impacts column visibility! The page state should keep\n // the list on the same page.\n\n if (this.isBusyPaging()) {\n return of (true);\n }\n\n this.clearDirty();\n // console.log('list-grid refresh: ' + this.listSpec.busListSpec.name);\n // return this.initialPageWait();\n return this.reloadPageAndWait();\n }\n\n private buildInitialPageUrl(forceUrlRebuild = false): string {\n\n if (this.listSpec.dependentList) {\n if (this.listState\n && this.listState.currentPageUrl\n && !forceUrlRebuild\n && !this.dependencyChanged()\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // ------------------------------------------------------------------\n // if the fromDataView hasn't changed and there is a currentPageUrl\n // then load that to keep our position in the dependent list.\n // ------------------------------------------------------------------\n return this.listState.currentPageUrl;\n }\n\n // ------------------------------------------------------------------\n // else resolve template against the fromDataView's resourceId and\n // it's filterListFilterCriteria if this list has a FilterList\n // dependency\n // ------------------------------------------------------------------\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n let compiledUrl = compiledUrlTemplate.expand({ resourceId: this.fromDataView.resourceId });\n let delimiter: string = compiledUrl.indexOf('?') === -1 ? '?' : '&';\n\n if (this.fromDataView.cubeInfo !== undefined) {\n compiledUrl = compiledUrl + delimiter + this.lmUrlUtilService.objectToCubeQueryString(this.fromDataView.cubeInfo);\n delimiter = '&';\n if (this.fromDataView.cubeInfo.extraInfo) {\n compiledUrl = compiledUrl + delimiter + this.lmUrlUtilService.objectToCubeQueryString(this.fromDataView.cubeInfo.extraInfo);\n }\n if (this.fromDataView.cubeInfo.extraInfo2) {\n this.lmLoggerService.log([ this, this.instanceId, 'LMListGridComponent:buildInitialPageUrl:pvperiods - ', this.fromDataView.cubeInfo.extraInfo2.pvPeriods.length ]);\n }\n }\n\n if (this.hasFilterList && this.filterListFilterCriteria) {\n // ------------------------------------------------------------------\n // apply any filterListFilterCriteria to the initial load.\n // ------------------------------------------------------------------ // set filter criteria on the url params\n const filterParamString = this.lmUrlUtilService.filterFieldCriteriaToUrlParams(this.filterListFilterCriteria, 'flc');\n if (filterParamString) {\n compiledUrl += delimiter + filterParamString;\n }\n }\n\n // TODO: Is filterParam/filterString either/or that delimiter need not be updated?\n if (this.filterCriteria) {\n const filterCriteriaString = this.lmUrlUtilService.filterFieldCriteriaToUrlParams(this.filterCriteria, 'fc');\n compiledUrl += delimiter + filterCriteriaString;\n }\n\n return compiledUrl;\n\n } else if (this.listUrlInfo.cubeParams) {\n // Cube Drill requires cube option parameters.\n return this.listUrlInfo.initialDataUrl + '&' + this.lmUrlUtilService.objectToCubeQueryString(this.listUrlInfo.cubeParams);\n } else if (this.listUrlInfo.url && this.listUrlInfo.url.searchParams.has('aggDrill')) {\n return this.listUrlInfo.initialDataUrl;\n }\n\n if (this.listState.currentPageUrl\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n && this.lmUrlUtilService.hasSameParamValue(this.listState.currentPageUrl, this.listUrlInfo.initialDataUrl, 'filter')\n && !forceUrlRebuild\n ) {\n return this.listState.currentPageUrl;\n }\n\n let url = this.listUrlInfo.initialDataUrl;\n if (this.selectRequestData?.onSearchForm) {\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n\n return url;\n }\n\n private dependencyChanged() {\n if (!this.listSpec.dependentList || !this.listState) {\n // --------------------------------------------------------------\n // Must be a dependent list and have listState to check against\n // for a dependency to have changed. If not return false.\n // --------------------------------------------------------------\n return false;\n }\n\n // --------------------------------------------------------------\n // If the from dataView resourceId change then the dependency\n // has changed. return true.\n // --------------------------------------------------------------\n if (this.fromDataView.cubeInfo) {\n return this.fromDataView.dataViewResId !== this.listState.fromResourceId;\n } else if (this.fromDataView.resourceId !== this.listState.fromResourceId) {\n return true;\n }\n\n if (this.hasFilterList && !this.lmListUtilService.areTheSame(this.filterListFilterCriteria, this.listState.filterListFilterCriteria)) {\n // --------------------------------------------------------------\n // If this list has a filterList then check to see if the\n // filterListFilterCriteria has changed. If so then return true.\n // --------------------------------------------------------------\n return true;\n }\n\n return !this.lmListUtilService.areTheSame(this.filterCriteria, this.listState.filterCriteria);\n }\n\n private processListPagingResponse(\n listPagingResponse: LMListPagingResponse,\n postInitialPage = false,\n selectRow = -1,\n activatedRow = 0\n ) {\n /**\n * Add specFields to dataViewSet\n */\n this.lmListUtilService.setSpecFields(listPagingResponse.dataViewSet);\n\n /**\n * Set the member dataViewSet variable\n */\n this.dataViewSet = listPagingResponse.dataViewSet;\n\n // Set Saved Search dataViewSet\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n\n /**\n * Store the current paging url into list state\n */\n this.listState.currentPageUrl = this.dataViewSet.pagingUrls.reloadPageUrl;\n if (this.fromDataView && this.fromDataView.cubeInfo) {\n this.lmUrlUtilService.copyCubeParamsForDetailSection(this.listUrlInfo, this.fromDataView);\n this.listState.currentPageUrl += '&' + this.lmUrlUtilService.objectToCubeQueryString(this.listUrlInfo.cubeParams);\n }\n\n if (listPagingResponse.status === AppConstants.STATUS_COMPLETED) {\n this.loadDataIntoDataGrid();\n if (postInitialPage) {\n // WORAROUND for now.\n // todo place section below in it's own function an call directly from\n // first/last/prev/next/etc.. functions directly\n return;\n }\n\n // if single select use select vs activate row\n const selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode, this.allowMultiSelections);\n const isSingleSelect = selectionMode === 'single';\n if (isSingleSelect) {\n selectRow = selectRow > -1 ? selectRow : 0;\n activatedRow = -1;\n } else if (selectionMode === 'mixed') {\n activatedRow = activatedRow > -1 ? activatedRow : 0;\n }\n\n // --------------------------------------------------------------\n // need in a timeout to make sure the datagrid is built and\n // loaded before attempting to call functions on it.\n // --------------------------------------------------------------\n setTimeout(() => {\n if (this.componentDestroyed) {\n return;\n }\n\n this.selectionInProgress = true;\n this.clearDirty();\n\n let rowActivated = false;\n if (activatedRow !== undefined && activatedRow > -1) {\n if (activatedRow >= this.dataViewSet.data.length) {\n activatedRow = this.dataViewSet.data.length - 1;\n }\n // https://jira.lawson.com/browse/LMCLIENT-25037\n if (activatedRow > -1) {\n this.activateRow(activatedRow);\n rowActivated = true;\n }\n }\n\n if (selectRow > -1) {\n if (selectRow >= this.dataViewSet.data.length) {\n selectRow = this.dataViewSet.data.length - 1;\n }\n this.lmListGridUtilService.selectRow(this.sohoDataGridComponent, selectRow);\n }\n this.selectionInProgress = false;\n\n if (!rowActivated) {\n // need to fire an event to update related content like detail panels\n const listRowActivatedEvent: LMListRowActivatedEvent = {\n row: isSingleSelect ? selectRow : activatedRow,\n item: null,\n fromDataView: this.fromDataView,\n sourceIsPagingEvent: this.selectionInProgress\n };\n this.lmListEventService.listRowActivatedEvent(listRowActivatedEvent);\n }\n });\n } else {\n // todo handle other landmark return status\n }\n }\n\n private loadDataIntoDataGrid() {\n if (this.disabled) {\n // safety - in case function is called when disabled\n this.disableComponent();\n return;\n }\n\n this.enableFirstPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.firstDisabled && this.dataViewSet.data.length > 0;\n this.enablePreviousPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.previousDisabled && this.dataViewSet.data.length > 0;\n this.enableNextPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.nextDisabled && this.dataViewSet.data.length > 0;\n this.enableLastPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.lastDisabled && this.dataViewSet.data.length > 0;\n\n /**\n * If used as search and no recs then don't show the pageSizeChooser.\n * todo maybe make a ticket for tim to disable it.\n */\n if (this.lmListUtilService.isUseAsSearchTargetList(this.listSpec)) {\n this.showPageSizeChooser = this.dataViewSet.data.length > 0;\n } else {\n this.showPageSizeChooser = this.lmListUtilService.showPageSizeChooser(this.listSpec);\n }\n\n this.firstPageButtonTooltip = !this.enableFirstPage && this.dataViewSet.pagingInfo.firstDisabledReason ?\n this.dataViewSet.pagingInfo.firstDisabledReason : Soho.Locale.translate('FirstPage');\n\n this.previousPageButtonTooltip = !this.enablePreviousPage && this.dataViewSet.pagingInfo.previousDisabledReason ?\n this.dataViewSet.pagingInfo.previousDisabledReason : Soho.Locale.translate('PreviousPage');\n\n this.nextPageButtonTooltip = !this.enableNextPage && this.dataViewSet.pagingInfo.nextDisabledReason ?\n this.dataViewSet.pagingInfo.nextDisabledReason : Soho.Locale.translate('NextPage');\n\n this.lastPageButtonTooltip = !this.enableLastPage && this.dataViewSet.pagingInfo.lastDisabledReason ?\n this.dataViewSet.pagingInfo.lastDisabledReason : Soho.Locale.translate('LastPage');\n\n this.disableSelectionListener = true; // ignore unselectall event coming from datagrid.loadData\n this.sohoDataGridComponent.data = this.dataViewSet.data;\n this.disableSelectionListener = false;\n\n this.setEmptyMessage();\n\n this.hidePagerBar = this._hidePagerBar();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private disableComponent() {\n this.enableFirstPage = false;\n this.enablePreviousPage = false;\n this.enableNextPage = false;\n this.enableLastPage = false;\n this.sohoDataGridComponent.data = [];\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.removeSelected();\n }\n\n this.setEmptyMessage();\n\n this.changeDetectorRef.markForCheck();\n }\n\n /**\n * Assumes this.dataViewSet is already set.\n * @param listPagingResponse\n * @return gridPagingResponse\n */\n private postInitialPage(listPagingResponse: LMListPagingResponse) {\n\n this.updateColumnLabels(this.listSpec, listPagingResponse.dataViewSet);\n\n this.processListPagingResponse(listPagingResponse, true);\n\n /**\n * WORKAROND: must do this after processListPagingResponse because\n * datagrid fails if no data is loaded on a null pagingInfo object.\n */\n this.updateSortColumn(this.listSpec); // update the sort indicator\n\n /**\n * Reset the listResource to be the rangeViewKey + listName once a dataViewSet\n * is initially loaded. This will be the actual listResource used for anything\n * else that happens in the client.\n *\n * This is needed for:\n * - When this list becomes a sourceResource to another list.\n * - Opening a create form, the list will have the range keys.\n *\n * Phillip\n */\n if (!this.listSpec.isTemplateList) {\n // The dataviewset header corresponds to template list and the paging info contains\n // the required info to paginate over the template list.\n // List resource will be that of targetList and it is used to perform create or update.\n // So do not overwrite the listResource based on dataviewSet header.\n this.listResource = new ListResource({\n resourceId: this.dataViewSet.header.resourceId,\n listName: this.listSpec.busListSpec.name\n });\n }\n\n this.updateFilterBar();\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n\n private updateSortColumn(listSpec: LMListSpec): void {\n // -----------------------------------------------------------------\n // 1. iterate the list display fields\n // -----------------------------------------------------------------\n // 2. filter all but the sort column\n // -----------------------------------------------------------------\n // 3. update the sort indicator\n // -----------------------------------------------------------------\n this.listSpec.busListSpec.displayFields\n .filter(displayField => this.lmListSpecUtilService.isColumnarView(listSpec) && this.dataViewSet.columnarInfo.columnarSortByFieldName\n ? displayField.fieldId === this.dataViewSet.columnarInfo.columnarSortByFieldName\n : displayField.sortOrderName === this.dataViewSet.pagingInfo.sortOrderName)\n .forEach(displayField => {\n const visibleColumns = this.sohoDataGridComponent.getColumns();\n const column: ListGridColumn = this.getFirstVisibleColumnForFieldId(displayField.fieldId, visibleColumns);\n if (column != null) {\n this.sohoDataGridComponent.setSortIndicator(column.id, this.dataViewSet.pagingInfo.isAscending);\n }\n });\n }\n\n private getFirstVisibleColumnForFieldId(fieldId: string, visibleColumns: Array): ListGridColumn {\n return visibleColumns.find(column => column.fieldId === fieldId);\n }\n\n private setPagingSubscriptionPageOp(subscription: Subscription, pagingInfo: LMCurrentPagingInfo) {\n subscription['pagingInfo'] = pagingInfo;\n }\n\n protected _hidePagerBar(): boolean {\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n return true;\n }\n return super._hidePagerBar();\n\n this.sohoDataGridComponent.getActiveCell();\n }\n}\n","\n
        \n \n
        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n

        {{searchResultText}}

        \n
        \n
        \n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, HostBinding, Input,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n defer,\n Observable,\n of\n} from 'rxjs';\nimport { SohoBusyIndicatorDirective, SohoToastService } from 'ids-enterprise-ng';\nimport {\n LMLoggerService,\n LMFormatUtilService,\n LMUrlUtilService,\n LMBusyIndicatorService,\n DrillPointsParams,\n LMContextService\n} from '@services/index';\nimport { AppConstants, LMUniqueIdService } from '@utils/index';\nimport {\n LMListCardService,\n LMListEventService,\n LMListGridPagingService, LMListHierarchyService,\n LMListSpecUtilService,\n LMListToolbarService, LMListUtilService\n} from './services';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport * as urlTemplate from 'url-template';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-list-hierarchy',\n templateUrl: './lm-list-hierarchy.component.html',\n styleUrls: [ 'lm-list-hierarchy.component.scss' ],\n providers: [ LMListHierarchyService ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMListHierarchyComponent extends LMListContentBaseComponent implements OnInit, OnDestroy, AfterViewChecked {\n public data: Array>;\n\n public legend: Array;\n public leafTemplateId = 'hierarchyChartTemplate';\n public hierarchyChartId: string;\n public legendKey: string = null;\n public leafTemplate: any;\n public recordCount = 0;\n public dataViewSet: LMDataViewSet;\n public initialBuildComplete = false;\n public multiRootUrl: string;\n public initialSectionPerformed = false;\n public uiLoadingIndicatorTimeout = 0;\n\n // Should not load data on initial load if LPL is:\n // search form is \n // use as filter\n public allowFilterResults: boolean;\n\n public get isMultiRoot() {\n return (this.multiRootUrl !== undefined || this.listState.multiRootUrl !== undefined) && !this.atRootLevel;\n }\n\n private atRootLevel;\n private searchDataView: LMDataView;\n private pageSize = 10;\n private selectedResource: LMHierarchySelectedResource;\n private m_hasFilterList = false;\n\n @ViewChild('SohoHierarchy') sohoHierarchy; // : SohoHierarchyComponent;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n @Input() set hasFilterList(hasFilterList: boolean) {\n this.m_hasFilterList = hasFilterList;\n }\n\n @HostBinding('class.lm-parent-is-dashboard') @Input() isDashBoardContent: boolean;\n\n get hasFilterList(): boolean {\n return this.m_hasFilterList;\n }\n\n constructor(\n private ngZOne: NgZone,\n private sohoToastService: SohoToastService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmFormatUtilService: LMFormatUtilService,\n private lmContextService: LMContextService,\n private changeDetectorRef: ChangeDetectorRef,\n private domSanitizer: DomSanitizer,\n private lmListCardService: LMListCardService,\n private lmListEventService: LMListEventService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmListToolbarService: LMListToolbarService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmListHierarchyService: LMListHierarchyService,\n private lmListUtilService: LMListUtilService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n this.lmListHierarchyService.lmListEventService = this.lmListEventService;\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n }\n\n ngOnInit() {\n this.clearEmptyMessage();\n this.allowFilterResults = !this.lmListUtilService.isUseAsSearchTargetList(this.listSpec);\n\n // Builds a template and appends it to DOM for jQuery control\n // Hierarchy control uses the template to render the leafs\n this.buildLeafTemplateForJqueryControl();\n this.validateInitialInputs();\n this.build();\n this.initialBuildComplete = true;\n }\n\n ngAfterViewChecked() {\n if (this.sohoHierarchy && !this.initialSectionPerformed) {\n this.ngZOne.runOutsideAngular(() => setTimeout(() => this.selectInitialLeaf()));\n this.initialSectionPerformed = true;\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n this.cancelOutstandingPagingRequest();\n }\n\n public build() {\n this.hierarchyChartId = `hierarchyId_${this.lmListHierarchyService.getPrefix(this.listSpec.resourceId)}_${this.lmUniqueIdService.getUniqueId()}`;\n this.buildGridOptions();\n\n if (this.listState && this.listState.hierarchyData && this.listState.selectedHierarchyDataView.centeredNode !== null && !this.listSpec.dependentList) {\n this.load(this.listState.selectedHierarchyDataView.centeredNode);\n } else if (this.filterCriteria || this.listState.filterCriteria) {\n this.filter();\n } else {\n this.loadInitial();\n }\n }\n\n protected loadManualData(): void {\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n this.build();\n }\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Handle click of the no data message button\n if (columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = { columnDef, dataView, event, navigationParams, options: { fromNoDataMessageFormButton: true } };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n protected fromDataViewChanged(): void {\n // An list form panel on a composite form panel\n // sets the fromDataView to null when the composite form\n // dataView keys change. It does this so the component will\n // not fetch data until its the active panel.\n\n if (this.listSpec.dependentList && !this.componentDestroyed && this.fromDataView != null && this.initialBuildComplete) {\n this.build();\n }\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // TODO implement me.\n }\n\n public updateDataView(key: number, dataView: LMDataView) {\n // TODO implement me.\n }\n\n protected filterCriteriaChanged() {\n if (this.filterCriteria !== undefined && this.initialBuildComplete) {\n this.filter();\n }\n }\n\n protected filterListCriteriaChanged() {}\n\n public buildGridOptions() {\n return;\n }\n public setSelectedRows() {\n return;\n }\n\n // overrides the base\n public getDataViewSet(): LMDataViewSet {\n // Safety check, don't mutate if object has been frozen\n if (!Object.isFrozen(this.dataViewSet)) {\n this.dataViewSet.data = this.lmListHierarchyService.getFlatDataViewArray();\n }\n return this.dataViewSet;\n }\n\n public filter() {\n this.allowFilterResults = true;\n this.lmListHierarchyService.handleCancellableRequest();\n this.cancelOutstandingPagingRequest();\n const pageSize = this.listSpec.pageSize ? this.listSpec.pageSize : this.pageSize;\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const compiledUrlTemplate: any = urlTemplate.parse(this.listUrlInfo.initialDataUrl);\n const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined });\n const filterCriteria = this.listState.filterCriteria ? this.listState.filterCriteria : this.filterCriteria;\n\n this.pagingSubscription = this.lmListGridPagingService\n .filterPage(url, filterCriteria, pageSize, postContent)\n .subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.lmListHierarchyService.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n return;\n }\n\n this.setEmptyMessage();\n if (listPagingResponse.status === AppConstants.STATUS_COMPLETED) {\n\n if (listPagingResponse.dataViewSet === undefined\n || (listPagingResponse.dataViewSet.positionToDataView === undefined\n && listPagingResponse.dataViewSet.data === undefined)\n ) {\n this.handleError('filter() Failed', 'Failed to filter hierarchy data');\n }\n\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n\n const dataViewArray = listPagingResponse.dataViewSet.data;\n const positionToDataView = this.dataViewSet.positionToDataView;\n const dataView = positionToDataView ? positionToDataView[positionToDataView.length - 1] : this.dataViewSet.data[0];\n\n this.lmListHierarchyService\n .loadData(this.listSpec, dataViewArray, this.dataViewSet.legendFieldId, dataView, false, true)\n .then((d) => {\n this.updateView(d, listPagingResponse);\n\n if (this.sohoHierarchy) {\n this.sohoHierarchy.reloadDataSet(this.data);\n }\n\n if (dataViewArray.length === 0) {\n // need to fire an event so the list will update the detail sections!\n const listRowData: Array = [ {\n idx: 0,\n data: {},\n elem: null\n } ];\n this.lmListEventService.listRowSelectedEvent({\n rows: listRowData,\n event: {}\n });\n } else {\n // after a filter select the first record\n this.selectLeaf('0');\n }\n });\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.handleError(error.stack, error.message);\n });\n\n }\n\n public refresh(): Observable {\n if (this.isBusyPaging()) {\n return of (true);\n }\n\n this.build();\n // DPB this needs some refactoring! Need this to be a true subscribe, meaning wait until the data is returned.\n return new Observable(observer => {\n observer.next(true);\n observer.complete();\n });\n }\n\n /**\n * Events\n */\n\n public getSelectedRows(): Array {\n\n if (this.data === undefined || this.listState.selectedHierarchyDataView === undefined) {\n return [ 0 ];\n }\n\n const selectedRows = [];\n\n this.lmListHierarchyService.getFlatDataViewArray().forEach((dataView, i) => {\n if (dataView.resourceId === this.listState.selectedHierarchyDataView.resourceId) {\n selectedRows.push(i);\n }\n });\n\n return selectedRows;\n }\n\n public getSelectedRow(): number {\n return this.getSelectedRows()[0];\n }\n\n public unSelectAllRows(): void {\n // TODO: implement\n }\n\n public activateRow(row: number, scrollIntoView?: boolean): void {\n // TODO: implement\n }\n\n public activatedRow(): number {\n // TODO: implement\n return 0;\n }\n\n public addDataView(dataView: LMDataView, index: number) {\n // TODO: implement\n }\n\n public removeDataView(index: number) {\n // TODO: implement\n }\n\n public onRowsSelected(event: SohoHierarchyEvent) {\n this.lmLoggerService.log(event);\n const dataView: LMDataView = this.lmListHierarchyService.getFlatDataViewArray()[Number(event.data.id)];\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n const childrenUrl = dataView.childrenUrl;\n\n const centeredNode: LMHierarchyCenteredNodeState = {\n positionToUrl: dataView.positionToUrl,\n childrenUrl,\n fields: dataView.fields,\n resourceId: dataView.resourceId\n };\n this.selectedResource = { resourceId: dataView.resourceId, centeredNode };\n this.saveState();\n\n // todo khollenbeck this 'if' is checking that dataView is defined but code above assumes it is.\n // if (event.isExpandEvent && (dataView && childrenUrl)) {\n\n // todo khollenbeck above assumes childrenUrl can be built then why check for childrenUrl being defined?\n if (event.isExpandEvent && childrenUrl) {\n this.load(dataView);\n\n // Used for displaying multi root navigation\n this.atRootLevel = false;\n\n if (this.filterCriteria) {\n this.lmListEventService.clearSearchCriteriaEvent();\n }\n } else if (!childrenUrl || !centeredNode.positionToUrl) {\n if (event && event.targetInfo\n && event.targetInfo.target && event.targetInfo.target.classList.contains('btn-collapse')\n ) {\n event.targetInfo.target.style.display = 'none';\n }\n }\n\n if (event.isCollapseEvent || event.isBackEvent) {\n this.load(dataView);\n\n if (this.filterCriteria) {\n this.lmListEventService.clearSearchCriteriaEvent();\n }\n }\n\n if (event.isActionsEvent) {\n defer(async () => await this.getActions()).subscribe((actions) => {\n this.sohoHierarchy.updateActions(event, actions);\n });\n }\n\n if (event.isActionEvent && event.actionReference) {\n let actionRef = event.actionReference.actionReference;\n if (event.actionReference.menu) {\n // item in a submenu clicked, find the correct action reference\n for (let i = 0; i < event.actionReference.menu.length; i++) {\n if (event.actionReference.menu[i].actionReference.label === event.targetInfo.target.innerText) {\n actionRef = event.actionReference.menu[i].actionReference;\n }\n }\n }\n this.lmListEventService.hierarchyActionMenuItemSelectedEvent(actionRef);\n }\n\n if (event.isSelectedEvent) {\n const listRowData: Array = [ {\n idx: this.getSelectedRows()[0],\n data: dataView,\n elem: event.targetInfo ? event.targetInfo.target : null\n } ];\n this.lmListEventService.listRowSelectedEvent({\n rows: listRowData,\n event: event.targetInfo\n });\n }\n }\n\n public getDirtyRows(): Array {\n return;\n }\n public isModified(): boolean {\n return;\n }\n\n public onDoubleClick(event: SohoHierarchyDoubleClickEvent) {\n const dataView: LMDataView = this.lmListHierarchyService.getFlatDataViewArray()[Number(event.data.id)];\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n const childrenUrl = dataView.childrenUrl;\n const centeredNode: LMHierarchyCenteredNodeState = {\n positionToUrl: dataView.positionToUrl,\n childrenUrl,\n fields: dataView.fields,\n resourceId: dataView.resourceId\n };\n\n this.selectedResource = { resourceId: dataView.resourceId, centeredNode };\n this.lmListEventService.listHierarchyDoubleClickedEvent(event.data);\n }\n\n /**\n * END PUBLIC Events\n */\n private loadInitial(reload?: boolean) {\n this.lmListHierarchyService.handleCancellableRequest();\n this.cancelOutstandingPagingRequest();\n let initialUrl = this.listUrlInfo.initialDataUrl;\n\n if (this.multiRootUrl && !this.listSpec.dependentList) {\n initialUrl = this.multiRootUrl;\n }\n\n const pageSize = this.listSpec.pageSize ? this.listSpec.pageSize : this.pageSize;\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const isManualLoad = this.isManualLoading();\n const compiledUrlTemplate: any = urlTemplate.parse(initialUrl);\n const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined });\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(url, null, pageSize, postContent, isManualLoad)\n .subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.lmListHierarchyService.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n return;\n }\n\n this.setEmptyMessage();\n if (listPagingResponse.status === AppConstants.STATUS_COMPLETED) {\n if (listPagingResponse.dataViewSet === undefined\n || (listPagingResponse.dataViewSet.positionToDataView === undefined && listPagingResponse.dataViewSet.data === undefined)\n ) {\n this.handleError('LoadInitial() Failed', 'Failed to load initial data');\n }\n\n this.searchDataView = listPagingResponse.searchDataView;\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n\n if (!this.dataViewSet.positionToDataView && this.dataViewSet.data.length > 1) {\n this.multiRootUrl = url;\n this.atRootLevel = true;\n this.lmListHierarchyService.loadData(this.listSpec, this.dataViewSet.data, this.dataViewSet.legendFieldId, null, false).then((data) => {\n this.updateView(data, listPagingResponse);\n\n if (reload) {\n this.sohoHierarchy.reloadDataSet(data);\n }\n });\n } else {\n const dataView = this.dataViewSet.positionToDataView ? this.dataViewSet.positionToDataView[this.dataViewSet.positionToDataView.length - 1] : this.dataViewSet.data[0];\n this.lmListHierarchyService.loadData(this.listSpec, this.dataViewSet.data, this.dataViewSet.legendFieldId, dataView, true).then((data) => {\n this.updateView(data, listPagingResponse);\n });\n }\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.handleError(error.stack, error.message);\n });\n }\n\n public loadMultiRoot() {\n if (this.multiRootUrl || this.listState.multiRootUrl) {\n this.atRootLevel = true;\n this.loadInitial(true);\n }\n }\n\n private load(data: LMDataView|LMHierarchyCenteredNodeState) {\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.lmListHierarchyService.handleCancellableRequest();\n this.cancelOutstandingPagingRequest();\n this.pageSize = this.listSpec.pageSize ? this.listSpec.pageSize : this.pageSize;\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n const childrenUrl = data.childrenUrl || data.positionToUrl;\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(childrenUrl, null, this.pageSize, undefined)\n .subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.lmListHierarchyService.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n return;\n }\n\n // Loaded from state need to set dataViewSet\n if (this.listState && this.dataViewSet === undefined) {\n this.searchDataView = listPagingResponse.searchDataView;\n }\n\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n\n const dataView = data as LMDataView;\n this.lmListHierarchyService.loadData(this.listSpec, listPagingResponse.dataViewSet.data, this.dataViewSet.legendFieldId, dataView).then((d) => {\n this.updateView(d, listPagingResponse);\n\n if (this.sohoHierarchy) {\n this.sohoHierarchy.reloadDataSet(this.data);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n }\n\n this.initialSectionPerformed = false;\n });\n },\n error => {\n this.handleError(error.stack, error.message);\n });\n }\n\n private updateView(data: Array>, listPagingResponse: LMListPagingResponse) {\n this.data = data;\n this.recordCount = (this.data && this.allowFilterResults) ? this.data.length : 0;\n this.legendKey = (this.dataViewSet && this.dataViewSet.legendFieldId) ? this.dataViewSet.legendFieldId : this.listState.legendFieldId;\n this.legend = (this.dataViewSet && this.dataViewSet.legendMap) ? this.dataViewSet.legendMap : this.listState.legendMap;\n\n if (this.searchDataView) {\n listPagingResponse.searchDataView = this.searchDataView;\n } else if (this.listState.searchFormDataView) {\n listPagingResponse.searchDataView = this.listState.searchFormDataView;\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.changeDetectorRef.markForCheck();\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }\n\n private selectInitialLeaf() {\n this.selectLeaf(this.getInitialLeafId());\n }\n\n private selectLeaf(leafId: string) {\n if (this.sohoHierarchy) {\n\n this.sohoHierarchy.selectLeaf(leafId);\n\n if (document.getElementById(leafId)) {\n document.getElementById(leafId).scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n }\n }\n }\n\n private getActions(): Promise> {\n return new Promise>((resolve, reject) => {\n // Need to override the data on listState DataViewSet to get the appropriate actions\n this.listState.dataViewSet.data = this.lmListHierarchyService.getFlatDataViewArray();\n this.listState.selectedRows = this.getSelectedRows();\n let actions = [];\n\n const contextMenuItems = this.lmListToolbarService.getContextMenu(this.listSpec, this.listState);\n\n const drillPointsParams: DrillPointsParams = {\n dataView: this.listState.dataViewSet.data[ 0 ],\n fieldId: this.listSpec.busListSpec.id\n };\n defer(async () => await this.lmListToolbarService.lmToolbarServiceAdapter.lmDrillService.getDrillPoints(drillPointsParams).toPromise()).subscribe((drillPoints: Array) => {\n actions = contextMenuItems.map((item: LMToolbarButton) => {\n const hasNoLabel = item.actionReference.label === undefined;\n const hasToolTip = item.actionReference.tooltip !== undefined;\n const value = hasNoLabel && hasToolTip ? item.actionReference.tooltip : item.actionReference.label;\n if (item.menu) {\n if (item.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON) {\n if (drillPoints.length > 0) {\n const actionRefs: Array = this.lmListToolbarService.drillActionsToActionRefArray(drillPoints);\n\n const subMenuButtons: Array = this.lmListToolbarService.createToolbarMenuItemsFromActionReferences(this.listSpec, actionRefs);\n item.menu = subMenuButtons;\n } else {\n const noActionMenu: LMToolbarButton = {\n actionReference: { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') },\n state: { disabled: false, visible: true }\n };\n item.menu = [ noActionMenu ];\n }\n }\n const subMenuItems = item.menu.map((subItem) => {\n const _hasNoLabel = subItem.actionReference.label === undefined;\n const _hasToolTip = subItem.actionReference.tooltip !== undefined;\n const _value = _hasNoLabel && _hasToolTip ? subItem.actionReference.tooltip : subItem.actionReference.label;\n\n return { value: _value, url: '', data: subItem };\n });\n\n return { value, url: '', data: item, menu: subMenuItems };\n } else {\n // separators need a specific data, or they will appear as a blank line\n if (item.actionReference.type === 'separator') {\n return { value: '', data: { id: 'separator', type: 'separator', label: '' } };\n }\n\n return { value, url: '', data: item };\n }\n });\n\n // Set listState dataViewSet back to original dataViewSet\n this.listState.dataViewSet = this.dataViewSet;\n\n resolve(actions);\n });\n });\n }\n\n private getInitialLeafId(): string {\n let id;\n let selectedResource;\n\n if (this.selectedResource) {\n selectedResource = this.selectedResource.resourceId;\n }\n if (this.selectedResource === undefined\n && (this.listState && this.listState.selectedHierarchyDataView && this.listState.selectedHierarchyDataView.resourceId)\n ) {\n selectedResource = this.listState.selectedHierarchyDataView.resourceId;\n }\n\n this.lmListHierarchyService.getFlatDataViewArray().forEach((dataView: LMDataView, index) => {\n if (dataView.resourceId === selectedResource) {\n id = index;\n }\n });\n\n if (this.dataViewSet && this.dataViewSet.positionToDataView) {\n id = this.dataViewSet.positionToDataView.length - 1;\n }\n\n return id ? id.toString() : '0';\n }\n\n private buildLeafTemplateForJqueryControl() {\n const leafTemplate = `\n \n `;\n\n this.leafTemplate = this.domSanitizer.bypassSecurityTrustHtml(leafTemplate);\n }\n\n /**\n * Saves hierarchy state\n */\n private saveState() {\n if (this.listSpec.dependentList && this.implementsManualLoad) {\n return;\n }\n\n const centeredDataViewIndex = this.lmListHierarchyService.getCenteredNodeIndex();\n const centeredDataView = this.lmListHierarchyService.getFlatDataViewArray()[centeredDataViewIndex];\n let centeredNode: LMHierarchyCenteredNodeState;\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n if (centeredDataView) {\n const childrenUrl = centeredDataView.childrenUrl;\n centeredNode = {\n positionToUrl: centeredDataView.positionToUrl,\n childrenUrl,\n fields: centeredDataView.fields,\n resourceId: centeredDataView.resourceId\n };\n\n this.listState.hierarchyData = this.mapHierarchyDataForListState(centeredDataView, centeredDataViewIndex);\n }\n\n this.listState.selectedHierarchyDataView = this.selectedResource === undefined ?\n { resourceId: centeredDataView.resourceId, centeredNode: centeredDataView ? centeredNode : null } :\n { resourceId: this.selectedResource.resourceId, centeredNode: centeredDataView ? centeredNode : null };\n\n if (this.dataViewSet.legendFieldId && this.dataViewSet.legendMap) {\n this.listState.legendMap = this.dataViewSet.legendMap;\n this.listState.legendFieldId = this.dataViewSet.legendFieldId;\n }\n\n if (this.filterCriteria) {\n this.listState.filterCriteria = this.filterCriteria;\n }\n\n if (this.searchDataView) {\n this.listState.searchFormDataView = this.searchDataView;\n }\n\n if (this.multiRootUrl) {\n this.listState.multiRootUrl = this.multiRootUrl;\n }\n\n this.listState.dataViewSet = this.dataViewSet;\n this.listState.selectedRows = this.getSelectedRows();\n }\n\n private mapHierarchyDataForListState(centeredDataView: LMDataView, centeredDataViewIndex: number): LMHierarchyDataViewState {\n const ancestorResourceIds = [];\n const childrenResourceIds = [];\n\n this.lmListHierarchyService.getFlatDataViewArray().forEach((dataView, index) => {\n const resourceId = dataView.resourceId;\n if (index < centeredDataViewIndex) {\n ancestorResourceIds.push(resourceId);\n }\n if (index === centeredDataViewIndex) {\n return;\n }\n if (index > centeredDataViewIndex) {\n childrenResourceIds.push(resourceId);\n }\n });\n\n return {\n ancestors: ancestorResourceIds,\n resourceId: centeredDataView.resourceId,\n children: childrenResourceIds\n };\n }\n}\n","
        \n 0 && initialSectionPerformed)\">\n \n \n\n \n \n\n 0\">\n \n \n \n\n
        \n
        \n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { LMListBlockGridBaseDirective } from '@list/lm-list-blockgrid-base.directive';\nimport {\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService, LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService\n} from '@app/services';\nimport { LMListEventService, LMListGridPagingService, LMListSpecUtilService, LMListUtilService } from '@list/services';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-list-image',\n templateUrl: './lm-list-image.component.html',\n styleUrls: [ 'lm-list-image.component.scss' ]\n})\nexport class LMListImageComponent extends LMListBlockGridBaseDirective {\n constructor(\n protected lmContextService: LMContextService,\n protected lmLoggerService: LMLoggerService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected changeDetectorRef: ChangeDetectorRef,\n protected lmErrorUtilService: LMErrorUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridPagingService: LMListGridPagingService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmUrlUtilService: LMUrlUtilService\n ) {\n super(\n lmContextService,\n lmLoggerService,\n lmFormatUtilService,\n lmThemeService,\n lmBusyIndicatorService,\n changeDetectorRef,\n lmErrorUtilService,\n lmListEventService,\n lmListGridPagingService,\n lmListSpecUtilService,\n lmListUtilService,\n lmUrlUtilService\n );\n }\n}\n","\n \n \n \n \n
        \n
        \n
        \n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n NgZone,\n Output,\n ViewChild\n} from '@angular/core';\nimport {\n LMListComponent,\n LMListLookupSelectionEvent,\n LMListSelectionEvent\n} from './lm-list.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { AppConstants } from '@utils/app.constants';\n\n@Component({\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\nexport class LMListLookupDialogComponent implements AfterViewChecked {\n\n @ViewChild(forwardRef(() => LMListComponent)) selectList: LMListComponent;\n\n @HostListener('keyup', ['$event']) onKeyUp(event) {\n if (event.which === 13 && event.srcElement.nodeName !== 'BUTTON') {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n if (this.selectList.getSelectedRows().length > 0) {\n // if a record is selected, then enter should be like clicking the ok button\n this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + this.buttonIds.ok + '\"]').click();\n }\n }\n }\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() lookupSelection = new EventEmitter();\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() titleChanged = new EventEmitter();\n @Output() navigatingToolbarEvent = new EventEmitter();\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n /**\n * The list spec of the select list used to Select a value for our\n * select field.\n */\n @Input() listSpec: LMListSpec;\n\n /**\n * The SelectRequestData containing what's needed to run the select and\n * page appropriately over it's records.\n */\n @Input() selectRequestData: SelectRequestData;\n\n /**\n * The button ids for the ok and cancel button\n */\n @Input() buttonIds: {ok: string, cancel: string};\n\n private executeFocus = false;\n\n constructor(\n private elementRef: ElementRef,\n private zone: NgZone) { }\n\n ngAfterViewChecked(): void {\n if (this.executeFocus) {\n this.executeFocus = false;\n this.handleFocus();\n }\n }\n\n /**\n * Re-emit the row selection event.\n * @param listSelectionEvent\n */\n onRowsSelected(listSelectionEvent: LMListSelectionEvent) {\n const lookupSelectionEvent = new LMListLookupSelectionEvent(this, listSelectionEvent.selectedRows);\n this.lookupSelection.emit(lookupSelectionEvent);\n }\n\n /**\n * Re-emit title changed event from lm-list.component to that the apply function has a chance\n * to subscribe to it and in turn update the dialogs title.\n */\n onTitleChanged(newTitle: string) {\n this.titleChanged.emit(newTitle);\n }\n\n onToolbarButtonEvent(event: LMToolbarButtonEvent) {\n const id = event.actionReference.id.toUpperCase();\n if (id.indexOf(AppConstants.ACTION_TYPE_CREATE) > -1 ||\n id.indexOf(AppConstants.ACTION_TYPE_UPDATE) > -1 ) {\n this.navigatingToolbarEvent.emit(event);\n }\n }\n\n onListDisplayed() {\n this.executeFocus = true;\n }\n\n handleFocus() {\n // This needs to be in a timeout to ensure that the list in the modal is displayed before attempting to focus\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n // does the child list have a search form displayed initially or always\n if (this.selectList.hasSearchForm && this.selectList.showSearchForm) {\n this.selectList.searchFormComponent.elementRef.nativeElement.querySelectorAll('input')[0].focus();\n return;\n }\n\n // focus first row, first cell\n this.selectList.listContentComponent?.listGrid?.sohoDataGridComponent.setActiveCell(0, 0);\n }, 2);\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter, forwardRef,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMFormComponent } from '@form/lm-form.component';\n\n@Component({\n selector: 'lm-list-search-form-dialog',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [LMRouteComponentService]\n})\nexport class LMListSearchFormDialogComponent implements AfterViewInit {\n\n @Input() formSpec: LMFormSpec;\n @Input() set initDataView(dataView: LMDataView) {\n this._initDataView = dataView;\n };\n\n get initDataView(): LMDataView {\n return this._initDataView;\n }\n\n @Input() formOptions: LMFormOptions;\n\n @Output() searchButtonClicked = new EventEmitter();\n\n @ViewChild(forwardRef(() => 'LMFormComponent'), { static: true }) lmFormComponent; //: LMFormComponent;\n\n private _initDataView;\n\n ngAfterViewInit() {\n this.lmFormComponent.initDataView = this.initDataView;\n }\n\n onSearchButtonClicked() {\n this.lmFormComponent.searchButtonClicked.subscribe( event => {\n this.searchButtonClicked.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[lm-list-search-form]'\n})\nexport class LMListSearchFormDirective implements OnInit {\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit() {\n // console.log(this.elementRef)\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input, OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core';\n\n/**\n * A simple component to show soho's dismissible tags. Used largely\n *\n */\n@Component({\n selector: 'lm-list-searchtags',\n templateUrl: './lm-list-searchtags.component.html',\n styleUrls: ['lm-list-searchtags.component.scss'],\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LMListSearchTagsComponent implements OnInit {\n @Input() iconName: string = 'close';\n @Input() showRefineAndClear: boolean = true;\n @Input() idPrefix: string;\n @Input() automationIdPrefix: string;\n\n /**\n * List of search tags that will be displayed in this component.\n * @type {Array}\n */\n @Input() searchTags: Array = [];\n\n /**\n * Event to notify when a tag has been removed via its close button.\n * @type {EventEmitter}\n */\n @Output() searchTagRemoved = new EventEmitter();\n\n /**\n * Event to notify when clear/refine tag has been clicked.\n * @type {EventEmitter}\n */\n @Output() clearFilter = new EventEmitter();\n @Output() refineFilter = new EventEmitter();\n\n /**\n * Internal host binding variable for this elements max height\n * This is meant to keep the list component from getting to tall.\n */\n @HostBinding('style.maxHeight.px') maxHeight = this.getMaxHeight();\n\n @HostBinding('attr.data-automation-id') automationId;\n\n\n /** Set search form max height to 40% of given space on resize */\n @HostListener('window:resize') public onResize() {\n this.maxHeight = this.getMaxHeight();\n }\n\n @ViewChildren('SearchTag') private searchTagButtons: QueryList;\n\n public focusedIndex: number;\n public focusedTagId: string;\n\n constructor(\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n this.automationId = `lm-${this.automationIdPrefix}-search-tags`;\n }\n\n /** internal event handler function for use in template */\n onRemoveTag(index: number) {\n // ----------------------------------------------------------------\n // copy off searchTag to be removed so it can be sent in the\n // searchTagRemovedEvent emitter\n // ----------------------------------------------------------------\n const removedSearchTag: LMListSearchTag = Object.assign({}, this.searchTags[index]);\n\n this.searchTags.splice(index, 1);\n this.searchTagRemoved.emit(removedSearchTag);\n\n\n if (this.focusedIndex >= this.searchTags.length) {\n this.setFocusedTag(this.searchTags[this.searchTags.length - 1]?.id);\n } else {\n this.setFocusedTag(this.searchTags[this.focusedIndex]?.id);\n }\n\n if (this.focusedIndex >= 0) {\n this.setFocusToElement(this.focusedTagId);\n }\n }\n\n onClearFilter() {\n this.clearFilter.emit();\n }\n\n onRefineFilter() {\n this.refineFilter.emit();\n }\n\n private getMaxHeight(): number {\n const thisElement = this.elementRef.nativeElement;\n const lmList = thisElement.closest('lm-list');\n\n if (lmList) {\n const containerHeight = lmList.clientHeight;\n return Math.round(containerHeight * .35);\n } else {\n return null;\n }\n }\n\n trackById(index: number, searchTag: LMListSearchTag): string {\n return searchTag.id;\n }\n\n setFocusedTag(tagId: string) {\n this.focusedIndex = tagId ? this.searchTags.findIndex(searchTag => searchTag.id === tagId) : -1;\n this.focusedTagId = tagId;\n }\n\n isFocused(tagId: string) {\n return tagId === this.focusedTagId;\n }\n\n private setFocusToElement(tagId: string) {\n if (tagId) {\n const elementToFocus = this.searchTagButtons?.toArray().find((searchTag) => searchTag.nativeElement.dataset.tagid === tagId);\n if (elementToFocus?.nativeElement) {\n elementToFocus.nativeElement.focus();\n }\n }\n }\n}\n","\n \n \n Close\n

        \n {{item.label}}\n {{item.tag}}\n

        \n \n
        \n Close\n

        \n {{item.label}}*\n {{item.tag}}\n

        \n

        \n {{item.label}}\n {{item.tag}}\n

        \n
        \n
        \n\n \n

        \n {{ 'Clear' | translate }}\n

        \n
        \n \n

        \n {{ 'Refine' | translate }}\n

        \n
        \n
        \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ElementRef\n} from '@angular/core';\nimport { SohoDataGridToggleRowEvent, SohoMessageService } from 'ids-enterprise-ng';\nimport { Observable, SubscriptionLike as ISubscription, Subscription, Subject, of } from 'rxjs';\nimport * as urlTemplate from 'url-template';\nimport * as Flatted from 'flatted';\n\nimport { LMDataGridBaseComponent } from './lm-datagrid-base.component';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMEditorService } from '@list/editors/lm-editor.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMListGridPagingService } from '@list/services/lm-list-grid-paging.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMCompoundFieldService, LMErrorUtilService } from '@services/index';\nimport { AppConstants, LMUniqueIdService } from '@utils/index';\nimport {\n LMListEventService,\n LMListGridBuilderService,\n LMListSpecUtilService,\n LMListUtilService\n} from './services';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Component({\n selector: 'lm-list-tree',\n templateUrl: 'lm-list-tree.component.html',\n styles: [ `\n :host {\n display:block;\n overflow: auto;\n height: 100%;\n }\n ` ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMListTreeComponent extends LMDataGridBaseComponent implements AfterViewInit, LMListContentInterface, OnInit, OnDestroy {\n\n private maxLevels: number;\n private showLevels: number;\n private _selectedTreeDataView: LMListDataView;\n private id = 0;\n private subscriptions: ISubscription[] = [];\n private formatColumnHeaderMessageRules = false;\n private searchFormDataView: LMDataView;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n private expandedRows: Array = [];\n\n public dataGridId: string;\n public treeData: Array = [];\n public flatDataViewArray: Array = [];\n public uiLoadingIndicatorTimeout = 0;\n private listEventSubs: Subscription[] = [];\n private initialBuildComplete = false;\n\n @Input() cubeOrientation: SohoDataGridSelectable;\n\n @Output() cubeRowsSelected = new EventEmitter();\n\n @Output() listLookupClicked = new EventEmitter();\n\n @Output() listFilterLookupClicked = new EventEmitter();\n @Output() listFilterClearClicked = new EventEmitter();\n\n constructor(\n protected lmConditionUtilService: LMConditionUtilService,\n protected lmContextService: LMContextService,\n protected lmEditorService: LMEditorService,\n protected lmFormatterService: LMFormatterService,\n protected lmFormatUtilService: LMFormatUtilService,\n protected lmListEventService: LMListEventService,\n protected lmListGridBuilderService: LMListGridBuilderService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmListSpecUtilService: LMListSpecUtilService,\n protected lmListUtilService: LMListUtilService,\n protected lmCompoundFieldService: LMCompoundFieldService,\n protected sohoMessageService: SohoMessageService,\n protected lmUniqueIdService: LMUniqueIdService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmListGridPagingService: LMListGridPagingService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmErrorUtilService: LMErrorUtilService,\n ) {\n super(\n lmConditionUtilService,\n lmContextService,\n lmEditorService,\n lmFormatterService,\n lmFormatUtilService,\n lmListEventService,\n lmListGridBuilderService,\n lmLoggerService,\n lmThemeService,\n lmUrlUtilService,\n lmListSpecUtilService,\n lmListUtilService,\n lmCompoundFieldService,\n sohoMessageService,\n lmUniqueIdService,\n );\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n }\n\n ngOnInit() {\n this.dataGridId = this.listSpec?.busListSpec?.id + '_datagrid';\n this.dataGridAutomationId = 'lm-' + this.listSpec?.busListSpec?.automationId + '-datagrid';\n\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n this.clearEmptyMessage();\n this.validateInitialInputs();\n this.build();\n }\n\n ngAfterViewInit() {\n // ---------------------------------------------------------------------------------\n // Related lists need to have the soho-datagrid built before fromDataViewChanged()\n // can be called. In most cases fromDataViewChanged can be called directly from the\n // '@Input() fromDataView` input setter. But for initial load of a dependent list\n // the datagrid isn't built before the fromDataView input is called. So we call\n // fromDataViewChanged in a timeout here so that change detection will fire.\n // ---------------------------------------------------------------------------------\n setTimeout(() => {\n this.buildTreeList();\n });\n }\n\n ngOnDestroy() {\n this.flatDataViewArray = [];\n this.subscriptions.forEach(sub => sub.unsubscribe()); // TODO: lets try to get rid of this!\n this.setComponentDestroyed();\n this.cancelOutstandingPagingRequest();\n }\n\n protected loadManualData(): void {\n if (this.listSpec.dependentList && this.sohoDataGridComponent && !this.componentDestroyed) {\n this.buildTreeList();\n }\n }\n\n protected fromDataViewChanged() {\n // todo why is this different -- why not do it like grid\n if (this.listSpec.dependentList && this.sohoDataGridComponent && !this.componentDestroyed) {\n if (this.listState?.fromResourceId !== this.fromDataView?.resourceId) {\n this.listState.treeData = undefined;\n }\n this.buildTreeList();\n }\n }\n\n private handleCancelableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n onBeforePaging(pageOp: LMPageOp, event: SohoDataGridFilteredEvent) {\n const beforePagingEvent: LMListGridPagingEvent = { pageOp, sohoDataGridEvent: event };\n this.lmListEventService.listGridBeforePagingEvent(beforePagingEvent);\n }\n\n // onColumnFiltered(event: SohoDataGridFilteredEvent, continueFiltering = false): void {\n // if (this.disabled) {\n // // -------------------------------------------------------------\n // // this is here until soho grid.js has a disabled state that\n // // would restrict the filter bar field entry from messaging\n // // this function.\n // // -------------------------------------------------------------\n // return;\n // }\n //\n // if (event.op === 'clear' || !event.conditions || event.conditions.length === 0) {\n // if (!this.listState.filterCriteria || this.listState.filterCriteria.length === 0) {\n // // --------------------------------------------------------------------------\n // // getting a 'filtered' event when closing the filter row. On the close\n // // filter row event I set a flag and if we are asked to close a filter\n // // we should only clear the filter if a filter has already ben executed\n // // --------------------------------------------------------------------------\n // return;\n // }\n // }\n //\n // if (!continueFiltering) {\n // this.onBeforePaging('filter', event);\n // return;\n // }\n // // --------------------------------------------------------------------------\n // // setting filterCriteria input here will causes a filterCriteriaChanged()\n // // message which will cause filterPage() to be called during the\n // // ngAfterViewChecked lifecycle event.\n // // --------------------------------------------------------------------------\n // const pendingFilterCriteria = this.getFilterCriteria(event.conditions);\n //\n // if (this.lmListUtilService.areTheSameJson(pendingFilterCriteria, this.filterCriteria)) {\n // return;\n // }\n //\n // if (this.validateFilterCriteria(pendingFilterCriteria)) {\n // this.filterCriteria = pendingFilterCriteria;\n // this.lmListEventService.updateFilterCriteriaEvent(this.filterCriteria);\n // }\n // }\n\n public onColumnFiltered(event, continueFiltering = false) {\n if (event && event.conditions === undefined) {\n return;\n }\n\n if (event?.trigger === 'render'\n || (!this.lmListUtilService.isAutoFilterEnabled() && event?.trigger === 'selected')) {\n return;\n }\n\n if (!continueFiltering) {\n this.onBeforePaging('filter', event);\n return;\n }\n\n const pendingFilterCriteria = this.getFilterCriteria(event.conditions);\n\n if (!this.validateFilterCriteria(pendingFilterCriteria)) {\n return;\n }\n\n this.lmListEventService.updateFilterCriteriaEvent(pendingFilterCriteria);\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n const compiledUrlTemplate = urlTemplate.parse(this.listUrlInfo.initialDataUrl);\n const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined });\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const pageSize = (this.gridOptions && this.gridOptions.pagesize) ? this.gridOptions.pagesize : this.listSpec.pageSize;\n const filterCriteria = pendingFilterCriteria;\n const hasSearchForm = this.lmListUtilService.hasSearchForm(this.listSpec, this.lmListSpecUtilService.isDashBoardContent(this.listSpec));\n\n this.listState.filterCriteria = this.lmListUtilService.mergeStickyModifier(filterCriteria, this.m_columnfilterOperators, hasSearchForm);\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.pagingSubscription = this.lmListGridPagingService\n .filterPage(url, filterCriteria, pageSize, postContent)\n .subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.status === 'COMPLETED') {\n listPagingResponse.resetSelection = true;\n this.postLoad(listPagingResponse);\n this.listState.filterCriteria = this.lmListUtilService.mergeStickyModifier(filterCriteria, this.m_columnfilterOperators, hasSearchForm);\n } else {\n this.lmErrorUtilService.handleError(\n listPagingResponse.message,\n listPagingResponse.details,\n listPagingResponse.status,\n listPagingResponse.message\n );\n this.dataLoaded(listPagingResponse);\n }\n\n this.changeDetectorRef.markForCheck();\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n }\n );\n }\n\n public build() {\n this.listLookupClicked.subscribe(event => this.lmListEventService.listLookupClickedEvent(event));\n this.listFilterLookupClicked.subscribe(event => this.lmListEventService.listFilterLookupClickedEvent(event));\n this.listFilterClearClicked.subscribe(event => this.lmListEventService.listFilterClearClickedEvent(event));\n\n this.listEventSubs.push(this.lmListEventService.listGridContinuePagingEvent$.subscribe((pagingEvent: LMListGridPagingEvent) => {\n this.onContinuePaging(pagingEvent);\n }));\n\n this.allowMultiSelections = this.selectRequestData?.allowMultiSelections || false;\n\n this.buildGridOptions();\n this.updateGridOptions();\n }\n\n protected filterCriteriaChanged() {\n if (this.listState === undefined || this.listState.filterCriteria === undefined) {\n return;\n }\n\n const hasSearchForm = this.lmListUtilService.hasSearchForm(this.listSpec, this.lmListSpecUtilService.isDashBoardContent(this.listSpec));\n if (this.lmContextService.disableTreeFilterFix() && !hasSearchForm) {\n setTimeout(() => {\n this.filterPage();\n });\n } else {\n if (this.initialBuildComplete) {\n this.filterPage();\n }\n }\n }\n\n private filterPage(): void {\n this.setEmptyMessage();\n\n if (this.listSpec.dependentList && !this._fromDataView) {\n return;\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const compiledUrlTemplate = urlTemplate.parse(this.listUrlInfo.initialDataUrl);\n const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined });\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const pageSize = (this.gridOptions && this.gridOptions.pagesize) ? this.gridOptions.pagesize : this.listSpec.pageSize;\n\n this.lmLoggerService.time({ id: 'LMListView.filterPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.filterPage(url, this.filterCriteria, pageSize, postContent).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n this.lmLoggerService.time({ id: 'LMListView.filterPage() ' + this.instanceId });\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.filterPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.listState.filterCriteria = this.filterCriteria;\n this.postLoad(listPagingResponse);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n\n this.changeDetectorRef.markForCheck();\n },\n error => {\n this.lmLoggerService.timeEnd('LMListView.filterPage() ' + this.instanceId, [ this ]);\n this.handleError(error.stack, error.message);\n });\n }\n\n protected filterListCriteriaChanged() {\n return;\n }\n\n public updateGridOptions() {\n // Set flag if columns have message rules, process after dataViewSet is loaded\n this.formatColumnHeaderMessageRules = this.columnHeadersHaveMessageRules();\n this.gridOptions.treeGrid = true;\n this.gridOptions.paging = false;\n this.gridOptions.indeterminate = false;\n this.gridOptions.pagesize = this.listSpec.pageSize ? this.listSpec.pageSize : 100;\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n this.gridOptions.selectable = this.cubeOrientation;\n }\n\n this.gridOptions.selectChildren = (this.gridOptions.selectable === 'siblings') ? true : false;\n }\n\n public updateChartOrientationForCube() {\n this.gridOptions.selectable = (this.listSpec.listType === 'select')\n ? 'single'\n : (this.lmListSpecUtilService.isCubeView(this.listSpec))\n ? this.cubeOrientation\n : 'mixed';\n\n this.gridOptions.selectChildren = (this.gridOptions.selectable === 'siblings') ? true : false;\n }\n\n onContinuePaging(continuePagingEvent: LMListGridPagingEvent) {\n if (continuePagingEvent.pageOp === 'filter') {\n this.onColumnFiltered(continuePagingEvent.sohoDataGridEvent, true);\n }\n }\n\n public onContextMenu(event: SohoDataGridRowClicked): void {\n // clicked in open area of datagrid. could bring up only class level actions (create or set actions).\n if (!event) {\n return;\n }\n\n this.sohoDataGridComponent.unSelectAllRows();\n\n if (!event.originalEvent.clientX || !event.originalEvent.clientY) {\n const domRect: DOMRect = (event.originalEvent.target as HTMLElement).getBoundingClientRect();\n event.originalEvent.clientX = domRect.x;\n event.originalEvent.clientY = domRect.y;\n }\n\n this.lmListEventService.contextMenuEvent({\n ...event,\n type: 'grid'\n });\n }\n\n public getDataViewSet(): LMDataViewSet {\n this.buildFlatDataViewArray();\n\n // Safety check, don't mutate if object has been frozen\n if (!Object.isFrozen(this.dataViewSet)) {\n this.dataViewSet.data = this.flatDataViewArray as Array;\n }\n return this.dataViewSet;\n }\n\n private _getDataView(idx: number) {\n this.buildFlatDataViewArray();\n return this.flatDataViewArray[idx];\n }\n\n public onRowActivated(event: SohoDataGridRowActivated) {\n // Need to add this for dependent lists\n // buildInitialPageUrl in listGrid expects fromDataView\n // fromDataView is nested inside of node object coming back from tree\n this.listState.activatedRow = event.row;\n event.item = event.item.node;\n this.lmListEventService.listRowActivatedEvent((event));\n }\n\n /**\n * When the checkbox is selected\n * @param selectedRows\n */\n public onRowsSelected(selectedRows: SohoDataGridSelectedEvent) {\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if ( selectedRows.rows && selectedRows.rows.length > 0 ) {\n const row: number = selectedRows.rows[0].idx;\n const item: LMListDataView|LMListTreeMoreLink = this._getDataView(row);\n\n if (this.cubeOrientation === 'siblings') {\n if (this.checkTreeMoreLinkSelected(selectedRows)) {\n // Clear the chart. Complete data is not available to chart (for eg. pie will not be correct)\n const cloneDVS: LMDataViewSet = JSON.parse(JSON.stringify(this.dataViewSet));\n cloneDVS.data = [];\n this.cubeRowsSelected.emit(cloneDVS);\n return;\n }\n const parent = this.findParentNode(item, this.getLMListDataViews(this.treeData));\n let childrenDVSet;\n if (parent) {\n childrenDVSet = parent.dataViewSet;\n } else {\n const cloneDVS: LMDataViewSet = JSON.parse(JSON.stringify(this.dataViewSet));\n cloneDVS.data = [];\n this.treeData.map((mapRow, index) => {\n cloneDVS.data[ index ] = JSON.parse(JSON.stringify(mapRow));\n });\n childrenDVSet = cloneDVS;\n }\n this.cubeRowsSelected.emit(childrenDVSet);\n } else {\n // Single row selection. Chart various categories in single row.\n // lm-list-chart fails if DataViewSet.data is empty. This is bound to happen if the row is not expanded.\n // Period chart uses dataviewset.chartperiods. Use the current row to clone a dvs\n // Column chart uses dataviewset.data[0] to chart elements. Use the current row to clone a dvs. And set data[0]\n const cloneDVS: LMDataViewSet = JSON.parse(JSON.stringify(item));\n cloneDVS.data = [];\n cloneDVS.data[0] = JSON.parse(JSON.stringify(item));\n this.cubeRowsSelected.emit(cloneDVS);\n }\n this.updateDimensionColumnHeader( item);\n } else if (this.dataViewSet.data.length === 0) {\n // Cube viewer should be notified to clear the chart\n this.cubeRowsSelected.emit(this.dataViewSet);\n }\n }\n\n if (selectedRows.type === 'deselect' && selectedRows.rows?.length === 0) {\n this.listState.selectedRows = [];\n }\n\n let listRowSelectedEvent = null;\n if (selectedRows.rows && selectedRows.rows.length === 1) {\n this.setSelectedTreeDataView(selectedRows.rows[0].data);\n\n listRowSelectedEvent = {\n event: selectedRows.e,\n rows: selectedRows.rows\n };\n } else {\n // When handling a lookup for a multi-select key field emit all selected rows\n if (this.allowMultiSelections) {\n listRowSelectedEvent = {\n event: selectedRows.e,\n rows: selectedRows.rows\n };\n }\n }\n\n this.lmListEventService.listRowSelectedEvent(listRowSelectedEvent);\n }\n\n private checkTreeMoreLinkSelected(selectedRows: SohoDataGridSelectedEvent): boolean {\n if ( selectedRows.rows && selectedRows.rows.length > 0 ) {\n let isMoreLink = false;\n selectedRows.rows.forEach((row: SohoDataGridSelectedRow) => {\n if (row.data && row.data.isTreeMoreLink) {\n isMoreLink = true;\n }\n });\n return isMoreLink;\n }\n return false;\n }\n\n public onRowDoubleClicked(event: SohoDataGridRowClicked): void {\n // Safety if double click on filter row and no event is returned\n if (!event) {\n return;\n }\n\n const row: number = event.row;\n const item = this._getDataView(row) as LMDataView;\n this.setSelectedTreeDataView(item);\n\n this.lmListEventService.listRowDoubleClickedEvent(event);\n }\n\n // commented out due to datagrid-base already doing this and datagrid-base has a\n // more complete implementation. - Phillip 2/5/2020\n // /**\n // * When the row is clicked anywhere\n // * @param event\n // */\n // public onRowClicked(event: SohoDataGridRowClicked) {\n // if (!event) {\n // return; // safety - event can be null if user clicks on the datagrid background.\n // }\n //\n // const row: number = event.row;\n // const item = this._getDataView(row) as LMDataView;\n // this.setSelectedTreeDataView(item);\n //\n // // ---------------------------------------------------------------------\n // // if no selection mode is set\n // // allow a single click to open a record\n // // ---------------------------------------------------------------------\n // if (!this.gridOptions.selectable) {\n // this.lmListEventService.listRowClickedEvent({\n // cell: event.cell,\n // item: event.item,\n // originalEvent: event.originalEvent,\n // row: event.row\n // });\n // }\n // }\n\n private saveExpandedRows(data: Array) {\n data.forEach((item) => {\n if (item.children && item.children.length > 0) {\n this.saveExpandedRows(item.children);\n }\n\n if (item.expanded) {\n this.expandedRows.push(item.cubeInfo ? item.dataViewResId : item.resourceId);\n }\n });\n\n this.listState.expandedRows = this.expandedRows;\n }\n\n public refresh(): Observable {\n if (this.isBusyPaging()) {\n return of (true);\n }\n // console.log('listtree-refresh: ' + this.listSpec.busListSpec.name);\n this.expandedRows = [];\n this.saveExpandedRows(this.treeData);\n this.clearDirty();\n this.sohoDataGridComponent.unSelectAllRows();\n this.listState.activatedRow = (this.listState.activatedRow) ? this.listState.activatedRow : 0;\n return this.refreshTreeList();\n }\n\n public onCollapseRow(e: SohoDataGridToggleRowEvent) {\n const isCubeView = this.lmListSpecUtilService.isCubeView(this.listSpec);\n const rowResourceId: Array = isCubeView ? [ e.rowData.dataViewResId ] : [ e.rowData.resourceId ];\n const rowDimensionField = isCubeView ? e.rowData.fields['Dimension_cube_view_dimension'].value : undefined;\n const rowId = e.rowData.id;\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n this.treeData.map(function callback(dataView: LMListDataView ) {\n const resourceId = isCubeView ? dataView.dataViewResId : dataView.resourceId;\n const dimensionField = isCubeView && !dataView.isTreeMoreLink ? dataView.fields['Dimension_cube_view_dimension'].value : undefined;\n if (rowResourceId.includes(resourceId)\n && rowDimensionField === dimensionField\n && dataView.depth >= e.rowData.depth\n && rowId === dataView.id) {\n dataView.expanded = false;\n // Setting dataView children to empty set of nodes causes the tree to re-render and all the indices are off. It looks totally broken\n // dataView.children = [];\n }\n\n if (Array.isArray(dataView.children)) {\n dataView.children.map(callback);\n }\n });\n\n this.changeDetectorRef.detectChanges();\n // Activating should call the Soho's activetRow so that soho has a chance to manage\n // the activation. listState and onRowActivated will automatically be called as a\n // result of calling activateRow. - Phillip 2/5/2020\n this.performSelectionForMode(e.row);\n }\n\n public onExpandRow(e: SohoDataGridToggleRowEvent) {\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n let childrenUrl = e.rowData.childrenUrl;\n\n // let postContent: string;\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n const delimiter = (childrenUrl.indexOf('?') === -1) ? '?' : '&';\n childrenUrl = childrenUrl + delimiter + this.lmUrlUtilService.objectToCubeQueryString(e.rowData.cubeInfo);\n // postContent = JSON.stringify(e.rowData.cubeInfo);\n childrenUrl = this.addCubeOverrideInfo(childrenUrl);\n }\n\n // todo khollenbeck ppatton how to deal with a childrenUrl being undefined with new listSpec.childrenUrl template?\n if (!e.rowData.childrenLoaded && e.rowData.childrenUrl !== undefined) {\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(childrenUrl, null, this.gridOptions.pagesize/*, postContent*/)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n if (listPagingResponse.status !== 'COMPLETED') {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details, listPagingResponse.status, listPagingResponse.statusText);\n return;\n }\n\n const children = this.getChildren(listPagingResponse.dataViewSet, e.rowData);\n e.rowData.children = children;\n\n if (children.length === 0) {\n delete e.rowData.children;\n }\n\n const isCubeView = this.lmListSpecUtilService.isCubeView(this.listSpec);\n let parentResourceId = e.rowData.resourceId;\n const parentRowId = e.rowData.id;\n let parentDimensionField;\n if (isCubeView) {\n e.rowData.dataViewSet = listPagingResponse.dataViewSet;\n parentResourceId = e.rowData.dataViewResId;\n parentDimensionField = e.rowData.fields['Dimension_cube_view_dimension'].value;\n }\n const treeListComponent = this;\n let parentId = 0;\n // Need to reset the ID, the IDS will need to be updated as new children are added\n this.resetID();\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n this.treeData.map(function callback(dataView: LMListDataView ) {\n dataView.id = treeListComponent.getID();\n dataView.parentId = parentId;\n\n if (!dataView.isTreeMoreLink) {\n const dataViewResId = isCubeView ? dataView.dataViewResId : dataView.resourceId;\n const dimensionField = isCubeView ? dataView.fields['Dimension_cube_view_dimension'].value : undefined;\n const currentRowId = dataView.id;\n if (dataViewResId === parentResourceId && parentDimensionField === dimensionField && parentRowId === currentRowId) {\n dataView.expanded = true;\n }\n }\n\n if (Array.isArray(dataView.children)) {\n parentId = dataView.id;\n dataView.children.map(callback);\n parentId = dataView.parentId;\n }\n });\n\n this.update(listPagingResponse, false, e.row);\n this.changeDetectorRef.markForCheck();\n\n // Call is performed in a timeout to make sure the changes to the\n // tree have occurred before attempting selection model for the mode.\n setTimeout(() => this.performSelectionForMode(e.row));\n });\n }\n }\n\n private performSelectionForMode(row: number) {\n // if single select use select vs activate row\n const singleSelect = this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode) === 'single';\n if (singleSelect) {\n this.setSelectedRows([ row ]);\n } else {\n this.activateRow(row);\n }\n }\n\n public onColumnClicked(columnDef: any, event: any, args: any) {\n const isTreeMoreLink = event.target.classList.contains('lm-more-link');\n const row = args[ 0 ].row;\n const cell = args[ 0 ].cell;\n const dataView = args[ 0 ].item;\n\n if (isTreeMoreLink) {\n const parentDataView = this.flatDataViewArray.find((dv) => dv.id === dataView.parentId);\n this.loadMoreRecords(dataView.pagingUrls, parentDataView);\n } else if (columnDef.displayField.cubeDrill ||\n columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl) {\n // if (this.gridOptions.selectable !== 'mixed')\n if (columnDef.displayField.cubeDrill) {\n // Cube selection is not mixed and row activated event is not triggered on click.datagrid\n // Save of the row activated in list state so the right row is activated on return from cube drill\n this.listState.activatedRow = row;\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.selectedRows = (this.listState.selectedRows.length === 0) ?\n [ this.listState.activatedRow ] : this.listState.selectedRows;\n }\n this.lmListEventService.uiLinkEvent({ columnDef, dataView, event });\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n public getSelectedTreeDataView(): LMListDataView {\n return this._selectedTreeDataView;\n }\n\n public cubeReload(updateColumnHeaders = false) {\n const reloadUrl = this.addCubeOverrideInfo(this.dataViewSet.pagingUrls.reloadPageUrl);\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.handleCancelableRequest();\n const subscriber = this.lmListGridPagingService.reloadPage2(reloadUrl)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.treeData = [];\n // TODO: use list state service methods to update\n this.listState.selectedRows = this.findAllLevel1RowIndices();\n this.postLoad(listPagingResponse);\n if (listPagingResponse.dataViewSet.data.length === 0) {\n // When data is available, the rowSelected event will update dimension column header.\n this.updateDimensionColumnHeader(listPagingResponse.dataViewSet.header);\n }\n if (updateColumnHeaders) {\n // Update the column headers, even if the dateset is empty.\n const overridePeriod = this.listState.cubeOverrides && this.listState.cubeOverrides.periodOverrides && this.listState.cubeOverrides.periodOverrides.hasOwnProperty('overridePeriods');\n this.updateColumnsAfterPeriodOverride(listPagingResponse.dataViewSet, !overridePeriod);\n }\n\n this.changeDetectorRef.markForCheck();\n } else {\n this.lmErrorUtilService.handleError(listPagingResponse.message, listPagingResponse.details,\n listPagingResponse.status, listPagingResponse.message);\n }\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.lmErrorUtilService.handleError(error);\n });\n\n this.subscriptions.push(subscriber);\n }\n\n private getPageSize(): number {\n return (this.gridOptions && this.gridOptions.pagesize) ? this.gridOptions.pagesize : this.listSpec.pageSize;\n }\n\n private getPostContent(): SelectPagingRequest {\n return this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n }\n\n private getUrlTemplate() {\n return urlTemplate.parse(this.listUrlInfo.initialDataUrl);\n }\n\n private getInitialUrl(): string {\n let url = this.getUrlTemplate().expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined });\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if (this.lmListSpecUtilService.isDashBoardContent(this.listSpec)) {\n let delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n // Add dimension for Dashboard panel cube views.\n if (this.listSpec.cubeOptions.dimensionName) {\n url = url + delimiter + 'dimensionName=' + this.listSpec.cubeOptions.dimensionName;\n delimiter = '&';\n }\n url = url + delimiter + 'dashboardView=true';\n } else {\n url = this.addCubeOverrideInfo(url);\n }\n\n }\n\n return url;\n }\n\n private refreshTreeList(): Observable {\n return new Observable(observer => {\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n if (this.listSpec.dependentList) {\n if (this.fromDataView === undefined) {\n observer.next(true);\n observer.complete();\n return; // safety\n }\n\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can respond appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already know it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n observer.next(true);\n observer.complete();\n return;\n }\n }\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(this.getInitialUrl(), this.filterCriteria, this.getPageSize(), this.getPostContent(), this.isManualLoading())\n .subscribe(async (listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n this.setEmptyMessage();\n\n if (listPagingResponse.status === 'COMPLETED') {\n listPagingResponse = await this.loadChildren(listPagingResponse);\n // this.loadChildren(listPagingResponse).then((r) => listPagingResponse = r);\n this.postLoad(listPagingResponse);\n\n if (listPagingResponse.searchDataView) {\n this.searchFormDataView = listPagingResponse.searchDataView;\n this.listState.searchFormDataView = this.searchFormDataView;\n }\n\n if (this.listState.cubeOverrides?.periodOverrides?.periodOverride) {\n this.updateColumnsAfterPeriodOverride(listPagingResponse.dataViewSet);\n }\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n this.dataLoaded(listPagingResponse);\n }\n\n observer.next(listPagingResponse.status === 'COMPLETED');\n observer.complete();\n this.changeDetectorRef.markForCheck();\n },\n error => {\n observer.next(false);\n observer.complete();\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n });\n }\n\n private async loadChildren(listPagingResponse: LMListPagingResponse): Promise {\n const self = this;\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n await Promise.all(listPagingResponse.dataViewSet.data.map(async function callback(dataView: LMListDataView) {\n if (!self.expandedRows.includes(dataView.cubeInfo ? dataView.dataViewResId : dataView.resourceId) &&\n (!dataView.isSubtotalView && !dataView.isSubtotalSummaryView)\n ) {\n dataView.children = [];\n } else if (!dataView.isSubtotalView && !dataView.isSubtotalSummaryView) {\n let childrenUrl = dataView.childrenUrl;\n if (self.lmListSpecUtilService.isCubeView(self.listSpec)) {\n const delimiter = (childrenUrl.indexOf('?') === -1) ? '?' : '&';\n childrenUrl = childrenUrl + delimiter + self.lmUrlUtilService.objectToCubeQueryString(dataView.cubeInfo);\n childrenUrl = self.addCubeOverrideInfo(childrenUrl);\n }\n\n if (dataView.isLeaf) {\n return;\n }\n\n dataView.children = await self.getChildData(childrenUrl);\n dataView.expanded = true;\n await Promise.all(dataView.children.map(callback));\n }\n }));\n\n return listPagingResponse;\n }\n\n private async getChildData(url: string): Promise> {\n return new Promise((resolve, reject) => {\n this.handleCancelableRequest();\n this.lmListGridPagingService\n .initialPageFiltered(url, undefined, this.getPageSize(), undefined)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n if (this.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n resolve(undefined);\n }\n // Continue to wait for the complete timing event\n return;\n }\n\n resolve(listPagingResponse.dataViewSet.data);\n },\n error => {\n reject(error);\n });\n });\n }\n\n private buildTreeList() {\n if (this.listSpec.dependentList) {\n if (this.fromDataView === undefined) {\n return; // safety\n }\n\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can responsd appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already now it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n return;\n }\n\n if (this.isManualLoading()) {\n this.listState.treeData = undefined;\n }\n }\n\n const loadFromPageState = this.allowsLoadingFromPageState() ? this.listState.treeData !== undefined : false;\n if (loadFromPageState) {\n this.loadFromState();\n this.initialBuildComplete = true;\n return;\n }\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n const url = this.getInitialUrl();\n\n // todo: fix in next sprint - current filter criteria should be applied\n // when fromDataviewChanges\n if (this.listSpec.dependentList) {\n this.m_filterCriteria = [];\n delete this.listState?.filterCriteria;\n }\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(url, this.filterCriteria, this.getPageSize(), this.getPostContent(), this.isManualLoading())\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n this.setEmptyMessage();\n\n if (listPagingResponse.status === 'COMPLETED') {\n // TODO: CAL - temporary workaround for https://jira.lawson.com/browse/LMRK-99282\n if (this.isManualLoading()) {\n listPagingResponse.dataViewSet.data = [];\n }\n\n this.postLoad(listPagingResponse);\n\n if (listPagingResponse.searchDataView) {\n this.searchFormDataView = listPagingResponse.searchDataView;\n this.listState.searchFormDataView = this.searchFormDataView;\n }\n\n if (this.listState.cubeOverrides?.periodOverrides?.periodOverride) {\n this.updateColumnsAfterPeriodOverride(listPagingResponse.dataViewSet);\n }\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n this.dataLoaded(listPagingResponse);\n }\n\n this.initialBuildComplete = true;\n this.changeDetectorRef.markForCheck();\n },\n error => {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n\n private formatDataViewsForTree(listPagingResponse: LMListPagingResponse) {\n const dataViewSet = listPagingResponse.dataViewSet;\n const data = dataViewSet.data;\n let depth = 1;\n const parentId = 0;\n this.treeData = [];\n\n if (data.length === 0) {\n return;\n }\n\n data.forEach((dataView: LMDataView, index) => {\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n // todo khollenbeck ppatton how to deal with a childrenUrl being undefined with new listSpec.childrenUrl template?\n\n\n const treeDataView: LMListDataView = Object.assign({\n depth,\n parentId,\n children: this.hasChildren(dataView),\n pagingInfo: dataViewSet.pagingInfo\n }, dataView);\n\n if (treeDataView.children === undefined) {\n delete treeDataView.children;\n }\n\n Object.keys(treeDataView.fields)\n .filter(key => treeDataView.fields.hasOwnProperty(key))\n .forEach(key => treeDataView[key] = treeDataView.fields[key].value);\n\n // for (const key in treeDataView.fields) {\n // if (!treeDataView.fields.hasOwnProperty(key)) {\n // continue;\n // }\n // treeDataView[key] = treeDataView.fields[key].value;\n // }\n\n // SET ID\n treeDataView.id = this.getID();\n\n if (treeDataView.dataViewSet && depth <= this.showLevels) {\n depth++;\n // treeDataView.expanded = true;\n treeDataView.children = this.getChildren(treeDataView.dataViewSet, treeDataView);\n }\n\n this.treeData.push(treeDataView);\n\n if (index + 1 === data.length && (dataViewSet.pagingInfo && dataViewSet.pagingInfo.hasNext)) {\n this.treeData.push({\n depth: 1,\n isTreeMoreLink: true,\n pagingUrls: dataViewSet.pagingUrls,\n id: this.getID(),\n cubeInfo: this.lmListSpecUtilService.isCubeView(this.listSpec) ? { cubeMediator: 'cubeList' } : undefined\n });\n }\n\n // reset depth\n depth = 1;\n });\n\n if (this.listState.activatedRow && this.listState.activatedRow > -1) {\n const flatDataViewSet = this.getDataViewSet();\n if (this.listState.activatedRow > flatDataViewSet.data.length - 1) {\n this.listState.activatedRow = 0;\n }\n } else {\n this.listState.activatedRow = 0;\n }\n }\n\n private resetID(): void {\n this.id = 0;\n }\n\n private getID(): number {\n this.id = this.id + 1;\n return this.id;\n }\n\n public setSelectListFocus() {\n if (!this.lmContextService.useSingleSelectList() || !this.lmListSpecUtilService.isSelectList(this.listSpec)) {\n return;\n }\n\n const selectedRow = this.getSelectedRow();\n if (selectedRow === -1) {\n return;\n }\n\n this.sohoDataGridComponent.setActiveCell(selectedRow, 0);\n }\n\n private loadMoreRecords(pagingUrls: LMListPagingUrls, parentDataView: LMDataView) {\n // console.log('listtree-loadMoreRecords: ' + this.listSpec.busListSpec.name);\n let url = pagingUrls.nextPageUrl;\n const isCubeView = this.lmListSpecUtilService.isCubeView(this.listSpec);\n if ( isCubeView ) {\n // There are tree displays in dashboard view, so there may be paging.\n // But we do not want the dashboard flag for paging\n if (!this.lmListSpecUtilService.isDashBoardContent(this.listSpec)) {\n url = this.addCubeOverrideInfo(url);\n }\n }\n\n if (parentDataView) {\n // Add the dataview cube info to the url. This will give the current dimension where we are paging.\n const delimiter = (url.indexOf('?') === -1) ? '?' : '&';\n\n if (isCubeView) {\n url = url + delimiter + 'parent=' + parentDataView.dataViewResId + '&' + this.lmUrlUtilService.objectToCubeQueryString(parentDataView.cubeInfo);\n } else {\n url = url + delimiter + 'parent=' + parentDataView.resourceId;\n }\n }\n\n const pageSize = (this.gridOptions && this.gridOptions.pagesize) ? this.gridOptions.pagesize : this.listSpec.pageSize;\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n\n this.pagingSubscription = this.lmListGridPagingService\n .initialPageFiltered(url, this.filterCriteria, pageSize, postContent)\n .subscribe((listPagingResponse: LMListPagingResponse) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.status === AppConstants.STATUS_COMPLETED) {\n\n // todo kris can any of this be moved to a service? lm-list-tree.service.ts?\n\n // If parentDataView add new data to child\n // Else add new data to root\n if (parentDataView) {\n let parentResourceId = parentDataView.resourceId;\n if (isCubeView) {\n // Cube viewer uses dataviewSet to chart data.\n parentDataView.dataViewSet.data = parentDataView.dataViewSet.data.concat(listPagingResponse.dataViewSet.data);\n parentResourceId = parentDataView.dataViewResId;\n }\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n this.treeData.map(function callback(dataView: LMListDataView) {\n const resourceId = isCubeView ? dataView.dataViewResId : dataView.resourceId;\n if (parentResourceId.includes(resourceId)) {\n\n // Copy moreLink from array\n const moreLink = dataView.children[dataView.children.length - 1];\n moreLink.pagingUrls = listPagingResponse.dataViewSet.pagingUrls;\n\n // Remove more link from array\n dataView.children.splice(-1, 1);\n\n // Format new data for tree list\n const newData = listPagingResponse.dataViewSet.data.map((d: LMListDataView, index) => {\n d.depth = dataView.children[0].depth;\n d.id = dataView.children[dataView.children.length - 1].id + index;\n d.parentId = parentDataView.id;\n // Add empty child array. If this isn't added then the datagrid control will not display the\n // expand collapse icon next to the data.\n if (!d.isLeaf) {\n d.children = [];\n }\n\n return d;\n });\n\n // Update array inserting new data into array, re-add moreLink\n if (listPagingResponse.dataViewSet.pagingInfo.hasNext) {\n dataView.children = dataView.children.concat(newData, moreLink);\n } else {\n dataView.children = dataView.children.concat(newData);\n }\n }\n if (Array.isArray(dataView.children) && dataView.children.length !== 0) {\n dataView.children.map(callback);\n }\n });\n } else {\n // Copy moreLink from array\n // Update paging urls\n const moreLink = this.treeData[this.treeData.length - 1];\n moreLink.pagingUrls = listPagingResponse.dataViewSet.pagingUrls;\n\n // Remove more link from array\n this.treeData.splice(-1, 1);\n\n // Get id of last item\n const id = this.treeData[this.treeData.length - 1].id;\n\n // Format new data for tree list\n const newData = listPagingResponse.dataViewSet.data.map((d: LMListDataView, index) => {\n d.depth = 1;\n d.id = id + (index + 1);\n d.parentId = 0;\n d.children = [];\n return d;\n });\n\n // Update array inserting new data into array, re-add moreLink\n if (listPagingResponse.dataViewSet.pagingInfo.hasNext) {\n this.treeData = this.treeData.concat(newData, moreLink);\n } else {\n this.treeData = this.treeData.concat(newData);\n }\n\n if (isCubeView) {\n // Cube Viewer uses DataViewSet in charting.\n this.dataViewSet.data = this.dataViewSet.data.concat(listPagingResponse.dataViewSet.data);\n }\n }\n\n this.update(listPagingResponse, false);\n this.changeDetectorRef.markForCheck();\n // Call is performed in a timeout to make sure the changes to the\n // tree have occurred before attempting to set an active row\n setTimeout(() => this.performSelectionForMode(this.listState.activatedRow));\n }\n });\n }\n\n private disableComponent() {\n this.treeData = [];\n\n if (this.sohoDataGridComponent) {\n this.sohoDataGridComponent.removeSelected();\n }\n\n this.setEmptyMessage();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private postLoad(listPagingResponse: LMListPagingResponse) {\n\n this.sohoDataGridComponent.unSelectAllRows();\n\n if (this.listState.filterCriteria && this.listState.filterCriteria.length > 0) {\n this.setNoDataMessage(true);\n } else {\n this.setEmptyMessage();\n }\n\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n this.maxLevels = listPagingResponse.dataViewSet.maxLevels;\n this.showLevels = listPagingResponse.dataViewSet.showLevels;\n\n if (this.formatColumnHeaderMessageRules) {\n this.updateColumnLabels(this.listSpec, this.dataViewSet);\n }\n\n this.updateFilterBar();\n\n this.updateColumnVisibility(this.listSpec, this.dataViewSet);\n this.formatDataViewsForTree(listPagingResponse);\n this.update(listPagingResponse, true);\n }\n\n private columnHeadersHaveMessageRules(): boolean {\n const headersWithMessageRules = this.gridOptions.columns.filter((column: any) => column.displayField && column.displayField.label && column.displayField.label.variables);\n\n let groupHeadersWithMessageRules = [];\n if (this.gridOptions.columnGroups) {\n groupHeadersWithMessageRules = this.gridOptions.columnGroups.filter((columnGroup: SohoDataGridColumnGroup) => columnGroup.name && columnGroup.name.includes('{0}'));\n }\n\n return headersWithMessageRules.length > 0 || groupHeadersWithMessageRules.length > 0;\n }\n\n private dataLoaded(pagingResponse: LMListPagingResponse) {\n if (!this.sohoDataGridComponent) {\n return;\n }\n\n /**\n * Wait for data to be rendered into the datagrid by calling this code\n * in the next angular tick().\n */\n setTimeout(() => {\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n this.cubeDataLoadedEvent(pagingResponse);\n } else {\n this.dataLoadedEvent(pagingResponse);\n }\n });\n }\n\n private dataLoadedEvent(pagingResponse: LMListPagingResponse) {\n this.lmListEventService.dataLoadedEvent(pagingResponse);\n }\n\n private cubeDataLoadedEvent(pagingResponse: LMListPagingResponse) {\n this.lmListEventService.cubeDataLoadedEvent(pagingResponse);\n }\n\n private getChildren(dataViewSet: LMDataViewSet, parentDataView: LMListDataView): Array {\n const children = [];\n const data = dataViewSet.data;\n let depth = parentDataView.depth + 1;\n\n for (let i = 0, l = data.length; i < l; i++) {\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: dataView.resourceId });\n\n // todo khollenbeck ppatton how to deal with a childrenUrl being undefined with new listSpec.childrenUrl template?\n const currentData: LMDataView = data[i];\n const treeDataView: LMListDataView = Object.assign({\n depth,\n parentId: parentDataView.id,\n children: this.hasChildren(currentData)\n }, currentData);\n\n if (treeDataView.children === undefined) {\n delete treeDataView.children;\n }\n\n for (const key in treeDataView.fields) {\n if (!treeDataView.fields.hasOwnProperty(key)) {\n continue;\n }\n\n treeDataView[key] = treeDataView.fields[key].value;\n }\n\n // SET ID\n treeDataView.id = this.getID();\n\n if (treeDataView.dataViewSet && depth <= this.showLevels) {\n depth++;\n // treeDataView.expanded = true;\n treeDataView.children = this.getChildren(treeDataView.dataViewSet, treeDataView);\n }\n\n children.push(treeDataView);\n\n if (i + 1 === l && dataViewSet.pagingInfo.hasNext) {\n children.push({\n depth,\n isTreeMoreLink: true,\n pagingUrls: dataViewSet.pagingUrls,\n id: treeDataView.id + 1,\n cubeInfo: this.lmListSpecUtilService.isCubeView(this.listSpec) ? { cubeMediator: 'cubeList' } : undefined\n });\n }\n }\n\n return children;\n }\n\n private setSelectedTreeDataView(dataView: LMListDataView) {\n if (dataView && !dataView.isTreeMoreLink) {\n this._selectedTreeDataView = dataView;\n } else {\n this._selectedTreeDataView = null;\n }\n }\n\n private update(listPagingResponse: LMListPagingResponse, fireDataLoadedMessage: boolean, activeRow?: number) {\n if (activeRow !== undefined) {\n this.listState.activatedRow = activeRow;\n }\n\n this.treeData = [].concat(this.treeData);\n\n this.listState.dataViewSet = this.dataViewSet;\n\n this.listState.treeData = this.treeData.length > 0 ? Flatted.stringify(this.treeData) : undefined;\n\n if (listPagingResponse.searchDataView) {\n this.searchFormDataView = listPagingResponse.searchDataView;\n this.listState.searchFormDataView = this.searchFormDataView;\n }\n\n if (fireDataLoadedMessage) {\n this.dataLoaded(listPagingResponse);\n }\n\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n this.unSelectAllRows();\n } else {\n // change to how row selection works. should activate row when\n // collapsing/uncollapsing - Phillip 2/5/2020\n this.performSelectionForMode(activeRow);\n }\n }\n\n /**\n * Flattens dataViewSet for Hierarchy and Tree lists\n * @param data\n */\n private buildFlatDataViewArray(): void {\n // Reset\n this.flatDataViewArray = [];\n\n // Create New\n const flatDataViewArray = [];\n\n // Push root or multi roots\n this.treeData.forEach((d) => {\n flatDataViewArray.push(d);\n if (d.children) {\n flatten(d.children);\n }\n });\n\n /**\n * Recurse children\n * @param children\n */\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n function flatten(data?: Array) {\n data.forEach((d) => {\n flatDataViewArray.push(d);\n\n if (d.children && d.children.length > 0) {\n flatten(d.children);\n }\n });\n }\n\n // todo change to using arrow function\n // const flatten = (data?: Array) => {\n // data.forEach((d) => {\n // flatDataViewArray.push(d);\n //\n // if (d.children && d.children.length > 0) {\n // flatten(d.children);\n // }\n // });\n // };\n\n // Set new array\n this.flatDataViewArray = flatDataViewArray;\n }\n\n private loadFromState() {\n if (this.dataViewSet === undefined && this.listState.dataViewSet !== undefined) {\n this.dataViewSet = this.listState.dataViewSet;\n }\n\n if (this.listState.treeData) {\n this.treeData = Flatted.parse(this.listState.treeData);\n this.remove_selectedFlag(this.treeData);\n this.refresh().subscribe();\n }\n }\n\n private addCubeOverrideInfo(url: string): string {\n if (this.listState.cubeOverrides) {\n const delimiter = (url.indexOf('?') === -1) ? '?' : '&';\n const params = this.lmUrlUtilService.cubeOverridesToQueryString(this.listState.cubeOverrides, delimiter);\n url = url + params;\n }\n return url;\n }\n\n public cubeSelectRows(rowsToSelect: Array, scrollIntoView?: boolean) {\n this.setSelectedRows(rowsToSelect, scrollIntoView);\n }\n public findAllLevel1RowIndices(): Array {\n\n const treeRows: Array = this.getLMListDataViews(this.treeData);\n\n // No chart for cubes that has more data link.\n if (treeRows.length !== this.treeData.length) {\n return [];\n }\n\n const rowIndices: Array = [];\n treeRows.filter((m, index) => {\n if (m.depth === 1) {\n rowIndices.push(index);\n }\n });\n\n return rowIndices;\n }\n\n private getLMListDataViews(treeData: Array): Array {\n let treeRows: Array = [];\n // typescript does not like filter. Cant figure out the type from union types.\n // treeRows = this.treeData.filter(m => this.isLMListDataView(m));\n treeData.forEach(m => {\n if (this.isLMListDataView(m)) {\n treeRows = treeRows.concat(m);\n }\n });\n return treeRows;\n }\n\n private isLMListDataView(treeRow: LMListDataView | LMListTreeMoreLink): treeRow is LMListDataView {\n return treeRow.isTreeMoreLink === undefined;\n }\n\n private findParentNode(rowDataView: LMListDataView, treeRows: Array): LMListDataView {\n if (rowDataView.parentId === 0) {\n return null; // Root\n }\n // TODO: May be I can use findIndex with a callback function that is recursive.\n let parentDataView = null;\n treeRows.some( (treeRow) => {\n if (treeRow.id === rowDataView.parentId) {\n parentDataView = treeRow;\n return true;\n }\n if (Array.isArray(treeRow.children) && treeRow.children.length > 0) {\n parentDataView = this.findParentNode(rowDataView, this.getLMListDataViews(treeRow.children));\n if (parentDataView !== null) {\n return true;\n }\n }\n });\n\n return parentDataView;\n }\n\n private updateDimensionColumnHeader(rowDataView: LMListDataView) {\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n if (rowDataView?.isTreeMoreLink) {\n return;\n }\n const gridColumns: ListGridColumn[] = this.sohoDataGridComponent.getColumns();\n if (gridColumns) {\n const dimHeader = rowDataView.fields['Dimension_cube_view_dimension'].dimFieldLabel;\n gridColumns[0].name = dimHeader;\n this.sohoDataGridComponent.updateColumns(gridColumns, this.sohoDataGridComponent.getColumnGroups());\n }\n }\n }\n\n private updateColumnsAfterPeriodOverride(dataViewSet: LMDataViewSet, reset = false) {\n // new column headers will have the new column or group headers after a period override.\n // Suppose the period is changed from 12/1/2018 to 12/1/2015, the column header will be changed from Dec 2018 to Dec 2015.\n // And addtlFilter string will also reflect a change in filter field values.\n // 4/7/2021: Changed it to return the entire set of display fields.\n // Changing period from 6/1/2021 to 7/1/2021 when monthly period view is selected, will return 31 columns instead of 30.\n // Or changing it to 2/1/2021 will return 28 columns. This requires the entire set of new display fields are returned after override.\n // Generate the new grid columns, grid column groups and translate the labels before updateColumns.\n if (this.lmListSpecUtilService.isCubeView(this.listSpec) && dataViewSet.newColumnHeader && dataViewSet.newColumnHeader.length > 0) {\n // Build the new columns and column groups based on listSpecClone\n const listSpecClone: LMListSpec = JSON.parse(JSON.stringify(this.listSpec));\n listSpecClone.busListSpec.displayFields = dataViewSet.newColumnHeader;\n this.buildAndUpdateColumns(listSpecClone, dataViewSet);\n } else if (reset) {\n // Build the new columns and column groups based on listSpec\n this.buildAndUpdateColumns(this.listSpec, dataViewSet);\n }\n }\n\n private buildAndUpdateColumns(busListSpecParam: LMListSpec, dataViewSet: LMDataViewSet) {\n const gridColumns = this.lmListGridBuilderService.buildColumnsAfterPeriodOverride(this.listUrlInfo, busListSpecParam, this.listState, this.listPersonalization);\n const gridColumnGroups = this.lmListGridBuilderService.buildColumnGroups(busListSpecParam, false);\n gridColumns\n .map(column => column)\n .forEach((column: ListGridColumn) => {\n if (column.isActionable) {\n column.click = (event, args) => this.onColumnClicked(column, event, args);\n }\n });\n this.lmListUtilService.updateColumnLabels(busListSpecParam, dataViewSet, gridColumns, gridColumnGroups);\n this.sohoDataGridComponent.updateColumns(gridColumns, gridColumnGroups);\n }\n\n private allowsLoadingFromPageState() {\n if (this.lmContextService.disablePageState()) {\n return false;\n }\n\n if (this.listState.cubeOverrides?.periodView\n || this.listState.cubeOverrides?.pivotView\n || this.listState.cubeOverrides?.columnView\n || this.listState.cubeOverrides?.periodOverrides?.overridePeriods) {\n if (this.listState.cubeOverrides?.cubeDrillNavigation) {\n this.listState.cubeOverrides.cubeDrillNavigation = false;\n return true;\n }\n return false;\n }\n\n return true;\n }\n\n /**\n * treedata may have an _selected property set. This property is being set\n * internally in datagrid.js. When we store that datagrid data in local storage\n * we end up storing that _select flag along with the data. This causes a\n * strange \"ghost\" selection when loading that data back into the tree grid.\n *\n * The fix is to recurse the tree data and remove any _selected flags.\n */\n private remove_selectedFlag(treeData: Array) {\n const removeFlag = (dataView: LMListDataView) => {\n // @ts-ignore get around this private variable not in the typescript definition\n delete dataView._selected;\n\n if (Array.isArray(dataView.children) && dataView.children?.length !== 0) {\n dataView.children.forEach(removeFlag);\n }\n };\n\n treeData.forEach(removeFlag);\n }\n\n /**\n * +- Icon is displayed when this is true\n * @param dataView\n * @private\n */\n private hasChildren(dataView: LMDataView) {\n const isTotalingRow = dataView.isSubtotalView || dataView.isSubtotalSummaryView;\n const hasChildren = (dataView.dataViewSet !== undefined || dataView.childrenUrl !== undefined) && !isTotalingRow;\n\n return hasChildren ? [] : isTotalingRow ? undefined : null;\n }\n}\n","
        \n
        \n
        \n
        \n","import {\n AfterViewChecked,\n AfterViewInit, ChangeDetectorRef,\n Component,\n ElementRef, EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit, Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoListViewComponent\n} from 'ids-enterprise-ng';\nimport { Observable, of, Subject, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\n\nimport {\n LMListContentFilterListUtilService,\n LMListEventService,\n LMListGridPagingService,\n LMListSpecUtilService,\n LMListUtilService\n} from './services';\nimport {\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService\n} from '@services/index';\nimport { LMListContentBaseComponent } from './lm-list-content-base.component';\nimport { LMListDragDropEvent } from './lm-list.component';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { BreakpointChangeService } from '@drawer/breakpoint-change.service';\n\n@Component({\n selector: 'lm-list-view',\n templateUrl: 'lm-list-view.component.html',\n styleUrls: [ './lm-list-view.component.scss' ],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMListViewComponent extends LMListContentBaseComponent implements LMListContentInterface, OnDestroy, OnInit, AfterViewInit, AfterViewChecked {\n @HostBinding('attr.id') get attrId() {\n return this.elementId;\n }\n // @HostBinding('attr.data-automation-id') public listViewAutomationId: string;\n @HostBinding('style.height') get hostHeight() {\n if (this.implementsCartView) {\n // this.elementRef.nativeElement.\n return (window.innerHeight - this.elementRef.nativeElement.getBoundingClientRect().top - 20) + 'px';\n }\n }\n\n @HostBinding('class.is-single-select') get isSingleSelectClass() {\n return this.selectionMode === 'single';\n }\n\n @HostBinding('class.has-button-row') get hasButtonRowClass() {\n return this.listSpec.busListSpec.displayFields[0]?.buttonRow;\n }\n\n @HostBinding('class.no-button-row') get noButtonRowClass() {\n return !this.listSpec.busListSpec.displayFields[0]?.buttonRow;\n }\n\n /**\n * View child reference to the soho busy indicator - use for paging.\n */\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) sohoBusyIndicator: SohoBusyIndicatorDirective;\n\n /**\n * The viewChild reference to the soho-listview.\n */\n @ViewChild('SohoListView') sohoListView: SohoListViewComponent;\n @ViewChild('modalPlaceholder', { read: ViewContainerRef, static: true }) modalPlaceholder: ViewContainerRef;\n\n @Input() set sortOrder(sortOrder: LMListSortOrder) {\n this.m_sortOrder = sortOrder;\n this.sortPage();\n }\n\n get sortOrder(): LMListSortOrder {\n return this.m_sortOrder;\n }\n\n @Input() implementsDragAndDrop = false;\n\n /**\n * Only load data if filterCriteria or filterListFilterCriteria are set.\n */\n @Input() set hasFilterList(hasFilterList: boolean) {\n this.m_hasFilterList = hasFilterList;\n }\n\n get hasFilterList(): boolean {\n return this.m_hasFilterList;\n }\n\n @Output() toolbarButtonEvent = new EventEmitter();\n\n public hasNextPage = false;\n public hasPreviousPage = false;\n public hasFirstPage = false;\n public hasLastPage = false;\n public pageSize = 10;\n public pagerIdAttributes: SohoAttributesArray;\n public firstPageButtonTooltip;\n public previousPageButtonTooltip;\n public nextPageButtonTooltip;\n public lastPageButtonTooltip;\n public showPageSizeSelector = false;\n public selectionInProgress = false;\n public testVersion1: boolean;\n public uiLoadingIndicatorTimeout = 0;\n\n public listViewAutomationId: string;\n public sohoListViewAutomationId: string;\n\n public elementId: string;\n public recordCount = 0;\n public dataViewSet: LMDataViewSet;\n\n public dragDropSubscription: Subscription;\n public isFilterList: boolean;\n public selectionMode: SohoListViewSelectable;\n public showAsCard: boolean;\n public showAsMingleWidget: boolean;\n public initialBuildComplete = false;\n public hidePagerBar = false;\n public showEmptyMessage: boolean;\n public onMobile = false;\n public showCollapseButton$: Observable;\n\n private allowMultiSelections = false;\n private m_hasFilterList = false;\n private resetSelectionFlag = false;\n private m_sortOrder: LMListSortOrder;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n private fFromDataViewChanged = false;\n private fFilterListCriteriaChanged = false;\n public implementsCartView = false;\n\n constructor(\n protected lmContextService: LMContextService,\n protected lmLoggerService: LMLoggerService,\n protected lmThemeService: LMThemeService,\n protected lmFormatUtilService: LMFormatUtilService,\n private changeDetectorRef: ChangeDetectorRef,\n private elementRef: ElementRef,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmListContentFilterListUtilService: LMListContentFilterListUtilService,\n private lmListEventService: LMListEventService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmListUtilService: LMListUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n private breakpointChangeService: BreakpointChangeService\n ) {\n super(lmLoggerService, lmThemeService, lmFormatUtilService);\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.onMobile = this.lmContextService.isMobileDevice();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n\n }\n\n ngOnInit() {\n this.lmLoggerService.time({ id: '>> Total ListView ' + this.instanceId });\n this.clearEmptyMessage();\n this.validateInitialInputs();\n this.initialize();\n\n // -------------------------------------------------------------------------\n // If not dependentList then it can be build here. If it is a dependent\n // list then wait until fromDataViewChanged() function messaged.\n // -------------------------------------------------------------------------\n if (!this.listSpec.dependentList) {\n this.build();\n }\n }\n\n ngAfterViewInit() {\n if (this.hasFilterList && this.implementsDragAndDrop) {\n this.dragDropSubscription = this.lmListContentFilterListUtilService.cardDropEmitted$.subscribe(dropInfo => {\n this.lmListEventService.listDragDropEvent(new LMListDragDropEvent(this, dropInfo.row, dropInfo.filterRow));\n });\n }\n\n this.implementsCartView = this.elementRef.nativeElement.closest('.implements-cart-view');\n }\n\n ngAfterViewChecked(): void {\n if (this.componentDestroyed) {\n return;\n }\n\n if (this.listSpec.dependentList && (this.fFromDataViewChanged || this.fFilterListCriteriaChanged)) {\n this.fFromDataViewChanged = false;\n this.fFilterListCriteriaChanged = false;\n setTimeout(() => this.build());\n }\n\n if (!this.resetSelectionFlag) {\n return;\n }\n\n this.resetSelectionFlag = false;\n setTimeout(() => {\n let selectedRow = -1;\n const activatedRow = this.listState ? this.listState.activatedRow : -1;\n\n if (this.selectionMode !== 'mixed') {\n if (this.listState\n && this.listState.selectedRows\n && this.listState.selectedRows.length > 0) {\n selectedRow = this.listState.selectedRows[0];\n }\n }\n\n this.resetSelection(selectedRow, activatedRow);\n });\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n this.cancelOutstandingPagingRequest();\n\n if (this.dragDropSubscription && !this.dragDropSubscription.closed) {\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnDestroy(): dragDropSubscription is still open, unsubscribing...' ]);\n this.dragDropSubscription.unsubscribe();\n }\n }\n\n protected loadManualData(): void {\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n this.build();\n }\n }\n\n protected onFormButtonClicked(columnDef: ListGridColumn, dataView: LMDataView, row: any, cell: any, navigationParams: any, event: any): void {\n // Handle click of the no data message button\n if (columnDef.displayField.linkNavigation ||\n columnDef.displayField.navigation ||\n columnDef.displayField.httpUrl ||\n navigationParams\n ) {\n const uiLinkEvent: LMUILinkEvent = { columnDef, dataView, event, navigationParams, options: { fromNoDataMessageFormButton: true } };\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n } else if (columnDef.displayField.type === AppConstants.FORMBUTTON ||\n columnDef.displayField.type === AppConstants.SUBFORM ||\n columnDef.displayField.type === AppConstants.FORMREFERENCE ||\n columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.lmListEventService.formButtonEvent({ columnDef, dataView, row, cell, event });\n }\n }\n\n protected fromDataViewChanged() {\n if (this.listSpec.dependentList && !this.componentDestroyed) {\n this.fFromDataViewChanged = true;\n }\n }\n\n protected inSelectedListEditModeChanged(): void {\n if (!this.sohoListView) {\n return;\n }\n\n let row: number;\n const fromSelectionMode = this.selectionMode;\n const toSelectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode, this.allowMultiSelections) as SohoListViewSelectable;;\n if (toSelectionMode !== fromSelectionMode) {\n this.selectionMode = toSelectionMode;\n\n const showSelectionCheckBox = toSelectionMode === 'mixed';\n const selectedRows = this.getSelectedRows();\n const selectedRow = selectedRows?.length > 0 ? selectedRows[ 0 ] : -1;\n row = (showSelectionCheckBox) ? selectedRow : this.activatedRow();\n this.unSelectAllRows();\n\n if (showSelectionCheckBox) {\n // Going from single select to multiple select\n this.sohoListView.disableItemDeactivation = true;\n this.listState.activatedRow = row;\n } else {\n // Going from multiple select to single select\n this.sohoListView.disableItemDeactivation = false;\n this.listState.selectedRows = [ row ];\n }\n\n // Calling change detection so the changes to the listview\n // are displayed before attempting to set focus within.\n this.resetSelectionFlag = true;\n this.sohoListView.updateRequired = true;\n this.changeDetectorRef.markForCheck();\n } else {\n if (this.dataViewSet.data.length === 0) {\n return;\n }\n\n if (!this.allowMultiSelections) {\n // Going from single select to single select\n if (this.getSelectedRow() === -1) {\n this.setSelectedRows([ 0 ] );\n }\n setTimeout(() => this.elementRef.nativeElement.getElementsByClassName('is-selected')[0].focus());\n } else {\n // Going from multiple select to multiple select\n if (this.activatedRow() === -1) {\n this.activateRow(0);\n }\n setTimeout(() => this.elementRef.nativeElement.getElementsByClassName('is-activated')[0].focus());\n }\n }\n }\n\n public setSelectListFocus() {\n if (!this.lmContextService.useSingleSelectList() || !this.lmListSpecUtilService.isSelectList(this.listSpec)) {\n return;\n }\n\n if (this.selectionMode === 'mixed' && this.activatedRow() !== -1) {\n const activatedRow = this.activatedRow();\n this.elementRef.nativeElement.getElementsByClassName('is-activated')[0].focus();\n this.sohoListView.activateItem(activatedRow);\n } else if (this.selectionMode === 'single' && this.getSelectedRow() !== -1) {\n const selectedRow = this.getSelectedRow();\n this.elementRef.nativeElement.getElementsByClassName('is-selected')[0].focus();\n this.sohoListView.select(selectedRow);\n }\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n this.lmListEventService.toolbarButtonEvent(toolbarButtonEvent);\n }\n\n public onUILinkEvent(uiLinkEvent: LMUILinkEvent) {\n this.lmListEventService.uiLinkEvent(uiLinkEvent);\n }\n\n public build() {\n this.lmLoggerService.log([ this, this.instanceId, 'build()' ]);\n this.initialPage();\n this.initialBuildComplete = true;\n }\n\n protected filterCriteriaChanged() {\n if (this.filterCriteria && this.initialBuildComplete) {\n this.filterPage();\n } else if (this.initialBuildComplete && this.filterCriteria === null) {\n // a search filter has been cleared\n this.initialPage(true);\n }\n }\n\n protected filterListCriteriaChanged() {\n if (this.hasFilterList && this.initialBuildComplete) {\n this.fFilterListCriteriaChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n public initialize() {\n this.listViewAutomationId = 'lm-' + this.listSpec?.busListSpec?.automationId + '-listview';\n // this.sohoListViewAutomationId = 'lm-' + this.listSpec?.busListSpec?.automationId + '-soholistview';\n\n this.pagerIdAttributes = [\n { name: 'id', value: this.listSpec.busListSpec.id + '_pager' },\n { name: 'data-automation-id', value: 'lm-' + this.listSpec.busListSpec.automationId + '-pager' }\n ];\n\n this.hidePagerBar = this._hidePagerBar();\n this.pageSizes = this.lmListUtilService.getPageSizesArray(this.listSpec);\n this.pageSize = this.lmListUtilService.getPageSize(this.listSpec, this.listPersonalization); // || 10;\n // this.showPageSizeSelector = this.lmListUtilService.showPageSizeChooser(this.listSpec);\n\n if (this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V3) {\n // ----------------------------------------------------------------------------\n // should have used busListSpec.id all along, but for backward compatability\n // have to keep busListSpec.name for backward compatability\n // ----------------------------------------------------------------------------\n this.elementId = this.listSpec.busListSpec.id + '_listview';\n } else {\n this.elementId = this.listSpec.busListSpec.name + '_listview';\n }\n\n this.allowMultiSelections = this.selectRequestData?.allowMultiSelections || false;\n this.selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, this.inSelectListEditMode, this.allowMultiSelections) as SohoListViewSelectable;\n this.isFilterList = this.lmListSpecUtilService.isFilterList(this.listSpec);\n this.showAsMingleWidget = this.listSpec.showAsMingleWidget;\n\n const isCardViewWithDetailSections = this.lmListSpecUtilService.isCardViewWithDetailSections(this.listSpec);\n if (!this.showAsMingleWidget && !this.isFilterList\n && this.lmListSpecUtilService.isCardViewOnly(this.listSpec)\n && !isCardViewWithDetailSections\n && !this.lmListSpecUtilService.isDashBoardContent(this.listSpec)) {\n this.showAsCard = true;\n } else {\n this.showAsCard = false;\n }\n\n this.showCollapseButton$ = this.breakpointChangeService.isPhoneView$.pipe(\n map((isPhoneView: boolean) => isPhoneView ? false : isCardViewWithDetailSections)\n );\n }\n\n public getSelectedRows(): Array {\n if (this.sohoListView) {\n const selectedItems = >this.sohoListView.getSelectedItems;\n if (selectedItems.length !== 0) {\n return selectedItems;\n }\n }\n\n return [];\n }\n\n public setSelectedRows(rows: Array, scrollIntoView = true): void {\n if (!this.sohoListView) {\n return; // safety\n }\n\n if (rows[0] === -1) {\n return;\n }\n\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return; // safety\n }\n\n // ---------------------------------------------------------------------\n // find the diff and only select rows not already selected. Otherwise\n // this.sohoListView.select seems to toggle current selected rows off\n // when called a 2nd time.\n // ---------------------------------------------------------------------\n const currentSelectedRows: number[] = this.getSelectedRows();\n const newlySelectedRows: number[] = rows.filter(row => !currentSelectedRows.includes(row));\n this.sohoListView.select(newlySelectedRows);\n\n if (scrollIntoView) {\n // todo: ppatton put into runOutsideAngular?\n // Focus on 1st selected row\n const selectedElements = this.elementRef.nativeElement.getElementsByClassName('is-selected');\n if (this.sohoListView && selectedElements.length) {\n const selectedElement = selectedElements[0];\n this.lmCommonUtilService.scrollIntoView(selectedElement);\n }\n }\n }\n\n getSelectedRow(): number {\n if (this.sohoListView) {\n const selectedRows: SohoListViewItemReference[] = this.sohoListView.getSelectedItems;\n if (selectedRows && selectedRows.length === 1) {\n return selectedRows[ 0 ];\n }\n }\n\n return -1;\n }\n\n public activateRow(row: number, scrollIntoView = true): void {\n if (this.listSpec.busListSpec.selection === 'disabled') {\n return; // safety\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'activateRow()' ]);\n\n if (this.sohoListView) {\n if (row === -1) {\n // need to send my own event, the soho grid does NOT fire\n // if the dataset is empty\n const listRowDeActivatedEvent: LMListRowActivatedEvent = {\n row: -1,\n item: null,\n fromDataView: this.fromDataView\n };\n this.lmListEventService.listRowDeactivatedEvent(listRowDeActivatedEvent);\n } else {\n this.sohoListView.activateItem(row);\n\n if (scrollIntoView) {\n // Focus on activated row\n const selectedElements = this.elementRef.nativeElement.getElementsByClassName('is-activated');\n if (this.sohoListView && selectedElements.length) {\n const selectedElement = selectedElements[0];\n this.lmCommonUtilService.scrollIntoView(selectedElement);\n }\n }\n }\n\n this.lmLoggerService.timeEnd('LMListView.end ' + this.instanceId);\n }\n }\n\n unSelectAllRows(): void {\n if (this.sohoListView) {\n this.sohoListView.clearAllSelected();\n }\n }\n\n activatedRow(): number {\n if (this.sohoListView) {\n const activatedItem = this.sohoListView.activatedItem();\n if (activatedItem && activatedItem.index !== undefined) {\n return activatedItem.index;\n }\n }\n return -1;\n }\n\n private handleInitialPageCancel() {\n this.reset();\n const message = '';\n const title = Soho.Locale.translate('NoDataAvailable');\n this.showEmptyMessage = true;\n this.handleError(message, title);\n this.changeDetectorRef.markForCheck();\n }\n\n private handleCancelableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n private handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n refresh(): Observable {\n if (this.isBusyPaging()) {\n return of(true);\n }\n // console.log('listcard-refresh: ' + this.listSpec.busListSpec.name);\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.activatedRow = this.activatedRow();\n return this.initialPageWait();\n }\n\n addDataView(dataView: LMDataView, index: number) {\n throw new Error('Method not implemented.');\n }\n\n removeDataView(index: number) {\n throw new Error('Method not implemented.');\n }\n\n public setDirtyIndicator(row: number, cell: number, showDirty: boolean) {\n throw new Error('Method not implemented.');\n }\n\n public getDirtyRows(): Array {\n return [];\n }\n\n public isModified(): boolean {\n return false;\n }\n\n public onContextMenuItemSelected(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n // TODO\n }\n\n private initialPageWait(rebuildInitialPageUrl = false): Observable {\n return this._initialPage(rebuildInitialPageUrl);\n }\n\n private initialPage(rebuildInitialPageUrl = false) {\n this._initialPage(rebuildInitialPageUrl).subscribe();\n }\n\n private _initialPage(rebuildInitialPageUrl = false): Observable {\n return new Observable(observer => {\n // console.log('listcard-initialPage: ' + this.listSpec.busListSpec.name);\n this.showEmptyMessage = false;\n this.lmLoggerService.log([ this, this.instanceId, 'initialPage()' ]);\n\n if (this.listSpec.dependentList) {\n if (this.fromDataView === null) {\n // disabled flag should be set at this point! That makes disabling\n // the component here seem like we are doing disabled checking in 2 spots.\n // todo: ppatton Look into more consistent (and single) way of disabling list-grid, list-view, etc...\n // this.disableComponent();\n\n /**\n * emitting the dataLoaded event with a null so the lm-list object\n * can responsd appropriately.\n * todo: ppatton again, why do this here?! shouldn't the lm-list already now it's been disabled?!\n */\n setTimeout(() => this.lmListEventService.dataLoadedEvent(null));\n observer.next(true);\n observer.complete();\n return;\n }\n // ------------------------------------------------------------------\n // if this is a dependentList then make sure all the dependencies\n // are available before loading the list.\n // ------------------------------------------------------------------\n if (!this.fromDataView || (this.hasFilterList && !this.filterListFilterCriteria)) {\n if (this.initialBuildComplete) {\n this.reset(); // don't reset if it hasn't even been built.\n }\n /**\n * emitting the dataLoaded event with a undefined dataView should\n * cause the lm-list to fully disable\n */\n setTimeout(() => {\n this.lmLoggerService.log([ this, this.instanceId, 'initialPage() > setTimeout > dataLoaded.emit(null)' ]);\n this.lmListEventService.dataLoadedEvent(null);\n });\n this.lmLoggerService.log([ this, this.instanceId, 'initialPage()', 'return' ]);\n observer.next(true);\n observer.complete();\n return;\n }\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.showBusyIndicator();\n\n const url = this.buildInitialPageUrl(rebuildInitialPageUrl);\n let initialNbrRecs = this.lmListUtilService.isUseAsSearchTargetList(this.listSpec) ? 0 : this.pageSize;\n if (this.filterCriteria) {\n initialNbrRecs = this.pageSize;\n }\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const isManualLoad = this.isManualLoading();\n // console.log('list-card._initialPage: '+ this.listSpec.busListSpec.name);\n this.lmLoggerService.time({ id: 'LMListView.initialPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.initialPageFiltered(url, this.filterCriteria, initialNbrRecs, postContent, isManualLoad).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n this.hideBusyIndicator();\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n if (listPagingResponse.status === 'CANCELED') {\n this.handleInitialPageCancel();\n }\n observer.next(true);\n observer.complete();\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.initialPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postInitialLoad(listPagingResponse, false);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n observer.next(listPagingResponse.status === 'COMPLETED');\n observer.complete();\n },\n error => {\n observer.next(false);\n observer.complete();\n this.lmLoggerService.timeEnd('LMListView.initialPage() ' + this.instanceId, [ this ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n this.handleError(error.stack, error.message);\n });\n });\n }\n\n public onFirstPage(event: any) {\n if (this.hasFirstPage) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.activatedRow = this.activatedRow();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListView.firstPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.firstPage(this.dataViewSet, this.pageSize, postContent, null, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.firstPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse, true);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n (error: any) => {\n this.lmLoggerService.timeEnd('LMListView.firstPage() ' + this.instanceId, [ this ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n }\n\n public onLastPage() {\n if (this.hasLastPage) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.activatedRow = this.activatedRow();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListView.lastPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.lastPage(this.dataViewSet, postContent, null, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.lastPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse, true);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n (error: any) => {\n this.lmLoggerService.timeEnd('LMListView.lastPage() ' + this.instanceId, [ this ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n }\n\n public onNextPage() {\n if (this.hasNextPage) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.activatedRow = this.activatedRow();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListView.nextPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.nextPage(this.dataViewSet, postContent, null, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.nextPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse, true);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmLoggerService.timeEnd('LMListView.nextPage() ' + this.instanceId, [ this ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n }\n }\n\n onPreviousPage() {\n if (this.hasPreviousPage) {\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n this.listState.selectedRows = this.getSelectedRows();\n this.listState.activatedRow = this.activatedRow();\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListView.previousPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.previousPage(this.dataViewSet, postContent, null, this.selectRequestData).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.previousPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postLoad(listPagingResponse, true);\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmLoggerService.timeEnd('LMListView.previousPage() ' + this.instanceId, [ this ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n this.handleError(error.stack, error.message);\n });\n\n }\n }\n\n onPageSizeChange(event: any) {\n const args: any[] = event as any[];\n if (!this.showPageSizeSelector) {\n return; // safety\n }\n this.pageSize = args[1].pagesize;\n this.listPersonalization.pageSize = args[1].pagesize;\n this.refresh().subscribe();\n }\n\n private sortPage(): void {\n if (!this.m_sortOrder) {\n return;\n }\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n // -------------------------------------------------------------\n // Get the sort url\n // -------------------------------------------------------------\n let cardViewSortOrders: Array = this.listSpec.busListSpec.displayFields[ 0 ].cardViewSortOrders;\n\n if (this.listSpec.busListSpec.responsiveCardView && this.listSpec.busListSpec.responsiveCardView.cardViewSortOrders) {\n cardViewSortOrders = this.listSpec.busListSpec.responsiveCardView.cardViewSortOrders;\n }\n\n const cardViewSortOrder: LMCardSortOrder = cardViewSortOrders.find(sort => sort.sortOrderName === this.m_sortOrder.sortOrderName);\n\n if (!cardViewSortOrder) {\n throw 'cannot find card view sort order info for ' + this.m_sortOrder.sortOrderName;\n }\n\n // NOTE: LMListGrid pagingRequest.sortAsc reflects the current sort not the requested sort.\n // LMListView does the opposite. This should be changed so they are consisten\n const sortOrderName = this.m_sortOrder.sortOrderName;\n const sortAscending = this.m_sortOrder.isAscending;\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n const sortOrder = { sortOrderName, isAscending: sortAscending } as LMListSortOrder;\n\n this.listState.sortOrderCriteria = sortOrder;\n\n // request the sorted page of records and log how long it took\n this.lmLoggerService.time({ id: 'LMListView.sortPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.sortPage(url, this.filterCriteria, sortOrder, this.pageSize, postContent).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.sortPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postInitialLoad(listPagingResponse, true);\n }\n\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n if (listPagingResponse.status === 'SYSTEM_EXCEPTION') {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n return;\n }\n },\n error => {\n this.lmLoggerService.timeEnd('LMListView.sortPage() ' + this.instanceId, [ this ]);\n this.handleError(error.stack, error.message);\n return;\n });\n }\n\n public filterPage(): void {\n // Return if no filterCriteria is set then return\n if (!this.filterCriteria) {\n return;\n }\n\n if (this.listSpec.dependentList && !this._fromDataView) {\n this.reset();\n return;\n }\n\n this.handleCancelableRequest();\n this.cancelOutstandingPagingRequest();\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const url = this.buildInitialPageUrl(true);\n const postContent = this.lmUrlUtilService.buildSelectDataViewPagingRequest(this.selectRequestData);\n\n this.lmLoggerService.time({ id: 'LMListView.filterPage() ' + this.instanceId });\n this.pagingSubscription = this.lmListGridPagingService.filterPage(url, this.filterCriteria, this.pageSize, postContent).subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n if (listPagingResponse.serverLog) {\n this.lmLoggerService.serverLog(listPagingResponse.serverLog);\n }\n\n this.lmLoggerService.timeEnd('LMListView.filterPage() ' + this.instanceId, [ this, listPagingResponse.dataViewSet ]);\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n\n this.setEmptyMessage();\n\n if (listPagingResponse.status === 'COMPLETED') {\n this.postInitialLoad(listPagingResponse, true);\n this.listState.filterCriteria = this.filterCriteria;\n\n } else {\n this.handleError(listPagingResponse.details, listPagingResponse.statusText);\n }\n },\n error => {\n this.lmLoggerService.timeEnd('LMListView.filterPage() ' + this.instanceId, [ this ]);\n this.handleError(error.stack, error.message);\n return;\n });\n }\n\n private fireListRowSelectedEvent(event: any) {\n let rows: LMListRowData[] = event[1].selectedItems.map(elem => {\n const idx = elem.index();\n const data = this.dataViewSet.data[idx];\n return { idx, data, elem };\n });\n\n // ------------------------------------------------------------------\n // Fire a selected event (with -1 index) to notify lm-list.component\n // ONLY when there are no other selected rows.\n // ------------------------------------------------------------------\n if (!rows.length) {\n rows = [ { idx: -1, data: null, elem: null } ];\n }\n\n this.lmListEventService.listRowSelectedEvent({ event, rows });\n }\n\n onKeyDown(event: LMListKeyDownEvent) {\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'helper') {\n return;\n }\n this.lmListEventService.listKeyDownEvent(event);\n }\n\n onItemsSelected(event: any) {\n this.fireListRowSelectedEvent(event);\n }\n\n onItemUnselected(event: any) {\n if (this.listSpec.dependentList && this.fromDataView === null) {\n // do not fire a unselected event when dependent list and fromDataView\n // is null. List will attempt to reselect the same row again when the\n // list is single select. This will cause a js error because when\n // fromDataView is null there is no data in the list to select.\n return;\n }\n this.fireListRowSelectedEvent(event);\n }\n\n onItemActivated(event: any) {\n const listRowActivatedEvent: LMListRowActivatedEvent = {\n row: event[ 1 ].index,\n item: event[ 1 ].elem,\n fromDataView: this.fromDataView,\n sourceIsPagingEvent: this.selectionInProgress\n };\n this.lmListEventService.listRowActivatedEvent(listRowActivatedEvent);\n }\n\n onItemDeactivated(event: any) {\n const listRowDeActivatedEvent: LMListRowActivatedEvent = {\n row: -1,\n item: event[ 1 ].elem,\n fromDataView: this.fromDataView\n };\n this.lmListEventService.listRowDeactivatedEvent(listRowDeActivatedEvent);\n }\n\n public onItemClicked(events: [JQuery.Event, any]) {\n if (!events || !events[1]) {\n return;\n }\n\n const event = events[1];\n const jqueryEvent = event.originalEvent;\n const mouseEvent = jqueryEvent.originalEvent as MouseEvent;\n\n const isCheckBox = mouseEvent.composedPath().some(pathElement =>\n (pathElement instanceof Element) &&\n (pathElement as Element).classList.contains('listview-selection-checkbox'));\n\n const isHyperlink = mouseEvent.composedPath().some(pathElement =>\n (pathElement instanceof Element) &&\n (pathElement as Element).classList.contains('hyperlink'));\n\n const isButton = mouseEvent.composedPath().some(pathElement =>\n (pathElement instanceof Element) &&\n (pathElement as Element).nodeName === 'BUTTON');\n\n const isClickableTag = mouseEvent.composedPath().some(pathElement =>\n (pathElement instanceof Element) &&\n (pathElement as Element).classList.contains('tag') &&\n (pathElement as Element).classList.contains('is-clickable'));\n\n if (isButton || isHyperlink || isCheckBox || isClickableTag) {\n return;\n }\n\n if (this.listSpec.busListSpec.selection === 'multiple') {\n /**\n * Fix for issue LMCLIENT-29260.\n *\n * BACKGROUND: We are using the activatedRow event to also select that activated row. But we don't auto select\n * the first row anymore on initial load. A multiselect list will now default so having a zeroth activated row but no row\n * will be selected.\n *\n * ISSUE: since first row is activated (and not selected) by default a new activated event will not be fired\n * if the user clicks on the activated row. There for no selection will take place.\n *\n * WORKAROUND: Manage the click event ourselves and decide if the setRowSelection should be called.\n */\n if (this.activatedRow() === event.index && this.getSelectedRows().length === 0) {\n this.setSelectedRows([ event.index ]);\n }\n }\n\n const item = (this.listSpec.listType === 'select' && this.lmContextService.useSingleSelectList() && !this.inSelectListEditMode)\n ? this.getDataView(event.index) : event.elem;\n\n this.lmListEventService.listRowClickedEvent({\n originalEvent: event.originalEvent,\n item,\n row: event.index,\n cell: -1\n } as LMListRowClickedEvent);\n }\n\n onItemDoubleClicked(event: any) {\n const target = event ? event[1] : null;\n if (target) {\n const listRowClickedEvent: LMListRowClickedEvent = {\n originalEvent: event,\n item: target.elem,\n row: target.index,\n cell: -1\n };\n this.lmListEventService.listRowDoubleClickedEvent(listRowClickedEvent);\n }\n }\n\n onDragged(event: DragEvent, data: LMDataView) {\n const draggedRow: number = data.id - 1;\n // event.preventDefault();\n // -------------------------------------------------------------\n // unselect any other selected rows, select the row being dragged\n // -------------------------------------------------------------\n const selectionRows: Array = this.getSelectedRows();\n\n if (!selectionRows.includes(draggedRow)) {\n // then select the right clicked row - the right click menu is based on the selected rows\n this.unSelectAllRows();\n this.setSelectedRows([ draggedRow ], true);\n }\n\n const target = event.currentTarget as HTMLElement;\n\n target.style.borderWidth = '2px';\n target.style.borderStyle = 'dashed';\n target.style.borderColor = '#000';\n target.style.opacity = '0.4';\n\n if (typeof event.dataTransfer.setDragImage === 'function') {\n const dragIcon = document.createElement('img');\n dragIcon.src = '../lib/landmark/images/defaultPage.png';\n dragIcon.width = 100;\n event.dataTransfer.setDragImage(dragIcon, -10, -10);\n\n event.dataTransfer.dropEffect = 'move';\n }\n event.dataTransfer.setData('text', draggedRow.toString());\n }\n\n onDragEnd(event: DragEvent, data: LMDataView) {\n const target = event.currentTarget as HTMLElement;\n\n target.style.border = 'none';\n target.style.opacity = '1';\n\n return false;\n }\n\n public onContextMenu(event: any): void {\n const target = event ? event[1] : null;\n\n const elem = target.elem;\n const rect = elem[0].getBoundingClientRect();\n\n // Manually set context menu position if undefined\n target.originalEvent.pageX = target.originalEvent.clientX ? target.originalEvent.clientX : rect.x + 100;\n target.originalEvent.pageY = target.originalEvent.clientY ? target.originalEvent.clientY : rect.y + 30;\n target.originalEvent.pageX = target.originalEvent.pageX ? target.originalEvent.pageX : rect.x + 100;\n target.originalEvent.pageY = target.originalEvent.pageY ? target.originalEvent.pageY : rect.y + 30;\n\n if (target) {\n const selectedListRow: LMContextMenuEvent = {\n row: target.index,\n item: target.elem,\n originalEvent: target.originalEvent,\n cell: -1,\n type: 'list'\n };\n this.lmListEventService.contextMenuEvent(selectedListRow);\n }\n }\n\n /**\n * Collapse this list-view\n */\n public collapseList() {\n this.lmListEventService.collapseDrawerSide();\n }\n\n private reset(): void {\n // set dataViewSet\n this.dataViewSet = undefined;\n this.recordCount = 0;\n\n // set pager button state\n this.hasNextPage = false;\n this.hasPreviousPage = false;\n this.hasFirstPage = false;\n this.hasLastPage = false;\n this.showPageSizeSelector = false;\n\n // todo need to remove any selection and any data currently in the list-view\n if (this.sohoListView) {\n this.sohoListView.clearAllSelected();\n this.sohoListView.dataset = [];\n }\n }\n\n private postInitialLoad(listPagingResponse: LMListPagingResponse, resetSelection: boolean) {\n this.lmLoggerService.time({ id: 'LMListView.postInitialLoad() ' + this.instanceId });\n\n listPagingResponse.resetSelection = resetSelection;\n this.postLoad(listPagingResponse);\n this.setEmptyMessage();\n\n this.firstPageButtonTooltip = this.dataViewSet.pagingInfo.firstDisabledReason ?\n this.dataViewSet.pagingInfo.firstDisabledReason : Soho.Locale.translate('FirstPage');\n\n this.previousPageButtonTooltip = this.dataViewSet.pagingInfo.previousDisabled ?\n this.dataViewSet.pagingInfo.previousDisabledReason : Soho.Locale.translate('PreviousPage');\n\n this.nextPageButtonTooltip = this.dataViewSet.pagingInfo.nextDisabledReason ?\n this.dataViewSet.pagingInfo.nextDisabledReason : Soho.Locale.translate('NextPage');\n\n this.lastPageButtonTooltip = this.dataViewSet.pagingInfo.lastDisabledReason ?\n this.dataViewSet.pagingInfo.lastDisabledReason : Soho.Locale.translate('LastPage');\n\n /**\n * fire dataloaded event once listview has been initially loaded with data.\n * Do not fire for any other paging requests other than 'initialPage' load.\n */\n setTimeout(() => {\n this.lmLoggerService.log([ this, this.instanceId, 'postInitialLoad() > setTimeout > dataLoadedEvent' ]);\n this.lmListEventService.dataLoadedEvent(listPagingResponse);\n }, 1);\n\n this.showEmptyMessage = this.recordCount === 0;\n\n this.lmLoggerService.timeEnd('LMListView.postInitialLoad() ' + this.instanceId, [ this ]);\n this.lmLoggerService.timeEnd('>> Total ListView ' + this.instanceId, [ this ]);\n this.lmLoggerService.time({ id: 'LMListView.end ' + this.instanceId });\n }\n\n private postLoad(listPagingResponse: LMListPagingResponse, resetSelection = false) {\n this.lmLoggerService.time({ id: 'LMListView.postLoad() ' + this.instanceId });\n\n this.resetSelectionFlag = resetSelection;\n this.selectionInProgress = resetSelection;\n\n // Create specFields for message rules\n this.lmListUtilService.setSpecFields(listPagingResponse.dataViewSet);\n\n // set dataViewSet\n this.dataViewSet = listPagingResponse.dataViewSet;\n this.savedSearches = listPagingResponse.savedSearchDataViewSet;\n this.recordCount = listPagingResponse.dataViewSet.data.length;\n\n // set pager button state\n this.hasNextPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.nextDisabled && this.dataViewSet.data.length > 0;\n this.hasPreviousPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.previousDisabled && this.dataViewSet.data.length > 0;\n this.hasFirstPage = this.dataViewSet.pagingInfo.hasPrevious && !this.dataViewSet.pagingInfo.firstDisabled && this.dataViewSet.data.length > 0;\n this.hasLastPage = this.dataViewSet.pagingInfo.hasNext && !this.dataViewSet.pagingInfo.lastDisabled && this.dataViewSet.data.length > 0;\n this.showPageSizeSelector = this.lmListUtilService.showPageSizeChooser(this.listSpec);\n\n this.hidePagerBar = this._hidePagerBar();\n\n this.listState.currentPageUrl = this.dataViewSet.pagingUrls.reloadPageUrl;\n if (this.hasFilterList) {\n this.listState.filterListFilterCriteria = this.filterListFilterCriteria;\n }\n\n if (this.sohoListView) {\n this.sohoListView.updateRequired = true;\n\n // Calling change detection here so that lists that are in dialogs\n // will display the paging records. See LMCLIENT-31560.\n if (this.listSpec.listType === 'select'\n || this.listSpec.listType === 'helper') {\n // CHANGE DETECTION\n this.changeDetectorRef.markForCheck();\n }\n }\n }\n\n private resetSelection(selectRow: number, activatedRow: number) {\n if (selectRow !== -1) {\n if (selectRow >= this.dataViewSet.data.length) {\n selectRow = this.dataViewSet.data.length - 1;\n }\n this.setSelectedRows([ selectRow ], false);\n }\n\n if (this.selectionMode === 'mixed') {\n if (activatedRow !== -1) {\n if (activatedRow >= this.dataViewSet.data.length) {\n activatedRow = this.dataViewSet.data.length - 1;\n }\n\n // ----------------------------------------------------------------------------\n // if activeRow is -1 at this point then the last record must have been\n // deleted. activateRow will handle the -1 by deactivating the row and\n // will fire and event up so a list can clear any related data associated\n // with the recently deleted record.\n // ----------------------------------------------------------------------------\n\n } else if (this.dataViewSet && this.dataViewSet.data.length > 0) {\n // ----------------------------------------------------------------------------\n // if list was empty and a new records was created then activate the first row\n // ----------------------------------------------------------------------------\n activatedRow = 0;\n }\n\n this.activateRow(activatedRow);\n this.selectionInProgress = false;\n }\n\n if (this.lmContextService.useSingleSelectList()) {\n if (this.selectionMode === 'mixed' && activatedRow >= 0) {\n this.elementRef.nativeElement.getElementsByClassName('is-activated')[0].focus();\n } else if (this.selectionMode === 'single' && selectRow >= 0) {\n this.elementRef.nativeElement.getElementsByClassName('is-selected')[0].focus();\n }\n }\n\n this.lmLoggerService.timeEnd('LMListView.postLoad() ' + this.instanceId, [ this, this.dataViewSet ]);\n }\n\n public updateDataViewTransaction(key: number, status: string, message: string): void {\n // TODO implement me.\n }\n\n private buildInitialPageUrl(forceUrlRebuild = false): string {\n\n if (this.listSpec.dependentList) {\n if (this.listState\n && this.listState.currentPageUrl\n && !forceUrlRebuild\n && !this.dependencyChanged()\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n ) {\n // ------------------------------------------------------------------\n // if the fromDataView hasn't changed and there is a currentPageUrl\n // then load that to keep our position in the dependent list.\n // ------------------------------------------------------------------\n return this.listState.currentPageUrl;\n }\n\n // ------------------------------------------------------------------\n // else resolve template against the fromDataView's resourceId and\n // it's filterListFilterCriteria if this list has a FilterList\n // dependency\n // ------------------------------------------------------------------\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.initialDataUrl);\n let compiledUrl = compiledUrlTemplate.expand({ resourceId: this.fromDataView.resourceId });\n const delimiter: string = compiledUrl.indexOf('?') === -1 ? '?' : '&';\n\n if (this.hasFilterList && this.filterListFilterCriteria && this.filterListFilterCriteria) {\n // ------------------------------------------------------------------\n // apply any filterListFilterCriteria to the initial load.\n // ------------------------------------------------------------------ // set filter criteria on the url params\n const filterParamString = this.lmUrlUtilService.filterFieldCriteriaToUrlParams(this.filterListFilterCriteria, 'flc');\n if (filterParamString) {\n compiledUrl += delimiter + filterParamString;\n }\n }\n\n return compiledUrl;\n }\n\n if (this.listState\n && this.listState.currentPageUrl\n && !forceUrlRebuild\n && this.lmUrlUtilService.allCsksMatchContext(this.listState.currentPageUrl)\n && this.lmUrlUtilService.hasSameParamValue(this.listState.currentPageUrl, this.listUrlInfo.initialDataUrl, 'filter')\n ) {\n let currentUrl = this.listState.currentPageUrl;\n if (this.selectRequestData?.onSearchForm) {\n currentUrl = this.lmUrlUtilService.addParamToUrl(currentUrl, 'searchform', 'true');\n }\n return currentUrl;\n }\n\n let url = this.listUrlInfo.initialDataUrl;\n if (this.selectRequestData?.onSearchForm) {\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n\n return url;\n }\n\n private dependencyChanged() {\n if (!this.listSpec.dependentList || !this.listState) {\n // --------------------------------------------------------------\n // Must be a dependent list and have listState to check against\n // for a dependency to have changed. If not return false.\n // --------------------------------------------------------------\n return false;\n }\n\n // --------------------------------------------------------------\n // If the from dataView resourceId change then the dependency\n // has changed. return true.\n // --------------------------------------------------------------\n if (this.fromDataView.resourceId !== this.listState.fromResourceId) {\n return true;\n }\n\n if (this.hasFilterList) {\n if (!this.listState.filterListFilterCriteria || this.listState.filterListFilterCriteria.length === 0) {\n // filter list criteria was empty, now it's been set.\n return (this.filterListFilterCriteria && this.filterListFilterCriteria.length >= 1);\n }\n\n // --------------------------------------------------------------\n // If this list has a filterList then check to see if the\n // filterListFilterCriteria has changed. If so then return true.\n // --------------------------------------------------------------\n // todo ppatton - this is NOT robust AT ALL. Need to handle checking multiple filterListCriteria elements.\n return this.filterListFilterCriteria[ 0 ].value !== this.listState.filterListFilterCriteria[ 0 ].value;\n }\n\n return false;\n }\n\n updateDataView(key: number, dataView: LMDataView): void {\n }\n\n trackByResourceId(index: number, dataView: LMDataView): string {\n return dataView.resourceId;\n }\n\n protected _hidePagerBar(): boolean {\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n return true;\n }\n\n if (this.isFilterList) {\n return true;\n }\n\n return super._hidePagerBar();\n }\n\n private showBusyIndicator() {\n if (!this.hasFilterList && !this.isFilterList) {\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n } else {\n // console.log('busyIndicatorDisplayedEvent - List View')\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: true });\n }\n }\n\n private hideBusyIndicator() {\n if (!this.hasFilterList && !this.isFilterList) {\n this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n } else {\n this.lmListEventService.busyIndicatorDisplayedEvent({ show: false });\n }\n }\n}\n","\n
        \n \n \n
        \n \n \n \n
        \n \n
      • \n \n \n
      • \n
        \n \n
        \n\n \n
        \n
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        \n
        \n
        \n","/* tslint:disable:max-line-length */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n NgZone,\n forwardRef,\n Inject,\n Renderer2\n} from '@angular/core';\nimport {\n Event,\n Router,\n NavigationEnd,\n NavigationStart, ActivatedRoute,\n} from '@angular/router';\nimport {\n SohoMessageService,\n SohoModalDialogService,\n SohoPopupMenuComponent,\n SohoToastService,\n} from 'ids-enterprise-ng';\nimport {\n Observable,\n Observer,\n Subscription,\n of as observableOf,\n SubscriptionLike as ISubscription,\n Subject,\n BehaviorSubject, of, forkJoin, throwError\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n first,\n filter,\n map,\n startWith,\n tap,\n catchError\n} from 'rxjs/operators';\n\nimport {\n LMBannerHeaderComponentRef, LMBannerService\n} from '@banner/index';\nimport {\n LMBaseComponent, LMDialogInfo, LMRefreshRequest,\n SaveRequired\n} from '@base/index';\nimport {\n LMDashboardViewComponent\n} from '@dashboard/lm-dashboard-view.component';\nimport {\n LandmarkPanel,\n LMFormComponent,\n LMFormContentSearchComponent,\n LMModelServiceAdapter,\n LMFormActionUtilService,\n LMFormService,\n LMModel,\n LMModelCache,\n LMModelStatusEvent,\n} from '@form/index';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport {\n LMHtmlPageUtilService\n} from '@html/lm-html-page-util.service';\nimport {\n ConfirmationDialogResult,\n LMActionFormDialogResult,\n LMCompactFormDialogResult,\n LMCompactFormDialogService,\n LMCompactFormResult,\n LMConfirmationMessageService,\n LMContextualActionPanelService,\n LMFieldPickerService,\n LMHelperListDialogResult,\n LMHelperListDialogResultCode,\n LMHelperListDialogService,\n LMPrintCsvInfo,\n LMPrintDialogService,\n LMPrintPdfInfo,\n LMReportPersonalizationDialogResult,\n LMReportPersonalizationDialogResultCode,\n LMReportPersonalizationDialogService,\n LMSelectDialogService,\n LMSelectResponse,\n LMSubFormDialogResult,\n LMSubFormDialogService,\n LMSubFormResult,\n LMSavedSearchService,\n} from '@modal/index';\nimport {\n DocumentResource,\n KeyedResource,\n ListResource,\n RelationResource,\n} from '@resources/index';\nimport {\n LMGlobalPersonalizationService,\n LMListStateKeyParams,\n LMListStateService,\n LMListPersonalizationService,\n LMListPersonalizationKeyParams,\n} from '@states/index';\nimport {\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMActionService,\n LMBusyIndicatorService,\n LMLoggerService,\n LMSpecService,\n LMUrlUtilService,\n LMRouteComponentService,\n RelatedReportParams,\n LMComponentInfoService,\n LMCompoundFieldService,\n LMUrlInfoBuilderService,\n LMFieldUtilService,\n PersonalizeParams,\n LMConfigurationService\n} from '@services/index';\nimport {\n AppConstants,\n LMCommonUtilService,\n LMConditionUtilService,\n LMContextUtilService,\n LMGlobalUtilService,\n LMUniqueIdService,\n LMDialogButtonKey,\n LMFormType,\n} from '@utils/index';\n\n// -----------------------------------------------------------------\n// package and sub package imports\n// -----------------------------------------------------------------\nimport {\n LMListUtilService,\n LMListSpecUtilService,\n LMListToolbarService,\n LMListContext,\n LMListTransactionService,\n LMListGridBuilderService,\n LMListCardService,\n} from './services';\nimport { LMListService } from './services/lm-list.service';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMListActionFormDialogService } from '@list/services/lm-list-action-form-dialog.service';\nimport { LMListSearchFormDialogComponent } from './lm-list-search-form-dialog.component';\nimport { LMListLookupDialogComponent } from './lm-list-lookup-dialog.component';\nimport { LMListContentComponent } from './lm-list-content.component';\nimport { LMDetailSectionsComponent } from './lm-detail-sections.component';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMActionFormDialogResultCode } from '@modal/lm-action-form-dialog.service';\nimport { DrillPointsParams } from '@services/lm-drill.service';\nimport { environment } from '@environments/environment';\nimport {\n LMColumnViewCubeEvent,\n LMCreateReportPersonalizationCubeEvent,\n LMCubeSearchEvent,\n LMPeriodViewCubeEvent\n} from './lm-list-cube-viewer.component';\nimport { LMListViewComponent } from './lm-list-view.component';\nimport { LMListAuditComparePanelComponent } from './lm-list-audit-compare-panel.component';\nimport { LMAuditLogCompareDialogComponent } from '@auditlog/lm-audit-log-compare-dialog.component';\nimport { LMListEventService } from '@list/services/lm-list-event.service';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { LMFormatterService } from './formatters/';\nimport { LMEditorService } from './editors';\nimport { LMStateHelperService } from '@services/lm-state-helper.service';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\nimport { BreakpointChangeService } from '@drawer/breakpoint-change.service';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMCubeSearchOpenLookupEvent, LMFieldSubscriptionService } from '../field';\nimport { LMFilterOperatorEvent } from '../field/lm-field-base.component';\nimport { LMFieldOptionsService } from '../field/services';\nimport {\n LMFieldPickerSelectOptions,\n LMFieldPickerSelectResponse\n} from '@modal/field-picker/lm-field-picker';\nimport { Location } from '@angular/common';\n\ndeclare let urltemplate: any;\n\nexport class LMListFieldChangedEvent {\n event: Event;\n columnDef: ListGridColumn;\n dataView: LMDataView;\n}\n\nexport class LMListSelectionEvent {\n constructor(\n public eventSource: LMListComponent,\n public selectedRows: LMListRowData[]) {}\n}\n\nexport class LMListLookupSelectionEvent {\n constructor(public eventSource: LMListLookupDialogComponent,\n public rows: Array) {\n }\n}\n\nexport class LMListRowActivationEvent {\n constructor(\n public eventSource: LMListComponent,\n public activatedEvent: LMListRowActivatedEvent) {}\n}\n\nexport class LMListTransactionEvent {\n public constructor(\n public eventSource: LMListComponent,\n public actionResultArray: LMActionResult[]) {} // TODO: this is never user\n}\n\nexport class LMCubeDetailSectionPVPeriodEvent {\n public constructor(public eventSource: LMListComponent, public pvPeriodIdx: number) {}\n}\n\nexport class LMListDragDropEvent {\n public constructor(\n public eventSource: LMListViewComponent,\n public row: number,\n public filterRow: number) {\n }\n}\n\n// used privately by detail fields mechanism\ninterface LMListDetailFieldsModelCache {\n id: string;\n cache: LMModelCache;\n dataView: LMDataView;\n}\n\n@Component({\n selector: 'lm-list',\n templateUrl: './lm-list.component.html',\n styleUrls: [ 'lm-list.component.scss' ],\n providers: [\n LMEditorService,\n LMFormatterService,\n LMFormManualRepService,\n LMHtmlPageUtilService,\n LMHtmlUrlDocService,\n LMKeyboardShortcutService,\n LMListCardService,\n LMListEventService,\n LMListGridBuilderService,\n LMListToolbarService,\n LMListService,\n LMModelServiceAdapter,\n LMFormActionUtilService,\n LMFormService,\n LMFieldSubscriptionService,\n LMFieldOptionsService\n ]\n})\nexport class LMListComponent extends LMBaseComponent implements AfterViewInit, OnInit, OnDestroy, SaveRequired {\n @HostBinding('id') get listId() {\n if (!this.listSpec || !this.listComponentId) {\n return null;\n }\n return this.listComponentId;\n }\n\n @HostBinding('attr.data-automation-id') get listAutomationId() {\n if (!this.listSpec || !this.screenAutomationId) {\n return null;\n }\n return 'lm-' + this.screenAutomationId + '-list';\n }\n\n @HostBinding('style.height') get hostHeight() {\n if (this.listState.displayAs === 'chart') {\n return '100%';\n }\n\n if (this.listSpec && this.lmListSpecUtilService.isFormListPanelContent(this.listSpec) && this.formContextOnLeft){\n return '100%';\n }\n\n // don't set height to 100% for normal lists in panels on forms or pages\n if (this.listSpec && this.lmListSpecUtilService.isFormListPanelContent(this.listSpec) && !this.lmListSpecUtilService.isCardViewWithDetailSections(this.listSpec) ||\n (this.listInPagePaneTab && !this.isDashBoardContent && this.pageHasContextForm && !this.pageHasTabs)) {\n return 'auto';\n }\n\n if (this.listSpec && this.listSpec.listType === 'select') {\n return (this.hasSearchForm && this.showSearchForm) ? 'auto' : '100%';\n }\n\n return this.lmListSpecUtilService.isMultiListPanelContent(this.listSpec) || this.inMultiList ? 'auto' : '100%'/*'calc(100vh - 60px)'*/;\n }\n\n @HostBinding('class.lm-disable-component') get hostDisableClass() {\n return this.disabled;\n };\n\n @HostBinding('class.lm-make-detail-section-dashboard-homepage-position-static') get makeHomepagePositionStatic(): boolean {\n if (this.listSpec) {\n return this.hasStandardDetailSections;\n }\n return false;\n }\n\n @HostBinding('class.card-content') get classCardContent() {\n if (!this.listSpec) {\n return false;\n }\n return this.listSpec.showAsMingleWidget;\n }\n\n @HostBinding('class.scrollable') get classScrollable() {\n if (!this.listSpec || this.inMultiList) {\n return false;\n }\n return !this.isCardViewWithDetailSections;\n }\n\n @HostBinding('class.lm-cards-compact') compactCards = true;\n\n @ViewChild(LMListContentComponent) listContentComponent: LMListContentComponent;\n @ViewChild(forwardRef(() => LMFormComponent)) searchFormComponent: LMFormComponent;\n @ViewChild(forwardRef(() => LMFormContentSearchComponent)) searchFormContentComponent: LMFormContentSearchComponent;\n @ViewChild(LMDetailSectionsComponent) detailSectionsComponent: LMDetailSectionsComponent;\n @ViewChild(forwardRef(() => LMDashboardViewComponent)) dashboardViewComponent; // : LMDashboardViewComponent;\n @ViewChild(LMListAuditComparePanelComponent) auditComparePanelComponent: LMListAuditComparePanelComponent;\n @ViewChild(SohoPopupMenuComponent) sohoRightClickMenu: SohoPopupMenuComponent;\n @ViewChild(LMToolbarComponent) toolbarComponent: LMToolbarComponent;\n @ViewChild(forwardRef(() => 'detailFieldsFormComponent')) lmDetailFieldsFormComponent;\n @ViewChild('SearchFormPlaceholder', { read: ViewContainerRef }) searchFormPlaceholder: ViewContainerRef;\n @ViewChild('modalPlaceholder', { read: ViewContainerRef, static: true }) modalPlaceholder: ViewContainerRef;\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n /**\n * The LMListSpec that used to build and drive the list. If no listSpec is passed\n * in then the routes url will be used to retrieve a the LMListSpec.\n * NOTE: A root level component instance will have the complete set of specs for\n * all of its sub level components.\n * @type {LMListSpec} The LMListSpec used to build the list.\n */\n @Input() listSpec: LMListSpec = null;\n\n /**\n * Only load data if filterCriteria or filterListFilterCritera are set.\n */\n @Input() hasFilterList = false;\n\n /**\n *\n */\n @Input() implementsDragAndDrop = false;\n\n @Input() helperListOptions: LMHelperListOptions = null;\n\n /**\n * This text will be displayed between the toolbar and the list content.\n */\n @Input() listText: LMMessageRule;\n\n /**\n * Use to drive this \"dependent\" lists data when there this list is related\n * to parent data elsewhere on the current web page.\n *\n * Examples:\n * - a list with detail sections with lists.\n * - a page panel with multiple list 'panes'\n * - a composite form with lists in it's panels/tabs\n * - others?\n *\n * @type {LMDataView} The selected dataview from the driving list or form.\n */\n @Input() set fromDataView(fromDataView: LMDataView) {\n if (this.listSpec.dependentList) {\n this._fromDataView = fromDataView;\n this.buildListStateKeyParams(true);\n\n // todo: look into loading state for a list when it's fromDataviewChanges.\n // usefull when nexting through form records and expanding tree lists.\n // this.loadComponentState(true);\n\n this.disabled = !this.fromDataView;\n }\n };\n\n get fromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n /**\n * Whether the list component is disabled or not\n */\n @Input() disabled = false;\n\n /**\n * Used to correctly page select list records based on a passed in dataView.\n */\n @Input() selectRequestData: SelectRequestData;\n\n /**\n * Passed down to content components (i.e. lm-list-grid, lm-list-chart, etc...).\n * See filterCriteria @Input on lm-list-grid.component.ts for more information.\n */\n @Input() set filterCriteria(filterCriteriaArray: Array) {\n this._filterCriteria = filterCriteriaArray;\n }\n\n get filterCriteria(): Array {\n return this._filterCriteria;\n }\n\n get columnfilterOperators(): Map {\n return this._columnfilterOperators;\n }\n\n @Input() implementsManualLoad: boolean;\n\n @Input() manualLoadInfo: LMManualLoadInfo;\n\n /**\n * Used by the filter list pattern to set a filter on it's target list.\n * Using a new input for these because:\n * - These should not be shown as filter tags\n * - These will be sent to the server with a different \"prefix\" in it's url param (flc.fld=value)\n */\n @Input() set filterListFilterCriteria(filterListFilterCriteria: LMFilterListCriteria) {\n this._filterListFilterCriteria = filterListFilterCriteria;\n }\n\n get filterListFilterCriteria(): LMFilterListCriteria {\n return this._filterListFilterCriteria;\n }\n\n /**\n * Cause the sort order to change and data to be reloaded.\n * This currently only works with lm-list-view (i.e. card stack).\n * @param sortOrder\n */\n @Input() set sortOrder(sortOrder: LMListSortOrder) {\n this.m_sortOrder = sortOrder;\n }\n\n get sortOrder(): LMListSortOrder {\n return this.m_sortOrder;\n }\n\n /**\n * Whether the filtering should be displayed or not. Only used on lm-list-grid at this time.\n */\n @Input() showFilter: boolean;\n\n /**\n * Whether the search form should be displayed or not.\n */\n @Input() showSearchForm = false;\n\n /**\n * Additional special actions to be added the toolbar\n */\n @Input() specialActions: Array;\n\n /**\n * passed in when in a single pane panel so the tab text will display\n * in place of the list title (if no list title already exists).\n */\n @Input() overrideListTitle: string;\n\n /**\n * Whether this list is part of a larger composite (Page.multiPanePanel or hasDetailSections)\n * where a selected row drives loading related data in another areas (a list, form, url, etc...)\n */\n @Input() hasDependentData = false;\n\n /**\n * IF the list is a within a page pane tab\n */\n @Input() listInPagePaneTab = false;\n\n /**\n * IF the list is in a page with a context form\n */\n @Input() pageHasContextForm = false;\n\n /**\n * IF the list is in a composite form with a context form on left\n */\n @Input() formContextOnLeft = false;\n\n /**\n * IF the list is within a multilist detail section\n */\n @Input() inMultiList = false;\n\n /**\n * IF the list is within a multi pane section\n */\n @Input() pageHasTabs = false;\n\n @Input() inSelectListEditMode = false;\n\n @Output() contentModified = new EventEmitter();\n @Output() fieldChanged = new EventEmitter();\n @Output() toolbarButtonEvent = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() cubeDetailSectionPVPeriodEvent = new EventEmitter();\n\n /**\n * Event fired when a row selection has changed.\n */\n @Output() listDragDropEvent = new EventEmitter();\n @Output() listRowSelected = new EventEmitter();\n @Output() listRowActivated = new EventEmitter();\n @Output() listRowDeactivated = new EventEmitter();\n @Output() listRowClicked = new EventEmitter();\n @Output() listRowDoubleClicked = new EventEmitter();\n\n /**\n * Event fired when the list title is built. This will happen whether it's the first time\n * the title is built or if it's rebuild due to context changes. i.e. when rebuilding the\n * title when the fromDataViewChanges and fromDataView has values used in the titles\n * MessageRule.\n * @type {EventEmitter}\n */\n @Output() titleChanged = new EventEmitter();\n\n @Output() listDisplayed = new EventEmitter();\n\n @Output() listKeyDown = new EventEmitter();\n\n @Output() panelContentDisplayed = new EventEmitter();\n\n @Output() sendContextMessageEvent = new EventEmitter();\n\n @Output() listTransactionEvent = new EventEmitter();\n\n @Output() updateToolbarStateEvent = new EventEmitter();\n\n @Output() busyIndicatorDisplayedEvent = new EventEmitter();\n\n /**\n * Used to set the search Forms LMDataView once the dataViewSet as been initially\n * loaded. A searchDataView is returned with the dataViewSet for this purpose.\n */\n public searchFormDataView: LMDataView;\n public searchFormSpec: LMFormSpec; // listSpec.busListSpec.searchForm.formSpec\n public searchFormUrlInfo: LMFormUrlInfo;\n\n public displaySearchInDialog = false;\n\n public testVersion1: boolean;\n\n private toolbarSearchFieldFilterCriteria: Array = [];\n private searchFormFilterFieldCriteria: Array = [];\n private filterBarFilterFieldCriteria: Array = [];\n\n // ---------------------------------------------------------------------\n // Template Control/Bound Variables\n // ---------------------------------------------------------------------\n // private listViewData: ListViewData = new ListViewData();\n // ---------------------------------------------------------------------\n\n /**\n * Hold the state of this list.\n */\n private listStateKeyParams: LMListStateKeyParams = null;\n public listState: LMListState = {};\n private listPersonalizationKeyParams: LMListPersonalizationKeyParams = null;\n public listPersonalization: LMListPersonalization = {};\n public uiLoadingIndicatorTimeout = 0;\n\n public chartName: string;\n public searchPlaceholder = '';\n private disableComponent = false;\n\n // Prevent opening multiple lookup select dialogs from the same column. Occurred\n // when the user was rapidly hitting the down arrow key on the lookup input element.\n private lookupSelectThrottleId = null;\n\n // Prevent multiple copies of the same inline create row from being saved if the\n // user holds down the tab key without releasing it from the last editable cell.\n private performingSaveNewViaHotkey = false;\n\n /** so JSON can be used in the components template */\n public JSON = JSON;\n public displayContextMenu = false;\n\n /**\n * Don't use directly, use property getter and setter instead\n */\n private _fromDataView: LMDataView;\n\n /**\n * Whether or not this ListComponent is the root router-outlet component.\n * If it is then use the headerToolbarRef to set the toolbar view data.\n * Otherwise use the toolbar in this lists template.\n * @type {boolean}\n */\n private isRouterOutletRootComponent = false;\n\n private listResourceImpl: ListResource;\n private listComponentId: string;\n public screenAutomationId: string;\n public listTitle: string;\n private reportListTitle: string;\n public columnarSubTitle: string;\n private oldScreenTitle: string;\n\n // private scheduleActionAllowed: boolean = false;\n /**\n * Used internally so that the subscription can be released when\n * the component is destroyed.\n */\n private routerEventsSubscription: ISubscription;\n private toolbarButtonEventSubscription: ISubscription;\n private toolbarSearchEventSubscription: ISubscription;\n private toolbarSearchClearedEventSubscription: ISubscription;\n\n private listEventSubs: Subscription[] = [];\n private listLookupSelectionEvent: LMListLookupSelectionEvent;\n\n private listLookupSelectionSubscription;\n\n /**\n * don't set this directly, use the set/getter property functions\n */\n private _toolbarSearchField: LMToolbarSearchField = null;\n // Tabs for Detail Sections\n public detailSectionPanels: Array = [];\n public dashboardVisibility = 'hidden';\n public listViewSearchFieldValue: string;\n public showDetails$: Observable;\n public hideDetailSectionTabs = false;\n\n public showScanOptionsContextMenu = false;\n private _contextScanMenuEvent: any;\n public lmListBarCodeEvent: LMListBarCodeClickedEvent;\n public scanMenuId: string;\n\n public selectedDataView: LMDataView;\n // stupid flags so we can know when certain things are complete.\n public initialBuildComplete = false;\n\n public performInitialRowSelectionComplete = false;\n private backReferenceSub: Subscription;\n private _contextMenuEvent: any;\n private _filterCriteria: Array = null;\n private _columnfilterOperators: Map = new Map();\n private _filterOperators: Map = new Map();\n private _filterListFilterCriteria: LMFilterListCriteria = null;\n private m_sortOrder: LMListSortOrder;\n public showCancellableNotification = false;\n private cancelPagingNotifier$: Subject;\n public implementsCancellablePaging = false;\n public cancelablePagingMessage: string;\n public cancelablePagingActionMessage: string;\n private instanceId: string;\n public isProduction = environment.production;\n public screenId: string;\n public toolbarButtons: Observable>;\n public drawerCollapse$: Observable;\n public isAbovePhoneView$: Observable;\n private defaultUserListViewItem: LMUserListViewItem;\n\n //detail fields variables\n private detailFieldsFormModelSub$: Subscription;\n private detailfieldsFormModelCache: Array = [];\n public detailFieldsFormModel: LMModel;\n public detailFieldsSpecFields: LMSpecFields;\n public detailFieldsFormLayout: LMFormLayout;\n public detailFieldsFormSpec: LMFormSpec;\n public detailFieldsFormUrlInfo: LMFormUrlInfo;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n public elementRef: ElementRef,\n private router: Router,\n private route: ActivatedRoute,\n private renderer: Renderer2,\n private zone: NgZone,\n private location: Location,\n private sohoMessageService: SohoMessageService,\n public sohoModalDialogService: SohoModalDialogService,\n private sohoToastService: SohoToastService,\n private currentComponent: LMRouteComponentService,\n private lmActionService: LMActionService,\n @Inject(forwardRef(() => LMBannerHeaderComponentRef)) private lmBannerHeaderCompRef: LMBannerHeaderComponentRef,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmConfirmationMessageService: LMConfirmationMessageService,\n public lmContextService: LMContextService,\n private lmContextUtilService: LMContextUtilService,\n protected lmErrorUtilService: LMErrorUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n @Inject(forwardRef(() => LMHelperListDialogService)) private lmHelperListDialogService, // LMHelperListDialogService,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n private lmReportPersonalizationDialogService: LMReportPersonalizationDialogService,\n private lmListActionFormDialogService: LMListActionFormDialogService,\n private lmContextualActionPanelService: LMContextualActionPanelService,\n private lmPrintDialogService: LMPrintDialogService,\n private lmCompactFormDialogService: LMCompactFormDialogService,\n private lmSelectDialogService: LMSelectDialogService,\n @Inject(forwardRef(() => LMSubFormDialogService)) private lmSubFormDialogService, // LMSubFormDialogService,\n private lmListPersonalizationService: LMListPersonalizationService,\n private lmListEventService: LMListEventService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmListStateService: LMListStateService,\n private lmStateHelperService: LMStateHelperService,\n private lmListTransactionService: LMListTransactionService,\n private lmListToolbarService: LMListToolbarService,\n private lmListUtilService: LMListUtilService,\n private lmLoggerService: LMLoggerService,\n private lmNavigationService: LMNavigationService,\n private lmSpecService: LMSpecService,\n private lmCompoundFieldService: LMCompoundFieldService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmBannerService: LMBannerService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmFieldPickerService: LMFieldPickerService,\n private lmKeyboardShortcutService: LMKeyboardShortcutService,\n private breakpointChangeService: BreakpointChangeService,\n private lmFormatterService: LMFormatterService,\n private lmConfigurationService: LMConfigurationService,\n private lmModelServiceAdapter: LMModelServiceAdapter,\n private lmSavedSearchService: LMSavedSearchService,\n private lmFormRequestService: LMFormRequestService\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n this.instanceId = this.lmLoggerService.instanceId;\n this.implementsCancellablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n this.cancelablePagingMessage = Soho.Locale.translate('CancellablePageRequestMessage');\n this.cancelablePagingActionMessage = Soho.Locale.translate('CancellablePageRequestActionMessage');\n this.uiLoadingIndicatorTimeout = this.lmContextService.uiLoadingIndicatorTimeout;\n\n this.testVersion1 = lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n // // This is added for now to get by an issue where the preceived loading of the component is delayed.\n // // The constructor is called but then a 4-10 second delay is seen before the ngOnInit is called.\n // // The issue was written up but the issue closed as no example was submitted and the problem was not\n // // seen by a large number of people. Current plan is to try to dup the issue in a small example and\n // // submit. A link to the issue Below\n // // https://github.com/angular/angular/issues/18816\n setTimeout(() => {\n this.zone.run(() => {\n // CHANGE DETECTION\n if (this.url3_5) {\n this.changeDetectorRef.detectChanges();\n }\n });\n });\n\n this.routerEventsSubscription = router.events.subscribe((event: Event) => {\n // todo ppatton comment out navigation end now that we don't re-use routes.\n // Will need to handle this once we implement our own RouteReuseStrategy.\n if (event instanceof NavigationEnd) {\n // this.currentComponent.setRouteComponent(this); // why do I have to cast this?\n // if (this.isRouterOutletRootComponent && this.initialBuildComplete) {\n // // ---------------------------------------------------------------------\n // // Called when this ListComponent object is reused by angular.\n // // Call resetListComponent and build here as ngOnInit and\n // // ngAfterViewInit will not be called in this scenarios.\n // // ---------------------------------------------------------------------\n // this.resetListComponent();\n // this.showBusyIndicator();\n // this.build();\n // }\n // // setTimeout(() => {\n // // appRef.tick();\n // // });\n } else if (event instanceof NavigationStart) {\n // show busy indicator when leaving a route.\n this.lmBusyIndicatorService.showBusyIndicator();\n\n // ---------------------------------------------------------------------\n // if starting a new navigation (leaving this route) then save this\n // lists state and personalizations\n // ---------------------------------------------------------------------\n // NOTE: if an access denied error happens then page won't be built.\n // Make sure to only saveState and personalizations if the component\n // is actually built.\n // ---------------------------------------------------------------------\n if (this.initialBuildComplete) {\n this.saveComponentState(true);\n }\n }\n });\n }\n\n /**\n * Sets if this is a rootRouterOutlet (for the case of the header toolbar) or if\n * there is a\n */\n ngOnInit() {\n this.lmLoggerService.time({ id: '>> Total List ' + this.instanceId });\n this.lmLoggerService.trace([ this, this.instanceId, 'ngOnInit()' ]);\n // -----------------------------------------------------------------\n // Have to use lmContextService.inMingleWidget here since spec\n // is null when this is the root router-outlet component.\n // -----------------------------------------------------------------\n if (!this.listSpec && !this.lmContextService.inMingleWidget() && !this.lmContextService.isHideTitlebar()) {\n this.isRouterOutletRootComponent = true;\n this.currentComponent.setRouteComponent(this as Component);\n }\n\n if (this.isRouterOutletRootComponent) {\n this.route.queryParams.subscribe(params => {\n this.reportListTitle = params.reportListTitle;\n });\n }\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec) || this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n this.uiLoadingIndicatorTimeout = 40000;\n }\n\n this.showBusyIndicator();\n this.subscribeListEvents();\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.trace([ this, this.instanceId, 'ngAfterViewInit()' ]);\n\n // temp fix: Only fire the the build here on the initial load\n if (!this.initialBuildComplete) {\n setTimeout(() => this.build());\n }\n }\n\n ngOnDestroy() {\n if (this.backReferenceSub) {\n this.backReferenceSub.unsubscribe();\n }\n\n this.resetListComponent();\n\n this.setComponentDestroyed();\n\n /**\n * Waiting for https://github.com/tc39/proposal-optional-chaining\n * to do this in a more elegant way\n */\n if (this.lmBannerHeaderCompRef &&\n this.lmBannerHeaderCompRef.instance &&\n this.lmBannerHeaderCompRef.instance.sohoHeader) {\n this.lmBannerHeaderCompRef.instance.sohoHeader.removeBackButton();\n }\n\n /**\n * Only call un-subscribe from routerOutletSubscription on ngOnDestory\n * since it's created in the constructor and is necessary when\n * ListComponent object is being re-used.\n */\n if (this.routerEventsSubscription) {\n this.routerEventsSubscription.unsubscribe();\n }\n\n if (this.toolbarButtonEventSubscription) {\n this.toolbarButtonEventSubscription.unsubscribe();\n }\n\n if (this.toolbarSearchEventSubscription) {\n this.toolbarSearchEventSubscription.unsubscribe();\n }\n\n if (this.toolbarSearchClearedEventSubscription) {\n this.toolbarSearchClearedEventSubscription.unsubscribe();\n }\n\n if (this.detailFieldsFormModelSub$) {\n this.detailFieldsFormModelSub$.unsubscribe();\n }\n\n // added to try to fix memory leak in IE11 when using the harness\n this.lmBannerHeaderCompRef = null;\n this.toolbarMoreMenuSettings = null;\n\n this.listEventSubs.forEach((sub: Subscription) => sub.unsubscribe());\n }\n\n expandDrawerSide() {\n this.lmListEventService.expandDrawerSide();\n }\n\n public allowPageNavigation(): Promise | boolean {\n if (this.checkSaveRequired()) {\n if (this.modalOpen()) {\n // let just ask if they want to stay,\n // difficult to determine the modal's purpose -\n // it may run an action or it may just return unsaved data\n return this.displayNavigationConfirmation();\n } else {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(continueOn => {\n youMayNavigateSource.next(continueOn);\n youMayNavigateSource.complete();\n this.hideBusyIndicator();\n });\n\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n }\n return true;\n }\n\n private handleUnsavedChanges(info: LMDialogInfo): Observable {\n return new Observable(observer => {\n if (this.isModified()) {\n this.showUnsavedChanges(info).subscribe((response: UnsavedChangesResponse) => {\n if (response === LMDialogButtonKey.YES) {\n this.executeSaveAction(AppConstants.STANDARD_SAVE, observer);\n } else if (response === LMDialogButtonKey.NO) {\n this.clearDetailFieldsFormModelCache();\n this.listContentComponent.clearDirty();\n observer.next(true);\n observer.complete();\n } else {\n // Cancel. Stay put and do nothing!\n observer.next(false);\n observer.complete();\n }\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n private checkForUnsavedChanged(actionSpec?: LMActionSpec): Observable { // how is this different than checkSaveRequired\n return new Observable(observer => {\n const hasUnsavedChanges = actionSpec && 'DELETE' === actionSpec.type ? this.hasUnsavedChangesForDelete() : this.isModified();\n\n if (hasUnsavedChanges) {\n this.lmListUtilService.displayPagingConfirmation().subscribe( (okContinue: boolean) => {\n if (okContinue && this.hasDetailFields && this.detailfieldsFormModelCache.length) {\n this.clearDetailFieldsFormModelCache();\n }\n observer.next(okContinue);\n observer.complete();\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n checkSaveRequired() {\n return (this.isModified() || this.modalOpen());\n }\n\n modalOpen(): boolean {\n return this.lmListActionFormDialogService.modalOpen();\n }\n\n // TODO investigate refactoring this when implementing editable list. This is duplicated from lm-form.component.ts\n // and if the same could be moved to common area?\n displayNavigationConfirmation(): Promise {\n return this.lmListActionFormDialogService.displayNavigationConfirmation();\n }\n\n showBusyIndicator() {\n if (this.isRouterOutletRootComponent) {\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n }\n\n hideBusyIndicator() {\n if (this.isRouterOutletRootComponent) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n }\n\n public set toolbarSearchField(toolbarSearchField: LMToolbarSearchField) {\n if (this.isRouterOutletRootComponent) {\n this.lmBannerHeaderCompRef.instance.toolbarSearchField = toolbarSearchField;\n } else {\n this._toolbarSearchField = toolbarSearchField;\n }\n }\n\n public get toolbarSearchField(): LMToolbarSearchField {\n if (this.isRouterOutletRootComponent) {\n return this.lmBannerHeaderCompRef.instance.toolbarSearchField;\n } else {\n return this._toolbarSearchField;\n }\n }\n\n public get contextMenuId(): string {\n return this.lmListSpecUtilService.getContextMenuId(this.listSpec);\n }\n\n public get contextMenuEvent(): any {\n return this._contextMenuEvent;\n }\n\n public get displayType(): ListDisplayType {\n return this.listState.displayAs;\n }\n\n public resetListComponent() {\n if (this.lmListToolbarService) {\n this.lmListToolbarService.reset();\n }\n\n // this.maxVisibleButtons = null;\n this.toolbarSearchField = null;\n this.listStateKeyParams = null;\n this.listPersonalizationKeyParams = null;\n\n this.listSpec = undefined;\n this.chartName = undefined;\n\n this.showSearchForm = false;\n\n this.url3_5 = undefined;\n this.legacyWebUI = false;\n\n this.onBeforeContextMenuOpen = null;\n this.onBeforeListToolbarMoreMenuOpen = null;\n\n // reset the header toolbar if this is the root router-outlet component\n if (this.isRouterOutletRootComponent) {\n this.lmBannerHeaderCompRef.instance.hasTabs = false;\n this.lmListToolbarService.reset();\n this.lmBannerHeaderCompRef.instance.toolbarSearchField = undefined;\n }\n }\n\n public showPagingBarInDashboardPanel(): boolean {\n return this.listState.displayAs === AppConstants.LISTVIEWTYPE_LIST\n || this.listState.displayAs === AppConstants.LISTVIEWTYPE_LISTVIEW\n || this.listState.displayAs === AppConstants.LISTVIEWTYPE_IMAGELIST;\n\n }\n\n public get hasDetailSections(): boolean {\n return this.lmListSpecUtilService.hasDetailSections(this.listSpec);\n }\n\n public get isDetailSection(): boolean {\n return this.lmListSpecUtilService.isDetailSection(this.listSpec);\n }\n\n public get hasStandardDetailSections(): boolean {\n return (this.hasDetailSections && !this.isCardViewWithDetailSections);\n }\n\n public get isFilterList(): boolean {\n return this.lmListSpecUtilService.isFilterList(this.listSpec);\n }\n\n public get isCardViewWithDetailSections(): boolean {\n return this.lmListSpecUtilService.isCardViewWithDetailSections(this.listSpec);\n }\n\n public get isCardViewOnly(): boolean {\n return this.lmListSpecUtilService.isCardViewOnly(this.listSpec);\n }\n\n public get isGallery(): boolean {\n return this.lmListSpecUtilService.isGallery(this.listSpec);\n }\n\n public get hasSearchTags(): boolean {\n return this.searchTags.length > 0;\n }\n\n public get isCubeView(): boolean {\n return this.lmListSpecUtilService.isCubeView(this.listSpec);\n }\n\n public get isAudit(): boolean {\n return this.lmListSpecUtilService.isAudit(this.listSpec);\n }\n\n public get implementsAuditCompare(): boolean {\n return this.lmListSpecUtilService.implementsAuditCompare(this.listSpec);\n }\n\n public get showChangeValuesOnRight(): boolean {\n return this.lmListSpecUtilService.showChangedValuesOnRight(this.listSpec);\n }\n\n public get hasDetailFields(): boolean {\n // TODO: future - need to check if a card view with detail fields and not allow\n return (\n this.listState.displayAs !== AppConstants.LISTVIEWTYPE_IMAGELIST &&\n this.listState.displayAs !== AppConstants.LISTVIEWTYPE_CHART &&\n this.listState.displayAs !== AppConstants.LISTVIEWTYPE_CALENDAR &&\n !!this.listSpec.busListSpec.detailFieldsSpec\n );\n }\n\n public get detailFieldsClass() {\n return {\n 'detail-fields-below': this.listSpec.busListSpec.hasDetailFieldsBelow && !(this.listState && (this.listState.displayAs === AppConstants.LISTVIEWTYPE_HIERARCHY || this.listState.displayAs === AppConstants.LISTVIEWTYPE_IMAGELIST)),\n 'detail-fields-on-side': this.listSpec.busListSpec.hasDetailFieldsOnSide || this.showChangeValuesOnRight\n };\n }\n\n public get implementsOrgChartView(): boolean {\n return this.listSpec.busListSpec.implementsOrgChartView;\n }\n\n public get hasSearchForm(): boolean {\n return this.lmListUtilService.hasSearchForm(this.listSpec, this.isDashBoardContent);\n }\n\n public get hasKeyWordSearch(): boolean {\n if (!this.displayToolbar) {\n return false;\n }\n return this.listSpec.busListSpec.keywordSearch !== undefined;\n }\n\n public get hasScannableKeyword(): boolean {\n if (this.lmContextService.insideInforGo() && this.listSpec.busListSpec.keywordSearch) {\n return this.listSpec.busListSpec.keywordSearch.scannable;\n }\n\n return false;\n }\n\n public get hasKeywordIcons(): boolean {\n if (!this.hasSearchForm && !this.hasScannableKeyword) {\n return false;\n }\n\n if ((this.hasSearchForm && !this.searchFormIsAlways) || this.hasScannableKeyword) {\n return true;\n }\n\n return false;\n }\n\n public get keywordSearchWidth(): string {\n if (this.hasSearchForm && !this.searchFormIsAlways) {\n if (this.hasScannableKeyword) {\n return 'calc(100% - 70px)';\n } else {\n return 'calc(100% - 35px)';\n }\n }\n\n if (this.hasScannableKeyword) {\n return 'calc(100% - 35px)';\n }\n\n return '100%';\n }\n\n\n public get hasSearchFields(): boolean {\n // don't allow search forms mingle widgets\n if (this.listSpec.showAsMingleWidget) {\n return false;\n }\n\n // don't allow search forms in dashboard panels\n if (this.isDashBoardContent) {\n return false;\n }\n\n return this.listSpec.busListSpec.searchFields !== undefined;\n }\n\n public get searchFormIsAlways(): boolean {\n return this.listSpec.busListSpec.searchForm?.alwaysDisplaySearch;\n }\n\n public get searchFormIsInitial(): boolean {\n return this.listSpec.busListSpec.displaySearch === 'initially';\n }\n\n public get searchFormIsImplied(): boolean {\n return (\n this.listSpec.busListSpec.searchForm.useSearchAsFilter === undefined &&\n this.listSpec.busListSpec.displaySearch !== 'initially'\n );\n }\n\n public get searchFormIsDefault(): boolean {\n return (\n this.listSpec.busListSpec.searchForm &&\n this.listSpec.busListSpec.searchForm.alwaysDisplaySearch &&\n this.listSpec.busListSpec.displaySearch !== 'initially'\n );\n }\n\n public get searchFormOptions(): LMFormOptions {\n let alphaCondition = 'contains';\n if(!!this.listSpec?.busListSpec?.alphaDefaultFilter) {\n alphaCondition = this.listSpec?.busListSpec?.alphaDefaultFilter;\n }\n const options = {\n disableMaxHeightSearchFormKludge: !this.isCardViewWithDetailSections,\n filterCriteria: this.filterCriteria,\n defaultAlphaFilterCondition: alphaCondition\n } as LMFormOptions;\n return options;\n }\n\n public get searchFieldOnCardViewWithDetails(): boolean {\n return this.isCardViewWithDetailSections && (this.hasKeyWordSearch || this.hasSearchFields);\n }\n\n public get searchTags(): LMListSearchTag[] {\n return this.filterCriteria?.length ? this.lmListUtilService.buildSearchTags(this.filterCriteria) : [];\n }\n\n /**\n * IMPORTANT: Should only be called once during the initial build of this component.\n */\n private buildLandmarkPanels() {\n const detailSections = this.listSpec.busListSpec.detailSections;\n if (!detailSections) {\n return;\n }\n this.detailSectionPanels = [];\n for (let i = 0, len = detailSections.length; i < len; i++) {\n const title = detailSections[ i ].title;\n const useTwelveColumn = !!this.listSpec.busListSpec.useTwelveColumnGrid || !!detailSections[ i ].useTwelveColumnGrid;\n\n const landmarkPanel: LandmarkPanel = {\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n type: detailSections[ i ].type,\n title: title.resourceValue,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n activated: false,\n needsReload: false,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n selected: (this.listState.selectedTabIndex === i),\n useTwelveColumnGrid: useTwelveColumn,\n spanningColumns: useTwelveColumn ? detailSections[ i ].twelveColumnGridSpan : undefined\n };\n\n if (this.listSpec.busListSpec.implementsDashBoardView && !this.listSpec.busListSpec.useTwelveColumnGrid) {\n landmarkPanel.widgetWidth = this.lmSpecService.toWidgetSizeToType(detailSections[i].dashboardViewWidth);\n landmarkPanel.widgetHeight = this.lmSpecService.toWidgetSizeToType(detailSections[i].dashboardViewHeight);\n }\n\n switch (detailSections[ i ].type) {\n case 'cardview': landmarkPanel.displayFields = detailSections[ i ].displayFields; break;\n case 'instancecountchart': landmarkPanel.formSpec = detailSections[ i ].formSpec; break;\n case 'link': landmarkPanel.url = detailSections[ i ].URL; break;\n\n case 'standardform':\n landmarkPanel.formSpec = detailSections[ i ].formSpec;\n landmarkPanel.formSpec.disableFieldOptions = landmarkPanel.formSpec.disableFieldOptions || this.listSpec.busListSpec.disableFieldOptions;\n break;\n\n case 'dashboard':\n landmarkPanel.dashBoardPanes = this.buildPanelsOnDetailsSection(detailSections[ i ]);\n landmarkPanel.dashboardColumns = detailSections[ i ].dashboardColumns;\n break;\n\n case 'list':\n landmarkPanel.listSpec = detailSections[ i ].listSpec;\n landmarkPanel.filterListSpecs = detailSections[ i ].filterListSpecs;\n landmarkPanel.hasNestedCardViewDetailSections = this.lmListSpecUtilService.isCardViewWithDetailSections(landmarkPanel.listSpec);\n landmarkPanel.implementsManualLoad = detailSections[ i ].implementsManualLoad;\n landmarkPanel.manualLoadInfo = detailSections[ i ].manualLoadInfo;\n break;\n\n case 'multilist':\n landmarkPanel.sections = detailSections[ i ].sections;\n break;\n\n default: break;\n }\n\n this.detailSectionPanels.push(landmarkPanel);\n }\n }\n\n private buildPanelsOnDetailsSection(detailSection: LMBusDetailSection) {\n const detailSections = detailSection.detailSections;\n const dashBoardPanes: LandmarkPanel[] = [];\n if (detailSections) {\n for (let i = 0, len = detailSections.length; i < len; i++) {\n const title = detailSections[ i ].title;\n\n switch (detailSections[ i ].type) {\n case 'cardview':\n dashBoardPanes.push({\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n title: title.resourceValue,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n initialized: false,\n loaded: false,\n reload: false,\n activated: false,\n needsReload: false,\n disabled: false,\n hidden: false,\n displayFields: detailSections[ i ].displayFields,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n type: detailSections[ i ].type,\n visibility: [ detailSections[ i ].visibility ],\n useTwelveColumnGrid: detailSections[ i ].useTwelveColumnGrid,\n spanningColumns: detailSections[ i ].twelveColumnGridSpan\n });\n break;\n case 'list':\n\n dashBoardPanes.push({\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n title: title.resourceValue,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n initialized: false,\n loaded: false,\n reload: false,\n activated: false,\n needsReload: false,\n disabled: false,\n hidden: false,\n listSpec: detailSections[ i ].listSpec,\n type: detailSections[ i ].type,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n visibility: [ detailSections[ i ].visibility ],\n useTwelveColumnGrid: detailSections[ i ].useTwelveColumnGrid,\n spanningColumns: detailSections[ i ].twelveColumnGridSpan\n });\n break;\n\n case 'standardform':\n dashBoardPanes.push({\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n title: title.resourceValue,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n activated: false,\n needsReload: false,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n formSpec: detailSections[ i ].formSpec,\n type: detailSections[ i ].type,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n visibility: [ detailSections[ i ].visibility ],\n useTwelveColumnGrid: detailSections[ i ].useTwelveColumnGrid,\n spanningColumns: detailSections[ i ].twelveColumnGridSpan\n });\n break;\n\n case 'instancecountchart':\n dashBoardPanes.push({\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n title: title.resourceValue,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n activated: false,\n needsReload: false,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n formSpec: detailSections[ i ].formSpec,\n type: detailSections[ i ].type,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n visibility: [ detailSections[ i ].visibility ],\n useTwelveColumnGrid: detailSections[ i ].useTwelveColumnGrid,\n spanningColumns: detailSections[ i ].twelveColumnGridSpan\n });\n break;\n\n case 'link':\n dashBoardPanes.push({\n id: detailSections[ i ].id,\n automationId: detailSections[ i ].automationId,\n title: title.resourceValue,\n url: detailSections[ i ].URL,\n content: '',\n isVisible: true,\n isValid: true,\n index: i,\n activated: false,\n needsReload: false,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n formSpec: detailSections[ i ].formSpec,\n type: detailSections[ i ].type,\n overviewNavigation: detailSections[ i ].overviewNavigation,\n visibility: [ detailSections[ i ].visibility ],\n useTwelveColumnGrid: detailSections[ i ].useTwelveColumnGrid,\n spanningColumns: detailSections[ i ].twelveColumnGridSpan\n });\n break;\n\n default:\n break;\n }\n\n if (dashBoardPanes[ i ]) {\n dashBoardPanes[ i ].widgetWidth = this.lmSpecService.toWidgetSizeToType(detailSections[ i ].dashboardViewWidth);\n dashBoardPanes[ i ].widgetHeight = this.lmSpecService.toWidgetSizeToType(detailSections[ i ].dashboardViewHeight);\n }\n }\n }\n return dashBoardPanes;\n }\n\n onClearSearchCriteria() {\n this.onClearSearchClicked({ event: null, filterCriteria: [] });\n }\n\n onDataLoaded(listDataResponse: LMListPagingResponse) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onDataLoaded()', this.listComponentId, listDataResponse ]);\n this.hideBusyIndicator();\n\n this.disabled = !listDataResponse;\n if (this.disabled) {\n this.clearComponentState();\n }\n\n if (this.isCardViewWithDetailSections) {\n if (this.hasKeyWordSearch) {\n if (this.listSpec.busListSpec.keywordSearch.label) {\n this.searchPlaceholder = this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.keywordSearch.label, listDataResponse.dataViewSet.header);\n } else {\n this.searchPlaceholder = Soho.Locale.translate('SearchByKeyword');\n }\n } else if (this.hasSearchFields) {\n this.searchPlaceholder = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SearchByField'),\n this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.searchFields.fields[ 0 ].label, listDataResponse.dataViewSet.header));\n }\n }\n\n /**\n * todo stop gap for now - This happens when a detail section\n * cannot load data due to multiple upper records being selected.\n * maybe use this to set the list and toolbar to disabled.\n */\n if (listDataResponse && listDataResponse.dataViewSet) {\n if (listDataResponse.searchDataView) {\n // -------------------------------------------------------------------------------\n // this.initialize() has already loaded filterCriteria from list state so at\n // this point we just need to fill out the dataViewSet .searchDataView that was\n // loaded in our initial page.\n // -------------------------------------------------------------------------------\n this.searchFormDataView = listDataResponse.searchDataView;\n this.fillOutDataViewFromFilterCriteria(this.searchFormDataView, this.listState.filterCriteria);\n }\n\n /**\n * Build toolbar menus\n * Update toolbar state\n * todo kh - need to handle menu and toolbar when dataViewSet is null.\n * todo kh - This can happen when a dependent list has no fromDataView.\n */\n // todo ppatton both buildToolbar here and updateToolbar in onListRowSelected() are essentially causing the toolbar to update twice.\n this.buildToolbar();\n\n this.setScreenTitle(listDataResponse.dataViewSet.header);\n } else {\n this.setScreenTitle();\n }\n\n let needSendBusinessMessage = this.isRouterOutletRootComponent;\n if (this.listSpec.listType !== 'select') {\n // -------------------------------------------------------------------------------\n // Don't perform initial row selection on a 'select' list. The row selection\n // will cause the default row to be selected and dismiss the select list. Only\n // the users should initiate a row selection for a select list.\n // -------------------------------------------------------------------------------\n const selectedRow = this.performInitialRowSelection(listDataResponse && listDataResponse.resetSelection);\n if (selectedRow === -1) {\n if (this.lmListSpecUtilService.getSelectionMode(this.listSpec) === 'single') {\n const listRowData: LMListRowData = { idx: selectedRow, data: {}, elem: null };\n const event: LMListSelectionEvent = new LMListSelectionEvent(this, [ listRowData ]);\n this.listRowSelected.emit(event);\n } else {\n const dataGridActivatedRow: LMListRowActivatedEvent = { row: selectedRow, item: {} };\n const event2: LMListRowActivationEvent = new LMListRowActivationEvent(this, dataGridActivatedRow);\n this.listRowActivated.emit(event2);\n }\n\n if (this.hasDependentData) {\n // Address setting the fromDataView so that detail sections or fields get updated\n if (this.listSpec.busListSpec.detailSections) {\n this.processDetailSections(selectedRow);\n }\n if (this.listSpec.busListSpec.detailFieldsSpec) {\n this.processDetailFields(selectedRow);\n }\n }\n\n if (!this.listSpec.dependentList) {\n needSendBusinessMessage = true;\n }\n\n if (this.hasDetailFields && this.detailFieldsFormModel) {\n this.detailFieldsFormModel = undefined;\n }\n }\n\n // Setup initial detail section display\n this.showDetailSections(selectedRow);\n\n if (this.listSpec.busListSpec.implementsAuditCompare) {\n this.processAuditCompareValues(selectedRow);\n }\n } else {\n const row = this.lmListUtilService.getInitialActivatedRow(this.listSpec, this.listState, this.fromDataView);\n const dataViewSet = this.listContentComponent.getDataViewSet();\n if (dataViewSet && dataViewSet.data && dataViewSet.data.length) {\n this.performInitialRowSelectionComplete = false;\n\n // if single select use select vs activate row\n const selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, !this.isSelectListInSelectionMode(), this.selectRequestData?.allowMultiSelections);\n if (selectionMode === 'single') {\n this.listContentComponent.setSelectedRows([ row ], true);\n } else {\n this.listContentComponent.activateRow(row, true);\n }\n\n this.performInitialRowSelectionComplete = true;\n }\n }\n\n /**\n * Set the state of the fromResourceId. Thsi will be used\n * to determine if the fromDataView has changed.\n */\n if (this.listSpec.dependentList && this.fromDataView) {\n // --------------------------------------------------------------------\n // Save off the fromDataView resourceId to compare when re-initializing\n // a dependent list. If the fromResourceId's are identical then the\n // list can be run with all other state if valid.\n // For Example: currentPagingUrl, selectedRows, activatedRow\n // --------------------------------------------------------------------\n this.listState.fromResourceId = (this.fromDataView.cubeInfo) ? this.fromDataView.dataViewResId : this.fromDataView.resourceId;\n }\n\n const loadTime = this.lmLoggerService.timeEnd('>> Total List ' + this.instanceId, [ this, 'onDataLoaded()', 'end' ]);\n\n if (!this.hasSearchForm) {\n this.listDisplayed.emit(this);\n }\n\n if (!this.lmListSpecUtilService.isDashBoardContent(this.listSpec)) {\n this.dashboardVisibility = 'visible';\n }\n\n if (this.isRouterOutletRootComponent) {\n this.sendPageAnalytics(loadTime);\n this.sendShortcut();\n }\n\n if (needSendBusinessMessage) {\n this.sendBusinessContext();\n }\n\n if (this.listSpec.isHelperList) {\n this.lmHelperListDialogService.updateHelperListButtonState(this.listSpec?.busClassSpec?.actions, listDataResponse?.dataViewSet);\n }\n }\n\n private sendPageAnalytics(loadTime: number): void {\n if (this.listSpec.listType === 'select' || this.listSpec.dependentList || this.listSpec.listType === 'helper') {\n return;\n }\n\n // eslint-disable-next-line no-unused-vars\n this.lmGlobalUtilService.updateClientStatsTelegraf(this.getComponentInfo(), loadTime).subscribe((response: any) => {});\n }\n\n private sendShortcut(): void {\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'helper') {\n return;\n }\n this.lmContextUtilService.enableStandardShortcut();\n }\n\n public sendBusinessContext(contextMsgs?: any): void {\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'filterlist' || this.listSpec.listType === 'helper') {\n return;\n }\n\n if (!this.listContentComponent) {\n return;\n }\n\n const dataViewSet: LMDataViewSet = this.getDataViewSet();\n const activeRow: number = this.listState.activatedRow !== undefined && this.listState.activatedRow !== -1\n ? this.listState.activatedRow\n : (this.listState.selectedRows && this.listState.selectedRows.length > 0) ? this.listState.selectedRows[ 0 ] : null;\n\n this.lmContextUtilService.buildContextMessages({\n busFormName: this.listSpec.busListSpec.name,\n busClassName: this.listSpec.busClassSpec.name,\n widgetEventPrefix: AppConstants.RESOURCETYPE_LIST,\n dataObj: dataViewSet,\n rows: this.listState.selectedRows,\n activeRow,\n busContextMessages: this.listSpec.busContextMessages,\n busContextInvocations: this.listSpec.busContextInvocations\n })\n .subscribe((msgObj: any) => {\n if (msgObj.status === AppConstants.STATUS_COMPLETED) {\n\n if (contextMsgs) {\n msgObj = this.lmContextUtilService.mergeContextMessages({ sourceMsgs: msgObj, addMsgs: contextMsgs });\n }\n\n if (this.isRouterOutletRootComponent) {\n this.lmContextUtilService.clearAll();\n this.lmContextUtilService.sendContextMessages(msgObj);\n } else {\n this.sendContextMessageEvent.emit(msgObj);\n }\n }\n });\n }\n\n onBeforeContextMenuOpen = (response: SohoPopupMenuResponseFunction, options: any) => {\n const listStateInfo = this.getStateInfo();\n\n // no op\n if (listStateInfo.disableAllActions) {\n return;\n }\n\n let dataView = listStateInfo.selectedDataView ? listStateInfo.selectedDataView : listStateInfo.dataViewSet.data[ 0 ];\n if (!dataView) {\n dataView = listStateInfo.dataViewSet.header;\n }\n\n const drillPointsParams: DrillPointsParams = {\n dataView,\n fieldId: this.listSpec.busListSpec.id\n };\n\n const relatedReportParams: RelatedReportParams = {\n sourceResourceUrl: this.listUrlInfo.relatedReportSourceUrl,\n listTitle: this.listTitle\n };\n\n const personalizeParams: PersonalizeParams = {\n sourceResourceUrl: this.listUrlInfo.reportPersonalizationUrl\n };\n\n const userListViewParams: UserListViewMenuParams = {\n userListViewUrl: this.lmUrlUtilService.buildUserListViewFetchUrl(this.listUrlInfo, this.listSpec),\n appliedUserListView: this.listState.userListViewItem?.userListView,\n disableSave: !this.listState.filterCriteria?.length,\n };\n\n let showDrillAround = false;\n if (this.lmContextService.getContext().disallowNavigations !== false && this.selectedDataViews.length === 1) {\n const selectedDataView = this.selectedDataViews[ 0 ];\n // // don't show drill if the row is create inline, or oa sub total row\n if (selectedDataView && !selectedDataView.isNewRow && !(selectedDataView.isSubtotalView || selectedDataView.isSubtotalSummaryView)) {\n showDrillAround = true;\n }\n }\n\n const buttons = this.lmListToolbarService.getContextMenu(this.listSpec, listStateInfo);\n\n this.lmListToolbarService.buildMoreButtonMenu(this.listSpec, response, options, buttons,\n { drillParams: drillPointsParams, showDrillAround, isContextMenu: true, personalizeParams, relatedReportParams, userListViewParams });\n };\n\n onBeforeListToolbarMoreMenuOpen = (response: SohoPopupMenuResponseFunction, options: any) => {\n let buttons;\n if (this.isRouterOutletRootComponent && !this.isCardViewWithDetailSections && !this.isCubeView) {\n buttons = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.flexMoreButtons;\n if (options.isSubmenu) {\n // if a submenu, then need all the buttons for flex toolbar. This is because a menu button could get overflowed\n // and since it was in the buttonset, it wasn't in the flexMoreButtons\n buttons = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.flexButtons;\n }\n } else {\n buttons = this.toolbarComponent.flexMoreButtons;\n if (options.isSubmenu) {\n // if a submenu, then need all the buttons for flex toolbar. This is because a menu button could get overflowed\n // and since it was in the buttonset, it wasn't in the flexMoreButtons\n buttons = this.toolbarComponent.flexButtons;\n }\n }\n\n let showDrillAround = false;\n if (this.lmContextService.getContext().disallowNavigations !== false && this.selectedDataViews.length === 1) {\n const selectedDataView = this.selectedDataViews[ 0 ];\n // don't show drill if the row is create inline, or oa sub total row\n if (selectedDataView && !selectedDataView.isNewRow && !(selectedDataView.isSubtotalView || selectedDataView.isSubtotalSummaryView)) {\n showDrillAround = true;\n }\n }\n\n if (options.hasOwnProperty('contextElement')) {\n const listStateInfo = this.getStateInfo();\n let dataView = listStateInfo.selectedDataView ? listStateInfo.selectedDataView : listStateInfo.dataViewSet?.data[ 0 ];\n if (!dataView) {\n dataView = listStateInfo.dataViewSet?.header;\n }\n\n const drillPointsParams: DrillPointsParams = {\n dataView,\n fieldId: this.listSpec.busListSpec.id\n };\n\n const relatedReportParams: RelatedReportParams = {\n sourceResourceUrl: this.listUrlInfo.relatedReportSourceUrl,\n listTitle: this.listTitle\n };\n\n const personalizeParams: PersonalizeParams = {\n sourceResourceUrl: this.listUrlInfo.reportPersonalizationUrl\n };\n\n const userListViewParams: UserListViewMenuParams = {\n userListViewUrl: this.lmUrlUtilService.buildUserListViewFetchUrl(this.listUrlInfo, this.listSpec),\n appliedUserListView: this.listState.userListViewItem?.userListView,\n disableSave: !this.listState.filterCriteria?.length,\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n let relatedActionsFunction: (response: AjaxBeforeOpenResponseFunction, options: any) => void;\n if (this.toolbarComponent) {\n relatedActionsFunction = this.toolbarComponent.onBeforeRelatedActionsOpen;\n } else if (this.lmBannerHeaderCompRef.instance.lmToolbarComponent) {\n relatedActionsFunction = this.lmBannerHeaderCompRef.instance.lmToolbarComponent.onBeforeRelatedActionsOpen;\n }\n\n this.lmListToolbarService.buildMoreButtonMenu(this.listSpec, response, options, buttons, { drillParams: drillPointsParams,\n showDrillAround, isContextMenu: false, personalizeParams, relatedReportParams, userListViewParams }, relatedActionsFunction);\n } else {\n const responseString = this.lmListToolbarService.buildFirstLevelMoreMenu(this.listSpec, buttons, showDrillAround);\n response(responseString);\n }\n };\n\n private fillOutDataViewFromFilterCriteria(searchFormDataView: LMDataView, filterCriteria: Array): void {\n // initialize all search form fields to blank so nothing is pre-selected; done only for those fields on\n // the search form; otherwise, it affects condition checking, i.e., visible when, etc.\n const formSpec = this.listSpec.busListSpec.searchForm.formSpec.busFormSpec;\n const layout = formSpec.busFormLayoutSpec.layout;\n\n // only clear out values for boolean fields. Without this, the blank value on a boolean field isn't selected by default,\n // and it isn't selected when the field is cleared\n this.lmCommonUtilService.getBindIdsFromLayout(layout, formSpec.fields).filter((bindId: string) => formSpec.fields[bindId] && formSpec.fields[bindId].type === 'BOOLEAN')\n .forEach((bindId: string) => this.clearSearchFormDataViewField(bindId, searchFormDataView));\n\n // then apply filter criteria\n if (filterCriteria && filterCriteria.length > 0) {\n filterCriteria.forEach(item => {\n if (this.toolbarSearchField && item.fieldId === this.toolbarSearchField.fieldId) {\n this.toolbarSearchField = Object.assign({}, this.toolbarSearchField, { value: item.value });\n }\n\n if (searchFormDataView.fields[ item.fieldId ]) {\n const dvField = searchFormDataView.fields[ item.fieldId ];\n dvField.value = item.value;\n\n // for a multiselect field, the member fields value needs to be set from the parent value array\n if (item.isMultiselectField && dvField.members) {\n\n for (let index = 0, len = dvField.members.length; index < len; index++) {\n const dvMember = searchFormDataView.fields[ dvField.members[ index ] ];\n\n // apply the indexed value from the parent value array\n dvMember.value = (item.value[ index ]) ? item.value[ index ] : '';\n\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n const stateValues = item.stateValues.filter(state => state.value == dvMember.value);\n\n // member field also needs the associated stateValues array for its value\n if (stateValues && stateValues.length > 0) {\n dvMember.stateValues = stateValues;\n }\n }\n } else if (item.isMultiselectField && !dvField.members) {\n // multiselect is a keyfield, so there are no dataview member fields. Push the selected state values into the dvField.stateValues\n dvField.stateValues = [];\n if (Array.isArray(item.value) && Array.isArray(item.stateValues)) {\n item.value.forEach(key => {\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n // eslint-disable-next-line eqeqeq\n const stateValue = item.stateValues.find(option => option.value == key);\n stateValue.selected = true;\n dvField.stateValues.push(stateValue);\n });\n }\n }\n }\n });\n }\n }\n\n private subscribeListEvents() {\n this.listEventSubs = [\n this.lmListEventService.cancelablePagingEvent$\n .subscribe((e: LMCancelablePagingEvent) => this.onCancellablePagingEvent(e)),\n\n this.lmListEventService.checkControlEvent$\n .subscribe((checkControlEvent: LMCheckControlEvent) => this.runCheckControlAction(\n checkControlEvent.columnDef,\n checkControlEvent.dataView,\n checkControlEvent.row\n )),\n\n this.lmListEventService.settingsChangedEvent$\n .subscribe((event: LMListSettingsChangedEvent) => {\n const eventColumns: ListGridColumn[] =\n event.columns.map(column => ({ id: column.id, width: column.width }));\n this.listPersonalization.columns = eventColumns;\n }),\n\n this.lmListEventService.contextMenuEvent$\n .subscribe((event: LMContextMenuEvent) => this.onContextMenu(event)),\n\n this.lmListEventService.dataLoadedEvent$\n .subscribe((event: LMListPagingResponse) => this.onDataLoaded(event)),\n\n this.lmListEventService.fieldChangedEvent$\n .subscribe((event: LMListFieldChangedEvent) => this.onContentModified(event)),\n\n this.lmListEventService.formButtonEvent$\n .subscribe((event: LMFormButtonEvent) => this.onFormButtonEvent(event)),\n\n this.lmListEventService.listKeyDownEvent$\n .subscribe((event: LMListKeyDownEvent) => this.onListKeyDown(event)),\n\n this.lmListEventService.listDragDropEvent$\n .subscribe((event: LMListDragDropEvent) => this.listDragDropEvent.emit(event)),\n\n this.lmListEventService.listRowActivatedEvent$\n .subscribe((event: LMListRowActivatedEvent) => this.onListRowActivated(event)),\n\n this.lmListEventService.listRowDeactivatedEvent$\n .subscribe((event: LMListRowActivatedEvent) => this.onListRowDeactivated(event)),\n\n this.lmListEventService.listRowSelectedEvent$\n .subscribe((event: LMListRowSelectedEvent) => this.onListRowSelected(event)),\n\n this.lmListEventService.listRowClickedEvent$\n .subscribe((event: LMListRowClickedEvent) => this.onListRowClicked(event)),\n\n this.lmListEventService.listRowDoubleClickedEvent$\n .subscribe((event: LMListRowClickedEvent) => this.onListRowDoubleClicked(event)),\n\n this.lmListEventService.listGridBeforePagingEvent$\n .subscribe((event: LMListGridPagingEvent) => this.onListGridBeforePaging(event)),\n\n this.lmListEventService.listHierarchyDoubleClickedEvent$\n .subscribe((dataView: LMDataView) => this.runOpenAction(dataView)),\n\n this.lmListEventService.hierarchyActionMenuItemSelectedEvent$\n .subscribe((event: LMBusActionReference) => this.runToolbarButtonAction(event)),\n\n this.lmListEventService.listBarCodeClickedEvent$\n .subscribe((event: LMListBarCodeClickedEvent) => this.onListBarCodeClicked(event)),\n\n this.lmListEventService.listLookupClickedEvent$\n .subscribe((event: LMListLookupClickedEvent) => this.onListLookupClicked(event)),\n\n this.lmListEventService.listFieldLookupClickedEvent$\n .subscribe((event: LMListFieldLookupClickedEvent) => this.onListFieldLookupClicked(event)),\n\n this.lmListEventService.listFilterLookupClickedEvent$\n .subscribe((event: LMListFilterLookupClickedEvent) => this.onListFilterLookupClicked(event)),\n\n this.lmListEventService.listFilterClearClickedEvent$\n .subscribe((event: LMListFilterClearClickedEvent) => this.onListFilterClearClicked(event)),\n\n this.lmListEventService.listOpenCompactFormEvent$\n .subscribe((event: LMListOpenCompactFormEvent) => this.openCompactFormDialog(event)),\n\n this.lmListEventService.uiLinkEvent$\n .subscribe((event: LMUILinkEvent) => this.onUILinkEvent(event)),\n\n this.lmListEventService.sendContextMessageEvent$\n .subscribe((event: any) => this.onSendContextMessageEvent(event)),\n\n this.lmListEventService.toolbarButtonEvent$\n .subscribe((event: LMToolbarButtonEvent) => this.onToolbarButtonEvent(event)),\n\n this.lmListEventService.buildToolbarEvent$.subscribe(() => this.buildToolbar()),\n\n this.lmListEventService.updateToolbarStateEvent$\n .subscribe(() => this.onUpdateToolbarStateEvent()),\n\n this.lmListEventService.cubeEvent$\n .subscribe((event: LMCubeEvent) => this.onCubeEvent(event)),\n\n this.lmListEventService.clearSearchCriteriaEvent$\n .subscribe(() => this.onClearSearchCriteria()),\n\n this.lmListEventService.busyIndicatorDisplayedEvent$\n .subscribe((event: LMBusyIndicatorDisplayedEvent) => this.busyIndicatorDisplayedEvent.emit(event)),\n\n this.lmListEventService.updateFilterCriteriaSource$\n .subscribe((filterCriteria: LMFilterFieldCriteria[]) => {\n // Filter event from the list grid filter occurred. Save the filter criteria, and check if there is a value\n // in the toolbar search field\n this.filterBarFilterFieldCriteria = this.lmListUtilService.mergeStickyModifier(filterCriteria, this._columnfilterOperators, this.hasSearchForm);\n // safety, there can't be search form when using a filter\n this.searchFormFilterFieldCriteria = [];\n if (this.toolbarSearchField) {\n this.toolbarSearchFieldFilterCriteria =\n this.toolbarSearchField.value ? [ this.getToolbarSearchFilterCriteria() ] : [];\n }\n this.setFilterCriteria();\n }),\n\n this.lmListEventService.filterOperatorChangedEvent$\n .subscribe((event: LMListFilterOperator) => {\n this._columnfilterOperators.set(event.id, event.operator);\n })\n ];\n }\n\n onFormButtonEvent(formButtonEvent: LMFormButtonEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onFormButtonEvent()', formButtonEvent.event ]);\n\n const row: number = formButtonEvent.row;\n const cell: number = formButtonEvent.cell;\n const columnDef: ListGridColumn = formButtonEvent.columnDef;\n const dataView: LMDataView = formButtonEvent.dataView;\n const event = formButtonEvent.event;\n\n if (dataView?.doesNotExist) {\n return;\n }\n\n if (columnDef.displayField.formInvokeName) {\n this.runFormInvoke(columnDef.displayField.formInvokeName, dataView);\n } else if (columnDef.displayField.actionSpec) {\n this.runAction(columnDef.displayField.actionSpec, row);\n } else if (columnDef.displayField.documentResourceId ||\n (columnDef.displayField.buttonRow && columnDef.displayField.buttonRow[ 0 ].documentResourceId)) {\n const drId = columnDef.displayField.documentResourceId ? columnDef.displayField.documentResourceId : columnDef.displayField.buttonRow[ 0 ].documentResourceId;\n const fieldId = columnDef.displayField.fieldId ? columnDef.displayField.fieldId : undefined;\n this.openDocumentResource(drId, dataView, fieldId);\n } else if (columnDef.displayField.buttonSubForm) {\n this.openSubFormDialog(columnDef, row, cell, dataView);\n } else if (columnDef.displayField.type === AppConstants.FORMREFERENCE) {\n this.runFormReference(columnDef.displayField, dataView);\n } else if (columnDef.displayField.type === AppConstants.LISTREFERENCE) {\n this.runListReference(columnDef.displayField.relationResourceId, columnDef.displayField.resourceId, dataView);\n } else if (formButtonEvent.cardButtonActionReference) {\n this.runActionReference(formButtonEvent.cardButtonActionReference);\n } else {\n this.lmLoggerService.log([ this, this.instanceId, 'unrecognized onFormButtonEvent', event ]);\n return;\n }\n\n if (event && event.originalEvent) {\n event.originalEvent.preventDefault();\n } else {\n event.preventDefault();\n }\n }\n\n onUILinkEvent(uiLinkEvent: LMUILinkEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onUILinkEvent()', uiLinkEvent.event ]);\n const columnDef: ListGridColumn = uiLinkEvent.columnDef;\n const dataView: LMDataView = this.listSpec.isTemplateList ? uiLinkEvent.dataView.dataView : uiLinkEvent.dataView;\n const event = uiLinkEvent.event;\n\n // Ignore a navigation event from an inline create row\n if (dataView?.isNewRow) {\n return;\n }\n\n // Ignore a navigation event from a select list. Will need to reassess when\n // navigations are enabled on a select list dialog when in edit mode.\n if (this.listSpec?.listType === 'select') {\n return;\n }\n\n // Add fromListResource parameter to the navigation url? LMCLIENT-31792\n // If the navigation is resulting from noDataMessage button, there is no record to lookup.\n // In that case, fromListResource is not needed in the url. Navigation to the form is in create mode.\n const setFromListResource = (uiLinkEvent.options && uiLinkEvent.options.fromNoDataMessageFormButton) ? false : true;\n if (uiLinkEvent.navigationParams) {\n this.runLinkNavigation(uiLinkEvent.navigationParams.navigationName, dataView.resourceId, false, '', setFromListResource);\n\n } else if (columnDef.displayField.cubeDrill) {\n this.runCubeNavigation(columnDef, dataView);\n\n } else if (columnDef.displayField.linkNavigation || columnDef.displayField.navigation) {\n const navigationName = (columnDef.displayField.linkNavigation)\n ? columnDef.displayField.linkNavigation : columnDef.displayField.navigation;\n // only run the navigation if it exists in the dataview's navigation array\n if (dataView.navigations.indexOf(navigationName) !== -1) {\n const xtrParameters = this.listSpec.isTemplateList && !dataView.isAlreadyDefined ? { isTemplateView: true } : null;\n this.runLinkNavigation(navigationName, dataView.resourceId, false, this.lmUrlUtilService.objectToQueryString(xtrParameters), setFromListResource);\n\n } else if (uiLinkEvent.options && uiLinkEvent.options.fromDashboard) {\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.navigationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n this.lmGlobalUtilService.navigateByUrl(url);\n\n }\n } else if (columnDef.displayField.httpUrl) {\n this.runHttpUrl(columnDef, dataView);\n\n } else if(columnDef.displayField.aggDrill) {\n const resource = new ListResource( { resourceId: columnDef.displayField.resourceId });\n const url = this.lmUrlUtilService.buildUrl({ resource, params: { aggDrill: uiLinkEvent.options.aggDrill, savedFilter: uiLinkEvent.options.savedFilter } });\n this.lmGlobalUtilService.navigateByUrl(url);\n } else {\n this.lmLoggerService.log([ this, this.instanceId, 'unrecognized onUILinkEvent', event ]);\n return;\n\n }\n event.preventDefault();\n }\n\n onCubeEvent(event: LMCubeEvent) {\n if ('periodViewEvent' === event.eventType) {\n const periodViewEvent: LMPeriodViewCubeEvent = event as LMPeriodViewCubeEvent;\n this.changeCubePeriodView(periodViewEvent.periodViewCommand);\n } else if ('columnViewEvent' === event.eventType) {\n const columnViewEvent: LMColumnViewCubeEvent = event as LMColumnViewCubeEvent;\n this.changeCubeColumnView(columnViewEvent.columnViewCommand);\n }else if ('exporttopdf' === event.eventType) {\n this.runPdfAction(this.lmListToolbarService.getStandardOptionsMenuItems().printToFile);\n } else if ('exporttocsv' === event.eventType) {\n this.runCsvAction(this.lmListToolbarService.getStandardOptionsMenuItems().exportToCSV);\n } else if ('cubesave' === event.eventType) {\n this.executeSaveAction(AppConstants.STANDARD_SAVE);\n } else if ('createreport' === event.eventType) {\n this.runCreateReport();\n } else if ('createreportpersonalization' === event.eventType) {\n this.runListPersonalization((event as LMCreateReportPersonalizationCubeEvent).actionReference);\n } else if ('cubesearch' === event.eventType) {\n this.runToolbarButtonAction((event as LMCubeSearchEvent).actionReference);\n }\n }\n\n private changeCubePeriodView(periodViewCommand) {\n this.lmLoggerService.log([ this, this.instanceId, 'LMListComponent:onCubeEvent:switchPeriodView - ', periodViewCommand ]);\n // Reset the activated row / select rows. Chance of script error since the number of rows returned will be different.\n // For example, going from quarters to last two months may yield no results.\n this.listState.activatedRow = -1;\n this.listState.selectedRows = [ ];\n if (this.hasDetailSections) {\n // Strange timing issue. Sometimes, the initial page runs through in the dependent list with the old selectedDataView.\n // this.lmLoggerService.log([ this, this.instanceId, 'LMListComponent:onCubeEvent:switchPeriodView:pvPeriods - ', this.selectedDataView.cubeInfo.extraInfo2.pvPeriods.length ]);\n this.selectedDataView = undefined;\n }\n // LMCLIENT-35130: SpecUrl was used to get the userfolderId in the url. But a list in page panel does not have spec url set. Using DataViewSet listUrl instead.\n // let url = this.listUrlInfo.specUrl; // this.lmUrlUtilService.replaceUrlParams(this.listUrlInfo.initialDataUrl, { output: 'spec' });\n const urlParams: LMUrlParams = { periodView: periodViewCommand };\n if (this.listState?.cubeOverrides?.columnView){\n urlParams.colView = this.listState.cubeOverrides.columnView;\n }\n let url = this.lmUrlUtilService.updateUrlParams(this.getDataViewSet().listUrl, urlParams);\n if (!this.listSpec.dependentList) {\n // CubeView can be a dependent list (payroll examples)\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(url));\n }\n url = this.lmUrlUtilService.updateUrlParams(url, { output: 'spec' });\n this.saveComponentState();\n this.showBusyIndicator();\n this.loadListSpec(url);\n }\n\n private changeCubeColumnView(columnView: string) {\n // Reset the activated row / select rows. The data will be reloaded, all expanded nodes will be collapsed.\n // There is a chance that the previously selected child node index is no longer valid.\n this.listState.activatedRow = -1;\n this.listState.selectedRows = [ ];\n // TODO: Check detail sections\n const urlParams: LMUrlParams = { colView: columnView };\n if (this.listState?.cubeOverrides?.periodView){\n urlParams.periodView = this.listState.cubeOverrides.periodView;\n }\n let url = this.lmUrlUtilService.updateUrlParams(this.getDataViewSet().listUrl, urlParams);\n if (!this.listSpec.dependentList) {\n // CubeView can be a dependent list (payroll examples)\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(url));\n }\n url = this.lmUrlUtilService.updateUrlParams(url, { output: 'spec' });\n this.saveComponentState();\n this.showBusyIndicator();\n this.loadListSpec(url);\n }\n\n /**\n * During phone view, we switch to detail section view\n * from a given record (row) selected\n * @param selectedRow index of the row selected\n */\n private showDetailSections(selectedRow: number) {\n const dataView: LMDataView = this.getDataView(selectedRow);\n const isPhoneView = Soho.breakpoints.isBelow('phone-to-tablet');\n\n if (!dataView || !isPhoneView) {\n return;\n }\n\n if (this.isCardViewWithDetailSections && this.listState.showDetails) {\n this.lmBannerHeaderCompRef.pushBackReference(this.listSpec.busListSpec.id, dataView.representativeText);\n }\n }\n\n onListRowClicked(event: LMListRowClickedEvent) {\n if (this.listState.displayAs === 'calendar') {\n return;\n }\n\n if (this.isSelectListInSelectionMode()) {\n // inform the single select dialog that a selection has occurred when a select list is in select mode\n this.listRowClicked.emit(event);\n return;\n }\n\n // ---------------------------------------------------------------------\n // if no selection mode and open action is NOT restricted then allow\n // a single click to open a record.\n // ---------------------------------------------------------------------\n if (!this.listSpec.busListSpec.openActionRestricted && !this.lmListSpecUtilService.getSelectionMode(this.listSpec)) {\n const dataView: LMDataView = this.getDataView(event.row);\n this.runOpenAction(dataView);\n }\n\n this.listState.showDetails = true;\n this.showDetailSections(event.row);\n this.listRowClicked.emit(event);\n }\n\n onListRowDoubleClicked(event: LMListRowClickedEvent): void {\n if (!this.listSpec.busListSpec.openActionRestricted\n && !this.lmListSpecUtilService.isSelectList(this.listSpec)) {\n const dataView: LMDataView = this.getDataView(event.row);\n this.runOpenAction(dataView);\n }\n this.listRowDoubleClicked.emit(event);\n }\n\n onListKeyDown(event: LMListKeyDownEvent) {\n // check if performing keyboard shortcut\n this.onKeyboardShortcut(event);\n\n if (event instanceof KeyboardEvent) {\n const evt = event as KeyboardEvent;\n\n if (evt.ctrlKey || evt.altKey || evt.metaKey) {\n return;\n }\n\n if (evt.key === 'Escape' && this._contextMenuEvent) {\n const targetField = this._contextMenuEvent.currentTarget;\n targetField?.focus();\n }\n\n this.listKeyDown.emit(event);\n } else {\n if (!this.isInlineCreateEnabled() || !event.e || event.e.type !== 'keydown') {\n return;\n }\n\n const keyboardEvent = event.e as JQuery.Event;\n if (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n return;\n }\n\n const row = event.args.row;\n const cell = event.args.cell;\n const dataView: LMDataView = this.getDataView(row);\n\n if (dataView.isNewRow) {\n if (!keyboardEvent.shiftKey) {\n if (keyboardEvent.key === 'F8') {\n // F8 - from any column of the inline create row\n // will save any modified rows, the list is not refreshed\n this.executeSaveAction(AppConstants.STANDARD_TOOLBAR_SAVENEW);\n event.response(false);\n } else if (keyboardEvent.key === 'Tab') {\n // Tab - from the last column of the inline create row\n // will save any modified rows, the list is not refreshed\n const nextCell = this.nextEditableCell(cell);\n if (cell === nextCell) {\n if (!this.performingSaveNewViaHotkey) {\n this.performingSaveNewViaHotkey = true;\n this.executeSaveAction(AppConstants.STANDARD_TOOLBAR_SAVENEW);\n event.response(false);\n }\n }\n } else if (keyboardEvent.key === 'Escape') {\n // Escape - from any column of the inline create row will\n // delete the inline create row, the list is not refreshed\n const deleteDataViewList: Array = [ dataView ];\n const deleteActionSpec: LMActionSpec = this.lmActionService.getListDeleteAction(this.listSpec.busClassSpec.actions, this.getDataViewSet(), [ AppConstants.INLINE_CREATE_ROW ]);\n this.runDeleteAction(deleteActionSpec, deleteDataViewList, true);\n event.response(false);\n }\n }\n }\n\n if (keyboardEvent.shiftKey && keyboardEvent.key === 'F8') {\n // Shift + F8 - when initiated from any list cell will copy the selected row to the inline create row\n const copyDataView: LMDataView = this.getDataView(this.selectedRow);\n if (!copyDataView.isNewRow && !copyDataView.isSubtotalView && !copyDataView.isSubtotalSummaryView) {\n this.runCopyRow(this.selectedRow);\n event.response(false);\n }\n }\n }\n }\n\n onKeyboardShortcut(event: LMListKeyDownEvent) {\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'helper') {\n return;\n }\n\n const key = this.lmKeyboardShortcutService.onKeyDown(event);\n if (!key) {\n return;\n }\n\n switch (key) {\n case LMKeyType.SAVE:\n // Save for a dependent list will be triggered by the root component\n if (this.listSpec.dependentList) {\n return;\n }\n\n if (this.checkSaveRequired()) {\n this.executeSaveAction(AppConstants.STANDARD_SAVE);\n }\n break;\n case LMKeyType.REFRESH:\n this.runRefresh();\n break;\n case LMKeyType.OPEN:\n const selectedDataViews: Array = this.selectedDataViews;\n if (selectedDataViews.length === 1) {\n const openDataView: LMListDataView = this.getDataView(this.selectedRow);\n this.runOpenAction(openDataView);\n }\n break;\n }\n }\n\n onListGridBeforePaging(event: LMListGridPagingEvent): void {\n // console.log('onListGridBeforePaging before');\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n // console.log('onListGridBeforePaging after');\n if (response) {\n this.lmListEventService.listGridContinuePagingEvent(event);\n this.clearDetailFieldsFormModelCache();\n }\n });\n }\n\n onContextMenu(event: LMContextMenuEvent): void {\n if (this.lmContextService.casualMode()\n || this.listSpec.showAsMingleWidget) {\n // disallow right click when:\n // - in casual mode\n // - in mingle widget.\n return;\n }\n\n this.lmLoggerService.log([ this, this.instanceId, 'onContextMenu()', event ]);\n\n // -------------------------------------------------------------\n // destroy any existing popup menu so that the dom markup is\n // completely removed. This is needed before the new menu is\n // built and displayed.\n // -------------------------------------------------------------\n if (this.sohoRightClickMenu) {\n this.sohoRightClickMenu.close();\n if (this.sohoRightClickMenu) {\n this.sohoRightClickMenu.destroy();\n }\n }\n\n // -------------------------------------------------------------\n // unselect any other selected rows, select the right click row\n // -------------------------------------------------------------\n const selectionRows: Array = this.listContentComponent.getSelectedRows();\n\n if (!selectionRows.includes(event.row)) {\n // then select the right clicked row - the right click menu is based on the selected rows\n this.listContentComponent.unSelectAllRows();\n this.listContentComponent.setSelectedRows([ event.row ], true);\n }\n if (this.isCubeView) {\n const selectedDataView = this.getDataView(this.listContentComponent.getSelectedRow());\n const noOpenAction = this.listSpec.busListSpec.openActionRestricted\n || (selectedDataView && selectedDataView.openFormResId === undefined);\n const noDrillDownAction = !this.listSpec.busListSpec.hasChildHierarchyDims;\n if ( noOpenAction && noDrillDownAction) {\n // If the context menu does not have open action or drill down, do not render it.\n // Returning here will not set the flags and so onbeforecontextmenu will not be fired.\n return;\n }\n }\n\n // display the browser's context menu when the target is an anchor element with an href specified\n if (event.originalEvent.target && event.originalEvent.target.href) {\n return;\n }\n\n // -------------------------------------------------------------\n // cause the new right click menu markup to be built, which\n // causes the popup menu to be displayed.\n // -------------------------------------------------------------\n setTimeout(() => {\n event.originalEvent.preventDefault();\n this._contextMenuEvent = event.originalEvent;\n this.displayContextMenu = true;\n });\n }\n\n // eslint-disable-next-line no-unused-vars\n onCloseContextMenu(event: any) {\n this._contextMenuEvent = null;\n this.displayContextMenu = false;\n }\n\n onKeyDown(event: SohoDataGridKeyDownEvent) {\n this.lmListEventService.listKeyDownEvent((event));\n }\n\n onContentModified(fieldChangedEvent: LMListFieldChangedEvent) {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n this.contentModified.emit(fieldChangedEvent);\n }\n\n // TODO: gbugauisan TECHNICAL DEBT. sync list dataview to model state cache (list detail field)\n // edge case: when field is included on both display fields and detail fields definition\n\n // onChartRowSelected(listRowSelectedEvent: LMListRowSelectedEvent) {\n // this.lmLoggerService.trace([ this, this.instanceId, 'onChartRowSelected()', this.listComponentId, listRowSelectedEvent ]);\n //\n // if (!listRowSelectedEvent\n // || listRowSelectedEvent.rows == null\n // || listRowSelectedEvent.rows.length === 0\n // || listRowSelectedEvent.rows[ 0 ].idx === -1\n // ) {\n // // --------------------------------------------------------\n // // If the list is actually displayed then save any state\n // // of row selection when all row selection is cleared.\n // // --------------------------------------------------------\n // this.listState.selectedRows = [];\n // return;\n // }\n // this.processRowSelectionEvent(listRowSelectedEvent);\n // this.chartRowSelected.emit(new LMListSelectionEvent(this, listRowSelectedEvent.rows));\n // }\n\n onListRowSelected(listRowSelectedEvent: LMListRowSelectedEvent) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onListRowSelected()', this.listComponentId, listRowSelectedEvent ]);\n\n if (!listRowSelectedEvent\n || listRowSelectedEvent.rows == null\n || listRowSelectedEvent.rows.length === 0\n || listRowSelectedEvent.rows[ 0 ].idx === -1\n ) {\n const selectionMode: SohoDataGridSelectable = this.lmListSpecUtilService.getSelectionMode(this.listSpec);\n if (this.hasDependentData && selectionMode === 'single') {\n // ----------------------------------------------------------------------\n // disallow toggling single selection lists when it has dependentData.\n // ----------------------------------------------------------------------\n this.listContentComponent.setSelectedRows(this.listState.selectedRows, false);\n return;\n }\n\n if (listRowSelectedEvent?.rows?.length === 0) {\n this.listState.selectedRows = [];\n }\n\n // always send event for lookup as it needs to know when a 'deselection' has occurred\n if (this.listSpec.listType === 'select') {\n // re-enable the OK button, if it's been disabled\n // Finding the button via dom lookup until Soho exposes the buttons in a soho modal. https://github.com/infor-design/enterprise-ng/issues/467\n const buttonId = this.lmUniqueIdService.uniqueId([ this.listSpec.busListSpec.id, this.listSpec.busClassSpec.name, LMDialogButtonKey.OK ]);\n // LMCLIENT-30270: error thrown for .querySelector('#' + buttonId) when buttonId begins with a number\n const okButton = this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + buttonId + '\"]');\n\n if (okButton) {\n // we know we are on a lookup from a list, since we found the okButton. Remove the disabled attribute\n this.renderer.removeAttribute(okButton, 'disabled');\n }\n\n this.listRowSelected.emit(new LMListSelectionEvent(this, []));\n }\n\n if (this.listSpec.listType !== 'filterlist' && !this.isCubeView) {\n // performing a setTimeout here to resolve the ExpressionChangedAfterItHasBeenCheckedError that\n // occurs when toggling the Filter button on.\n setTimeout(() => {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }, 1);\n }\n\n // LMCLIENT-33598: update helper list button state\n if (this.listSpec.isHelperList) {\n this.lmHelperListDialogService.updateHelperListButtonState(this.listSpec?.busClassSpec?.actions, this.getDataViewSet(), this.getStateInfo()?.selectedRows);\n }\n\n return;\n }\n this.processRowSelectionEvent(listRowSelectedEvent);\n\n // if multiple rows are selected in a lookup, need to disable the OK button\n if (this.listSpec.listType === 'select') {\n if (!this.selectRequestData?.allowMultiSelections) {\n // Finding the button via dom lookup until Soho exposes the buttons in a soho modal. https://github.com/infor-design/enterprise-ng/issues/467\n const buttonId = this.lmUniqueIdService.uniqueId([ this.listSpec.busListSpec.id, this.listSpec.busClassSpec.name, LMDialogButtonKey.OK ]);\n // LMCLIENT-30270: error thrown for .querySelector('#' + buttonId) when buttonId begins with a number\n const okButton = this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + buttonId + '\"]');\n\n if (okButton) {\n // we know we are on a lookup from a list, since we found the okButton. Add/Remove the disabled attribute\n if (listRowSelectedEvent.rows.length > 1) {\n this.renderer.setAttribute(okButton, 'disabled', 'true');\n } else {\n this.renderer.removeAttribute(okButton, 'disabled');\n }\n }\n }\n }\n\n this.listRowSelected.emit(new LMListSelectionEvent(this, listRowSelectedEvent.rows));\n }\n\n private processRowSelectionEvent(listRowSelectedEvent: LMListRowSelectedEvent) {\n if (this.listSpec.listType !== 'filterlist') {\n // performing a setTimeout here to resolve the ExpressionChangedAfterItHasBeenCheckedError\n // that occurs when a search form is cleared\n setTimeout(() => {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }, 1);\n }\n\n // LMCLIENT-33598: update helper list button state\n if (this.listSpec.isHelperList) {\n this.lmHelperListDialogService.updateHelperListButtonState(this.listSpec?.busClassSpec?.actions, this.getDataViewSet(), this.getStateInfo()?.selectedRows);\n }\n\n // ------------------------------------------------------------\n // if single select then listRowActivated is disabled and this\n // event handler should process the detail sections and fields\n // ------------------------------------------------------------\n let needSendBusinessMessage = false;\n const selectionMode: SohoDataGridSelectable = this.lmListSpecUtilService.getSelectionMode(this.listSpec);\n if (selectionMode === 'single' || selectionMode === 'siblings') {\n const selectedRow = listRowSelectedEvent.rows[ 0 ].idx;\n if (this.listSpec.busListSpec.detailSections) {\n this.processDetailSections(selectedRow);\n }\n if (this.listSpec.busListSpec.detailFieldsSpec) {\n this.processDetailFields(selectedRow);\n }\n\n if (this.listSpec.dependentList && this.fromDataView) {\n // send when a row is selected on this list (and\n // not when a row is selected on a related list)\n if (this.listState.fromResourceId === this.fromDataView.resourceId\n && this.listState.selectedRows !== undefined && !this.listState.selectedRows.includes(selectedRow)) {\n if (this.listState.displayAs !== 'chart' && this.listState.displayAs !== 'calendar' && !this.listSpec.busListSpec.implementsCubeView) {\n needSendBusinessMessage = true;\n }\n }\n } else {\n needSendBusinessMessage = true;\n }\n }\n\n if (this.listSpec.busListSpec.showChangedValuesOnRight) {\n if (listRowSelectedEvent.rows.length === 1) {\n const selectedRow = listRowSelectedEvent.rows[0].idx;\n this.processAuditCompareValues(selectedRow);\n } else {\n this.auditComparePanelComponent.fromDataView = null;\n }\n }\n this.listState.selectedRows = this.listContentComponent.getSelectedRows();\n if (needSendBusinessMessage) {\n this.sendBusinessContext();\n }\n }\n\n onListRowActivated(event: LMListRowActivatedEvent) {\n this.lmLoggerService.log([ this, this.instanceId, 'onListRowActivated()', event ]);\n\n const activatedRow = event.row;\n const selectedItem = event.item;\n\n if (this.listSpec.busListSpec.detailSections) {\n this.processDetailSections(activatedRow);\n }\n if (this.listSpec.busListSpec.detailFieldsSpec) {\n this.processDetailFields(activatedRow);\n }\n\n let needSendBusinessMessage = false;\n if (this.listSpec.dependentList && this.fromDataView) {\n // send when a row is activated on this list (and\n // not when a row is activated on a related list)\n if (this.listState.fromResourceId === this.fromDataView.resourceId\n && this.listState.activatedRow !== undefined && activatedRow !== this.listState.activatedRow) {\n needSendBusinessMessage = true;\n }\n } else {\n needSendBusinessMessage = true;\n }\n needSendBusinessMessage = (selectedItem && (selectedItem.isSubtotalView || selectedItem.isSubtotalSummaryView))\n ? false : needSendBusinessMessage;\n\n this.listState.activatedRow = activatedRow;\n if (needSendBusinessMessage) {\n this.sendBusinessContext();\n }\n this.listRowActivated.emit(new LMListRowActivationEvent(this, event));\n\n // -------------------------------------------------------------------\n // check performInitialRowSelectionComplete so that the\n // performInitialRow selection has a chance to set selection from\n // saved state\n // -------------------------------------------------------------------\n if (this.performInitialRowSelectionComplete) {\n if (!event.sourceIsPagingEvent) {\n this.syncSelectedToActivated(activatedRow, true);\n }\n }\n }\n\n processDetailSections(row: number) {\n this.selectedDataView = this.getDataView(row);\n\n this.processDetailSectionsForCubeView();\n // ---------------------------------------------------------\n // Update fromDataView on detail sections and dashboards\n // ---------------------------------------------------------\n // Commenting out the following if block.\n // If a list implements dashboard view, there will be a cardview and detail sections, but no display fields.\n // The detail sections will be processed the same way as any other list type - Akila.\n // if (this.listSpec.busListSpec.implementsDashBoardView) {\n // // ---------------------------------------------------------\n // // Update tab labels on detail sections\n // // ---------------------------------------------------------\n // let displayFields = this.listSpec.busListSpec.displayFields;\n // for (let i = 0, len = displayFields.length; i < len; i++) {\n // if (displayFields[ i ].title && displayFields[ i ].title.variables) {\n // this.panels[ i ].title = this.lmFormatUtilService.formatMessageRule(this.lmContextService.getContext(), displayFields[ i ].title, selectedDataView);\n // }\n // }\n // this.dashboardViewComponent.fromDataView = selectedDataView;\n // } else {\n // ---------------------------------------------------------\n // Update tab labels on detail sections\n // ---------------------------------------------------------\n const detailSections = this.listSpec.busListSpec.detailSections;\n\n this.updateDetailSections(detailSections, this.detailSectionPanels, this.selectedDataView);\n\n // if (this.dashboardViewComponent || this.detailSectionsComponent) {\n // (this.listSpec.busListSpec.implementsDashBoardView)\n // ? this.dashboardViewComponent.fromDataView = selectedDataView\n // : this.detailSectionsComponent.fromDataView = selectedDataView;\n // }\n }\n\n processDetailSectionsForCubeView() {\n if (this.lmListSpecUtilService.isCubeView(this.listSpec) && this.selectedDataView) {\n // UITest detail section examples do not have reporting basis or child hierarchy dimensions yet.\n // 1. Extra info will have period key\n this.selectedDataView.cubeInfo.extraInfo = {\n periodKey: this.getDataViewSet().cubeInfo.periodKey,\n cubeNm: this.listSpec.busListSpec.name,\n };\n // 2. ExtraInfo will have the following top dimensions and context, if child hierarchy dimensions are present (or reporting basis is set)\n if (this.listState.cubeOverrides && this.getDataViewSet().cubeInfo.reportingBasis) {\n this.selectedDataView.cubeInfo.extraInfo = Object.assign({}, this.selectedDataView.cubeInfo.extraInfo, {\n reportingBasis: this.getDataViewSet().cubeInfo.reportingBasis,\n topNodeDims: this.listState.cubeOverrides.topDimensions,\n });\n }\n if (this.getDataViewSet().cubeInfo.topContextFields) {\n this.selectedDataView.cubeInfo.extraInfo = Object.assign({}, this.selectedDataView.cubeInfo.extraInfo, { topContextFields: this.getDataViewSet().cubeInfo.topContextFields });\n }\n // For any other cube with periodView/periodViewPeriods and detail sections\n // 3. ExtraInfo will have period view and period view period.\n const hasPeriodViews = this.listSpec.cubeOptions.periods && this.listSpec.cubeOptions.periods.length > 0;\n const pvPeriods = this.getDataViewSet().cubeInfo.pvPeriods;\n const hasPvPeriods = pvPeriods && pvPeriods.length > 0;\n if (hasPeriodViews && hasPvPeriods) {\n this.selectedDataView.cubeInfo.extraInfo = Object.assign({}, this.selectedDataView.cubeInfo.extraInfo,\n { periodView: this.getDataViewSet().cubeInfo.periodView,\n pvPeriodIdx: (this.listState.cubeOverrides?.periodViewPeriod) ? this.listState.cubeOverrides.periodViewPeriod : 0 });\n\n this.selectedDataView.cubeInfo.extraInfo2 = { pvPeriods, };\n this.lmLoggerService.log([ this, this.instanceId, 'LMListComponent:processDetailSectionsForCubeView:pvPeriods - ', this.selectedDataView.cubeInfo.extraInfo2.pvPeriods.length ]);\n }\n }\n }\n\n updateDetailSections(specList: Array, panelList: Array, dataView: LMDataView) {\n for (let i = 0, len = specList.length; i < len; i++) {\n const spec = specList[i];\n const panel = panelList.find(p => p.id === spec.id);\n\n // need to check for panel because the dashboard detail section implementation\n // does not support all types yet, such as URLPanels\n if (panel) {\n this.updateDetailSection(spec, panel, dataView);\n\n if (spec.detailSections && panel.dashBoardPanes) {\n this.updateDetailSections(spec.detailSections, panel.dashBoardPanes, dataView);\n }\n\n if (this.dashboardViewComponent) {\n this.dashboardViewComponent.panelVisibilityUpdateTimeStamp = Date.now();\n }\n }\n }\n // todo spec-url-refactor - seems to be unused.\n // panelList = Object.assign([], panelList);\n }\n\n updateDetailSection(detailSectionsSpec: LMBusDetailSection, panel: LandmarkPanel, dataView: LMDataView) {\n if (detailSectionsSpec && detailSectionsSpec.visibility) {\n panel.hidden = !this.lmConditionUtilService.isValid([ detailSectionsSpec.visibility ], dataView);\n }\n\n if (detailSectionsSpec && detailSectionsSpec.validity) {\n panel.isValid = this.lmConditionUtilService.isValid([ detailSectionsSpec.validity ], dataView);\n }\n\n if (detailSectionsSpec.title && detailSectionsSpec.title.variables) {\n panel.title = this.lmFormatUtilService.formatMessageRule(detailSectionsSpec.title, dataView);\n }\n }\n\n processDetailFields(row: number) {\n if (row === -1) {\n return;\n }\n\n // previous record state processing\n if (this.selectedDataView) {\n const previousRecordResourceId = this.selectedDataView.resourceId;\n const previousRecordModelCache = this.detailfieldsFormModelCache.find(model=> model.id === previousRecordResourceId);\n\n if (previousRecordModelCache) {\n if (this.detailFieldsFormModel.isDirty) {\n previousRecordModelCache.cache = { ...this.detailFieldsFormModel.getCache() };\n this.syncDetailFieldsFormModelAndListDataviews(false);\n } else {\n // if model never gets dirty, remove from cache to save memory\n this.clearDetailFieldsFormModelCache([ this.selectedDataView ]);\n }\n }\n\n if (this.detailFieldsFormModel) {\n this.detailFieldsFormModel.clearModelState();\n }\n\n //unsubscribe previous subscription if there's any (when user fires save, refresh, pagination etc...)\n if (this.detailFieldsFormModelSub$) {\n this.detailFieldsFormModelSub$.unsubscribe();\n }\n }\n\n // start processing current record\n const resourceId = this.getDataView(row)?.resourceId;\n const modelCache = this.detailfieldsFormModelCache.find(state => state.id === resourceId);\n\n this.selectedDataView = modelCache ? modelCache.dataView : this.getDataView(row);\n\n if (this.selectedDataView) {\n if (this.detailFieldsFormModel) {\n this.detailFieldsFormModel.setData(this.selectedDataView);\n } else {\n this.detailFieldsFormModel = this.createFormModel(this.selectedDataView);\n }\n }\n\n this.processDetailFieldsFormModelCache(row);\n this.subscribeToDetailFieldsFormModelChanges();\n\n this.listState.previousActivatedRow = row;\n }\n\n processAuditCompareValues(row: number) {\n const selectedDataView: LMDataView = this.getDataView(row);\n if (this.auditComparePanelComponent) {\n this.auditComparePanelComponent.fromDataView = selectedDataView;\n this.auditComparePanelComponent.auditCompareInfo = this.getDataViewSet().auditCompareInfo;\n }\n }\n\n onListRowDeactivated(event: LMListRowActivatedEvent) {\n const rowActivatedEvent: LMListRowActivationEvent = new LMListRowActivationEvent(this, event);\n this.listRowDeactivated.emit(rowActivatedEvent);\n }\n\n onPanelDataUpdated(event: LMListTransactionEvent) {\n // let the top most component call refresh!\n if (this.isRouterOutletRootComponent) {\n const request = new LMRefreshRequest();\n request.originatingSourceId = event?.eventSource?.listId;\n this.executeRefresh(request).subscribe();\n }\n this.listTransactionEvent.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendBusinessContext(event);\n }\n\n onUpdateToolbarStateEvent() {\n if (this.listSpec.busListSpec.toolbar) {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n\n if (!this.isRouterOutletRootComponent) {\n this.contentModified.emit();\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n public onLMNotificationEvent(event: LMNotificationEvent) {\n this.cancelPagingRequest();\n }\n\n cancelPagingRequest() {\n if (this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n }\n }\n\n onCancellablePagingEvent(e: LMCancelablePagingEvent) {\n if (e.state === 'started') {\n this.cancelPagingNotifier$ = e.cancelablePagingNotifier;\n }\n\n this.showCancellableNotification = e.state === 'waiting';\n /* Unable to use the SOHO service.\n Doesn't allow me to programatically close the notification\n not sure if our list components are uniquely id to enable us to have each component have a banner notification\n */\n }\n\n public registerMessageHandlers(event?: LMListBarCodeClickedEvent) {\n this.zone.runOutsideAngular(() => {\n infor.companyon.client.unRegisterMessageHandler('mobile_shareQRCodeData');\n infor.companyon.client.registerMessageHandler('mobile_shareQRCodeData', (data: any) => {\n this.zone.run(() => {\n if (data.data) {\n const scanResults = data.data;\n if (event) {\n if (scanResults) {\n const sohoLookup = event.lookup;\n sohoLookup.element.val(scanResults);\n sohoLookup.element.focus();\n }\n } else {\n this.listViewSearchFieldValue = scanResults;\n this.buildListViewSearchFieldCriteria();\n }\n }\n });\n });\n });\n }\n\n onBarCodeClick = (event?: LMListBarCodeClickedEvent) => {\n this.registerMessageHandlers(event);\n const data = { source: 'mobile', inputType: '1' };\n this.zone.runOutsideAngular(() => {\n infor.companyon.client.sendMessage('mobile_showQRCodeScanner', data);\n });\n };\n\n public contextScanMenuClicked($event) {\n\n if ($event.args) {\n const menuElement = $event.args[ 0 ];\n const menuId = menuElement.getAttribute('id');\n\n if (menuId === 'ScanEvent') {\n this.onBarCodeClick(this.lmListBarCodeEvent);\n }\n\n if (menuId === 'SelectEvent') {\n this.lmListEventService.listLookupClickedEvent(this.lmListBarCodeEvent);\n }\n }\n }\n\n public onCloseContextScanMenu(event: any) {\n this._contextScanMenuEvent = null;\n this.showScanOptionsContextMenu = false;\n }\n\n public get contextScanMenuId(): string {\n return this.scanMenuId + '_ContextMenu';\n }\n\n public get contextScanMenuEvent(): any {\n return this._contextScanMenuEvent;\n }\n\n onListBarCodeClicked(event: LMListBarCodeClickedEvent) {\n this.scanMenuId = event.column.displayField.columnId;\n\n if (event.column.displayField.scannable) {\n if (event.column.displayField.selectable) {\n this.zone.run(() => {\n setTimeout(() => {\n if (event.triggerButtonEvent) {\n event.triggerButtonEvent.originalEvent.preventDefault();\n this._contextScanMenuEvent = event.triggerButtonEvent.originalEvent;\n this.showScanOptionsContextMenu = true;\n this.lmListBarCodeEvent = event;\n }\n });\n });\n } else {\n this.onBarCodeClick(event);\n }\n }\n }\n\n onListLookupClicked(event: LMListLookupClickedEvent) {\n if (this.throttleLookupClickEvent(event)) {\n return;\n }\n\n if (this.lmContextService.useSingleSelectList()) {\n this.showSelectListDialog(event);\n } else {\n this.showClassicSelectListDialog(event);\n }\n }\n\n private throttleLookupClickEvent(event: LMListLookupClickedEvent): boolean {\n const columnId = event?.column?.displayField?.columnId;\n\n if (this.lookupSelectThrottleId && this.lookupSelectThrottleId === columnId) {\n return true;\n }\n\n this.lookupSelectThrottleId = columnId;\n\n setTimeout( () => { this.lookupSelectThrottleId = null; }, 500);\n return false;\n }\n\n private showSelectListDialog(event: LMListLookupClickedEvent) {\n const dataView = !!event.dataView ? event.dataView : this.getDataViewSet().header;\n const selectListUrl = event.selectListUrl;\n const sourceField = event.sourceField;\n const sohoLookup = event.lookup;\n const targetField = event.targetField;\n const columnLabel = event.column.name || '';\n const column = event.column;\n\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmLoggerService.log([ this, this.instanceId, 'getListSpec() completed', listSpecResponse ]);\n\n const listSpec = listSpecResponse.listSpec;\n const listUrlInfo = listSpecResponse.listUrlInfo;\n\n const className = (listSpec.busListSpec.searchForm === undefined && !listSpec.busListSpec.implementsTreeView)\n ? 'lm-lookup-modal datagrid-default-modal-width' : 'datagrid-default-modal-width';\n\n const title = (columnLabel.trim().length > 0)\n ? this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), columnLabel)\n : Soho.Locale.translate('Select');\n\n // allowing multiple selections for a field is only allowed from the filter row\n const allowMultiSelections = column.displayField.allowMultiSelections && !event.dataView;\n\n const selectRequestData: SelectRequestData = {\n viewType: 'list',\n viewName: this.listSpec.busListSpec.name,\n dataView,\n allowMultiSelections\n };\n\n this.lmSelectDialogService.showSelectListDialog({\n listUrlInfo,\n listSpec,\n title,\n sourceField,\n className,\n selectRequestData\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe((selectResponse: LMSelectResponse) => {\n this.lmLoggerService.log([ this, this.instanceId, 'showSelectListDialog()', selectResponse ]);\n if (selectResponse?.status === AppConstants.STATUS_COMPLETED && selectResponse.dataViews) {\n let value = '';\n if (allowMultiSelections) {\n selectResponse.dataViews.forEach((selectedDataView, index, array) => {\n let selectedValue = '' + selectedDataView.fields[sourceField].value;\n selectedValue = selectedValue.includes(AppConstants.MULTI_SEARCH_TERM_DELIMITER) ? `\"${selectedValue}\"` : selectedValue;\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += `${selectedValue}${delimiter}`;\n });\n } else {\n const selectedDataView: LMDataView = selectResponse.dataViews[0];\n value = selectedDataView.fields[sourceField].value as string;\n }\n\n this.zone.run(() => {\n sohoLookup.element.val(value);\n sohoLookup.element.focus();\n });\n\n if (targetField && dataView.fields.hasOwnProperty(targetField)) {\n dataView.fields[targetField].value = value;\n }\n } else if (selectResponse?.status === AppConstants.STATUS_CANCEL) {\n this.zone.run(() => {\n sohoLookup.element.focus();\n });\n }\n }\n );\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmLoggerService.log([ this, this.instanceId, 'showSelectListDialog() error', error ]);\n });\n }\n\n // TODO: Remove the following and its supporting methods once we now longer support classic lookup selection\n private showClassicSelectListDialog(event: LMListLookupClickedEvent) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const dataView = !!event.dataView ? event.dataView : this.getDataViewSet().header;\n const selectListUrl = event.selectListUrl;\n const sourceField = event.sourceField;\n const sohoLookup = event.lookup;\n const targetField = event.targetField;\n const columnLabel = event.column.name || '';\n\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n const title = (columnLabel.trim().length > 0)\n ? this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), columnLabel)\n : Soho.Locale.translate('Select');\n\n const cancelButtonId = this.lmUniqueIdService.uniqueId([ listSpec.busListSpec.name, sourceField, LMDialogButtonKey.CANCEL ]);\n const okButtonId = this.lmUniqueIdService.uniqueId([ listSpec.busListSpec.name, sourceField, LMDialogButtonKey.OK ]);\n\n const buttonIds = {\n ok: okButtonId,\n cancel: cancelButtonId\n };\n\n // TODO: need to correctly format the id here for list\n const buttons: SohoModalButton[] = [\n {\n id: buttonIds.cancel,\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n modal.close(true);\n },\n },\n {\n id: buttonIds.ok,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n // eslint-disable-next-line no-unused-vars\n click: (e, modal) => {\n this.handleLookupSelection(sourceField, sohoLookup, dataView, targetField);\n }\n }\n ];\n\n // If the list spec has search form, it is either displayed initially or the user will click on search icon to open up.\n // In either case, do not set the height of the modal. The search form and the list together should be in auto height.\n // Also in the case of tree view, do not want to set the modal with overflow:hidden. As the nodes are expanded, we should be able to scroll.\n const className = (listSpec.busListSpec.searchForm === undefined && !listSpec.busListSpec.implementsTreeView)\n ? 'lm-lookup-modal datagrid-default-modal-width' : 'datagrid-default-modal-width';\n this.dialog = this.sohoModalDialogService\n .modal(LMListLookupDialogComponent, this.modalPlaceholder, { fullsize: 'responsive', noRefocus: true })\n .buttons(buttons)\n .title(title)\n .autoFocus(false)\n .cssClass(className)\n .open()\n .apply((lookupDialog: LMListLookupDialogComponent) => {\n lookupDialog.listUrlInfo = listUrlInfo;\n lookupDialog.listSpec = listSpec;\n lookupDialog.selectRequestData = {\n viewType: 'list',\n viewName: this.listSpec.busListSpec.name,\n dataView\n };\n\n lookupDialog.buttonIds = buttonIds;\n\n lookupDialog.titleChanged.pipe(first()).subscribe(newTitle => {\n this.dialog.title(newTitle);\n });\n\n // need to listen for all occurrences as will get a row selection for a 'deselection'\n this.listLookupSelectionSubscription =\n lookupDialog.lookupSelection.subscribe((lookupEvent: LMListLookupSelectionEvent) => {\n this.listLookupSelectionEvent = lookupEvent;\n });\n\n lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n this.dialog.close();\n });\n })\n // eslint-disable-next-line no-unused-vars\n .afterClose(result => {\n if (this.listLookupSelectionSubscription) {\n this.listLookupSelectionSubscription.unsubscribe();\n this.listLookupSelectionSubscription = null;\n }\n\n this.listLookupSelectionEvent = null;\n this.dialog = null;\n });\n },\n (error: any) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmLoggerService.log([ this, this.instanceId, 'LMListLookupDialog error', error ]);\n });\n }\n\n public turnOnSelectEditMode(turnOn: boolean): void {\n this.inSelectListEditMode = turnOn;\n\n if (this.selectRequestData?.allowMultiSelections) {\n this.adjustMultiSelectKeyFieldButtons();\n } else {\n this.adjustSingleSelectButtons();\n }\n\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n this.changeDetectorRef.detectChanges();\n }\n\n private adjustSingleSelectButtons() {\n const buttonSet = this.elementRef.nativeElement.closest('.modal-content').querySelector('.modal-buttonset');\n buttonSet.style.display = (this.inSelectListEditMode) ? '' : 'none';\n }\n\n private adjustMultiSelectKeyFieldButtons() {\n const buttons = this.elementRef.nativeElement.closest('.modal-content').querySelector('.modal-buttonset').children;\n\n const doneEditingButton = buttons[0] as HTMLElement;\n doneEditingButton.style.display = (this.inSelectListEditMode) ? '' : 'none';\n doneEditingButton.style.visibility = (this.inSelectListEditMode) ? 'visible' : 'hidden';\n\n const cancelButton = buttons[1] as HTMLElement;\n cancelButton.style.display = (this.inSelectListEditMode) ? 'none' : '';\n cancelButton.style.visibility = (this.inSelectListEditMode) ? 'hidden' : 'visible';\n\n const okButton = buttons[2] as HTMLElement;\n okButton.style.display = (this.inSelectListEditMode) ? 'none' : '';\n okButton.style.visibility = (this.inSelectListEditMode) ? 'hidden' : 'visible';\n }\n\n onListFieldLookupClicked(event: LMListFieldLookupClickedEvent) {\n this.lmBusyIndicatorService.showBusyIndicator();\n const sohoLookup = event.lookup;\n const lplFieldInfo = event.lplFieldInfo;\n let businessClass: string;\n\n if (lplFieldInfo.isRelatedField) {\n const businessClassFld = event.dataView.fields[lplFieldInfo.busClassName];\n businessClass = !businessClassFld ? '' : businessClassFld.value as string;\n } else {\n businessClass = lplFieldInfo.busClassName;\n }\n\n const options: LMFieldPickerSelectOptions = {\n view: this.lmFieldPickerService.createFieldPickerView(lplFieldInfo),\n businessClass,\n enableOperatorBuilder: this.lmFieldPickerService.fieldPickerOperatorsEnabled(lplFieldInfo),\n includeAuditFields: this.lmFieldPickerService.includesAuditFields(lplFieldInfo),\n };\n this.lmFieldPickerService.openFieldPickerDialog(options, this.listSpec.fieldLookUpUrl, this.modalPlaceholder)\n .subscribe(( response: LMFieldPickerSelectResponse) => {\n if (response) {\n const value = response.fieldName;\n sohoLookup.element.val(value);\n sohoLookup.element.focus();\n }\n });\n }\n\n private handleLookupSelection(sourceField: string, sohoLookup: SohoLookupStatic, sourceDataView: LMDataView, targetField: string) {\n if (this.listLookupSelectionEvent) {\n const result: Array = this.listLookupSelectionEvent.rows;\n if (result && Array.isArray(result) && result.length > 0) {\n const dataViewLookup: LMDataView = result[ 0 ].data;\n const value = dataViewLookup.fields[ sourceField ].value as string;\n\n this.zone.run(() => {\n sohoLookup.element.val(value);\n sohoLookup.element.focus();\n });\n\n if (targetField && sourceDataView.fields.hasOwnProperty(targetField)) {\n sourceDataView.fields[ targetField ].value = value;\n }\n }\n }\n\n this.dialog.close();\n }\n\n // eslint-disable-next-line no-unused-vars\n onListFilterClearClicked(event: LMListFilterClearClickedEvent) {\n this.listState.codeBlockFilterCriteria = [];\n if (this.listState.codeBlockFilterDataView) {\n delete this.listState.codeBlockFilterDataView;\n }\n\n const conditions: Array = this.listContentComponent.sohoFilterConditions;\n const filterEvent: LMListGridPagingEvent = { pageOp: 'filter', sohoDataGridEvent: { conditions } };\n this.onListGridBeforePaging(filterEvent);\n }\n\n onListFilterLookupClicked(event: LMListFilterLookupClickedEvent) {\n const sohoFilterLookup = event.filterLookup;\n const column = event.column;\n\n const fieldId = column.displayField.fieldId;\n const columnDef = this.listContentComponent.columnById(column.displayField.id);\n const dataView = this.getDataViewSet().header;\n\n const originalCompoundFieldLayout: LMCompoundFieldLayout = {\n bindId: fieldId,\n delimiter: dataView.fields[fieldId].delimiter,\n label: column.displayField.label,\n type: 'compactFormatByForm'\n };\n\n const busFormSpec = JSON.parse(JSON.stringify(this.listSpec.busListSpec));\n busFormSpec.codeBlockFieldId = columnDef.id;\n busFormSpec.fields[fieldId].layout = column.displayField.layout;\n\n const compactFormName = this.listSpec.busListSpec.name + '_compactGroupFilterForm';\n const compactFormResourceId = this.listSpec.busClassSpec.name + '.' + compactFormName;\n const compactFormSpec: LMFormSpec = {\n isImplicit: true,\n resourceId: compactFormResourceId,\n busClassSpec: this.listSpec.busClassSpec,\n busFormSpec,\n selectViewType: 'list',\n formElementId: compactFormName,\n };\n\n const formOptions = (this.listState.codeBlockFilterCriteria && this.listState.codeBlockFilterCriteria.length > 0)\n ? { filterCriteria: this.listState.codeBlockFilterCriteria }\n : {};\n\n const compactFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(compactFormSpec);\n const inputFilterValue = sohoFilterLookup.element.val().toString();\n const compactFormDataView = this.getCompactFormDataView(inputFilterValue, compactFormSpec, column.displayField.layout);\n\n this.lmCompactFormDialogService.promptCompactFormDialog({\n placeholder: this.modalPlaceholder,\n fieldId,\n title: column.displayField.label,\n layout: column.displayField.layout,\n formUrlInfo: compactFormUrlInfo,\n formSpec: compactFormSpec,\n dataView: compactFormDataView,\n specFields: busFormSpec.fields,\n originalCompoundFieldLayout,\n formType: LMFormType.SEARCH,\n model: null,\n formOptions\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe(\n (result: LMCompactFormResult) => {\n if (result.result === LMCompactFormDialogResult.RESPONSE_OK) {\n this.lmLoggerService.log(result.result);\n this.listState.codeBlockFilterCriteria = [];\n let displayValue = '';\n\n if (result.filterCriteria.length === 0) {\n delete this.listState.codeBlockFilterDataView;\n } else {\n this.listState.codeBlockFilterDataView = this.getPristineCompactFormDataView(compactFormSpec, column.displayField.layout);\n }\n\n result.filterCriteria.forEach((filterCriteria, index, array) => {\n this.listState.codeBlockFilterDataView.fields[filterCriteria.fieldId].value = filterCriteria.value;\n this.listState.codeBlockFilterCriteria.push(filterCriteria);\n\n const searchTag = this.lmListUtilService.filterCriteriaToSearchTag(filterCriteria);\n displayValue += searchTag.label + ' ' + searchTag.tag + (index !== (array.length - 1) ? '; ' : '');\n });\n\n this.listState.codeBlockFilterCriteria.map((filterCriteria) => {\n filterCriteria.compactFormDisplayValue = displayValue;\n });\n\n sohoFilterLookup.element.val(displayValue).trigger('change').focus();\n\n const conditions: Array = this.listContentComponent.sohoFilterConditions;\n const filterEvent: LMListGridPagingEvent = { pageOp: 'filter', sohoDataGridEvent: { conditions } };\n if (!this.lmListUtilService.isAutoFilterEnabled()) {\n return;\n }\n this.onListGridBeforePaging(filterEvent);\n }\n }\n );\n }\n\n private getCompactFormDataView(filterValue: string, formSpec: LMFormSpec, layout: LMFormLayout): LMDataView {\n if (filterValue !== '' && this.listState.codeBlockFilterDataView) {\n return JSON.parse(JSON.stringify(this.listState.codeBlockFilterDataView));\n }\n return this.getPristineCompactFormDataView(formSpec, layout);\n }\n\n private getPristineCompactFormDataView(formSpec: LMFormSpec, layout: LMFormLayout): LMDataView {\n const compactFormDataView = JSON.parse(JSON.stringify(this.getDataViewSet().header));\n this.lmCommonUtilService.clearCodeBlockDataViewFields(formSpec, layout, compactFormDataView);\n return compactFormDataView;\n }\n\n public onToolbarSearchEvent() {\n // toolbar search event happening. Get the value from the toolbar search field, then check to see if there is a\n // search form or filter bar to also get the values for\n this.toolbarSearchFieldFilterCriteria = [ this.getToolbarSearchFilterCriteria() ];\n this.buildFilterCriteriaFromSearchForm();\n if (this.searchFormFilterFieldCriteria === null) {\n // A field was required on the search form, and wasn't given a value. Don't execute the search and make sure\n // the search form is shown\n this.showSearchForm = true;\n return;\n }\n this.buildFilterCriteriaFromFilterBar();\n this.setFilterCriteria();\n }\n\n private buildFilterCriteriaFromSearchForm() {\n if (this.hasSearchForm && this.searchFormComponent.formContentComponent.searchFormComponent) {\n // safety, there shouldn't be filter bar criteria when there is a search form\n this.filterBarFilterFieldCriteria = [];\n this.searchFormFilterFieldCriteria = this.searchFormComponent.formContentComponent.searchFormComponent.getFilterCriteria();\n }\n }\n\n private buildFilterCriteriaFromFilterBar() {\n let filterBarConditions = [];\n if (!this.hasSearchForm && this.listState && this.listState.isFilterBarOpened) {\n // safety, there shouldn't be a search form when there is a filter bar\n this.searchFormFilterFieldCriteria = [];\n if (this.listContentComponent.hasFilterConditions) {\n filterBarConditions = this.listContentComponent.lmFilterCriteria;\n }\n }\n this.filterBarFilterFieldCriteria = filterBarConditions || [];\n }\n\n private getToolbarSearchFilterCriteria(): LMFilterFieldCriteria {\n const filterFieldCriteria: LMFilterFieldCriteria = {\n fieldId: this.toolbarSearchField.fieldId,\n operator: 'contains',\n value: this.toolbarSearchField.value,\n label: this.toolbarSearchField.label,\n displayValue: this.toolbarSearchField.value,\n isKeywordSearch: true\n };\n return filterFieldCriteria;\n }\n\n public onListViewSearchFieldEvent() {\n this.buildListViewSearchFieldCriteria();\n }\n\n onFieldEvent(event: LMFieldEvent) {\n if (event.eventType === 'FilterOperatorEvent') {\n this.filterOperatorChanged(event as LMFilterOperatorEvent);\n }\n }\n\n private filterOperatorChanged(event: LMFilterOperatorEvent) {\n const filterOp = event.operator;\n const fieldId = event.fieldId;\n\n this._filterOperators.set(fieldId, filterOp);\n }\n\n private buildListViewSearchFieldCriteria() {\n if (this.listViewSearchFieldValue) {\n let fieldId: string;\n let label: string;\n\n if (this.hasKeyWordSearch) {\n label = this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.keywordSearch.label, this.getDataViewSet().header);\n fieldId = this.listSpec.busListSpec.keywordSearch.fieldId;\n\n } else if (this.hasSearchFields) {\n fieldId = this.listSpec.busListSpec.searchFields.fields[0].fieldId;\n label = this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.searchFields.fields[ 0 ].label, this.getDataViewSet().header);\n }\n\n const filterFieldCriteria: LMFilterFieldCriteria = {\n fieldId,\n operator: 'contains',\n value: this.listViewSearchFieldValue,\n label,\n displayValue: this.listViewSearchFieldValue,\n isKeywordSearch: true\n };\n this.toolbarSearchFieldFilterCriteria = [ filterFieldCriteria ];\n } else {\n this.toolbarSearchFieldFilterCriteria = [];\n }\n\n // Will NOT have a toolbarSearchField when the list is a\n // cardview with detail sections. the affordance is not in the toolbar\n if (this.toolbarSearchField) {\n if (this.hasKeyWordSearch) {\n if (this.toolbarSearchField.fieldId === this.listSpec.busListSpec.keywordSearch.fieldId) {\n this.toolbarSearchField.value = this.listViewSearchFieldValue;\n }\n\n } else if (this.hasSearchFields) {\n if (this.toolbarSearchField.fieldId === this.listSpec.busListSpec.searchFields.fields[0].fieldId) {\n this.toolbarSearchField.value = this.listViewSearchFieldValue;\n }\n }\n }\n\n // There may also be a search form, take the search form values into account when creating the filterCriteria\n this.buildFilterCriteriaFromSearchForm();\n\n this.setFilterCriteria();\n }\n\n /**\n * On toolbar search clear just reset the toolbar search field\n */\n public onToolbarSearchClearedEvent() {\n this.toolbarSearchFieldFilterCriteria = [];\n this.setFilterCriteria();\n }\n\n public onCubeSearchOpenLookup(event: LMFieldEvent) {\n const evt: LMCubeSearchOpenLookupEvent = event as LMCubeSearchOpenLookupEvent;\n this.listContentComponent.cubeSearchOpenLookup(evt.field, this.searchFormDataView);\n }\n\n public onSearchClicked(event: LMFilterEvent) {\n this.searchFormFilterFieldCriteria = this.lmListUtilService.mergeStickyModifier(event.filterCriteria || [], this._filterOperators, this.hasSearchForm);\n\n if (this.toolbarSearchField) {\n this.toolbarSearchFieldFilterCriteria =\n this.toolbarSearchField.value ? [ this.getToolbarSearchFilterCriteria() ] : [];\n }\n\n this.buildSearchFormFilterCriteria();\n\n if (!this.searchFormIsAlways && this.hasSearchTags) {\n this.showSearchForm = false;\n }\n }\n\n private buildSearchFormFilterCriteria() {\n // Search is clicked on the search form (or enter is pressed in a search form field), check if there is also a\n // keyword search to take into account when building filter criteria\n if (this.toolbarSearchField) {\n this.toolbarSearchFieldFilterCriteria =\n this.toolbarSearchField.value ? [ this.getToolbarSearchFilterCriteria() ] : [];\n } else if (this.isCardViewWithDetailSections && this.listViewSearchFieldValue && this.listViewSearchFieldValue !== '') {\n this.buildListViewSearchFieldCriteria();\n return;\n }\n\n this.setFilterCriteria();\n }\n\n public onFilterButtonClicked() {\n this.showSearchForm = !this.showSearchForm;\n }\n\n /**\n * On search form clear search reset all search field including the\n * toolbar search field.\n */\n // eslint-disable-next-line no-unused-vars\n public onClearSearchClicked(event: LMFilterEvent) {\n // clear the toolbarSearchField\n this.toolbarSearchFieldFilterCriteria = [];\n\n if (this.toolbarSearchField) {\n this.toolbarSearchField = Object.assign({}, this.toolbarSearchField, { value: '' });\n }\n\n if (this.listState.filterCriteria) {\n delete this.listState.filterCriteria;\n this.fillOutDataViewFromFilterCriteria(this.searchFormDataView, []);\n }\n\n // searchDataView should have been updated by the search form\n this.searchFormFilterFieldCriteria = [];\n\n // clear keyword search\n this.listViewSearchFieldValue = '';\n\n this.clearFilterCriteria();\n this.clearSearchForm();\n }\n\n private clearFilterCriteria(): void {\n this.filterCriteria = null;\n // save the current filterCriteria in listState.\n this.listState.filterCriteria = this.filterCriteria;\n this.listState.userListViewItem = undefined;\n }\n\n /**\n * Merge the toolbar and search form filter criteria. this.filterCriteria is\n * bound as input down into the LMListGridComponent. It will pick up the changed\n * filterCriteria input and run the filter.\n */\n private setFilterCriteria(): void {\n // concat arrays using spread (...) operator\n this.filterCriteria = [ ... this.toolbarSearchFieldFilterCriteria, ... this.searchFormFilterFieldCriteria, ... this.filterBarFilterFieldCriteria ];\n\n if (!this.hasSearchTags) {\n // Reopening the search form after all search tags are removed. This is for https://jira.lawson.com/browse/LMCLIENT-22303\n if (this.listSpec.busListSpec.searchForm /*&& !this.listSpec.busListSpec.searchForm.useSearchAsFilter*/) {\n this.showSearchForm = true;\n }\n } else {\n if (this.listSpec.busListSpec.searchForm && !this.listSpec.busListSpec.searchForm.alwaysDisplaySearch) {\n // search tags exist, don't show the search form\n this.showSearchForm = false;\n }\n }\n\n // save the current filterCriteria in listState.\n this.listState.filterCriteria = this.filterCriteria;\n if (this.filterCriteria?.length === 0) {\n this.listState.userListViewItem = undefined;\n }\n }\n\n // Used by template\n public onSearchTagRemoved(removedSearchTag: LMListSearchTag) {\n const fieldId: string = removedSearchTag.id;\n\n // -------------------------------------------------------------\n // if removed tag is for the toolbar searchField\n // -------------------------------------------------------------\n if (this.listSpec.busListSpec.keywordSearch || this.listSpec.busListSpec.searchFields) {\n const targetFieldId = this.listSpec.busListSpec.keywordSearch ? this.listSpec.busListSpec.keywordSearch.fieldId : this.listSpec.busListSpec.searchFields[0].fieldId;\n if (targetFieldId === fieldId) {\n this.clearToolbarSearchField();\n }\n }\n\n // -------------------------------------------------------------\n // if removed tag is for the list view searchField\n // -------------------------------------------------------------\n if (this.listViewSearchFieldValue && this.listSpec.busListSpec.keywordSearch.fieldId === fieldId) {\n this.listViewSearchFieldValue = '';\n }\n\n this.clearSearchFormField(fieldId);\n\n // -------------------------------------------------------------\n // Rebuild the filterCriteria that controls the filtering of\n // the lm-list-grid.component.\n // -------------------------------------------------------------\n this.setFilterCriteria();\n }\n\n onClearSearchTags() {\n this.onClearSearchCriteria();\n this.setFilterCriteria();\n }\n\n onRefineFilter() {\n this.runSearch();\n }\n\n private clearSearchForm() {\n this.searchFormFilterFieldCriteria = [];\n\n // Make sure to only clear out the values of the search fields\n const formSpec = this.listSpec.busListSpec.searchForm.formSpec.busFormSpec;\n const layout = formSpec.busFormLayoutSpec.layout;\n\n const searchFieldIds: string[] = this.lmCommonUtilService.getBindIdsFromLayout(layout, formSpec.fields);\n\n // ------------------------------------------------------------------------\n // Set the searchDataView field value to blank\n // ------------------------------------------------------------------------\n searchFieldIds.forEach(fieldId => {\n this.clearSearchFormDataViewField(fieldId, this.searchFormDataView);\n });\n\n // ------------------------------------------------------------------------\n // copy the searchFormDataView to a new object to force change detection\n // ------------------------------------------------------------------------\n this.searchFormDataView = Object.assign({}, this.searchFormDataView);\n }\n\n private clearSearchFormDataViewField(fieldId: string, searchFormDataView: LMDataView) {\n // ---------------------------------------------------------------------------\n // clears the searchFormDataView field value and member values if available and reset filter types\n // ---------------------------------------------------------------------------\n\n const modelField = this.searchFormComponent?.model.getField(fieldId);\n if (modelField) {\n const fieldSpec = modelField.modelSpecField;\n const hasState = fieldSpec.hasOwnProperty('stateValues') || fieldSpec.hasUserDefinedStates;\n const isAlpha = (fieldSpec.type === AppConstants.ALPHARIGHT ||\n fieldSpec.type === AppConstants.ALPHA ||\n fieldSpec.type === AppConstants.ALPHAUPPER ||\n fieldSpec.type === AppConstants.ALPHALOWER);\n\n modelField.filterType = isAlpha && !hasState ? modelField.alphaFieldDefaultType : undefined;\n }\n\n if (searchFormDataView && searchFormDataView.fields) {\n if (!!searchFormDataView.fields[ fieldId ]) {\n searchFormDataView.fields[ fieldId ].value = '';\n\n // iterate member fields to clear the value and if available, the stateValues property\n if (searchFormDataView.fields[ fieldId ].members) {\n searchFormDataView.fields[ fieldId ].members.forEach( key => {\n searchFormDataView.fields[ key ].value = '';\n\n if (searchFormDataView.fields[ key ].stateValues) {\n searchFormDataView.fields[ key ].stateValues = undefined;\n }\n });\n }\n }\n }\n }\n\n private clearToolbarSearchField() {\n // -------------------------------------------------------------\n // reset the toolbar search field criteria\n // -------------------------------------------------------------\n this.toolbarSearchFieldFilterCriteria = [];\n\n // -------------------------------------------------------------\n // clear the toolbar search field. in order for change detection\n // to work create a new toolbarSearchField object.\n // the field may not exist if the list is a cardview with detail sections\n // in that case the search field is not on the toolbar\n // -------------------------------------------------------------\n\n if (this.toolbarSearchField) {\n this.toolbarSearchField = Object.assign({}, this.toolbarSearchField, { value: '' });\n }\n }\n\n private clearSearchFormField(fieldId: string) {\n // -------------------------------------------------------------\n // reset the search form filterCriteria array.\n // -------------------------------------------------------------\n this.searchFormFilterFieldCriteria = this.searchFormFilterFieldCriteria.filter(\n (filterCriteria: LMFilterFieldCriteria) => fieldId !== filterCriteria.fieldId);\n\n // ------------------------------------------------------------------------\n // Set the searchDataView field value to blank for the removedSearchTag.\n // ------------------------------------------------------------------------\n this.clearSearchFormDataViewField(fieldId, this.searchFormDataView);\n\n // ------------------------------------------------------------------------\n // copy the searchFormDataView to a new object to force change detection\n // ------------------------------------------------------------------------\n this.searchFormDataView = Object.assign({}, this.searchFormDataView);\n }\n\n private build(): void {\n NgZone.assertInAngularZone();\n\n this.lmLoggerService.trace([ this, this.instanceId, 'build()' ]);\n\n if (this.isRouterOutletRootComponent) {\n this.lmBannerHeaderCompRef.instance.fullPageScroll = false;\n }\n\n /*\n * listSpec is king. If a list spec is passed in as Input() then that\n * take precedence over the url.\n */\n if (this.listSpec) {\n // todo spec-url-refactor - maybe this should be passed in with the list spec?\n // this.listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(this.listSpec);\n // this.listSpecLoaded();\n this.loadDefaultUserListView();\n } else {\n this.loadListSpec(this.router.url);\n }\n\n // For helper list dialog, need t listen to OK clicks\n if (this.helperListOptions && this.helperListOptions.helperListDialog$) {\n this.helperListOptions.helperListDialog$\n // Do not do first here. This subscription will be active until dialog is closed.\n // The dialog service will complete and close this subject.\n .subscribe((actionDlgResult: LMHelperListDialogResult) => {\n if (actionDlgResult.result === LMHelperListDialogResultCode.HELPER_LIST_DIALOG_OK) {\n const rows: Array = this.listContentComponent.getSelectedRows();\n this.runInstanceAction(actionDlgResult.helperListAction.actionSpec, this.getDataViewSet(), rows, null,\n this.helperListOptions.contextDataView, actionDlgResult.helperListAction.actionFieldMap);\n }\n });\n }\n }\n\n /**\n * Lazily builds and returns the LMListStateKeyParams object.\n * @returns\n */\n private buildListStateKeyParams(rebuildStateKey = false): LMListStateKeyParams {\n if (!this.listStateKeyParams || rebuildStateKey) {\n const routeResourceId = this.lmUrlUtilService.getRouteResource().resourceId;\n this.listStateKeyParams = this.lmStateHelperService.buildListStateKeyParams(routeResourceId, this.listUrlInfo, this.listSpec);\n }\n\n return this.listStateKeyParams;\n }\n\n private buildListPersonalizationKeyParams(): LMListPersonalizationKeyParams {\n if (!this.listPersonalizationKeyParams) {\n this.listPersonalizationKeyParams = new LMListPersonalizationKeyParams();\n this.listPersonalizationKeyParams.prefix = this.elementRef.nativeElement.id;\n this.listPersonalizationKeyParams.dataArea = this.lmContextService.getContext().urlPdlOrDa;\n this.listPersonalizationKeyParams.resourceId = this.listUrlInfo.resource.resourceId;\n this.listPersonalizationKeyParams.actorId = this.lmContextService.getContext().actorId;\n\n if (this.listUrlInfo.sourceResource) {\n this.listPersonalizationKeyParams.contextResourceId = this.listUrlInfo.sourceResource.resourceId;\n }\n\n if (this.lmContextService.getAsOfDate()) {\n this.listStateKeyParams.asOfDate = this.lmContextService.getAsOfDate();\n }\n }\n\n return this.listPersonalizationKeyParams;\n }\n\n private loadListSpec(listUrl: string): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'loadListSpec()', 'listUrl: ' + listUrl ]);\n\n this.lmSpecService.getListSpec(listUrl).subscribe((response: LMListSpecResponse | LMSystemException) => {\n this.lmLoggerService.trace([ this, this.instanceId, 'getListSpec() completed', response ]);\n\n if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.hideBusyIndicator();\n const statusText = (response as LMSystemException).statusText;\n const details = (response as LMSystemException).details;\n this.lmErrorUtilService.handleError(statusText, details);\n return;\n }\n\n this.listUrlInfo = (response as LMListSpecResponse).listUrlInfo;\n this.listSpec = (response as LMListSpecResponse).listSpec;\n\n // this.listSpecLoaded();\n this.loadDefaultUserListView();\n },\n (error: any) => {\n this.hideBusyIndicator();\n this.lmErrorUtilService.handleUnexpectedError(error, this.modalPlaceholder);\n });\n }\n\n private loadDefaultUserListView(): void {\n if (!this.lmContextService.showUserListView()\n || !this.lmListSpecUtilService.hasUserListViewForList(this.listSpec)) {\n this.listSpecLoaded();\n return;\n }\n this.lmLoggerService.trace([ this, this.instanceId, 'loadDefaultUserListView()' ] );\n const url = this.lmUrlUtilService.buildUserListViewFetchUrl(this.listUrlInfo, this.listSpec);\n this.lmConfigurationService.getDefaultUserListView(url).subscribe((response: LMUserListViewDefaultResponse) => {\n if (response.hasDefaultView) {\n // Update search state from default view\n this.defaultUserListViewItem = response.defaultView;\n } else {\n // No default user list view.\n }\n this.listSpecLoaded();\n },\n (error: any) => {\n // Log and proceed for now.\n // this.lmErrorUtilService.handleUnexpectedError(error, this.modalPlaceholder);\n this.lmLoggerService.log([ this, this.instanceId, 'Failed to fetch default UserListView.', error ]);\n this.listSpecLoaded();\n });\n }\n\n private listSpecLoaded(): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'listSpecLoaded()', this.listSpec ]);\n this.lmFormatterService.listSpec = this.listSpec;\n const bannerPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const appDisplay = bannerPersonalization.appDisplay;\n const unsupportedPattern = this.doesSpecContainUnsupported4_0Patterns(this.listSpec);\n\n this.setLegacyVariables(unsupportedPattern, appDisplay, this.lmContextService, this.lmHtmlPageUtilService);\n\n if (this.lmBannerHeaderCompRef.instance && this.lmBannerHeaderCompRef.instance.is3_5 !== undefined) {\n this.lmBannerHeaderCompRef.instance.is3_5 = (this.url3_5 && this.url3_5.length > 0) ? true : false;\n }\n // ------------------------------------------------------------------------\n // can set to true here since the build method will have provided all\n // that's needed to continue building the component.\n // ------------------------------------------------------------------------\n this.initialBuildComplete = true;\n\n if (this.hasSearchForm) {\n this.searchFormSpec = this.listSpec.busListSpec.searchForm.formSpec;\n if (this.lmListSpecUtilService.isCubeView(this.listSpec)) {\n this.searchFormSpec.busFormSpec.subFormType = AppConstants.FORMSUBTYPE_CUBESEARCHFORM;\n }\n this.searchFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.searchFormSpec);\n }\n\n if (this.hasDetailFields && !this.hasDetailSections && !this.implementsOrgChartView) {\n // pass along if disable field options was set on the list, so the detail fields will have their field options\n // surpressed\n if (this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.disableFieldOptions) {\n this.listSpec.busListSpec.detailFieldsSpec.formSpec.disableFieldOptions = true;\n }\n this.detailFieldsFormSpec = this.listSpec.busListSpec.detailFieldsSpec.formSpec;\n this.detailFieldsFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.detailFieldsFormSpec);\n\n if (this.listSpec?.busListSpec?.detailFieldsSpec?.formSpec?.busFormSpec?.busFormLayoutSpec?.layout) {\n this.detailFieldsFormLayout = this.listSpec.busListSpec.detailFieldsSpec.formSpec.busFormSpec.busFormLayoutSpec.layout;\n }\n\n if (this.listSpec?.busListSpec?.detailFieldsSpec?.formSpec?.busFormSpec?.fields) {\n this.detailFieldsSpecFields = this.listSpec.busListSpec.detailFieldsSpec.formSpec.busFormSpec.fields;\n }\n }\n\n this.initialize();\n\n // ------------------------------------------------------------------------\n // TODO: ppatton akila make this better -\n // Perhaps the sohoxi dialog changes we want will fix this.\n // jira.infor.com/browse/SOHO-6800\n // jira.infor.com/browse/SOHO-6800\n // ------------------------------------------------------------------------\n // Calling change detection here so that lists that are in dialogs\n // will display. Perhaps a better way would be for the dialog to\n // message the list for it to detect changes. Or perhaps it can mark\n // the whole lm-list for check.\n // ------------------------------------------------------------------------\n if (this.listSpec.listType === 'select'\n || this.listSpec.listType === 'helper') {\n // CHANGE DETECTION\n this.changeDetectorRef.detectChanges();\n }\n\n // Handles drawer's state transition during phone view to\n // properly toggle between the cardview and its detail section\n if (this.isCardViewWithDetailSections) {\n this.showDetails$ = this.lmBannerHeaderCompRef.backReferenceChanges$.pipe(\n map((ref: BackReferenceChange) => {\n // no longer in phone view\n if (ref.action === 'reset') {\n this.hideDetailSectionTabs = false;\n return false;\n }\n\n const listSpecId = this.listSpec.busListSpec.id;\n const lastReference = this.lmBannerHeaderCompRef.lastBackReference();\n const isThisList = ref.backReference.id === listSpecId;\n // navigate backwards (back to parent cardview)\n if (ref.action === 'pop') {\n this.hideDetailSectionTabs = !(lastReference && lastReference.id === listSpecId);\n return isThisList ? false : this.listState.showDetails;\n }\n // navigate forward (go to details)\n if (ref.action === 'push') {\n this.hideDetailSectionTabs = !isThisList;\n return isThisList ? true : this.listState.showDetails;\n }\n }),\n startWith(!!this.listState.showDetails),\n distinctUntilChanged(),\n tap((showDetails: boolean) => {\n this.listState.showDetails = showDetails;\n })\n );\n }\n }\n\n public getExportActionFilterCriteria(): Array {\n if (this.listViewSearchFieldValue) {\n let fieldId: string;\n let label: string;\n\n if (this.hasKeyWordSearch) {\n label = this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.keywordSearch.label, this.getDataViewSet().header);\n fieldId = this.listSpec.busListSpec.keywordSearch.fieldId;\n\n } else if (this.hasSearchFields) {\n fieldId = this.listSpec.busListSpec.searchFields.fields[0].fieldId;\n label = this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.searchFields.fields[ 0 ].label, this.getDataViewSet().header);\n }\n\n const filterFieldCriteria: LMFilterFieldCriteria = {\n fieldId,\n operator: 'contains',\n value: this.listViewSearchFieldValue,\n label,\n displayValue: this.listViewSearchFieldValue,\n isKeywordSearch: true\n };\n this.toolbarSearchFieldFilterCriteria = [ filterFieldCriteria ];\n } else if (this.toolbarSearchField) {\n this.toolbarSearchFieldFilterCriteria =\n this.toolbarSearchField.value ? [ this.getToolbarSearchFilterCriteria() ] : [];\n }\n\n if (this.hasSearchForm) {\n this.buildFilterCriteriaFromSearchForm();\n } else {\n this.buildFilterCriteriaFromFilterBar();\n }\n\n return [ ... this.toolbarSearchFieldFilterCriteria, ... this.searchFormFilterFieldCriteria, ... this.filterBarFilterFieldCriteria ];\n }\n\n private buildSearchFormCriteria(filterCriteria: Array) {\n if (filterCriteria) {\n const keywordFieldId = this.listSpec.busListSpec.keywordSearch ? this.listSpec.busListSpec.keywordSearch.fieldId : null;\n const searchFieldId = this.listSpec.busListSpec.searchFields ? this.listSpec.busListSpec.searchFields.fields[0].fieldId : null;\n const searchCriteria = filterCriteria.filter(criteria => criteria.fieldId !== keywordFieldId && criteria.fieldId !== searchFieldId );\n if (!this.hasSearchForm) {\n this.filterBarFilterFieldCriteria = searchCriteria;\n this._columnfilterOperators = new Map(filterCriteria?.map( filterOperator => [ filterOperator.id, filterOperator.operator ]));\n } else {\n this.searchFormFilterFieldCriteria = searchCriteria;\n this._filterOperators = new Map(filterCriteria?.map( filterOperator => [ filterOperator.fieldId, filterOperator.operator ]));\n }\n }\n }\n\n private buildKeywordSearchFormCriteria(filterCriteria: Array) {\n if (filterCriteria) {\n const keywordFieldId = this.listSpec.busListSpec.keywordSearch.fieldId;\n const searchCriteria = filterCriteria.filter( criteria => criteria.fieldId === keywordFieldId);\n this.toolbarSearchFieldFilterCriteria = searchCriteria;\n this.listViewSearchFieldValue = searchCriteria[0] ? searchCriteria[0].value : '';\n }\n }\n\n private buildSearchFieldFormCriteria(filterCriteria: Array) {\n if (filterCriteria) {\n const searchFieldId = this.listSpec.busListSpec.searchFields.fields[0].fieldId;\n const searchCriteria = filterCriteria.filter( criteria => criteria.fieldId === searchFieldId);\n this.toolbarSearchFieldFilterCriteria = searchCriteria;\n this.listViewSearchFieldValue = searchCriteria[0] ? searchCriteria[0].value : '';\n }\n }\n\n /**\n * Method to initialize any variables after the listSpec has been loaded.\n */\n private initialize(): void {\n // todo ppatton fix duplicate calls to loadComponentState\n // dependent lists call loadComponentState in the `@Input() set fromDataView()`. I'd like\n // to just stop this one from being called when this.listSpec.dependentList but I'm concerned\n // about the code just after this where we use listState to build filter criteria. It seems\n // that when we loadListState in the fromDataView input we may have to include the handling\n // of the filter criteria as well?\n // Or is there a different kind of list state for filtering where the filter is preserved\n // no matter what the fromDataView is set to. Which would actually be a really cool feature.\n // - Phillip 4/11/18\n this.loadComponentState();\n\n if (this.listState && this.listState.filterCriteria) {\n // -------------------------------------------------------------------------\n // after loadComponentState set the filterCriteria right away from state\n // so that it has a chance to make it down to the list impls w/o running\n // a filterPage back end operation. The initialPage will take care of that.\n // -------------------------------------------------------------------------\n\n this.buildSearchFormCriteria(this.listState.filterCriteria);\n\n if (this.listSpec.busListSpec.keywordSearch) {\n this.buildKeywordSearchFormCriteria(this.listState.filterCriteria);\n }\n\n if (this.listSpec.busListSpec.searchFields) {\n this.buildSearchFieldFormCriteria(this.listState.filterCriteria);\n }\n\n this._filterCriteria = [ ... this.toolbarSearchFieldFilterCriteria, ... this.searchFormFilterFieldCriteria, ... this.filterBarFilterFieldCriteria ];\n }\n\n // toolbar already appends '_toolbar' to the so removing adding it here for v2.\n // need to keep it for v1 in order to not break current usage.\n this.screenId = this.listSpec.busListSpec.id;\n this.screenAutomationId = this.listSpec.busListSpec.automationId;\n\n // -------------------------------------------------------------------------\n // Setup toolbar service observable to build and update the toolbar state.\n // When any call to the service modifies it's internal toolbar buttons\n // then this will get messaged and the lists toolbar will be updated\n // with the new buttons through an angular template sync pipe\n // display toolbar above the list if card view with list details\n // -------------------------------------------------------------------------\n this.lmListToolbarService.setSecondaryToolbarOptions([]);\n\n if (this.isRouterOutletRootComponent && !this.isCardViewWithDetailSections && !this.isCubeView) {\n this.lmBannerHeaderCompRef.instance.toolbarButtons = this.lmListToolbarService.getToolbarButtonsObservable();\n this.lmBannerHeaderCompRef.instance.screenId = this.screenId;\n this.lmBannerHeaderCompRef.instance.screenAutomationId = this.screenAutomationId;\n this.lmBannerHeaderCompRef.instance.toolbarMoreSettings = this.toolbarMoreMenuSettings;\n\n } else {\n this.toolbarButtons = this.lmListToolbarService.getToolbarButtonsObservable();\n\n if (this.isRouterOutletRootComponent) {\n if (this.isCardViewWithDetailSections) {\n // -----------------------------------------------------------------------------------------------------\n // if this card list has detail sections then place the save and refresh buttons on the header toolbar\n // instead of in the card lists toolbar. This way it's more clear to the user that refresh and save are\n // meant for the entire screen.\n // -----------------------------------------------------------------------------------------------------\n this.lmListToolbarService.setSecondaryToolbarOptions([ AppConstants.STANDARD_SAVE, AppConstants.STANDARD_TOOLBAR_REFRESH ]);\n this.lmBannerHeaderCompRef.instance.toolbarButtons = this.lmListToolbarService.getSecondaryToolbarButtonsObservable();\n this.lmBannerHeaderCompRef.instance.screenId = this.screenId + '_secondary';\n this.lmBannerHeaderCompRef.instance.screenAutomationId = this.screenAutomationId + '-secondary';\n\n } else if (this.isCubeView) {\n // ------------------------------------------------------------------------\n // if cube view then clear the header toolbar because the toolbar will\n // be over each component in the cube view (list and chart).\n // ------------------------------------------------------------------------\n this.lmBannerHeaderCompRef.instance.toolbarButtons = observableOf([]);\n this.lmBannerHeaderCompRef.instance.screenId = this.screenId;\n this.lmBannerHeaderCompRef.instance.screenAutomationId = this.screenAutomationId;\n }\n }\n }\n\n this.listResource = new ListResource({ resourceId: this.listSpec.resourceId });\n\n this.listComponentId = this.listSpec.busListSpec.id + '_list';\n\n /**\n * If not set from outside the component as input (i.e. page pane interaction) then see if this\n * list has detail sectiosn. If so set the hasDependData to true so mixed selection mode will be\n * set.\n */\n if (!this.hasDependentData) {\n this.hasDependentData = this.hasDetailSections;\n }\n\n const listResource = new ListResource({ resourceId: this.listSpec.resourceId });\n\n // If listState doesn't have a displayAs set, set it\n if (!this.listState.displayAs) {\n if (this.isCubeView) {\n this.listState.displayAs = 'cubeView';\n } else if (this.listSpec.busListSpec && this.listSpec.busListSpec.charts) {\n if (this.listSpec.busListSpec.charts.Calendar && (listResource.chartName === 'Calendar' || this.listSpec.busListSpec.defaultChartName === 'Calendar')) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_CHART;\n this.chartName = 'Calendar';\n } else if (listResource.chartName) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_CHART;\n this.chartName = listResource.chartName;\n this.listState.chartName = this.chartName;\n } else if (this.listSpec.busListSpec.defaultChartName) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_CHART;\n this.chartName = this.listSpec.busListSpec.defaultChartName;\n this.listState.chartName = this.chartName;\n } else if (this.listSpec.busListSpec.showChartsOnly) {\n this.listState.displayAs = 'chart';\n this.chartName = Object.keys(this.listSpec.busListSpec.charts)[0];\n this.listState.chartName = this.chartName;\n } else {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_LIST;\n }\n } else if (\n this.listSpec.busListSpec &&\n this.listSpec.busListSpec.implementsTreeView &&\n !this.listSpec.busListSpec.implementsOrgChartView\n ) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_TREE;\n } else if (this.listSpec.busListSpec && this.listSpec.busListSpec.implementsRepresentativeImageView) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_IMAGELIST;\n } else if (\n this.listSpec.busListSpec &&\n this.listSpec.busListSpec.implementsOrgChartView\n ) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_HIERARCHY;\n } else if (\n (this.isCardViewWithDetailSections\n || this.isCardViewOnly\n || this.isResponsiveCardView())\n && this.listSpec.listType !== 'filterlist'\n && !this.listSpec.implementsGalleryView\n ) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_LISTVIEW;\n } else if (this.listSpec.listType === 'filterlist') {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_FILTERLIST;\n } else if (this.listSpec.implementsGalleryView) {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_GALLERY;\n } else {\n this.listState.displayAs = AppConstants.LISTVIEWTYPE_LIST;\n }\n } else {\n // restore the chartName if loading from listState.\n if (this.listSpec.busListSpec?.charts) {\n if (this.listState.displayAs === 'chart') {\n // Safety - if no chartName then try on of the other defaults\n this.chartName = (this.listState.chartName && this.chartValidation())\n || listResource.chartName\n || this.listSpec.busListSpec.defaultChartName\n || Object.keys(this.listSpec.busListSpec.charts)[0];\n this.listState.chartName = this.chartName;\n } else if (this.listSpec.busListSpec.charts.Calendar && this.listState.displayAs === 'calendar') {\n this.chartName = 'Calendar';\n } else if (this.listState.displayAs === 'list' && this.listSpec.busListSpec.showChartsOnly) {\n this.listState.displayAs = 'chart';\n this.chartName = this.listSpec.busListSpec.defaultChartName || Object.keys(this.listSpec.busListSpec.charts)[0];\n this.listState.chartName = this.chartName;\n }\n }\n\n // LMWEB-87 - commenting this out as it's causing issues with non 'list's: for example: tree, imageList, listView, etc..\n // one example of this is filtering on a tree list, opening a record, and then navigating back. In that case\n // displayAs changes from 'tree' to 'list' and that causes a lm-list-grid.component to get created instead of a\n // lm-list-tree.component. This causes issues with filtering in that case.\n // else {\n // this.listState.displayAs = 'list';\n // delete this.listState.chartName;\n // }\n }\n\n // when to show the search form\n // 1. When LPL is always display\n // 2. When LPL is display initial\n // 3. When LPL is not use as filter, show the search form if it has one\n // 4. If have search tags (so a search has previously been done), don't show unless always display\n if (this.listSpec.busListSpec.searchForm) {\n if (this.hasSearchTags) {\n this.showSearchForm = this.searchFormIsAlways;\n } else {\n this.showSearchForm = (this.searchFormIsAlways || this.searchFormIsInitial || this.searchFormIsImplied);\n }\n }\n\n this.buildLandmarkPanels();\n }\n\n private chartValidation() {\n return Object.keys(this.listSpec.busListSpec.charts).findIndex(\n key => key === this.listState.chartName\n ) > -1 ? this.listState.chartName : undefined;\n }\n\n private isResponsiveCardView() {\n return this.listSpec.busListSpec.responsiveCardView && this.lmContextService.isMobileDevice();\n }\n\n private buildToolbar() {\n if (this.listSpec.listType === 'filterlist' || this.isCubeView) {\n return;\n }\n\n this.lmLoggerService.trace([ this, this.instanceId, 'buildToolbar()' ]);\n\n // if (!this.isCardViewWithDetailSections) {\n // // -----------------------------------------------------------------------\n // // toolbarSearchField is not used when this list is a cardview list with\n // // detail sections. Instead listViewSearchFieldValue is used.\n // // -----------------------------------------------------------------------\n // this.toolbarSearchField = this.lmListToolbarService.getToolbarSearchField(this.listSpec);\n // }\n // todo ppatton temporary until ed coyle fixes up the toolbar maxVisibleButtons property.\n // once that happens then uncomment out the code above.\n\n // Only build searchField if searchField doesn't already exist and not a cardview with a detail section\n if (!this.isCardViewWithDetailSections && !(!!this.toolbarSearchField) && ( this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.keywordSearch !== undefined )) {\n this.toolbarSearchField = this.lmListToolbarService.getToolbarSearchField(this.listSpec);\n // set the value to the saved filter criteria value\n if (this.listState.filterCriteria) {\n this.listState.filterCriteria.filter((fc: LMFilterFieldCriteria) => fc.fieldId === this.toolbarSearchField.fieldId)\n .map((fc: LMFilterFieldCriteria) => this.toolbarSearchField.value = fc.value);\n }\n }\n\n this.lmListToolbarService.buildToolbarButtons(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n\n /*\n * If the toolbar is on the header for this component then use the\n * headerToolbarAdapter service to set the HeaderToolbarTarget to\n * 'this' and pass in the toolbarOptions explicitly.\n */\n if (this.isRouterOutletRootComponent) {\n // Unsubscribe to all the toolbar eventemitters in banner header, since we were getting duplicate\n // subscriptions whenever the toolbar was rebuilt (in an onDataLoaded call)\n this.unsubscribeToBannerEvents();\n\n // map outputs from the toolbar in the banner header\n this.subscribeToBannerEvents();\n }\n }\n\n private unsubscribeToBannerEvents() {\n if (this.toolbarButtonEventSubscription) {\n this.toolbarButtonEventSubscription.unsubscribe();\n }\n\n if (this.toolbarSearchEventSubscription) {\n this.toolbarSearchEventSubscription.unsubscribe();\n }\n\n if (this.toolbarSearchClearedEventSubscription) {\n this.toolbarSearchClearedEventSubscription.unsubscribe();\n }\n }\n\n private subscribeToBannerEvents() {\n this.toolbarButtonEventSubscription = this.lmBannerHeaderCompRef.instance.toolbarButtonEvent.subscribe((toolbarButtonEvent: LMToolbarButtonEvent) => {\n this.onToolbarButtonEvent(toolbarButtonEvent);\n });\n\n // eslint-disable-next-line no-unused-vars\n this.toolbarSearchEventSubscription = this.lmBannerHeaderCompRef.instance.toolbarSearchEvent.subscribe((toolbarSearchEvent: LMFilterEvent) => {\n this.onToolbarSearchEvent();\n });\n\n // eslint-disable-next-line no-unused-vars\n this.toolbarSearchClearedEventSubscription = this.lmBannerHeaderCompRef.instance.toolbarSearchClearedEvent.subscribe((toolbarSearchEvent: LMFilterEvent) => {\n this.onToolbarSearchClearedEvent();\n });\n }\n\n private getStateInfo(): LMListStateInfo {\n const stateInfo: LMListStateInfo = {\n dataViewSet: this.getDataViewSet(),\n savedSearches: this.listContentComponent.savedSearches,\n selectedDataView: this.getDataView(this.listContentComponent.getSelectedRow()),\n selectedRows: this.selectedRows,\n isModified: this.isModified(),\n searchFormDisplayed: this.showSearchForm,\n isUpdatable: this.lmListSpecUtilService.allowUpdate(this.listSpec) || this.lmListSpecUtilService.implementsInlineCreate(this.listSpec),\n inlineCreateEnabled: this.isInlineCreateEnabled(),\n inlineCreateModified: this.isInlineCreateModified(),\n createWithinEnabled: this.isCreateWithinEnabled(),\n isRootComponent: this.isRouterOutletRootComponent,\n fromDataView: this.fromDataView,\n specialActions: this.specialActions,\n displayAs: this.listState.displayAs,\n disableAllActions: this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.disableAllActions,\n suppressStandardToolbar: this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.suppressStandardToolbar,\n calledOutActionsOnly: this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.calledOutActionsOnly,\n listIdPrefix: this.listSpec.busListSpec.id,\n isSelectListInSelectionMode: this.isSelectListInSelectionMode(),\n isSelectListInEditMode: this.inSelectListEditMode,\n chartName: this.listState.chartName,\n hasFilterCriteria: !!this.listState.filterCriteria?.length,\n userListViewItem: this.listState.userListViewItem,\n };\n\n return stateInfo;\n }\n\n private setScreenTitle(dataView?: LMDataView) {\n if (this.disabled) {\n // -------------------------------------------------------------------------\n // If disabled then check to see if title has variables. If not just show\n // the resourceValue for the title.\n // -------------------------------------------------------------------------\n // if there are variables and the list is disabled, blank out the title\n // todo ppatton maybe show XXX, 999, ###... for variables based on type\n // {0} ({1,number,#} Results) XXXXX (#) Results\n // -------------------------------------------------------------------------\n const hasNoVariables = (!this.listSpec.busListSpec.title.variables || this.listSpec.busListSpec.title.variables.length === 0);\n this.listTitle = hasNoVariables ? this.listSpec.busListSpec.title.resourceValue : ' ' ;\n } else {\n this.listTitle = dataView\n ? this.lmFormatUtilService.formatMessageRule(this.listSpec.busListSpec.title, dataView, this.listSpec.busListSpec.fields)\n : this.listSpec.busListSpec.title.resourceValue;\n }\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)) {\n if (this.listState.chartName) {\n if (this.listSpec.busListSpec.charts[ this.listState.chartName ]) {\n const chartSpec = JSON.parse(JSON.stringify(this.listSpec.busListSpec.charts[ this.listState.chartName ]));\n this.listTitle = this.lmFormatUtilService.formatMessageRule(chartSpec.title, dataView);\n }\n }\n }\n\n // using override title only if list title is blank\n if (this.overrideListTitle && this.listTitle.trim().length === 0) {\n this.listTitle = this.overrideListTitle;\n }\n\n if (this.listSpec.busListSpec\n && this.listSpec.busListSpec.displayAmountRelative\n && this.listSpec.busListSpec.displayAmountRelative.displayShowInTitle) {\n if (this.listSpec.busListSpec.displayAmountRelative.displayInThousands) {\n this.listTitle += ` (${Soho.Locale.translate('DisplayInThousands')})`;\n } else if (this.listSpec.busListSpec.displayAmountRelative.displayInMillions) {\n this.listTitle += ` (${Soho.Locale.translate('DisplayInMillions')})`;\n }\n }\n\n if (this.isRouterOutletRootComponent) {\n if (this.reportListTitle) {\n const title = Soho.Locale.translate('ReportsListTitle');\n this.listTitle = this.lmFormatUtilService.formatMessage(title, this.reportListTitle);\n }\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = this.listTitle;\n }\n\n // TODO tpatton move to its own method, this is not part of the screen title.\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec)\n && this.getDataViewSet()) {\n const recordCount: string = this.getDataViewSet().columnarInfo.recordCountForHeader;\n const lastRefreshed: string = this.getDataViewSet().columnarInfo.lastRefreshed;\n let pageCount: number = this.getDataViewSet().pagingInfo.pageSize - 1;\n\n if (pageCount > +recordCount) {\n pageCount = +recordCount;\n }\n\n const recordCountFormatted: string = this.lmFormatUtilService.numericToDisplay(recordCount,\n { displayZero: true, displayThousandsCharacter: true });\n const pageCountFormatted: string = this.lmFormatUtilService.numericToDisplay(pageCount,\n { displayZero: true, displayThousandsCharacter: true });\n\n let columnarText = '';\n if (pageCount > -1 && +recordCount > 0) {\n columnarText = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ResultsOf'),\n [ pageCountFormatted, recordCountFormatted ]);\n }\n\n if (lastRefreshed) {\n if (columnarText !== '') {\n columnarText = columnarText + ' - ';\n }\n\n const formattedLastRefreshedTime: string = this.lmFormatUtilService.timestampToDisplay(lastRefreshed, null);\n columnarText = columnarText + this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ColumnarLastRefresh'), [ formattedLastRefreshedTime ]);\n }\n\n this.columnarSubTitle = columnarText;\n }\n\n this.titleChanged.emit(this.listTitle);\n }\n\n public get displayFullHeight(): boolean {\n return (this.listContentComponent && this.listContentComponent.isType('chart'));\n }\n\n public get displayListContainerFullHeight() {\n return (this.displayFullHeight && !this.hasStandardDetailSections);\n }\n\n public get listResource(): ListResource {\n return this.listResourceImpl;\n }\n\n public set listResource(listResource: ListResource) {\n this.listResourceImpl = listResource;\n }\n\n private fixedEncodeURIComponent(str: string) { // tslint:disable-line\n return encodeURIComponent(str).replace(/[!'()*]/g, (c) =>\n '%' + c.charCodeAt(0).toString(16));\n }\n\n // ---------------------------------------------------\n // EVENT HANDLERS\n // ---------------------------------------------------\n public onTitleChanged(event: any) {\n const titleChanged = event.detail;\n this.lmBannerHeaderCompRef.instance.toolbarSectionTitle = titleChanged.newTitle;\n }\n\n public onPanelContentDisplayed(event: LMContentDisplayedEvent) {\n this.panelContentDisplayed.emit(event);\n\n this.dashboardVisibility = 'visible';\n }\n\n public onContextMenuItemSelected(menuItemEvent: SohoPopupMenuEvent) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onContextMenuItemSelected()', this.listComponentId, menuItemEvent ]);\n\n const actionReferenceString = menuItemEvent.args[ 0 ].attributes.getNamedItem('attr.data-action-reference').value;\n const actionReference: LMBusActionReference = JSON.parse(actionReferenceString);\n const selectedDataViews: Array = this.selectedDataViews;\n if (actionReference.type === 'cube') {\n this.listContentComponent.onContextMenuItemSelected(actionReference, (selectedDataViews.length === 1) ? selectedDataViews[0] : undefined);\n } else {\n if (selectedDataViews.length === 1) {\n this.runToolbarButtonAction(actionReference, selectedDataViews[0]);\n } else {\n this.runToolbarButtonAction(actionReference);\n }\n }\n }\n\n public onToolbarButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent) {\n this.lmLoggerService.trace([ this, this.instanceId, 'onToolbarButtonEvent()', this.listComponentId, toolbarButtonEvent ]);\n\n if (!toolbarButtonEvent.actionReference) {\n return;\n }\n\n if (toolbarButtonEvent.actionReference.isSpecialAction && !toolbarButtonEvent.actionReference.isMatrixFormNav) {\n const specialToolbarButtonEvent = {\n event: toolbarButtonEvent.event,\n actionReference: toolbarButtonEvent.actionReference,\n actionSpec: toolbarButtonEvent.actionSpec,\n list: this\n };\n this.specialActionToolbarButtonEvent.emit(specialToolbarButtonEvent);\n return;\n }\n // Open search in a Dialog\n if (this.displaySearchInDialog && toolbarButtonEvent.actionReference.id === AppConstants.STANDARD_TOOLBAR_SEARCH) {\n this.openSearchFormDialog();\n }\n\n if (toolbarButtonEvent.actionReference.type === 'cube'\n && toolbarButtonEvent.actionReference.id === AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS + toolbarButtonEvent.actionReference.index) {\n this.switchCubeDetailSectionPeriodViewPeriod(toolbarButtonEvent.actionReference);\n }\n\n this.runActionReference(toolbarButtonEvent.actionReference, toolbarButtonEvent);\n }\n\n private switchCubeDetailSectionPeriodViewPeriod(actionReference: LMBusActionReference) {\n if (this.lmListSpecUtilService.isDetailSection(this.listSpec) && this.fromDataView?.cubeInfo) {\n // Reset the currentPageUrl to rebuild the dataurl with the new period view period index.\n this.fromDataView.cubeInfo.extraInfo = Object.assign({}, this.fromDataView.cubeInfo.extraInfo, { pvPeriodIdx: actionReference.index });\n this.lmUrlUtilService.copyCubeParamsForDetailSection(this.listUrlInfo, this.fromDataView);\n if (this.listState) {\n this.listState.currentPageUrl = undefined;\n }\n // Detail Section emits the event\n this.cubeDetailSectionPVPeriodEvent.emit(new LMCubeDetailSectionPVPeriodEvent(this, actionReference.index));\n // This is similar to runRefresh, but runRefresh does not return an observable. Update the toolbar after refresh, since\n // list data grid does not fire onDataLoaded event. Switching period view period requires the toolbar to be updated with\n // the new selection.\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this.executeRefresh().subscribe(() => {\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n });\n }\n });\n }\n }\n\n public onCubeDetailSectionPVPeriodEvent(event: LMCubeDetailSectionPVPeriodEvent) {\n // Cube view handles the event to update its state.\n // Period view and period view period index are stored in the state.\n // It is required to restore state after the user returns back from cube drill.\n this.listState.cubeOverrides = Object.assign({}, this.listState.cubeOverrides, { periodViewPeriod: event.pvPeriodIdx });\n }\n\n public onSearchFormDisplayed() {\n this.listDisplayed.emit(this);\n }\n\n private runActionReference(actionReference: LMBusActionReference, toolbarEvent?: LMToolbarButtonEvent): void {\n // DPB adding cardViewFormButtonSpec to handle busform button pushes from a list -- Phillip thinking of better architecture solution.\n const selectedRow = actionReference.row !== undefined ? actionReference.row : this.getSelectedRow();\n let dataView: LMDataView = this.getDataView(selectedRow);\n // If toolbar is in a card view it can have links\n if (actionReference.type.toUpperCase() === AppConstants.NAVIGATION) {\n let xtrParameters;\n if (actionReference.isMatrixFormButton) {\n xtrParameters = this.buildMatrixColumnItems();\n }\n toolbarEvent?.event?.preventDefault();\n dataView = actionReference.isListUiLink ? this.getDataViewSet().header : dataView;\n this.runLinkNavigation(actionReference.navigation, dataView.resourceId, actionReference.showAsPdf, xtrParameters);\n } else if (actionReference.cardViewFormButtonSpec) {\n this.runCardViewButton(actionReference, dataView);\n } else if (actionReference.type === AppConstants.BUTTON_TYPE_FORMINVOKE) {\n dataView = actionReference.isListFormInvoke ? this.getDataViewSet().header : dataView;\n this.runFormInvoke(actionReference.name, dataView);\n } else if (actionReference.type === AppConstants.BUTTON_TYPE_HTTPURL) {\n dataView = actionReference.isListUiLink ? this.getDataViewSet().header : dataView;\n this.runUILinkHttpUrl(actionReference, dataView);\n } else {\n this.runToolbarButtonAction(actionReference);\n }\n }\n\n private runFormReference(displayField: LMListDisplayField, dataView: LMDataView): void {\n const formIsUrlTemplate = urltemplate.parse(displayField.formIsUrl);\n const formIsUrl = formIsUrlTemplate.expand({\n resourceId: dataView.resourceId,\n sourceResourceType: 'list',\n sourceResourceId: this.listResource.resourceId\n });\n this.lmGlobalUtilService.navigateByUrl(formIsUrl);\n }\n\n private runListReference(relationResourceId: string, resourceId: string, dataView: LMDataView): void {\n const listResource = new ListResource({\n resourceId\n });\n\n const args = { resourceId: relationResourceId, dataView };\n const contextResource = new RelationResource(args, relationResourceId);\n\n const url = this.lmUrlUtilService.buildUrl({ resource: listResource, contextResource });\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n\n private buildMatrixColumnItems(): string {\n // TODO 3.x is building a different resource for panel action\n // the action is marked differently 'isMatrixFormNav'\n const matrixColumns: string[] = this.buildMatrixColumnItemArray();\n return matrixColumns.join('&');\n }\n\n private buildMatrixColumnItemArray(): string[] {\n const matrixColumns: string[] = [];\n this.getSelectedRows().forEach(row => {\n const columnDataView = this.getDataView(row);\n // const listResource = { resourceId: columnDataView.resourceId, listName: this.listSpec.busListSpec.name };\n matrixColumns.push(this.lmUrlUtilService.objectToQueryString({ item: columnDataView.resourceId }));\n });\n return matrixColumns;\n }\n\n private runCardViewButton(actionReference: LMBusActionReference, dataView: LMDataView): void {\n const cardViewFormButtonSpec = actionReference.cardViewFormButtonSpec;\n if (cardViewFormButtonSpec.documentResourceId) {\n this.openDocumentResource(cardViewFormButtonSpec.documentResourceId, dataView);\n } else if (cardViewFormButtonSpec.httpUrl) {\n const option: string = (cardViewFormButtonSpec.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(cardViewFormButtonSpec.httpUrl, dataView);\n\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(url);\n } catch (e) {\n //noop\n }\n //copied from lm-navigation.component\n if (resource?.resourceType === 'navigation') {\n this.lmNavigationService.runNavigation(url, undefined, { openNewTab: cardViewFormButtonSpec.openExternal });\n } else {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n } else if (cardViewFormButtonSpec.formInvokeName) {\n this.runFormInvoke(cardViewFormButtonSpec.formInvokeName, dataView);\n } else {\n this.runToolbarButtonAction(actionReference);\n }\n }\n\n public openSearchFormDialog() {\n // TODO: looks like this was being prototyped; needs to have completion on the button id; use LMDialogButtonKey and\n // Soho.Locale.translate()\n const buttons = [\n {\n // id: this.lmUniqueIdService.uniqueId([]),\n text: 'clear',\n click: (e, modal) => {\n modal.isCancelled = true;\n modal.close(true);\n }\n },\n {\n // id: this.lmUniqueIdService.uniqueId([]),\n text: 'Search',\n click: (e, modal) => {\n modal.close(true);\n }, validate : false, isDefault: true\n }\n ];\n\n this.dialog = this.sohoModalDialogService\n .modal(LMListSearchFormDialogComponent, this.searchFormPlaceholder, { fullsize: 'responsive' })\n .title('Search Form')\n .buttons(buttons)\n .apply((dialogComponent) => {\n dialogComponent.formSpec = this.listSpec.busListSpec.searchForm.formSpec;\n dialogComponent.initDataView = this.searchFormDataView;\n dialogComponent.formOptions = this.searchFormOptions;\n dialogComponent.searchButtonClicked.subscribe((event: LMFilterEvent) => {\n this.onSearchClicked(event);\n });\n })\n .open();\n }\n\n private runToolbarButtonAction(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n const row = actionReference.row > -1 ? actionReference.row : null;\n let dataView: LMDataView;\n switch (actionReference.type) {\n case AppConstants.BUTTON_TYPE_ACTION:\n case AppConstants.FORMBUTTON: // todo khollenbeck dboehm this doens't seem right, shouldn't this be BUTTON_TYPE_FORMBUTTON? - Phillip 3/4/2020\n case AppConstants.BUTTON_TYPE_FORMBUTTON:\n if (actionReference.isMatrixFormNav) {\n const urlParams: LMUrlParams = { ... this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n urlParams.list = this.listResource.resourceId;\n let url = LMUrlUtilService.buildUrl2(this.listUrlInfo.basePath, 'form', actionReference.formResource, urlParams);\n // TODO buildUrl2 seems to be incorrectly appending multi items in the query string, need to check!!!\n url = this.lmUrlUtilService.appendToQueryString(url, this.buildMatrixColumnItems());\n this.lmGlobalUtilService.navigate(url);\n } else {\n let actionSpec: LMActionSpec = this.listSpec.busClassSpec.actions[actionReference.index];\n if (!actionSpec) {\n if (!actionReference.cardViewFormButtonSpec || !actionReference.cardViewFormButtonSpec.actionSpec) {\n this.lmLoggerService.log([ this, this.instanceId, 'runToolbarButtonAction() > invalid action index: ' + actionReference.index ]);\n return;\n }\n actionSpec = actionReference.cardViewFormButtonSpec.actionSpec;\n }\n this.runAction(actionSpec, row, actionReference.id);\n }\n break;\n case AppConstants.BUTTON_TYPE_STANDARD_ACTION:\n case AppConstants.BUTTON_TYPE_HELPERLIST:\n this.runStandardAction(actionReference);\n break;\n case AppConstants.RESOURCETYPE_LIST:\n this.listState.displayAs = 'list';\n this.listState.chartName = undefined;\n break;\n case AppConstants.RESOURCETYPE_HIERARCHY:\n this.listState.displayAs = 'hierarchy';\n break;\n case AppConstants.RESOURCETYPE_TREE:\n this.listState.displayAs = 'tree';\n break;\n case AppConstants.BUTTON_TYPE_CHART:\n this.listState.displayAs = 'chart';\n this.chartName = actionReference.id;\n this.listState.chartName = this.chartName;\n break;\n case AppConstants.BUTTON_TYPE_CALENDAR:\n this.listState.displayAs = 'calendar';\n this.chartName = actionReference.id;\n this.listState.chartName = this.chartName;\n break;\n case AppConstants.BUTTON_TYPE_RELATED:\n this.runDrillAction(actionReference);\n break;\n case AppConstants.BUTTON_TYPE_PROCESSFLOW:\n const rows: Array = (row) || row === 0 ? [ row ] : this.listContentComponent.getSelectedRows();\n this.runProcessFlowAction(actionReference.id, rows);\n break;\n case AppConstants.BUTTON_TYPE_NAVIGATION:\n dataView = actionReference.isListUiLink ? this.getDataViewSet().header : selectedDataView;\n this.runLinkNavigation(actionReference.navigation, dataView.resourceId, false);\n break;\n case AppConstants.BUTTON_TYPE_HTTPURL:\n dataView = actionReference.isListUiLink ? this.getDataViewSet().header : selectedDataView;\n this.runUILinkHttpUrl(actionReference, dataView);\n break;\n case AppConstants.BUTTON_TYPE_PERSONALIZE:\n this.runListPersonalization(actionReference);\n break;\n case AppConstants.BUTTON_TYPE_FORMINVOKE:\n dataView = actionReference.isListFormInvoke ? this.getDataViewSet().header : selectedDataView;\n this.runFormInvoke(actionReference.name, dataView);\n break;\n }\n }\n\n private runDrillAction(actionReference: LMBusActionReference) {\n // todo spec-url-refactor drills ane rel-actions can be done at a later time since they\n // are small and lazily retrieved.\n const relActionUrl = actionReference.relActionUrl;\n // let relActionUrl = this.lmUrlUtilService.buildRelatedMenuActionUrl(this.listUrlInfo, actionReference);\n // if (!this.lmContextService.useNewSpecUrls()) {\n // this.lmUrlInfoBuilderService.compareSpecUrls(this.listUrlInfo, this.listSpec.busListSpec.name + '.relActionUrl', actionReference.relActionUrl, relActionUrl);\n // relActionUrl = actionReference.relActionUrl;\n // }\n this.lmSpecService.getDrillSpec(relActionUrl).subscribe(response => {\n if (response.redirectUrl) {\n if (response.redirectUrl.indexOf('output=pdf') > -1) {\n this.lmGlobalUtilService.navigate(response.redirectUrl, null, 'external');\n\n } else if (response.redirectUrl.indexOf('/document/') > -1) {\n this.lmGlobalUtilService.navigate(response.redirectUrl);\n\n } else if (this.listSpec.listType === 'select') {\n // If a drill around is happening from a select list (for example, a\n // list on a lookup), open the link in a new tab and maintain the\n // state of the initial page. https://jira.lawson.com/browse/LMCLIENT-23976\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n\n } else {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n }\n }\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.modalPlaceholder);\n });\n }\n\n private runAction(actionSpec: LMActionSpec, row: number = null, actionReferenceId: string = null) {\n switch (actionSpec.type) {\n case AppConstants.ACTION_TYPE_CREATE:\n case AppConstants.ACTION_TYPE_IMPORT:\n this.runCreateAction(actionSpec);\n break;\n\n case AppConstants.ACTION_TYPE_CREATE_WITHIN:\n // this.runCreateWithinAction(action);\n break;\n\n case AppConstants.ACTION_TYPE_UPDATE:\n case AppConstants.ACTION_TYPE_AUDIT_OVERRIDE:\n case AppConstants.ACTION_TYPE_AUDIT_UPDATE:\n case AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE:\n row = (row !== null) ? row : this.selectedRow;\n const dataView: LMDataView = this.getDataView(row);\n this.runUpdateAction(actionSpec, dataView, actionReferenceId);\n break;\n\n case AppConstants.ACTION_TYPE_DELETE:\n const deleteRows: Array = (row !== null) ? [ row ] : this.listContentComponent.getSelectedRows();\n const deleteDataViewList: Array = [];\n deleteRows.forEach((r: number) => {\n deleteDataViewList.push(this.getDataView(r));\n });\n this.runDeleteAction(actionSpec, deleteDataViewList);\n break;\n\n case AppConstants.ACTION_TYPE_FUNCTION:\n case AppConstants.ACTION_TYPE_AUDIT_DELETE:\n const rows: Array = (row) || row === 0 ? [ row ] : this.listContentComponent.getSelectedRows();\n this.runInstanceAction(actionSpec, this.getDataViewSet(), rows);\n break;\n\n case AppConstants.ACTION_TYPE_SET:\n this.runSetAction(actionSpec);\n break;\n\n case AppConstants.NOOP:\n // DO NOTHING..\n break;\n\n default:\n this.lmLoggerService.log([ this, this.instanceId, 'invalid action type: ' + actionSpec ]);\n\n }\n }\n\n private runSetAction(actionSpec: LMActionSpec) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this._runSetAction(actionSpec);\n }\n });\n }\n\n private _runSetAction(actionSpec: LMActionSpec) {\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n this.lmBusyIndicatorService.showBusyIndicator();\n this.lmListTransactionService.runSetAction(listContext, actionSpec, this.getDataViewSet()).subscribe(\n (transactionState: LMTransactionState) => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n\n } else if (transactionState.isFinished) {\n // Set Action will only have one transaction\n const result: LMActionResult = transactionState.completedTransactionList[ 0 ];\n const message = result.message || '';\n const title = (transactionState.isSuccess()) ? result.actionSpec.label : '';\n\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n\n // refreshing the list to be compatible with 3.5, even though an action may\n // have been scheduled or the action may take sevaral seconds to complete\n this.executeRefresh().subscribe();\n }\n });\n }\n\n public runInstanceAction(actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n rows: Array,\n observer?: Observer,\n contextDataView?: LMDataView,\n actionFieldMap?: LMActionFieldMap,\n dragdropTargetView?: LMDataView) {\n\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this._runInstanceAction(actionSpec, dataViewSet, rows, observer, contextDataView, actionFieldMap, dragdropTargetView);\n }\n });\n }\n\n private _runInstanceAction(actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n rows: Array,\n observer?: Observer,\n contextDataView?: LMDataView,\n actionFieldMap?: LMActionFieldMap,\n dragdropTargetView?: LMDataView) {\n\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n // rows is passed in because checkControl event on a row also calls this method\n const dataViewList: LMDataView[] = [];\n rows.forEach((row: number) => {\n const dataView: LMListDataView | LMListTreeMoreLink = this.getDataView(row);\n // LMCLIENT-28640 - Let's not perform actions on \"more\" link or totals dvs.\n if (!(dataView.isTreeMoreLink ||\n dataView.isSubtotalView ||\n dataView.isSubtotalSummaryView)) {\n dataViewList.push(dataView);\n }\n });\n\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmListTransactionService.runInstanceAction(listContext, actionSpec, dataViewSet, dataViewList, contextDataView, actionFieldMap, dragdropTargetView).subscribe(\n (transactionState: LMTransactionState) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n\n } else if (transactionState.isFinished) {\n // helper lists need to inform the target list that the transaction\n if (this.helperListOptions && this.helperListOptions.helperListDialog$) {\n this.helperListOptions.helperListDialog$.next({\n result: LMHelperListDialogResultCode.HELPER_LIST_ACTION_FORM_DIALOG_SAVED\n });\n }\n const resultList = transactionState.completedTransactionList;\n let successes = 0;\n let failures = 0;\n let cancelledRT = 0;\n const adjustment = this.isInlineCreateModeOn() ? 0 : 1;\n let title = '';\n let message = '';\n const updateMap: Map = new Map();\n const transactionSize = resultList.length;\n\n for (let i = 0; i < transactionSize; i++) {\n const result: LMActionResult = resultList[ i ];\n const key = (result.dataView.id === -1) ? 0 : result.dataView.id - adjustment;\n message = result.message || '';\n updateMap.set(key, result);\n\n // todo odd use of terniary operation, consider refactoring\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n AppConstants.STATUS_COMPLETED === result.status ? successes++ :\n (AppConstants.CONFIRMATION_REQUIRED === result.status) ? cancelledRT++ : failures++;\n }\n\n // todo this code is duplicated in some of the transaction functions. any way to consolidate any of this?\n let toastId = '';\n if (transactionSize !== 1) {\n if (successes === transactionSize) {\n // all transactions succeeded\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteSuccess'), successes);\n message = transactionState.allRequestsSuccessfulForSameReason() ? message : '';\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n } else if (failures === transactionSize) {\n // all transactions failed\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteFailure'), failures);\n message = transactionState.allRequestsFailedForSameReason() ? message : '';\n toastId = AppConstants.TRA_ACTION_FAILED;\n } else if (cancelledRT === transactionSize) {\n // all transactions runtime confirmation cancelled\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteCancelledRT'), cancelledRT);\n toastId = AppConstants.TRA_ACTION_CANCELED;\n } else {\n // some transactions succeeded and some failed\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteResults'), [ successes, failures, cancelledRT ]);\n toastId = AppConstants.TRA_ACTION_PARTIALLY_COMPLETED;\n }\n } else {\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n }\n\n if (cancelledRT === 0 || transactionSize !== 1) {\n this.lmGlobalUtilService.displayToastMessage(title, message, toastId);\n }\n\n if (transactionSize === 1 && failures === 0 && cancelledRT === 0\n && resultList[0].isCompletionNavigation && resultList[0].redirectUrl) {\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), resultList[0].dataView);\n this.lmNavigationService.runNavigation(resultList[0].redirectUrl, formPagingInfo);\n return;\n } else if (failures === 0 && cancelledRT === 0) {\n // need to refresh and wait!, Issue when a composite form is single panel and\n // the single panel switches to another panel. https://jira.lawson.com/browse/LMCLIENT-27540\n // The component listState is corrupted because of a race condition.\n this.executeRefresh().subscribe();\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent);\n } else {\n updateMap.forEach((result: LMActionResult, key: number) => {\n // when running an actionForm, the dataView.id (key) is lost if the transaction is successful.\n // Should be ok for an instance action because the row should be dirty\n if (!isNaN(key)) {\n this.listContentComponent.updateDataViewTransaction(key, result.status, result.message);\n }\n });\n\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n }\n\n if (observer) {\n observer.next(transactionState.isSuccess());\n observer.complete();\n }\n });\n }\n\n private runStandardAction(actionReference: LMBusActionReference): void {\n switch (actionReference.id) {\n case AppConstants.STANDARD_TOOLBAR_EDITMODE:\n this.turnOnSelectEditMode(!this.inSelectListEditMode);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_INLINECREATE:\n this.turnOnInlineCreateMode(true);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_CREATEWITHIN:\n case AppConstants.STANDARD_TOOLBAR_CREATE:\n const createActionSpec: LMActionSpec = this.lmActionService.getDefaultCreateAction(this.listSpec.busClassSpec.actions, this.getDataViewSet().header.actionIndexes);\n this.runCreateAction(createActionSpec, AppConstants.STANDARD_TOOLBAR_CREATEWITHIN === actionReference.id);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_OPEN:\n const openDataView: LMListDataView = this.getDataView(this.selectedRow);\n this.runOpenAction(openDataView);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_UPDATE:\n const updateDataView: LMDataView = this.getDataView(this.selectedRow);\n const updateActionSpec: LMActionSpec = this.lmActionService.getDefaultUpdateAction(this.listSpec.busClassSpec.actions, updateDataView.actionIndexes);\n this.runUpdateAction(updateActionSpec, updateDataView, actionReference.id);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_DELETE:\n const deleteDataViewList: Array = this.selectedDataViews;\n const deleteActionSpec: LMActionSpec = this.lmActionService.getListDeleteAction(this.listSpec.busClassSpec.actions, this.getDataViewSet(), this.selectedRows);\n this.runDeleteAction(deleteActionSpec, deleteDataViewList);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n this.runRefresh();\n break;\n\n case AppConstants.STANDARD_TOOLBAR_PRINTTOFILE:\n case AppConstants.STANDARD_TOOLBAR_EXPORTPDF:\n this.runPdfAction(actionReference);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_EXPORTCSV:\n this.runCsvAction(actionReference);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWACTION:\n break;\n\n case AppConstants.STANDARD_TOOLBAR_HELPERLIST:\n this.runHelperAction(this.fromDataView, actionReference.index || 0);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_PERSONALIZE:\n this.runListPersonalization(actionReference);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_CREATEREPORT:\n this.runCreateReport();\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SEARCH:\n this.runSearch();\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING:\n const sortOrderAscending: LMListSortOrder = {\n sortOrderName: this.getDataViewSet().pagingInfo.sortOrderName,\n isAscending: true\n };\n this.sortOrder = sortOrderAscending;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING:\n const sortOrderDescending: LMListSortOrder = {\n sortOrderName: this.getDataViewSet().pagingInfo.sortOrderName,\n isAscending: false\n };\n this.sortOrder = sortOrderDescending;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM:\n const sortOrderName: LMListSortOrder = {\n sortOrderName: actionReference.name,\n isAscending: this.getDataViewSet().pagingInfo.isAscending\n };\n this.sortOrder = sortOrderName;\n break;\n\n case AppConstants.STANDARD_SAVE:\n case AppConstants.STANDARD_TOOLBAR_SAVENEW:\n this.executeSaveAction(actionReference.id);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_COPYROW:\n this.runCopyRow(this.selectedRow);\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWAUDIT:\n case AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT:\n const selectedDataView: LMListDataView = this.getDataView(this.selectedRow);\n this.runAuditLogAction(selectedDataView,\n actionReference.id === AppConstants.STANDARD_TOOLBAR_VIEWAUDIT ? 'viewAudit' : 'viewFullAudit');\n break;\n case AppConstants.STANDARD_TOOLBAR_AUDITCOMPARE:\n this.showAuditCompareModal();\n break;\n case AppConstants.STANDARD_TOOLBAR_RELATEDREPORT_MORE:\n this.lmContextService.setClearNextPageState(true);\n // eslint-disable-next-line no-fallthrough\n case AppConstants.STANDARD_TOOLBAR_RELATEDREPORT:\n this.lmGlobalUtilService.navigateByUrl(actionReference.relActionUrl);\n break;\n case AppConstants.ACTION_TYPE_AUDIT_DELETE:\n case AppConstants.ACTION_TYPE_AUDIT_UPDATE:\n case AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE:\n case AppConstants.ACTION_TYPE_AUDIT_OVERRIDE:\n this.runAuditAction(this.lmActionService.getActionIndexesByType(this.listSpec.busClassSpec.actions, actionReference.id));\n break;\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW:\n const savedSearchState = actionReference.searchState;\n this.listState.userListViewItem = actionReference.userListViewItem;\n this.filterCriteria = savedSearchState.filters;\n this.sortOrder = savedSearchState.sortOrder;\n break;\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE:\n if (!this.getStateInfo().hasFilterCriteria) {\n return;\n }\n const searchStateSave = {\n filters: this.getExportActionFilterCriteria(),\n sortOrder: this.listState.sortOrderCriteria\n };\n\n this.lmSavedSearchService.runSave({\n userListViewItem: this.listState.userListViewItem,\n searchState: searchStateSave,\n listSpec: this.listSpec,\n listUrlInfo: this.listUrlInfo\n }).subscribe((result: LMUserListViewResult) => {\n if (result.success) {\n this.listState.userListViewItem = result.userListViewItem;\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n });\n break;\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVEAS:\n if (!this.getStateInfo().hasFilterCriteria) {\n return;\n }\n const searchStateSaveAs = {\n filters: this.getExportActionFilterCriteria(),\n sortOrder: this.listState.sortOrderCriteria\n };\n\n this.lmSavedSearchService.runSaveAs({\n name: this.listState.userListViewItem?.name,\n searchState: searchStateSaveAs,\n listSpec: this.listSpec,\n listUrlInfo: this.listUrlInfo\n }).subscribe((result: LMUserListViewResult) => {\n if (result.success) {\n this.listState.userListViewItem = result.userListViewItem;\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n });\n break;\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR:\n if (this.listState.userListViewItem) {\n if (this.hasSearchForm) {\n this.onClearSearchCriteria();\n } else {\n this.filterBarFilterFieldCriteria = [];\n this.toolbarSearchFieldFilterCriteria = [];\n this.setFilterCriteria();\n }\n }\n break;\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MANAGE:\n this.lmSavedSearchService.openManageDialog(this.listSpec.busClassSpec.name, this.listSpec.busListSpec.name, this.listTitle,\n this.lmContextService.getActorId(), this.listSpec.userFolder ? this.listSpec.userFolder : '').subscribe();\n break;\n }\n }\n\n private runSearch() {\n if (this.hasSearchForm) {\n this.showSearchForm = !this.showSearchForm || this.listState.drawerCollapsed;\n } else {\n if (this.listState.isFilterBarOpened) {\n this._columnfilterOperators = new Map();\n if (this.listContentComponent?.listGrid) {\n this.listContentComponent.listGrid.clearFilter();\n }\n }\n this.showFilter = !this.hasSearchForm && !this.listState.isFilterBarOpened;\n }\n this.listState.isFilterBarOpened = !this.hasSearchForm && !this.listState.isFilterBarOpened;\n\n if (this.listState.drawerCollapsed) {\n this.expandDrawerSide();\n }\n }\n\n private runAuditAction(actionReference: Array) {\n this.runAction(actionReference ? actionReference[0] : undefined);\n }\n\n private runProcessFlowAction(actionReferenceId: string, rows: Array) {\n const dataViewList: LMDataView[] = [];\n rows.forEach((row: number) => {\n dataViewList.push(this.getDataView(row));\n });\n\n // Get the process flow action\n const dataView = dataViewList[0];\n const processFlowAction: LMProcessFlowAction = dataView.processFlowActions.find(pfAction => pfAction.name === actionReferenceId);\n\n if (processFlowAction) {\n // let actionSpec = this.lmActionService.getDefaultUpdateAction(this.listSpec.busClassSpec.actions, dataView.actionIndexes, true);\n this.lmBusyIndicatorService.showBusyIndicator();\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n this.lmListTransactionService.runProcessFlowAction(listContext, processFlowAction, dataViewList, this.getDataViewSet()).subscribe(\n (transactionState: LMTransactionState) => {\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n // DPB what to do\n } else if (transactionState.isFinished) {\n const resultList = transactionState.completedTransactionList;\n let successes = 0;\n let failures = 0;\n let cancelledRT = 0;\n let title = '';\n let message = '';\n const updateMap: Map = new Map();\n const transactionSize = resultList.length;\n\n for (let i = 0; i < transactionSize; i++) {\n const result: LMActionResult = resultList[ i ];\n message = result.message || '';\n updateMap.set(result.dataView.id - 1, result); // No inline create in process flow\n\n // todo odd use of terniary operation, consider refactoring\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n AppConstants.STATUS_COMPLETED === result.status ? successes++ :\n (AppConstants.CONFIRMATION_REQUIRED === result.status) ? cancelledRT++ : failures++;\n }\n\n let toastId = '';\n\n if (transactionSize !== 1) {\n if (successes === transactionSize) {\n // all transactions succeeded\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteSuccess'), successes);\n message = transactionState.allRequestsSuccessfulForSameReason() ? message : '';\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n } else if (failures === transactionSize) {\n // all transactions failed\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteFailure'), failures);\n message = transactionState.allRequestsFailedForSameReason() ? message : '';\n toastId = AppConstants.TRA_ACTION_FAILED;\n } else if (cancelledRT === transactionSize) {\n // all transactions runtime confirmation cancelled\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteCancelledRT'), cancelledRT);\n toastId = AppConstants.TRA_ACTION_CANCELED;\n } else {\n // some transactions succeeded and some failed\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TransactionCompleteResults'), [ successes, failures, cancelledRT ]);\n toastId = AppConstants.TRA_ACTION_PARTIALLY_COMPLETED;\n }\n } else {\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n }\n\n if (cancelledRT === 0 || transactionSize !== 1) {\n this.lmGlobalUtilService.displayToastMessage(title, message, toastId);\n }\n\n if ( failures === 0 && cancelledRT === 0) {\n this.executeRefresh().subscribe();\n // TODO: Is this needed?\n // let listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n // this.listTransactionEvent.emit(listTransactionEvent);\n } else {\n // Some are approved and some are not. How do you remove the successful ones? The user has to refresh.\n updateMap.forEach((result: LMActionResult, key: number) => {\n // when running an actionForm, the dataView.id (key) is lost if the transaction is successful.\n // Should be ok for an instance action because the row should be dirty\n if (!isNaN(key)) {\n this.listContentComponent.updateDataViewTransaction(key, result.status, result.message);\n }\n });\n\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n }\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n });\n }\n }\n\n private showAuditCompareModal() {\n // Create the row data\n const dataset = this.createCompareDialogData(this.getDataViewSet().auditCompareInfo, this.listContentComponent.getSelectedRows());\n const dialogId = 'CompareLog';\n\n // Create modal button\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n },\n isDefault: true,\n }\n ];\n\n // Show the dialog button\n this.dialog = this.sohoModalDialogService\n .modal(LMAuditLogCompareDialogComponent, this.modalPlaceholder, { fullsize: 'responsive' })\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .apply((dialogComponent) => {\n dialogComponent.dataset = dataset;\n })\n .open();\n }\n\n private createCompareDialogData(auditCompareInfo: LMAuditCompareInfos, selectedRows: Array): LMAuditCompareChangedValues[] {\n const changedValues = [];\n const [ row1Index, row2Index ] = selectedRows;\n const row1DataView = this.getDataView(row1Index);\n const row2DataView = this.getDataView(row2Index);\n const row1AudSeq = this.getAuditSequence(row1DataView);\n const row2AudSeq = this.getAuditSequence(row2DataView);\n\n const useAuditSequence = ((row1AudSeq !== -1) && (row2AudSeq !== -1)) || (row1AudSeq !== row2AudSeq);\n const index1 = (useAuditSequence) ? row1AudSeq : row1Index;\n const index2 = (useAuditSequence) ? row2AudSeq : row2Index;\n\n const dataViewNew = index1 < index2 ? row2DataView : row1DataView;\n const dataViewOld = index1 < index2 ? row1DataView : row2DataView;\n\n const keys = Object.keys(dataViewOld.fields);\n keys.forEach(key => {\n const dataViewNewValue = dataViewNew.fields[key].value;\n const dataViewOldValue = dataViewOld.fields[key].value;\n if (dataViewOldValue !== dataViewNewValue) {\n const auditCompareData = auditCompareInfo[key];\n const auditCompareDataType = auditCompareData && auditCompareData.type ? auditCompareData.type : 'Editor';\n changedValues.push({\n FieldName: this.lmFieldUtilService.decodeFieldName(key),\n Label: auditCompareData ? auditCompareData.label : '',\n FromValue: this.lmFormatUtilService.toDisplayValue(dataViewOldValue, auditCompareDataType),\n ToValue: this.lmFormatUtilService.toDisplayValue(dataViewNewValue, auditCompareDataType)\n });\n }\n });\n\n return changedValues;\n }\n\n private getAuditSequence(dataView: LMDataView): LMFieldValue {\n const key = `${dataView?.busClassName}_audit_sequence`;\n return dataView?.fields[key]?.value || -1;\n }\n\n public runAuditLogAction(dataView: LMListDataView, auditType: string): void {\n const auditActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.viewAuditLogRedirectUrl);\n const auditActionRedirectUrl = auditActionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: auditType,\n contextResourceId: this.getDataViewSet().header.resourceId,\n });\n\n this.lmGlobalUtilService.navigateByUrl(auditActionRedirectUrl);\n // this.lmNavigationService.runNavigation(auditActionRedirectUrl)\n\n }\n\n // LmComponent should call this method when the user asks to refresh data.\n // It should NOT be called by components to refresh the list\n private runRefresh() {\n // console.log('list runRefresh: ' + this.listSpec.busListSpec.name);\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this.executeRefresh().subscribe();\n }\n });\n }\n\n private executeRefresh(request?: LMRefreshRequest): Observable {\n // console.log('list refresh: ' + this.listSpec.busListSpec.name);\n if (!this.listContentComponent) {\n // safety in case the list is newly created and a refresh is called but the\n // listContentComponent ChildView is till not hooked up. This can happen with\n // a compform with a single list-panel that has visibility changed due to an\n // instance action on the main composite form.\n return of(true);\n }\n\n if (this.listId === request?.originatingSourceId) {\n // console.log('list refresh canceled: ' + this.listSpec.busListSpec.name);\n return of(true);\n }\n\n return new Observable(observer => {\n const hardRefresh: boolean = !request || !request.originatingSourceId; // hard refresh means the user initiated the refresh, else we are refreshing to update data after a transaction\n const refreshCalls: Observable[] = [];\n const isListModified = this.listContentComponent?.isModified();\n const isDetailSectionModified = this.detailSectionsComponent?.isModified();\n\n if (hardRefresh || !isListModified ) {\n refreshCalls.push(this.listContentComponent.refresh());\n }\n\n if (this.detailSectionsComponent && (hardRefresh || !isDetailSectionModified)) {\n refreshCalls.push(this.detailSectionsComponent.refresh(request));\n }\n\n // eslint-disable-next-line no-unused-vars\n forkJoin(refreshCalls).subscribe(value => {\n if (this.hasDetailFields && this.detailfieldsFormModelCache.length) {\n this.clearDetailFieldsFormModelCache();\n }\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n // ---------------------------------------------------------------------------\n // todo dpb was hoping to have an interface more like this: - Phillip 1/31/18\n // runSaveAction(isSaveAndNew = false): Observable) {}\n // more like how refresh is.\n // ---------------------------------------------------------------------------\n public runSaveAction(actionReferenceId: string, callBack: Observer, skipToast?: boolean) {\n this.executeSaveAction(actionReferenceId, callBack, skipToast);\n }\n\n private executeSaveAction(actionReferenceId: string, callBack?: Observer, skipToast?: boolean): void {\n /*\n known issues\n 1. save involving two different action specs may no work because the\n confirmation exception and response required rules run against the first\n actionSpec found. This may happen when an inline create and update is performed\n in a single transaction.\n */\n\n if (this.hasDetailFields && this.detailFieldsFormModel.isDirty) {\n this.syncDetailFieldsFormModelAndListDataviews(true);\n }\n\n // Commit changes to the grid\n this.commitCellEdit();\n\n const isModified = this.isModified();\n // TODO: DPB if list has detail field (side or bottom) then check if they are modified then mark isModified true\n\n if (!isModified) {\n return;\n }\n\n if (this.hasDetailSections && this.detailSectionsComponent && this.detailSectionsComponent.isModified()) {\n this.detailSectionsComponent.runSaveAction().subscribe((continueOn: boolean) => {\n if (continueOn && this.listContentComponent.isModified()) {\n this.runSave(actionReferenceId, callBack, skipToast);\n } else {\n if (callBack) {\n callBack.next(continueOn);\n callBack.complete();\n }\n }\n });\n } else if (this.dashboardViewComponent && this.dashboardViewComponent.isModified()) {\n this.dashboardViewComponent.runSaveAction().subscribe((continueOn: boolean) => {\n if (continueOn && this.listContentComponent.isModified()) {\n this.runSave(actionReferenceId, callBack, skipToast);\n } else {\n if (callBack) {\n callBack.next(continueOn);\n callBack.complete();\n }\n }\n });\n } else {\n this.runSave(actionReferenceId, callBack, skipToast);\n }\n }\n\n private runSave(actionReferenceId: string, callBack: Observer, skipToast?: boolean) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n const dirtyDataViews: LMDataView[] = this.listContentComponent.getDirtyRows(true);\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n this.lmListTransactionService.runSaveAction(listContext, this.getDataViewSet(), dirtyDataViews).subscribe(\n (transactionState: LMTransactionState) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.performingSaveNewViaHotkey = false;\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n } else if (transactionState.isCanceled) {\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n } else {\n const resultList = transactionState.completedTransactionList;\n let successes = 0;\n let failures = 0;\n let cancelledRT = 0;\n const adjustment = this.isInlineCreateModeOn() ? 0 : 1;\n let message = '';\n const updateMap: Map = new Map();\n const transactionSize = resultList.length;\n\n for (let i = 0; i < transactionSize; i++) {\n const result: LMActionResult = resultList[ i ];\n const key = (+result.dataView.id === -1) ? 0 : result.dataView.id - adjustment;\n message = result.message || '';\n updateMap.set(key, result);\n\n // todo odd use of terniary operation, consider refactoring\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n AppConstants.STATUS_COMPLETED === result.status ? successes++ :\n (AppConstants.CONFIRMATION_REQUIRED === result.status) ? cancelledRT++ : failures++;\n }\n\n // Summarize the transaction result. Also handle the situation were a result message\n // is not provided for a single tranaction.\n const allTransactionsSucceeded = successes === transactionSize;\n let toastId;\n if (transactionSize !== 1 || (transactionSize === 1 && message.length === 0)) {\n if (allTransactionsSucceeded) {\n // all transactions succeeded\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SaveActionCompleteRowsSaved'), successes);\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n if (this.hasDetailFields && this.detailfieldsFormModelCache.length) {\n this.clearDetailFieldsFormModelCache();\n }\n } else if (failures === transactionSize) {\n // all transactions failed\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SaveActionCompleteRowsFailed'), failures);\n toastId = AppConstants.TRA_ACTION_FAILED;\n } else if (cancelledRT === transactionSize) {\n // all transactions runtime confirmation cancelled\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SaveActionCompleteRowsCancelledRT'), cancelledRT);\n toastId = AppConstants.TRA_ACTION_CANCELED;\n } else {\n // some transactions succeeded and some failed\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SaveActionCompleteResults'), [ successes, failures, cancelledRT ]);\n toastId = AppConstants.TRA_ACTION_PARTIALLY_COMPLETED;\n if (this.hasDetailFields && this.detailfieldsFormModelCache.length) {\n const dataViews = [ ...resultList.filter(result => result.status === 'COMPLETED').map(result => result.dataView) ];\n this.clearDetailFieldsFormModelCache(dataViews);\n }\n }\n } else {\n toastId = AppConstants.TRA_ACTION_COMPLETED;\n }\n\n if (!(skipToast && allTransactionsSucceeded)) {\n this.lmGlobalUtilService.displayToastMessage('', message, toastId);\n }\n\n const isSpeedEntryMode = AppConstants.STANDARD_TOOLBAR_SAVENEW === actionReferenceId;\n\n // refresh the list if there is no error and not in speedEntryMode\n if (failures === 0 && !isSpeedEntryMode) {\n this.turnOnInlineCreateMode(false);\n this.listContentComponent.clearDirty();\n // eslint-disable-next-line no-unused-vars\n this.refresh().subscribe(refreshDone => {\n // console.log('Save refresh finished');\n if (callBack) {\n callBack.next(transactionState.isSuccess() && !transactionState.isCanceled);\n callBack.complete();\n }\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent);\n });\n } else {\n updateMap.forEach((result: LMActionResult, key: number) => {\n if (result.status === AppConstants.STATUS_COMPLETED) {\n // console.log('updating dataview' + result.dataView.resourceId);\n this.listContentComponent.updateDataView(key, result.dataView);\n }\n // console.log('updating transaction' + result.dataView.resourceId + ' status:' + result.status + ' msg:' + result.message);\n this.listContentComponent.updateDataViewTransaction(key, result.status, result.message);\n });\n\n if (failures === 0) {\n if (isSpeedEntryMode) {\n const inlineCreateDataView = resultList[ 0 ].dataView;\n this.updateDataViewSetForSpeedEntry(inlineCreateDataView);\n this.addInlineCreateDataView();\n\n const selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec, !this.isSelectListInSelectionMode(), this.selectRequestData?.allowMultiSelections);\n if (selectionMode === 'single') {\n this.listContentComponent.setSelectedRows([ AppConstants.INLINE_CREATE_ROW ], true);\n } else {\n this.listContentComponent.activateRow(AppConstants.INLINE_CREATE_ROW, true);\n }\n\n if (!this.isRouterOutletRootComponent) {\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent);\n }\n } else {\n this.turnOnInlineCreateMode(false);\n }\n }\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n // let the form panel or master list know if save was successful\n if (callBack) {\n callBack.next(transactionState.isSuccess() && !transactionState.isCanceled);\n callBack.complete();\n }\n }\n }\n });\n }\n\n private updateDataViewSetForSpeedEntry(inlineCreateDataView: LMDataView) {\n const dataViewSet: LMDataViewSet = this.getDataViewSet();\n\n // Soho datagrid is adding properties to the dataView to maintain\n // selected and rowactivated states that need to be merged.\n const oldDataView = dataViewSet.data[AppConstants.INLINE_CREATE_ROW];\n const newDataView = { ...oldDataView, ...inlineCreateDataView };\n delete newDataView.isNewRow;\n dataViewSet.data[AppConstants.INLINE_CREATE_ROW] = newDataView;\n\n for (let i = 0, len = dataViewSet.data.length; i < len; i++ ) {\n const dataView: LMDataView = this.getDataView(i);\n dataView.id = i + 1;\n }\n }\n\n private isInlineCreateModeOn(): boolean {\n if (!this.isInlineCreateEnabled()) {\n return false;\n }\n\n const dataViewSet = this.getDataViewSet();\n if (!dataViewSet || dataViewSet.data.length <= 0) {\n return false;\n }\n\n const dataView = dataViewSet.data[ AppConstants.INLINE_CREATE_ROW ];\n return (dataView && dataView.isNewRow);\n }\n\n public turnOnInlineCreateMode(turnOn: boolean): void {\n\n if (!this.isInlineCreateEnabled()) {\n return;\n }\n\n if (!this.isInlineCreateModeOn() && !turnOn) {\n return;\n }\n\n if (this.isInlineCreateModeOn() && turnOn) {\n // put focus in the inline create row\n return;\n }\n\n if (turnOn) {\n this.addInlineCreateDataView();\n } else {\n this.removeInlineCreateDataView();\n }\n }\n\n private addInlineCreateDataView(): void {\n\n if (!this.isInlineCreateEnabled()) {\n return;\n }\n\n this.listContentComponent.addDataView(this.createInlineDataView(), AppConstants.INLINE_CREATE_ROW);\n }\n\n private removeInlineCreateDataView(): void {\n\n if (!this.isInlineCreateEnabled()) {\n return;\n }\n\n this.listContentComponent.listGrid.removeRow(AppConstants.INLINE_CREATE_ROW);\n }\n\n private isInlineCreateDataViewDirty(): boolean {\n const dirtyDataViews = this.listContentComponent.getDirtyRows(true);\n return (dirtyDataViews.length > 0 && dirtyDataViews[ AppConstants.INLINE_CREATE_ROW ].isNewRow);\n }\n\n private runCopyRow(sourceRow: number): void {\n if (!this.isInlineCreateEnabled()) {\n return;\n }\n\n if (this.isInlineCreateModeOn()) {\n if (sourceRow <= AppConstants.INLINE_CREATE_ROW) {\n return;\n }\n\n if (this.isInlineCreateDataViewDirty()) {\n // const deleteDataViewList: Array = [ this.getDataView(AppConstants.INLINE_CREATE_ROW) ];\n const deleteActionSpec: LMActionSpec = this.lmActionService.getListDeleteAction(this.listSpec.busClassSpec.actions, this.getDataViewSet(), [ AppConstants.INLINE_CREATE_ROW ]);\n\n this.checkForUnsavedChanged(deleteActionSpec).subscribe((continueOn: boolean) => { // DPB needs to be adressed\n if (continueOn) {\n this.removeInlineCreateDataView();\n this.addInlineCreateDataView();\n this.copyRowValues(sourceRow, AppConstants.INLINE_CREATE_ROW);\n }\n });\n } else {\n this.copyRowValues(sourceRow, AppConstants.INLINE_CREATE_ROW);\n }\n } else {\n this.turnOnInlineCreateMode(true);\n this.copyRowValues(sourceRow + 1, AppConstants.INLINE_CREATE_ROW);\n }\n }\n\n private copyRowValues(sourceRow: number, targetRow: number) {\n const sourceDataView: LMDataView = this.getDataView(sourceRow);\n const targetDataView: LMDataView = this.getDataView(targetRow);\n const columns: Array = this.listContentComponent.getColumns();\n\n if (targetDataView === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'Copy Row failed because target dataview not found: row number = ' + targetRow ]);\n return;\n }\n\n if (sourceDataView === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'Copy Row failed because source dataview not found: row number = ' + sourceRow ]);\n return;\n }\n\n const targetFields = Object.keys(targetDataView.fields);\n\n for (let i = 0, l = targetFields.length; i < l; i++) {\n const fieldId = targetFields[ i ];\n const targetField = targetDataView.fields[ fieldId ];\n\n if (!this.lmListUtilService.isFieldCopyable(fieldId, targetField, targetDataView)) {\n continue;\n }\n\n const displayField = this.listSpec.busListSpec.displayFields.find( field => field.fieldId === fieldId);\n if (displayField && (displayField.isSymbolicKey || displayField.isPartOfRelativeKey || displayField.uiProtected)) {\n continue;\n }\n\n const sourceField = sourceDataView.fields[ fieldId ];\n\n if (!sourceField) {\n this.lmLoggerService.warn([ this, this.instanceId, 'Copy Row failed because source field not found: fieldId = ' + fieldId ]);\n } else {\n if (displayField) {\n const data = { originalVal: targetField.value, value: sourceField.value, isDirty: true };\n const columnIndex = columns.findIndex(column => column.id.startsWith(displayField.columnId + '_'));\n this.listContentComponent.setDirtyIndicator(targetRow, columnIndex, true, data);\n }\n targetField.value = sourceField.value;\n }\n }\n\n // reflect that the row is dirty and render the cell changes\n this.listContentComponent.rowStatus(targetRow, 'in-progress', Soho.Locale.translate('RowDataChanged'));\n\n this.lmListToolbarService.updateToolbar(this.listSpec, this.getStateInfo(), this.listUrlInfo);\n\n // let the form or page know that the list is modified\n if (!this.isRouterOutletRootComponent) {\n this.updateToolbarStateEvent.emit();\n }\n }\n\n public getCellFromEvent(event: KeyboardEvent) {\n const eventTarget = event.target as HTMLElement;\n const tr = eventTarget.closest('tr') as HTMLElement;\n if (!tr) {\n return null;\n }\n const rowIndex: number = +tr.getAttribute('aria-rowindex') - 1;\n\n const td = eventTarget.closest('td') as HTMLElement;\n if (!td) {\n return null;\n }\n const columnIndex: number = +td.getAttribute('aria-colindex') - 1;\n\n return { row: rowIndex, column: columnIndex };\n }\n\n private createInlineDataView(): LMDataView {\n const newRow: LMDataView = JSON.parse(JSON.stringify(this.getDataViewSet().header));\n const inlineCreateDataView: LMDataView = JSON.parse(JSON.stringify(this.getDataViewSet().inlineCreateDataView));\n const inlineCreateFields = Object.keys(inlineCreateDataView.fields);\n\n // move fields in the inlineCreate dataView to the header dataView\n for (let i = 0, l = inlineCreateFields.length; i < l; i++) {\n const fieldId = inlineCreateFields[ i ];\n const targetField = inlineCreateDataView.fields[ fieldId ];\n newRow.fields[ fieldId ] = targetField;\n }\n\n newRow.resourceId = this.getDataViewSet().header.resourceId; // verify that this is needed\n newRow.id = -1;\n newRow.isNewRow = true;\n\n // LMCLIENT-28493: need to populate dataView with the create action\n newRow.action = inlineCreateDataView.action;\n\n // add the first delete action (that doesn't have parameters) to the inlineCreate dataView\n const deleteActionSpecs: Array = this.lmActionService.getActionIndexesByType(this.listSpec.busClassSpec.actions, AppConstants.ACTION_TYPE_DELETE);\n const deleteActionSpec = deleteActionSpecs.find(actionSpec => !actionSpec.hasParameters && !newRow.actionIndexes.some(action => action === actionSpec.index));\n if (deleteActionSpec) {\n newRow.actionIndexes.push(deleteActionSpec.index);\n }\n return newRow;\n }\n\n private isInlineCreateEnabled(): boolean {\n if (this.listSpec.busListSpec.implementsInlineCreate\n && this.listSpec.listType !== 'select'\n && this.listSpec.listType !== 'dashboard'\n && this.listSpec.listType !== 'helper'\n && this.listContentComponent.isType('list')\n && this.getDataViewSet()\n ) {\n const busClassActionSpecs = this.listSpec.busClassSpec.actions;\n const listViewAction = this.getDataViewSet().header.actionIndexes;\n return !!this.lmActionService.getDefaultCreateAction(busClassActionSpecs, listViewAction);\n } else {\n return false;\n }\n }\n\n private isInlineCreateModified(): boolean {\n if (!this.isInlineCreateModeOn()) {\n return false;\n }\n\n return this.isInlineCreateDataViewDirty();\n }\n\n private hasUnsavedChangesForDelete(): boolean {\n // are all dirty rows also selected?\n const adjustment = this.isInlineCreateModeOn() ? 0 : 1;\n // let stateInfo: LMListStateInfo = this.getStateInfo();\n if (this.isModified) {\n // lets only prompt to save changes if a dirty row is not been selected to be deleted!\n const selectedRows: Array = this.listContentComponent.getSelectedRows();\n const dirtyRows: Array = this.listContentComponent.getDirtyRows(true);\n\n for (let i = 0, len = dirtyRows?.length; i < len; i++) {\n const dataView: LMDataView = dirtyRows[ i ];\n const rowId = dataView.isNewRow ? 0 : dataView.id - adjustment;\n if (selectedRows.indexOf(rowId) === -1) {\n return true;\n }\n }\n return false;\n } else {\n return false;\n }\n }\n\n private isCreateWithinEnabled(): boolean {\n // must be a tree or org chart\n if (!this.listSpec.busListSpec.implementsTreeView && !this.listSpec.busListSpec.implementsOrgChartView) {\n return false;\n }\n\n // can't be child hierarchy\n if (this.listSpec.busClassSpec.implementsChildHierarchy) {\n return false;\n }\n\n // must be able to find the default dataViewSet.header create action\n if (!this.lmActionService.getDefaultCreateAction(this.listSpec.busClassSpec.actions, this.getDataViewSet().header.actionIndexes)) {\n return false;\n }\n\n // must have only one selected row as that's what we'll use to do the create within.\n const selectedRows: Array = this.listContentComponent.getSelectedRows();\n // must be able to find the selected dataView\n const dataView = selectedRows.length === 1 ? this.listContentComponent.getSelectedTreeDataView() : null;\n if (!dataView) {\n return false;\n }\n\n // if treeViewInfo is not specified then return true (it's valid)\n const treeViewInfo = this.listSpec.busListSpec.treeViewInfo;\n if (treeViewInfo && treeViewInfo.disableCreateWithin) {\n\n // if disableCreateWithin is conditional then evaluate the condition to determine validity\n if (treeViewInfo && treeViewInfo.disableCreateWithinWhen) {\n return !this.lmConditionUtilService.isValid([ treeViewInfo.disableCreateWithinWhen ], dataView);\n }\n\n return false;\n }\n\n return true;\n }\n\n /**\n * Runs the create action for the BusActionReference for the current dataViewSet.\n * @param actionReference - the actionReference of the action to open the create form with.\n */\n public runCreateAction(actionSpec: LMActionSpec, createWithin?: boolean): void {\n\n if (this.isInlineCreateEnabled() && this.listSpec.busListSpec.allowFormCreate === undefined) {\n this.turnOnInlineCreateMode(true);\n return;\n }\n\n // -------------------------------------------------------------------\n // get actionSpec and verify it's valid\n // -------------------------------------------------------------------\n const actions = this.listSpec.busClassSpec.actions;\n const actionIndex = this.getDataViewSet().header.actionIndexes;\n if (!this.lmActionService.isValidAction(actionSpec, actions, actionIndex, actionSpec.type, false)) {\n throw 'Cannot run Create Action: \\'' + actionSpec.name + '\\' is not a valid create action.';\n }\n\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n const contextResourceId = createWithin ? this.listContentComponent.getSelectedTreeDataView().resourceId : this.getDataViewSet().header.resourceId;\n\n if (actionSpec.hasActionForm || actionSpec.hasParameters) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmListTransactionService.runCreateAction(listContext, actionSpec, this.getDataViewSet(), contextResourceId).subscribe(\n (transactionState: LMTransactionState) => {\n\n // this.lmBusyIndicatorService.hideBusyIndicator(); // Will be closed by dialog service.\n\n if (transactionState.isError) {\n this.lmBusyIndicatorService.hideBusyIndicator(); // Dialog may not be up to hide the indicator.\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n\n } else if (transactionState.isFinished) {\n const resultList = transactionState.completedTransactionList;\n const result = transactionState.getTransactionResult();\n\n if (result.status === AppConstants.STATUS_COMPLETED) {\n if (result.message.length > 0) {\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, result.message, AppConstants.TRA_ACTION_COMPLETED);\n }\n\n if (result.isCompletionNavigation && result.redirectUrl) {\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), result.dataView);\n this.lmNavigationService.runNavigation(result.redirectUrl, formPagingInfo);\n } else {\n this.executeRefresh().subscribe();\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent);\n }\n } else {\n if (result.message.length > 0) {\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, result.message, AppConstants.TRA_ACTION_FAILED);\n }\n }\n }\n });\n } else {\n // todo akila ppatton maf allow next/prev on a form when the create form completes????\n const formPagingInfo: LMPagingInfo = null;\n // let formPagingInfo: LMPagingInfo = this.getDataViewSet().pagingInfo);\n // let formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n const createActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.actionRedirectUrl);\n const createActionRedirectUrl = createActionRedirectUrlTemplate.expand({\n resourceId: this.getDataViewSet().header.resourceId,\n actionName: actionSpec.name,\n contextResourceId\n });\n\n if (this.listSpec.listType === 'select'\n || this.listSpec.listType === 'helper') {\n this.lmNavigationService.runNavigation(createActionRedirectUrl, formPagingInfo, { openNewTab: true });\n } else {\n this.lmNavigationService.runCreateActionNavigation(createActionRedirectUrl);\n }\n }\n }\n\n /**\n * Runs the standard open action navigation\n * @param dataView - the dataView to run the actionUrl against\n */\n private runOpenAction(dataView: LMDataView) {\n // If tree list get selected tree dataview\n if (\n this.listSpec.busListSpec.implementsTreeView &&\n this.listContentComponent.getSelectedTreeDataView() &&\n !this.listSpec.busListSpec.implementsOrgChartView\n ) {\n dataView = this.listContentComponent.getSelectedTreeDataView();\n }\n\n if (this.listSpec.busListSpec.openActionRestricted) {\n throw 'open action is restricted'; // safety\n }\n\n if (dataView.isSubtotalView || dataView.isSubtotalSummaryView) {\n return; // For Total rows, we do not run update action\n }\n\n const isTreeMoreLink = (dataView)?.isTreeMoreLink;\n if (dataView.isNewRow || isTreeMoreLink) {\n // Unable to open an inline create row or a more tree link row.\n return;\n }\n\n if (this.isCubeView && !dataView.openFormResId) {\n // The record can be opened only if the dimension is a key field dimension.\n // The property is set based on the dimension type.\n return;\n }\n\n if (dataView.redirectAction) {\n this.runRedirectAction(dataView);\n return;\n }\n\n this._runOpenAction(dataView);\n }\n\n private _runOpenAction(dataView: LMDataView) {\n /**\n * Start the busy indicator and place code to process the\n * route change or dialog in a timeout so the busy indicator\n * will display.\n */\n\n setTimeout(() => {\n let openActionRedirectUrlTemplate;\n let openActionRedirectUrl;\n\n // TODO ListTemplatePattern this will need to change because the form needs the dataView for navigation, next and previous will not\n // work properly when navigating to the form\n let updateActionForm = false;\n let actionName = AppConstants.ACTION_OPEN;\n\n if (this.listSpec.isTemplateList) {\n const templateDataView = dataView.dataView;\n if (templateDataView.isAlreadyDefined) {\n openActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.openActionRedirectUrl);\n openActionRedirectUrl = openActionRedirectUrlTemplate.expand({\n resourceId: templateDataView.resourceId,\n contextResourceId: this.listResource.resourceId,\n actionName\n });\n } else {\n const createAction = this.lmActionService.getDefaultCreateAction(this.listSpec.busClassSpec.actions, templateDataView.actionIndexes);\n openActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.actionRedirectUrl);\n openActionRedirectUrl = openActionRedirectUrlTemplate.expand({\n resourceId: templateDataView.resourceId,\n actionName: createAction.name,\n contextResourceId: templateDataView.resourceId,\n });\n }\n } else {\n const updateActionSpec: LMActionSpec = this.lmActionService.getDefaultUpdateAction(this.listSpec.busClassSpec.actions, dataView.actionIndexes, true, true);\n if (updateActionSpec) {\n if (updateActionSpec.hasActionForm || updateActionSpec.hasParameters) {\n updateActionForm = true;\n actionName = updateActionSpec.name;\n }\n }\n\n openActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.openActionRedirectUrl);\n openActionRedirectUrl = openActionRedirectUrlTemplate.expand({\n resourceId: (this.isCubeView) ? dataView.openFormResId : dataView.resourceId,\n contextResourceId: this.getDataViewSet().header.resourceId,\n actionName\n });\n\n const delimiter = (openActionRedirectUrl.indexOf('?') > -1) ? '&' : '?';\n if (!this.listUrlInfo.cubeParams?.cubeMediator\n && (this.listUrlInfo.sourceResource?.resourceType === AppConstants.RESOURCETYPE_DRILL\n || this.listUrlInfo.sourceResource?.resourceType === AppConstants.RESOURCETYPE_NAVIGATION\n || this.listUrlInfo.sourceResource?.resourceType === AppConstants.RESOURCETYPE_RELATION)) {\n const fromResource = this.buildFromResource();\n openActionRedirectUrl += `${delimiter}${fromResource.resourceType}=${fromResource.generateResourceId(true)}`;\n }\n }\n\n if (updateActionForm || (this.listSpec.busListSpec.form && this.listSpec.busListSpec.form.isActionForm)) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmSpecService.getFormSpecFromRedirectActionUrl(openActionRedirectUrl).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const action = (response as LMActionFormUrlResponse).action;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName: action });\n\n this.lmListActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n const actionSpec = this.lmActionService.getActionByName(this.listSpec.busClassSpec.actions, action);\n\n this.lmListActionFormDialogService.runActionFormDialog(\n formUrlInfo, formSpec, formDataView, actionSpec, this.modalPlaceholder\n ).subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.executeRefresh().subscribe();\n const title = actionSpec.label;\n const message = result.transactionStateResult.completedTransactionList[ 0 ].message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n });\n });\n } else {\n // todo spec-url-refactor - mikef - when running to a form we push the first and last\n // viewkey info on them. But many of these are camel cased so I'm not sure how this pans out.\n // pageSize is one I see that isn't really ever used in the back end AFAIK.\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'helper') {\n this.lmNavigationService.runNavigation(openActionRedirectUrl, formPagingInfo, { openNewTab: true });\n } else {\n this.lmNavigationService.runNavigation(openActionRedirectUrl, formPagingInfo);\n }\n }\n }); // , 500);\n }\n\n private runRedirectAction(dataView: LMDataView, redirectActionName?: string) {\n const redirectAction = dataView.redirectAction || redirectActionName;\n if (!redirectAction || !dataView.actionMeta) {\n return;\n }\n\n const actionMeta = dataView.actionMeta[ redirectAction ];\n if (!actionMeta || !actionMeta.isActionRedirect) {\n return;\n }\n if (actionMeta.postAction) {\n // Run Post action, if it is valid\n const actionSpec = this.lmActionService.getActionByName(this.listSpec.busClassSpec.actions, actionMeta.postAction);\n if (this.lmActionService.isValidAction(actionSpec, this.listSpec.busClassSpec.actions, dataView.actionIndexes)) {\n const refreshList = (actionMeta.redirectType === AppConstants.ACTIONREDIRECT_TYPE_ACTION\n && (actionMeta.hasParameters || actionMeta.hasActionForm)) ? true : false;\n this.runPostActionForActionRedirect(actionSpec, dataView, refreshList);\n }\n }\n\n switch (actionMeta.redirectType) {\n case AppConstants.ACTIONREDIRECT_TYPE_ACTION:\n if (actionMeta.hasParameters || actionMeta.hasActionForm) {\n this.lmBusyIndicatorService.showBusyIndicator();\n setTimeout(() => {\n const openActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.openActionRedirectUrl);\n const openActionRedirectUrl = openActionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n contextResourceId: this.getDataViewSet().header.resourceId,\n actionName: redirectAction\n });\n this.lmSpecService.getFormSpecFromRedirectActionUrl(openActionRedirectUrl).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const action = (response as LMActionFormUrlResponse).action;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName: action });\n // LMCLIENT-18522: We can use ContextualActionPanel when this issue is resolved - https://github.com/infor-design/enterprise/issues/1943\n // At that time, all modal dialogs invoked from the contextual panel should have the class modal in the\n // dialog place holder in order for it to work.\n // Eg. Look up dialog from a form in Contextual panel requires modal class in the dialog placeholder.\n\n // this.lmContextualActionPanelService.getContextualPanelDataView(url).subscribe((responseDV: any) => {\n this.lmListActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n const actionSpec = this.lmActionService.getActionByName(formSpec.busClassSpec.actions, action);\n // this.lmContextualActionPanelService.openContextualActionPanel(formUrlInfo, formSpec, actionSpec, this.modalPlaceholder, formDataView)\n this.lmListActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, formDataView, actionSpec, this.modalPlaceholder)\n .subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.executeRefresh().subscribe();\n const title = actionSpec.label;\n const message = result.transactionStateResult.completedTransactionList[ 0 ].message;\n this.lmGlobalUtilService.displayToastMessage(title, message, AppConstants.TRA_ACTION_COMPLETED);\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n });\n });\n\n });\n } else {\n // Message notifications are of action type and navigates to form\n const updateActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.actionRedirectUrl);\n const updateActionRedirectUrl: string = updateActionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: redirectAction,\n contextResourceId: this.getDataViewSet().header.resourceId,\n });\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n this.lmNavigationService.runNavigation(updateActionRedirectUrl, formPagingInfo);\n }\n break;\n case AppConstants.ACTIONREDIRECT_TYPE_NAVIGATION:\n case AppConstants.ACTIONREDIRECT_TYPE_URL:\n const navUrl = actionMeta.url.substr(0, actionMeta.url.indexOf('?'));\n if (navUrl.indexOf('/form/') > -1) {\n setTimeout(() => {\n this.lmGlobalUtilService.navigateByUrl(actionMeta.url);\n });\n } else {\n setTimeout(() => {\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n this.lmNavigationService.runNavigation(actionMeta.url, formPagingInfo);\n });\n }\n break;\n case AppConstants.ACTIONREDIRECT_TYPE_PAGE:\n case AppConstants.ACTIONREDIRECT_TYPE_LIST:\n case AppConstants.ACTIONREDIRECT_TYPE_FOLDER:\n setTimeout(() => {\n this.lmGlobalUtilService.navigateByUrl(actionMeta.url);\n });\n break;\n case AppConstants.ACTIONREDIRECT_TYPE_VIEW:\n setTimeout(() => {\n const documentResource = new DocumentResource({\n resourceId: actionMeta.resourceId,\n fieldName: actionMeta.fieldName\n }, '');\n const url = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n if (actionMeta.mimeType === 'application/pdf') {\n this.lmGlobalUtilService.navigate(url, null, 'external');\n } else {\n this.lmGlobalUtilService.navigate(url);\n }\n });\n break;\n case AppConstants.ACTIONREDIRECT_TYPE_NEWWEBAPP:\n const newAppDialogId = 'NewApplication';\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ newAppDialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ];\n if (!actionMeta.appDeployed) {\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('NewApplicationisnotDeployed'))\n .title('')\n .buttons(buttons)\n .open();\n return;\n }\n if (actionMeta.securedApp) {\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('NewApplicationisSecured'))\n .title('')\n .buttons(buttons)\n .open();\n return;\n }\n setTimeout(() => {\n this.lmGlobalUtilService.navigateByUrl(actionMeta.url);\n });\n break;\n default:\n const dialogId = 'ActionRedirectNotImplemented';\n const defButtons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ];\n this.sohoMessageService\n .message()\n .message('Action Redirect type ' + actionMeta.redirectType + ' is not implemented.')\n .title('')\n .buttons(defButtons)\n .open();\n }\n }\n\n private runPostActionForActionRedirect(actionSpec: LMActionSpec, dataView: LMDataView, refreshList: boolean) {\n // Run Post action, if it is valid\n if (this.lmActionService.isValidAction(actionSpec, this.listSpec.busClassSpec.actions, dataView.actionIndexes)) {\n // this.runInstanceAction(actionSpec, this.getDataViewSet(), [this.selectedRow]);\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n const dataViewList: LMDataView[] = [ dataView ];\n\n this.lmListTransactionService.runInstanceAction(listContext, actionSpec, this.getDataViewSet(), dataViewList)\n .subscribe((transactionState: LMTransactionState) => {\n const resultList = transactionState.completedTransactionList;\n if (transactionState.isFinished && AppConstants.STATUS_COMPLETED === resultList[0].status) {\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, resultList[0].message, AppConstants.TRA_ACTION_COMPLETED);\n if (refreshList) {\n this.executeRefresh().subscribe();\n }\n }\n });\n }\n }\n\n /**\n * merge posToViewKey into LMPagingInfo for use in form paging.\n */\n private buildFormPagingInfo(dataViewSet: LMDataViewSet, dataView: LMDataView): LMPagingInfo {\n const formPagingInfo: LMPagingInfo = Object.assign({}, dataViewSet.pagingInfo, dataView.posToViewKey);\n return formPagingInfo;\n }\n\n /**\n * Runs the update action for the BusActionReference against the passed in LMDataView\n * @param actionReference - the actionReference of the action to open the update form with.\n * @param dataView - the dataView to run the actionUrl against\n */\n private runUpdateAction(actionSpec: LMActionSpec, dataView: LMDataView, actionReferenceId: string = null): void {\n if (dataView.isSubtotalView || dataView.isSubtotalSummaryView) {\n return; // For Total rows, we do not run update action\n }\n\n if (actionReferenceId === AppConstants.STANDARD_TOOLBAR_UPDATE) {\n const updateActionSpec = this.lmActionService.getDefaultUpdateAction(this.listSpec.busClassSpec.actions, dataView.actionIndexes, true, true);\n if (!updateActionSpec) {\n // if there is no valid updateActionSpec then run against the standard _open\n this.runOpenAction(dataView);\n return;\n }\n actionSpec = updateActionSpec; // todo doesn't seem to get used?!?\n } else if (actionSpec !== null) {\n if (actionSpec.name === dataView.redirectAction) {\n this.runRedirectAction(dataView);\n return;\n } else if (dataView.actionMeta && dataView.actionMeta[actionSpec.name] !== undefined) {\n this.runRedirectAction(dataView, actionSpec.name);\n return;\n }\n\n if (actionSpec.hasParameters || actionSpec.hasActionForm) {\n this.lmBusyIndicatorService.showBusyIndicator();\n // Get the action redirect url from list spec.\n setTimeout(() => {\n const actionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.actionRedirectUrl);\n const actionRedirectUrl = actionRedirectUrlTemplate.expand({\n actionName: actionSpec.name,\n resourceId: dataView.resourceId,\n contextResourceId: this.getDataViewSet().header.resourceId,\n });\n\n this.lmSpecService.getFormSpecFromRedirectActionUrl(actionRedirectUrl).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const action = (response as LMActionFormUrlResponse).action;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName: action });\n\n this.lmListActionFormDialogService.getActionFormDialogDataView(url).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n this.lmListActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, formDataView, actionSpec, this.modalPlaceholder)\n .subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const actionResult = result.transactionStateResult.getTransactionResult();\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, actionResult.message, AppConstants.TRA_ACTION_COMPLETED);\n if (actionResult.status === AppConstants.STATUS_COMPLETED) {\n if (actionResult?.isCompletionNavigation && actionResult?.redirectUrl) {\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), actionResult.dataView);\n this.lmNavigationService.runNavigation(actionResult.redirectUrl, formPagingInfo);\n } else {\n this.executeRefresh().subscribe();\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, [ actionResult ]);\n this.listTransactionEvent.emit(listTransactionEvent);\n }\n }\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n });\n });\n });\n return;\n } else {\n const updateActionRedirectUrlTemplate = urltemplate.parse(this.listUrlInfo.actionRedirectUrl);\n const updateActionRedirectUrl: string = updateActionRedirectUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name,\n contextResourceId: this.getDataViewSet().header.resourceId,\n });\n\n const formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n if (this.listSpec.listType === 'select' || this.listSpec.listType === 'helper') {\n this.lmNavigationService.runNavigation(updateActionRedirectUrl, formPagingInfo, { openNewTab: true });\n } else {\n this.lmNavigationService.runNavigation(updateActionRedirectUrl, formPagingInfo);\n }\n }\n } else {\n // -------------------------------------------------------------------\n // get actionSpec and verify it's valid\n // -------------------------------------------------------------------\n if (!this.lmActionService.isValidAction(actionSpec, this.listSpec.busClassSpec.actions, dataView.actionIndexes)) {\n throw 'Cannot run update Action: \\'' + actionSpec.name + '\\' is not a valid update action.';\n }\n }\n\n // const updateActionRedirectUrlTemplate = urltemplate.parse(this.listSpec.actionRedirectUrl);\n // const updateActionRedirectUrl: string = updateActionRedirectUrlTemplate.expand({\n // resourceId: dataView.resourceId,\n // actionName: actionSpec.name,\n // contextResourceId: this.getDataViewSet().header.resourceId,\n // });\n //\n // if (actionSpec.hasActionForm) {\n // this.lmSpecService.getFormSpecFromRedirectActionUrl(updateActionRedirectUrl).subscribe((response: LMActionFormUrlResponse) => {\n // const urlCompiledTemplate = urltemplate.parse(response.formSpec.initialDataUrl);\n // let url = urlCompiledTemplate.expand({ resourceId: response.resourceId, actionName: response.action });\n // this.lmListActionFormDialogService.getActionFormDialogDataView(url).subscribe((formDataView: LMDataView) => {\n // this.lmListActionFormDialogService.runActionFormDialog(response.formSpec, formDataView, actionSpec, this.modalPlaceholder)\n // .subscribe((result: LMActionFormDialogResult) => {\n // // todo akila ppatton need to refresh list after update\n // return;\n // });\n // });\n // });\n // } else {\n // let formPagingInfo: LMPagingInfo = this.buildFormPagingInfo(this.getDataViewSet(), dataView);\n // if (this.listSpec.listType === 'select') {\n // this.lmNavigationService.runNavigation(updateActionRedirectUrl, formPagingInfo, {openNewTab: true});\n // } else {\n // this.lmNavigationService.runNavigation(updateActionRedirectUrl, formPagingInfo);\n // }\n // }\n }\n\n private runDeleteAction(actionSpec: LMActionSpec, dataViewList: Array, isFromHotKey = false): void {\n\n // check if deleting an inline create dataView that is not dirty\n if (this.isInlineCreateModeOn() && dataViewList.length === 1 && dataViewList[ AppConstants.INLINE_CREATE_ROW ].isNewRow) {\n if (!this.isInlineCreateDataViewDirty()) {\n this.turnOnInlineCreateMode(false);\n return;\n }\n }\n\n this.checkForUnsavedChanged(actionSpec).subscribe((continueOn: boolean) => { // DPB needs to be addressed\n\n if (continueOn) {\n this.lmBusyIndicatorService.showBusyIndicator();\n const listContext: LMListContext = {\n listUrlInfo: this.listUrlInfo,\n listSpec: this.listSpec\n };\n\n this.lmListTransactionService.runDeleteAction(listContext, actionSpec, this.getDataViewSet(), dataViewList).subscribe(\n (transactionState: LMTransactionState) => {\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else if (transactionState.isCanceled) {\n\n } else if (transactionState.isFinished) {\n const resultList = transactionState.completedTransactionList;\n let successes = 0;\n let failures = 0;\n let cancelledRT = 0;\n let message = '';\n const transactionSize = resultList.length;\n\n for (let i = 0; i < transactionSize; i++) {\n const result: LMActionResult = resultList[ i ];\n message = result.message || '';\n\n // todo odd use of terniary operation, consider refactoring\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n AppConstants.STATUS_COMPLETED === result.status ? successes++ :\n (AppConstants.CONFIRMATION_REQUIRED === result.status) ? cancelledRT++ : failures++;\n\n // Phillip, what would you like to happen here.\n // if its all failure or cancel should we refresh?\n // if it is mixed results we need to refresh or remove the succesfully deleted records.\n\n // toasts each error\n if (AppConstants.STATUS_COMPLETED !== result.status && AppConstants.CONFIRMATION_REQUIRED !== result.status) {\n if (message !== '') {\n const toastId = transactionSize === 1 ? AppConstants.TRA_ACTION_FAILED : `${AppConstants.TRA_ACTION_FAILED}_${i}`;\n this.lmGlobalUtilService.displayToastMessage('', message, toastId);\n }\n }\n }\n\n if (successes === transactionSize) {\n // need to toast success\n if (transactionSize !== 1) {\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('DeleteActionCompleteSuccessResults'), successes);\n }\n\n this.lmGlobalUtilService.displayToastMessage('', message, AppConstants.TRA_ACTION_COMPLETED);\n } else if (transactionSize !== 1) {\n // need to toast mixed results\n message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('DeleteActionCompleteMixedResults'), [ successes, failures, cancelledRT ]);\n this.lmGlobalUtilService.displayToastMessage('', message, AppConstants.TRA_ACTION_PARTIALLY_COMPLETED);\n }\n\n if (this.isInlineCreateModeOn()) {\n this.turnOnInlineCreateMode(false);\n\n if (!this.isRouterOutletRootComponent) {\n this.updateToolbarStateEvent.emit();\n }\n }\n if (!isFromHotKey) {\n this.executeRefresh().subscribe();\n const listTransactionEvent1: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent1);\n } else {\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, resultList);\n this.listTransactionEvent.emit(listTransactionEvent);\n }\n }\n });\n }\n });\n }\n\n private runCheckControlAction(columnDef: ListGridColumn, dataView: LMDataView, row: number): void {\n let exit = false;\n let displayField: LMListDisplayField = null;\n let checkedStateField: LMField = null;\n\n // check passed in arguments\n if (columnDef === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: No listGridColumn received.' ]);\n exit = true;\n } else if (dataView === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: No dataView received.' ]);\n exit = true;\n } else if (dataView.fields === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: No dataView.fields received.' ]);\n exit = true;\n } else if (row === null || row < 0) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: invalid row received: ' + row ]);\n exit = true;\n } else {\n displayField = columnDef.displayField;\n if (displayField === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: listGridColumn did not have a displayField.' ]);\n exit = true;\n } else {\n const checkStateFieldId: string = displayField.fieldId;\n checkedStateField = dataView.fields[ checkStateFieldId ];\n\n // TODO need to handle the case where there isn't a checkstate field;\n\n if (checkedStateField === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'runCheckControlAction: Unable to find the check control state field using the field id: ' + checkStateFieldId ]);\n exit = true;\n }\n }\n }\n\n if (exit) {\n this.lmErrorUtilService.handleError('Action not run due to an unexpected error. See log file for details');\n return;\n }\n\n const isChecked: boolean = checkedStateField.value ? true : false;\n const actionSpec: LMActionSpec = this.getCheckControlActionSpec(isChecked, displayField, row);\n\n if (actionSpec === null) {\n checkedStateField.value = !isChecked;\n this.listContentComponent.updateDataView(row, dataView);\n this.lmErrorUtilService.handleError('Action not run due to an unexpected error. See log file for details');\n return;\n }\n\n new Observable(observer => {\n this.runInstanceAction(actionSpec, this.getDataViewSet(), [ row ], observer);\n }).subscribe((result: boolean) => {\n this.lmLoggerService.log([ this, this.instanceId, 'runCheckControlAction' + result ]);\n if (!result) {\n checkedStateField.value = !isChecked;\n }\n });\n }\n\n private getCheckControlActionSpec(isChecked: boolean, displayField: LMListDisplayField, row: number): LMActionSpec {\n let actions: any = null;\n\n if (isChecked) {\n if (displayField.checkAction === null || displayField.checkAction === 0) {\n this.lmLoggerService.warn([ this, this.instanceId, 'getCheckControlActionSpec: No checkAction defined on LMListDisplayField.' ]);\n return null;\n } else {\n actions = displayField.checkAction;\n }\n } else {\n if (displayField.uncheckAction === null || displayField.uncheckAction.length === 0) {\n this.lmLoggerService.warn([ this, this.instanceId, 'getCheckControlActionSpec: No uncheckAction defined on LMListDisplayField.' ]);\n return null;\n } else {\n actions = displayField.uncheckAction;\n }\n }\n\n if (actions === null || actions[ row ] === null) {\n this.lmLoggerService.warn([ this, this.instanceId, 'getCheckControlActionSpec: No Action found for row: ' + row ]);\n return null;\n }\n\n return actions[ row ].actionSpec;\n }\n\n private openDocumentResource(documentResourceId: string, dataView: LMDataView, fieldId?: string): void {\n const documentResource = new DocumentResource({\n resourceId: documentResourceId,\n dataView\n }, '');\n const url: string = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n let option: string;\n if (fieldId) {\n const documentField = dataView.fields[fieldId];\n option = (documentField && documentField.mimeType && documentField.mimeType === 'application/pdf') ? 'external' : undefined;\n }\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n\n private runFormInvoke(formInvokeName: string, dataView: LMDataView): void {\n const listResource = new ListResource({ resourceId: dataView.resourceId, listName: this.listSpec.busListSpec.name });\n const url: string = this.lmUrlUtilService.buildUrl({ resource: listResource });\n this.lmNavigationService.runFormInvoke(url, formInvokeName, dataView);\n }\n\n private runHttpUrl(columnDef: ListGridColumn, dataView: LMDataView): void {\n\n const openExternal = !!columnDef.displayField?.openExternal;\n let url: string;\n\n if (columnDef.displayField?.isLazyUrlRetrieval && columnDef.displayField?.httpUrl?.variables) {\n const reqFields = Array.from(columnDef.displayField.httpUrl?.variables, field => field.fieldId );\n const openActionRedirectUrlTemplate = urltemplate.parse(this.lmUrlUtilService.buildFormRequestUrl(this.listUrlInfo));\n const requestUrl = openActionRedirectUrlTemplate.expand({\n resourceId: dataView?.resourceId,\n });\n this.lmFormRequestService.getFieldValues(requestUrl, reqFields).pipe(\n first(),\n catchError( error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Internal Server Error');\n })\n ).subscribe( response => {\n if (response.status === 'Completed') {\n const fields: LMDataView = { fields: response.fields };\n url = this.lmFormatUtilService.formatMessageRule( columnDef.displayField?.httpUrl, fields );\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n } else if (response.status === 'Exception') {\n this.lmErrorUtilService.handleError(response?.message, response?.details, response.status);\n }\n });\n } else if (dataView?.buttonLinks?.[columnDef.fieldId]) {\n url = dataView.buttonLinks[columnDef.fieldId];\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n } else {\n url = this.lmFormatUtilService.formatMessageRule(columnDef.displayField.httpUrl, dataView);\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmNavigationService.postProcessHttpUrl(url, openExternal);\n }\n }\n private runUILinkHttpUrl(actionReference: LMBusActionReference, selectedDataView?: LMDataView): void {\n const option: string = (actionReference?.httpURL?.externalLink) ? 'external' : '';\n let url: string;\n\n if (actionReference.isLazyUrlRetrieval && actionReference.httpURL?.messageRule.variables) {\n const reqFields = Array.from(actionReference.httpURL.messageRule.variables, field => field.fieldId );\n const openActionRedirectUrlTemplate = urltemplate.parse(this.lmUrlUtilService.buildFormRequestUrl(this.listUrlInfo));\n const requestUrl = openActionRedirectUrlTemplate.expand({\n resourceId: selectedDataView?.resourceId,\n });\n\n this.lmFormRequestService.getFieldValues(requestUrl, reqFields).pipe(\n first(),\n catchError( error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Internal Server Error');\n })\n ).subscribe( response => {\n if (response.status === 'Completed') {\n const fields: LMDataView = { fields: response.fields };\n url = this.lmFormatUtilService.formatMessageRule( actionReference.httpURL.messageRule, fields );\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmGlobalUtilService.navigate(url, null, option);\n } else if (response.status === 'Exception') {\n this.lmErrorUtilService.handleError(response?.message, response?.details, response.status);\n }\n });\n } else {\n url = this.lmFormatUtilService.formatMessageRule( actionReference.httpURL.messageRule, selectedDataView );\n if (url.indexOf('web10x=true') > -1) {\n // Add csk parameters to the URL built by WebUrlBuilder for processflow\n url = this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n\n private runLinkNavigation(navigationName: string, resourceId: string, showAsPdf: boolean, xtrParameters?: string, setFromListResource = true): void {\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.navigationUrl);\n let url = compiledUrlTemplate.expand({ resourceId, navigationName });\n\n if (setFromListResource) {\n const fromListResource = new ListResource({\n busClassName: this.listSpec.busClassSpec.name,\n listName: this.listSpec.busListSpec.name\n });\n url = this.lmUrlUtilService.appendToQueryString(url, this.lmUrlUtilService.objectToQueryString({ fromlist: fromListResource.resourceId }));\n }\n\n if (xtrParameters) {\n url = this.lmUrlUtilService.appendToQueryString(url, xtrParameters);\n }\n\n this.lmNavigationService.runNavigation(url, undefined, { showAsPdf });\n }\n\n private runCubeNavigation(columnDef: ListGridColumn, dataView: LMDataView) {\n if (this.listState.cubeOverrides?.periodView\n || this.listState.cubeOverrides?.pivotView\n || this.listState.cubeOverrides?.periodOverrides?.overridePeriods) {\n this.listState.cubeOverrides.cubeDrillNavigation = true;\n }\n if ((!dataView.cubeInfo.isFactRowElement\n || (dataView.cubeInfo.isFactRowElement && !columnDef.displayField.linkNavigation && !columnDef.displayField.hasHttpUrl))) {\n // Not a link navigation\n // Add reporting basis and top dimensions, if available\n const cubeInfoClone = JSON.parse(JSON.stringify(dataView.cubeInfo));\n cubeInfoClone.extraInfo = { cubeNm: this.listSpec.busListSpec.name, cubeFld: columnDef.displayField.fieldId };\n if (this.getDataViewSet().cubeInfo.reportingBasis\n && this.listState.cubeOverrides) {\n cubeInfoClone.extraInfo = Object.assign({}, cubeInfoClone.extraInfo, {\n periodKey: this.getDataViewSet().cubeInfo.periodKey,\n reportingBasis: this.getDataViewSet().cubeInfo.reportingBasis,\n topNodeDims: this.listState.cubeOverrides.topDimensions,\n });\n }\n if (this.getDataViewSet().cubeInfo.topContextFields) {\n cubeInfoClone.extraInfo = Object.assign({}, cubeInfoClone.extraInfo, { topContextFields: this.getDataViewSet().cubeInfo.topContextFields });\n }\n // The cubeDrillUrl is built based on busFormField.getLinkList business class name, listname and '?cubeDrill=true' is already appended to the url.\n let url = columnDef.displayField.cubeDrillUrl + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeInfoClone);\n if (cubeInfoClone.extraInfo) {\n url += '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeInfoClone.extraInfo);\n }\n\n if (columnDef.displayField.addtlFilter\n && columnDef.displayField.addtlFilter.length > 0\n && !this.getDataViewSet().cubeInfo.suppressCurPeriod) {\n url = url + '&' + this.lmUrlUtilService.objectToQueryString({ addtlFilter: columnDef.displayField.addtlFilter });\n }\n\n this.lmGlobalUtilService.navigateByUrl(url);\n } else if (columnDef.displayField.linkNavigation) {\n // link navigation\n dataView.cubeInfo.periodDate = columnDef.displayField.periodDate;\n const navigationResource = new KeyedResource({ resourceType: 'navigation', resourceId: columnDef.displayField.resourceId, dataView });\n let navResourceId = navigationResource.generateResourceId(false); // Will be encoded by url template processing.\n navResourceId = navResourceId.substr(0, navResourceId.lastIndexOf('.')); // Removing the nav name since it will be put in place by url template processing.\n this.runLinkNavigation(columnDef.displayField.linkNavigation, navResourceId, false, this.lmUrlUtilService.objectToQueryString({ cubeDrill: true }));\n }\n }\n\n private getPdfType(busListSpec: LMBusListSpec): string {\n if (busListSpec.implementsTreeView) {\n return (busListSpec.detailSections) ?\n AppConstants.TREE_LIST_WITH_DETAILS_PDF : AppConstants.TREE_LIST_PDF;\n }\n\n if (busListSpec.detailSections || busListSpec.showChangedValuesOnRight) {\n return AppConstants.LIST_WITH_DETAILS_PDF;\n }\n\n return AppConstants.REGULAR_LIST_PDF;\n }\n\n private buildFromResource(): KeyedResource {\n // Case 1: Navigation to List or Drill to List -- This is not a dependent list and we may not have a from dataview. Just a source resource.\n // Case 2: Composite panel or Detail section panel or dashboard panel lists are dependent lists. They have a Rel resource and fromDataView.\n let fromResource: KeyedResource;\n\n if (this.listUrlInfo.sourceResource) {\n fromResource = new KeyedResource({\n resourceId: this.listUrlInfo.sourceResource.resourceId,\n resourceType: this.listUrlInfo.sourceResource.resourceType\n });\n }\n\n if (this.listSpec.dependentList && this.fromDataView) {\n fromResource = new KeyedResource({\n resourceId: this._fromDataView.resourceId,\n resourceType: this.listUrlInfo.sourceResource.resourceType\n }, fromResource.uiResourceName);\n }\n return fromResource;\n }\n\n private runPdfAction(actionReference: LMBusActionReference) {\n const pdfType = this.getPdfType(this.listSpec.busListSpec);\n\n const busClassSpec = this.listSpec.busClassSpec;\n // LMCLIENT-34223\n const includeSearchForm = (!this.listSpec.busListSpec.implementsTreeView || !busClassSpec.implementsChildHierarchy || busClassSpec.hasChildHierarchyDescendants) &&\n (\n pdfType === AppConstants.REGULAR_LIST_PDF ||\n pdfType === AppConstants.LIST_WITH_DETAILS_PDF ||\n pdfType === AppConstants.TREE_LIST_PDF ||\n pdfType === AppConstants.TREE_LIST_WITH_DETAILS_PDF\n );\n\n const settings = {\n resource: this.listResourceImpl,\n fromResource: this.buildFromResource(),\n actionReference,\n name: this.listTitle,\n pdfType,\n includeSearchForm,\n // Cube overrides is set when the user changes cube parameters of a cube view.\n cubeOverrides: (this.listState.cubeOverrides) ? this.listState.cubeOverrides : undefined,\n // Cube options is set when a user performs a cube drill from a cube view to navigate to a simple list.\n // For eg. what transaction records are behind an aggregate for a dimension like a bank branch.\n // Also send cubeoptions over for a cube view detail section list\n cubeOptions: (this.listUrlInfo.cubeParams) ? this.listUrlInfo.cubeParams : undefined,\n userFolder: this.listSpec.userFolder,\n fontOffset: this.listSpec.pdfFontOffset || this.listSpec.busListSpec.fontOffset,\n orientation: this.listSpec.pdfOrientation || this.listSpec.busListSpec.orientation,\n dataViewSet: this.getDataViewSet(),\n selectedRows: this.selectedRows,\n filterFields: this.getExportActionFilterCriteria(),\n scheduleActionAllowed: this.listSpec.scheduleActionAllowed,\n includeRecordLimit: true,\n selectRequestData: this.selectRequestData\n };\n\n if (this.listState.displayAs === 'chart') {\n settings.chartName = this.chartName;\n }\n\n this.lmPrintDialogService.openPdfDialog(settings);\n }\n\n private runCsvAction(actionReference: LMBusActionReference) {\n const settings = {\n modalPlaceholder: this.modalPlaceholder,\n resource: this.listResourceImpl,\n fromResource: this.buildFromResource(),\n actionReference,\n name: this.listTitle,\n // Cube overrides is set when the user changes cube parameters of a cube view.\n cubeOverrides: (this.listState.cubeOverrides) ? this.listState.cubeOverrides : undefined,\n // Cube options is set when a user performs a cube drill from a cube view to navigate to a simple list.\n // For eg. what transaction records are behind an aggregate for a dimension like a bank branch.\n // Also send cubeoptions over for a cube view detail section list\n cubeOptions: (this.listUrlInfo.cubeParams) ? this.listUrlInfo.cubeParams : undefined,\n userFolder: this.listSpec.userFolder,\n selectedRows: this.selectedRows,\n filterFields: this.getExportActionFilterCriteria(),\n scheduleActionAllowed: this.listSpec.scheduleActionAllowed,\n includeRecordLimit: true,\n // implements tree view will include both tree and cube\n isTreeList: this.listSpec.busListSpec.implementsTreeView,\n dataViewSet: this.getDataViewSet(),\n selectRequestData: this.selectRequestData\n };\n\n if (this.lmListSpecUtilService.isColumnarView(this.listSpec) && this.listState.displayAs === 'chart') {\n settings.chartName = this.chartName;\n }\n\n this.lmPrintDialogService.openCsvDialog(settings);\n }\n\n private runHelperAction(dataView: LMDataView, index: number): void {\n const helperListActions = this.listSpec.busListSpec.helperLists[index].listSpec.helperActions;\n this.lmBusyIndicatorService.showBusyIndicator(); // Dialog open will hide the busy indicator\n this.lmHelperListDialogService\n .runHelperListDialog(this.listSpec.busListSpec.helperLists[index].listSpec, dataView, this.getDataViewSet().header, helperListActions, this, this.modalPlaceholder)\n .subscribe((result: LMHelperListDialogResult) => {\n\n const listTransactionEvent: LMListTransactionEvent = new LMListTransactionEvent(this, []);\n this.listTransactionEvent.emit(listTransactionEvent);\n if (result === undefined) {\n return;\n }\n return;\n });\n }\n\n private runListPersonalization(actionReference?: LMBusActionReference): void {\n const mode = actionReference ? actionReference.id === AppConstants.STANDARD_TOOLBAR_PERSONALIZE ? 'Create' : actionReference.id : 'Create';\n\n if (mode === 'Update' || mode === 'Create') {\n this.lmReportPersonalizationDialogService.runReportPersonalizationDialog(\n this.listSpec.userFolder ? 'createReport' : 'list',\n this.modalPlaceholder,\n null,\n null,\n null,\n null,\n null,\n this.listSpec.busListSpec.title.resourceValue,\n this.listUrlInfo,\n this.listSpec,\n this.getDataViewSet(),\n // todo spec-url-refactor dboehm pwpatton what todo about filterCondition?\n mode === 'Update' ? true : false,\n this.listSpec.includeBaseFilter,\n this.listSpec.filterCondition,\n this.chartName\n ).subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED) {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n this.clearComponentState(false);\n this.listState = {};\n this.router.navigateByUrl(this.router.url);\n }\n });\n } else if (actionReference.id === 'Delete') {\n this.lmConfirmationMessageService.promptConfirmationMessage({\n title: 'Reset Personalization',\n dialogTitle: 'Reset Personalization',\n message: Soho.Locale.translate('ListPersonalizationResetConfirmationMessage'),\n okToAll: false\n }).subscribe((confirmationResult: number) => {\n if (confirmationResult === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.lmConfigurationService.runPersonalizeAction(this.listUrlInfo.reportPersonalizationUrl, { action: actionReference.id, userfolder: this.listSpec.userFolder })\n .subscribe((result: LMPersonalizeActionResponse) => {\n if (result.status === AppConstants.STATUS_COMPLETED) {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n this.clearComponentState(false);\n this.listState = {};\n this.router.navigateByUrl(this.router.url, {});\n } else {\n this.lmErrorUtilService.handleError(result.message, null, result.status, null);\n }\n });\n }\n });\n } else if (actionReference.id === 'Deactivate' || actionReference.id === 'Activate') {\n this.lmConfigurationService.runPersonalizeAction(\n this.listUrlInfo.reportPersonalizationUrl,\n { action: actionReference.id, userfolder: this.listSpec.userFolder }\n ).subscribe((result: LMPersonalizeActionResponse) => {\n if (result.status === AppConstants.STATUS_COMPLETED) {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n this.clearComponentState(false);\n this.listState = {};\n this.router.navigateByUrl(this.router.url);\n } else {\n this.lmErrorUtilService.handleError(result.message, null, result.status, null);\n }\n });\n }\n }\n\n private runCreateReport(): void {\n this.lmReportPersonalizationDialogService.runReportPersonalizationDialog(\n 'createReport',\n this.modalPlaceholder,\n null,\n null,\n null,\n null,\n null,\n this.listTitle,\n this.listUrlInfo,\n this.listSpec,\n this.getDataViewSet(),\n false,\n this.listSpec.includeBaseFilter,\n this.listSpec.filterCondition,\n this.chartName\n ).subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED) {\n if (result.viewReport) {\n this.lmGlobalUtilService.navigateByUrl(result.reportUrl);\n } else {\n this.lmGlobalUtilService.displayToastMessage('', result.message, AppConstants.TRA_ACTION_COMPLETED);\n }\n }\n return;\n });\n }\n\n private openSubFormDialog(columnDef: ListGridColumn, row: number, cell: number, dataView: LMDataView) {\n // make a deep clone of the dataView\n const subFormDataView: LMDataView = JSON.parse(JSON.stringify(dataView));\n\n const actionType = (subFormDataView.isNewRow) ? AppConstants.ACTION_TYPE_CREATE : AppConstants.ACTION_TYPE_UPDATE;\n const actionSpecs = this.lmActionService.getActions(this.listSpec.busClassSpec.actions, subFormDataView.actionIndexes, actionType);\n subFormDataView.action = (actionSpecs.length > 0) ? actionSpecs[0].name : '';\n const busFormSpec = columnDef.displayField.buttonSubForm;\n\n const subFormName = this.listSpec.busListSpec.name + '_subform';\n const subFormResourceId = this.listSpec.busClassSpec.name + '.' + subFormName;\n const subFormSpec: LMFormSpec = {\n isImplicit: true,\n resourceId: subFormResourceId,\n busClassSpec: this.listSpec.busClassSpec,\n busFormSpec,\n selectViewType: 'list',\n formElementId: subFormName,\n };\n const subFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(subFormSpec);\n\n this.lmSubFormDialogService.promptSubFormDialog({\n placeholder: this.modalPlaceholder,\n fieldId: columnDef.fieldId,\n title: columnDef.displayField.buttonSubForm.title,\n busFormSpec,\n dataView: subFormDataView,\n formSpec: subFormSpec,\n formUrlInfo: subFormUrlInfo,\n model: null\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe(\n (result: LMSubFormResult) => {\n // result can be undefined if the user closes the modal by hitting the escape key, so adding a safety\n if (result) {\n if (result.result === LMSubFormDialogResult.RESPONSE_OK) {\n this.lmLoggerService.log(result.result);\n if (result.model.isDirty) {\n this.listContentComponent.getDataViewSet().data[row].fields = result.dataView.fields;\n this.listContentComponent.updateDataView(row, result.dataView);\n this.listContentComponent.setDirtyIndicator(row, cell, true, { isDirty: true });\n this.listContentComponent.rowStatus(row, 'in-progress', Soho.Locale.translate('RowDataChanged'));\n\n this.onContentModified({ columnDef, dataView: this.getDataView(row) });\n }\n\n } else if (result.result === LMSubFormDialogResult.RESPONSE_ERROR && result.error) {\n this.lmErrorUtilService.handleError(result.error.message, result.error.details, result.error.status);\n }\n }\n }\n );\n }\n\n private openCompactFormDialog(event: LMListOpenCompactFormEvent) {\n // make a deep clone of the dataView\n const compactFormDataView: LMDataView = JSON.parse(JSON.stringify(event.dataView));\n\n const dataView = event.dataView;\n const fieldId = event.fieldId;\n const row = event.row;\n const cell = event.cell;\n const dataGrid = event.datagrid;\n\n const originalCompoundFieldLayout: LMCompoundFieldLayout = {\n bindId: fieldId,\n delimiter: dataView.fields[fieldId].delimiter,\n label: event.columnDef.displayField.label,\n type: 'compactFormatByForm'\n };\n\n this.listSpec.busListSpec.fields[fieldId].layout = event.layout;\n\n const compactFormName = this.listSpec.busListSpec.name + '_compactGroupForm';\n const compactFormResourceId = this.listSpec.busClassSpec.name + '.' + compactFormName;\n const compactFormSpec: LMFormSpec = {\n isImplicit: true, // set to true so form\n resourceId: compactFormResourceId,\n busClassSpec: this.listSpec.busClassSpec,\n busFormSpec: this.listSpec.busListSpec,\n selectViewType: 'list',\n dataEntryMode: true,\n formElementId: compactFormName,\n };\n\n const compactFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(compactFormSpec);\n\n this.lmCompactFormDialogService.promptCompactFormDialog({\n placeholder: this.modalPlaceholder,\n fieldId: event.fieldId,\n title: event.title,\n layout: event.layout, // event.layout,\n formUrlInfo: compactFormUrlInfo,\n formSpec: compactFormSpec,\n dataView: compactFormDataView,\n specFields: this.listSpec.busListSpec.fields,\n originalCompoundFieldLayout,\n model: null,\n excludeOriginalField: false\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe(\n (result: LMCompactFormResult) => {\n if (result.result === LMCompactFormDialogResult.RESPONSE_OK) {\n this.lmLoggerService.log(result.result);\n if (result.model.isDirty) {\n result.dataView.fields[fieldId].value = this.lmCompoundFieldService.computeCompactFieldValue(result.dataView, fieldId);\n\n Object.keys(result.model.dirtyFields).forEach((key) => {\n dataView.fields[key].value = result.dataView.fields[key].value;\n });\n }\n }\n\n // force the cell out of edit mode\n dataGrid.commitCellEdit();\n\n this.listContentComponent.setActiveCell(row, cell);\n }\n );\n }\n\n private nextEditableCell(cell: number): number {\n let nextEditableCell = cell;\n const columns: Array = this.listContentComponent.getColumns();\n for (let i = cell + 1, len = columns.length; i < len; i++) {\n const column = columns[ i ];\n if (column.hidden) {\n continue;\n }\n\n if (column.editor) {\n nextEditableCell = i;\n break;\n }\n }\n return nextEditableCell;\n }\n\n /**\n * sets activated row and selected rows from this.listState. if non exists then\n * set a default selection.\n */\n private performInitialRowSelection(resetSelection: boolean): number {\n if (!this.listContentComponent) {\n return -1;\n }\n\n const dataViewSet = this.listContentComponent.getDataViewSet();\n if (!dataViewSet || !dataViewSet.data || !dataViewSet.data.length) {\n this.listContentComponent.activateRow(-1);\n this.listContentComponent.setSelectedRows([]);\n this.performInitialRowSelectionComplete = true;\n return -1;\n }\n\n if (this.listSpec.dependentList && !this.fromDataView) {\n return -1;\n }\n\n this.performInitialRowSelectionComplete = false;\n\n this.lmLoggerService.trace([ this, this.instanceId, 'performInitialRowSelection()', this.listComponentId ]);\n const selectionMode: SohoDataGridSelectable = (this.displayType === 'chart' && !this.lmListSpecUtilService.isColumnarView(this.listSpec))\n ? 'single' : this.lmListSpecUtilService.getSelectionMode(this.listSpec);\n switch (selectionMode) {\n case 'mixed':\n // --------------------------------------------------\n // set activated row\n // --------------------------------------------------\n let activatedRow = !resetSelection ? this.lmListUtilService.getInitialActivatedRow(this.listSpec, this.listState, this.fromDataView) : 0;\n\n if (activatedRow >= dataViewSet.data.length) {\n activatedRow = dataViewSet.data.length - 1;\n }\n\n\n this.listContentComponent.activateRow(activatedRow, true);\n\n // --------------------------------------------------\n // set selected row\n // --------------------------------------------------\n if (resetSelection) {\n delete this.listState.selectedRows;\n } else {\n const rowsToBeSelected = this.lmListUtilService.getInitialSelectedRows(this.listSpec, this.listState, this.getDataViewSet(), this.fromDataView);\n if (rowsToBeSelected !== undefined) {\n this.listContentComponent.setSelectedRows(rowsToBeSelected);\n }\n }\n\n this.performInitialRowSelectionComplete = true;\n return activatedRow;\n\n case 'multiple':\n case 'single':\n let selectedRow = -1;\n if ((this.displayType === 'chart' && !this.hasDependentData) // skip default selection for charts that don't have related data. This makes the chart look better initially.\n || ((this.displayType === 'list' || this.displayType === 'listView' || this.displayType === 'tree') && this.isDashBoardContent)) {\n // ------------------------------------------------------------------\n // - Skip default selection for charts that don't have related data.\n // This makes the chart look better initially.\n // - Skip default selection for lists that are in dashboard panels.\n // This make dashboard panels look nicer initially.\n // ------------------------------------------------------------------\n if (!resetSelection && this.listState.selectedRows && this.listState.selectedRows.length === 1) {\n selectedRow = (this.listState.selectedRows && this.listState.selectedRows.length > 0) ? this.listState.selectedRows[ 0 ] : -1;\n this.listContentComponent.setSelectedRows([ selectedRow ], true);\n }\n } else {\n if (resetSelection || (this.listSpec.dependentList && this.listState.fromResourceId !== this.fromDataView.resourceId)) {\n selectedRow = 0;\n } else {\n selectedRow = (this.listState.selectedRows && this.listState.selectedRows.length > 0) ? this.listState.selectedRows[ 0 ] : 0;\n }\n\n // selectedRow is null|undefined when reloading the browser, or changing panels\n // hasDependentData makes sure that we only want to trigger and select first index (data point) when it has dependent pane/s\n // or when it is the last pane on the page and we don't want to preselect the fisrt index data point\n if (selectedRow == null && this.displayType === 'chart' && this.hasDependentData) {\n selectedRow = 0;\n }\n\n this.listContentComponent.setSelectedRows([ selectedRow ], true);\n }\n this.performInitialRowSelectionComplete = true;\n return selectedRow;\n\n case 'siblings':\n let selectedRows = [ -1 ];\n selectedRows = (this.listState.selectedRows && this.listState.selectedRows.length > 0) ? this.listState.selectedRows : [ 0 ];\n this.listContentComponent.setSelectedRows(selectedRows, true);\n const activatedRow2 = !resetSelection ? this.lmListUtilService.getInitialActivatedRow(this.listSpec, this.listState, this.fromDataView) : 0;\n this.listContentComponent.activateRow(activatedRow2, true);\n this.performInitialRowSelectionComplete = true;\n return selectedRows[ 0 ];\n }\n\n // todo ppatton is this needed? 2/21/2020\n // let pageState = this._getPageState();\n // if (dataViewSet.data.length > 0) {\n // /**\n // * Set forRelatedDataReload in case selected row has not changed.\n // * When paging for example.\n // */\n // this.forceRelatedDataReload = true;\n //\n // if (pageState\n // && pageState.selectedRows !== undefined\n // && pageState.selectedRows.length > 0) {\n // for (let i = 0, pageStateRowsLen = pageState.selectedRows.length; i < pageStateRowsLen; i++) {\n // let selectedRow = pageState.selectedRows[i];\n // if (dataViewSet.data[selectedRow] === undefined) {\n // break;\n // }\n // }\n //\n // if (this.listSpec.isHelperList) {\n // this.listContentComponent.setSelectedRows([]);\n // } else if (i === pageStateRowsLen) {\n // this.listContentComponent.setSelectedRows(pageState.selectedRows);\n // } else {\n // this.listContentComponent.setSelectedRows([0]);\n // }\n // } else if (this.listSpec.isHelperList) {\n // this.listContentComponent.setSelectedRows([]);\n // } else {\n // this.listContentComponent.setSelectedRows([0]);\n // }\n // } else {\n // //there is no data on the grid. This is for the page where -1 row index needs to be set\n // //in order to trigger the onRowSelected trigger\n // this.listContent.setSelectedRows([-1]);\n // }\n }\n\n public getDataViewSet(): LMDataViewSet {\n return this.listContentComponent?.getDataViewSet();\n }\n\n public getDataView(row: number): LMDataView {\n const dataViewSet = this.getDataViewSet();\n if (!dataViewSet || dataViewSet.data.length <= 0) {\n return null;\n }\n\n return dataViewSet.data[ row ];\n }\n\n // --------------------------------------------------------------------\n // simple helper methods\n // --------------------------------------------------------------------\n private get selectedRow(): number {\n const selectedRows = this.listContentComponent.getSelectedRows();\n if (!selectedRows || selectedRows.length !== 1) {\n throw 'selectedRow failed: more than 1 row is selected.';\n }\n return selectedRows[ 0 ];\n }\n\n private get selectedRows(): Array {\n return this.listContentComponent.getSelectedRows();\n }\n\n private get selectedDataViews(): Array {\n // todo use something like this instead.\n // return this.selectedRows.map(rowIndex => this.getDataView[rowIndex]);\n\n const selectedRows: Array = this.selectedRows;\n const dataViewList: Array = [];\n\n if (this.isSelectListInSelectionMode()) {\n return dataViewList;\n }\n\n // TODO do rows need to be sorted? Brad Preston issue reported against 3.5\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < selectedRows.length; i++) {\n dataViewList.push(this.getDataView(selectedRows[ i ]));\n }\n\n return dataViewList;\n }\n\n private isSelectListInSelectionMode(): boolean {\n if (!this.lmContextService.useSingleSelectList()) {\n return false;\n }\n\n if (this.listSpec.listType !== 'select') {\n return false;\n }\n\n return !this.inSelectListEditMode;\n }\n\n // eslint-disable-next-line no-unused-vars\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n let dViewSet: LMDataViewSet;\n try {\n dViewSet = this.getDataViewSet();\n } catch ( error ) {\n return;\n }\n const pagingUrls = dViewSet ? dViewSet.pagingUrls : undefined;\n const listUrl = dViewSet ? dViewSet.listUrl : undefined;\n\n let message = this.listSpec ? '' : 'SPEC NOT LOADED YET. ';\n message += this.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n message += dViewSet ? '' : 'Data NOT LOADED YET. ';\n const resourceInfo = this.listSpec && this.listSpec.busListSpec && this.listSpec.busListSpec.resourceInfo ? this.listSpec.busListSpec.resourceInfo : undefined;\n const compConfigInfo: ConfigInfo = {};\n compConfigInfo['personalization'] = this.listSpec ? this.listSpec.busListSpec.personalization : undefined;\n compConfigInfo['configuration'] = this.listSpec ? this.listSpec.busListSpec.configuration : undefined;\n compConfigInfo['folder'] = this.listSpec ? this.listSpec.busListSpec.folder : undefined;\n compConfigInfo['userlist'] = this.listSpec ? this.listSpec.busListSpec.userlist : undefined;\n compConfigInfo['configStamp'] = this.listSpec ? this.listSpec.busListSpec.configStamp : 0;\n compConfigInfo['classConfigStamp'] = this.listSpec ? this.listSpec.busListSpec.classConfigStamp : 0;\n\n const formInfo: LMComponentInfo = {\n componentType: 'LIST',\n name: this.listSpec ? this.listSpec.busListSpec.name : undefined,\n busClassName : this.listSpec ? this.listSpec.busClassSpec.name : undefined,\n userWebRequestId: this.getUserWebRequestId(),\n module : this.listSpec ? this.listSpec.busClassSpec.module : undefined,\n type: this.listSpec ? this.listSpec.listType : 'formlist',\n displayType: this.listSpec ? this.listState.displayAs : 'list',\n chartName: this.chartName,\n developer: this.listSpec ? this.listSpec.developer : undefined,\n resourceId: this.listSpec ? this.listState.fromResourceId : undefined,\n lpl: this.listSpec ? this.listSpec.busListSpec.lpl : undefined,\n resourceInfo,\n configInfo: compConfigInfo,\n listUrl: listUrl ? listUrl : undefined,\n reloadPageUrl: pagingUrls ? pagingUrls.reloadPageUrl : undefined,\n firstPageUrl: pagingUrls ? pagingUrls.firstPageUrl : undefined,\n nextPageUrl: pagingUrls ? pagingUrls.nextPageUrl : undefined,\n previousPageUrl: pagingUrls ? pagingUrls.previousPageUrl : undefined,\n lastPageUrl: pagingUrls ? pagingUrls.lastPageUrl : undefined,\n tenant: this.lmContextService.getContext() ? this.lmContextService.getContext().dataArea : undefined,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n message: message.length > 0 ? message : undefined,\n };\n if (this.listSpec && this.listUrlInfo.fromListResource) {\n formInfo.fromListResourceId = this.listUrlInfo.fromListResource.resourceId;\n }\n\n return formInfo;\n }\n\n public isModified(): boolean {\n if (this.legacyWebUI) {\n return false;\n }\n\n if (this.listContentComponent && this.listContentComponent.isModified()) {\n return true;\n }\n\n if (this.detailSectionsComponent) {\n return this.detailSectionsComponent.isModified();\n }\n\n return false;\n }\n\n public getComponentPlaceHolder() {\n return this.modalPlaceholder;\n }\n\n loadComponentState(rebuildStateKey = false): void {\n if (this.lmContextService.disablePageState()) {\n return;\n }\n\n if (this.lmContextService.getClearPageState()) {\n this.clearComponentState(true);\n this.lmContextService.setClearNextPageState(false);\n }\n\n this.listState = this.lmListStateService.getListState(this.buildListStateKeyParams(rebuildStateKey));\n\n // LMCLIENT-34223: exclude search for tree lists with Child Hierarchy without Child Hierarchy Descendants\n const busClassSpec = this.listSpec.busClassSpec;\n if (this.listSpec.busListSpec.implementsTreeView && busClassSpec.implementsChildHierarchy && !busClassSpec.hasChildHierarchyDescendants) {\n this.showFilter = false;\n this.listState.isFilterBarOpened = false;\n }\n\n if (this.lmContextService.isStepUpAuthetication()) {\n const listStateAnonymousParams: LMListStateKeyParams = this.lmStateHelperService.buildListStateKeyParams(this.route.snapshot.params['resourceId'], this.listUrlInfo, this.listSpec);\n listStateAnonymousParams.actorId = 'Anonymous';\n const listStateAnonymous = this.lmListStateService.getListState(listStateAnonymousParams);\n if (listStateAnonymous) {\n // Only interested in current page url and selected rows for now.\n this.listState.selectedRows = listStateAnonymous.selectedRows;\n this.listState.currentPageUrl = listStateAnonymous.currentPageUrl;\n // TODO: If a detail section component initiates the transaction, bring up the current panel\n // and pass down the action result. The JobPostingsDisplay example is a single panel, form detail section.\n // Form component handles the result on form data loaded.\n }\n }\n\n if (!rebuildStateKey) {\n this.listPersonalization = this.lmListPersonalizationService.getListPersonalization(this.buildListPersonalizationKeyParams());\n }\n\n // Observables needed for the drawer\n this.drawerCollapse$ = this.lmListEventService.drawerCollapse$.pipe(\n startWith(this.listState.drawerCollapsed),\n distinctUntilChanged(),\n tap((collapsed: boolean) => this.listState.drawerCollapsed = collapsed),\n );\n this.isAbovePhoneView$ = this.breakpointChangeService.isAbovePhoneView$.pipe(\n tap((isAbovePhoneView: boolean) => {\n if (this.listState.drawerCollapsed && !isAbovePhoneView) {\n this.expandDrawerSide();\n }\n if (this.listState.showDetails && isAbovePhoneView) {\n this.lmBannerHeaderCompRef.resetBackReferences();\n }\n })\n );\n\n // if there is a user list view currently applied, then use it. Do not have to load default.\n if (!this.listState.userListViewItem && this.defaultUserListViewItem) {\n this.applyDefaultUserListView();\n }\n }\n\n private applyDefaultUserListView() {\n try {\n const savedSearchState: LMSearchState = JSON.parse(this.defaultUserListViewItem.searchState);\n this.listState.userListViewItem = this.defaultUserListViewItem;\n this.listState.filterCriteria = savedSearchState.filters;\n\n const delimiter: string = this.listUrlInfo.initialDataUrl.indexOf('?') === -1 ? '?' : '&';\n this.listState.currentPageUrl = this.listUrlInfo.initialDataUrl + delimiter + this.lmUrlUtilService.filterFieldCriteriaToUrlParams(this.listState.filterCriteria, 'fc');\n\n this.sortOrder = savedSearchState.sortOrder;\n if (!this.hasSearchForm) {\n this.showFilter = true;\n this.listState.isFilterBarOpened = true;\n }\n } catch (exception) {\n // Log and proceed\n this.lmLoggerService.log([ this, this.instanceId, 'Failed to parse default UserListView.' ]);\n }\n }\n\n saveComponentState(includeSubComponents?: boolean, stateOnly = false): void {\n this.lmListStateService.saveListState(this.buildListStateKeyParams(stateOnly), this.listState);\n\n if (!stateOnly) {\n this.lmListPersonalizationService.saveListPersonalization(this.buildListPersonalizationKeyParams(), this.listPersonalization);\n\n if (includeSubComponents) {\n if (this.detailSectionsComponent) {\n this.detailSectionsComponent.saveDetailSectionsState();\n }\n }\n }\n }\n\n clearComponentState(includeSubComponents?: boolean): void {\n const routeResourceId = this.route.snapshot.params['resourceId']; // routeResourceId is always browser urls resourceId.\n this.lmStateHelperService.clearListComponentState(routeResourceId, this.listUrlInfo, this.listSpec, includeSubComponents);\n }\n\n get displayToolbar(): boolean {\n if (this.listSpec.showAsMingleWidget) {\n return false;\n }\n\n if (this.isCardViewWithDetailSections || (!this.isRouterOutletRootComponent && !this.isDashBoardContent)) {\n return true;\n }\n\n if (this.listSpec.busListSpec && this.isCubeView/* && !this.isDashBoardContent*/) {\n return false;\n }\n\n return false;\n }\n\n get isDashBoardContent(): boolean {\n return this.lmListSpecUtilService.isDashBoardContent(this.listSpec);\n }\n\n get showDetailsOnSide(): boolean {\n return this.isCardViewWithDetailSections || this.listSpec.busListSpec.hasDetailFieldsOnSide;\n }\n\n get drawerAdditionalClasses(): string[] {\n const classNames = [];\n\n if (this.showSearchForm) {\n classNames.push('list-form-content');\n }\n\n if (this.isCardViewWithDetailSections) {\n classNames.push('list-detail');\n classNames.push('composite-form');\n }\n\n // if (!this.isDashBoardContent) {\n // classNames.push('non-dashboard-content');\n // }\n\n if (this.hasStandardDetailSections || this.hasDetailFields) {\n classNames.push('details-content');\n }\n\n return classNames;\n }\n\n get standardListClasses(): string {\n const classNames = [ 'standard-list' ];\n\n if (this.showSearchForm) {\n classNames.push('list-form-content');\n }\n\n if (this.isDashBoardContent) {\n classNames.push('dashboard-content');\n }\n\n // if (this.listSpec.busListSpec.hasDetailFieldsOnSide) {\n // classNames.push('page-container two-column fixed-mm');\n // }\n\n return classNames.join(' ');\n }\n\n get listContainerClasses(): string {\n if (this.isFilterList) {\n return '';\n }\n\n if (this.listSpec.showAsMingleWidget) {\n return 'lm-list-widget';\n }\n\n // -------------------------------------------------------\n // If isDashboardContent then don't add pane or sidebar\n // classes.\n // If isMultiPanePanelContent then don't add pane classes\n // as lm-page.component has already added pane classes.\n // -------------------------------------------------------\n if (this.lmListSpecUtilService.isDashBoardContent(this.listSpec)\n || this.lmListSpecUtilService.isMultiPanePanelContent(this.listSpec)\n || this.lmListSpecUtilService.isMultiListPanelContent(this.listSpec)\n || this.lmListSpecUtilService.isHelperList(this.listSpec)) {\n return '';\n }\n\n if (this.lmListSpecUtilService.isSelectList(this.listSpec)\n && !(this.hasSearchForm && this.showSearchForm)\n && !this.listSpec.busListSpec.implementsTreeView) {\n return 'lm-lookup-list';\n }\n // -------------------------------------------------------\n // if this list is the cardView on the left then set\n // the sidebar classes and return.\n // -------------------------------------------------------\n if (this.isCardViewWithDetailSections) {\n return 'sidebar';\n }\n\n // -------------------------------------------------------\n // if hasStandardDetailSections then make it the top pane.\n // If there are standard detail sections then make this\n // a pane top. The detail section will get a pane bottom\n // in the html to match this pane top.\n // -------------------------------------------------------\n if (this.hasStandardDetailSections || this.hasDetailFields) {\n return 'lm-list-detail top';\n }\n\n // -------------------------------------------------------\n // if no detail section and not a detail section itself\n // then make it a pane single.\n // -------------------------------------------------------\n if (!this.hasDetailSections && !this.isDetailSection && !this.hasDetailFields) {\n if (this.lmListSpecUtilService.isFormListPanelContent(this.listSpec) && !this.formContextOnLeft) {\n return 'lm-list-standalone lm-form-list';\n }\n\n if (this.hasSearchForm && this.showSearchForm) {\n return 'lm-list-standalone lm-search-form';\n }\n\n if (this.listState.displayAs === 'hierarchy') {\n return 'lm-list-standalone lm-hierarchy-list';\n }\n\n return 'lm-list-standalone';\n }\n\n return '';\n }\n\n get listContainerContentStyleHeight(): string {\n return this.hasStandardDetailSections ? 'auto' : '100%';\n }\n\n get standardCubeListClasses(): string {\n const classNames = [ 'standard-list' ];\n // TODO: class for search form\n return classNames.join(' ');\n }\n\n get cubeListContainerClasses(): string {\n if (this.hasSearchForm && this.showSearchForm) {\n return 'lm-cube-container lm-search-form';\n }\n\n if (this.hasSearchForm && this.hasSearchTags) {\n return 'lm-cube-container lm-list-searchtags';\n }\n\n if (this.hasStandardDetailSections) {\n return 'lm-cube-container top';\n }\n return 'lm-cube-container';\n }\n\n public get isDetailDashboardView(): boolean {\n return this.hasDetailSections && this.listSpec.busListSpec.implementsDashBoardView && !this.listSpec.busListSpec.useTwelveColumnGrid && !this.listSpec.showAsMingleWidget;\n }\n\n public get isDetailSectionsView(): boolean {\n return this.hasDetailSections && !this.listSpec.busListSpec.implementsDashBoardView && !this.listSpec.showAsMingleWidget;\n }\n\n public get isDetailTwelveColumnGridView(): boolean {\n return this.hasDetailSections && this.listSpec.busListSpec.implementsDashBoardView && this.listSpec.busListSpec.useTwelveColumnGrid && !this.listSpec.showAsMingleWidget;\n }\n\n // ---------------------------------------------------------\n // PUBLIC METHODS\n // ---------------------------------------------------------\n // This is called by components using the LmListComponent,\n // it should NOT be called by LmListComponent\n public refresh(request?: LMRefreshRequest): Observable {\n return this.executeRefresh(request);\n }\n\n public getSelectedRow(): number {\n return this.listContentComponent.getSelectedRow();\n }\n\n public getSelectedRows(): Array {\n return this.listContentComponent.getSelectedRows();\n }\n\n public toolbarMoreMenuSettings: SohoPopupMenuOptions = {\n beforeOpen: this.onBeforeListToolbarMoreMenuOpen,\n attachToBody: true\n };\n\n public commitCellEdit(): void {\n this.listContentComponent.commitCellEdit();\n }\n\n private syncSelectedToActivated(activatedRow: number, unselectOtherRows: boolean) {\n if (activatedRow === -1) {\n return;\n }\n\n /**\n * modify selection model so that if a row is activated it is also selected.\n * And all other selected rows are cleared. If the rows to be activated is already\n * selected then do not clear the other selected rows.\n */\n const selectedRows: number[] = this.getSelectedRows();\n const rowIsSelected = selectedRows.length > 0 ?\n this.getSelectedRows().find(row => row === activatedRow) !== undefined : false;\n\n if (!rowIsSelected) {\n if (unselectOtherRows) {\n this.listContentComponent.unSelectAllRows();\n }\n this.listContentComponent.setSelectedRows([ activatedRow ], false);\n }\n }\n\n private get isDetailFieldsPatternSupported(): boolean {\n let isDisplayTypeSupported = false;\n let isSelectionModeSupported = false;\n let isRowActivatedValid = false;\n\n // by display type\n if (this.displayType === 'list' || this.displayType === 'tree') {\n isDisplayTypeSupported = true;\n }\n // by selection mode\n const selectionMode = this.lmListSpecUtilService.getSelectionMode(this.listSpec);\n if (selectionMode === 'mixed' || selectionMode === 'single') {\n isSelectionModeSupported = true;\n }\n // for safety\n if (this.listState?.activatedRow > -1 || this.listState.selectedRows?.length) {\n isRowActivatedValid = true;\n }\n return isDisplayTypeSupported && isSelectionModeSupported && isRowActivatedValid;\n }\n\n private createFormModel(dataView: LMDataView): LMModel {\n const modelOptions: LMModelOptions = { formUrlInfo: this.detailFieldsFormUrlInfo, formSpec: this.detailFieldsFormSpec };\n const model: LMModel = new LMModel(this.lmModelServiceAdapter, modelOptions);\n model.populate(this.detailFieldsSpecFields);\n model.setData(dataView, { notifyListeners: false });\n return model;\n }\n\n private processDetailFieldsFormModelChanges(event: LMModelStatusEvent): void {\n if (!(event?.cause) || !this.isDetailFieldsPatternSupported) {\n return;\n }\n\n const row: number = this.lmListSpecUtilService.getSelectionMode(this.listSpec) === 'single' ? this.getSelectedRow() : this.listState.activatedRow;\n const model: LMModel = this.detailFieldsFormModel;\n const bindId: string = event.cause.bindId;\n const columns: Array = this.listContentComponent.getColumns();\n const field: LMField = model.getField(bindId);\n const cell: number = columns.findIndex(column => column.fieldId === bindId);\n const fieldEvent = {\n row,\n cell,\n value: field.value,\n oldValue: field.originalValue,\n column: columns[cell]\n } as SohoDataGridCellChangeEvent;\n const isFieldDirty: boolean = model.isFieldDirty(bindId);\n\n if (row === -1) {\n return;\n }\n\n if (isFieldDirty) {\n this.listContentComponent.setDirtyIndicator(row, cell, true, { isDirty: isFieldDirty });\n } else {\n this.listContentComponent.clearDirtyCell(row, cell);\n }\n\n if (this.displayType === 'list') {\n this.listContentComponent.listGrid.onCellChange(fieldEvent);\n } else if (this.displayType === 'tree') {\n this.listContentComponent.listTree.onCellChange(fieldEvent);\n }\n }\n\n private processDetailFieldsFormModelCache(row: number): void {\n if (!this.isDetailFieldsPatternSupported) {\n return;\n }\n const resourceId = this.getDataView(row)?.resourceId;\n const modelCache = this.detailfieldsFormModelCache.find(state => state.id === resourceId);\n\n if (modelCache) {\n if (Object.keys(modelCache.cache.dirtyFields || {}).length) {\n this.detailFieldsFormModel.applyCache(modelCache.cache);\n }\n } else {\n this.detailfieldsFormModelCache.push({\n id: resourceId,\n dataView: JSON.parse(JSON.stringify(this.selectedDataView)),\n cache: {},\n });\n }\n }\n\n private syncDetailFieldsFormModelAndListDataviews(isCurrentDataView: boolean = true): void {\n let row = -1;\n\n if (isCurrentDataView) {\n row = this.lmListSpecUtilService.getSelectionMode(this.listSpec) === 'single' ? this.getSelectedRow() : this.listState.activatedRow;\n } else {\n row = this.listState.previousActivatedRow;\n }\n\n if (row === -1) {\n return;\n }\n\n const listDataView = this.getDataView(row);\n\n if (this.detailFieldsFormModel.isDirty) {\n const cache = this.detailFieldsFormModel.getCache();\n\n Object.keys(cache.dirtyFields || {}).forEach(field => {\n listDataView.fields[field].value = this.detailFieldsFormModel.getField(field).value;\n });\n this.listContentComponent.updateDataView(row, listDataView);\n }\n }\n\n private clearDetailFieldsFormModelCache(dataViews?: LMDataView[]): void {\n if (!this.isDetailFieldsPatternSupported) {\n return;\n }\n if (!dataViews) {\n this.detailfieldsFormModelCache.length = 0;\n } else if (dataViews.length) {\n dataViews.forEach(dataView => {\n const resourceId: string = dataView?.resourceId;\n this.detailfieldsFormModelCache.splice(this.detailfieldsFormModelCache.findIndex(model => model.id === resourceId, 1));\n });\n }\n }\n\n private subscribeToDetailFieldsFormModelChanges(): void {\n //lm-model's applycache has setTimeout, wait till completed\n setTimeout(() => {\n this.detailFieldsFormModelSub$ = this.detailFieldsFormModel.statusChanges.subscribe(event => this.processDetailFieldsFormModelChanges(event));\n }, 2);\n }\n\n}\n","\n\n\n

        \n CURRENTLY UNSUPPORTED SOHO XI PATTERN DETECTED\n

        \n \n \n
        \n\n\n \n \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n \n \n
        \n \n
        \n \n \n
        \n \n
        \n
        \n\n \n
        \n
        \n\n \n \n
        \n
        \n \n
        \n \n
        \n
        \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n
        \n

        {{listTitle}}

        \n \n \n \n

        \n {{selectedDataView.representativeText}}\n

        \n
        \n \n
        \n\n \n
        \n
        \n \n \n \n \n\n \n

        {{listTitle}}

        \n \n
        \n
        \n\n \n \n \n\n \n
        \n \n
        \n \n \n \n
        \n \n \n
        \n
        \n\n \n \n \n
        \n \n
        \n
        \n\n
        \n \n \n\n \n\n \n \n \n\n \n \n \n \n
        \n
        \n
        \n\n \n \n \n\n \n \n\n \n \n \n\n \n\n
        \n
          \n
        \n
        \n
        \n\n
        \n\n\n
          \n\n","export * from './lm-list-event.service';\nexport * from './lm-list-grid-paging.service';\nexport * from './lm-list-grid-builder.service';\nexport * from './lm-list-grid-util.service';\nexport * from './lm-list-hierarchy-service';\nexport * from './lm-list-spec-util.service';\nexport * from './lm-list-content-filterlist.service';\nexport * from './lm-list-content-filterlist-util.service';\nexport * from './lm-list-card.service';\n\nexport * from './lm-list-action-form-dialog.service';\nexport * from './lm-list-action-util.service';\nexport * from './lm-list-toolbar.service';\nexport * from './lm-list-transaction.service';\nexport * from './lm-list-util.service';\n","import { forwardRef, Inject, Injectable, ViewContainerRef } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport {\n LMActionFormDialogComponent,\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService\n} from '@modal/index';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\n@Injectable()\nexport class LMListActionFormDialogService {\n constructor(\n @Inject(forwardRef(() => LMActionFormDialogService)) private lmActionFormDialogService, // LMActionFormDialogService,\n private sohoMessageService: SohoMessageService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n }\n\n private buttons: SohoModalButton[];\n\n modalOpen(): boolean {\n return this.lmActionFormDialogService.hasOpenDialog;\n }\n\n // TODO investigate refactoring this when implementing editable list. This is duplicated from lm-form.component.ts\n // and if the same could be moved to common area?\n displayNavigationConfirmation(): Promise {\n const comp: LMActionFormDialogComponent = this.lmActionFormDialogService.getOpenDialog.componentDialog;\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const dialogId = 'UnsavedChanges';\n\n if (comp.formComponent.isModified()) {\n this.buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.LEAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.LEAVE),\n click: (e, modal) => {\n this.lmActionFormDialogService.getOpenDialog.close({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.STAY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.STAY),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n }\n }\n ];\n\n // Show the confirmation message dialog.\n this.sohoMessageService\n .message() // todo akila, is this needed?\n .message(Soho.Locale.translate('NavigateAwayMessage'))\n .title(Soho.Locale.translate('UnsavedChangesMessage'))\n .buttons(this.buttons)\n .open();\n\n } else {\n // the form in the action form dialog component isn't dirty, so just return a boolean rather than\n // a promise attached to a confirmation\n this.lmActionFormDialogService.getOpenDialog.close();\n return;\n }\n\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n\n // deprecate this\n public getActionFormDialogDataView(formDataUrl: string): Observable {\n // fronts for LMActionFormDialogService.getActionFormDialogDataView\n return this.lmActionFormDialogService.getActionFormDialogDataView(formDataUrl);\n }\n\n // deprecate this\n public runActionFormDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n dataView: LMDataView,\n actionSpec: LMActionSpec,\n placeholder: ViewContainerRef,\n transactionState?: LMTransactionState\n ): Observable {\n return this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, dataView, transactionState);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\n\n@Injectable()\nexport class LMListActionUtilService {\n constructor(\n private lmActionService: LMActionService,\n private lmLoggerService: LMLoggerService\n ) {}\n\n public getValidUpdateAction(actionSpecs: Array, dataViewSet: LMDataViewSet, rows: Array): LMActionSpec {\n const validUpdateActions: Array = this.lmActionService.getValidListUpdateActions(actionSpecs, dataViewSet, rows);\n return (validUpdateActions && validUpdateActions.length > 0) ? validUpdateActions[0] : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { AppConstants, LMTimeStampDirective, LMTransformOptions, LMToolbarActionTypeEnum } from '@utils/app.constants';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMProcessIndicatorService } from '../../field/processindicator/lm-process-indicator.service';\nimport { LMUrlUtilService } from '@app/services';\n\n@Injectable()\nexport class LMListCardService {\n // todo would like provide services w/o state to app.component. Can't do that here because\n // LMFormatterService does have state. And it cannot be provided at a lower level than\n // the LMListCardService\n\n private _cardWidth: number;\n\n constructor(\n private domSanitizer: DomSanitizer,\n private lmConditionUtilService: LMConditionUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormatterService: LMFormatterService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmThemeService: LMThemeService,\n private lmProcessIndicatorService: LMProcessIndicatorService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n public getCardTemplateData(displayField: LMListDisplayField, dataView: LMDataView): LMCardTemplateData {\n try {\n const buttonRow: Array = this.getCardButtonRowButtons(displayField.buttonRow, dataView);\n const foregroundText = this.getImageForegroundText(displayField.leftColumn, dataView);\n const cardTemplate: LMCardTemplateData = {\n imageUrl: this.getLeftColumnImageUrl(displayField.leftColumn, dataView),\n isMissingImage: this.getIsMissingImage(displayField.leftColumn, dataView),\n imageForegroundText: foregroundText,\n isRandomBackground: this.getIsRandomBackgroundImage(displayField.leftColumn, dataView),\n cardImageClasses: this.getCardImageClasses(displayField),\n bgColorClass: this.getBackgroundColorClass(displayField.leftColumn, dataView, foregroundText),\n columns : [\n { column: this.getDisplayFieldValues(displayField.mainColumn, dataView, displayField.showLabels) },\n { column: this.getDisplayFieldValues(displayField.rightColumn, dataView, displayField.showLabels) }\n ],\n buttonRow\n };\n\n return cardTemplate;\n\n } catch (e) {\n this.lmErrorUtilService.handleError(e.message, e.stack);\n }\n }\n\n public getSectionedCardData(displayFields: Array, dataView: LMDataView): LMSectionedCardTemplateData {\n const data: LMSectionedCardTemplateData = {};\n\n displayFields.forEach((displayField: LMListDisplayField) => {\n if (displayField.imageSection) {\n const imageSectionField = displayField.imageSection[0];\n data.imageSection = {\n imageUrl: this.getImageSectionImageUrl(imageSectionField, dataView),\n useLines: imageSectionField.useLines,\n tags: imageSectionField.tagStyle ? this.getTagsForImageSection(imageSectionField.tagStyle) : undefined\n };\n }\n\n if (displayField.titleSection) {\n const titleSectionField = displayField.titleSection[0];\n data.titleSection = {\n title: String(dataView.fields[titleSectionField.fieldId].value),\n useLines: titleSectionField.useLines\n };\n }\n\n if (displayField.rowSection) {\n data.rowSection = this.getDisplayFieldValues(displayField.rowSection, dataView, displayField.showLabels);\n }\n\n if (displayField.fieldSection) {\n data.fieldSection = this.getDisplayFieldValues(displayField.fieldSection, dataView, displayField.showLabels);\n }\n\n if (displayField.actionSection) {\n data.actionSection = [];\n displayField.actionSection.forEach((action: LMFormButtonSpec|LMCheckControl) => {\n // @ts-ignore\n if (Object.values(LMToolbarActionTypeEnum).includes(action.type)) {\n const buttonSpec = action as LMFormButtonSpec;\n const buttonSpecs = this.getCardButtonRowButtons([ buttonSpec ], dataView);\n data.actionSection.push(buttonSpecs[0]);\n }\n });\n }\n });\n\n return data;\n }\n\n public get cardWidth(): number {\n return this._cardWidth;\n }\n\n public set cardWidth(width: number) {\n this._cardWidth = width;\n }\n\n private getBackgroundColorClass(leftColumn: LMCardViewLeftColumn, dataView: LMDataView, foregroundText: string) {\n if (leftColumn === undefined || !this.getIsMissingImage(leftColumn, dataView)) {\n return null;\n }\n\n return `image-initials ${this.lmThemeService.getUniqueBackgroundColorClass(foregroundText)}`;\n }\n\n private getIsRandomBackgroundImage(leftColumn: LMCardViewLeftColumn, dataView: LMDataView): boolean {\n if (leftColumn === undefined || !this.getIsMissingImage(leftColumn, dataView)) {\n return null;\n }\n\n return leftColumn.isRandomBackground;\n }\n\n private getIsMissingImage(leftColumn: LMCardViewLeftColumn, dataView: LMDataView): boolean {\n if (leftColumn === undefined || dataView === undefined) {\n return null;\n }\n\n return dataView.fields[leftColumn.fieldId] ? dataView.fields[leftColumn.fieldId].missingImage : null;\n }\n\n private getImageForegroundText(leftColumn: LMCardViewLeftColumn, dataView: LMDataView): string {\n if (leftColumn === undefined || leftColumn.foregroundText === undefined) {\n return null;\n } else if (leftColumn.foregroundText) {\n // Display a max of 4 characters\n const text = this.lmFormatUtilService.formatMessageRule(leftColumn.foregroundText, dataView);\n const chars = text.split('').filter((char, index) => index <= 3 );\n return chars.join('');\n }\n\n return null;\n }\n\n private getCardImageClasses(displayFields: LMListDisplayField): string {\n const classes = [ 'lm-card-image' ];\n\n if (displayFields.leftColumn && displayFields.leftColumn.displayImageAs) {\n const orientationClass = 'lm-' + displayFields.leftColumn.displayImageAs + '-image';\n classes.push(orientationClass);\n }\n\n return classes.join(' ');\n }\n\n private getImageSectionImageUrl(imageSection: LMSectionedCardImageSectionField, dataView: LMDataView): string {\n const url = dataView.fields[imageSection.fieldId].value as string;\n const height = imageSection.useLines * 25;\n const size = `${this.cardWidth}x${height}`;\n return this.lmUrlUtilService.updateUrlParams(url, { size });\n }\n\n private getLeftColumnImageUrl(leftColumn: LMCardViewLeftColumn, dataView: LMDataView): string {\n if (leftColumn === undefined || dataView === undefined) {\n return null;\n }\n\n // Use random background image and not the missing image url\n if (leftColumn.isRandomBackground\n && leftColumn.foregroundText\n && (dataView.fields[leftColumn.fieldId] && dataView.fields[leftColumn.fieldId].missingImage)\n ) {\n return null;\n }\n\n if (leftColumn.fieldId && dataView.fields[leftColumn.fieldId]) {\n return String(dataView.fields[leftColumn.fieldId].value);\n } else if (leftColumn.fieldId === undefined && dataView.representativeImageUrl) {\n return dataView.representativeImageUrl;\n } else {\n return '';\n }\n }\n\n private getDisplayFieldValues(\n displayFields: Array,\n dataView: LMDataView,\n showLabels?: boolean\n ): Array {\n\n const values: Array = [];\n\n if (displayFields === undefined || dataView === undefined) {\n return values;\n }\n\n displayFields.forEach((displayField: LMListDisplayField) => {\n const field: LMField = dataView.fields[this.getFieldID(displayField)];\n const label: string = displayField.label && !displayField.labelSuppressed ? this.lmFormatUtilService.formatMessageRule(displayField.label, dataView) : '';\n const isBlankLine = displayField.type === undefined && displayField.isBlankLine;\n const val = field ? field.value : '';\n const displayFieldType = isBlankLine ? 'BLANKLINE' : displayField.type.toUpperCase();\n const transformOptions: LMTransformOptions = {};\n\n if (displayField.isBlankLine) {\n values.push({ type: displayFieldType, displayValue: '' });\n return;\n }\n\n if (displayField.visibility && !this.lmConditionUtilService.isValid(displayField.visibility, dataView)) {\n return;\n }\n\n if (displayFieldType === AppConstants.BCD && field.precision) {\n transformOptions.precision = (displayField.numberOfDecimals || displayField.numberOfDecimals === 0) ? displayField.numberOfDecimals : field.precision;\n }\n\n if (displayFieldType === AppConstants.BCD && displayField.decSize) {\n transformOptions.decSize = (displayField.numberOfDecimals || displayField.numberOfDecimals === 0) ? displayField.numberOfDecimals : displayField.decSize;\n }\n\n if (displayFieldType === AppConstants.BCD && displayField.showPercentSymbol) {\n transformOptions.showPercentSymbol = displayField.showPercentSymbol;\n }\n\n if (displayFieldType === AppConstants.BCD && displayField.currencySymbolInfo) {\n transformOptions.currencySymbolIs = this.lmFormatUtilService.getCurrencySymbol(displayField.currencySymbolInfo, dataView);\n }\n\n if ((displayFieldType === AppConstants.BCD && displayFieldType === AppConstants.BCD) && displayField.displayNegativeAmountAs === 'parens') {\n transformOptions.displayNegativeParens = displayField.displayNegativeAmountAs;\n }\n\n if (displayField?.timeZoneIs) {\n transformOptions.timeZone = dataView?.fields[displayField.timeZoneIs].value as string;\n }\n\n if (displayField?.displayWithTimeZone) {\n transformOptions.displayWithTimeZone = true;\n }\n\n if (displayFieldType === AppConstants.TIMESTAMP && (displayField?.displayDateAndHoursAndMinutes || displayField?.limitToMinuteIncrements)) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES;\n }\n\n if (displayFieldType === AppConstants.TIMESTAMP && displayField?.disableDST) {\n transformOptions.disableDST = true;\n }\n\n const displayValue = this.getFieldDisplayValue(displayFieldType, String(val), displayField, dataView, transformOptions);\n const displayAsTag = this.lmConditionUtilService.displayAsTag(displayField, dataView, displayValue);\n\n const templateField: LMListViewTemplateField = {\n fieldId: displayField.fieldId,\n type: displayFieldType,\n label: showLabels ? label : null,\n navigationParams: displayField.linkNavigation ? { navigationName: displayField.linkNavigation, dataView } : null,\n alertCondition: this.getAlertCondition(displayField, dataView),\n httpUrl: displayField.httpUrl ? this.getMsgRuleValue(displayField.httpUrl, dataView) : null,\n value: this.getFieldValue(displayFieldType, String(val), undefined, transformOptions),\n openExternal: displayField.openExternal ? displayField.openExternal : null,\n displayValue,\n displayAsTag,\n icon: displayField.icon ? this.getIcon(displayField) : null,\n };\n\n if (displayField.lines) {\n templateField.height = displayField.lines * 24;\n templateField.lines = displayField.lines;\n }\n\n if (displayField.displayAsProgressBar) {\n templateField.progressFieldData = {\n value: this.getFieldValue(displayFieldType, Number(val), displayField.meterRangeValue),\n displayValue: templateField.displayValue,\n meterRangeValue: displayField.meterRangeValue,\n ranges: displayField.ranges,\n dataView,\n field,\n displayPercent: AppConstants.PERCENT === displayField.type\n };\n }\n\n if (displayField.displayAsRating) {\n templateField.ratingOptions = this.lmFormatUtilService.formatStarRatingOptions(val as number, displayField.id);\n templateField.displayAsRating = true;\n }\n\n // add extra stuff into the templateField object so it doesn't have to be computed later\n // when the template is processing. Set default font size to match lm-font-md size\n const defaultFieldStyle: LMFieldStyle = { header: 3 };\n const defaultTextStyle: LMTextStyle = { header: 3 };\n\n templateField.isField = this.isField(templateField, displayField);\n templateField.isFormText = (templateField.type === AppConstants.FORMTEXT);\n templateField.isInternalNavigation = this.isInternalNavigation(templateField);\n templateField.isExternalNavigation = this.isExternalNavigation(templateField);\n templateField.isProcessIndicator = this.isProcessIndicator(displayField);\n\n if (templateField.isProcessIndicator) {\n const value = dataView.fields[displayField.fieldId].value;\n\n if (value === '') {\n return;\n }\n\n const processIndicatorData = JSON.parse(value.toString());\n templateField.processIndicatorDisplayData = this.getProcessIndicatorData(processIndicatorData);\n }\n\n if (displayAsTag) {\n if (displayField.tagStyle && displayField.tagStyle.length > 0) {\n const tagStyle = displayField.tagStyle.find(item => {\n if (!item.condition) {\n return true;\n }\n\n return this.lmConditionUtilService.isValid([ item.condition ], dataView);\n });\n templateField.fieldStyle = { ...defaultFieldStyle, ...displayField.fieldStyle, ...tagStyle.style };\n }\n } else {\n templateField.fieldStyle = { ...defaultFieldStyle, ...displayField.fieldStyle };\n }\n\n templateField.textStyle = { ...defaultTextStyle, ...displayField.textStyle };\n templateField.isRichText = displayField.isRichText;\n\n values.push(templateField);\n });\n\n return values;\n }\n\n private isField(templateField: LMListViewTemplateField, displayField: LMListDisplayField) {\n return (templateField.displayValue.trim().length > 0\n && !displayField.isProcessIndicator\n && !displayField.httpUrl\n && !templateField.navigationParams\n && !templateField.progressFieldData);\n }\n\n private isInternalNavigation(item: LMListViewTemplateField): boolean {\n if (\n item === undefined ||\n item.value === '' ||\n item.navigationParams === undefined ||\n item.navigationParams === null\n ) {\n return false;\n }\n\n return true;\n }\n\n private isProcessIndicator(displayField: LMListDisplayField): boolean {\n return displayField.isProcessIndicator && (displayField.type === AppConstants.TEXTAREA || displayField.type === AppConstants.TEXT);\n }\n\n private isExternalNavigation(item: LMListViewTemplateField): boolean {\n if (\n item === undefined ||\n (item.httpUrl === undefined || item.httpUrl === null) ||\n (item.httpUrl.trim().length === 0)\n ) {\n return false;\n } else if (item.httpUrl) {\n return true;\n }\n }\n\n private getFieldID(displayField: LMListDisplayField): string {\n if (displayField.fieldId !== undefined) {\n return displayField.fieldId;\n } else {\n return this.getFieldIdFromVariables(displayField);\n }\n }\n\n private getFieldIdFromVariables(displayField: LMListDisplayField): string {\n let fieldId: string;\n\n for (const key in displayField) {\n if (\n displayField.hasOwnProperty(key) &&\n displayField[key].variables\n ) {\n fieldId = displayField[key].variables[0].fieldId;\n }\n }\n\n return fieldId !== undefined ? fieldId : '';\n }\n\n private getIcon(displayField: LMListDisplayField): LMListIcon {\n\n const temp: LMListIcon = {\n icon: displayField.icon,\n iconUrl: displayField.icon ? displayField.iconUrl : '',\n sohoIcon: displayField.icon ? this.lmThemeService.isValidSohoIcon(displayField.icon) : false,\n };\n\n return temp;\n }\n\n private getFieldValue(\n type: string,\n val: string | number,\n meterRangeValue?: number,\n transformOptions?: LMTransformOptions\n ): string | number {\n const value = {\n [AppConstants.PERCENT] : () => this.convertValueToPercent(Number(val), meterRangeValue),\n [AppConstants.NUMERIC] : () => this.lmFormatUtilService.numericToData(val).toString(),\n [AppConstants.BCD] : () => this.lmFormatUtilService.bcdToData(String(val), transformOptions),\n [AppConstants.TIMESTAMP] : () => this.lmFormatUtilService.timestampToData(val, transformOptions),\n [AppConstants.YYYYMMDD] : () => this.lmFormatUtilService.yyyymmddToData(val),\n [AppConstants.TIME] : () => this.lmFormatUtilService.timeToData(val),\n [AppConstants.YYYYMM] : () => this.lmFormatUtilService.yyyymmToData(val),\n [AppConstants.MMDD] : () => this.lmFormatUtilService.mmddToData(val),\n [AppConstants.YYYY] : () => this.lmFormatUtilService.yyyyToData(val),\n default : () => val\n };\n\n return (value[type] || value['default'])();\n }\n\n private convertValueToPercent(value: number, meterRangeValue: number): number {\n const range: number = meterRangeValue || 1.0;\n const num = Number( ((value / range) * 100).toFixed(2) );\n return num > 100 ? 100 : num;\n }\n\n private getFieldDisplayValue(\n type: string,\n val: string,\n displayField: LMListDisplayField,\n dataView: LMDataView,\n transformOptions?: LMTransformOptions\n ): string {\n // Angular sanitizes the value in span\n // val = this.domSanitizer.sanitize(SecurityContext.HTML, val);\n const fieldId = this.getFieldID(displayField);\n const format = this.lmFormatUtilService;\n\n let states;\n\n if (displayField.states) {\n states = displayField.states;\n }\n\n if (displayField.isUserDefinedStateField) {\n states = dataView.fields[fieldId].stateValues;\n }\n\n const value = {\n [AppConstants.TIMESTAMP] : () => format.timestampToDisplay(val, transformOptions),\n [AppConstants.YYYYMMDD] : () => format.yyyymmddToDisplay(val),\n [AppConstants.TIME] : () => format.timeToDisplay(val),\n [AppConstants.YYYYMM] : () => format.yyyymmToDisplay(val),\n [AppConstants.MMDD] : () => format.mmddToDisplay(val),\n [AppConstants.YYYY] : () => format.yyyyToDisplay(val),\n [AppConstants.PERCENT] : () => states ? format.stateLabelToText(states, val) : format.percentToDisplay(val),\n [AppConstants.NUMERIC] : () => states ? format.stateLabelToText(states, val) : format.numericToDisplay(val),\n [AppConstants.BCD] : () => states ? format.stateLabelToText(states, val) : format.bcdToDisplay(val, transformOptions),\n [AppConstants.BOOLEAN] : () => states ? format.stateLabelToText(states, val) : format.booleanToDisplay(val),\n [AppConstants.FORMTEXT] : () => displayField.text ? this.getMsgRuleValue(displayField.text, dataView) : val,\n default : () => states ? format.stateLabelToText(states, val) : val\n };\n\n return (value[type] || value['default'])();\n }\n\n private getMsgRuleValue(messageRule: LMMessageRule | string, dataView: LMDataView, isHttpMessageRule?: boolean) {\n if (isHttpMessageRule) {\n return this.lmFormatUtilService.formatMessageRule(messageRule, dataView).replace('mailto:', '');\n } else {\n return this.lmFormatUtilService.formatMessageRule(messageRule, dataView);\n }\n }\n\n private getAlertCondition(displayField: LMListDisplayField, dataView: LMDataView): LMAlertCondition {\n let alertCondition: LMAlertCondition;\n\n if (displayField.alert) {\n const condition = this.lmFormatterService.getAlertCondition(displayField, dataView);\n alertCondition = condition && condition.icon !== undefined ? condition : null;\n }\n\n return alertCondition;\n }\n\n private getCardButtonRowButtons(\n buttonSpecs: Array,\n dataView: LMDataView,\n ): Array {\n\n const buttons: Array = [];\n\n if (buttonSpecs === undefined || dataView === undefined) {\n return buttons;\n }\n\n buttonSpecs.forEach((formButtonSpec) => {\n const t = formButtonSpec.type.toUpperCase();\n\n if (\n (formButtonSpec.condition && !this.lmConditionUtilService.isValid([ formButtonSpec.condition ], dataView)) ||\n (formButtonSpec.visibility && !this.lmConditionUtilService.isValid(formButtonSpec.visibility, dataView))\n ) {\n return;\n }\n\n // DPB adding cardViewFormButtonSpec to handle busform button pushes from a list -- Phillip thinking of better architecture solution.\n const label = formButtonSpec.title ? this.lmFormatUtilService.formatMessageRule(formButtonSpec.title, dataView) : '';\n const httpUrl = this.getHttpUrl(formButtonSpec, dataView);\n const button: LMCardViewButtonRowButton = {\n actionReference: {\n id: formButtonSpec.fieldId,\n index: formButtonSpec.actionSpec ? formButtonSpec.actionSpec.index : null,\n row: dataView.id - 1,\n type: formButtonSpec.type,\n label,\n validity: [ formButtonSpec.condition ],\n navigation: formButtonSpec.navigation,\n resourceId: dataView.resourceId,\n cardViewFormButtonSpec: formButtonSpec,\n tooltip: this.getToolTip(formButtonSpec, label)\n },\n httpUrl,\n isOpenExternal: formButtonSpec.openExternal,\n actionSpec: formButtonSpec.actionSpec,\n isDisplayAsLink: formButtonSpec.displayAsLink && !formButtonSpec.iconUrl,\n isIconOnly: formButtonSpec.iconUrl !== undefined,\n iconUrl: formButtonSpec.iconUrl,\n icon: this.lmThemeService.isValidSohoIcon(formButtonSpec.icon) ? formButtonSpec.icon : null,\n state: { disabled: false, visible: true },\n fieldStyle: formButtonSpec.fieldStyle,\n isPrimary: formButtonSpec.isPrimary,\n displayTooltip: label === ' ' ? false : true\n };\n\n switch (t) {\n case AppConstants.FORMBUTTON :\n buttons.push(button);\n break;\n case AppConstants.NAVIGATION :\n if (formButtonSpec.navigation !== undefined) {\n button.navigationParams = { navigationName: formButtonSpec.navigation, dataView };\n }\n buttons.push(button);\n break;\n }\n });\n\n return buttons;\n }\n\n private getToolTip(formButtonSpec: LMFormButtonSpec, label: string): string {\n const tooltip = formButtonSpec.iconUrl !== undefined && label.trim().length !== 0 ? label : null;\n const httpUrl = formButtonSpec.httpUrl ? formButtonSpec.httpUrl.resourceValue : null;\n if (this.isMailToLink(httpUrl)) {\n // TODO: Localize\n return 'Send Email';\n }\n return tooltip;\n }\n\n private isMailToLink(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return value.includes('mailto:');\n }\n\n private getHttpUrl(formButtonSpec: LMFormButtonSpec, dataView: LMDataView): string {\n let url = null;\n if (formButtonSpec.hasHttpUrl) {\n url = this.lmFormatUtilService.formatMessageRule(formButtonSpec.httpUrl, dataView);\n }\n\n return url;\n }\n\n private getProcessIndicatorData(processIndicatorData: LMProcessIndicatorData): Array {\n return this.lmProcessIndicatorService.getTemplateData(processIndicatorData);\n }\n\n private getTagsForImageSection(tags: LMTagStyle[]): Array {\n const imageSectionTagTemplateTags = [];\n\n tags.forEach((tag) => {\n imageSectionTagTemplateTags.push({value: ''});\n });\n\n return imageSectionTagTemplateTags;\n }\n\n public encodeHtmlSingleQuote(button: LMCardViewButtonRowButton): LMCardViewButtonRowButton{\n let buttonCopy = button;\n\n if(button.actionReference?.cardViewFormButtonSpec?.title?.resourceValue)\n buttonCopy.actionReference.cardViewFormButtonSpec.title.resourceValue = button.actionReference.cardViewFormButtonSpec.title.resourceValue.replace('\\'',''');\n\n return buttonCopy;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class LMListContentFilterListUtilService {\n // todo move this stuff into LMListContentFilterListService\n private emitCardDropSource = new Subject();\n\n cardDropEmitted$ = this.emitCardDropSource.asObservable();\n\n emitCardDrop(row: number, filterRow: number) {\n this.emitCardDropSource.next({ row, filterRow });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\n@Injectable()\nexport class LMListContentFilterListService {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) { }\n\n public getFilterListTemplateData(dataViewSet: LMDataViewSet, groupLabelSpec: LMRelatedValueSpec): Array {\n const accordionItems: LMFilterListTemplateData[] = [];\n\n for (let i = 0; i < dataViewSet.data.length; i++) {\n const dataView: LMDataView = dataViewSet.data[i];\n\n const accordionItem: LMFilterListTemplateData = {};\n\n const groupedLabel: string = this.getGroupLabelValue(dataView, groupLabelSpec);\n if (groupedLabel) {\n accordionItem.item = groupedLabel;\n accordionItem.groupItems = this.getGroupedItems(dataViewSet, groupedLabel, groupLabelSpec, i);\n i += accordionItem.groupItems.length - 1;\n } else {\n accordionItem.item = dataView;\n accordionItem.groupItems = null;\n accordionItem.index = i;\n }\n\n accordionItems.push(accordionItem);\n }\n\n return accordionItems;\n }\n\n private getGroupedItems(dataViewSet: LMDataViewSet, groupLabel: string, groupLabelSpec: LMRelatedValueSpec, i: number): LMFilterListTemplateData[] {\n const accordionItems: LMFilterListTemplateData[] = [];\n\n for (; i < dataViewSet.data.length; i++) {\n const dataView: LMDataView = dataViewSet.data[i];\n if (groupLabel !== this.getGroupLabelValue(dataView, groupLabelSpec)) {\n break;\n }\n\n accordionItems.push({ item: dataView, index: i });\n }\n\n return accordionItems;\n }\n\n private getGroupLabelValue(data: LMDataView, groupLabel: LMRelatedValueSpec): string {\n const groupLabelFieldId = groupLabel.fieldId;\n const groupField: LMField = data.fields[groupLabelFieldId];\n const value = this.lmFormatUtilService.stateLabelToText(groupField.stateValues, String(groupField.value));\n return (value.trim().length) ? value : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { LMListDragDropEvent } from '@list/lm-list.component';\n\n@Injectable()\nexport class LMListEventService {\n\n // Observable sources\n private cancelablePagingEventSource = new Subject();\n private checkControlEventSource = new Subject();\n private calendarContextMenuEventSource = new Subject();\n private contextMenuEventSource = new Subject();\n private cubeDataLoadedEventSource = new Subject();\n private dataLoadedEventSource = new Subject();\n private fieldChangedEventSource = new Subject();\n private formButtonEventEventSource = new Subject();\n private listDragDropEventSource = new Subject();\n private listKeyDownEventSource = new Subject();\n private listRowActivatedEventSource = new Subject();\n private listRowDeactivatedEventSource = new Subject();\n private listRowClickedEventSource = new Subject();\n private listRowSelectedEventSource = new Subject();\n private listRowDoubleClickedEventSource = new Subject();\n private listGridBeforePagingSource = new Subject();\n private listGridContinuePagingSource = new Subject();\n private listHierarchyDoubleClickedEventSource = new Subject();\n private hierarchyActionMenuItemSelectedEventSource = new Subject();\n private listBarCodeClickedEventSource = new Subject();\n private listLookupClickedEventSource = new Subject();\n private listFieldLookupClickedEventSource = new Subject();\n private listFilterLookupClickedEventSource = new Subject();\n private listFilterClearClickedEventSource = new Subject();\n private listOpenCompactFormEventSource = new Subject();\n private uiLinkEventSource = new Subject();\n private sendContextMessageEventSource = new Subject();\n private settingsChangedEventSource = new Subject();\n private toolbarButtonEventSource = new Subject();\n private buildToolbarEventSource = new Subject();\n private updateToolbarStateEventSource = new Subject();\n private cubeEventSource = new Subject();\n private clearSearchCriteriaSource = new Subject();\n private busyIndicatorDisplayedSource = new Subject();\n private updateFilterCriteriaSource = new Subject();\n private drawerCollapseSource = new Subject();\n private filterOperatorChangedSource = new Subject();\n // private filterCriteriaFocusedOutSource = new Subject();\n\n // Observable streams\n cancelablePagingEvent$ = this.cancelablePagingEventSource.asObservable();\n checkControlEvent$ = this.checkControlEventSource.asObservable();\n calendarContextMenuEvent$ = this.calendarContextMenuEventSource.asObservable();\n contextMenuEvent$ = this.contextMenuEventSource.asObservable();\n cubeDataLoadedEvent$ = this.cubeDataLoadedEventSource.asObservable();\n dataLoadedEvent$ = this.dataLoadedEventSource.asObservable();\n fieldChangedEvent$ = this.fieldChangedEventSource.asObservable();\n formButtonEvent$ = this.formButtonEventEventSource.asObservable();\n listDragDropEvent$ = this.listDragDropEventSource.asObservable();\n listKeyDownEvent$ = this.listKeyDownEventSource.asObservable();\n listRowActivatedEvent$ = this.listRowActivatedEventSource.asObservable();\n listRowDeactivatedEvent$ = this.listRowDeactivatedEventSource.asObservable();\n listRowSelectedEvent$ = this.listRowSelectedEventSource.asObservable();\n listRowClickedEvent$ = this.listRowClickedEventSource.asObservable();\n listRowDoubleClickedEvent$ = this.listRowDoubleClickedEventSource.asObservable();\n listGridBeforePagingEvent$ = this.listGridBeforePagingSource.asObservable();\n listGridContinuePagingEvent$ = this.listGridContinuePagingSource.asObservable();\n listHierarchyDoubleClickedEvent$ = this.listHierarchyDoubleClickedEventSource.asObservable();\n hierarchyActionMenuItemSelectedEvent$ = this.hierarchyActionMenuItemSelectedEventSource.asObservable();\n listBarCodeClickedEvent$ = this.listBarCodeClickedEventSource.asObservable();\n listLookupClickedEvent$ = this.listLookupClickedEventSource.asObservable();\n listFieldLookupClickedEvent$ = this.listFieldLookupClickedEventSource.asObservable();\n listFilterLookupClickedEvent$ = this.listFilterLookupClickedEventSource.asObservable();\n listFilterClearClickedEvent$ = this.listFilterClearClickedEventSource.asObservable();\n listOpenCompactFormEvent$ = this.listOpenCompactFormEventSource.asObservable();\n uiLinkEvent$ = this.uiLinkEventSource.asObservable();\n sendContextMessageEvent$ = this.sendContextMessageEventSource.asObservable();\n settingsChangedEvent$ = this.settingsChangedEventSource.asObservable();\n toolbarButtonEvent$ = this.toolbarButtonEventSource.asObservable();\n buildToolbarEvent$ = this.buildToolbarEventSource.asObservable();\n updateToolbarStateEvent$ = this.updateToolbarStateEventSource.asObservable();\n cubeEvent$ = this.cubeEventSource.asObservable();\n clearSearchCriteriaEvent$ = this.clearSearchCriteriaSource.asObservable();\n busyIndicatorDisplayedEvent$ = this.busyIndicatorDisplayedSource.asObservable();\n updateFilterCriteriaSource$ = this.updateFilterCriteriaSource.asObservable();\n drawerCollapse$ = this.drawerCollapseSource.asObservable();\n filterOperatorChangedEvent$ = this.filterOperatorChangedSource.asObservable();\n // filterCriteriaFocusedOutSource$ = this.filterCriteriaFocusedOutSource.asObservable();\n\n // Service message commands\n cancelablePagingEvent(event: LMCancelablePagingEvent) {\n this.cancelablePagingEventSource.next(event);\n }\n\n checkControlEvent(event: LMCheckControlEvent) {\n this.checkControlEventSource.next(event);\n }\n\n calendarContextMenuEvent(event: LMContextMenuEvent) {\n this.calendarContextMenuEventSource.next(event);\n }\n\n contextMenuEvent(event: LMContextMenuEvent) {\n this.contextMenuEventSource.next(event);\n }\n\n cubeDataLoadedEvent(event: LMListPagingResponse) {\n this.cubeDataLoadedEventSource.next(event);\n }\n\n dataLoadedEvent(event: LMListPagingResponse) {\n this.dataLoadedEventSource.next(event);\n }\n\n fieldChangedEvent(event: LMListFieldChangedEvent) {\n this.fieldChangedEventSource.next(event);\n }\n\n formButtonEvent(event: LMFormButtonEvent) {\n this.formButtonEventEventSource.next(event);\n }\n\n listDragDropEvent(event: LMListDragDropEvent) {\n this.listDragDropEventSource.next(event);\n }\n\n listKeyDownEvent(event: LMListKeyDownEvent) {\n this.listKeyDownEventSource.next(event);\n }\n\n listRowActivatedEvent(event: LMListRowActivatedEvent) {\n this.listRowActivatedEventSource.next(event);\n }\n\n listRowDeactivatedEvent(event: LMListRowActivatedEvent) {\n this.listRowDeactivatedEventSource.next(event);\n }\n\n listRowClickedEvent(event: LMListRowClickedEvent) {\n this.listRowClickedEventSource.next(event);\n }\n\n listRowSelectedEvent(event: LMListRowSelectedEvent) {\n this.listRowSelectedEventSource.next(event);\n }\n\n listRowDoubleClickedEvent(event: LMListRowClickedEvent) {\n this.listRowDoubleClickedEventSource.next(event);\n }\n\n listGridBeforePagingEvent(event: LMListGridPagingEvent) {\n this.listGridBeforePagingSource.next(event);\n }\n\n listGridContinuePagingEvent(event: LMListGridPagingEvent) {\n this.listGridContinuePagingSource.next(event);\n }\n\n listHierarchyDoubleClickedEvent(dataView: LMDataView) {\n this.listHierarchyDoubleClickedEventSource.next(dataView);\n }\n\n hierarchyActionMenuItemSelectedEvent(event: LMBusActionReference) {\n this.hierarchyActionMenuItemSelectedEventSource.next(event);\n }\n\n listBarCodeClickedEvent(event: LMListBarCodeClickedEvent) {\n this.listBarCodeClickedEventSource.next(event);\n }\n\n listLookupClickedEvent(event: LMListLookupClickedEvent) {\n this.listLookupClickedEventSource.next(event);\n }\n\n listFieldLookupClickedEvent(event: LMListFieldLookupClickedEvent) {\n this.listFieldLookupClickedEventSource.next(event);\n }\n\n listFilterLookupClickedEvent(event: LMListFilterLookupClickedEvent) {\n this.listFilterLookupClickedEventSource.next(event);\n }\n\n listFilterClearClickedEvent(event: LMListFilterClearClickedEvent) {\n this.listFilterClearClickedEventSource.next(event);\n }\n\n listOpenCompactFormEvent(event: LMListOpenCompactFormEvent) {\n this.listOpenCompactFormEventSource.next(event);\n }\n\n uiLinkEvent(event: LMUILinkEvent) {\n this.uiLinkEventSource.next(event);\n }\n\n clearSearchCriteriaEvent() {\n this.clearSearchCriteriaSource.next();\n }\n\n sendContextMessageEvent(event: any) {\n this.sendContextMessageEventSource.next(event);\n }\n\n settingsChangedEvent(event: LMListSettingsChangedEvent) {\n this.settingsChangedEventSource.next(event);\n }\n\n toolbarButtonEvent(event: LMToolbarButtonEvent) {\n this.toolbarButtonEventSource.next(event);\n }\n\n buildToolbarEvent() {\n this.buildToolbarEventSource.next();\n }\n\n updateToolbarStateEvent() {\n this.updateToolbarStateEventSource.next();\n }\n\n cubeEvent(event: LMCubeEvent) {\n this.cubeEventSource.next(event);\n }\n\n busyIndicatorDisplayedEvent(event: LMBusyIndicatorDisplayedEvent) {\n this.busyIndicatorDisplayedSource.next(event);\n }\n\n updateFilterCriteriaEvent(filterCriteria: LMFilterFieldCriteria[]) {\n this.updateFilterCriteriaSource.next(filterCriteria);\n }\n\n expandDrawerSide(): void {\n this.drawerCollapseSource.next(false);\n }\n\n collapseDrawerSide(): void {\n this.drawerCollapseSource.next(true);\n }\n\n filterOperatorChangedEvent(event: LMListFilterOperator): void {\n this.filterOperatorChangedSource.next(event);\n }\n\n // filterCriteriaFocusedOutEvent(changed: boolean): void {\n // this.filterCriteriaFocusedOutSource.next(changed);\n // }\n}\n","/* tslint:disable:max-line-length */\n/**\n * Created by ppatton on 12/13/2016.\n */\n\nimport { Injectable } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMCommonUtilService } from '@utils/lm-common-util.service';\nimport { LMLocaleUtilService } from '@utils/lm-locale-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMEditorService } from '@list/editors/lm-editor.service';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMListUtilService } from '@list/services/lm-list-util.service';\n\nimport { isCheckControlEditable } from '@list/editors/lm-checkcontrol-editable.editor';\nimport { isEditable } from '@list/editors/lm-is-editable.editor';\nimport { lmBcdSerializer } from '@list/editors/lm-bcd.serializer';\nimport { lmBooleanSerializer } from '@list/editors/lm-boolean.serializer';\nimport { lmDateTimeSerializer } from '@list/editors/lm-date-time.serializer';\nimport { lmBarCodeClickFunction } from '@list/editors/lm-barcode-click.function';\nimport { lmLookupClickFunction } from '@list/editors/lm-lookup-click.function';\nimport { lmCodeBlockSerializer } from '@list/editors/lm-code-block.serializer';\nimport { lmPercentSerializer } from '@list/editors/lm-percent.serializer';\nimport { lmStateFieldSource } from '@list/editors/lm-state-field.source';\nimport { lmButtonFormatter } from '@list/formatters/lm-button.formatter';\nimport { lmCheckBoxFormatter } from '@list/formatters/lm-checkbox.formatter';\nimport { lmCodeBlockFormatter } from '@list/formatters/lm-code-block.formatter';\nimport { lmFavoriteFormatter } from '@list/formatters/lm-favorite.formatter';\nimport { lmProgressFormatter } from '@list/formatters/lm-progress.formatter';\nimport { lmTreeFormatter } from '@list/formatters/lm-tree.formatter';\nimport { lmCardViewFormatter } from '@list/formatters/lm-card-view.formatter';\nimport { LMListSpecUtilService } from './lm-list-spec-util.service';\nimport { LMListCardService } from './lm-list-card.service';\nimport { LMCompoundFieldService } from '@services/lm-compound-field.service';\nimport { colSpan } from '@list/formatters/lm-colspan.formatter';\nimport { lmListCellTooltip } from '@list/formatters/lm-list-cell-tooltip.formatter';\nimport { lmFieldFormatter } from '@list/formatters/lm-field.formatter';\nimport { LMCodeBlockEditorComponent } from '@list/editors/lm-code-block.editor';\nimport { LMUrlUtilService } from '@services/utils';\nimport { LMContextService, LMUrlInfoBuilderService } from '@services/index';\nimport { lmMaskOptionsFunction } from '@list/editors/lm-maskoptions.function';\nimport { lmFieldLookupClickFunction } from '@list/editors/lm-fieldlookup-click.function';\nimport { lmFilterLookupClickFunction } from '@list/editors/lm-filter-lookup-click.function';\nimport { lmFilterClearClickFunction } from '@list/editors/lm-filter-clear-click.function';\nimport { lmFilterDropdownKeydownFunction } from '@list/editors/lm-filter-dropdown-keydown.function';\nimport { LMGlobalPersonalizationService } from '@states/services';\nimport { lmRatingFormatter } from '@list/formatters/lm-rating.formatter';\nimport { lmProcessIndicatorFormatter } from '../formatters/lm-process-indicator.formatter';\nimport { LMProcessIndicatorService } from '../../field/processindicator/lm-process-indicator.service';\nimport { LMProcessIndicatorTooltipPipe } from '@field/processindicator/lm-process-indicator-tooltip.pipe';\n\n@Injectable()\nexport class LMListGridBuilderService {\n\n private alphaFilterConditions: Array = [ 'contains', 'does-not-contain', 'equals',\n 'does-not-equal', 'is-empty', 'is-not-empty', 'end-with', 'does-not-end-with', 'start-with', 'does-not-start-with' ];\n\n private numericFilterConditions: Array = [ 'equals', 'does-not-equal', 'is-empty', 'is-not-empty', 'less-than', 'less-equals', 'greater-than', 'greater-equals' ];\n\n private codeBlockFilterConditions: Array = [ 'contains' ];\n\n constructor(\n private lmActionService: LMActionService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmContextService: LMContextService,\n private lmEditorService: LMEditorService,\n private lmFormatterService: LMFormatterService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmLocaleUtilService: LMLocaleUtilService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmListCardService: LMListCardService,\n private lmCompoundFieldService: LMCompoundFieldService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmProcessIndicatorService: LMProcessIndicatorService,\n private lmProcessIndicatorTooltipPipe: LMProcessIndicatorTooltipPipe,\n private lmListUtilService: LMListUtilService\n ) { }\n\n public updateDataGridColumn(dataGridColumns: SohoDataGridColumn[], showSelectionColumn: boolean) {\n if (showSelectionColumn) {\n if (dataGridColumns.length === 0 || dataGridColumns[0].id !== 'selectionCheckbox') {\n const checkBoxColumn: ListGridColumn = {\n id: 'selectionCheckbox',\n sortable: false,\n resizable: false,\n formatter: this.LMCheckBoxFormatter,\n align: 'center'\n };\n\n dataGridColumns.unshift(checkBoxColumn);\n }\n } else if (dataGridColumns.length > 0 && dataGridColumns[0].id === 'selectionCheckbox') {\n dataGridColumns.shift();\n }\n }\n\n public buildDataGridOptions(\n listUrlInfo: LMListUrlInfo,\n listSpec: LMListSpec,\n listState: LMListState,\n listPersonalization: LMListPersonalization,\n allowMultiSelections: boolean\n ): SohoDataGridOptions {\n const dataGridColumns: SohoDataGridColumn[] = [];\n\n const showSelectionColumn: boolean = this.showSelectionColumn(listSpec, undefined, allowMultiSelections);\n this.updateDataGridColumn(dataGridColumns, showSelectionColumn);\n\n // -----------------------------------------------------------------\n // build the datagrid columns\n // -----------------------------------------------------------------\n\n listSpec.busListSpec.displayFields[ 0 ].isTreeColumn = listSpec.busListSpec.implementsTreeView;\n\n const detailFieldLength = listSpec?.busListSpec?.detailFields?.length;\n let columns: LMListDisplayField[] = listSpec?.busListSpec?.displayFields;\n // make the column hidden, this will be the value storage for the detail field when modified\n if (detailFieldLength) {\n const detailFields = [ ...listSpec.busListSpec.detailFields ];\n detailFields.forEach(detailField => { detailField.columnVisibility = [ { type: 'value', value: false } ]; });\n columns = [ ...columns, ...detailFields ];\n }\n dataGridColumns.push(...columns.map((displayField, index) =>\n this.buildColumn(listUrlInfo, listSpec, displayField, index, listPersonalization)));\n\n const showDirty = listSpec.busListSpec.implementsInlineCreate || this.lmListSpecUtilService.allowUpdate(listSpec);\n const editable = listSpec.listType !== 'select' && !listSpec.showAsMingleWidget;\n\n const useCompactMode = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n const rowHeight = useCompactMode ? 'extra-small' : 'small';\n const columnSizing = (useCompactMode && !listSpec.busListSpec.horizontalScrolling) ? 'data' : 'both';\n const cellNavigation = !(listSpec.listType === 'select' && this.lmContextService.useSingleSelectList());\n\n const gridOptions: SohoDataGridOptions = {\n cellNavigation,\n columns: dataGridColumns,\n disableClientSort: true,\n disableClientFilter: true,\n filterWhenTyping: false, // !this.lmListUtilService.isAutoFilterEnabled(),\n redrawOnResize: false, // todo ppatton remove once tim fixes all the resize issues\n menuId: this.lmListSpecUtilService.getContextMenuId(listSpec),\n isList: listSpec.busListSpec.showAsSimpleList || listSpec.showAsMingleWidget,\n editable,\n enableTooltips: true,\n rowHeight,\n columnSizing,\n // todo ppatton - need to store columns meta ourselves in listPersonalization\n saveUserSettings: {\n columns: false,\n rowHeight: false,\n sortOrder: false,\n pagesize: false,\n activePage: false,\n filter: false\n },\n toolbar: null,\n actionableMode: true,\n showDirty,\n emptyMessage: null, // reset the default empty message to be null so it doesn't display on initial load of recs\n // Disable total rows, prevent them from being selected\n isRowDisabled: (rowIdx, dataView) => !!dataView.subtotalLabel,\n\n // this allows us a more reliable id but it must be done via testversion 3.\n uniqueId: this.lmContextService.testVersion() >= AppConstants.TESTVERSION_V3 ? listSpec.busListSpec.id : undefined\n };\n\n const columnGroups: SohoDataGridColumnGroup[] = this.buildColumnGroups(listSpec, showSelectionColumn);\n if (columnGroups && columnGroups.length > 0) {\n gridOptions.columnGroups = columnGroups;\n }\n\n this.setFilterable(gridOptions, listSpec, listState);\n this.setSelectionMode(gridOptions, listSpec, showSelectionColumn, allowMultiSelections);\n this.setFreezeColumns(gridOptions, listSpec);\n\n return gridOptions;\n }\n\n public buildAggregationDataGridOptions(\n listUrlInfo: LMListUrlInfo,\n listSpec: LMListSpec,\n listState: LMListState,\n listPersonalization: LMListPersonalization,\n chartName: string\n ): SohoDataGridOptions {\n const allowMultiSelections = false;\n const dataGridColumns: SohoDataGridColumn[] = [];\n\n // -----------------------------------------------------------------\n // build the datagrid columns\n // -----------------------------------------------------------------\n\n dataGridColumns.push(...listSpec.busListSpec.charts[chartName].aggFields.map((aggField, index) =>\n this.buildAggColumn(listUrlInfo, listSpec, aggField, index)));\n\n const useCompactMode = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n const rowHeight = useCompactMode ? 'extra-small' : 'small';\n const columnSizing = (useCompactMode && !listSpec.busListSpec.horizontalScrolling) ? 'data' : 'both';\n\n const gridOptions: SohoDataGridOptions = {\n cellNavigation: true,\n columns: dataGridColumns,\n disableClientSort: true,\n disableClientFilter: true,\n filterWhenTyping: false, //!this.lmListUtilService.isAutoFilterEnabled(),\n redrawOnResize: false, // todo ppatton remove once tim fixes all the resize issues\n menuId: this.lmListSpecUtilService.getContextMenuId(listSpec) + '_agg',\n isList: true,\n editable: false,\n enableTooltips: true,\n rowHeight,\n columnSizing,\n // todo ppatton - need to store columns meta ourselves in listPersonalization\n saveUserSettings: {\n columns: false,\n rowHeight: false,\n sortOrder: false,\n pagesize: false,\n activePage: false,\n filter: false\n },\n toolbar: null,\n actionableMode: true,\n showDirty: false,\n emptyMessage: null, // reset the default empty message to be null so it doesn't display on initial load of recs\n // Disable total rows, prevent them from being selected\n isRowDisabled: (rowIdx, dataView) => !!dataView.subtotalLabel\n };\n\n // LMWEB-1644 Both column groups and freeze columns are set based on the main list columns and not on agg chart fields.\n // Commenting it out until there is an enhancement request to make groups and freeze columns available on the agg table itself.\n // const columnGroups: SohoDataGridColumnGroup[] = this.buildColumnGroups(listSpec, false);\n // if (columnGroups && columnGroups.length > 0) {\n // gridOptions.columnGroups = columnGroups;\n // }\n\n this.setFilterable(gridOptions, listSpec, listState);\n this.setSelectionMode(gridOptions, listSpec, false, allowMultiSelections);\n // LMWEB-1644 Both column groups and freeze columns are set based on the main list columns and not on agg chart fields.\n // Commenting it out until there is an enhancement request to make groups and freeze columns available on the agg table itself.\n // this.setFreezeColumns(gridOptions, listSpec);\n\n return gridOptions;\n }\n\n public buildColumnsAfterPeriodOverride(\n listUrlInfo: LMListUrlInfo,\n listSpec: LMListSpec,\n listState: LMListState,\n listPersonalization: LMListPersonalization,\n ): ListGridColumn[] {\n const dataGridColumns: ListGridColumn[] = [];\n listSpec.busListSpec.displayFields[ 0 ].isTreeColumn = listSpec.busListSpec.implementsTreeView;\n dataGridColumns.push(...listSpec.busListSpec.displayFields.map((displayField, index) =>\n this.buildColumn(listUrlInfo, listSpec, displayField, index, listPersonalization)));\n return dataGridColumns;\n }\n\n private showSelectionColumn(listSpec: LMListSpec, inSelectListEditMode?: boolean, allowMultiSelections?: boolean): boolean {\n const selectionMethod = this.lmListSpecUtilService.getSelectionMode(listSpec, inSelectListEditMode, allowMultiSelections);\n\n return selectionMethod === 'mixed' || selectionMethod === 'multiple';\n }\n\n public buildColumnGroups(listSpec: LMListSpec, hasSelectionColumn: boolean): SohoDataGridColumnGroup[] {\n const columnGroups: SohoDataGridColumnGroup[] = [];\n\n // -------------------------------------------------------------------------------\n // if list is selectable, push the grouped headers over one column (not to\n // include checkbox column)\n // -------------------------------------------------------------------------------\n if (hasSelectionColumn) {\n // list is selectable, so push the grouped headers over one column (not to include checkbox column)\n columnGroups.push({ colspan: 1, id: '', name: '' });\n }\n\n let hasAtLeastOneGroup = false;\n for (let i = 0, len = listSpec.busListSpec.displayFields.length; i < len; i++) {\n const displayField: LMListDisplayField = listSpec.busListSpec.displayFields[ i ];\n\n // -------------------------------------------------------------------------------\n // if no group label id but there are columnGroups then add a blank column\n // -------------------------------------------------------------------------------\n if (!displayField.groupLabelId) {\n // no group label id, so have a blank column\n columnGroups.push({ colspan: 1, id: '', name: '' });\n continue;\n }\n\n // -------------------------------------------------------------------------------\n // No column groups exist at all, add a new one\n // -------------------------------------------------------------------------------\n if (columnGroups.length === 0) {\n // No column groups exist at all, add a new one\n columnGroups.push({ colspan: 1, id: displayField.groupLabelId, name: displayField.groupLabel.resourceValue, align: 'center' });\n hasAtLeastOneGroup = true;\n continue;\n }\n\n // -------------------------------------------------------------------------------\n // Check if the groupId is already in the column groups\n // -------------------------------------------------------------------------------\n let groupLabelExists = false;\n\n if (columnGroups.length > 0 && columnGroups[columnGroups.length - 1].id === displayField.groupLabelId) {\n groupLabelExists = true;\n\n // -------------------------------------------------------------------------------\n // it exists, increment how large the column span should be\n // -------------------------------------------------------------------------------\n const columnsInGroup = columnGroups[columnGroups.length - 1].colspan;\n columnGroups[columnGroups.length - 1].colspan = columnsInGroup + 1;\n }\n if (!groupLabelExists) {\n // -------------------------------------------------------------------------------\n // column group doesn't exist yet, add a new one\n // -------------------------------------------------------------------------------\n columnGroups.push({ colspan: 1, id: displayField.groupLabelId, name: displayField.groupLabel.resourceValue, align: 'center' });\n hasAtLeastOneGroup = true;\n }\n }\n\n if (hasAtLeastOneGroup) {\n const detailFieldLength = listSpec?.busListSpec?.detailFields?.length;\n if (detailFieldLength) {\n for (let i = 0; i < detailFieldLength; i++) {\n columnGroups.push({ colspan: 1, id: '', name: '' });\n }\n }\n return columnGroups;\n } else {\n return null;\n }\n }\n\n private setFilterable(gridOptions: SohoDataGridOptions, listSpec: LMListSpec, listState: LMListState) {\n if (listSpec.busListSpec.searchForm) {\n // ---------------------------------------------------------------------------\n // If there is a searchForm then it's the responsibility of lm-list.component\n // to restore it's state. Set filterable to false so the filter bar doesn't\n // display.\n // ---------------------------------------------------------------------------\n gridOptions.filterable = false;\n } else {\n switch (listSpec.busListSpec.displaySearch) {\n case 'initially':\n if (listState.isFilterBarOpened !== undefined && !listState.isFilterBarOpened) {\n gridOptions.filterable = false;\n } else {\n gridOptions.filterable = true;\n listState.isFilterBarOpened = true;\n }\n break;\n\n case 'always':\n gridOptions.filterable = true;\n listState.isFilterBarOpened = true;\n break;\n\n case 'default':\n if (listSpec.listType === 'select') {\n gridOptions.filterable = true;\n listState.isFilterBarOpened = true;\n } else {\n gridOptions.filterable = listState.isFilterBarOpened;\n }\n break;\n }\n }\n }\n\n private setSelectionMode(gridOptions: SohoDataGridOptions, listSpec: LMListSpec, showSelectionColumn: boolean, allowMultiSelections?: boolean): void {\n const selectionMode: SohoDataGridSelectable = this.lmListSpecUtilService.getSelectionMode(listSpec, undefined, allowMultiSelections);\n\n if (selectionMode === false) {\n if (!listSpec.busListSpec.openActionRestricted) {\n /**\n * turn off cellNavigation so we get the hand cursor when\n * mousing over a list row. and a single click is fired\n * when clicking on a row.\n */\n gridOptions.cellNavigation = false;\n gridOptions.selectable = false;\n }\n\n return;\n }\n\n switch (selectionMode) {\n case 'single':\n if (showSelectionColumn) {\n gridOptions.selectable = 'multiple';\n } else {\n gridOptions.selectable = selectionMode;\n }\n break;\n case 'multiple':\n case 'siblings':\n gridOptions.selectable = selectionMode;\n break;\n\n case 'mixed':\n gridOptions.selectable = selectionMode;\n gridOptions.disableRowDeactivation = true;\n break;\n }\n }\n\n private setFreezeColumns(gridOptions: SohoDataGridOptions, listSpec: LMListSpec): void {\n if (listSpec.busListSpec.implementsCubeView) {\n return;\n }\n\n if (listSpec.busListSpec.horizontalScrolling && listSpec.busListSpec.freezeColumns) {\n\n // init frozen columns structure\n gridOptions.frozenColumns = { left: [] };\n\n // find the correct number of freeze column\n const freezeColumns = listSpec.busListSpec.freezeColumns + (this.showSelectionColumn(listSpec) ? 1 : 0);\n\n // set which columns are to be frozen\n for (let i = 0; i < freezeColumns; i++) {\n const gridColumn: SohoDataGridColumn = gridOptions.columns[i];\n gridOptions.frozenColumns.left.push(gridColumn.id);\n\n // Handle frozen columns that are not scrollable\n if (gridColumn.colspan) {\n gridColumn.resizable = false;\n } else if (gridColumn.hasOwnProperty('displayField')) {\n const displayField = gridColumn['displayField'] as LMListDisplayField;\n if (displayField.type === 'CARDVIEW') {\n gridColumn.resizable = false;\n }\n }\n }\n\n if (this.hasCardView(listSpec.busListSpec.displayFields) || this.hasCodeBlock(listSpec.busListSpec.displayFields)) {\n gridOptions.fixedRowHeight = 'auto';\n }\n }\n }\n\n public updateFrozenColumns(frozenColumns: SohoDataGridFrozenColumns, showSelectionColumn: boolean): void {\n if (frozenColumns) {\n const leftFrozenColumns = frozenColumns.left;\n if (showSelectionColumn) {\n if (leftFrozenColumns.length > 0 && leftFrozenColumns[0].id !== 'selectionCheckbox' ) {\n leftFrozenColumns.unshift('selectionCheckbox');\n }\n } else if (leftFrozenColumns.length > 0 && leftFrozenColumns[0].id === 'selectionCheckbox') {\n leftFrozenColumns.shift();\n }\n }\n }\n\n public updateColumnGroups(columnGroups: SohoDataGridColumnGroup[], showSelectionColumn: boolean): void {\n if (columnGroups) {\n if (showSelectionColumn) {\n if (columnGroups.length > 0 && columnGroups[0].id !== 'selectionCheckbox' ) {\n columnGroups.unshift({ colspan: 1, id: 'selectionCheckbox', name: '' });\n }\n } else if (columnGroups.length > 0 && columnGroups[0].id === 'selectionCheckbox') {\n columnGroups.shift();\n }\n }\n }\n\n private buildColumn(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, displayField: LMListDisplayField, columnNumber: number, personalization: LMListPersonalization): ListGridColumn {\n let bindId: string;\n const type: string = displayField.type.toUpperCase();\n\n // ----------------------------------------------------------------------------\n // datagrid doesn't handle a cell with a fieldId not being tied to a value\n // in the dataset. Buttons and FormText don't have data in the dataset. So\n // set fieldId to undefined in these cases so datagrid doesn't blow up trying\n // trying to find said value.\n // ----------------------------------------------------------------------------\n if (type !== AppConstants.FORMBUTTON && type !== AppConstants.NAVIGATION && type !== AppConstants.FORMREFERENCE && type !== AppConstants.LISTREFERENCE && type !== AppConstants.FORMTEXT) {\n bindId = 'fields.' + displayField.fieldId + '.value';\n\n // template list display values are in the target dataView\n // not the template dataView. The template dataView is needed for paging or positioning\n if (listSpec.isTemplateList) {\n bindId = 'dataView.' + bindId;\n }\n }\n\n const isRequiredSearchParameter = this.lmListSpecUtilService.isRequiredSearchParameter(listSpec.busListSpec, displayField.fieldId);\n\n // a column could appear on a list multiple times (under different labels), so uniquify the id for the column\n\n let columnId = displayField.columnId;\n if (columnId && this.lmContextService.testVersion() <= 2) {\n columnId = displayField.columnId + '_' + columnNumber;\n }\n\n const column: ListGridColumn = {\n id: columnId,\n field: bindId,\n sortable: this.isSortable(listSpec, displayField),\n fieldId: displayField.fieldId,\n // adding to column object so we can have access to this in the formatter and editors\n displayField,\n isRequiredSearch: isRequiredSearchParameter,\n };\n\n let columnName = '';\n if (displayField.labelSuppressed) {\n columnName = '';\n } else if (displayField.label && displayField.label.resourceValue && !displayField.label.variables) {\n columnName = displayField.label.resourceValue;\n } else if (displayField.title && displayField.title.resourceValue && !displayField.title.variables) {\n columnName = displayField.title.resourceValue;\n }\n\n if (isRequiredSearchParameter && !listSpec.busListSpec.searchForm) {\n columnName = columnName + '*';\n }\n column.name = columnName;\n\n if (!!displayField.showChars) {\n let colNumber = columnNumber;\n if (listSpec.busListSpec.selection !== 'disabled') {\n // the 0th column is the checkbox selection\n colNumber = colNumber + 1;\n }\n if (!(personalization.columns && personalization.columns[colNumber] && personalization.columns[colNumber].width)) {\n this.setColumnWidthWithShowUpTo(column, displayField, listSpec);\n }\n }\n this.setFormatInfo(listSpec, column, displayField);\n this.setFilterInfo(listUrlInfo, listSpec, column, displayField);\n this.setColumnEditor(listUrlInfo, listSpec, column, displayField);\n this.setColumnAlignment(column, displayField);\n this.setColumnSpan(listSpec, column);\n\n return column;\n }\n\n private buildAggColumn(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, aggField: LMAggField, columnNumber: number): ListGridColumn {\n const bindId: string = 'fields.' + aggField.fieldId + '.value';\n\n const displayField: LMListDisplayField = {\n fieldId: aggField.fieldId,\n columnId: aggField.columnId,\n title: aggField.label,\n decSize: aggField.decSize,\n isTotal: aggField.isTotal,\n label: aggField.label,\n positiveOnly: aggField.positiveOnly,\n states: aggField.states,\n type: aggField.type,\n size: aggField.size,\n isKey: aggField.isKey,\n isStaticStateField: aggField.isStaticStateField,\n isUserDefinedStateField: aggField.isUserDefinedStateField,\n displayBlankWhenZero: aggField.displayBlankWhenZero,\n numberOfDecimals: aggField.numberOfDecimals,\n hasCurrencySymbol: aggField.hasCurrencySymbol,\n currencySymbolInfo: aggField.currencySymbolInfo,\n displayNegativeAmountAs: aggField.displayNegativeAmountAs,\n showPercentSymbol: aggField.showPercentSymbol,\n percentSymbolFirstLineAndTotalsOnly: aggField.percentSymbolFirstLineAndTotalsOnly,\n linkNavigation: aggField.linkNavigation,\n showAsPdf: aggField.showAsPdf,\n resourceId: aggField.resourceId,\n aggDrill: aggField.aggDrill,\n caption: aggField.caption,\n };\n\n const isRequiredSearchParameter = this.lmListSpecUtilService.isRequiredSearchParameter(listSpec.busListSpec, aggField.fieldId);\n const column: ListGridColumn = {\n id: aggField.columnId + '_' + columnNumber,\n field: bindId,\n sortable: columnNumber === 0,\n fieldId: aggField.fieldId,\n // adding to column object so we can have access to this in the formatter and editors\n displayField,\n isRequiredSearch: false,\n isAggField: true\n };\n\n let columnName = '';\n if (aggField.label && aggField.label.resourceValue && !aggField.label.variables) {\n columnName = aggField.label.resourceValue;\n }\n\n if (isRequiredSearchParameter && !listSpec.busListSpec.searchForm) {\n columnName = columnName + '*';\n }\n column.name = columnName;\n\n this.setFormatInfo(listSpec, column, displayField);\n this.setFilterInfo(listUrlInfo, listSpec, column, displayField);\n this.setColumnEditor(listUrlInfo, listSpec, column, displayField);\n this.setColumnAlignment(column, displayField);\n this.setColumnSpan(listSpec, column);\n\n return column;\n }\n\n private setFormatInfo(listSpec: LMListSpec, column: ListGridColumn, displayField: LMListDisplayField) {\n\n let selectedFormatter: SohoDataGridColumnFormatterFunction;\n const formatterType = displayField.type = displayField.type.toUpperCase();\n column.textOverflow = 'ellipsis';\n\n // need to add the icon data on the column object for SOHO to consume\n if (displayField.icon) {\n column.icon = displayField.icon;\n column.iconFile = displayField.iconUrl;\n }\n\n if (this.isTextAreaOrText(displayField)) {\n column.width = 300;\n\n if (!this.hasCardView(listSpec.busListSpec.displayFields)) {\n // for multi-line text that is NOT displayed with a cardview, display it\n // as a single line and show a tooltip to display the entire contents\n column.singleline = true;\n column.contentTooltip = true;\n }\n }\n\n // Need this to capture the column click on a \"more\" link\n if (displayField.isTreeColumn) {\n column.isActionable = true;\n }\n\n if (displayField.isUserDefinedStateField || displayField.isStaticStateField) {\n if (displayField.linkNavigation || displayField.hasHttpUrl || displayField.cubeDrill || displayField.aggDrill) {\n column.isActionable = true;\n }\n selectedFormatter = this.LMFieldFormatter;\n } else if (displayField.displayAsProgressBar) {\n selectedFormatter = this.LMProgressFormatter;\n column.tooltip = this.LMListCellTooltip;\n } else if (displayField.isProcessIndicator) {\n selectedFormatter = this.LMProcessIndicatorFormatter;\n column.tooltip = this.LMListCellTooltip;\n } else if (displayField.compactFormatByForm) {\n selectedFormatter = this.LMCodeBlockFormatter;\n // column.expandOnActivate = true;\n column.flatLayout = this.lmCompoundFieldService.flattenLayout(displayField.layout);\n column.tooltip = this.LMListCellTooltip;\n } else if (displayField.displayAsRating) {\n selectedFormatter = this.LMRatingFormatter;\n column.tooltip = this.LMListCellTooltip;\n column.width = 200;\n } else {\n switch (formatterType) {\n case AppConstants.CARDVIEW:\n selectedFormatter = this.LMCardViewFormatter;\n column.isActionable = true;\n column.width = displayField.rightColumn ? 520 : 360;\n column.tooltip = this.LMListCellTooltip;\n column.cssClass = 'lm-datagrid-card-container';\n break;\n\n case AppConstants.CHECKCONTROL:\n if (displayField.displayAsStar) {\n column.showEmpty = true;\n }\n selectedFormatter = this.LMFavoriteFormatter;\n break;\n case AppConstants.FORMBUTTON:\n case AppConstants.FORMREFERENCE:\n case AppConstants.LISTREFERENCE:\n case AppConstants.NAVIGATION:\n case AppConstants.SUBFORM:\n column.isActionable = true;\n selectedFormatter = this.LMButtonFormatter;\n break;\n case AppConstants.TEXTAREA:\n case AppConstants.TEXT:\n case AppConstants.CURRENCY:\n case AppConstants.YYYY:\n case AppConstants.YYYYMM:\n case AppConstants.MMDD:\n case AppConstants.YYYYMMDD:\n case AppConstants.TIMESTAMP:\n case AppConstants.TIME:\n case AppConstants.NUMERIC:\n case AppConstants.BCD:\n case AppConstants.PERCENT:\n case AppConstants.BOOLEAN:\n case AppConstants.BINARY:\n case AppConstants.ALPHAUPPER:\n case AppConstants.ALPHALOWER:\n case AppConstants.ALPHARIGHT:\n case AppConstants.FORMTEXT:\n if (displayField.linkNavigation || displayField.hasHttpUrl || displayField.cubeDrill || displayField.aggDrill) {\n column.isActionable = true;\n }\n selectedFormatter = (displayField.type === AppConstants.TEXTAREA || displayField.type === AppConstants.TEXT) && displayField.isProcessIndicator\n ? this.LMProcessIndicatorFormatter\n : this.LMFieldFormatter;\n break;\n default:\n selectedFormatter = this.LMFieldFormatter;\n break;\n }\n }\n\n column.formatter = selectedFormatter;\n }\n\n private setFilterInfo(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, column: ListGridColumn, displayField: LMListDisplayField) {\n const type = displayField.type.toUpperCase();\n\n if (displayField.filterable) {\n if (displayField.isStaticStateField) {\n column.filterType = 'multiselect';\n if (displayField.states !== undefined) {\n column.filterRowEditorOptions = this.lmFormatUtilService.fieldStatesToOptionsArray(displayField.states, true);\n if (column.filterRowEditorOptions[0].label === '') {\n column.filterRowEditorOptions[0].label = Soho.Locale.translate('ListStaticFieldFilterNotEntered');\n column.filterRowEditorOptions[0].value = 'Not Entered';\n }\n column.editorOptions = {\n showSelectAll: true,\n // onKeyDown: this.LMFilterDropdownKeydownFunction\n };\n if (!this.lmListUtilService.isAutoFilterEnabled()) {\n column.editorOptions.onKeyDown = this.LMFilterDropdownKeydownFunction;\n }\n }\n return;\n } else if (displayField.isUserDefinedStateField) {\n column.filterType = 'multiselect';\n column.filterRowEditorOptions = [ { label: ' ', value: ' ' } ];\n column.editorOptions = {\n showSelectAll: true,\n source: this.LMStateFieldSource,\n // onKeyDown: this.LMFilterDropdownKeydownFunction\n };\n if (!this.lmListUtilService.isAutoFilterEnabled()) {\n column.editorOptions.onKeyDown = this.LMFilterDropdownKeydownFunction;\n }\n return;\n }\n\n if (displayField.selectable && listSpec.listType !== 'select') {\n const selectListUrl = this.lmUrlUtilService.buildSelectListUrl(listUrlInfo, displayField.selectListInfo);\n if (!this.lmContextService.useNewSpecUrls()) {\n this.lmUrlInfoBuilderService.compareSpecUrls(listUrlInfo, displayField.bindId + '.selectListUrl', (displayField as any).selectListUrl, selectListUrl);\n }\n\n // todo spec-url-refactor, have to piggy back on displayfield for selectListUrl for some reason.\n // can't just put selectListUrl into clickArguments, seems to get overridden.\n\n if (displayField.scannable && this.lmContextService.insideInforGo()) {\n displayField.id = column.id;\n displayField.selectListUrl = selectListUrl;\n column.filterType = 'lookup';\n column.editorOptions = {\n id: displayField.id,\n editable: true,\n icon: 'icon-barcode',\n click: this.LMBarCodeClickFunction,\n clickArguments: {\n column: { displayField }\n }\n };\n } else {\n displayField.selectListUrl = selectListUrl;\n column.filterType = 'lookup';\n column.editorOptions = {\n editable: true,\n click: this.LMLookupClickFunction,\n clickArguments: {\n column: { displayField }\n }\n };\n }\n\n // Needs to go onto displayField since clickArguments is really just sending the column.displayField\n displayField.allowMultiSelections = this.allowMultipleFilterTerms(displayField);\n\n if (displayField.type === 'NUMERIC') {\n column.filterConditions = this.numericFilterConditions;\n if (displayField.allowMultiSelections) {\n (column as any).filterMaskOptions = this.getFilterMaskOptions(displayField);\n } else {\n column.maskOptions = this.getMaskOptions(displayField);\n }\n } else {\n column.filterConditions = this.alphaFilterConditions;\n }\n return;\n }\n\n if (displayField.lplFieldInfo) {\n column.filterType = 'lookup';\n column.editorOptions = {\n editable: true,\n click: this.LMFieldLookupClickFunction,\n clickArguments: {\n column: {\n displayField\n }\n }\n };\n\n if (displayField.type === 'NUMERIC') {\n column.filterConditions = this.numericFilterConditions;\n } else {\n column.filterConditions = this.alphaFilterConditions;\n }\n return;\n }\n\n if (displayField.compactFormatByForm) {\n displayField.id = column.id;\n column.filterConditions = this.codeBlockFilterConditions;\n column.filterType = 'lookup';\n column.editorOptions = {\n editable: false,\n icon: 'icon-launch',\n clearable: true,\n clear: this.LMFilterClearClickFunction,\n clearArguments: {\n column: {\n displayField\n }\n },\n click: this.LMFilterLookupClickFunction,\n clickArguments: {\n column: {\n displayField\n }\n }\n };\n return;\n }\n\n if (displayField.scannable && this.lmContextService.insideInforGo()) {\n displayField.id = column.id;\n column.filterType = 'lookup';\n column.editorOptions = {\n id: displayField.id,\n editable: true,\n icon: 'icon-barcode',\n click: this.LMBarCodeClickFunction,\n clickArguments: {\n column: { displayField }\n }\n };\n return;\n }\n\n // Are multiple search terms allowed to be entered into the filter cell\n displayField.allowMultiSelections = this.allowMultipleFilterTerms(displayField);\n\n switch (type) {\n case AppConstants.NUMERIC:\n column.filterType = 'integer';\n column.filterConditions = this.numericFilterConditions;\n this.setFilterMaskOptions(column, displayField);\n break;\n\n case AppConstants.BCD:\n column.filterType = 'decimal';\n column.filterConditions = this.numericFilterConditions;\n this.setFilterMaskOptions(column, displayField);\n break;\n\n case AppConstants.PERCENT:\n column.filterType = 'percent';\n column.filterConditions = this.numericFilterConditions;\n this.setFilterMaskOptions(column, displayField);\n break;\n\n case AppConstants.BOOLEAN:\n column.filterType = 'select';\n if (!this.lmListUtilService.isAutoFilterEnabled()) {\n column.editorOptions = {\n onKeyDown: this.LMFilterDropdownKeydownFunction\n };\n };\n column.options =\n [\n {\n label: Soho.Locale.translate('Yes'),\n value: true\n },\n {\n label: Soho.Locale.translate('No'),\n value: false\n }\n ];\n break;\n case AppConstants.YYYY:\n column.filterType = 'date';\n column.dateFormat = 'yyyy';\n column.editorOptions = {\n dateFormat: 'yyyy',\n showMonthYearPicker: true,\n hideDays: true\n };\n break;\n case AppConstants.TIMESTAMP:\n column.filterType = 'date';\n column.dateFormat = Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = {\n showTime: true,\n showMonthYearPicker: true,\n dateFormat: Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp\n };\n break;\n case AppConstants.YYYYMMDD:\n column.filterType = 'date';\n column.dateFormat = Soho.Locale.calendar().dateFormat.short;\n column.editorOptions = {\n dateFormat: Soho.Locale.calendar().dateFormat.short,\n showMonthYearPicker: true\n };\n break;\n case AppConstants.YYYYMM:\n column.filterType = 'date';\n column.dateFormat = Soho.Locale.calendar().dateFormat.year;\n column.editorOptions = {\n dateFormat: Soho.Locale.calendar().dateFormat.year,\n showMonthYearPicker: true,\n hideDays: true\n };\n break;\n case AppConstants.MMDD:\n column.filterType = 'date';\n column.dateFormat = Soho.Locale.calendar().dateFormat.month;\n column.editorOptions = {\n dateFormat: Soho.Locale.calendar().dateFormat.month\n };\n break;\n case AppConstants.TIME:\n column.filterType = 'time';\n column.editorOptions = {\n roundToInterval: false,\n timeFormat: Soho.Locale.calendar().dateFormat.timestamp\n };\n break;\n\n case AppConstants.ALPHALOWER:\n case AppConstants.ALPHAUPPER:\n case AppConstants.ALPHARIGHT:\n case AppConstants.TEXT:\n case AppConstants.TEXTAREA:\n column.filterType = 'text';\n let filterStr = '';\n if (listSpec.busListSpec.alphaDefaultFilter === 'startsWith') {\n filterStr = 'start-with';\n } else if (listSpec.busListSpec.alphaDefaultFilter === 'equals') {\n filterStr = 'equals';\n }\n if(filterStr !== '') {\n const filterDefault = this.alphaFilterConditions.map((filterType: string) => {\n if (filterType === filterStr) {\n return { value: filterStr, selected: true };\n }\n return filterType;\n });\n column.filterConditions = filterDefault as any;\n }\n break;\n case AppConstants.CURRENCY:\n case AppConstants.BINARY:\n default:\n column.filterType = 'text';\n break;\n }\n }\n }\n\n private setColumnEditor(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, column: ListGridColumn, displayField: LMListDisplayField) {\n const type = displayField.type.toUpperCase();\n\n if (!this.columnRequiresEditor(listSpec, displayField)) {\n return;\n }\n\n if (displayField.type !== AppConstants.CHECKCONTROL) {\n column.isEditable = this.LMIsEditable;\n }\n\n const minuteInterval = column.displayField.limitToMinuteIncrements || 1;\n\n if (displayField.isStaticStateField) {\n column.editor = Soho.Editors.Dropdown;\n column.options = this.lmFormatUtilService.fieldStatesToOptionsArray(displayField.states, false);\n } else if (displayField.isUserDefinedStateField) {\n column.editor = Soho.Editors.Dropdown;\n column.editorOptions = {\n editable: false,\n source: this.LMStateFieldSource\n };\n } else {\n switch (type) {\n case AppConstants.NUMERIC:\n case AppConstants.BCD:\n case AppConstants.PERCENT:\n column.editor = Soho.Editors.Input;\n column.maskOptions = column.maskOptions ? column.maskOptions : this.getMaskOptions(displayField);\n\n if (type === AppConstants.PERCENT) {\n column.serialize = this.LMPercentSerializer;\n } else if (type === AppConstants.BCD) {\n column.serialize = this.LMBcdSerializer;\n column.maskOptions = this.LMMaskOptionsFunction;\n }\n break;\n\n case AppConstants.YYYYMM:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMPeriodSerializer;\n break;\n\n case AppConstants.TIME:\n column.editor = Soho.Editors.Time;\n column.serialize = this.LMTimeSerializer;\n const timeFormat = column.displayField.limitToMinuteIncrements ? Soho.Locale.calendar().timeFormat : Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = { showDate: false, showTime: true, minuteInterval, secondInterval: 1, timeFormat };\n break;\n\n case AppConstants.TIMESTAMP:\n column.editor = Soho.Editors.Date;\n\n if (column.displayField.displayDateOnly) {\n column.serialize = this.LMDateSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.short;\n\n } else if (column.displayField.displayTimeOnly) {\n column.serialize = this.LMTimestampSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = { showDate: false, showTime: true, minuteInterval, dateFormat: Soho.Locale.calendar().dateFormat.time };\n\n } else if (column.displayField.displayDateAndHoursAndMinutes || column.displayField.limitToMinuteIncrements) {\n column.serialize = this.LMTimestampSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.datetime;\n column.editorOptions = { minuteInterval, showTime: true, showMonthYearPicker: true,\n dateFormat: Soho.Locale.calendar().dateFormat.datetime };\n } else {\n column.serialize = this.LMTimestampSerializer;\n column.dateShowFormat = Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp;\n column.editorOptions = { secondInterval: 1, minuteInterval, showTime: true, showMonthYearPicker: true,\n dateFormat: Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp };\n }\n break;\n\n case AppConstants.MMDD:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMAnniversarySerializer;\n break;\n\n case AppConstants.YYYY:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMYearSerializer;\n column.editorOptions = { showMonthYearPicker: true, hideDays: true, dateFormat: 'yyyy' };\n break;\n\n case AppConstants.YYYYMMDD:\n column.editor = Soho.Editors.Date;\n column.serialize = this.LMDateSerializer;\n break;\n\n case AppConstants.BOOLEAN:\n column.editor = Soho.Editors.Dropdown;\n column.serialize = this.LMBooleanSerializer;\n column.options =\n [\n {\n label: Soho.Locale.translate('Yes'),\n value: true\n },\n {\n label: Soho.Locale.translate('No'),\n value: false\n }\n ];\n break;\n\n case AppConstants.TEXT:\n if (this.hasCardView(listSpec.busListSpec.displayFields)) {\n column.editor = Soho.Editors.Textarea;\n } else {\n column.editor = Soho.Editors.Input;\n }\n break;\n\n case AppConstants.TEXTAREA:\n column.editor = Soho.Editors.Textarea;\n break;\n\n case AppConstants.CHECKCONTROL:\n if (column.displayField.validity) {\n column.isEditable = this.LMIsCheckControlEditable;\n }\n column.editor = (displayField.displayAsStar) ? Soho.Editors.Favorite : Soho.Editors.Checkbox;\n break;\n\n case 'CURRENCY':\n case 'ALPHAUPPER':\n case 'ALPHALOWER':\n case 'ALPHARIGHT':\n case 'BINARY':\n if (displayField.compactFormatByForm) {\n column.editorComponent = LMCodeBlockEditorComponent;\n column.serialize = this.LMCodeBlockSerializer;\n column.doNotEmptyCellWhenEditing = true;\n } else {\n column.editor = Soho.Editors.Input;\n if (displayField.size) {\n column.maxLength = displayField.size;\n }\n }\n column.uppercase = (type === 'ALPHAUPPER');\n break;\n\n default:\n if (displayField.compactFormatByForm) {\n column.editorComponent = LMCodeBlockEditorComponent;\n column.serialize = this.LMCodeBlockSerializer;\n column.doNotEmptyCellWhenEditing = true;\n } else {\n column.editor = Soho.Editors.Input;\n if (displayField.size) {\n column.maxLength = displayField.size;\n }\n }\n break;\n }\n\n if (displayField.selectable && listSpec.listType !== 'select') {\n const selectListUrl = this.lmUrlUtilService.buildSelectListUrl(listUrlInfo, displayField.selectListInfo);\n if (!this.lmContextService.useNewSpecUrls()) {\n this.lmUrlInfoBuilderService.compareSpecUrls(listUrlInfo, displayField.bindId + '.selectListUrl', (displayField as any).selectListUrl, selectListUrl);\n }\n\n // todo spec-url-refactor, have to piggy back on displayfield for selectListUrl for some reason.\n // can't just put selectListUrl into clickArguments, seems to get overridden.\n displayField.selectListUrl = selectListUrl;\n column.editor = Soho.Editors.Lookup;\n column.editorOptions = {\n editable: true,\n click: this.LMLookupClickFunction,\n clickArguments: {\n column: { displayField }\n }\n };\n }\n\n if (displayField.lplFieldInfo) {\n column.editor = Soho.Editors.Lookup;\n column.editorOptions = {\n editable: true,\n click: this.LMFieldLookupClickFunction,\n clickArguments: {\n column: {\n displayField\n }\n }\n };\n }\n\n if (displayField.scannable && this.lmContextService.insideInforGo()) {\n displayField.id = column.id;\n column.editor = Soho.Editors.Lookup;\n column.editorOptions = {\n id: displayField.id,\n editable: true,\n icon: 'icon-barcode',\n click: this.LMBarCodeClickFunction,\n clickArguments: {\n column: { displayField }\n }\n };\n }\n }\n }\n\n // DPB for easier testing this should return the alignment\n private setColumnAlignment(column: ListGridColumn, displayField: LMListDisplayField) {\n\n // does the display field have an override\n if (displayField.align) {\n column.align = displayField.align;\n return;\n }\n\n // special cases\n if (displayField.type === AppConstants.NUMERIC && (displayField.isSymbolicKey || displayField.isKey)) {\n column.align = AppConstants.ALIGN_LEFT;\n return;\n }\n\n if (displayField.displayAsProgressBar) {\n column.align = AppConstants.ALIGN_LEFT;\n return;\n }\n\n if (displayField.displayAsRating) {\n column.align = AppConstants.ALIGN_LEFT;\n return;\n }\n\n if (displayField.isStaticStateField || displayField.isUserDefinedStateField) {\n column.align = AppConstants.ALIGN_CENTER;\n return;\n }\n\n // default\n switch (displayField.type) {\n case AppConstants.BCD:\n case AppConstants.BOOLEAN:\n case AppConstants.CURRENCY:\n case AppConstants.PERCENT:\n case AppConstants.ALPHARIGHT:\n case AppConstants.NUMERIC:\n column.align = AppConstants.ALIGN_RIGHT;\n column.headerAlign = 'right';\n break;\n case AppConstants.CHECKCONTROL:\n case AppConstants.FORMBUTTON:\n case AppConstants.FORMREFERENCE:\n case AppConstants.LISTREFERENCE:\n case AppConstants.NAVIGATION:\n case AppConstants.SUBFORM:\n column.align = AppConstants.ALIGN_CENTER;\n break;\n default:\n column.align = AppConstants.ALIGN_LEFT;\n break;\n }\n }\n\n private isSortable(listSpec: LMListSpec, displayField: LMListDisplayField): boolean {\n if (listSpec.busListSpec.implementsTreeView) {\n return false;\n }\n\n if (displayField.sortOrderName !== undefined && !displayField.isTreeColumn) {\n return true;\n }\n\n if (this.lmListSpecUtilService.isColumnarView(listSpec)) {\n return true;\n }\n\n return false;\n }\n\n private columnRequiresEditor(listSpec: LMListSpec, displayField: LMListDisplayField): boolean {\n const type = displayField.type.toUpperCase();\n\n // helper lists are not editable\n if (listSpec.listType === 'helper') {\n return false;\n }\n\n // dashboard lists are not editable, but a checkcontrol requires an editor to handle the click event\n if (listSpec.listType === 'dashboard' && type !== AppConstants.CHECKCONTROL) {\n return false;\n }\n\n // these columns never require an editor\n if (displayField.isTreeColumn || type === 'SUBFORM' || type === 'FORMBUTTON' || displayField.isNotMutable || displayField.uiProtected) {\n return false;\n }\n\n // when list implements inlineCreate, require an editor on the editable fields\n // when column allowsUpdate it requires an editor\n return (listSpec.busListSpec.implementsInlineCreate || displayField.allowUpdate);\n }\n\n private setFilterMaskOptions(column: ListGridColumn, displayField: LMListDisplayField) {\n if (displayField.allowMultiSelections) {\n (column as any).filterMaskOptions = this.getFilterMaskOptions(displayField);\n column.filterType = 'text';\n } else if (displayField.type === AppConstants.BCD) {\n (column as any).filterMaskOptions = this.getMaskOptions(displayField);\n } else {\n column.maskOptions = this.getMaskOptions(displayField);\n }\n }\n\n private getDecimalLimit(allowDecimal: boolean, percentAdjustment: number, displayField: LMListDisplayField): number {\n\n if (allowDecimal) {\n if (displayField.numberOfDecimals || displayField.numberOfDecimals === 0) {\n // if the formField has the display # decimals syntax it will return this first.\n return displayField.numberOfDecimals;\n }\n\n return displayField.decSize - percentAdjustment;\n }\n\n return 0;\n }\n\n private getMaskOptions(displayField: LMListDisplayField): SohoMaskOptions {\n const type = displayField.type.toUpperCase();\n\n const percentAdjustment: number = (type === AppConstants.PERCENT) ? 2 : 0;\n const allowDecimal: boolean = (displayField.decSize !== undefined && displayField.decSize - percentAdjustment > 0);\n const decimalLimit: number = this.getDecimalLimit(allowDecimal, percentAdjustment, displayField);\n const integerLimit: number = (allowDecimal) ? displayField.size - decimalLimit : displayField.size;\n\n const maskOptions: SohoMaskOptions = {\n process: 'number',\n patternOptions: {\n allowDecimal,\n allowNegative: !displayField.positiveOnly,\n integerLimit,\n decimalLimit,\n allowLeadingZeros: true,\n allowThousandsSeparator: false,\n symbols: {\n decimal: Soho.Locale.numbers().decimal,\n negative: Soho.Locale.numbers().minusSign,\n thousands: Soho.Locale.numbers().group\n }\n }\n };\n\n return maskOptions;\n }\n\n private getFilterMaskOptions(displayField: LMListDisplayField): SohoMaskOptions {\n if (!this.lmContextService.useMultiSelectKeyField()) {\n return;\n }\n\n if (displayField.type !== AppConstants.BCD\n && displayField.type !== AppConstants.PERCENT\n && displayField.type !== AppConstants.NUMERIC) {\n return;\n }\n\n const percentAdjustment: number = (displayField.type === AppConstants.PERCENT) ? 2 : 0;\n const allowDecimal: boolean = (displayField.decSize !== undefined && displayField.decSize - percentAdjustment > 0);\n const decimalLimit: number = (allowDecimal) ? displayField.decSize - percentAdjustment : 0;\n const integerLimit: number = (allowDecimal) ? displayField.size - decimalLimit : displayField.size;\n const decimal = allowDecimal ? Soho.Locale.numbers().decimal : '';\n const negative = !!displayField.positiveOnly ? '' : Soho.Locale.numbers().minusSign;\n const thousands = decimal ? Soho.Locale.numbers().group : '';\n const anyDigit = '\\\\d';\n const space = ' ';\n\n const maskOptions: SohoMaskOptions = {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions,no-unused-vars\n pattern: function customMask(rawValue, options) {\n const match = new RegExp(`[${negative}${decimal}${thousands}${space}${AppConstants.MULTI_SEARCH_TERM_DELIMITER}${anyDigit}]`);\n return rawValue.split('').map(() => match);\n }\n };\n\n return maskOptions;\n }\n\n private allowMultipleFilterTerms(displayField: LMListDisplayField): boolean {\n if (!this.lmContextService.useMultiSelectKeyField()) {\n return false;\n }\n\n if (displayField.isKey) {\n return true;\n }\n\n return displayField.type === AppConstants.BCD\n || displayField.type === AppConstants.PERCENT\n || displayField.type === AppConstants.NUMERIC\n || displayField.type === AppConstants.ALPHALOWER\n || displayField.type === AppConstants.ALPHAUPPER\n || displayField.type === AppConstants.ALPHARIGHT;\n }\n\n private isTextAreaOrText(displayField: LMListDisplayField): boolean {\n return (displayField.type === AppConstants.TEXTAREA || displayField.type === AppConstants.TEXT);\n }\n\n private hasCardView(displayFields: LMListDisplayField[]): boolean {\n return displayFields.some(displayField => displayField.type.toUpperCase() === AppConstants.CARDVIEW);\n }\n\n private hasCodeBlock(displayFields: LMListDisplayField[]): boolean {\n return displayFields.some(displayField => displayField.compactFormatByForm);\n }\n\n private setColumnSpan(listSpec: LMListSpec, column: ListGridColumn) {\n if (column.isAggField || this.hasTotalDefined(listSpec.busListSpec.displayFields, listSpec)) {\n column.colspan = this.LMColSpanFormatter;\n }\n }\n\n private hasTotalDefined(displayFields: LMListDisplayField[], listSpec: LMListSpec): boolean {\n if (listSpec.busListSpec.suppressSubTotals) {\n return true;\n }\n\n return displayFields.some(df => df.isTotal || df.isRunningTotal || df.isPercentOfTotal);\n }\n\n private setColumnWidthWithShowUpTo(column: ListGridColumn, displayField: LMListDisplayField, listSpec: LMListSpec) {\n const columnPadding = 10;\n const pixelsPerChar = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout ? 5 : 6;\n const columnSizing = (listSpec.busListSpec.horizontalScrolling) ? 'both' : 'data';\n\n let prefWidth = 10;\n let columnHeaderWidth = 0;\n let totalFieldSize = displayField.showChars;\n\n if (column.name) {\n columnHeaderWidth = (pixelsPerChar * column.name.length) + columnPadding;\n }\n\n switch (displayField.type) {\n case 'NUMERIC':\n case 'DOUBLE':\n case 'DECVAR':\n case 'YYYY':\n prefWidth += pixelsPerChar * totalFieldSize;\n break;\n\n case 'PERCENT':\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '%'.length);\n break;\n\n case 'YYYYMMDD':\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '//'.length);\n break;\n\n case 'YYYYMM':\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '/'.length);\n break;\n\n case 'TIME':\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '::AM'.length);\n break;\n\n case 'TIMESTAMP':\n if (displayField.displayHoursAndMinutesOnly) {\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * ':'.length);\n } else if (displayField.displayDateOnly) {\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '//'.length);\n } else if (displayField.displayTimeOnly) {\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '::AM'.length);\n } else {\n prefWidth += (pixelsPerChar * totalFieldSize) + (pixelsPerChar * '::AM'.length);\n }\n break;\n\n case 'BOOLEAN':\n let optionValueLength = 0;\n if (column.options) {\n for (const option of column.options) {\n optionValueLength = (option.label !== undefined && option.label.length > optionValueLength)\n ? option.label.length : optionValueLength;\n }\n }\n\n totalFieldSize = (optionValueLength === 0) ? totalFieldSize : optionValueLength;\n prefWidth += (pixelsPerChar * totalFieldSize) + 20;\n break;\n\n case 'TEXT':\n case 'TEXTAREA':\n totalFieldSize = 50;\n prefWidth += pixelsPerChar * totalFieldSize;\n break;\n\n default: // alpha and others\n prefWidth += pixelsPerChar * totalFieldSize;\n break;\n }\n\n prefWidth = Math.min(200, prefWidth);\n column.width = (columnSizing === 'both') ? Math.max(prefWidth, columnHeaderWidth) : prefWidth;\n }\n\n // landmark formatters\n LMButtonFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmButtonFormatter(this.lmFormatterService, this.lmFormatUtilService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMCardViewFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmCardViewFormatter.format(this.lmFormatterService, this.lmListCardService, this.lmUrlUtilService, row, cell, value, columnDef, dataView, dataGrid, 'lm-datagrid-card-cell-container');\n\n LMCodeBlockFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmCodeBlockFormatter(this.lmFormatterService, this.lmFormatUtilService, this.lmCommonUtilService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMFavoriteFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmFavoriteFormatter(this.lmFormatterService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMProgressFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmProgressFormatter(this.lmFormatterService, this.lmFormatUtilService, this.lmCommonUtilService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMTreeFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmTreeFormatter(this.lmFormatterService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMCheckBoxFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmCheckBoxFormatter(this.lmFormatterService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMColSpanFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): number =>\n colSpan(this.lmFormatterService, this.lmConditionUtilService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMListCellTooltip = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmListCellTooltip(this.lmFormatterService, this.lmFormatUtilService, this.lmProcessIndicatorService, this.lmProcessIndicatorTooltipPipe,\n this.lmListCardService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMFieldFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmFieldFormatter(this.lmFormatterService, this.lmFormatUtilService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMRatingFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string =>\n lmRatingFormatter(this.lmFormatterService, this.lmFormatUtilService, row, cell, value, columnDef, dataView, dataGrid)\n\n LMProcessIndicatorFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView): string =>\n lmProcessIndicatorFormatter.format(this.lmProcessIndicatorService, row, cell, value, columnDef, dataView);\n\n // landmark editors\n LMIsCheckControlEditable: LMListGridColumnIsEditable = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: any, dataGrid: SohoDataGridStatic): boolean =>\n isCheckControlEditable(this.lmEditorService, row, cell, value, columnDef, dataView, dataGrid);\n\n LMIsEditable = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView): boolean =>\n isEditable(this.lmFormatterService, this.lmEditorService, this.lmActionService, columnDef, dataView);\n\n LMStateFieldSource = (response: any, searchTerm: any, sourceArguments: any) =>\n lmStateFieldSource(this.lmEditorService, this.lmFieldUtilService, this.lmFormatUtilService, this.lmContextService, response, searchTerm, sourceArguments);\n\n LMBarCodeClickFunction = (event: any, lookup: SohoLookupStatic, clickArguments: any) =>\n lmBarCodeClickFunction(this.lmFormatUtilService, event, lookup, clickArguments);\n\n LMLookupClickFunction = (event: any, lookup: SohoLookupStatic, clickArguments: any) =>\n lmLookupClickFunction(this.lmFormatUtilService, event, lookup, clickArguments);\n\n LMFieldLookupClickFunction = (event: any, lookup: SohoLookupStatic, clickArguments: any) =>\n lmFieldLookupClickFunction(event, lookup, clickArguments);\n\n LMMaskOptionsFunction = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView): SohoMaskOptions =>\n lmMaskOptionsFunction(this.lmFormatterService, row, cell, value, columnDef, dataView);\n\n // landmark filters\n LMFilterLookupClickFunction = (event: any, filterLookup: SohoLookupStatic, clickArguments: any) =>\n lmFilterLookupClickFunction(event, filterLookup, clickArguments);\n\n LMFilterClearClickFunction = (event: any, filterLookup: SohoLookupStatic, clearArguments: any) =>\n lmFilterClearClickFunction(event, filterLookup, clearArguments);\n\n LMFilterDropdownKeydownFunction = (event: JQuery.Event) =>\n lmFilterDropdownKeydownFunction(event);\n\n // landmark serializers\n LMBcdSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmBcdSerializer(this.lmFormatterService, this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView);\n\n LMBooleanSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): boolean =>\n lmBooleanSerializer(this.lmFormatterService, this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView);\n\n LMCodeBlockSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmCodeBlockSerializer(this.lmFormatUtilService, this.lmCompoundFieldService, value, oldValue, columnDef, row, cell, dataView);\n\n LMPercentSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmPercentSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView);\n\n // do we really need all these for the data nad time fields? also lets give them better names\n LMYearSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYY);\n\n LMPeriodSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYYMM);\n\n LMAnniversarySerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.MMDD);\n\n LMDateSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.YYYYMMDD);\n\n LMTimestampSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.TIMESTAMP);\n\n LMTimeSerializer = (value: string, oldValue: string, columnDef: ListGridColumn, row: number, cell: number, dataView: any): string =>\n lmDateTimeSerializer(this.lmFormatUtilService, value, oldValue, columnDef, row, cell, dataView, AppConstants.TIME);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUrlUtilService, NameValueMap } from '@services/utils/lm-url-util.service';\nimport { HttpParamEncoderService } from '@services/utils/http.param.encoder.service';\nimport { Observable, Observer, Subject, throwError, timer } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { LMContextService } from '@services/lm-context.service';\n\n@Injectable()\nexport class LMListGridPagingService {\n\n constructor(\n private http: HttpClient,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService) {\n }\n\n /**\n * Retrieves an initial page of data for both root lists and related lists.\n * todo: need a type for the result of a paging operation\n * @param url - The url used to retrieve the initial set of records. Usually LMListSpec.initialDataUrl\n * @param pageSize - The page size to updated in the url\n * @param postContent - any content that needs to be posted - fromDataView when `selecting` for example.\n * @param isManualLoad - indicates to return the dataViewSet without getting the first page of records.\n * @returns return the json object containing the result.\n * @deprecated use initialPageFiltered instead.\n */\n initialPage(url: string, pageSize: number, postContent?: any, columnarOptions?: LMColumnarOptions, isManualLoad?: boolean): Observable {\n const urlParams: LMUrlParams = { pagesize: pageSize };\n if (columnarOptions && columnarOptions.selectedDimension) {\n urlParams['sortOrderName'] = columnarOptions.selectedDimension;\n urlParams['isAscending'] = columnarOptions.isAscending;\n }\n if (isManualLoad) {\n urlParams['isManualLoad'] = true;\n }\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n return this.page(url, undefined, postContent);\n }\n\n initialPageFiltered(url: string, filterCriteria: Array, pageSize: number, postContent?: any, isManualLoad?: boolean): Observable {\n url = this.lmUrlUtilService.updateUrlParams(url, { pagesize: pageSize });\n filterCriteria = filterCriteria && this.ignoreStickyOperator(filterCriteria);\n if (filterCriteria && filterCriteria.length > 0) {\n url += '&' + this.buildFilterCriteriaQueryString(filterCriteria);\n }\n if (isManualLoad) {\n const urlParams: LMUrlParams = { isManualLoad: true };\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n }\n return this.page(url, undefined, postContent);\n }\n\n /**\n * Get sorted dataViewSet given a sortOrderName and direction.\n * @param dataViewSet - The dataViewSet you want to sort\n * @param sortOrderName - The sortOrderName to sort by\n * @param sortAscending - Whether to sort ascending or descending\n * @param postContent - any relavent post content. SelectListData for example.\n * @returns\n */\n sortPage(\n url: string,\n filterCriteria: Array,\n sortOrder: LMListSortOrder,\n pageSize: number,\n postContent?: any,\n cubeOptions?: LMCubeUrlParams,\n selectRequestData?: SelectRequestData\n ): Observable {\n url = this.lmUrlUtilService.updateUrlParams(url, {\n pageop: 'sort',\n pagesize: pageSize,\n sortOrderName: sortOrder.sortOrderName,\n isAscending: sortOrder.isAscending\n });\n filterCriteria = filterCriteria && this.ignoreStickyOperator(filterCriteria);\n if (filterCriteria && filterCriteria.length > 0) {\n url += '&' + this.buildFilterCriteriaQueryString(filterCriteria);\n }\n url = (cubeOptions) ? url + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : url;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n /**\n *\n */\n filterPage(url: string, filterCriteria: Array, pageSize: number, postContent?: any, sortOrderCriteria?: LMListSortOrder, cubeOptions?: LMCubeUrlParams,\n columnarOptions?: LMColumnarOptions): Observable {\n const urlParams: LMUrlParams = { pagesize: pageSize, pageop: 'filter' };\n if (sortOrderCriteria) {\n urlParams['sortOrderName'] = sortOrderCriteria.sortOrderName;\n urlParams['isAscending'] = sortOrderCriteria.isAscending;\n }\n if (columnarOptions && columnarOptions.selectedDimension) {\n urlParams['sortOrderName'] = columnarOptions.selectedDimension;\n urlParams['isAscending'] = columnarOptions.isAscending;\n }\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n url = (cubeOptions) ? url + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : url;\n const requestParams = this.buildFilterCriteriaQueryStringMap(this.ignoreStickyOperator(filterCriteria));\n return this.page(url, requestParams, postContent);\n }\n\n reloadPage(dataViewSet: LMDataViewSet, newPageSize: number, postContent?: any, cubeOptions?: LMCubeUrlParams, aggregation?: string, selectRequestData?: SelectRequestData): Observable {\n let url = this.lmUrlUtilService.updateUrlParams(dataViewSet.pagingUrls.reloadPageUrl, { pagesize: newPageSize });\n url = (cubeOptions) ? url + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : url;\n url = (aggregation) ? this.lmUrlUtilService.appendToQueryString(url, 'aggregation=' + aggregation) : url;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n reloadPage2(url: string, postContent?: any): Observable {\n return this.page(url, undefined, postContent);\n }\n\n /**\n *\n * @param dataViewSet\n * @param newPageSize\n * @returns\n */\n firstPage(dataViewSet: LMDataViewSet, newPageSize: number, postContent?: any, cubeOptions?: LMCubeUrlParams, selectRequestData?: SelectRequestData): Observable {\n let url = this.lmUrlUtilService.updateUrlParams(dataViewSet.pagingUrls.firstPageUrl, { pagesize: newPageSize });\n url = (cubeOptions) ? url + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : url;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n /**\n *\n * @param dataViewSet\n * @returns\n */\n lastPage(dataViewSet: LMDataViewSet, postContent?: any, cubeOptions?: LMCubeUrlParams, selectRequestData?: SelectRequestData): Observable {\n let url = (cubeOptions) ? dataViewSet.pagingUrls.lastPageUrl + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : dataViewSet.pagingUrls.lastPageUrl;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n /**\n *\n * @param dataViewSet\n * @returns\n */\n nextPage(dataViewSet: LMDataViewSet, postContent?: any, cubeOptions?: LMCubeUrlParams, selectRequestData?: SelectRequestData): Observable {\n let url = (cubeOptions) ? dataViewSet.pagingUrls.nextPageUrl + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : dataViewSet.pagingUrls.nextPageUrl;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n /**\n *\n * @param dataViewSet\n * @returns\n */\n previousPage(dataViewSet: LMDataViewSet, postContent?: any, cubeOptions?: LMCubeUrlParams, selectRequestData?: SelectRequestData): Observable {\n let url = (cubeOptions) ? dataViewSet.pagingUrls.previousPageUrl + '&' + this.lmUrlUtilService.objectToCubeQueryString(cubeOptions)\n : dataViewSet.pagingUrls.previousPageUrl;\n if (selectRequestData?.onSearchForm){\n url = this.lmUrlUtilService.addParamToUrl(url, 'searchform', 'true');\n }\n return this.page(url, undefined, postContent);\n }\n\n private page(url: string, requestParams?: any, postContent?: any): Observable {\n // console.log('Paging: ' + url.substring(0, url.indexOf('?')));\n if (this.lmContextService.isUiPagingRequestWaitTimeEnabled) {\n return new Observable(observer => {\n const cancelSubject$ = new Subject();\n cancelSubject$.subscribe(cancelled => {\n // listening to see if lm-list.component or one of the list implementations (grid. tree, etc) cancels the request\n observer.next({ status: 'CANCELED' });\n observer.complete();\n });\n\n const wait = this.lmContextService.uiPagingRequestWaitTime;\n const cancellableNotifier = new LMCancellableNotifier(observer, cancelSubject$, wait);\n cancellableNotifier.start();\n // todo: need to refactor and use pipe+flatMap here to be able to handle the throwError in the inner observable\n this.makeCancellableHttpCall(cancelSubject$, url, requestParams, postContent).subscribe((response: LMListPagingResponse) => {\n cancellableNotifier.finish();\n observer.next(response);\n observer.complete();\n });\n });\n } else {\n return this.makeHttpCall(url, requestParams, postContent);\n }\n }\n\n private ignoreStickyOperator(filterCriteria: Array): Array {\n return filterCriteria?.filter( criteria => criteria?.operator === 'isEmpty' || criteria?.operator === 'isNotEmpty' || criteria.value !== '' );\n }\n\n private makeHttpCall(url: string, requestParams?: any, postContent?: any): Observable {\n // Filter parameters are added to HttpParams. If the filter string is appended to the url\n // it does not remain utf-8 encoded when it reaches the server.\n let params = new HttpParams({ encoder: new HttpParamEncoderService() });\n if (requestParams) {\n Object.keys(requestParams).forEach((key: string) => params = params.set(key, requestParams[key]));\n }\n if (postContent !== undefined) {\n return > this.http.post(url, postContent, { params }).pipe(catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n } else {\n return > this.http.get(url, { params }).pipe(catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n }\n\n private makeCancellableHttpCall(cancelSubject$: Subject, url: string, requestParams?: any, postContent?: any): Observable {\n // Filter parameters are added to HttpParams. If the filter string is appended to the url\n // it does not remain utf-8 encoded when it reaches the server.\n let params = new HttpParams({ encoder: new HttpParamEncoderService() });\n if (requestParams) {\n Object.keys(requestParams).forEach((key: string) => params = params.set(key, requestParams[key]));\n }\n if (postContent !== undefined) {\n return > this.http.post(url, postContent, { params }).pipe(takeUntil(cancelSubject$), catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n } else {\n return > this.http.get(url, { params }).pipe(takeUntil(cancelSubject$), catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n }\n\n private buildFilterCriteriaQueryString(filterCriteria: Array): string {\n // set filter criteria on the url params\n if (filterCriteria) {\n const filterParamString = this.lmUrlUtilService.filterFieldCriteriaToUrlParams(filterCriteria, 'fc');\n if (filterParamString) {\n return filterParamString;\n }\n }\n return '';\n }\n\n private buildFilterCriteriaQueryStringMap(filterCriteria: Array): any {\n // set filter criteria on the url params\n let filterParams = {};\n if (filterCriteria) {\n const filterParamMap = this.lmUrlUtilService.filterFieldCriteriaToNameValueMap(filterCriteria, 'fc');\n if (filterParamMap) {\n filterParamMap.forEach((f: NameValueMap) => {\n filterParams = { ...filterParams, ...f };\n });\n }\n }\n return filterParams;\n }\n}\n\nexport class LMCancellableNotifier {\n private clock: Observable;\n private finished = false;\n private observer: Observer;\n private cancelSubject$: Subject;\n private interval: number;\n\n constructor(observer: Observer, cancelSubject$: Subject, interval: number) {\n this.observer = observer;\n this.cancelSubject$ = cancelSubject$;\n this.interval = interval;\n }\n\n public start() {\n this.observer.next({ status: 'STARTED', cancelablePagingNotifier: this.cancelSubject$ });\n this.setTimer();\n }\n\n public finish() {\n this.finished = true;\n }\n\n private setTimer() {\n this.clock = timer(this.interval);\n this.clock.subscribe(x => {\n if (this.finished) {\n return;\n }\n\n this.observer.next({ status: 'WAITING' });\n this.setTimer();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SohoDataGridComponent } from 'ids-enterprise-ng';\n\n@Injectable()\nexport class LMListGridUtilService {\n\n /**\n * Return the index on the current page of the selected row. If multiple\n * rows are selected return the first row selected.\n * @param sohoDataGridComponent Datagrid used to find the selected row.\n * @param unselectAllRows If a row is selected then unselected all rows before returning it.\n * @returns The selectedIndex on the current page or -1 if no row is selected\n */\n getSelectedIndex(sohoDataGridComponent: SohoDataGridComponent, unselectAllRows?: boolean): number {\n let selectedRowIndex = -1;\n if (this.hasSelectedRow(sohoDataGridComponent.getSelectedRows())) {\n selectedRowIndex = sohoDataGridComponent.getSelectedRows()[0].idx;\n if (unselectAllRows) {\n sohoDataGridComponent.unSelectAllRows();\n }\n }\n return selectedRowIndex;\n }\n\n /**\n * Returns whether there is a valid selected row or not. This means that\n * the SohoDataGridSelectedRow[0] is defined and has an idx greater than -1\n * @param selectedRows The array of selected rows retrieved from the sohoDataGrid\n * @returns\n */\n hasSelectedRow(selectedRows: SohoDataGridSelectedRow[]): boolean {\n if (!selectedRows || selectedRows.length === 0 || selectedRows[ 0 ].idx === -1) {\n return false;\n }\n return true;\n }\n\n /**\n * Sets the selected row to the passed in selectedRowIndex. Return true if selection was\n * make else return false.\n * @param sohoDataGridComponent The datagrid to select the row for.\n * @param selectedRowIndex The row index to select on the datagrid\n * @returns true if selection happend, otherwise false.\n */\n selectRow(sohoDataGridComponent: SohoDataGridComponent, selectedRowIndex: number): boolean {\n if (selectedRowIndex >= 0) {\n sohoDataGridComponent.selectRow(selectedRowIndex);\n return true;\n }\n return false;\n }\n\n unSelectAllRows(sohoDataGridComponent: SohoDataGridComponent): void {\n if (this.hasSelectedRow(sohoDataGridComponent.getSelectedRows())) {\n sohoDataGridComponent.unSelectAllRows();\n }\n }\n\n deactivateRow(sohoDataGridComponent: SohoDataGridComponent): void {\n if (this.hasActivatedRow(sohoDataGridComponent.activatedRow())) {\n sohoDataGridComponent.deactivateRow();\n }\n }\n\n getActivatedRow(sohoDataGridComponent: SohoDataGridComponent, deactivateRow = false): number {\n let activatedRowIndex = -1;\n const activatedRow = sohoDataGridComponent.activatedRow();\n if (this.hasActivatedRow(activatedRow)) {\n if (activatedRow instanceof Array) {\n activatedRowIndex = activatedRow[ 0 ].row;\n } else {\n activatedRowIndex = activatedRow.row;\n }\n\n if (deactivateRow) {\n sohoDataGridComponent.deactivateRow();\n }\n }\n return activatedRowIndex;\n }\n\n hasActivatedRow(activatedRow: any) {\n if (!activatedRow) {\n return false;\n }\n\n if (activatedRow instanceof Array) {\n if (activatedRow.length === 0 || activatedRow[ 0 ].row === -1) {\n return false;\n }\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { lmCardViewFormatter } from '@list/formatters/lm-card-view.formatter';\nimport { LMListCardService } from './lm-list-card.service';\nimport { LMListGridPagingService } from './lm-list-grid-paging.service';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMContextService } from '@services/index';\nimport { Subject } from 'rxjs';\nimport { LMListEventService } from './lm-list-event.service';\n\n@Injectable()\nexport class LMListHierarchyService {\n\n private index: number = null;\n private flatDataViewArray: Array = [];\n private centeredIndex = null;\n private implementsCancelablePaging = false;\n private cancelPagingNotifier$: Subject;\n public lmListEventService: LMListEventService;\n\n constructor(\n private lmListCardService: LMListCardService,\n private lmListGridPagingService: LMListGridPagingService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmContextService: LMContextService,\n ) {\n this.implementsCancelablePaging = this.lmContextService.isUiPagingRequestWaitTimeEnabled;\n }\n\n public handleCancellableRequest(): void {\n if (this.implementsCancelablePaging && this.cancelPagingNotifier$) {\n this.cancelPagingNotifier$.next(true);\n this.cancelPagingNotifier$.complete();\n this.cancelPagingNotifier$ = null;\n }\n }\n\n public handleCancelableResponse(response: LMListPagingResponse): boolean {\n if (this.implementsCancelablePaging && this.lmListEventService) {\n if (response.status === 'STARTED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'started', cancelablePagingNotifier: response.cancelablePagingNotifier });\n this.cancelPagingNotifier$ = response.cancelablePagingNotifier;\n return true;\n } else if (response.status === 'WAITING') {\n this.lmListEventService.cancelablePagingEvent({ state: 'waiting' });\n return true;\n } else if (response.status === 'CANCELED') {\n this.lmListEventService.cancelablePagingEvent({ state: 'canceled' });\n // this.lmBusyIndicatorService.hideBusyIndicator(this.sohoBusyIndicator);\n return true;\n } else {\n this.cancelPagingNotifier$ = null;\n this.lmListEventService.cancelablePagingEvent({ state: 'finished' });\n return false;\n }\n } else {\n return false;\n }\n }\n\n public getFlatDataViewArray(): Array {\n return this.flatDataViewArray;\n }\n\n public getCenteredNodeIndex(): number {\n return this.centeredIndex;\n }\n\n public async loadData(\n listSpec: LMListSpec,\n data: Array,\n legendKey: string,\n centeredNode?: LMDataView,\n loadChildren?: boolean,\n filter?: boolean\n ): Promise>> {\n if (centeredNode === undefined) {\n return;\n }\n\n // New page each time data is loaded, reset indexes and flat data view array\n this.reset();\n\n const hierarchyData = {\n ancestorPath: null,\n centeredNode: null,\n children: undefined\n };\n\n // Get ancestors\n if (centeredNode !== null && centeredNode.positionToUrl && !filter) {\n hierarchyData.ancestorPath = await this.getData(centeredNode.positionToUrl, listSpec, legendKey, true);\n }\n\n // Set center node after ancestors, ensures ids are in right order\n if (centeredNode !== null && !filter) {\n hierarchyData.centeredNode = Object.assign({}, centeredNode, this.getSohoStackedHierarchyData(listSpec, centeredNode));\n this.centeredIndex = this.index;\n\n hierarchyData['menu'] = {\n details: this.createDetailFieldsArray(listSpec, centeredNode),\n actions: []\n };\n }\n\n // Get children\n if (loadChildren && centeredNode.childrenUrl && !filter) {\n\n // todo: ppatton khollenbeck use listSpec.childrenUrl and listSpec.centeredUrl url templates\n // todo: how to deal with fromDataView here?\n // const url = compiledUrlTemplate.expand({ resourceId: (this.fromDataView) ? this.fromDataView.resourceId : undefined});\n // const compiledUrlTemplate: any = urlTemplate.parse(listSpec.childrenUrl);\n // const childrenUrl = compiledUrlTemplate.expand({ resourceId: centeredNode.resourceId });\n\n const childrenUrl = centeredNode.childrenUrl;\n hierarchyData.children = await this.getData(childrenUrl, listSpec, legendKey);\n } else {\n hierarchyData.children = this.formatDataForTemplate(listSpec, data, legendKey);\n }\n\n if (legendKey && (hierarchyData.centeredNode && hierarchyData.centeredNode.fields)) {\n hierarchyData.centeredNode[legendKey] = hierarchyData.centeredNode.fields[legendKey].value.toString();\n }\n\n return filter && hierarchyData.children.length === 0 ? [] : [ hierarchyData ];\n }\n\n private async getData(\n url: string,\n listSpec: LMListSpec,\n legendKey: string,\n returnAncestors?: boolean\n ): Promise> {\n return new Promise((resolve, reject) => {\n this.handleCancellableRequest();\n const pageSize = listSpec.pageSize ? listSpec.pageSize : 20;\n this.lmListGridPagingService\n .initialPageFiltered(url, undefined, pageSize, undefined)\n .subscribe(\n (listPagingResponse: LMListPagingResponse) => {\n\n if (this.handleCancelableResponse(listPagingResponse)) {\n return;\n }\n\n const data = returnAncestors ? this.getAncestorPath(listPagingResponse, legendKey) : listPagingResponse.dataViewSet.data;\n resolve(this.formatDataForTemplate(listSpec, data, legendKey));\n },\n error => {\n reject(error);\n });\n });\n }\n\n /**\n * Strips out special characters for prefix\n * @param str\n */\n public getPrefix(str: string): string {\n const id = str;\n const excludeChars = [\n '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '=',\n '+', '\\\\', '{', '}', ']', '[', '<', '>', '?', '/', '.',\n ',', '\"', ':', ';'\n ];\n\n const prefix = [];\n id.split('').forEach((char) => {\n if (!excludeChars.includes(char)) {\n prefix.push(char);\n }\n });\n\n return prefix.join('');\n }\n\n private formatDataForTemplate(\n listSpec: LMListSpec,\n dataViews: Array,\n legendKey: string\n ): Array {\n const updatedDataViews = dataViews.map((data: LMDataView) => {\n const templateData = this.getSohoStackedHierarchyData(listSpec, data);\n\n if (legendKey && data.fields) {\n templateData[legendKey] = data.fields[legendKey].value.toString();\n }\n\n return templateData;\n });\n\n return updatedDataViews;\n }\n\n private getAncestorPath(listPagingResponse: LMListPagingResponse, legendKey: string): Array {\n const ancestorPathArray = listPagingResponse.dataViewSet.positionToDataView;\n\n // Drop the last item. This is a duplicate of the centered node\n ancestorPathArray.pop();\n\n const updatedArray = ancestorPathArray.map((data) => {\n if (legendKey && data.fields) {\n data[legendKey] = data.fields[legendKey].value.toString();\n }\n\n return data;\n });\n\n return updatedArray;\n }\n\n private getSohoStackedHierarchyData(listSpec: LMListSpec, dataView: LMDataView): LMHierarchyDataView {\n const displayField: LMListDisplayField = listSpec.busListSpec.orgChartCardView;\n const cardInfo = lmCardViewFormatter.getCardTemplateData(this.lmListCardService, displayField, dataView);\n const columns = cardInfo.columns;\n const firstColumn = columns[0];\n\n /**\n * Hierarchy card only displays the left(image), and middle column\n * Hierarchy card only shows up to three rows in the middle column\n * Hierarchy card does not show the right column\n * Extra information is displayed in detail fields\n */\n const rowOne = firstColumn.column[0];\n const rowTwo = firstColumn.column[1];\n const rowThree = firstColumn.column[2];\n\n // Push all dataViews to single array\n this.flatDataViewArray.push(dataView);\n\n return {\n id: this.getId(),\n resourceId: dataView.resourceId,\n imageUrl: cardInfo.imageUrl,\n imageTitle: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ImageAltText'), firstColumn && rowOne ? rowOne.displayValue : ''),\n randomBackground: displayField.leftColumn ? displayField.leftColumn.isRandomBackground : null,\n missingImage: cardInfo.isMissingImage,\n foregroundText: cardInfo.imageForegroundText,\n subheading: firstColumn && rowTwo ? rowTwo.displayValue : '',\n micro: firstColumn && rowThree ? rowThree.displayValue : '',\n title: firstColumn && rowOne ? rowOne.displayValue : '',\n isLeaf: dataView.isLeaf,\n bgClass: cardInfo.bgColorClass,\n doesNotExist: dataView.doesNotExist,\n menu: {\n details: this.createDetailFieldsArray(listSpec, dataView),\n actions: []\n }\n };\n }\n\n private createDetailFieldsArray(listSpec: LMListSpec, dataView: LMDataView): Array {\n const detailFields = [];\n\n if (listSpec.busListSpec.detailFields) {\n listSpec.busListSpec.detailFields.forEach((field) => {\n const detailField: LMHierarchyDetailField = {};\n\n // Ignore image field\n if (field.displayAsImage) {\n return;\n }\n\n // dataView.fields[field.fieldId]\n if (field.label) {\n detailField.key = this.lmFormatUtilService.formatMessageRule(field.label, dataView);\n } else {\n detailField.key = '';\n }\n\n // if label is not defined set they value as the label\n if ((dataView && dataView.fields) && dataView.fields[field.fieldId]) {\n detailField.value = this.lmFormatUtilService.toDisplayValue(dataView.fields[field.fieldId].value, field.type);\n } else {\n detailField.value = '';\n }\n\n // Skip if both label and value are empty\n if (field.label === undefined && detailField.value.length === 0) {\n return;\n }\n\n detailFields.push(detailField);\n });\n }\n\n return detailFields;\n }\n\n private reset(): void {\n this.flatDataViewArray = [];\n this.centeredIndex = null;\n this.index = null;\n }\n\n private getId(): string {\n if (this.index === null) {\n this.index = 0;\n } else {\n this.index++;\n }\n\n return this.index.toString();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMContextService } from '@services/index';\n\n// todo pwpatton make into an enumerated string once we get typescript 2.4\n// https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#string-enums\n\n/**\n * Use this util service to compute things based off of a listSpec.\n */\n@Injectable()\nexport class LMListSpecUtilService {\n\n constructor(\n private lmContextService: LMContextService\n ) {}\n\n public getSelectionMode(listSpec: LMListSpec, inSelectListEditMode = false, allowMultiSelections = false): SohoDataGridSelectable {\n if (listSpec.listType === 'select') {\n if (this.lmContextService.useSingleSelectList()) {\n if (inSelectListEditMode) {\n return (listSpec.busListSpec.selection === 'multiple') ? 'mixed' : 'single';\n } else {\n return (allowMultiSelections) ? 'mixed' : 'single';\n }\n }\n }\n\n if (listSpec.showAsMingleWidget) {\n return 'single';\n }\n\n if (listSpec.busListSpec.implementsCubeView) {\n return 'siblings';\n }\n\n if (listSpec.busListSpec.selection === 'disabled') {\n return false; // selection disabled\n }\n\n if (listSpec.busListSpec.selection === 'multiple') {\n return 'mixed';\n }\n\n return 'single';\n }\n\n /**\n * Consistent way to get a lists context menu id to use to pass\n * into the datagrids menuId option.\n */\n public getContextMenuId(listSpec: LMListSpec) {\n return listSpec.busListSpec.id + '_ContextMenu';\n }\n\n public hasDetailSections(listSpec: LMListSpec): boolean {\n if (listSpec && listSpec.busListSpec) {\n return (listSpec.busListSpec.detailSections !== undefined);\n }\n return false;\n }\n\n public hasDetailFields(listSpec: LMListSpec): boolean {\n return !!(listSpec?.busListSpec?.detailFields);\n }\n\n public hasFilterList(detailSection: LMBusDetailSection): boolean {\n return !!detailSection.filterListSpecs;\n }\n\n public isFilterList(listSpec: LMListSpec): boolean {\n return listSpec.listType === 'filterlist';\n }\n\n public isCubeView(listSpec: LMListSpec): boolean {\n return listSpec && listSpec.busListSpec.implementsCubeView;\n }\n\n public isColumnarView(listSpec: LMListSpec): boolean {\n return listSpec && listSpec.busListSpec.implementsColumnarView;\n }\n\n public isTreeView(listSpec: LMListSpec): boolean {\n return listSpec && listSpec.busListSpec.implementsTreeView;\n }\n\n public isAudit(listSpec: LMListSpec): boolean {\n return listSpec.busListSpec.isAudit;\n }\n\n public implementsAuditCompare(listSpec: LMListSpec): boolean {\n return listSpec.busListSpec.implementsAuditCompare;\n }\n\n public showChangedValuesOnRight(listSpec: LMListSpec): boolean {\n return listSpec.busListSpec.showChangedValuesOnRight;\n }\n\n public isFilterable(listSpec: LMListSpec): boolean {\n if (listSpec && listSpec.busListSpec) {\n if (listSpec.busListSpec.implementsRepresentativeImageView || listSpec.busListSpec.implementsOrgChartView) {\n return false;\n }\n const filterableField = listSpec.busListSpec.displayFields.find(displayField => displayField.filterable);\n if (filterableField) {\n return true;\n }\n }\n\n return false;\n }\n\n public isCardViewWithDetailSections(listSpec: LMListSpec): boolean {\n if (listSpec && listSpec.busListSpec) {\n const hasDetailSections = this.hasDetailSections(listSpec);\n const isCardView = listSpec.busListSpec.displayFields.map((displayField: LMListDisplayField): boolean => {\n if (displayField.type.toUpperCase() === AppConstants.CARDVIEW) {\n return true;\n }\n })[ 0 ];\n\n return hasDetailSections && isCardView;\n }\n\n return false;\n }\n\n /**\n * Whether this list has only a card view on it and no detail fields.\n * @param listSpec\n * @returns\n */\n public isCardViewOnly(listSpec: LMListSpec): boolean {\n if (listSpec && listSpec.busListSpec) {\n if (listSpec.busListSpec.displayFields.length === 1) {\n return listSpec.busListSpec.displayFields.map((displayField: LMListDisplayField): boolean => {\n if (displayField.type.toUpperCase() === AppConstants.CARDVIEW) {\n return true;\n }\n })[ 0 ];\n }\n }\n return false;\n }\n\n public isGallery(listSpec: LMListSpec): boolean {\n // Todo: this isn't ready in backened yet, need to add to spec\n return true;\n }\n\n public hasDisplayFields(listSpec): boolean {\n return listSpec.busListSpec.displayFields.some(displayField => !displayField.isHidden);\n }\n\n public allowUpdate(listSpec: LMListSpec): boolean {\n if (this.isColumnarView(listSpec)) {\n return false;\n }\n\n if (this.hasDetailSections(listSpec)) {\n\n // --------------------------------------------\n // are detail sections updatable.\n // --------------------------------------------\n // const detailSectionAllowsUpdate = listSpec.busListSpec.detailSections.find(\n // (detailSection: LMBusDetailSection) => !!detailSection.listSpec && this.allowUpdate(detailSection.listSpec));\n\n const detailSectionAllowsUpdate = listSpec.busListSpec.detailSections.find(\n (detailSection: LMBusDetailSection) => {\n switch (detailSection.type) {\n /** a detail section that is a detail section?!?! */\n case 'detailsection':\n case 'cardview':\n case 'instancecountchart':\n case 'link':\n case 'standardform':\n case 'dashboard':\n return false; // none of these detail sections are editable.\n\n case 'list':\n return this.allowUpdate(detailSection.listSpec);\n }\n return false;\n });\n\n if (detailSectionAllowsUpdate) {\n return true;\n }\n }\n\n if (this.isCardViewOnly(listSpec)) {\n return false;\n }\n\n if (this.hasDetailFields(listSpec)) {\n return listSpec.busListSpec.detailFields.some( (detailField: LMListDisplayField) => detailField.allowUpdate);\n }\n\n return listSpec.busListSpec.displayFields.some( (displayField: LMListDisplayField) => displayField.allowUpdate);\n }\n\n public implementsInlineCreate(listSpec: LMListSpec): boolean {\n if (this.hasDetailSections(listSpec)) {\n\n // ------------------------------------------------\n // does a detail section implement inline create\n // ------------------------------------------------\n\n const detailSectionImplementsInlineCreate = listSpec.busListSpec.detailSections.find(\n (detailSection: LMBusDetailSection) => {\n switch (detailSection.type) {\n /** a detail section that is a detail section?!?! */\n case 'detailsection':\n case 'cardview':\n case 'instancecountchart':\n case 'link':\n case 'standardform':\n case 'dashboard':\n return false; // none of these detail sections are editable.\n\n case 'list':\n return this.implementsInlineCreate(detailSection.listSpec);\n }\n return false;\n });\n\n if (detailSectionImplementsInlineCreate) {\n return true;\n }\n }\n\n if (this.isCardViewOnly(listSpec)) {\n return false;\n }\n\n return !!listSpec.busListSpec.implementsInlineCreate;\n }\n\n public isDetailSection(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'detailsectionlist');\n }\n\n public isCardListDetailSection(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'cardlistdetailsection');\n }\n\n public isDashBoardContent(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'dashboard');\n }\n\n public isMultiPanePanelContent(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'multipane');\n }\n\n public isMultiListPanelContent(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'multilist');\n }\n\n public isFormListPanelContent(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'formlist');\n }\n\n public isModalDialogContent(listSpec: LMListSpec): boolean {\n return (this.isSelectList(listSpec) || this.isHelperList(listSpec));\n }\n\n public isSelectList(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'select');\n }\n\n public isHelperList(listSpec: LMListSpec): boolean {\n return (listSpec && listSpec.listType === 'helper');\n }\n\n public hasCardViewSort(listSpec: LMListSpec): boolean {\n if (this.isCardViewOnly(listSpec)) {\n if (listSpec.busListSpec.displayFields[0].cardViewSortOrders) {\n return true;\n }\n }\n return false;\n }\n\n public cardViewSortOrders(listSpec: LMListSpec): Array {\n if (this.hasCardViewSort(listSpec)) {\n return listSpec.busListSpec.displayFields[0].cardViewSortOrders;\n }\n return [];\n }\n\n public isRequiredSearchParameter(busListSpec: LMBusListSpec, fieldId: string) {\n if (busListSpec.requiredSearchParameters && fieldId) {\n const requiredSearchField = busListSpec.requiredSearchParameters.find(rsp => rsp.fieldId === fieldId);\n return requiredSearchField ? true : false;\n } else {\n return false;\n }\n }\n\n public hasUserListViewForList(listSpec: LMListSpec) {\n const userListViewSupported = (!this.isDashBoardContent(listSpec) && !this.isFilterList(listSpec));\n return userListViewSupported;\n }\n}\n","/* tslint:disable:max-line-length */\nimport { Injectable } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFormatUtilService, LMUrlUtilService } from '@services/utils';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMToolbarServiceBase } from '@toolbar/lm-toolbar-service.base';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMListSpecUtilService } from './lm-list-spec-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { ListResource } from '@resources/list.resource';\nimport * as _ from 'lodash';\nimport { LMToolbarServiceAdapter } from '@toolbar/lm-toolbar-service-adapter';\n\n/**\n * Manages building and setting of state for a lm-list.component toolbar.\n */\n@Injectable()\nexport class LMListToolbarService extends LMToolbarServiceBase {\n\n constructor(\n private lmActionService: LMActionService,\n private lmContextService: LMContextService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmListSpecUtilService: LMListSpecUtilService,\n public lmToolbarServiceAdapter: LMToolbarServiceAdapter,\n private lmUrlUtilService: LMUrlUtilService\n ) {\n super(lmToolbarServiceAdapter);\n }\n\n /**\n *\n * @param listSpec\n * @returns\n */\n public buildToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo, listUrlInfo: LMListUrlInfo): void {\n this.updateToolbar(listSpec, listStateInfo, listUrlInfo);\n }\n\n public updateToolbar(listSpec: LMListSpec, listStateInfo: LMListStateInfo, listUrlInfo: LMListUrlInfo): void {\n try {\n // -----------------------------------------------------------\n // Must rebuild the toolbar so that actions in the overflow\n // menu will be availabel for the selected row(s) of data.\n // TODO ppatton - look into building the static part of the\n // toolbar during a single build and only rebuilding the\n // dynamic actions menu in UpdateToolbar. May not be worth\n // the effort as I can't imagine it will save much processing\n // time.\n // -----------------------------------------------------------\n this.toolbarButtons = [];\n\n if (!listStateInfo.disableAllActions) {\n // Add processflow actions to the list of buttons.\n if (listStateInfo && listStateInfo.dataViewSet && listSpec.listType !== 'select') {\n this.buildProcessFlowActionToolbarButtons(listSpec, listStateInfo);\n }\n\n if (listStateInfo.specialActions) {\n this.toolbarButtons = this.actionRefArrayToToolbarButtonArray(listSpec, listStateInfo.specialActions);\n this.toolbarButtons.forEach((button: LMToolbarButton) => button.actionReference.isSpecialAction = true);\n }\n\n if (listSpec.busListSpec.implementsCubeView) {\n const cubeButtons = this.buildCubeToolbarButtons(listSpec, listStateInfo);\n this.toolbarButtons = [ ...this.toolbarButtons, ...cubeButtons ];\n this._updateToolbarState(this.toolbarButtons, listSpec, listStateInfo);\n this.fireToolbarObservable();\n return;\n }\n\n if (listSpec.listType === 'select' && this.lmContextService.casualMode()) {\n this.buildSelectListCasualModeToolbarButtons(listSpec);\n } else if (listStateInfo.isSelectListInSelectionMode) {\n this.buildSelectListToolbarButtons(listSpec, listStateInfo);\n } else if (listSpec.busListSpec.toolbar) {\n this.buildCalledOutToolbarButtons(listSpec, listStateInfo);\n } else {\n this.buildStandardToolbarButtons(listSpec, listStateInfo);\n }\n }\n\n // Even if all actions are disabled, the cubeview detail section list will display pvperiods menu\n // to filter data based on period view period.\n if (this.lmListSpecUtilService.isDetailSection(listSpec)\n && listStateInfo.fromDataView && listStateInfo.fromDataView.cubeInfo) {\n // Add the period view period button as the first item.\n this.toolbarButtons = [ ...this.buildCubeViewDetailSectionToolbarItem(listSpec, listStateInfo), ...this.toolbarButtons ];\n }\n\n if (!this.toolbarButtons || this.toolbarButtons.length === 0) {\n this.fireToolbarObservable();\n return;\n }\n\n this._updateToolbarState(this.toolbarButtons, listSpec, listStateInfo, listUrlInfo);\n this.fireToolbarObservable();\n\n if (this.secondaryToolbarButtons) {\n this._updateToolbarState(this.secondaryToolbarButtons, listSpec, listStateInfo, listUrlInfo);\n this.fireSecondaryToolbarObservable();\n }\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n /**\n * Build an\n * @param listSpec\n * @param dataView need dataView to resolve the label MessageRule\n * @returns\n */\n public getToolbarSearchField(listSpec: LMListSpec): LMToolbarSearchField {\n let keywordSearch: LMKeywordSearch = listSpec.busListSpec.keywordSearch;\n if (!keywordSearch) {\n if (listSpec.busListSpec.searchFields && listSpec.busListSpec.searchFields.useSearchAsFilter) {\n keywordSearch = {\n fieldId: listSpec.busListSpec.searchFields.fields[0].fieldId,\n label: {\n resourceValue: Soho.Locale.translate('Search')\n }\n };\n } else {\n return null;\n }\n }\n\n const label = this.lmFormatUtilService.formatMessageRule(keywordSearch.label, null);\n return { fieldId: keywordSearch.fieldId, label, collapsible: !keywordSearch.displayAlways, value: '', collapseSize: this.calculateSearchFieldSize };\n }\n\n // Calculates the size of the Searchfield's closed state based on the\n // length of the current search term.\n public calculateSearchFieldSize(api) {\n const charWidth = 8;\n const frontPadding = 30;\n let buttonSize = 0;\n const contents = api.element.val();\n\n if ((api.categoryButton instanceof $) && api.categoryButton.length > 0) {\n const buttonStyle = window.getComputedStyle(api.categoryButton[0]);\n const buttonWidth = api.categoryButton.width();\n const buttonBorder = parseInt(buttonStyle.borderLeftWidth, 10) * 2;\n const buttonPadding = parseInt(buttonStyle.paddingLeft, 10) +\n parseInt(buttonStyle.paddingRight, 10);\n\n buttonSize += (buttonWidth + buttonBorder + buttonPadding + 4);\n }\n\n // Can't be bigger than 225px.\n const maxSize = 225;\n const targetSize = (buttonSize > 0 ? buttonSize : frontPadding) + (charWidth * contents.length);\n\n return targetSize < maxSize ? targetSize : maxSize;\n }\n\n /**\n * Transient build of a menu. This is build and used only when a right mouse button is clicked.\n */\n public getContextMenu(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n // disallow right click menus for casual mode.\n if (this.lmContextService.casualMode() || listStateInfo.disableAllActions) {\n return [];\n }\n\n const useCalledOutToolbar = listSpec.busListSpec.toolbar && !listSpec.busListSpec.implementsOrgChartView && !listSpec.busListSpec.implementsCubeView;\n let calledOutActionRefs: LMBusActionReference[] = [];\n let calledOutMenuItems: Array = [];\n if (useCalledOutToolbar) {\n const singleSelectActionRefs: LMBusActionReference[] = [];\n if (listStateInfo.isSelectListInSelectionMode || listStateInfo.isSelectListInEditMode) {\n // Add edit mode menu item for a select list\n const editModeActionRef = this.getStandardToolbarActions().editMode;\n editModeActionRef.isChecked = listStateInfo.isSelectListInEditMode;\n singleSelectActionRefs.push(editModeActionRef);\n singleSelectActionRefs.push(this.getStandardSeparatorMenuItem());\n }\n\n // ---------------------------------------------------------------\n // if called out toolbar put those action first\n // ---------------------------------------------------------------\n calledOutActionRefs = this.getCalledOutToolbarActionRefs(listSpec, listStateInfo);\n calledOutActionRefs = [ ...singleSelectActionRefs, ...calledOutActionRefs ];\n\n if (calledOutActionRefs.length > 0) {\n // Need to filter out helper list, so it doesn't show up in a context menu\n calledOutActionRefs = calledOutActionRefs.filter(actionRef => actionRef.id !== AppConstants.STANDARD_TOOLBAR_HELPERLIST);\n }\n\n if (calledOutActionRefs.length > 0) {\n if (this.hasCreateMenu(listSpec.busListSpec.toolbar)) {\n const createActionSpecs: Array = this.lmActionService.getCreateActions(listSpec.busClassSpec.actions, listStateInfo.dataViewSet.header.actionIndexes);\n if (createActionSpecs?.length > 1) {\n // replace the create menu item with the create actions\n const createActionRefs: Array = this.actionSpecsToActionRefsSorted(createActionSpecs);\n const index = calledOutActionRefs.findIndex(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON);\n calledOutActionRefs.splice(index, 1, ...createActionRefs);\n }\n }\n }\n\n calledOutMenuItems = this.actionRefArrayToToolbarButtonArray(\n listSpec, calledOutActionRefs, this.lmListSpecUtilService.isCardViewWithDetailSections(listSpec));\n\n }\n\n // 1. build the context menu buttons\n // 2. set the enabled and visibility state\n // 3. return the context menu buttons\n let contextMenuItems = (listSpec.busListSpec.implementsCubeView)\n ? this.getAllActionsMenuItemsForCubeView(listSpec, listStateInfo, calledOutActionRefs, true, true)\n : this.getAllActionsMenuItems(listSpec, listStateInfo, calledOutActionRefs, true, true);\n\n // has called out actions\n if (useCalledOutToolbar) {\n if (listStateInfo.calledOutActionsOnly) {\n contextMenuItems = calledOutMenuItems;\n } else {\n contextMenuItems = [ ...calledOutMenuItems, ...contextMenuItems ];\n }\n }\n\n this._updateToolbarState(contextMenuItems, listSpec, listStateInfo);\n return contextMenuItems;\n }\n\n // ----------------------------------------------------------------------------------------\n // PRIVATE METHODS\n // ----------------------------------------------------------------------------------------\n\n /**\n *\n * @param toolbarButtons\n * @param dataViewSet\n * @param selectedRows\n * @returns\n */\n private _updateToolbarState(toolbarButtons: Array, listSpec: LMListSpec, listStateInfo: LMListStateInfo, listUrlInfo?: LMListUrlInfo): void {\n try {\n toolbarButtons.forEach((toolbarButton: LMToolbarButton) => {\n // Update state for non menu buttons\n this.setStateByActionType(listSpec, listStateInfo, toolbarButton, listUrlInfo);\n\n // Rebuild menus\n this.rebuildMenuButtonMenu(toolbarButton, listSpec, listStateInfo);\n });\n\n toolbarButtons.map(toolbarButton => {\n if (!toolbarButton.menu) {\n return;\n }\n toolbarButton.menu.map(item => this.setStateByActionType(listSpec, listStateInfo, item, listUrlInfo));\n });\n\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n private rebuildMenuButtonMenu(toolbarButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const singleChartItem = this.getChartMenuActionRefs(listSpec, listStateInfo).length === 1;\n\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON\n || (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_CREATE && listStateInfo.createWithinEnabled)) {\n this.buildCreateMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if ((toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON\n || toolbarButton.actionReference.id === AppConstants.CUBE_TOOLBAR_CHARTS) &&\n !singleChartItem\n ) {\n this.buildChartsMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_SORT) {\n this.buildSortMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if (toolbarButton.actionReference.id === AppConstants.CUBE_TOOLBAR_OPTIONS) {\n this.getCubeOptionsMenu(toolbarButton, listSpec, listStateInfo);\n const noCreateReportInConfig = this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_CreateReport);\n if (noCreateReportInConfig) {\n const relatedReportButton = toolbarButton.menu.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDREPORT);\n if (relatedReportButton) {\n const validrelatedReporActionRefs: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n relatedReportButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, validrelatedReporActionRefs);\n }\n const personalizeButton = toolbarButton.menu.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_PERSONALIZE);\n if (personalizeButton) {\n const validPersonalizeActionRefs: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n personalizeButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, validPersonalizeActionRefs);\n }\n }\n }\n\n if (toolbarButton.actionReference.id === AppConstants.CUBE_TOOLBAR_PERIODVIEW) {\n this.getCubePeriodViewMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if (toolbarButton.actionReference.id === AppConstants.CUBE_TOOLBAR_PIVOTVIEWS) {\n this.getCubePivotViewMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if (toolbarButton.actionReference.id === AppConstants.CUBE_TOOLBAR_COLUMNVIEWS) {\n this.getCubeColumnViewMenu(toolbarButton, listSpec, listStateInfo);\n }\n\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON) {\n this.buildHelperListMenu(toolbarButton, listSpec, listStateInfo);\n }\n }\n\n private setStateByActionType(listSpec: LMListSpec, listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton, listUrlInfo?: LMListUrlInfo): void {\n let actionType: string;\n if (toolbarButton.actionReference) {\n actionType = toolbarButton.actionReference.type;\n } else if (toolbarButton.actionSpec) {\n actionType = toolbarButton.actionSpec.type;\n\n if (AppConstants.STANDARD_TOOLBAR_TYPES.includes(actionType)) {\n actionType = AppConstants.BUTTON_TYPE_STANDARD_ACTION;\n }\n }\n\n switch (actionType) {\n case AppConstants.BUTTON_TYPE_STANDARD_ACTION:\n case AppConstants.BUTTON_TYPE_HELPERLIST:\n this.standardActionState(listSpec, listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_FORMINVOKE:\n toolbarButton.state = this.getFormInvokeState(listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_HTTPURL:\n this.httpUrlActionState(listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_NAVIGATION:\n const specFields = (listSpec && listSpec.busListSpec) ? listSpec.busListSpec.fields : null;\n this.navigationActionState(listStateInfo, toolbarButton, specFields);\n break;\n\n case AppConstants.BUTTON_TYPE_ACTION:\n this.busClassActionState(listSpec, listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_PROCESSFLOW:\n toolbarButton = this.processFlowActionState(listSpec, listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_RELATED:\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU) {\n const url = this.lmUrlUtilService.buildUserListViewFetchUrl(listUrlInfo, listSpec);\n toolbarButton.actionReference.userListViewUrl = url;\n toolbarButton.actionReference.appliedUserListView = listStateInfo.userListViewItem?.userListView;\n toolbarButton.actionReference.disableSave = !listStateInfo.hasFilterCriteria;\n }\n break;\n\n case AppConstants.BUTTON_TYPE_CUBE:\n this.cubeActionState(listSpec, listStateInfo, toolbarButton);\n break;\n\n case AppConstants.BUTTON_TYPE_FORMBUTTON:\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n break;\n\n case AppConstants.CSS_MENU_SEPARATOR:\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n break;\n }\n }\n\n private getAllActionsMenuItemsForCubeView(\n listSpec: LMListSpec,\n listStateInfo: LMListStateInfo,\n excludedActionRefs?: Array,\n includeCreateActions?: boolean,\n isContextMenu?: boolean,\n ): Array {\n // This is used only on right click, context menu for cubes.\n // Cubes will have open action only. For now, the other menu items such as options,\n // drill around, create report, personalize or search are not available.\n if (!listSpec.busListSpec.implementsCubeView || listStateInfo.selectedDataView === undefined) {\n return [];\n }\n\n const validActionRefs: Array = [];\n if (!listSpec.busListSpec.openActionRestricted\n && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_OPEN )\n && listStateInfo.selectedDataView.openFormResId !== undefined) {\n validActionRefs.push(this.getStandardToolbarActions().open);\n }\n\n // reparent menu. Add this only if child hierarchy dimensions are present.\n if (listSpec.busListSpec.hasChildHierarchyDims) {\n validActionRefs.push({\n id: AppConstants.CUBE_TOOLBAR_DRILLDOWN_DIMENSIONS,\n automationId: AppConstants.CUBE_TOOLBAR_DRILLDOWN_DIMENSIONS,\n type: 'cube',\n label: Soho.Locale.translate('DrillDown')\n });\n }\n\n const allActionsMenuItems = this.createToolbarMenuItemsFromActionReferences(listSpec, validActionRefs, true);\n return allActionsMenuItems;\n }\n\n private getAllActionsMenuItems(\n listSpec: LMListSpec,\n listStateInfo: LMListStateInfo,\n excludedActionRefs?: Array,\n includeCreateActions?: boolean,\n isContextMenu?: boolean,\n ): Array {\n if (listSpec.listType === 'select' && this.lmContextService.casualMode()) {\n return [];\n }\n\n const validActionRefs: Array = [];\n\n if (listStateInfo.isSelectListInSelectionMode || listStateInfo.isSelectListInEditMode) {\n if (!excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_EDITMODE)) {\n // Add edit mode menu item for a select list\n const editModeActionRef = this.getStandardToolbarActions().editMode;\n editModeActionRef.isChecked = listStateInfo.isSelectListInEditMode;\n validActionRefs.push(editModeActionRef);\n }\n }\n\n // all actions for a more or right click menu\n const allValidActionRefs: Array = this.getAllValidActionReferences(\n listSpec,\n listStateInfo,\n excludedActionRefs,\n includeCreateActions,\n this.lmContextService.hasAsOfDateInPast(),\n isContextMenu\n );\n if (validActionRefs.length > 0 && allValidActionRefs.length > 0) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n }\n validActionRefs.push(...allValidActionRefs);\n\n // OPTIONS MENU\n validActionRefs.push(this.getStandardToolbarActions().options);\n\n // DRILL MENU\n if (!listStateInfo.isSelectListInSelectionMode) {\n validActionRefs.push(this.getStandardToolbarActions().drillAroundMenu);\n }\n\n if (validActionRefs.length === 0) {\n return [];\n }\n\n // ----------------------------------------------------------\n // turn valid action refs into toolbar buttons.\n // ----------------------------------------------------------\n let allActionsMenuItems = this.createToolbarMenuItemsFromActionReferences(listSpec, validActionRefs, true);\n\n // Filter out page level actions on a context menu for org chart\n if (isContextMenu && listSpec.busListSpec.implementsOrgChartView) {\n allActionsMenuItems = allActionsMenuItems.filter((item) => item.actionReference.id !== AppConstants.STANDARD_TOOLBAR_SEARCH);\n }\n\n // --------------------------------------------------------------\n // Don't create an options menu button if in casual mode.\n // --------------------------------------------------------------\n if (!this.lmContextService.casualMode()) {\n const chartsMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON);\n const singleChartItem = this.getChartMenuActionRefs(listSpec, listStateInfo).length === 1;\n\n if (chartsMenuButton && !singleChartItem) {\n this.buildChartsMenu(chartsMenuButton, listSpec, listStateInfo);\n }\n\n const optionsMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON);\n if (optionsMenuButton) {\n this.buildOptionsMenu(optionsMenuButton, listSpec, listStateInfo, true);\n\n const relatedReportButton = optionsMenuButton.menu.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDREPORT);\n if (relatedReportButton) {\n const validrelatedReporActionRefs: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n relatedReportButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, validrelatedReporActionRefs);\n }\n\n const personalizeButton = optionsMenuButton.menu.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_PERSONALIZE);\n if (personalizeButton) {\n const validPersonalizeActionRefs: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n personalizeButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, validPersonalizeActionRefs);\n }\n }\n\n const drillMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON);\n if (drillMenuButton) {\n this.buildDrillMenuPlaceHolderItem(listSpec, drillMenuButton);\n }\n\n const userListViewMenuButton = allActionsMenuItems.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU);\n if (userListViewMenuButton) {\n const userListView: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n userListViewMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, userListView);\n }\n }\n\n return allActionsMenuItems;\n }\n\n /**\n *\n * @param toolbarButton\n * @param dataViewSet\n * @param selectedRows\n * @returns\n */\n private busClassActionState(listSpec: LMListSpec, listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton): void {\n let valid = false;\n let actionSpec: LMActionSpec;\n if (toolbarButton.actionReference.isSpecialAction) {\n if (listStateInfo.fromDataView.actionIndexes.includes(toolbarButton.actionReference.index)) {\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n return;\n } else {\n toolbarButton.state.disabled = true;\n toolbarButton.state.visible = false;\n }\n return;\n } else {\n actionSpec = listSpec.busClassSpec.actions[ toolbarButton.actionReference.index ];\n }\n\n const dataViewSet = listStateInfo.dataViewSet;\n\n if (dataViewSet === undefined) {\n this.lmLoggerService.warn('listStateInfo.dataViewSet is undefined in busClassActionState()');\n return;\n }\n\n const validInstanceActions: Array =\n this.lmActionService.getValidListInstanceActions(\n listSpec.busClassSpec.actions, dataViewSet, listStateInfo.selectedRows);\n\n const validImportActions: Array =\n this.lmActionService.getValidListImportActions(\n listSpec.busClassSpec.actions, dataViewSet);\n\n const validDeleteActions: Array =\n this.lmActionService.getValidListDeleteActions(\n listSpec.busClassSpec.actions, dataViewSet, listStateInfo.selectedRows);\n\n switch (actionSpec.type) {\n case AppConstants.ACTION_TYPE_CREATE:\n case AppConstants.ACTION_TYPE_CREATE_WITHIN:\n case AppConstants.ACTION_TYPE_SET:\n // check actionSpec validity in the dataView\n valid = this.lmActionService.isValidAction(actionSpec, listSpec.busClassSpec.actions, dataViewSet.header.actionIndexes, undefined, false);\n\n // check for action button validity\n if (valid && toolbarButton.actionReference.validity) {\n // todo akila - passign in '' as a NOOP for specFields. not sure what is needed there as list has no specFields.\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataViewSet.header);\n }\n\n break;\n\n case AppConstants.ACTION_TYPE_UPDATE:\n if (!listStateInfo.selectedRows || listStateInfo.selectedRows.length !== 1) {\n // if no selection or more than 1 selection then valid = false\n valid = false;\n } else {\n // check actionSpec validity in the dataView\n const updateDataView: LMDataView = dataViewSet.data[ listStateInfo.selectedRows[ 0 ] ];\n\n if (updateDataView) {\n if (listSpec.isTemplateList) {\n const targetDataView = updateDataView.dataView;\n if (updateDataView.dataView.isAlreadyDefined) {\n valid = this.lmActionService.isValidAction(actionSpec, listSpec.busClassSpec.actions, targetDataView.actionIndexes, 'UPDATE', false);\n } else {\n valid = this.lmActionService.isValidAction(actionSpec, listSpec.busClassSpec.actions, targetDataView.actionIndexes, 'CREATE', false);\n }\n } else {\n valid = this.lmActionService.isValidAction(actionSpec, listSpec.busClassSpec.actions, updateDataView.actionIndexes, undefined, false);\n }\n\n // check for action button validity\n if (valid && toolbarButton.actionReference.validity) {\n // todo akila - passign in '' as a NOOP for specFields. not sure what is needed there as list has no specFields.\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, updateDataView);\n }\n }\n }\n\n break;\n\n case AppConstants.ACTION_TYPE_FUNCTION:\n const functionDataView: LMDataView = dataViewSet.data[ listStateInfo.selectedRows[ 0 ] ];\n\n if (functionDataView) {\n valid = !!(validInstanceActions.find(item => item.name === actionSpec.name));\n\n if (valid && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, functionDataView);\n }\n }\n\n break;\n\n case AppConstants.ACTION_TYPE_IMPORT:\n valid = !!(validImportActions.find(item => item.name === actionSpec.name));\n break;\n\n case AppConstants.ACTION_TYPE_DELETE:\n valid = !!(validDeleteActions.find(item => item.name === actionSpec.name));\n\n // does a validity condition exist for delete?\n if (valid && toolbarButton.actionReference.validity) {\n // iterate the selected rows to determine the overall action validity\n for (let i = 0; i < listStateInfo.selectedRows.length; i++) {\n const dataView = dataViewSet.data[ listStateInfo.selectedRows[ i ] ];\n if (dataView !== undefined) {\n const targetDataView = listSpec.isTemplateList ? dataView.dataView : dataView;\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, targetDataView);\n if (!valid) {\n break;\n }\n }\n }\n }\n\n break;\n }\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n const hideWhenInvalid = (listStateInfo.isSelectListInSelectionMode) ? true : toolbarButton?.actionReference?.hideWhenInvalid;\n toolbarButton.state.visible = !(!valid && hideWhenInvalid);\n }\n\n /**\n *\n * @param toolbarButtons\n * @param dataViewSet\n * @returns\n */\n private buildCreateMenu(createMenuButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n try {\n // Create Action is never valid in a template list!\n // the UI uses the update or open action and dynamically\n // switches to a create action if the template target dataView is\n // not defined\n if (listSpec.isTemplateList) {\n createMenuButton.menu = [];\n } else {\n const actions = listSpec.busClassSpec.actions;\n const createActionRefs: Array = this.actionSpecsToActionRefs(\n this.lmActionService.getCreateActions(actions, listStateInfo.dataViewSet.header.actionIndexes));\n\n if (listStateInfo.inlineCreateEnabled && listSpec.busListSpec.allowFormCreate) {\n createActionRefs.push(this.getStandardActionMenuItems().inlineCreate);\n }\n\n if (listStateInfo.createWithinEnabled && (listSpec.busListSpec.implementsTreeView || listSpec.busListSpec.implementsOrgChartView)) {\n createActionRefs.push(this.getStandardActionMenuItems().createWithin);\n }\n\n createActionRefs.sort((actionRef1: LMBusActionReference, actionRef2: LMBusActionReference) => actionRef1.label.localeCompare(actionRef2.label));\n createMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, createActionRefs);\n }\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n /**\n *\n * @param toolbarButtons\n * @param dataViewSet\n * @returns\n */\n private buildHelperListMenu(helperListMenuButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n try {\n const helperListActionRefs: Array = [];\n\n let helperListIndex = 0;\n listSpec.busListSpec.helperLists.forEach((helperList => {\n const listTitle = helperList.listSpec.busListSpec.title;\n const actionReference: LMBusActionReference = {\n id: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n automationId: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n index: helperListIndex,\n label: helperList.helperTitle,\n type: 'helperList',\n tooltip: Soho.Locale.translate('HelperList'),\n validity: helperList.validity\n };\n\n helperListActionRefs.push(actionReference);\n helperListIndex++;\n }));\n helperListMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, helperListActionRefs);\n\n let anyValid = false;\n let anyVisible = false;\n\n helperListMenuButton.menu.forEach((helperToolbarButton: LMToolbarButton) => {\n\n const visible = true;\n let valid = true;\n\n const helperList = listSpec.busListSpec.helperLists[helperToolbarButton.actionReference.index];\n if (helperList.visibility) {\n valid = this.lmConditionUtilService.isValid(helperList.visibility, listStateInfo.fromDataView);\n }\n\n if (valid && helperList.validity) {\n valid = this.lmConditionUtilService.isValid(helperList.validity, listStateInfo.fromDataView);\n }\n\n // check if the called out action has a validity condition\n // this is defined on the list toolbar and is resolved with the dataViewSet\n if (valid && helperToolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(helperToolbarButton.actionReference.validity, listStateInfo.dataViewSet.header);\n }\n // disabled if invalid\n helperToolbarButton.state.disabled = !valid;\n\n if (helperToolbarButton.actionReference && visible) {\n helperToolbarButton.state.visible = !(helperToolbarButton.actionReference.hideWhenInvalid && !valid);\n } else {\n helperToolbarButton.state.visible = visible;\n }\n anyValid = !helperToolbarButton.state.disabled || anyValid ? true : false;\n anyVisible = helperToolbarButton.state.visible || anyVisible ? true : false;\n });\n\n // disabled menu button if invalid\n helperListMenuButton.state.disabled = !anyValid;\n helperListMenuButton.state.visible = anyVisible;\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n private buildChartsMenu(chartMenuButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n try {\n chartMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, this.getChartMenuActionRefs(listSpec, listStateInfo));\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n private getCubeOptionsMenu(toolbarButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const context = this.lmContextService.getContext();\n const disallowExport = context.disallowExport;\n const configuredFeatures = context.configuredFeatures;\n const noPdfInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToPDF) !== -1;\n const noCsvInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToCSV) !== -1;\n const noCreateReportInConfig = this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_CreateReport);\n const noConfigInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_Configuration) !== -1;\n const noPersonlizationInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_Personalization) !== -1;\n const noLimitedInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_LimitedListPersonalization) !== -1;\n\n const actionRefs = [];\n actionRefs.push(this.getStandardOptionsMenuItems().refresh);\n actionRefs.push({\n id: AppConstants.CUBE_TOOLBAR_OPTIONS_CUBESTATUS,\n automationId: AppConstants.CUBE_TOOLBAR_OPTIONS_CUBESTATUS,\n type: 'cube',\n label: Soho.Locale.translate('CheckCubeStatus'),\n tooltip: Soho.Locale.translate('CheckCubeStatus')\n });\n\n // actionRefs.push({ id: 'separator', type: 'separator' });\n\n if (!disallowExport && noPdfInConfig) {\n const printToFile = this.getStandardOptionsMenuItems().printToFile;\n printToFile.type = 'cube';\n actionRefs.push(printToFile);\n }\n\n if (noCsvInConfig && listStateInfo.dataViewSet) {\n const exportToCSV = this.getStandardOptionsMenuItems().exportToCSV;\n exportToCSV.type = 'cube';\n actionRefs.push(exportToCSV);\n }\n\n if (noCreateReportInConfig) {\n actionRefs.push({ id: 'separator', type: 'separator' });\n actionRefs.push(this.getStandardOptionsMenuItems().createReport);\n actionRefs.push(this.getStandardOptionsMenuItems().relatedReport);\n }\n\n if (noConfigInConfig || noPersonlizationInConfig || noLimitedInConfig) {\n actionRefs.push(this.getStandardOptionsMenuItems().personalize);\n }\n\n toolbarButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, actionRefs);\n }\n\n private getCubePeriodViewMenu(toolbarButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const actionRefs: Array = [];\n const currentIndex = (listStateInfo.dataViewSet && listStateInfo.dataViewSet.cubeInfo && listStateInfo.dataViewSet.cubeInfo.periodView)\n ? listSpec.cubeOptions.pCommands.indexOf(listStateInfo.dataViewSet.cubeInfo.periodView) : 0;\n\n listSpec.cubeOptions.periods.forEach((element, index, array) => {\n actionRefs.push({\n id: AppConstants.CUBE_TOOLBAR_PERIODVIEW,\n automationId: AppConstants.CUBE_TOOLBAR_PERIODVIEW + '-' + listSpec.cubeOptions.pCommands[index],\n type: 'cube',\n label: element,\n periodViewCommand: listSpec.cubeOptions.pCommands[index],\n isChecked: (currentIndex === index) ? true : null\n });\n });\n\n toolbarButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, actionRefs);\n }\n\n private getCubePivotViewMenu(toolbarButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const actionRefs: Array = [];\n let pivotView;\n if (listStateInfo.dataViewSet.cubeInfo.pivotView) {\n pivotView = listSpec.cubeOptions.pivotViews.find((p) => p.name === listStateInfo.dataViewSet.cubeInfo.pivotView);\n } else {\n pivotView = listSpec.cubeOptions.pivotViews.find((p) => p.default !== undefined && p.default);\n }\n if (!pivotView) {\n pivotView = listSpec.cubeOptions.pivotViews[0];\n }\n listSpec.cubeOptions.pivotViews.forEach((element) => {\n actionRefs.push({\n id: AppConstants.CUBE_TOOLBAR_PIVOTVIEWS,\n automationId: AppConstants.CUBE_TOOLBAR_PIVOTVIEWS,\n type: 'cube',\n label: element.label,\n pivotViewCommand: element.name,\n isChecked: (pivotView.name === element.name) ? true : null\n });\n });\n toolbarButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, actionRefs);\n }\n\n private getCubeColumnViewMenu(toolbarButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const actionRefs: Array = [];\n let columnView;\n if (listStateInfo.dataViewSet.cubeInfo.columnView) {\n columnView = listSpec.cubeOptions.columnViews.find((c) => c.name === listStateInfo.dataViewSet.cubeInfo.columnView);\n } else {\n columnView = listSpec.cubeOptions.columnViews.find((c) => c.default !== undefined && c.default);\n }\n if (!columnView) {\n columnView = listSpec.cubeOptions.columnViews[0];\n }\n\n listSpec.cubeOptions.columnViews.forEach((element, index) => {\n actionRefs.push({\n id: AppConstants.CUBE_TOOLBAR_COLUMNVIEWS,\n automationId: AppConstants.CUBE_TOOLBAR_COLUMNVIEWS + '-' + element.name,\n type: 'cube',\n label: element.label,\n columnViewCommand: element.name,\n isChecked: (columnView.name === element.name) ? true : null\n });\n });\n toolbarButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, actionRefs);\n }\n\n private buildDrillMenuPlaceHolderItem(listSpec: LMListSpec, drillMenuButton: LMToolbarButton): void {\n const validActionRefs: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ]; // Soho.Locale.translate('NoDrillsAvailable') }];\n drillMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, validActionRefs);\n }\n\n private buildSortMenu(sortButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n\n let sortActionRefs = this.getSortMenuActionRefs(listSpec, listStateInfo);\n if (sortActionRefs.length > 0) {\n sortActionRefs = [ ...sortActionRefs, ...this.getStandardSortMenuItems(listStateInfo.listIdPrefix) ];\n sortButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, sortActionRefs);\n\n let ascendingCheckString = AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING;\n if (!listStateInfo.dataViewSet.pagingInfo.isAscending) {\n ascendingCheckString = AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING;\n }\n\n sortButton.menu\n .filter((menuItem: LMToolbarButton) =>\n menuItem.actionReference.name === listStateInfo.dataViewSet.pagingInfo.sortOrderName || menuItem.actionReference.id === ascendingCheckString)\n .forEach((menuItem: LMToolbarButton) => menuItem.isChecked = true);\n } else {\n sortButton.menu = null;\n }\n }\n\n private buildOptionsMenu(optionsMenuButton: LMToolbarButton, listSpec: LMListSpec, listStateInfo: LMListStateInfo, moreActionsMenu?: boolean): void {\n const optionsMenuActionRefs = this.getOptionsMenuActionRefs(listSpec, listStateInfo, moreActionsMenu);\n optionsMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, optionsMenuActionRefs);\n }\n\n /**\n * Convert cardView displayField sortOrders to LMBusActionReference objects\n */\n private getSortMenuActionRefs(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n return this.lmListSpecUtilService.cardViewSortOrders(listSpec).map(sortOrder => this.sortOrderToActionRef(sortOrder));\n }\n\n /**\n * Make a LMBusActionReference object from a LMCardSortOrder object\n */\n private sortOrderToActionRef(sortOrder: LMCardSortOrder): LMBusActionReference {\n const sortOrderId = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ?\n AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM : sortOrder.sortOrderId;\n\n return {\n id: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM,\n automationId: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM,\n elementId: sortOrderId,\n type: 'standard',\n label: sortOrder.sortOrderLabel,\n name: sortOrder.sortOrderName\n };\n }\n\n private getOptionsMenuActionRefs(listSpec: LMListSpec, listStateInfo: LMListStateInfo, moreActionsMenu?: boolean): Array {\n if (listSpec?.listType === 'select' && this.lmContextService.casualMode()) {\n return;\n }\n\n try {\n const context = this.lmContextService.getContext();\n const disallowExport = context.disallowExport;\n const configuredFeatures = context.configuredFeatures;\n const noPdfInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToPDF) !== -1;\n const noCsvInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_ExportToCSV) !== -1;\n const noCreateReportInConfig = this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_CreateReport); // this.lmContextService.isCreateReportEnabled();\n const noConfigInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_Configuration) !== -1;\n const noPersonlizationInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_Personalization) !== -1;\n const noLimitedInConfig = configuredFeatures.indexOf(AppConstants.FEATURE_LimitedListPersonalization) !== -1;\n\n const actionRefs = [];\n\n if (this.includeSearch(listSpec, listStateInfo) && !moreActionsMenu) {\n actionRefs.push(this.getStandardOptionsMenuItems().search);\n }\n\n if (!disallowExport && noPdfInConfig) {\n actionRefs.push(this.getStandardOptionsMenuItems().printToFile);\n }\n\n if (noCsvInConfig && listStateInfo.dataViewSet) {\n actionRefs.push(this.getStandardOptionsMenuItems().exportToCSV);\n }\n\n if (noCreateReportInConfig) {\n actionRefs.push(this.getStandardOptionsMenuItems().createReport);\n }\n\n actionRefs.push(this.getStandardOptionsMenuItems().relatedReport);\n\n if (noConfigInConfig || noPersonlizationInConfig || noLimitedInConfig) {\n actionRefs.push(this.getStandardOptionsMenuItems().personalize);\n }\n if (listStateInfo.selectedDataView\n && !listStateInfo.selectedDataView.isNewRow\n && listSpec.busClassSpec\n && (listSpec.busClassSpec.implAuditing || listSpec.busClassSpec.implEffectiveDated)\n && !(this.lmListSpecUtilService.isColumnarView(listSpec) && listStateInfo.displayAs === 'chart')\n ) {\n if (!listStateInfo.selectedDataView.viewAuditSecured) {\n const auditLogRef: LMBusActionReference = this.getStandardOptionsMenuItems().auditLog;\n auditLogRef.label = this.lmFormatUtilService.formatMessage(auditLogRef.label, listSpec.busClassSpec.name);\n actionRefs.push(auditLogRef);\n }\n\n if (!listStateInfo.selectedDataView.viewFullAuditSecured) {\n const fullAuditLogRef: LMBusActionReference = this.getStandardOptionsMenuItems().fullAuditLog;\n fullAuditLogRef.label = this.lmFormatUtilService.formatMessage(fullAuditLogRef.label, listSpec.busClassSpec.name);\n actionRefs.push(this.getStandardOptionsMenuItems().fullAuditLog);\n }\n }\n\n if (listSpec.busListSpec.implementsAuditCompare\n && !(this.lmListSpecUtilService.isColumnarView(listSpec) && listStateInfo.displayAs === 'chart')) {\n actionRefs.push(this.getStandardOptionsMenuItems().auditCompare);\n\n }\n\n return actionRefs;\n } catch (e) {\n this.lmLoggerService.error(e);\n }\n }\n\n private buildCalledOutToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const isCardViewWithDetailSection = this.lmListSpecUtilService.isCardViewWithDetailSections(listSpec);\n const calledOutActionRefs: LMBusActionReference[] = this.getCalledOutToolbarActionRefs(listSpec, listStateInfo);\n\n let calledOutToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(listSpec, calledOutActionRefs);\n\n if (isCardViewWithDetailSection) {\n // Allow one button to be outside the overflow menu when a card view with details section\n calledOutToolbarButtons.filter((button, index) => index > 0).forEach(button => button.isMoreMenuItem = true);\n\n // -----------------------------------------------------------------------------\n // build any secondary toolbar based on the secondaryToolbarButtonIds array\n // -----------------------------------------------------------------------------\n this.buildSecondaryToolbarButtons(listSpec, listStateInfo);\n }\n\n if (!this.lmContextService.casualMode() && !listStateInfo.calledOutActionsOnly) {\n const secondaryActionRefs: Array = this.getSecondaryToolbarActionReferences(listSpec, listStateInfo);\n const excludeActionRefs = [ ...calledOutActionRefs, ...secondaryActionRefs ];\n const includeCreateActions = !this.hasCreateMenu(listSpec.busListSpec.toolbar);\n const moreMenuItems = this.getAllActionsMenuItems(listSpec, listStateInfo, excludeActionRefs, includeCreateActions);\n calledOutToolbarButtons = [ ... calledOutToolbarButtons, ... moreMenuItems ];\n }\n\n this.toolbarButtons = [ ...this.toolbarButtons, ...calledOutToolbarButtons ];\n }\n\n private getCalledOutToolbarActionRefs(listSpec: LMListSpec, listStateInfo: LMListStateInfo): LMBusActionReference[] {\n return listSpec.busListSpec.toolbar\n .filter(actionRef => {\n let includeAction = this.includeCalledOutActionRef(actionRef, listSpec, listStateInfo);\n if (includeAction && listStateInfo.isSelectListInSelectionMode) {\n includeAction = this.includeSelectionModeCalledOutActionRefs(actionRef, listSpec, listStateInfo);\n }\n return includeAction;\n })\n .map(actionRef =>\n this.mapCalledOutActionRef(listSpec, actionRef, listStateInfo));\n }\n\n private includeCalledOutActionRef(actionRef: LMBusActionReference, listSpec: LMListSpec, listStateInfo: LMListStateInfo): boolean {\n // -----------------------------------------------------------------------------\n // filter out the sort button if it's used anywhere other than a list-view\n // -----------------------------------------------------------------------------\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_SORT) {\n return (this.lmListSpecUtilService.hasCardViewSort(listSpec) && !!listStateInfo.dataViewSet && !!listStateInfo.dataViewSet.pagingInfo);\n }\n\n // -----------------------------------------------------------------------------\n // exclude any secondary toolbar buttons from the primary toolbar\n // -----------------------------------------------------------------------------\n if (this.isSecondaryToolbarButton(actionRef.id)) {\n return false;\n }\n\n if (listSpec.showAsMingleWidget) {\n if (actionRef.type !== 'standard') {\n return false;\n }\n\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_SEARCH) {\n // -----------------------------------------------------------------------------\n // If this listSpec has a card view only (i.e. no other display fields) then\n // don't allow a search button. Keyword search is allowed and it handled\n // already by lm-list.component.\n // -----------------------------------------------------------------------------\n if (this.lmListSpecUtilService.isCardViewOnly(listSpec)) {\n return false;\n }\n\n // -----------------------------------------------------------------------------\n // allow normal datagrids to use the filter bar when in a mingle widget\n // -----------------------------------------------------------------------------\n return true;\n } else {\n return false;\n }\n }\n return true;\n }\n\n private includeSelectionModeCalledOutActionRefs(actionRef: LMBusActionReference, listSpec: LMListSpec, listStateInfo: LMListStateInfo): boolean {\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_REFRESH\n || actionRef.id === AppConstants.STANDARD_TOOLBAR_SEARCH\n || actionRef.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON) {\n return true;\n }\n\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_SORT) {\n return (this.lmListSpecUtilService.hasCardViewSort(listSpec) && !!listStateInfo.dataViewSet && !!listStateInfo.dataViewSet.pagingInfo);\n }\n\n const actionSpec: LMActionSpec = listSpec.busClassSpec.actions[ actionRef.index ];\n return (actionSpec?.type === AppConstants.ACTION_TYPE_CREATE);\n }\n\n private mapCalledOutActionRef(listSpec: LMListSpec, actionRef: LMBusActionReference, listStateInfo: LMListStateInfo): LMBusActionReference {\n\n if (!actionRef.label && actionRef.labelMessageRule) {\n const dataView = listStateInfo.selectedDataView ? listStateInfo.selectedDataView : listStateInfo.dataViewSet.data[ 0 ];\n actionRef.label = this.lmFormatUtilService.formatMessageRule(actionRef.labelMessageRule, dataView );\n }\n\n // filter out the sort button if it's used anywhere other than a list-view\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_SORT) {\n return this.buildSortActionRef(actionRef, listStateInfo);\n }\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_SAVEDSEARCHES) {\n return this.getStandardToolbarActions().userListViewMenu;\n }\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_HELPERLIST && listSpec.busListSpec.helperLists && listSpec.busListSpec.helperLists.length > 1) {\n return {\n id: AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON,\n automationId: AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON,\n type: 'standard',\n tooltip: Soho.Locale.translate('HelperList'),\n icon: 'amend'\n };\n }\n\n if (actionRef.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON) {\n\n const actionSpecArray: Array = this.lmActionService.getCreateActions(\n listSpec.busClassSpec.actions, listStateInfo.dataViewSet.header.actionIndexes);\n\n if (listStateInfo.inlineCreateEnabled && listSpec.busListSpec.allowFormCreate) {\n const inlineCreateAction: LMActionSpec = { name: AppConstants.STANDARD_TOOLBAR_INLINECREATE, type: 'CREATE' };\n actionSpecArray.push(inlineCreateAction);\n }\n\n // if only one valid create action, display that instead of the called out create menu\n if (actionSpecArray && actionSpecArray.length === 1) {\n const createActionRefs: Array = this.actionSpecsToActionRefs(actionSpecArray);\n const createRef = createActionRefs[0];\n\n // If there is no label on called out, show no label\n if (!actionRef.label) {\n createRef.label = undefined;\n }\n\n // if single create doesn't have a icon, use the create menu icon\n if (!createRef.icon) {\n createRef.icon = actionRef.icon;\n }\n\n return createRef;\n }\n }\n\n return actionRef;\n }\n\n private buildProcessFlowActionToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n if (this.lmContextService.getContext().configuredFeatures.indexOf(AppConstants.FEATURE_ShowInbasketWorkFlowActions) === -1\n || this.lmContextService.hasAsOfDateInPast()) {\n return;\n }\n\n if (listStateInfo.selectedRows.length > 1) {\n const dataViews: LMDataView[] = [];\n listStateInfo.selectedRows.forEach((selectedRow) => {\n dataViews.push(listStateInfo.dataViewSet.data[selectedRow]);\n });\n const allCommonPFActions = this.lmActionService.getValidProcessFlowActions(dataViews);\n const pfActionRefs = this.pfActionsToActionRefArray(allCommonPFActions);\n const pfActionToolbarBttons: Array = this.actionRefArrayToToolbarButtonArray(listSpec, pfActionRefs);\n this.toolbarButtons = [ ...this.toolbarButtons, ...pfActionToolbarBttons ];\n return;\n }\n\n if (listStateInfo.selectedDataView && listStateInfo.selectedDataView.processFlowActions && listStateInfo.selectedDataView.processFlowActions.length > 0) {\n const pfActionRefs = this.pfActionsToActionRefArray(listStateInfo.selectedDataView.processFlowActions);\n const pfActionToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(listSpec, pfActionRefs);\n\n this.toolbarButtons = [ ...this.toolbarButtons, ...pfActionToolbarButtons ];\n }\n }\n\n private buildStandardToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n const isCardViewWithDetailSections = this.lmListSpecUtilService.isCardViewWithDetailSections(listSpec);\n let standardActionRefs: Array = this.getStandardToolbarActionReferences(listSpec, listStateInfo);\n let standardToolbarButtons: Array = this.actionRefArrayToToolbarButtonArray(listSpec, standardActionRefs, isCardViewWithDetailSections, listStateInfo);\n\n const deleteActionRefs = this.lmActionService.getValidListDeleteActions(listSpec.busClassSpec.actions, listStateInfo.dataViewSet, listStateInfo.selectedRows);\n\n let exludedActionRefs = standardActionRefs;\n if (this.lmListSpecUtilService.isCardViewWithDetailSections(listSpec)) {\n // -----------------------------------------------------------------------------\n // move all buttons for a cardList with detail section into the overflow or\n // more menu.\n // -----------------------------------------------------------------------------\n standardToolbarButtons.forEach(toolbarButton => toolbarButton.isMoreMenuItem = true);\n\n // -----------------------------------------------------------------------------\n // filter out standard delete when a delete action exists on the business class\n // -----------------------------------------------------------------------------\n if (deleteActionRefs.length > 0) {\n standardToolbarButtons = standardToolbarButtons.filter(button => !(button.actionReference && button.actionReference.id === AppConstants.STANDARD_TOOLBAR_DELETE));\n standardActionRefs = standardActionRefs.filter(action => !(action.id === AppConstants.STANDARD_TOOLBAR_DELETE));\n }\n\n // -----------------------------------------------------------------------------\n // build any secondary toolbar based on the secondaryToolbarButtonIds array\n // -----------------------------------------------------------------------------\n const secondaryActionRefs: Array = this.getSecondaryToolbarActionReferences(listSpec, listStateInfo);\n this.secondaryToolbarButtons = this.actionRefArrayToToolbarButtonArray(listSpec, secondaryActionRefs);\n\n exludedActionRefs = [ ...standardActionRefs, ...secondaryActionRefs ];\n const userListViewMenuButton = standardToolbarButtons.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU);\n if (userListViewMenuButton) {\n const userListView: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n userListViewMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, userListView);\n }\n } else {\n if (!this.lmActionService.hasStandardDelete(deleteActionRefs)) {\n exludedActionRefs = exludedActionRefs.filter(action => !(action.id === AppConstants.STANDARD_TOOLBAR_DELETE));\n }\n }\n\n if (listStateInfo.suppressStandardToolbar) {\n // if suppress standard toolbar, move all buttons into the more menu\n standardToolbarButtons.forEach(toolbarButton => toolbarButton.isMoreMenuItem = true);\n // If UserListView is in the moreMenuItem, then it requires menu to be set.\n const userListViewMenuButton = standardToolbarButtons.find(button => button.actionReference.id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU);\n if (userListViewMenuButton) {\n const userListView: Array = [ { id: 'noop', type: 'noop', label: 'Not yet implemented' } ];\n userListViewMenuButton.menu = this.createToolbarMenuItemsFromActionReferences(listSpec, userListView);\n }\n }\n\n const moreMenuItems: Array = this.getAllActionsMenuItems(listSpec, listStateInfo, exludedActionRefs, false);\n standardToolbarButtons = [ ... standardToolbarButtons, ... moreMenuItems ];\n this.toolbarButtons = [ ...this.toolbarButtons, ...standardToolbarButtons ];\n }\n\n private buildSecondaryToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo) {\n const secondaryActionRefs: Array = this.getSecondaryToolbarActionReferences(listSpec, listStateInfo);\n this.secondaryToolbarButtons = this.actionRefArrayToToolbarButtonArray(listSpec, secondaryActionRefs);\n }\n\n private getSecondaryToolbarActionReferences(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n const allowUpdate = this.lmListSpecUtilService.allowUpdate(listSpec);\n\n const actionReferenceArray: Array = [];\n\n // --------------------------------------------------------------------\n // SAVE\n // --------------------------------------------------------------------\n if (allowUpdate && this.isSecondaryToolbarButton(AppConstants.STANDARD_SAVE)) {\n actionReferenceArray.push(this.getStandardToolbarActions().save);\n }\n\n // --------------------------------------------------------------------\n // REFRESH\n // --------------------------------------------------------------------\n if (this.isSecondaryToolbarButton(AppConstants.STANDARD_TOOLBAR_REFRESH)) {\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n }\n\n return actionReferenceArray;\n }\n\n private isSecondaryToolbarButton(toolbarButtonId: string): boolean {\n return this.secondaryToolbarButtonIds.some(buttonId => buttonId === toolbarButtonId);\n }\n\n private getStandardToolbarActionReferences(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n const helperLists = this.getHelperLists(listSpec);\n const isUpdatable = listStateInfo.isUpdatable;\n const openActionRestricted = this.getOpenActionRestricted(listSpec);\n const includeChartMenu = this.getIncludeChartMenu(listSpec);\n const includeSaveAndNew = this.getIncludeSaveAndNew(listStateInfo);\n\n const actionReferenceArray: Array = [];\n\n // --------------------------------------------------------------------\n // SEARCH FOR MINGLE?!?\n // --------------------------------------------------------------------\n const includeSearch = this.includeSearch(listSpec, listStateInfo);\n if (includeSearch && listSpec.showAsMingleWidget) {\n actionReferenceArray.push(this.getStandardToolbarActions().search);\n return actionReferenceArray;\n }\n\n // --------------------------------------------------------------------\n // CREATE\n // --------------------------------------------------------------------\n const actionSpecArray: Array = this.lmActionService.getCreateActions(\n listSpec.busClassSpec.actions, listStateInfo.dataViewSet?.header.actionIndexes);\n\n if (listStateInfo.inlineCreateEnabled && listSpec.busListSpec.allowFormCreate) {\n const inlineCreateAction: LMActionSpec = { name: AppConstants.STANDARD_TOOLBAR_INLINECREATE, type: 'CREATE' };\n actionSpecArray.push(inlineCreateAction);\n }\n\n if (actionSpecArray && actionSpecArray.length === 1) {\n actionReferenceArray.push(this.getStandardToolbarActions().create);\n } else if (actionSpecArray && actionSpecArray.length > 1) {\n actionReferenceArray.push(this.getStandardToolbarActions().createMenu);\n }\n\n // TODO tpatton remove restriction and add drill into.\n // --------------------------------------------------------------------\n // OPEN\n // The open action runs the first valid update action\n // If there is no valid update action, then the form is opened\n // using the 'formIs...\" declaration or the primary form in a read-only state\n // --------------------------------------------------------------------\n if (!openActionRestricted\n && !(this.lmListSpecUtilService.isColumnarView(listSpec) && listStateInfo.displayAs === 'chart')) {\n actionReferenceArray.push(this.getStandardToolbarActions().open);\n }\n\n // --------------------------------------------------------------------\n // SAVE\n // --------------------------------------------------------------------\n // dependent lists save functionality will be handle by the\n // controlling list or form.\n // ------------------------------------------------------------\n if (isUpdatable && !listSpec.dependentList) {\n const saveAction = this.getStandardToolbarActions().save;\n if (listStateInfo.isRootComponent && !this.isSecondaryToolbarButton(saveAction.id)) {\n // --------------------------------------------------------------------\n // make sure it's not in the secondary toolbar before adding to the\n // primary toolbar\n // --------------------------------------------------------------------\n actionReferenceArray.push(saveAction);\n }\n }\n\n // --------------------------------------------------------------------\n // SAVE-AND-NEW\n // --------------------------------------------------------------------\n if (includeSaveAndNew) {\n actionReferenceArray.push(this.getStandardToolbarActions().saveAndNew);\n }\n\n // --------------------------------------------------------------------\n // SORT (for card views)\n // ------------------------------------------------------------\n\n // Sort actionRef. Only add if dataViewSet is available.\n // dataViewSet.pagingInfo.isAscending is needed to set the\n // icon and tooltip\n // ------------------------------------------------------------\n if (this.lmListSpecUtilService.hasCardViewSort(listSpec) && listStateInfo.dataViewSet && listStateInfo.dataViewSet.pagingInfo) {\n actionReferenceArray.push(this.buildSortActionRef(this.getStandardToolbarActions().sort, listStateInfo));\n }\n\n // --------------------------------------------------------------------\n // DELETE\n // ------------------------------------------------------------\n if (this.lmActionService.hasNonRestrictedAction(listSpec.busClassSpec.actions, 'DELETE')\n && !this.lmListSpecUtilService.isColumnarView(listSpec)) {\n actionReferenceArray.push(this.getStandardToolbarActions().delete);\n }\n\n // --------------------------------------------------------------------\n // FILTER\n // ------------------------------------------------------------\n if (includeSearch) {\n actionReferenceArray.push(this.getStandardToolbarActions().search);\n }\n\n // --------------------------------------------------------------------\n // UserListView\n // ------------------------------------------------------------\n if (this.showUserListViewToolbarButton(listSpec, listStateInfo)) {\n actionReferenceArray.push(this.getStandardToolbarActions().userListViewMenu);\n }\n\n // ------------------------------------------------------------\n // dependent lists refresh functionality will be handle by the\n // controlling list or form.\n // --------------------------------------------------------------------\n // REFRESH\n // ------------------------------------------------------------\n if ((listStateInfo.isRootComponent || listSpec.listType === 'select') && !listSpec.dependentList && !this.isSecondaryToolbarButton(AppConstants.STANDARD_TOOLBAR_REFRESH)) {\n // --------------------------------------------------------------------\n // make sure it's not in the secondary toolbar before adding to the\n // primary toolbar\n // --------------------------------------------------------------------\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n }\n\n // --------------------------------------------------------------------\n // HELPERLIST\n // ------------------------------------------------------------\n if (helperLists) {\n if (helperLists.length > 1) {\n actionReferenceArray.push({\n id: AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON,\n automationId: AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON,\n type: 'standard',\n tooltip: Soho.Locale.translate('HelperList'),\n icon: 'amend'\n });\n } else {\n actionReferenceArray.push({\n id: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n automationId: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n type: 'standard',\n tooltip: Soho.Locale.translate('HelperList'),\n icon: 'amend'\n });\n }\n }\n\n // --------------------------------------------------------------------\n // CHART MENU\n // ------------------------------------------------------------\n if (includeChartMenu) {\n actionReferenceArray.push(this.getStandardToolbarActions().chartsMenu);\n }\n\n return actionReferenceArray;\n }\n\n private buildSortActionRef(sortActionRef: LMBusActionReference, listStateInfo: LMListStateInfo): LMBusActionReference {\n if (listStateInfo.dataViewSet.pagingInfo.isAscending) {\n sortActionRef.icon = 'sort-ascending';\n } else {\n sortActionRef.icon = 'sort-descending';\n }\n return sortActionRef;\n }\n\n private getAllValidActionReferences(\n listSpec: LMListSpec,\n listStateInfo: LMListStateInfo,\n excludedActionRefs: Array,\n includeCreateActions: boolean,\n noUpdateMode: boolean,\n isContextMenu?: boolean\n ): Array {\n let validActionRefs: Array = [];\n\n // Sort actionRef. Only add if dataViewSet is available.\n // dataViewSet.pagingInfo.isAscending is needed to set the\n // icon and tooltip\n // ------------------------------------------------------------\n\n if (this.lmListSpecUtilService.hasCardViewSort(listSpec)\n && listStateInfo.dataViewSet?.pagingInfo\n && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_SORT)\n ) {\n validActionRefs.push(this.buildSortActionRef(this.getStandardToolbarActions().sort, listStateInfo));\n }\n // todo kris why is this at the top of the action ref list? - Phillip\n if (listStateInfo.dataViewSet?.header.auditView && listStateInfo.selectedDataView) {\n validActionRefs = validActionRefs.concat(this.getAuditViewActions());\n }\n\n // TODO tpatton remove restriction and add drill into.\n // --------------------------------------------------------------------\n // OPEN\n // --------------------------------------------------------------------\n if (!listSpec.busListSpec.openActionRestricted\n && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_OPEN )\n && !(listStateInfo.isSelectListInSelectionMode && !isContextMenu)\n && !(this.lmListSpecUtilService.isColumnarView(listSpec) && listStateInfo.displayAs === 'chart')) {\n validActionRefs.push(this.getStandardToolbarActions().open);\n }\n\n // In noUpdateMode such as when As Of Date is in the past, do not include update/instance/delete actions\n if (noUpdateMode || this.lmListSpecUtilService.isColumnarView(listSpec)) {\n return validActionRefs;\n }\n\n // --------------------------------------------------------------------\n // SAVE\n // add save when the list is root and it or a dependent list\n // implements inline create or allows update\n // --------------------------------------------------------------------\n if (listStateInfo.isRootComponent && !listSpec.dependentList && listStateInfo.isUpdatable) {\n if (!excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_SAVE)) {\n validActionRefs.push(this.getStandardToolbarActions().save);\n }\n }\n\n // --------------------------------------------------------------------\n // SAVE AND NEW\n // --------------------------------------------------------------------\n if (listStateInfo.inlineCreateEnabled) {\n validActionRefs.push(this.getStandardToolbarActions().saveAndNew);\n }\n\n // --------------------------------------------------------------------\n // REFRESH\n // --------------------------------------------------------------------\n if ((listStateInfo.isRootComponent || listSpec.listType === 'select') && !listSpec.dependentList && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_REFRESH )) {\n validActionRefs.push(this.getStandardToolbarActions().refresh);\n }\n\n // --------------------------------------------------------------------\n // SEARCH\n // --------------------------------------------------------------------\n if (this.includeSearch(listSpec, listStateInfo) && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_SEARCH )) {\n if (listSpec.busListSpec.searchForm || (!listSpec.busListSpec.searchForm && this.lmListSpecUtilService.isFilterable(listSpec))) {\n validActionRefs.push(this.getStandardToolbarActions().search);\n }\n }\n\n if (this.showUserListViewToolbarButton(listSpec, listStateInfo) && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU )) {\n validActionRefs.push(this.getStandardToolbarActions().userListViewMenu);\n }\n\n\n // When a select list is in selection mode only include create, refresh, and search/sort actions\n if (listStateInfo.isSelectListInSelectionMode) {\n return validActionRefs;\n }\n\n if (listSpec.busListSpec.helperLists?.length === 1 && !excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_HELPERLIST ) && !isContextMenu) {\n validActionRefs.push({\n id: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n automationId: AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n type: 'standard',\n tooltip: Soho.Locale.translate('HelperList'),\n icon: 'amend',\n validity: listSpec.busListSpec.helperLists[ 0 ].validity\n });\n }\n\n let addSeparator = false;\n\n if (includeCreateActions) {\n // INLINE CREATE/ADD ROW\n if (listStateInfo.inlineCreateEnabled && listSpec.busListSpec.allowFormCreate) {\n validActionRefs.push(this.getStandardActionMenuItems().inlineCreate);\n }\n\n if (listStateInfo.createWithinEnabled) {\n validActionRefs.push(this.getStandardActionMenuItems().createWithin);\n }\n addSeparator = true;\n }\n\n // --------------------------------------------------------------------\n // COPY ROW\n // --------------------------------------------------------------------\n if (listStateInfo.inlineCreateEnabled) {\n validActionRefs.push(this.getStandardActionMenuItems().copyRow);\n addSeparator = true;\n }\n\n validActionRefs = this.filterOutExcludedActions(validActionRefs, excludedActionRefs);\n\n if (addSeparator && validActionRefs?.length && validActionRefs[validActionRefs.length - 1].id !== this.getStandardSeparatorMenuItem().id) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n addSeparator = false;\n }\n\n const actions = listSpec.busClassSpec.actions;\n\n if (!listSpec.isTemplateList && includeCreateActions) {\n // -----------------------------------------------------------------------------\n // Create Action is never valid in a template list! The UI uses the update or\n // open action and dynamically switches to a create action if the template\n // target dataView is not defined\n // -----------------------------------------------------------------------------\n const createActionSpecs: Array = this.lmActionService.getCreateActions(actions, listStateInfo.dataViewSet?.header.actionIndexes);\n const createActionRefs: Array = this.actionSpecsToActionRefsSorted(createActionSpecs);\n\n validActionRefs = validActionRefs.concat(createActionRefs);\n addSeparator = true;\n }\n\n // --------------------------------------------------------------------\n // IMPORT\n // --------------------------------------------------------------------\n if (listStateInfo.dataViewSet) {\n const importActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidListImportActions(actions, listStateInfo.dataViewSet));\n validActionRefs = validActionRefs.concat(importActionRefs);\n if (importActionRefs && importActionRefs.length > 0) {\n addSeparator = true;\n }\n }\n\n validActionRefs = this.filterOutExcludedActions(validActionRefs, excludedActionRefs);\n\n if (addSeparator && (validActionRefs && validActionRefs.length > 0) && validActionRefs[validActionRefs.length - 1].id !== this.getStandardSeparatorMenuItem().id) {\n validActionRefs.push(this.getStandardSeparatorMenuItem());\n }\n\n // Sort updateActions, instanceActions, setActions by label\n let updateActionRefs = [];\n let setActionRefs = [];\n\n const multipleRowsSelected = !listStateInfo.selectedRows ? false : listStateInfo.selectedRows.length > 1;\n\n if (!multipleRowsSelected && !listSpec.busListSpec.openActionRestricted ) {\n updateActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidListUpdateActions(actions, listStateInfo.dataViewSet, listStateInfo.selectedRows), listStateInfo.selectedDataView);\n }\n\n // set actions DO NOT run against a list record\n setActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidListSetActions(actions, listStateInfo.dataViewSet));\n\n const instanceActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidListInstanceActions(actions, listStateInfo.dataViewSet, listStateInfo.selectedRows));\n\n let a = [];\n\n // Do NOT show the update action unless there are multiple,\n // If there is zero or 1 update action then the UI should only display the\n // open action\n // if (updateActionRefs && updateActionRefs.length > 1) {\n a = a.concat(updateActionRefs);\n // }\n\n a = a.concat(instanceActionRefs);\n a = a.concat(setActionRefs);\n a = _.sortBy(a, 'label');\n\n validActionRefs = validActionRefs.concat(a);\n\n const deleteActionRefs = this.actionSpecsToActionRefs(this.lmActionService.getValidListDeleteActions(actions, listStateInfo.dataViewSet, listStateInfo.selectedRows));\n // is the standard delete on the toolbar?\n if (excludedActionRefs.some(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_DELETE)) {\n // do not display a single delete action in the More menu\n if (deleteActionRefs.length > 1) {\n validActionRefs = validActionRefs.concat(deleteActionRefs);\n }\n } else {\n validActionRefs = validActionRefs.concat(deleteActionRefs);\n }\n\n return this.filterOutExcludedActions(validActionRefs, excludedActionRefs);\n }\n\n private buildSelectListCasualModeToolbarButtons(listSpec: LMListSpec): void {\n const actionReferenceArray: Array = [];\n\n if (!listSpec.busListSpec.keywordSearch) {\n actionReferenceArray.push(this.getStandardToolbarActions().search);\n }\n\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n const selectListButtons = this.actionRefArrayToToolbarButtonArray(listSpec, actionReferenceArray);\n this.toolbarButtons = [ ...this.toolbarButtons, ...selectListButtons ];\n }\n\n private buildSelectListToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo): void {\n if (listSpec.busListSpec.toolbar) {\n this.buildCalledOutToolbarButtons(listSpec, listStateInfo);\n return;\n }\n\n const actionReferenceArray: Array = [];\n\n actionReferenceArray.push(this.getStandardToolbarActions().search);\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n let selectListButtons = this.actionRefArrayToToolbarButtonArray(listSpec, actionReferenceArray);\n\n const excludedActionRefs = actionReferenceArray;\n excludedActionRefs.push(this.getStandardToolbarActions().open);\n\n const moreMenuItems: Array = this.getAllActionsMenuItems(listSpec, listStateInfo, excludedActionRefs, false);\n selectListButtons = [ ... selectListButtons, ... moreMenuItems ];\n this.toolbarButtons = [ ...this.toolbarButtons, ...selectListButtons ];\n }\n\n private getChartMenuActionRefs(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n const chartMenuOptions = this.getChartMenuOptions(listSpec);\n const chartMenuItem: Array = [];\n const listTitle = listSpec.busListSpec.title;\n const header = listStateInfo.dataViewSet?.header;\n\n if (!listSpec.busListSpec.showChartsOnly &&\n listSpec.listType !== 'cubeview' &&\n (!listSpec.busListSpec.implementsTreeView || !listSpec.busListSpec.implementsOrgChartView)\n ) {\n chartMenuItem.push({\n id: 'list',\n type: 'list',\n isChecked: this.lmListSpecUtilService.isColumnarView(listSpec) && listStateInfo?.chartName === undefined,\n label: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('DefaultList'), this.lmFormatUtilService.formatMessageRule(listTitle, header))\n });\n }\n\n if (listSpec.listType !== 'cubeview' &&\n listSpec.busListSpec.implementsTreeView &&\n !listSpec.busListSpec.implementsOrgChartView\n ) {\n chartMenuItem.push({\n id: 'tree',\n type: 'tree',\n label: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('TreeList'), this.lmFormatUtilService.formatMessageRule(listTitle, header))\n });\n }\n\n if (listSpec.busListSpec.implementsOrgChartView &&\n listSpec.busListSpec.displayFields &&\n listSpec.busListSpec.displayFields.length > 0\n ) {\n chartMenuItem.push({\n id: 'hierarchy',\n type: 'hierarchy',\n label: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('HierarchyList'), this.lmFormatUtilService.formatMessageRule(listTitle, header))\n });\n }\n\n if (chartMenuOptions) {\n for (const key in chartMenuOptions) {\n if (!chartMenuOptions.hasOwnProperty((key))) {\n continue;\n }\n\n const chart = chartMenuOptions[ key ];\n let label = '';\n if (chart.title) {\n label = this.lmFormatUtilService.formatMessageRule(chart.title, header);\n }\n\n let chartMenu: LMBusActionReference;\n if (listSpec.listType === 'cubeview') {\n chartMenu = {\n id: AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON,\n automationId: AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON,\n type: 'cube',\n name: chart.id,\n label,\n };\n if (listStateInfo.cubeDisplayChartName\n && listStateInfo.cubeDisplayChartName === chart.id) {\n chartMenu.isChecked = true;\n }\n } else {\n chartMenu = {\n id: chart.id,\n type: listSpec.busListSpec.charts.Calendar ? 'calendar' : 'chart',\n label,\n };\n if (this.lmListSpecUtilService.isColumnarView(listSpec)\n && listStateInfo?.chartName === chart.id) {\n chartMenu.isChecked = true;\n }\n }\n chartMenuItem.push(chartMenu);\n\n }\n }\n\n return chartMenuItem;\n }\n\n protected includeActionRef(spec: any, actionReference: LMBusActionReference, listStateInfo?: LMListStateInfo): boolean {\n const listSpec: LMListSpec = spec;\n if (actionReference.id === AppConstants.STANDARD_TOOLBAR_SEARCH) {\n return this.includeSearch(listSpec, listStateInfo);\n }\n return true;\n }\n\n private includeSearch(listSpec: LMListSpec, listStateInfo?: LMListStateInfo): boolean {\n\n /**\n * Search form display\n * default = The search form is closed on initial load but can be toggled open.\n * always = The search form will always display no toggle is needed.\n * initial = The search form will display on initial load but can be toggled.\n */\n\n const searchForm = listSpec.busListSpec.searchForm;\n const displaySearchAlways = searchForm ? searchForm.alwaysDisplaySearch : false;\n const displaySearchDefault = listSpec.busListSpec.displaySearch !== 'default' && listSpec.busListSpec.displaySearch !== 'initially';\n const isCardStack = this.lmListSpecUtilService.isCardViewOnly(listSpec);\n const useSearchAsFilter = searchForm ? listSpec.busListSpec.searchForm.useSearchAsFilter : false;\n let isChart = false;\n\n if (listSpec.busListSpec && listSpec.busListSpec.charts) {\n if (listSpec.busListSpec.defaultChartName) {\n isChart = true;\n } else {\n const listResource = new ListResource({ resourceId: listSpec.resourceId });\n if (listResource.chartName) {\n isChart = true;\n }\n }\n\n if (listStateInfo && (listStateInfo.displayAs !== 'chart' && listStateInfo.displayAs !== 'calendar')) {\n isChart = false;\n }\n }\n\n // Don't show filters in the case where the list is a chart\n // LMCLIENT-27998 except if a search form is configured\n if (isChart && !searchForm) {\n return false;\n }\n\n if (isCardStack) {\n\n if (displaySearchAlways) {\n // ----------------------------------------------------------------------------\n // if display always then no need to display a search button\n // ----------------------------------------------------------------------------\n return false;\n }\n\n return !!searchForm;\n }\n\n if (displaySearchAlways) {\n return false;\n }\n\n // if (listSpec.busListSpec.implementsCubeView /*&& m_searchPanel == USING_FILTER_COLUMN_PANEL*/) { // Impl the cmt\n // return false;\n // }\n\n // if both 'use as filter' and 'always display' are false and search form is not default -\n // then search form will always display, don't show toggle button\n if (!displaySearchAlways && !useSearchAsFilter && displaySearchDefault) {\n return false;\n }\n\n return searchForm ? true : listSpec.busListSpec.implementsCubeView ? false : this.lmListSpecUtilService.isFilterable(listSpec);\n }\n\n private showUserListViewToolbarButton(listSpec: LMListSpec, listStateInfo: LMListStateInfo): boolean {\n if (this.lmContextService.showUserListView()) {\n // TODO: What if the list has no search form or filtrable column. It can have state related to sort to be persisted in UserListView.\n // TODO: Cubes may have no search form, but other information to be persisted.\n\n // Show filter icon in toolbar? (search form or a filtrable column)\n if (this.includeSearch(listSpec, listStateInfo)) {\n return true;\n }\n\n // Has search form and display search always or use search as filter\n const searchForm = listSpec.busListSpec.searchForm;\n const displaySearchAlways = searchForm ? searchForm.alwaysDisplaySearch : false;\n const useSearchAsFilter = searchForm ? listSpec.busListSpec.searchForm.useSearchAsFilter : false;\n if (displaySearchAlways || useSearchAsFilter) {\n return true;\n }\n\n // Filter bar is always open, so filter toolbar button is not rendered\n const displaySearchDefault = listSpec.busListSpec.displaySearch !== 'default' && listSpec.busListSpec.displaySearch !== 'initially';\n if (displaySearchDefault) {\n return true;\n }\n\n // Has toolbar search field?\n if (this.getToolbarSearchField(listSpec) !== null) {\n return true;\n }\n }\n return false;\n }\n\n private standardActionState(listSpec: LMListSpec, listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton): void {\n let action: string;\n\n const noRowSelected = !listStateInfo.selectedRows || listStateInfo.selectedRows.length === 0 ||\n listStateInfo.selectedRows[0] === -1 || listStateInfo.dataViewSet.data.length === 0 || listStateInfo.selectedRows[0] === undefined;\n const multipleRowsSelected = !listStateInfo.selectedRows ? false : listStateInfo.selectedRows.length > 1;\n const selectedRowIndex: number = !listStateInfo.selectedRows ? -1 : listStateInfo.selectedRows[ 0 ];\n const isUpdateable = listStateInfo.isUpdatable || listStateInfo.inlineCreateEnabled;\n\n if (toolbarButton.actionReference) {\n action = toolbarButton.actionReference.id ? toolbarButton.actionReference.id : toolbarButton.actionReference.label.replace(/\\s/g, '');\n } else if (toolbarButton.actionSpec) {\n action = toolbarButton.actionSpec.type;\n }\n\n let valid = false;\n let visible = false;\n\n /**\n * Disable and hide button if there is no dataset or row selected\n * But not if the button is create, search, options menu, charts menu, or refresh\n */\n if (!listStateInfo.dataViewSet\n || (noRowSelected\n && !isUpdateable\n && !listSpec.busListSpec.implementsCubeView\n && (\n action !== AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON &&\n action !== AppConstants.STANDARD_TOOLBAR_PRINTTOFILE &&\n action !== AppConstants.STANDARD_TOOLBAR_EXPORTPDF &&\n action !== AppConstants.STANDARD_TOOLBAR_EXPORTCSV &&\n action !== AppConstants.STANDARD_TOOLBAR_PERSONALIZE &&\n action !== AppConstants.STANDARD_TOOLBAR_VIEWAUDIT &&\n action !== AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT &&\n action !== AppConstants.STANDARD_TOOLBAR_CREATEREPORT &&\n action !== AppConstants.STANDARD_TOOLBAR_RELATEDREPORT &&\n action !== AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON &&\n action !== AppConstants.STANDARD_TOOLBAR_CREATE &&\n action !== AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON &&\n action !== AppConstants.STANDARD_TOOLBAR_REFRESH &&\n action !== AppConstants.STANDARD_TOOLBAR_SEARCH &&\n action !== AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE &&\n action !== AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVEAS &&\n action !== AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR &&\n action !== AppConstants.STANDARD_TOOLBAR_USERLISTVIEW &&\n action !== AppConstants.STANDARD_TOOLBAR_HELPERLIST &&\n action !== AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON &&\n action !== AppConstants.STANDARD_TOOLBAR_EDITMODE &&\n action !== AppConstants.STANDARD_TOOLBAR_SORT &&\n action !== AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM &&\n action !== AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING &&\n action !== AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING &&\n action !== AppConstants.STANDARD_SAVE))\n ) {\n toolbarButton.state.disabled = true;\n const hideWhenInvalid = (listStateInfo.isSelectListInSelectionMode) ? true : toolbarButton?.actionReference?.hideWhenInvalid;\n toolbarButton.state.visible = !hideWhenInvalid;\n return;\n }\n\n switch (action) {\n case AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_SORT:\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_MENUITEM:\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING:\n case AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING:\n case AppConstants.STANDARD_TOOLBAR_EDITMODE:\n valid = true;\n visible = true;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON:\n valid = true;\n visible = this.getChartMenuActionRefs(listSpec, listStateInfo).length !== 1;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_MENU:\n case AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_MENU:\n case AppConstants.STANDARD_TOOLBAR_CHARTMENU_MENU:\n case AppConstants.STANDARD_TOOLBAR_CREATEMENU_MENU:\n case AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_MENU:\n case AppConstants.STANDARD_TOOLBAR_RELATEDMENU_MENU:\n break;\n\n case AppConstants.STANDARD_TOOLBAR_INLINECREATE:\n valid = true;\n visible = true;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_CREATEWITHIN:\n case AppConstants.STANDARD_TOOLBAR_CREATE:\n case AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON:\n if (listSpec.isTemplateList) {\n // Create Action is never valid in a template list!\n // the UI uses the update or open action and dynamically\n // switches to a create action if the template target dataView is\n // not defined\n valid = false;\n } else {\n const createActionSpecs: LMActionSpec[] = this.lmActionService.getCreateActions(\n listSpec.busClassSpec.actions, listStateInfo.dataViewSet.header.actionIndexes);\n\n if (listStateInfo.inlineCreateEnabled && listSpec.busListSpec.allowFormCreate) {\n const inlineCreateAction: LMActionSpec = { name: AppConstants.STANDARD_TOOLBAR_INLINECREATE, type: 'CREATE' };\n createActionSpecs.push(inlineCreateAction);\n }\n\n valid = createActionSpecs && createActionSpecs.length > 0;\n\n if (valid && AppConstants.STANDARD_TOOLBAR_CREATEWITHIN === action) {\n valid = listStateInfo.createWithinEnabled;\n }\n\n visible = valid;\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_DELETE:\n if (noRowSelected) {\n valid = false;\n // } else if (multipleRowsSelected) {\n // // todo implement me\n // valid = true;\n } else {\n // todo: need to handle multiple selected actions here.\n const dataView: LMDataView = listStateInfo.dataViewSet.data[ selectedRowIndex ];\n const validDeleteActionSpecs = this.lmActionService.getValidListDeleteActions(\n listSpec.busClassSpec.actions, listStateInfo.dataViewSet, listStateInfo.selectedRows);\n valid = (this.lmActionService.hasStandardDelete(validDeleteActionSpecs) || dataView.isNewRow);\n }\n\n visible = true;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_DETAILFIELDS:\n // todo what is this?\n break;\n\n case AppConstants.STANDARD_TOOLBAR_EXPORTPDF:\n case AppConstants.STANDARD_TOOLBAR_EXPORTCSV:\n valid = !this.lmContextService.getContext().disallowExport;\n visible = !this.lmContextService.getContext().disallowExport;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_HELPERLIST:\n valid = listSpec.busListSpec.helperLists && listSpec.busListSpec.helperLists.length === 1;\n\n if (valid) {\n // check if the helper list has validity or visibility conditions\n // these are defined on the panel so they must be reolved using the fromDataView\n const helperList = listSpec.busListSpec.helperLists[0];\n if (helperList.visibility) {\n valid = this.lmConditionUtilService.isValid(helperList.visibility, listStateInfo.fromDataView);\n }\n\n if (valid && helperList.validity) {\n valid = this.lmConditionUtilService.isValid(helperList.validity, listStateInfo.fromDataView);\n }\n\n // check if the called out action has a validity condition\n // this is defined on the list toolbar and is resolved with the dataViewSet\n if (valid && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, listStateInfo.dataViewSet.header);\n }\n visible = true;\n } else {\n visible = false; // why show this action if the list doesn't have any helper lists!\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON:\n valid = true;\n visible = true;\n break;\n case AppConstants.STANDARD_TOOLBAR_NAVIGATION:\n // todo ppatton seems like this should never be hit. The type === navigation in updateToolbarState\n // should have handled it, right?!\n this.navigationActionState(listStateInfo, toolbarButton);\n return;\n\n case AppConstants.STANDARD_TOOLBAR_UPDATE:\n case AppConstants.STANDARD_TOOLBAR_OPEN:\n if (!listSpec.busListSpec.openActionRestricted) {\n visible = true;\n if (listSpec.busListSpec.implementsCubeView && listStateInfo.selectedDataView.openFormResId !== undefined) {\n valid = true;\n } else if (!multipleRowsSelected && !noRowSelected) {\n const dataView: LMDataView = listStateInfo.dataViewSet.data[ selectedRowIndex ];\n const isTreeMoreLink = (dataView)?.isTreeMoreLink;\n valid = !dataView.isNewRow && !isTreeMoreLink;\n } else {\n valid = false;\n }\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON:\n valid = true;\n visible = true;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON:\n if (!this.lmContextService.getContext().disallowNavigations) {\n visible = true;\n valid = !multipleRowsSelected;\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_COPYROW:\n if (listStateInfo.inlineCreateEnabled) {\n if (!multipleRowsSelected && !noRowSelected) {\n const dataView: LMDataView = listStateInfo.dataViewSet.data[ selectedRowIndex ];\n visible = !dataView.isNewRow && !dataView.isSubtotalView && !dataView.isSubtotalSummaryView;\n valid = !dataView.isNewRow && !dataView.isSubtotalView && !dataView.isSubtotalSummaryView;\n }\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SAVENEW:\n if (listStateInfo.inlineCreateEnabled) {\n visible = true;\n valid = listStateInfo.inlineCreateModified;\n }\n break;\n\n case AppConstants.STANDARD_SAVE:\n if (listStateInfo.isUpdatable || listStateInfo.inlineCreateEnabled) {\n visible = true;\n valid = listStateInfo.isModified;\n }\n break;\n\n case AppConstants.STANDARD_TOOLBAR_SEARCH:\n toolbarButton.state.isPressed = listStateInfo.searchFormDisplayed;\n valid = true;\n visible = true;\n break;\n\n // case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE:\n // visible = true;\n // valid = listStateInfo.hasFilterCriteria;\n // break;\n\n case AppConstants.STANDARD_TOOLBAR_USERLISTVIEW:\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n case AppConstants.STANDARD_TOOLBAR_PRINTTOFILE:\n case AppConstants.STANDARD_TOOLBAR_CREATEREPORT:\n case AppConstants.STANDARD_TOOLBAR_RELATEDREPORT:\n case AppConstants.STANDARD_TOOLBAR_PERSONALIZE:\n valid = true;\n visible = true;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWACTION:\n break;\n\n case AppConstants.STANDARD_TOOLBAR_VIEWAUDIT:\n case AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT:\n visible = true;\n valid = listStateInfo.selectedRows.length === 1;\n break;\n\n case AppConstants.STANDARD_TOOLBAR_AUDITCOMPARE:\n visible = listSpec.busListSpec.implementsAuditCompare;\n valid = listStateInfo.selectedRows.length === 2;\n break;\n\n case AppConstants.ACTION_TYPE_AUDIT_DELETE:\n case AppConstants.ACTION_TYPE_AUDIT_UPDATE:\n case AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE:\n visible = valid = this.isValidAuditAction(toolbarButton, listStateInfo, listSpec.busClassSpec.actions) && listStateInfo.selectedRows.length === 1 && !listSpec.busListSpec.openActionRestricted;\n break;\n\n case AppConstants.ACTION_TYPE_AUDIT_OVERRIDE:\n visible = valid = this.isValidAuditAction(toolbarButton, listStateInfo, listSpec.busClassSpec.actions) && listStateInfo.selectedRows.length === 1;\n break;\n }\n\n // check for called out action button validity\n if (action !== AppConstants.STANDARD_TOOLBAR_HELPERLIST) {\n if (multipleRowsSelected) {\n if (valid && toolbarButton.actionReference && toolbarButton.actionReference.validity) {\n listStateInfo.selectedRows.some((element, index) => {\n const dataView = listStateInfo.dataViewSet.data[element];\n if (!this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView)) {\n valid = false;\n return true;\n }\n });\n }\n } else {\n if (valid && toolbarButton.actionReference && toolbarButton.actionReference.validity) {\n let dataView: LMDataView;\n if (selectedRowIndex !== -1) {\n dataView = listStateInfo.dataViewSet.data[ selectedRowIndex ];\n } else { // use header info when validating action which do not require row selection\n dataView = listStateInfo.dataViewSet.header;\n }\n // todo akila, passing in '' for specFields, list doesn't have spec Fields, not sure what to do here.\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView);\n }\n }\n }\n\n if (action === AppConstants.STANDARD_TOOLBAR_HELPERLIST && listSpec.busListSpec.helperLists.length > 1) {\n return;\n }\n // disabled if invalid\n toolbarButton.state.disabled = !valid;\n\n if (toolbarButton.actionReference && visible) {\n const hideWhenInvalid = (listStateInfo.isSelectListInSelectionMode) ? true : toolbarButton?.actionReference?.hideWhenInvalid;\n toolbarButton.state.visible = !(hideWhenInvalid && !valid);\n } else {\n toolbarButton.state.visible = visible;\n }\n }\n\n private isValidAuditAction(toolbarButton: LMToolbarButton, listStateInfo: LMListStateInfo, actions: Array): boolean {\n for (const i of listStateInfo.selectedDataView.actionIndexes) {\n const actionSpec = actions[i];\n if (actionSpec && actionSpec.type === toolbarButton.actionReference.id) {\n return true;\n }\n }\n return false;\n }\n\n private getFormInvokeState(listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton): LMToolbarButtonState {\n const isListFormInvoke = toolbarButton.actionReference.isListFormInvoke;\n if (!isListFormInvoke && listStateInfo.selectedRows.length !== 1) {\n return {\n disabled: true,\n visible: !toolbarButton.actionReference.hideWhenInvalid\n };\n }\n\n const dataView = toolbarButton.actionReference.isListFormInvoke ? listStateInfo.dataViewSet.header : listStateInfo.selectedDataView;\n\n const valid = toolbarButton.actionReference.validity\n ? this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView)\n : true;\n\n return {\n disabled: !valid,\n visible: valid || !toolbarButton.actionReference.hideWhenInvalid\n };\n }\n\n private httpUrlActionState(listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton): void {\n const isRowUiLink = toolbarButton.actionReference.isRowUiLink;\n\n if (isRowUiLink && listStateInfo.selectedRows.length !== 1) {\n const visible = !toolbarButton.actionReference.hideWhenInvalid;\n toolbarButton.state = { visible, disabled: true };\n return;\n }\n\n const dataView: LMDataView = isRowUiLink ? listStateInfo.selectedDataView : listStateInfo.dataViewSet.header;\n\n const valid = toolbarButton.actionReference.validity\n ? this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView)\n : true;\n\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n }\n\n private navigationActionState(listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton, specFields?: LMSpecFields | string): void {\n const isSpecialAction = toolbarButton.actionReference.isSpecialAction;\n const isListUiLink = toolbarButton.actionReference.isListUiLink;\n const isRowUiLink = toolbarButton.actionReference.isRowUiLink;\n // navigation is ony valid if one row is selected with the exception of a MatrixNavigation or if it's a special Action\n // For a matrixNavigation the selected rows become the columns in the matrix pattern\n // added a condition for the row link is buttons.\n if (!isSpecialAction\n && listStateInfo.selectedRows.length !== 1\n && !isListUiLink\n && !toolbarButton.actionReference.isMatrixFormButton\n || (isRowUiLink && listStateInfo.selectedRows.length !== 1)) {\n const visible = !toolbarButton.actionReference.hideWhenInvalid;\n toolbarButton.state = { visible, disabled: true };\n return;\n }\n\n let dataView: LMDataView = isListUiLink ? listStateInfo.dataViewSet.header : listStateInfo.selectedDataView;\n\n if (isSpecialAction) {\n dataView = listStateInfo.fromDataView;\n }\n\n let valid = false;\n if (!dataView.isSubtotalSummaryView && !dataView.isSubtotalView) {\n if (dataView.navigations) {\n valid = dataView.navigations.indexOf(toolbarButton.actionReference.navigation) > -1;\n }\n\n // Set special action and uilink navigations to valid\n if (isSpecialAction || isListUiLink || isRowUiLink) {\n valid = true;\n }\n\n // check for navigation button validity\n if (valid && toolbarButton.actionReference.validity) {\n valid = this.lmConditionUtilService.isValid(toolbarButton.actionReference.validity, dataView);\n }\n }\n // disabled if not valid\n toolbarButton.state.disabled = !valid;\n\n // hide if (invalid and hideWhenInvalid === true)\n toolbarButton.state.visible = !(!valid && toolbarButton.actionReference.hideWhenInvalid);\n }\n\n private processFlowActionState(\n listSpec: LMListSpec,\n listStateInfo: LMListStateInfo,\n toolbarButton: LMToolbarButton\n ): LMToolbarButton {\n // Validity / Visibility for process flow button.. If there is one in dataview, it is valid and visible.\n toolbarButton.state.disabled = false;\n toolbarButton.state.visible = true;\n\n return toolbarButton;\n }\n\n private cubeActionState(listSpec: LMListSpec, listStateInfo: LMListStateInfo, toolbarButton: LMToolbarButton): void {\n switch (toolbarButton.actionReference.id) {\n case AppConstants.CUBE_TOOLBAR_PERIODOVERRIDE:\n let visible = true;\n let disabled = false;\n if (listStateInfo.dataViewSet) {\n disabled = listStateInfo.dataViewSet.cubeInfo.suppressCurPeriod;\n visible = !(listStateInfo.dataViewSet.cubeInfo.currentDims.some((dim) => dim.isPeriod));\n }\n toolbarButton.state = { visible, disabled };\n break;\n default:\n toolbarButton.state = { visible: true, disabled: false };\n }\n }\n\n private getDisallowRelated(listSpec: LMListSpec): boolean {\n return this.lmContextService.getContext().disallowNavigations;\n }\n\n private buildCubeToolbarButtons(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n const dataViewSet = listStateInfo.dataViewSet;\n const cubeActionReferences: LMBusActionReference[] = [];\n\n // TODO: (1) Only if Child hierarchy dimensions are present, the following menu items are available\n // TODO: (2) What about main list vs dependent list? should that distinction be made?\n if (listSpec.busListSpec.hasChildHierarchyDims) {\n // Set Child hierarchy Dimension Values\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_SET_CH_DIMENSIONS,\n automationId: AppConstants.CUBE_TOOLBAR_SET_CH_DIMENSIONS,\n type: 'cube',\n label: Soho.Locale.translate('Structures'),\n tooltip: Soho.Locale.translate('SetCHDimensionValue')\n });\n\n // Set Filter Dimension values\n if (!listSpec.busListSpec.searchForm) {\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_SET_FILTER_DIMENSIONS,\n automationId: AppConstants.CUBE_TOOLBAR_SET_FILTER_DIMENSIONS,\n type: 'cube',\n label: Soho.Locale.translate('Filter'),\n tooltip: Soho.Locale.translate('SetFilterDimensionValue')\n });\n }\n }\n\n // Dimension button\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_DIMENSIONS,\n automationId: AppConstants.CUBE_TOOLBAR_DIMENSIONS,\n type: 'cube',\n label: Soho.Locale.translate('Dimensions'),\n tooltip: Soho.Locale.translate('ChangeDimensions')\n });\n\n // Pivot Views\n if (listSpec.cubeOptions.pivotViews) {\n let pivotView;\n if (listStateInfo.dataViewSet.cubeInfo.pivotView) {\n pivotView = listSpec.cubeOptions.pivotViews.find((p) => p.name === listStateInfo.dataViewSet.cubeInfo.pivotView);\n } else {\n pivotView = listSpec.cubeOptions.pivotViews.find((p) => p.default !== undefined && p.default);\n }\n if (!pivotView) {\n pivotView = listSpec.cubeOptions.pivotViews[ 0 ];\n }\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_PIVOTVIEWS,\n automationId: AppConstants.CUBE_TOOLBAR_PIVOTVIEWS,\n type: 'cube',\n label: pivotView.label,\n tooltip: Soho.Locale.translate('ChangePivotViews')\n });\n }\n\n if (listSpec.cubeOptions.columnViews) {\n // TODO: Get the current selection from DVS\n let columnView;\n if (listStateInfo.dataViewSet.cubeInfo.columnView) {\n columnView = listSpec.cubeOptions.columnViews.find((c) => c.name === listStateInfo.dataViewSet.cubeInfo.columnView);\n } else {\n columnView = listSpec.cubeOptions.columnViews.find((c) => c.default !== undefined && c.default);\n }\n if (!columnView) {\n columnView = listSpec.cubeOptions.columnViews[ 0 ];\n }\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_COLUMNVIEWS,\n automationId: AppConstants.CUBE_TOOLBAR_COLUMNVIEWS,\n type: 'cube',\n label: columnView.label,\n tooltip: Soho.Locale.translate('ChangeColumnViews')\n });\n }\n // Period Override\n if (listSpec.cubeOptions.hasPeriodDimension) {\n // Current Period\n const currentPeriodLabel = (dataViewSet && dataViewSet.cubeInfo) ? dataViewSet.cubeInfo.periodDimension : '';\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_PERIODOVERRIDE,\n automationId: AppConstants.CUBE_TOOLBAR_PERIODOVERRIDE,\n type: 'cube',\n label: currentPeriodLabel,\n tooltip: Soho.Locale.translate('CurrentPeriod')\n });\n }\n\n // Period Views\n const hasPeriodViews = listSpec.cubeOptions.periods && listSpec.cubeOptions.periods.length > 0;\n if (hasPeriodViews) {\n let index = 0;\n if (dataViewSet && dataViewSet.cubeInfo && dataViewSet.cubeInfo.periodView) {\n const i = listSpec.cubeOptions.pCommands.indexOf(dataViewSet.cubeInfo.periodView);\n if (i !== -1) {\n index = i;\n }\n }\n const periodViewLabel = listSpec.cubeOptions.periods[index];\n cubeActionReferences.push({\n id: AppConstants.CUBE_TOOLBAR_PERIODVIEW,\n automationId: AppConstants.CUBE_TOOLBAR_PERIODVIEW,\n type: 'cube',\n label: periodViewLabel,\n tooltip: Soho.Locale.translate('PeriodViews')\n });\n }\n // allow update - save\n if (this.lmListSpecUtilService.allowUpdate(listSpec)) {\n cubeActionReferences.push(this.getStandardToolbarActions().save);\n }\n\n // Switch Charts\n if (this.getIncludeChartMenu(listSpec)) {\n // let chart = listSpec.busListSpec.charts[listStateInfo.cubeDisplayChartName].title;\n // let chartLabel = this.lmFormatUtilService.formatMessageRule(chart, undefined);\n const chartsMenu = this.getStandardToolbarActions().chartsMenu;\n chartsMenu.id = AppConstants.CUBE_TOOLBAR_CHARTS;\n chartsMenu.automationId = AppConstants.CUBE_TOOLBAR_CHARTS;\n chartsMenu.type = 'cube';\n // chartsMenu.icon = null; // No Icon\n // chartsMenu.label = chartLabel;\n cubeActionReferences.push(chartsMenu);\n }\n if (this.includeSearch(listSpec, listStateInfo)) {\n cubeActionReferences.push(this.getStandardToolbarActions().search);\n }\n\n const toolbarButtons1 = this.actionRefArrayToToolbarButtonArray(listSpec, cubeActionReferences);\n\n // Options\n const optionsMenu = { ...this.getStandardToolbarActions().options };\n optionsMenu.id = AppConstants.CUBE_TOOLBAR_OPTIONS;\n optionsMenu.automationId = AppConstants.CUBE_TOOLBAR_OPTIONS;\n optionsMenu.type = 'cube';\n\n const toolbarButtons2 = this.actionRefArrayToToolbarButtonArray(listSpec, [ optionsMenu ], true);\n return [ ...toolbarButtons1, ...toolbarButtons2 ];\n }\n\n private buildCubeViewDetailSectionToolbarItem(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n if (this.lmListSpecUtilService.isDetailSection(listSpec)\n && listStateInfo.fromDataView && listStateInfo.fromDataView.cubeInfo) {\n if (listStateInfo.fromDataView.cubeInfo.extraInfo2?.pvPeriods\n && listStateInfo.fromDataView.cubeInfo.extraInfo2.pvPeriods.length > 0) {\n const currentPVPeriod = listStateInfo.fromDataView.cubeInfo.extraInfo2.pvPeriods[listStateInfo.fromDataView.cubeInfo.extraInfo.pvPeriodIdx];\n const pvPeriodActionRef: LMBusActionReference = {\n id: AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS,\n automationId: AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS,\n type: 'cube',\n label: currentPVPeriod.label,\n index: currentPVPeriod.idx,\n tooltip: Soho.Locale.translate('SelectPeriod'),\n };\n const pvPeriodToolbarButton = this.createToolbarMenuItemsFromActionReferences(listSpec, [ pvPeriodActionRef ])[0];\n pvPeriodToolbarButton.menu = this.getPeriodViewPeriodMenuItem(listSpec, listStateInfo);\n return [ pvPeriodToolbarButton ];\n }\n }\n return [];\n }\n\n private getPeriodViewPeriodMenuItem(listSpec: LMListSpec, listStateInfo: LMListStateInfo): Array {\n const currSelectionIndex = listStateInfo.fromDataView.cubeInfo.extraInfo.pvPeriodIdx;\n const pvPeriodActionRef: Array = listStateInfo.fromDataView.cubeInfo.extraInfo2.pvPeriods\n .map((pvPeriod) => {\n id: AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS + pvPeriod.idx,\n automationId: AppConstants.CUBE_TOOLBAR_PERIODVIEWPERIODS + pvPeriod.idx,\n type: 'cube',\n label: pvPeriod.label,\n index: pvPeriod.idx,\n isChecked: (pvPeriod.idx === currSelectionIndex)\n });\n return this.createToolbarMenuItemsFromActionReferences(listSpec, pvPeriodActionRef);\n }\n\n private getHelperLists(listSpec: LMListSpec): LMHelperList[] {\n return listSpec.busListSpec.helperLists;\n }\n\n private getOpenActionRestricted(listSpec: LMListSpec) {\n return listSpec.busListSpec.openActionRestricted;\n }\n\n private getIncludeChartMenu(listSpec: LMListSpec) {\n return listSpec.busListSpec.charts ? true : false;\n }\n\n private getChartMenuOptions(listSpec: LMListSpec) {\n if (this.lmListSpecUtilService.isColumnarView(listSpec) && listSpec.busListSpec.charts) {\n const chartSpecs: LMChartSpecs = {};\n\n Object.keys(listSpec.busListSpec.charts).forEach((chartName) => {\n const chartType: string = listSpec.busListSpec.charts[chartName].chartType;\n if (chartType === 'bar' || chartType === 'pie' || chartType === 'gap' || chartType === 'aggregation') {\n chartSpecs[ chartName ] = JSON.parse(JSON.stringify(listSpec.busListSpec.charts[ chartName ]));\n }\n });\n\n return chartSpecs;\n }\n\n return listSpec.busListSpec.charts;\n }\n\n private getActions(listSpec: LMListSpec): Array {\n return listSpec.busClassSpec.actions;\n }\n\n private getIncludeSaveAndNew(listStateInfo: LMListStateInfo) {\n return listStateInfo.inlineCreateEnabled;\n }\n\n private filterOutExcludedActions(validActionRefs: Array, excludedActionRefs: Array): Array {\n if (excludedActionRefs && excludedActionRefs.length > 0) {\n validActionRefs = validActionRefs\n .filter(actionRef => {\n const result = excludedActionRefs.find(item => {\n if (item.id) {\n // Need to strip off _ before comparing to the actionRef.id.\n // .+(?=_\\d+$) - to match everything up to an _\n const match = item.id.match(/.+(?=_\\d+$)/);\n const itemId = match ? match.toString() : item.id;\n return itemId === actionRef.id;\n }\n });\n\n return result === undefined; // INO: include this if it's not in the excluded list.\n });\n }\n\n return validActionRefs;\n }\n}\n","import { Injectable, ViewContainerRef, forwardRef, Inject } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, filter, flatMap, map, tap } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\n\nimport { LMActionService, LMActionRequest } from '@services/lm-action.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMTransactionService, LMTransactionState } from '@transaction/index';\n\n@Injectable()\nexport class LMListTransactionService {\n constructor(\n private lmActionService: LMActionService,\n private lmTransactionService: LMTransactionService\n ) {}\n\n private createTransactionUrl(\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n dataView: LMDataView\n ): string {\n const listSpec = listContext.listSpec;\n let resourceId = dataView.resourceId;\n\n if (listSpec.isTemplateList) {\n resourceId = listSpec.templateTargetResourceId.split('.')[0];\n }\n\n const transactionUrlTemplate = urltemplate.parse(listContext.listUrlInfo.transactionUrl);\n const actionName = actionSpec.name;\n return transactionUrlTemplate.expand({ resourceId, actionName });\n }\n\n private createActionRedirectUrl(\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n dataViewList: LMDataView[],\n contextResourceId?: string\n ): string {\n const listSpec = listContext.listSpec;\n const dataView = dataViewList[ 0 ]; // is this correct? should it be the header on dataViewSet\n\n contextResourceId = contextResourceId || dataViewSet.header.resourceId;\n if (listSpec.isTemplateList) {\n contextResourceId = listSpec.templateTargetResourceId.split('.')[0];\n }\n\n let resourceId: string;\n if (AppConstants.ACTION_TYPE_CREATE === actionSpec.type) {\n resourceId = dataViewSet.header.resourceId;\n } else {\n resourceId = dataView.resourceId;\n }\n\n const actionRedirectUrlTemplate = urltemplate.parse(listContext.listUrlInfo.actionRedirectUrl);\n const actionName = actionSpec.name;\n return actionRedirectUrlTemplate.expand({ resourceId, actionName, contextResourceId });\n }\n\n public runSetAction(listContext: LMListContext, actionSpec: LMActionSpec, dataViewSet: LMDataViewSet): Observable {\n const url = this.createTransactionUrl(listContext, actionSpec, dataViewSet, dataViewSet.header);\n const transaction = new LMTransactionState(url);\n const dataViewList = [ dataViewSet.header ];\n\n const actionChecks$ = this.runActionChecks(transaction, listContext, actionSpec, dataViewSet, dataViewList);\n return actionChecks$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runInstanceAction(\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n dataViewList: LMDataView[],\n contextDataView?: LMDataView,\n actionFieldMap?: LMActionFieldMap,\n dragdropTargetView?: LMDataView\n ): Observable {\n const listSpec = listContext.listSpec;\n const url = this.createTransactionUrl(listContext, actionSpec, dataViewSet, dataViewSet.header);\n const transaction = new LMTransactionState(url);\n\n if (listSpec.isTemplateList) {\n dataViewList = dataViewList.map(dataView => dataView.dataView);\n }\n\n const actionChecks$ = this.runActionChecks(\n transaction,\n listContext,\n actionSpec,\n dataViewSet,\n dataViewList,\n contextDataView,\n actionFieldMap,\n dragdropTargetView\n );\n return actionChecks$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n private runActionChecks(\n transactionState: LMTransactionState,\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n dataViewLists: LMDataView[],\n contextDataView?: LMDataView,\n actionFieldMap?: LMActionFieldMap,\n dragdropTargetView?: LMDataView\n ): Observable {\n const listSpec = listContext.listSpec;\n const buildTransactionRequests = (scheduleView: LMDataView) =>\n this.lmActionService.buildActionRequestForDataViewList({\n dataViewLists,\n actionSpec,\n scheduleView\n });\n\n // get schedule view details\n return this.lmTransactionService.getScheduleView(actionSpec, listSpec.busClassSpec.name).pipe(\n filter(scheduleView => (scheduleView !== undefined)),\n // build action requests payload\n map((scheduleView: LMDataView) => buildTransactionRequests(scheduleView)),\n // builds action url\n map((transactionRequests: LMActionRequest[]) => {\n transactionState.setRequestPayload(transactionRequests);\n return this.createActionRedirectUrl(listContext, actionSpec, dataViewSet, dataViewLists);\n }),\n // check if form input is required\n flatMap((actionUrl: string) => this.lmTransactionService.runCheckFormInputRequired(\n actionUrl,\n actionSpec,\n transactionState,\n contextDataView,\n actionFieldMap,\n dragdropTargetView\n )),\n // proceed if form input is done or not required; check if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transactionState, listSpec.busClassSpec)),\n // proceed if response is done or not required; check if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transactionState)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n }\n\n public runCreateAction(\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n contextResourceId: string\n ): Observable {\n const dataViewList = [ dataViewSet.header ];\n const redirectUrl = this.createActionRedirectUrl(listContext, actionSpec, dataViewSet, dataViewList, contextResourceId);\n const transaction = new LMTransactionState(redirectUrl);\n\n const proceed$ = this.lmTransactionService.runCheckFormInputRequired(\n redirectUrl,\n actionSpec,\n transaction\n ).pipe(\n // proceed if form input is made or it's not required, then checks if response is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transaction, listContext.listSpec.busClassSpec)),\n // proceed if response is made or it's not required, then checks if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runSaveAction(\n listContext: LMListContext,\n dataViewSet: LMDataViewSet,\n dataViewList: LMDataView[]\n ): Observable {\n const listSpec = listContext.listSpec;\n const cubePeriodKey = (listContext.listSpec.busListSpec.implementsCubeView) ? dataViewSet.cubeInfo.periodKey : undefined;\n const cubePeriodView = (listContext.listSpec.busListSpec.implementsCubeView) ? dataViewSet.cubeInfo.periodView : undefined;\n const newSequenceField = listSpec.busListSpec.newSequenceField;\n const transactionRequests = this.lmActionService.buildActionRequestForSaveList(dataViewList, listSpec, newSequenceField, cubePeriodKey, cubePeriodView);\n const actionSpec = transactionRequests[0].actionSpec;\n const url = this.createTransactionUrl(listContext, actionSpec, dataViewSet, dataViewSet.header);\n const transaction = new LMTransactionState(url);\n transaction.setRequestPayload(transactionRequests);\n\n const proceed$ = this.lmTransactionService.runCheckResponseRequired(\n transaction,\n listSpec.busClassSpec\n ).pipe(\n // proceed if response is made or it's not required, then checks if confirmation is required\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(actionSpec, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n\n public runDeleteAction(\n listContext: LMListContext,\n actionSpec: LMActionSpec,\n dataViewSet: LMDataViewSet,\n dataViewList: LMDataView[]\n ): Observable {\n return this.runInstanceAction(listContext, actionSpec, dataViewSet, dataViewList);\n }\n\n public runProcessFlowAction(\n listContext: LMListContext,\n pfAction: LMProcessFlowAction,\n dataViewList: LMDataView[],\n dataViewSet: LMDataViewSet\n ): Observable {\n const listSpec = listContext.listSpec;\n const transactionUrlTemplate = urltemplate.parse(listContext.listUrlInfo.transactionUrl);\n let transactionUrl = transactionUrlTemplate.expand({\n resourceId: dataViewSet.header.resourceId,\n actionName: undefined\n });\n transactionUrl = `${transactionUrl}&executionType=_processflow`;\n\n const transaction = new LMTransactionState(transactionUrl);\n const transactionRequests = this.lmActionService.buildActionRequestForDataViewList({ dataViewLists: dataViewList, pfAction });\n transaction.setRequestPayload(transactionRequests);\n\n const busClassSpec = listSpec.busClassSpec;\n const proceed$ = this.lmTransactionService.runCheckResponseRequiredPF(\n transaction,\n pfAction,\n busClassSpec\n ).pipe(\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckResponseRequired(transaction, busClassSpec)),\n tap(this.lmTransactionService.isCancelled),\n flatMap(() => this.lmTransactionService.runCheckConfirmationRequired(undefined, transaction)),\n catchError(this.lmTransactionService.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => proceed ? this.lmTransactionService.executeAction(transaction) : of(transaction))\n );\n }\n}\n\nexport interface LMListContext {\n listUrlInfo: LMListUrlInfo,\n listSpec: LMListSpec;\n}\n","import { Injectable } from '@angular/core';\nimport { AppConstants, LMDialogButtonKey, LMTimeStampDirective, LMTransformOptions, LMUniqueIdService } from '@utils/index';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport * as _ from 'lodash';\nimport { LMListSpecUtilService } from './lm-list-spec-util.service';\nimport { Observable } from 'rxjs';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMGlobalPersonalizationService } from '@app/states/services/lm-global-personalization.service';\n\n@Injectable()\nexport class LMListUtilService {\n\n constructor(\n private lmFormatUtilService: LMFormatUtilService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n private sohoMessageService: SohoMessageService,\n private lmContextService: LMContextService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {}\n\n public setSpecFields(dataViewSet: LMDataViewSet): void {\n // Pass down stateValues and type properties to each dataView from the header dataview.\n const headerDataView: LMDataView = dataViewSet.header;\n const data: Array = dataViewSet.data.map((dataView: LMDataView) => {\n for (const fieldId in dataView.fields) {\n if (!dataView.fields[ fieldId ] || !headerDataView.fields[ fieldId ]) {\n continue;\n }\n\n if (headerDataView.fields[ fieldId ].type) {\n dataView.fields[ fieldId ].type = headerDataView.fields[ fieldId ].type;\n }\n\n // Add state fields if they don't already exist\n if (dataView.fields[ fieldId ].stateValues === undefined && headerDataView.fields[ fieldId ].stateValues) {\n dataView.fields[ fieldId ].stateValues = headerDataView.fields[ fieldId ].stateValues;\n }\n\n }\n return dataView;\n });\n\n // return data;\n }\n\n public areTheSameJson(json1: any, json2: any) {\n if (!json1 && !json2) {\n return true;\n }\n\n if ((!json1 && json2) || (json1 && !json2)) {\n return false;\n }\n\n const a = JSON.stringify(json1);\n const b = JSON.stringify(json2);\n return a === b;\n }\n\n public areTheSame(array1: Array, array2: Array): boolean {\n if (!array1) {\n array1 = [];\n }\n\n if (!array2) {\n array2 = [];\n }\n const a = JSON.stringify(array1);\n const b = JSON.stringify(array2);\n\n return a === b;\n }\n\n public buildSearchTags(filterCriteria: Array): Array {\n if (!filterCriteria) {\n return [];\n }\n\n return filterCriteria?.filter( criteria => (criteria?.operator === 'isEmpty' || criteria?.operator === 'isNotEmpty' || criteria.value !== '' ))\n .map(item => this.filterCriteriaToSearchTag(item));\n }\n\n public buildDetailFieldsAsTooltip(data: LMDataView, detailFieldsArray: Array): string {\n let tooltip: string;\n if (data && detailFieldsArray) {\n const detailFields: Array = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for ( let index = 0; index < detailFieldsArray.length; index++) {\n let detailLabel = '';\n if (detailFieldsArray[index].label) {\n detailLabel = this.lmFormatUtilService.formatMessageRule(detailFieldsArray[ index ].label, data);\n }\n const detailValue = data.fields[detailFieldsArray[index].fieldId].value;\n let row: string;\n if ( detailFieldsArray[index].type === 'BINARYDOCUMENT') {\n row = `\"\"/`;\n } else {\n row = `${detailLabel}`+\n `${detailValue}`;\n }\n detailFields.push(row);\n }\n tooltip = '';\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let index = 0; index < detailFields.length; index++) {\n tooltip = tooltip + detailFields[index];\n }\n tooltip = tooltip + '
          ';\n }\n return tooltip;\n }\n\n public buildSpecFields(displayFields: Array|LMListDisplayField): LMSpecFields {\n const specFields = {};\n\n if (displayFields instanceof Array) {\n for (let i = 0, length = displayFields.length; i < length; i++) {\n const fieldId = displayFields[ i ].fieldId;\n if (fieldId) {\n specFields[ fieldId ] = _.cloneDeep( displayFields[ i ]);\n specFields[ fieldId ].stateValues = specFields[ fieldId ].states;\n }\n }\n } else if (displayFields instanceof Object) {\n for (const field in displayFields) {\n if (displayFields.hasOwnProperty(field)) {\n specFields[ field ] = _.cloneDeep(displayFields[ field ]);\n }\n }\n }\n\n return specFields;\n }\n\n public mergeStickyModifier(filterCriteria: LMFilterFieldCriteria[], filterModifiers: Map, isSearchForm: boolean) {\n // TODO: Currently, list with search form uses fieldId as key to store changes in filter ops\n // while list with filter bar uses columnId. Can't combine this yet because I found an issue when the field is\n // displayed multiple times in a list, might be a conflict. Will address this in LMCLIENT-38869\n const key = isSearchForm ? 'fieldId' : 'id';\n for(const id of filterModifiers.keys()) {\n const operator = filterModifiers.get(id);\n if (!filterCriteria.some( fieldCriteria => fieldCriteria[key] === id )) {\n const newEntry = {\n // [key]: id,\n value: '',\n operator\n };\n newEntry[key] = id;\n filterCriteria.push(newEntry as LMFilterFieldCriteria);\n }\n }\n\n return filterCriteria;\n }\n\n public filterCriteriaToSearchTag(filterCriteria: LMFilterFieldCriteria): LMListSearchTag {\n let displayValue = filterCriteria.displayValue;\n if (Array.isArray(displayValue)) {\n displayValue = (displayValue).join(AppConstants.MULTI_SEARCH_TERM_DELIMITER);\n }\n let operatorLabel = '';\n let useFilterTypeNoValue = false;\n\n switch (filterCriteria.operator) {\n case 'equals':\n operatorLabel = 'LabelEquals';\n break;\n case 'doesNotEqual':\n operatorLabel = 'LabelDoesNotEqual';\n break;\n case 'contains':\n operatorLabel = 'LabelContains';\n break;\n case 'doesNotContain':\n operatorLabel = 'LabelDoesNotContain';\n break;\n case 'lessThan':\n operatorLabel = 'LabelLessThan';\n break;\n case 'lessThanOrEquals':\n operatorLabel = 'LabelLessOrEquals';\n break;\n case 'greaterThan':\n operatorLabel = 'LabelGreaterThan';\n break;\n case 'greaterThanOrEquals':\n operatorLabel = 'LabelGreaterOrEquals';\n break;\n case 'endsWith':\n operatorLabel = 'LabelEndsWith';\n break;\n case 'doesNotEndWith':\n operatorLabel = 'LabelDoesNotEndWith';\n break;\n case 'startsWith':\n operatorLabel = 'LabelStartsWith';\n break;\n case 'doesNotStartWith':\n operatorLabel = 'LabelDoesNotStartWith';\n break;\n case 'inRange':\n operatorLabel = 'LabelInRange';\n break;\n case 'isEmpty':\n displayValue = Soho.Locale.translate('Empty');\n useFilterTypeNoValue = true;\n break;\n case 'isNotEmpty' :\n displayValue = Soho.Locale.translate('NotEmpty');\n useFilterTypeNoValue = true;\n break;\n default:\n break;\n }\n\n let label = filterCriteria.label;\n if (operatorLabel) {\n label = this.lmFormatUtilService.formatMessage(Soho.Locale.translate(operatorLabel), [ label ]);\n }\n\n return {\n label,\n id: filterCriteria.fieldId,\n tag: displayValue,\n isRequired: filterCriteria.isRequired,\n isDisplayOnly: filterCriteria.isDisplayOnly,\n useFilterTypeNoValue\n };\n }\n\n public buildSohoCondition(filterCriteria: LMFilterFieldCriteria, gridColumns: ListGridColumn[]): SohoDataGridFilterCondition {\n const filterColumn: ListGridColumn = gridColumns.find(gridColumn => !gridColumn.hidden && gridColumn.fieldId && (gridColumn.id === filterCriteria.id\n || gridColumn.fieldId === filterCriteria.fieldId || gridColumn.id === filterCriteria.compactFormatColumnId));\n\n if (!filterColumn) {\n return null; // safety\n }\n\n let value = filterCriteria.value;\n\n // need to convert the internal date value to a display one, for LMCLIENT-20541\n if (filterColumn.filterType === 'date') {\n if (filterCriteria.operator === 'inRange') {\n value = value.replace(',', ' - ');\n }\n switch (filterColumn.dateFormat) {\n case Soho.Locale.calendar().dateFormat.short + ' '\n + Soho.Locale.calendar().dateFormat.timestamp:\n // Timestamp\n value = this.lmFormatUtilService.timestampToDisplay(value);\n break;\n case Soho.Locale.calendar().dateFormat.short:\n value = this.lmFormatUtilService.yyyymmddToDisplay(value);\n break;\n case Soho.Locale.calendar().dateFormat.month:\n value = this.lmFormatUtilService.mmddToDisplay(value);\n break;\n case Soho.Locale.calendar().dateFormat.year:\n value = this.lmFormatUtilService.yyyymmToDisplay(value);\n break;\n case 'yyyy':\n value = this.lmFormatUtilService.yyyyToDisplay(value);\n break;\n }\n } else if (filterColumn.filterType === 'time') {\n value = this.lmFormatUtilService.timeToDisplay(value);\n } else if (filterCriteria.isCompactFormatField) {\n value = filterCriteria.compactFormDisplayValue;\n } else if (filterColumn.filterType === 'multiselect') {\n value = filterCriteria.value;\n } else if (filterColumn.displayField.type === AppConstants.PERCENT) {\n const transformOptions: LMTransformOptions = {\n decSize: filterColumn.displayField.decSize,\n precision: filterColumn.displayField.decSize,\n displayZero: true\n };\n if (Array.isArray(value)) {\n const filterValue = value;\n value = '';\n filterValue.map((val, index, array) => {\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += this.lmFormatUtilService.percentToFilterDisplay(val, transformOptions) + delimiter;\n });\n } else {\n value = this.lmFormatUtilService.percentToDisplay(value, transformOptions);\n }\n } else if (filterColumn.displayField.type === AppConstants.BCD) {\n const transformOptions: LMTransformOptions = {\n decSize: filterColumn.displayField.decSize,\n precision: filterColumn.displayField.decSize,\n displayZero: true\n };\n if (Array.isArray(value)) {\n const filterValue = value;\n value = '';\n filterValue.map((val, index, array) => {\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += this.lmFormatUtilService.bcdToFilterDisplay(val, transformOptions) + delimiter;\n });\n } else {\n value = this.lmFormatUtilService.bcdToDisplay(value, transformOptions);\n }\n } else if (filterColumn.displayField.type === AppConstants.NUMERIC) {\n if (Array.isArray(value)) {\n const filterValue = value;\n value = '';\n filterValue.map((val, index, array) => {\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += val + delimiter;\n });\n }\n } else if (filterColumn.filterType === 'lookup' || filterColumn.filterType === 'text') {\n if (Array.isArray(value)) {\n const filterValue = value;\n value = '';\n filterValue.map((val, index, array) => {\n const delimiter = (index === array.length -1) ? '' : AppConstants.MULTI_SEARCH_TERM_DELIMITER;\n value += val + delimiter;\n });\n }\n }\n\n const sohoCondition: SohoDataGridFilterCondition = {\n columnId: filterColumn.id,\n operator: this.getSohoOperator(filterCriteria.operator),\n value\n };\n\n return sohoCondition;\n }\n\n /**\n * Updates the column labels on a datagrid. This must be called before data is loaded into the data\n * grid with the gridOptions.source function. Otherwise the pager bar gets screwed up. Here is the\n * soho ticket for this: https://jira.infor.com/browse/SOHO-6990\n */\n public updateColumnLabels(\n listSpec: LMListSpec,\n dataViewSet: LMDataViewSet,\n gridColumns: ListGridColumn[],\n columnGroups: SohoDataGridColumnGroup[]\n ): boolean {\n let hasUpdate = false;\n\n // ----------------------------------------------------------\n // loop through columns looking for a message rule with\n // variables. If found then format the value based on the\n // message rule and dataViewSet.\n // ----------------------------------------------------------\n if (gridColumns) {\n for (const gridColumn of gridColumns) {\n if (gridColumn.displayField ) {\n const property = gridColumn.displayField.label ? 'label' : gridColumn.displayField.title ? 'title' : '';\n const columnName = property ? gridColumn.displayField[property] : '';\n const hasVariables = columnName && columnName.variables && columnName.variables.length > 0;\n\n if (hasVariables) {\n gridColumn.name = this.lmFormatUtilService.formatMessageRule(columnName, dataViewSet.header);\n hasUpdate = true;\n }\n }\n }\n }\n\n // ----------------------------------------------------------\n // loop through columnGroups looking for a message rule with\n // variables. If found then format the value based on the\n // message rule and dataViewSet.\n // ----------------------------------------------------------\n if (columnGroups) {\n for (const columnGroup of columnGroups) {\n if (columnGroup.id) {\n const displayField: LMListDisplayField = listSpec.busListSpec.displayFields.find(listField => columnGroup.id === listField.groupLabelId);\n if (displayField && displayField.groupLabel && displayField.groupLabel.variables && displayField.groupLabel.variables.length > 0) {\n columnGroup.name = this.lmFormatUtilService.formatMessageRule(displayField.groupLabel, dataViewSet.header);\n hasUpdate = true;\n }\n }\n }\n }\n\n return hasUpdate;\n }\n\n public buildFilterCriteria(condition: SohoDataGridFilterCondition, columnDef: ListGridColumn): LMFilterFieldCriteria {\n let transformOptions: LMTransformOptions = {};\n let filterValue: string;\n let operator: string;\n let enteredFilterValue = '';\n\n if (columnDef.displayField.type === AppConstants.BCD\n || columnDef.displayField.type === AppConstants.PERCENT) {\n transformOptions = {\n decSize: columnDef.displayField.decSize,\n precision: columnDef.displayField.decSize\n };\n }\n\n if (Array.isArray(condition.value)) {\n filterValue = condition.value;\n operator = 'equals';\n\n } else if (columnDef.displayField.allowMultiSelections) {\n const allowZero = columnDef.displayField.type === AppConstants.BCD ||\n columnDef.displayField.type === AppConstants.PERCENT ||\n columnDef.displayField.type === AppConstants.NUMERIC;\n const multiFilterFieldValue = this.lmFormatUtilService.getMultipleFilterFieldValue(condition.value, columnDef.displayField.type, columnDef.displayField.decSize, columnDef.displayField.decSize, allowZero);\n filterValue = multiFilterFieldValue.formattedFilterValue;\n enteredFilterValue = multiFilterFieldValue.enteredFilterValue;\n operator = condition.operator;\n\n } else if (columnDef.displayField.type === AppConstants.TIMESTAMP) {\n if (columnDef.displayField?.displayDateOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE;\n } else if (columnDef.displayField?.displayTimeOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_TIME;\n } else if (columnDef.displayField?.displayHoursAndMinutesOnly) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n } else if (columnDef.displayField?.displayDateAndHoursAndMinutes || columnDef.displayField?.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES;\n }\n filterValue = this.dateToFilterValue(condition.value, condition.operator, columnDef.displayField.type, transformOptions);\n operator = condition.operator;\n } else if (columnDef.displayField.type === AppConstants.TIME) {\n if (columnDef.displayField?.limitToMinuteIncrements) {\n transformOptions.timeStampDirective = LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES;\n }\n filterValue = this.dateToFilterValue(condition.value, condition.operator, columnDef.displayField.type, transformOptions);\n operator = condition.operator;\n } else if (columnDef.displayField.type === AppConstants.YYYYMMDD\n || columnDef.displayField.type === AppConstants.YYYYMM\n || columnDef.displayField.type === AppConstants.MMDD\n || columnDef.displayField.type === AppConstants.YYYY) {\n filterValue = this.dateToFilterValue(condition.value, condition.operator, columnDef.displayField.type, transformOptions);\n operator = condition.operator;\n } else {\n filterValue = this.lmFormatUtilService.toDataValue(condition.value, columnDef.displayField.type, transformOptions);\n operator = condition.operator;\n }\n\n return {\n operator: this.getLMOperator(operator),\n fieldId: columnDef.fieldId,\n id: columnDef.id,\n label: columnDef.name,\n value: filterValue,\n isRequired: columnDef.isRequiredSearch,\n enteredFilterValue\n };\n }\n\n private dateToFilterValue(value: string, operator: string, type: string, transformOptions?: LMTransformOptions): string {\n let filterValue: string;\n let startDate: string;\n let endDate: string;\n const range = value.split(' - ');\n\n if (operator === 'in-range') {\n if (range.length === 2) {\n startDate = this.lmFormatUtilService.toDataValue(range[0].trim(), type);\n endDate = this.lmFormatUtilService.toDataValue(range[1].trim(), type);\n } else {\n // Provide a default end date to prevent Internal Server Errors until\n // https://github.com/infor-design/enterprise/issues/3337 is resolved\n startDate = this.lmFormatUtilService.toDataValue(range[0].trim(), type);\n endDate = this.getDefaultValue(type);\n }\n filterValue = startDate + ',' + endDate;\n } else {\n if (range.length > 1) {\n value = range[0];\n }\n filterValue = filterValue = this.lmFormatUtilService.toDataValue(value, type, transformOptions);\n }\n\n return filterValue;\n }\n\n private getDefaultValue(type: string): any {\n const defaultValue = '';\n\n if (type === AppConstants.YYYYMMDD) {\n return '00000000';\n\n } else if (type === AppConstants.YYYYMM) {\n return '000000';\n\n } else if (type === AppConstants.MMDD) {\n return '0000';\n\n } else if (type === AppConstants.YYYY) {\n return '0000';\n\n } else if (type === AppConstants.TIMESTAMP) {\n return '0000000000000000';\n }\n\n return defaultValue;\n }\n\n public getSohoOperator(lmOperator: LMFilterFieldOperator | string): SohoFilterFieldOperator {\n const foundEntry: OperatorMapping = AppConstants.OperatorMap.find(operatorEntry => operatorEntry.lmOperator === lmOperator);\n return foundEntry ? foundEntry.sohoOperator : null;\n }\n\n public getLMOperator(sohoOperator: SohoFilterFieldOperator | string): LMFilterFieldOperator {\n const foundEntry: OperatorMapping = AppConstants.OperatorMap.find(operatorEntry => operatorEntry.sohoOperator === sohoOperator);\n return foundEntry ? foundEntry.lmOperator : null;\n }\n\n /**\n * Builds the pageSizeChooser values and will include a showLines from the spec\n * if one is specified. If not showing a pagesizechooser then it will return an\n * empty array.\n * @param listSpec The list spec to determine if showLines is set.\n */\n public getPageSizesArray(listSpec: LMListSpec): number[] {\n if (!this.showPageSizeChooser(listSpec)) {\n return [];\n }\n\n let pageSizeArray = AppConstants.PAGE_SIZES;\n if (listSpec.busListSpec.showLines !== undefined) {\n if (!pageSizeArray.includes(listSpec.busListSpec.showLines)) {\n pageSizeArray = pageSizeArray.concat(listSpec.busListSpec.showLines).sort((a, b) => a - b);\n }\n }\n\n return pageSizeArray;\n }\n\n /**\n * Get the page size based on first personalization, then showLines, then spec page size (default).\n * If not showing the page size chooser then no personalization is valid so return showLines and\n * then the default page size.\n * @param listSpec The list spec to determine if showLines is set.\n * @param listPersonalization The list personalization state object.\n */\n public getPageSize(listSpec: LMListSpec, listPersonalization: LMListPersonalization): number {\n if (this.showPageSizeChooser(listSpec)) {\n return listPersonalization.pageSize || listSpec.busListSpec.showLines || listSpec.pageSize;\n } else {\n return listSpec.busListSpec.showLines || listSpec.pageSize;\n }\n }\n\n /**\n * Whether or not the pageSizeChooser dropdown should be displayed or not.\n * @param listSpec The list spec to determine if a pageSizeChooser should be shown.\n */\n public showPageSizeChooser(listSpec: LMListSpec) {\n return !this.lmListSpecUtilService.isDashBoardContent(listSpec) && !this.lmListSpecUtilService.isColumnarView(listSpec);\n }\n\n /**\n * Return whether this list is the target of a use-as-search form. In that case the list should\n * start out empty and only fill out if the user clicks search.\n * @param listSpec\n */\n public isUseAsSearchTargetList(listSpec: LMListSpec) {\n if (listSpec.listType !== 'select' && listSpec.busListSpec.searchForm && !listSpec.busListSpec.searchForm.useSearchAsFilter) {\n return true;\n }\n\n return false;\n }\n\n public displayPagingConfirmation(): Observable {\n return new Observable ((observer) => {\n const dialogId = 'DataHasChanged';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n observer.next(false);\n observer.complete();\n modal.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n observer.next(true);\n observer.complete();\n modal.close();\n }\n }\n ];\n\n // Show the confirmation message dialog.\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('ContinueWithoutSaving'))\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .open();\n });\n }\n\n /**\n * For lists that don't have 'use as filter' the list is supposed to initially display w/o any records.\n * But we also want to allow the user to search w/o entering in search criteria and have all recs returned.\n * And then want clear-search on the search form to clear any search results whether from criteria or just\n * clicking search w/o any search criteria.\n *\n * To know the different we distinguish between these 3 state:\n * filterCriteria === null - means clear the search and show the list empty and return 0 for nbrRecs\n * filterCriteria === undefined - initial page load\n * filterCriteria ==== [] - means that a filter is to be executed whether there are any array entries\n * or not. return the defaultPageSize\n */\n getInitialNumberOfRecs(listSpec: LMListSpec, listState: LMListState, defaultPageSize: number) {\n let initialNbrRecs = defaultPageSize;\n if (this.isUseAsSearchTargetList(listSpec)) {\n // if loading from pageSate and filterCriteria is null or undefined then return 0 initial recs\n // else let it fall through to return the defaultPageSize.\n if (!listState || listState.filterCriteria === null || listState.filterCriteria === undefined) {\n initialNbrRecs = 0;\n }\n }\n\n return initialNbrRecs;\n }\n\n public getInitialActivatedRow(listSpec: LMListSpec, listState: LMListState, fromDataView: LMDataView) {\n // let activatedRow = -1;\n // if (resetSelection || (this.listSpec.dependentList && this.listState.fromResourceId !== this.fromDataView.resourceId)) {\n // activatedRow = 0;\n // } else {\n // activatedRow = this.listState.activatedRow && this.listState.activatedRow > -1 ? this.listState.activatedRow : 0;\n // }\n // return activatedRow;\n\n if (!listSpec.dependentList || listState.fromResourceId === fromDataView.resourceId) {\n if (listState && listState.activatedRow > -1) {\n // ---------------------------------------------------------------------------------------------\n // return activated row of the listState.activatedRow for all NON DEPENDENT lists but ONLY\n // dependent lists where the fromDataView hasn't changed.\n // ---------------------------------------------------------------------------------------------\n return listState.activatedRow;\n }\n }\n\n return 0;\n }\n\n getInitialSelectedRows(listSpec: LMListSpec, listState: LMListState, dataViewSet: LMDataViewSet, fromDataView: LMDataView): number[] {\n if (!listSpec.dependentList || listState.fromResourceId === fromDataView.resourceId) {\n if (listState && listState.selectedRows && listState.selectedRows.length > 0) {\n // ---------------------------------------------------------------------------------------------\n // return selected rows of the listState.selectedRows for all NON DEPENDENT lists but ONLY\n // dependent lists where the fromDataView hasn't changed.\n // ---------------------------------------------------------------------------------------------\n return listState.selectedRows.filter(row => row < dataViewSet.data.length);\n }\n }\n\n return undefined;\n }\n\n public isFieldCopyable(fieldId: string, field: LMField, dataView: LMDataView): boolean {\n if (!fieldId || !field) {\n return false;\n }\n\n if (field.symbolicKey || field.symbolicVersionKey) {\n return false;\n }\n\n if (fieldId.includes('_prd_')) {\n const groupFieldId = fieldId.split('_prd_')[0];\n const groupField = dataView.fields[ groupFieldId ];\n if (groupField && groupField.type === 'group' && (groupField.symbolicKey || groupField.symbolicVersionKey)) {\n return false;\n }\n }\n\n return true;\n }\n\n public isAutoFilterEnabled(): boolean {\n if (this.lmContextService.getFilterBarModeSetInCsk() !== undefined) {\n return !(this.lmContextService.getFilterBarModeSetInCsk() === 'power');\n } else if (this.lmGlobalPersonalizationService.getGlobalPersonalization()?.automaticSearch !== undefined) {\n return this.lmGlobalPersonalizationService.getGlobalPersonalization().automaticSearch !== 'passive';\n } else if (this.lmContextService.isFilterBarOnPowerMode()) {\n return !this.lmContextService.isFilterBarOnPowerMode();\n }\n\n return true;\n }\n\n public hasSearchForm(listSpec: LMListSpec, isDashBoardContent: boolean) {\n if (listSpec?.busListSpec) {\n\n // don't allow search forms mingle widgets\n if (listSpec.showAsMingleWidget) {\n return false;\n }\n\n // don't allow search forms in dashboard panels\n if (isDashBoardContent) {\n return false;\n }\n\n return (listSpec.busListSpec.searchForm !== undefined);\n }\n return false;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { LMListGridComponent } from '@list/lm-list-grid.component';\nimport { LMListTreeComponent } from '@list/lm-list-tree.component';\nimport { LMListChartComponent } from '@list/lm-list-chart.component';\nimport { LMListViewComponent } from '@list/lm-list-view.component';\nimport { LMListImageComponent } from '@list/lm-list-image.component';\nimport { LMListHierarchyComponent } from '@list/lm-list-hierarchy.component';\nimport { LMListContentFilterListComponent } from '@list/lm-list-content-filterlist.component';\nimport { LMListCubeViewerComponent } from '@list/lm-list-cube-viewer.component';\nimport { LMListCalendarComponent } from '@list/lm-list-calendar.component';\nimport { LMListGalleryComponent } from '@app/components';\n\n/** @deprecated move all this into lm-list-spec-util.service.ts */\n@Injectable()\nexport class LMListService {\n private readonly listTypes = {\n list: LMListGridComponent,\n listView: LMListViewComponent,\n filterList: LMListContentFilterListComponent,\n hierarchy: LMListHierarchyComponent,\n chart: LMListChartComponent,\n tree: LMListTreeComponent,\n imageList: LMListImageComponent,\n cubeView: LMListCubeViewerComponent,\n calendar: LMListCalendarComponent,\n gallery: LMListGalleryComponent\n };\n\n constructor() {}\n\n public getListByDisplayType(displayType: string): Type {\n return this.listTypes[displayType];\n }\n}\n","export * from './lm-list-dropdown.component';\nexport * from './lm-list-dropdown.service';\n","import { AfterViewInit, Component, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { SohoBusyIndicatorDirective, SohoDropDownComponent } from 'ids-enterprise-ng';\nimport { LMErrorUtilService, LMFormatUtilService, LMLoggerService } from '@app/services';\nimport { LMListDropdownService } from '@components/lmlistdropdown/lm-list-dropdown.service';\n\n\n@Component({\n selector: 'lm-list-dropdown',\n templateUrl: 'lm-list-dropdown.component.html',\n styleUrls: [ 'lm-list-dropdown.component.scss' ],\n})\n\nexport class LMListDropdownComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(SohoDropDownComponent) dropdown: SohoDropDownComponent;\n @ViewChild(SohoBusyIndicatorDirective) _busyIndicator: SohoBusyIndicatorDirective;\n\n @HostBinding('class.is-compact-form-layout') useCompactFormLayout: boolean;\n\n @Input() options: LMListDropdownOptions;\n @Input() readonly: boolean;\n\n id: string;\n values: Array = new Array();\n states: Array = new Array()\n isInAccessibilityMode: boolean;\n sohoReloadStyle: SohoDropDownReloadStyles;\n\n constructor(\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmLoggerService: LMLoggerService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmMultiValueLookService: LMListDropdownService) {\n }\n\n ngOnInit(): void {\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.sohoReloadStyle = 'typeahead';\n }\n\n ngAfterViewInit(): void {\n\n }\n\n ngOnDestroy(): void {\n\n }\n\n set busyIndicator(value: boolean) {\n if (this._busyIndicator) {\n this._busyIndicator.activated = value;\n }\n }\n\n onChanged(event: Event) {\n }\n\n onDirty(event: Event) {\n\n }\n\n onPristine(event: Event) {\n\n }\n\n onAfterResetDirty(event: Event) {\n\n }\n\n trackByValue(index: number, state: LMStateValue) {\n return state.value;\n }\n\n source = (response: any, searchTerm: string) => {\n this.updateSource(response, searchTerm);\n }\n\n private updateSource(response: any, searchTerm: string) {\n this.busyIndicator = true;\n this.lmMultiValueLookService.fetchData(this.options, searchTerm).subscribe(dataResponse => {\n if (dataResponse?.status === 'Completed') {\n this.handleDataResponse(dataResponse);\n setTimeout(() => {\n if (typeof response === 'function') {\n // true indicates to sohoxi dropdown to not create option tags\n response(this.states, true);\n } else {\n this.dropdown.updated();\n }\n this.busyIndicator = false;\n });\n } else {\n this.lmErrorUtilService.handleViewException(dataResponse as LMError);\n this.busyIndicator = false;\n }\n },\n (error) => {\n this.busyIndicator = false;\n this.lmLoggerService.error([ 'Error in fetching list as states', this.id, error ]);\n });\n }\n\n private handleDataResponse(response: LMListDropdownDataResponse) {\n const states = response.data;\n\n for (const value of this.values) {\n const selectedStateValue = this.states.find((sv: LMStateValue) => sv.value === value);\n const addState = selectedStateValue ? !response.data.some((sv: LMStateValue) => sv.value === selectedStateValue.value) : false;\n if (addState){\n selectedStateValue.selected = true;\n states.push(selectedStateValue);\n }\n }\n\n const selectMore: LMStateValue = {\n value: 'NANSelection',\n label: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('NumberSelected'), [ this.values.length, this.options.maxValues ]),\n disabled: true\n };\n\n states.push(selectMore);\n\n if (response.moreRecordsExists) {\n const searchToRefine: LMStateValue = {\n value: 'NANSearch',\n label: Soho.Locale.translate('RefineSearch'),\n disabled: true\n };\n\n states.push(searchToRefine);\n }\n\n this.states = states;\n }\n}\n","\n \n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMContextService, LMLoggerService, LMUrlUtilService, URLOptions } from '@app/services';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { catchError } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport { ListResource } from '@app/resources';\n\n@Injectable()\nexport class LMListDropdownService {\n\n constructor(\n private httpClient: HttpClient,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService) {\n }\n\n public fetchData(options: LMListDropdownOptions, searchTerm: string): Observable {\n const listResource: ListResource = new ListResource({ busClassName: options.businessClass } );\n const urlOptions: URLOptions = { resource: listResource };\n const url = this.lmUrlUtilService.buildUrl(urlOptions);\n const request: LMListDropdownDataRequest = {\n requestType: 'RecordsAsStates'\n };\n\n if (searchTerm && searchTerm.trim().length > 0) {\n request.searchTerm = searchTerm;\n request.searchFields = options.searchFields;\n }\n\n if (options.selectList) {\n request.selectList = options.selectList;\n }\n\n return >this.httpClient\n .post(url, request).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n}\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LMLocaleInitializerFactory, LMLocaleInitializerService } from '@services/lm-locale-initializer.service';\n\n@NgModule({\n imports: [ CommonModule ],\n declarations: [],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: LMLocaleInitializerFactory,\n deps: [LMLocaleInitializerService],\n multi: true\n }\n ]\n})\nexport class LMLocaleInitializerModule {}\n","export * from './lm-login.component';\nexport * from './lm-login.service';\n","import {\n Component,\n OnInit\n} from '@angular/core';\nimport { SohoButtonComponent } from 'ids-enterprise-ng';\nimport { LMLoggerService } from '@services/lm-logger.service';\n\n@Component({\n selector: 'lm-login-component',\n templateUrl: './lm-login.component.html',\n styleUrls: [ 'lm-login.component.scss' ]\n})\nexport class LMLoginComponent implements OnInit {\n\n private applicationName = Soho.Locale.translate('ApplicationName');\n private buttonType = SohoButtonComponent.PRIMARY;\n private submitText = Soho.Locale.translate('Submit');\n\n forgotPasswordText = Soho.Locale.translate('ForgotPassword');\n userNameText = Soho.Locale.translate('Username');\n passwordText = Soho.Locale.translate('Password');\n model = {\n userName: null,\n password: null\n };\n\n constructor(private lmLoggerService: LMLoggerService) { }\n\n public getUserName() {\n return this.model.userName;\n }\n\n public getPassword() {\n return this.model.password;\n }\n\n // events\n ngOnInit() {}\n\n submitLogin() {\n // this.lmLoggerService.log('User Name: ' + this.model.userName + ' Password: ' + this.model.password);\n }\n}\n","
          \n
          \n\n \n\n
          \n \n \n
          \n\n
          \n \n \n
          \n\n
          \n {{forgotPasswordText}}\n\n \n \n \n \n
          \n
          \n
          \n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { Observable } from 'rxjs';\nimport { LMLoginComponent } from '@login/lm-login.component';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\n\nexport enum LoginDialogStatus {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK\n}\n\nexport interface LoginResult {\n status: LoginDialogStatus;\n userName: string;\n password: string;\n}\n\n@Injectable()\nexport class LMLoginService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n }\n\n /**\n * Prompt login dialog\n * @param viewContainerRef\n *\n * @return Observable\n */\n public promptLoginDialog(placeholder: ViewContainerRef): Observable {\n const login: Observable = new Observable(observer => {\n let loginComponent: LMLoginComponent;\n let dialog: SohoModalDialogRef;\n const dialogId = 'PromptLogin';\n\n // Build the buttons array\n // Todo: Button text, title translation.\n const buttons = [\n // TODO: The button default disables the button. A bug in controls?\n // TODO: use LMDialogButtonKey and Soho.Locale.translate\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, 'SUBMIT']),\n text: 'SUBMIT',\n click: (e, modal) => {\n this.lmLoggerService.log('User Name: ' + loginComponent.getUserName() + ' Password: ' + loginComponent.getPassword());\n dialog.close({\n status: LoginDialogStatus.RESPONSE_OK,\n userName: loginComponent.getUserName(),\n password: loginComponent.getPassword()\n });\n },\n isDefault: true\n }\n ];\n dialog = this.sohoModalDialogService\n .modal(LMLoginComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title('')\n .isAlert(false)\n .open()\n .apply((loginForm: LMLoginComponent) => {\n loginComponent = loginForm;\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n return login;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\nimport { SohoAlertDirective } from 'ids-enterprise-ng';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, first, takeUntil } from 'rxjs/operators';\nimport { LMLplEditorService } from './lm-lpl-editor.service';\n// import { editor } from 'monaco-editor';\n// import IDiffEditor = editor.IDiffEditor;\n// import ITextModel = editor.ITextModel;\n// import IEditorAction = editor.IEditorAction;\n// import IStandaloneDiffEditorConstructionOptions = editor.IStandaloneDiffEditorConstructionOptions;\n\n@Component({\n selector: 'lm-lpl-editor-compare',\n templateUrl: 'lm-lpl-editor-compare.component.html',\n styleUrls: [ 'lm-lpl-editor-compare.component.scss' ],\n})\n\nexport class LMLplEditorCompareComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @ViewChild(SohoAlertDirective) alert: SohoAlertDirective;\n @ViewChild('editorContainer') _editorContainer: ElementRef;\n\n @Input() set validationOptions(validationOptions: LMEditorValidationOptions) {\n this._validationOptions = validationOptions;\n this.canValidateLpl = this.lmLplEditorService.canValidateLpl(validationOptions);\n }\n\n get validationOptions(): LMEditorValidationOptions {\n return this._validationOptions;\n }\n\n get original(): string {\n return this._original;\n }\n\n @Input() set original(lpl: string) {\n this._original = lpl;\n if (this.diffEditor) {\n this.diffEditor.getOriginalEditor().getModel().setValue(this.original);\n }\n };\n\n get lpl(): string {\n return this._lpl;\n }\n\n @Input() set lpl(lpl: string) {\n this._lpl = lpl;\n if (this.diffEditor) {\n this.diffEditor.getModifiedEditor().getModel().setValue(this.lpl);\n }\n };\n\n @Input() set readonly(readonly: boolean) {\n this._readonly = readonly;\n this.updateReadOnlyState();\n };\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n @Output() lplChangedEvent = new EventEmitter();\n\n private destroyer$ = new Subject();\n public lplValidator$ = new Subject();\n private diffEditor: monaco.editor.IDiffEditor;\n private _validationOptions: LMEditorValidationOptions;\n public canValidateLpl = false;\n private _readonly = false;\n private _original: string;\n private _lpl: string;\n public validatorTooltip: string;\n\n public monacoOptions: monaco.editor.IStandaloneDiffEditorConstructionOptions = {\n theme: 'vs',\n automaticLayout: true,\n foldingStrategy: 'indentation',\n dragAndDrop: true,\n scrollBeyondLastLine: false\n };\n\n constructor(\n protected lmContextService: LMContextService,\n protected lmLplEditorService: LMLplEditorService) {\n // no-op\n }\n\n ngOnInit(): void {\n this.validatorTooltip = Soho.Locale.translate('LPL_EDITOR_VALIDATOR_TOOLTIP');\n }\n\n ngAfterViewInit(): void {\n this.initMonaco();\n\n this.lplValidator$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1250),\n distinctUntilChanged())\n .subscribe(value => {\n this.validateLpl();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyer$.next();\n this.destroyer$.complete();\n\n if (this.diffEditor) {\n this.diffEditor.dispose();\n }\n }\n private initMonaco() {\n if (!this.lmLplEditorService.isMonacoAvailable()) {\n this.lmLplEditorService.loadingMonacoFinished.pipe(first()).subscribe(() => {\n this.initMonaco();\n });\n return;\n }\n\n this.diffEditor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, this.monacoOptions);\n\n this.diffEditor.setModel({\n original: monaco.editor.createModel(this.original, 'lpl'),\n modified: monaco.editor.createModel(this.lpl, 'lpl')\n });\n\n this.lmLplEditorService.syncMonacoThemeToSohoTheme();\n this.updateReadOnlyState();\n this.addMonacoListeners();\n }\n\n private updateReadOnlyState(): void {\n if (this.diffEditor) {\n this.diffEditor.updateOptions({ readOnly: this.readonly, extraEditorClassName: this.readonly ? 'lm-readonly-editor' : '' });\n }\n }\n\n private addMonacoListeners(): void {\n const model = this.diffEditor.getModifiedEditor().getModel() as monaco.editor.ITextModel;\n model.onDidChangeContent((e) => {\n if (!this.readonly) {\n const changedLPL = this.diffEditor.getModifiedEditor().getModel().getValue();\n this.lplChangedEvent.emit(changedLPL);\n this.lplValidator$.next(changedLPL);\n }\n });\n }\n\n private validateLpl(): void {\n if (this.readonly) {\n return;\n }\n\n if (this.validationOptions) {\n this._validateLpl().subscribe((response: LPLValidationResponse) => {\n this.updateLPLValidation(response);\n });\n }\n }\n\n private _validateLpl(): Observable {\n const changedLPL = this.diffEditor.getModifiedEditor().getModel().getValue();\n return this.lmLplEditorService.validateLpl(changedLPL, this.validationOptions);\n }\n\n private updateLPLValidation(lplValidationResponse?: LPLValidationResponse): void {\n const model = this.diffEditor.getModifiedEditor().getModel() as monaco.editor.ITextModel;\n this.lmLplEditorService.updateLPLValidation(model, lplValidationResponse, this.alert);\n }\n\n onMonacoClickEvent(id: string) {\n this.diffEditor.focus();\n const actions: monaco.editor.IEditorAction[] = this.diffEditor.getSupportedActions();\n const action = actions.find(item => item.id === id && item.isSupported());\n\n if (action) {\n action.run();\n }\n }\n}\n","\n
          \n
          \n {{ 'LPL_EDITOR_COMMANDS' | translate }}\n \n
          \n
          \n\n
          \n
          \n\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\nimport { SohoAlertDirective } from 'ids-enterprise-ng';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, first, takeUntil } from 'rxjs/operators';\nimport { LMLplEditorService } from './lm-lpl-editor.service';\n// import { editor } from 'monaco-editor';\n// import ITextModel = editor.ITextModel;\n// import IEditorAction = editor.IEditorAction;\n// import IEditor = editor.IEditor;\n// import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions;\n\n\n@Component({\n selector: 'lm-lpl-editor',\n templateUrl: 'lm-lpl-editor.component.html',\n styleUrls: [ 'lm-lpl-editor.component.scss' ],\n})\n\nexport class LMLplEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @ViewChild(SohoAlertDirective) alert: SohoAlertDirective;\n @ViewChild('editorContainer') _editorContainer: ElementRef;\n\n @Input() set validationOptions(validationOptions: LMEditorValidationOptions) {\n this._validationOptions = validationOptions;\n this.canValidateLpl = this.lmLplEditorService.canValidateLpl(validationOptions);\n }\n\n get validationOptions(): LMEditorValidationOptions {\n return this._validationOptions;\n }\n\n get lpl(): string {\n return this._lpl;\n }\n\n @Input() set lpl(lpl: string) {\n this._lpl = lpl;\n if (this.editor) {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n model.setValue(lpl);\n }\n };\n\n @Input() set readonly(readonly: boolean) {\n this._readonly = readonly;\n this.updateReadOnlyState();\n };\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n @Output() lplChangedEvent = new EventEmitter();\n\n private destroyer$ = new Subject();\n public lplValidator$ = new Subject();\n private editor: monaco.editor.IEditor;\n private _validationOptions: LMEditorValidationOptions;\n public canValidateLpl = false;\n private _readonly = false;\n private _lpl: string;\n public validatorTooltip: string;\n\n public monacoOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n theme: 'vs',\n automaticLayout: true,\n language: 'LPL',\n foldingStrategy: 'indentation',\n dragAndDrop: true,\n scrollBeyondLastLine: false\n };\n\n public secClassMonacoOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n theme: 'vs',\n automaticLayout: true,\n language: 'secclass',\n foldingStrategy: 'indentation',\n dragAndDrop: true,\n scrollBeyondLastLine: false\n };\n\n secClassSecurableObjects: Array;\n secClassSecurableTypes: Array;\n\n constructor(\n protected lmContextService: LMContextService,\n protected lmLplEditorService: LMLplEditorService) {\n }\n\n ngOnInit(): void {\n this.validatorTooltip = Soho.Locale.translate('LPL_EDITOR_VALIDATOR_TOOLTIP');\n\n if (this.validationOptions?.type === 'secClass' && !this.readonly) {\n this.secClassSecurableObjects = this.lmLplEditorService.getSecuritySnippetInfo('object');\n this.secClassSecurableTypes = this.lmLplEditorService.getSecuritySnippetInfo('type');\n }\n }\n\n ngAfterViewInit(): void {\n this.initMonaco();\n\n this.lplValidator$.pipe(\n takeUntil(this.destroyer$),\n debounceTime(1250),\n distinctUntilChanged())\n .subscribe(value => {\n // if (!this.pauseChangeListeners) { // no need to do if readonly\n this.validateLpl();\n // }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyer$.next();\n this.destroyer$.complete();\n\n if (this.editor) {\n this.editor.dispose();\n }\n }\n\n private initMonaco() {\n if (!this.lmLplEditorService.isMonacoAvailable()) {\n this.lmLplEditorService.loadingMonacoFinished.pipe(first()).subscribe(() => {\n this.initMonaco();\n });\n return;\n }\n\n const options = this.validationOptions?.type === 'secClass' ? this.secClassMonacoOptions : this.monacoOptions;\n this.editor = monaco.editor.create(this._editorContainer.nativeElement, options);\n this.lmLplEditorService.syncMonacoThemeToSohoTheme();\n\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n model.setValue(this.lpl );\n this.updateReadOnlyState();\n this.addMonacoListeners();\n }\n\n private updateReadOnlyState(): void {\n if (this.editor) {\n this.editor.updateOptions({\n readOnly: this.readonly,\n extraEditorClassName: this.readonly ? 'lm-readonly-editor' : ''\n });\n }\n }\n\n private addMonacoListeners(): void {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n model.onDidChangeContent((e) => {\n if (!this.readonly) {\n const lpl = model.getValue();\n this.lplChangedEvent.emit(lpl);\n this.lplValidator$.next(lpl);\n }\n });\n }\n\n private validateLpl(): void {\n if (this.readonly) {\n return;\n }\n\n if (this.validationOptions) {\n this._validateLpl().subscribe((response: LPLValidationResponse) => {\n this.updateLPLValidation(response);\n });\n }\n }\n\n private _validateLpl(): Observable {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n const changedLPL = model.getValue();\n return this.lmLplEditorService.validateLpl(changedLPL, this.validationOptions);\n }\n\n private updateLPLValidation(lplValidationResponse?: LPLValidationResponse): void {\n const model = this.editor.getModel() as monaco.editor.ITextModel;\n this.lmLplEditorService.updateLPLValidation(model, lplValidationResponse, this.alert);\n }\n\n onMonacoClickEvent(id: string) {\n this.editor.focus();\n const actions: monaco.editor.IEditorAction[] = this.editor.getSupportedActions();\n const action = actions.find(item => item.id === id && item.isSupported());\n\n if (action) {\n action.run();\n }\n }\n\n onSecuritySnippetClickEvent(category: SECCLASSCategory, snippet: SECCLASSType | SECCLASSObject) {\n this.editor.trigger('KeyBoard', 'type', {\n text: this.lmLplEditorService.getSecuritySnippet(category, snippet),\n });\n }\n}\n","\n
          \n
          \n {{ 'LPL_EDITOR_FOLDING' | translate }}\n \n {{ 'LPL_EDITOR_COMMANDS' | translate }}\n \n\n \n \n
          \n {{ 'LPL_EDITOR_VALIDATOR_OFF' | translate }}\n
          \n
          \n
          \n","import { Observable, of, Subject, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { LMUrlUtilService } from '@services/utils';\nimport { SohoAlertDirective } from 'ids-enterprise-ng';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMModel } from '@form/model';\nimport IMarkerData = monaco.editor.IMarkerData;\nimport ITextModel = monaco.editor.ITextModel;\nimport CompletionList = monaco.languages.CompletionList;\nimport ProviderResult = monaco.languages.ProviderResult;\nimport CompletionContext = monaco.languages.CompletionContext;\nimport CancellationToken = monaco.CancellationToken;\nimport Position = monaco.Position;\nimport { environment } from '@environments/environment';\n// import { languages } from 'monaco-editor';\n\n@Injectable()\nexport class LMLplEditorService {\n\n public static LPL_VALIDATION_REQUEST = 'validateLPL';\n public loadingMonacoFinished: Subject = new Subject();\n private monacoLoaded = false;\n\n constructor(\n protected httpClient: HttpClient,\n protected lmUrlUtilService: LMUrlUtilService,\n protected lmThemeService: LMThemeService) {\n this.loadMonaco();\n }\n\n private finishLoadingMonaco() {\n this.monacoLoaded = true;\n this.loadingMonacoFinished.next();\n }\n\n private loadMonaco() {\n // load the assets\n const baseUrl = environment.production ? '/static/cli/dist/assets/monaco/min/vs' : '/static/cli/src/assets/monaco/dev/vs';\n if (typeof (window).monaco === 'object') {\n this.finishLoadingMonaco();\n return;\n }\n const onGotAmdLoader: any = () => {\n // load Monaco\n (window).require.config({ paths: { vs: `${baseUrl}` } });\n (window).require([ `vs/editor/editor.main` ], () => {\n this.finishLoadingMonaco();\n });\n };\n\n // load AMD loader, if necessary\n if (!(window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/loader.js`;\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n } else {\n onGotAmdLoader();\n }\n }\n\n public isMonacoAvailable(): boolean {\n return this.monacoLoaded;\n }\n\n public syncMonacoThemeToSohoTheme(): void {\n const currentTheme = this.lmThemeService.getCurrentThemeId();\n const monacoTheme = ('theme-classic-dark' === currentTheme || 'theme-new-dark' === currentTheme) ? 'vs-dark' : 'vs';\n this.addLPLLanguageToMonaco();\n monaco.editor.setTheme(monacoTheme);\n }\n\n public createValidationOptions(lplValSpec: LMLplValSpec, data: LMModel): LMEditorValidationOptions {\n if (lplValSpec !== undefined) {\n const busClassName = data.getData().busClassName;\n const busViewFld = lplValSpec.busViewFldId ? data.getField(lplValSpec.busViewFldId) : undefined;\n const specNameFld = lplValSpec.specNameFldId ? data.getField(lplValSpec.specNameFldId) : undefined;\n const independentFld = lplValSpec.independentFldId ? data.getField(lplValSpec.independentFldId) : undefined;\n\n let specType: string;\n if (lplValSpec.cfgEntryType) {\n specType = lplValSpec.cfgEntryType;\n } else {\n const configTypeFld = data.getField(lplValSpec.cfgEntryTypeFldId);\n specType = configTypeFld ? configTypeFld.value : undefined;\n\n }\n const type = this.convertValidationType(specType);\n const typeName = specNameFld ? specNameFld.value : undefined;\n const busViewName = busViewFld ? busViewFld.value : undefined;\n const specName = this.convertValidationSpecName(type, busViewName, typeName);\n\n if (type !== undefined && specName !== undefined) {\n const independent = independentFld ? independentFld.value : false;\n return {\n businessClass: busClassName,\n type,\n specName,\n independent\n };\n }\n }\n // if we got this far then there isn't options!\n return undefined;\n }\n\n private convertValidationType(type: string): LPLType {\n\n // map to the CFGEntry Class\n switch (type) {\n case 'BUSINESSCLASS': return 'businessClass';\n case 'RELATION': return 'relation';\n case 'KEYFIELD': return 'keyField';\n case 'FIELD': return 'field';\n case 'ACTION': return 'requestAction';\n case 'ACTIONCONFIGURATION': return 'actionConfiguration';\n case 'ACTION_EXTENSION': return 'actionExtension';\n case 'USER_ACTION': return 'userAction' ;\n case 'CUBE_CFG': return 'cube';\n case 'LIST': return 'list';\n case 'FORM': return 'form';\n case 'MENU': return 'menu';\n case 'PAGE': return 'page';\n case 'RPT': return 'rptMap';\n case 'SECURITY_CLASS': return 'secClass';\n case 'CARDVIEW': return 'cardView';\n case 'WEBAPP': return 'webApp';\n case 'WSI': return 'wsi';\n case 'PRODLINEOVERRIDE': return 'prodLine';\n case 'NAVIGATION': return 'navigation';\n\n default: return undefined;\n }\n }\n\n private convertValidationSpecName(lplType: LPLType, busViewName: string, specName: string): string {\n if (lplType === undefined) {\n return undefined;\n }\n switch (lplType) {\n case 'menu':\n case 'page':\n case 'webApp':\n case 'rptMap':\n case 'secClass':\n case 'prodLine':\n return specName;\n case 'keyField':\n case 'businessClass':\n case 'list':\n case 'form':\n case 'cardView':\n case 'field':\n case 'relation':\n case 'userAction':\n case 'actionExtension':\n case 'actionConfiguration':\n case 'requestAction':\n case 'cube':\n case 'navigation':\n return busViewName;\n default:\n return undefined;\n }\n }\n\n public canValidateLpl(options: LMEditorValidationOptions): boolean {\n if (!options) {\n return false;\n } else {\n switch (options.type) {\n case 'menu':\n case 'page':\n case 'list':\n case 'form':\n case 'cardView':\n case 'field':\n case 'relation':\n case 'userAction':\n case 'actionExtension':\n case 'actionConfiguration':\n case 'requestAction':\n case 'webApp':\n case 'rptMap':\n case 'secClass':\n case 'keyField':\n case 'businessClass':\n case 'cube':\n case 'prodLine':\n case 'navigation':\n return true;\n default:\n return false;\n }\n }\n }\n\n public validateLpl(changedLPL: string, options: LMEditorValidationOptions): Observable {\n const businessClass = options.businessClass;\n const specName = options.specName;\n const independent = options.independent;\n\n switch (options.type) {\n case 'menu':\n return this.validateMenu(businessClass, specName, changedLPL, independent);\n case 'page':\n return this.validatePage(businessClass, specName, changedLPL);\n case 'list':\n return this.validateList(businessClass, specName, changedLPL, independent);\n case 'form':\n return this.validateForm(businessClass, specName, changedLPL, independent);\n case 'cardView':\n return this.validateCardView(businessClass, specName, changedLPL, independent);\n case 'field':\n return this.validateField(businessClass, specName, changedLPL);\n case 'relation':\n return this.validateRelation(businessClass, specName, changedLPL);\n case 'userAction':\n return this.validateUserAction(businessClass, specName, changedLPL);\n case 'actionExtension':\n return this.validateActionExtension(businessClass, specName, changedLPL);\n case 'actionConfiguration':\n return this.validateActionConfiguration(businessClass, specName, changedLPL);\n case 'requestAction':\n return this.validateRequestAction(businessClass, specName, changedLPL);\n case 'webApp':\n return this.validateWebApp(businessClass, specName, changedLPL);\n case 'rptMap':\n return this.validateRptMap(businessClass, specName, changedLPL);\n case 'secClass':\n return this.validateSecurityClass(businessClass, specName, changedLPL);\n case 'keyField':\n return this.validateKeyField(businessClass, specName, changedLPL);\n case 'businessClass':\n return this.validateBusinessClass(businessClass, specName, changedLPL);\n case 'cube':\n return this.validateCube(businessClass, specName, changedLPL);\n case 'prodLine':\n return this.validateProdLine(businessClass, specName, changedLPL);\n case 'navigation':\n return this.validateNavigation(businessClass, specName, changedLPL);\n default:\n return of({});\n }\n }\n\n public validateKeyField(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('keyField', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateBusinessClass(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('businessClass', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateRequestAction(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('requestAction', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateActionConfiguration(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('actionConfiguration', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateActionExtension(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('actionExtension', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateUserAction(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('userAction', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateField(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('field', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateRelation(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('relation', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateWebApp(businessClass: string, lplWebAppName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('webApp', lplWebAppName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateCube(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('cube', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateProdLine(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('prodLine', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateList(businessClass: string, lplBusinessViewName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('list', lplBusinessViewName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateForm(businessClass: string, lplBusinessViewName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('form', lplBusinessViewName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateMenu(businessClass: string, lplMenuName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('menu', lplMenuName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validatePage(businessClass: string, lplPageName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('page', lplPageName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateCardView(businessClass: string, lplBusinessViewName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('cardView', lplBusinessViewName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateNavigation(businessClass: string, lplBusinessViewName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('navigation', lplBusinessViewName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateSecurityClass(businessClass: string, secClassName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('secClass', secClassName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateRptMap(businessClass: string, lplBusinessViewName: string, lpl: string): Observable {\n const requestInfo = this.buildRequestInfo('rptMap', lplBusinessViewName, lpl);\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public validateWebServiceInterface(businessClass: string, lplBusinessViewName: string, lpl: string, independent?: boolean): Observable {\n const requestInfo = this.buildRequestInfo('wsi', lplBusinessViewName, lpl);\n\n if (independent) {\n requestInfo.independent = true;\n }\n\n return this.makeRequest(businessClass, requestInfo);\n }\n\n public updateLPLValidation(model: ITextModel, lplValidationResponse?: LPLValidationResponse, alert?: SohoAlertDirective): void {\n if (lplValidationResponse && lplValidationResponse.message) {\n this.setLPLMarkings(model, lplValidationResponse, alert);\n } else {\n this.clearLPLMarkings(model, alert);\n }\n }\n\n private setLPLMarkings(model: ITextModel, lplValidationResponse: LPLValidationResponse, alert?: SohoAlertDirective): void {\n\n if (lplValidationResponse.parserInfo && lplValidationResponse.parserInfo.length) {\n let hasError = false;\n lplValidationResponse.parserInfo.forEach(info => {\n const message = info ? info.message : lplValidationResponse.message;\n const alertType = info && info.severity === 'warning' ? 'info' : 'error';\n\n if (alert && alertType === 'error') {\n hasError = true;\n const alertMessage = this.htmlEntityEncode(message);\n alert.id = 'lpl-editor'; // need to make unique!\n alert.addInlineMessage(alertMessage, alertType, true);\n }\n\n const markers: IMarkerData[] = this.convertValidationResponse(lplValidationResponse);\n monaco.editor.setModelMarkers(model, 'LPL', markers);\n });\n\n if (!hasError) {\n alert.removeAllMessages();\n }\n } else if (lplValidationResponse.message) {\n // should never happen\n const errorMessage = this.htmlEntityEncode(lplValidationResponse.message);\n if (alert) {\n alert.id = 'lpl-editor'; // need to make unique!\n alert.addInlineMessage(errorMessage, 'error', true);\n }\n }\n }\n\n private clearLPLMarkings(model: ITextModel, alert?: SohoAlertDirective): void {\n if (alert) {\n alert.removeAllMessages();\n }\n\n monaco.editor.setModelMarkers(model, 'LPL', []);\n }\n\n private buildRequestInfo(listType: LPLType, specName: string, lpl: string): LPLValidationRequest {\n const requestInfo: LPLValidationRequest = {\n requestType: LMLplEditorService.LPL_VALIDATION_REQUEST,\n type: listType,\n specName,\n lpl\n };\n\n return requestInfo;\n }\n\n private buildRequestUrl(businessClass: string): string {\n const baseUrl = this.lmUrlUtilService.getBaseUrl();\n const url = baseUrl + /form/ + businessClass;\n return url;\n }\n\n private makeRequest(businessClass: string, post: LPLValidationRequest): Observable {\n const requestUrl = this.buildRequestUrl(businessClass);\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n return >this.httpClient.post(requestUrl, JSON.stringify(post), { headers }).pipe(\n catchError(error => throwError(error || 'Server error')));\n }\n\n // Utility methods would be nice to put this somewhere else\n\n public convertValidationResponse(lplValidationResponse: LPLValidationResponse): IMarkerData[] {\n const markers: IMarkerData[] = new Array();\n\n if (lplValidationResponse.parserInfo && lplValidationResponse.parserInfo.length) {\n\n lplValidationResponse.parserInfo.forEach(info => {\n const alertType = info.severity === 'warning' ? 'info' : 'error';\n markers.push({\n startLineNumber: info.row,\n startColumn: info.start,\n endLineNumber: info.row,\n endColumn: info.end,\n message: info.message,\n severity: alertType === 'error' ? monaco.MarkerSeverity.Error : monaco.MarkerSeverity.Warning\n }\n );\n });\n }\n\n return markers;\n }\n\n public htmlEntityEncode(text: string): string {\n let encodedText = text;\n encodedText = encodedText.replace(/&/g, '&');\n encodedText = encodedText.replace(//g, '>');\n return encodedText;\n };\n\n public htmlEntityDecode(encodedText: string): string {\n let text = encodedText;\n text = text.replace(/</g, '<').replace(/>/g, '>');\n text = text.replace(/&/g, '&');\n return text;\n };\n\n LPL_LANGUAGE_CONFIGURATION: monaco.languages.LanguageConfiguration = {\n // the default separators except `@$`\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n comments: {\n lineComment: '//',\n blockComment: [ '/*', '*/' ],\n },\n brackets: [\n [ '{', '}' ],\n [ '[', ']' ],\n [ '(', ')' ],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: '\\'', close: '\\'' },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: '\\'', close: '\\'' },\n { open: '<', close: '>' },\n ],\n folding: {\n markers: {\n start: new RegExp('^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:))')\n }\n }\n }\n\n public addLPLLanguageToMonaco(): void {\n if (this.isMonacoAvailable()) {\n const lplLanguage = monaco.languages.getLanguages().find(language => language.id === 'LPL');\n\n if (!lplLanguage) {\n monaco.languages.register({ id: 'LPL' });\n monaco.languages.setLanguageConfiguration('LPL', this.LPL_LANGUAGE_CONFIGURATION);\n monaco.languages.setMonarchTokensProvider('LPL', this.LPL_LANGUAGE);\n }\n\n const secclassLanguage = monaco.languages.getLanguages().find(language => language.id === 'secclass');\n\n if (!secclassLanguage) {\n monaco.languages.register({ id: 'secclass' });\n monaco.languages.setLanguageConfiguration('secclass', this.LPL_LANGUAGE_CONFIGURATION);\n monaco.languages.setMonarchTokensProvider('secclass', this.SECCLASS_LANGUAGE);\n monaco.languages.registerCompletionItemProvider('secclass', {\n provideCompletionItems: (model, position, context, token) =>\n this.getSecClassCompletionList(model, position, context, token)\n });\n }\n }\n }\n\n LPL_LANGUAGE = {\n defaultToken: '',\n tokenPostfix: '.LPL',\n\n keywords: [\n 'abstract', 'continue', 'for', 'new', 'switch', 'assert', 'default',\n 'goto', 'package', 'synchronized', 'boolean', 'do', 'if', 'private',\n 'this', 'break', 'double', 'implements', 'protected', 'throw', 'byte',\n 'else', 'import', 'public', 'throws', 'case', 'enum', 'instanceof', 'return',\n 'transient', 'catch', 'extends', 'int', 'short', 'try', 'char', 'final',\n 'interface', 'static', 'void', 'class', 'finally', 'long', 'strictfp',\n 'volatile', 'const', 'float', 'native', 'super', 'while', 'true', 'false',\n ],\n\n operators: [\n '=', '>', '<', '!', '~', '?', ':',\n '==', '<=', '>=', '!=', '&&', '||', '++', '--',\n '+', '-', '*', '/', '&', '|', '^', '%', '<<',\n '>>', '>>>', '+=', '-=', '*=', '/=', '&=', '|=',\n '^=', '%=', '<<=', '>>=', '>>>='\n ],\n\n // we include these common regular expressions\n symbols: /[=>>>>\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements CreateStamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements UpdateStamp\\b/, { token: 'keyword.$0' } ],\n [ /\\blike\\b/, { token: 'keyword.$0' } ],\n [ /\\bon entrance to\\b/, { token: 'keyword.$0' } ],\n [ /\\bpart of key\\b/, { token: 'keyword.$0' } ],\n [ /\\bsymbolic key\\b/, { token: 'keyword.$0' } ],\n [ /\\bParameter Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bdefault\\b/, { token: 'keyword.$0' } ],\n [ /\\bset to\\b/, { token: 'keyword.$0' } ],\n [ /\\brollback changes to\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ListView\\b/, { token: 'keyword.$0' } ],\n [ /\\bvisible when\\b/, { token: 'keyword.$0' } ],\n [ /\\bfilter form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent timestamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bRelative Key\\b/, { token: 'keyword.$0' } ],\n [ /\\bon exit of\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontrol valid key values\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Validity\\b/, { token: 'keyword.$0' } ],\n [ /\\bContext Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bRule Blocks\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements UserDefinedStates\\b/, { token: 'keyword.$0' } ],\n [ /\\bno rollback\\b/, { token: 'keyword.$0' } ],\n [ /\\bDocumentAccounting\\b/, { token: 'keyword.$0' } ],\n [ /\\bnull\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Proxy for\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ContextualParent\\b/, { token: 'keyword.$0' } ],\n [ /\\bisbusclass\\b/, { token: 'keyword.$0' } ],\n [ /\\bname\\b/, { token: 'keyword.$0' } ],\n [ /\\bstereotype\\b/, { token: 'keyword.$0' } ],\n [ /\\bistransaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bmodule\\b/, { token: 'keyword.$0' } ],\n [ /\\bisbustask\\b/, { token: 'keyword.$0' } ],\n [ /\\bparentcontext\\b/, { token: 'keyword.$0' } ],\n [ /\\bsymbolickey\\b/, { token: 'keyword.$0' } ],\n [ /\\binstancekey\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontains\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements BusinessPolicyIntegrity\\b/, { token: 'keyword.$0' } ],\n [ /\\bBusinessTask\\b/, { token: 'keyword.$0' } ],\n [ /\\bResults\\b/, { token: 'keyword.$0' } ],\n [ /\\bview\\b/, { token: 'keyword.$0' } ],\n [ /\\bnot like\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign result to\\b/, { token: 'keyword.$0' } ],\n [ /\\bField Groups\\b/, { token: 'keyword.$0' } ],\n [ /\\binvoked\\b/, { token: 'keyword.$0' } ],\n [ /\\brelated\\b/, { token: 'keyword.$0' } ],\n [ /\\bEntrance Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bExit Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bautomate context\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a SecurityClass\\b/, { token: 'keyword.$0' } ],\n [ /\\bextends\\b/, { token: 'keyword.$0' } ],\n [ /\\bAccess Rights\\b/, { token: 'keyword.$0' } ],\n [ /\\bis accessible\\b/, { token: 'keyword.$0' } ],\n [ /\\bwhen\\b/, { token: 'keyword.$0' } ],\n [ /\\bunconditionally\\b/, { token: 'keyword.$0' } ],\n [ /\\bis not accessible\\b/, { token: 'keyword.$0' } ],\n [ /\\bKeyField\\b/, { token: 'keyword.$0' } ],\n [ /\\bBusinessClass\\b/, { token: 'keyword.$0' } ],\n [ /\\bBusinessTask\\b/, { token: 'keyword.$0' } ],\n [ /\\bExecutable\\b/, { token: 'keyword.$0' } ],\n [ /\\bForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bPageDefinition\\b/, { token: 'keyword.$0' } ],\n [ /\\bModule\\b/, { token: 'keyword.$0' } ],\n [ /\\bProductLine\\b/, { token: 'keyword.$0' } ],\n [ /\\bDataArea\\b/, { token: 'keyword.$0' } ],\n [ /\\bField\\b/, { token: 'keyword.$0' } ],\n [ /\\ball actions\\b/, { token: 'keyword.$0' } ],\n [ /\\ball inquiries\\b/, { token: 'keyword.$0' } ],\n [ /\\ball updates\\b/, { token: 'keyword.$0' } ],\n [ /\\ball creates\\b/, { token: 'keyword.$0' } ],\n [ /\\ball deletes\\b/, { token: 'keyword.$0' } ],\n [ /\\ball functions\\b/, { token: 'keyword.$0' } ],\n [ /\\bgrants access\\b/, { token: 'keyword.$0' } ],\n [ /\\bis leap year\\b/, { token: 'keyword.$0' } ],\n [ /\\bdecimals\\b/, { token: 'keyword.$0' } ],\n [ /\\byear\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonth\\b/, { token: 'keyword.$0' } ],\n [ /\\bday\\b/, { token: 'keyword.$0' } ],\n [ /\\bis default select\\b/, { token: 'keyword.$0' } ],\n [ /\\bmanual update\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Form\\b/, { token: 'keyword.$0' } ],\n [ /\\bis primary\\b/, { token: 'keyword.$0' } ],\n [ /\\bLayout\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader1 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader2 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader3 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader4 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader5 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bparagraph\\b/, { token: 'keyword.$0' } ],\n [ /\\bhorizontal\\b/, { token: 'keyword.$0' } ],\n [ /\\bvertical\\b/, { token: 'keyword.$0' } ],\n [ /\\bright align\\b/, { token: 'keyword.$0' } ],\n [ /\\bleft align\\b/, { token: 'keyword.$0' } ],\n [ /\\bcenter\\b/, { token: 'keyword.$0' } ],\n [ /\\bsingle column\\b/, { token: 'keyword.$0' } ],\n [ /\\btwo column\\b/, { token: 'keyword.$0' } ],\n [ /\\bthree column\\b/, { token: 'keyword.$0' } ],\n [ /\\bfour column\\b/, { token: 'keyword.$0' } ],\n [ /\\bfive column\\b/, { token: 'keyword.$0' } ],\n [ /\\blabel is\\b/, { token: 'keyword.$0' } ],\n [ /\\bDerivedField\\b/, { token: 'keyword.$0' } ],\n [ /\\btitle is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfor\\b/, { token: 'keyword.$0' } ],\n [ /\\bno label\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an ActionForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bform is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Navigation\\b/, { token: 'keyword.$0' } ],\n [ /\\bFilter By\\b/, { token: 'keyword.$0' } ],\n [ /\\blist is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a List\\b/, { token: 'keyword.$0' } ],\n [ /\\bpropagate as a Navigation\\b/, { token: 'keyword.$0' } ],\n [ /\\ball ontology\\b/, { token: 'keyword.$0' } ],\n [ /\\binitiate\\b/, { token: 'keyword.$0' } ],\n [ /\\bprocess\\b/, { token: 'keyword.$0' } ],\n [ /\\bCriteria\\b/, { token: 'keyword.$0' } ],\n [ /\\bcategory filter is\\b/, { token: 'keyword.$0' } ],\n [ /\\bVariables\\b/, { token: 'keyword.$0' } ],\n [ /\\bin\\b/, { token: 'keyword.$0' } ],\n [ /\\bout\\b/, { token: 'keyword.$0' } ],\n [ /\\bactor\\b/, { token: 'keyword.$0' } ],\n [ /\\bfilter by\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn1\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn2\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn3\\b/, { token: 'keyword.$0' } ],\n [ /\\bcompact format\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements CompactFormat\\b/, { token: 'keyword.$0' } ],\n [ /\\bof\\b/, { token: 'keyword.$0' } ],\n [ /\\bpercent\\b/, { token: 'keyword.$0' } ],\n [ /\\bindent\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a WizardForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a CompositeForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Panel\\b/, { token: 'keyword.$0' } ],\n [ /\\brestricted\\b/, { token: 'keyword.$0' } ],\n [ /\\bmode\\b/, { token: 'keyword.$0' } ],\n [ /\\bthis instance\\b/, { token: 'keyword.$0' } ],\n [ /\\bexcept\\b/, { token: 'keyword.$0' } ],\n [ /\\bfill in fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\bfill in blank fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\blatest\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow anonymous access\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements LazyUniqueID\\b/, { token: 'keyword.$0' } ],\n [ /\\bsql set name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdelimiter is\\b/, { token: 'keyword.$0' } ],\n [ /\\bbuild text search field\\b/, { token: 'keyword.$0' } ],\n [ /\\bclassic set name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bupdate stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow in descending order\\b/, { token: 'keyword.$0' } ],\n [ /\\bNavigations\\b/, { token: 'keyword.$0' } ],\n [ /\\blink is\\b/, { token: 'keyword.$0' } ],\n [ /\\bencrypt\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a LawsonClassicTransaction\\b/, { token: 'keyword.$0' } ],\n [ /\\btoken is\\b/, { token: 'keyword.$0' } ],\n [ /\\bTransaction Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bkey\\b/, { token: 'keyword.$0' } ],\n [ /\\bkey required\\b/, { token: 'keyword.$0' } ],\n [ /\\bfunction code is\\b/, { token: 'keyword.$0' } ],\n [ /\\breturns transaction\\b/, { token: 'keyword.$0' } ],\n [ /\\breturns message\\b/, { token: 'keyword.$0' } ],\n [ /\\bresult\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Find Action\\b/, { token: 'keyword.$0' } ],\n [ /\\buse text area\\b/, { token: 'keyword.$0' } ],\n [ /\\blines\\b/, { token: 'keyword.$0' } ],\n [ /\\bsummary form is\\b/, { token: 'keyword.$0' } ],\n [ /\\blevels\\b/, { token: 'keyword.$0' } ],\n [ /\\bentries\\b/, { token: 'keyword.$0' } ],\n [ /\\baction is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Page\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MultiPanePanel\\b/, { token: 'keyword.$0' } ],\n [ /\\bpane\\b/, { token: 'keyword.$0' } ],\n [ /\\bancestors\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay only\\b/, { token: 'keyword.$0' } ],\n [ /\\bstore as BusinessObjectReference\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontext form is\\b/, { token: 'keyword.$0' } ],\n [ /\\ball business classes\\b/, { token: 'keyword.$0' } ],\n [ /\\ball fields\\b/, { token: 'keyword.$0' } ],\n [ /\\ball business tasks\\b/, { token: 'keyword.$0' } ],\n [ /\\ball forms\\b/, { token: 'keyword.$0' } ],\n [ /\\bType\\b/, { token: 'keyword.$0' } ],\n [ /\\bclassic name for\\b/, { token: 'keyword.$0' } ],\n [ /\\bsend email\\b/, { token: 'keyword.$0' } ],\n [ /\\bcc\\b/, { token: 'keyword.$0' } ],\n [ /\\bbcc\\b/, { token: 'keyword.$0' } ],\n [ /\\bsubject\\b/, { token: 'keyword.$0' } ],\n [ /\\battachment\\b/, { token: 'keyword.$0' } ],\n [ /\\bContents\\b/, { token: 'keyword.$0' } ],\n [ /\\bstored in\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Menu\\b/, { token: 'keyword.$0' } ],\n [ /\\bMenu Items\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmenu is\\b/, { token: 'keyword.$0' } ],\n [ /\\benvironment\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontext\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate all instances\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate instance\\b/, { token: 'keyword.$0' } ],\n [ /\\bstore using\\b/, { token: 'keyword.$0' } ],\n [ /\\bregister new actor\\b/, { token: 'keyword.$0' } ],\n [ /\\blogin name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpassword is\\b/, { token: 'keyword.$0' } ],\n [ /\\brole is\\b/, { token: 'keyword.$0' } ],\n [ /\\bperson name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsort order is\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfig\\b/, { token: 'keyword.$0' } ],\n [ /\\bvariable decimal\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ManualTransaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bselect is\\b/, { token: 'keyword.$0' } ],\n [ /\\btemplate is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements MutuallyExclusive\\b/, { token: 'keyword.$0' } ],\n [ /\\bfield determiner is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfield is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a SummaryForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bnumber\\b/, { token: 'keyword.$0' } ],\n [ /\\bexcluding\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Hierarchy\\b/, { token: 'keyword.$0' } ],\n [ /\\bnavigation is\\b/, { token: 'keyword.$0' } ],\n [ /\\bSpecial Actions\\b/, { token: 'keyword.$0' } ],\n [ /\\bexistence not required\\b/, { token: 'keyword.$0' } ],\n [ /\\banyorall\\b/, { token: 'keyword.$0' } ],\n [ /\\bagent\\b/, { token: 'keyword.$0' } ],\n [ /\\buse for action\\b/, { token: 'keyword.$0' } ],\n [ /\\bdetail list is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ParentHierarchy\\b/, { token: 'keyword.$0' } ],\n [ /\\bwhile\\b/, { token: 'keyword.$0' } ],\n [ /\\bnext\\b/, { token: 'keyword.$0' } ],\n [ /\\bprevious\\b/, { token: 'keyword.$0' } ],\n [ /\\bfirst iteration of\\b/, { token: 'keyword.$0' } ],\n [ /\\blast iteration of\\b/, { token: 'keyword.$0' } ],\n [ /\\bend while\\b/, { token: 'keyword.$0' } ],\n [ /\\bend for each\\b/, { token: 'keyword.$0' } ],\n [ /\\bForm Invokes\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements FrameworkTask\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a WebApp\\b/, { token: 'keyword.$0' } ],\n [ /\\bhome page is\\b/, { token: 'keyword.$0' } ],\n [ /\\bnavigation bar is\\b/, { token: 'keyword.$0' } ],\n [ /\\bregistration action is\\b/, { token: 'keyword.$0' } ],\n [ /\\bContext Form\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate action is\\b/, { token: 'keyword.$0' } ],\n [ /\\bopen action is\\b/, { token: 'keyword.$0' } ],\n [ /\\brestrict action\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MatrixForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements CompoundDocument\\b/, { token: 'keyword.$0' } ],\n [ /\\bDocument Components\\b/, { token: 'keyword.$0' } ],\n [ /\\bsix column\\b/, { token: 'keyword.$0' } ],\n [ /\\bseven column\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn4\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn5\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn6\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn7\\b/, { token: 'keyword.$0' } ],\n [ /\\bRollback Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow update\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Encrypted\\b/, { token: 'keyword.$0' } ],\n [ /\\bform invoke is\\b/, { token: 'keyword.$0' } ],\n [ /\\bautomatic login\\b/, { token: 'keyword.$0' } ],\n [ /\\bbold\\b/, { token: 'keyword.$0' } ],\n [ /\\bitalics\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader2\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader3\\b/, { token: 'keyword.$0' } ],\n [ /\\bcheck control\\b/, { token: 'keyword.$0' } ],\n [ /\\bchecked state is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcheck action is\\b/, { token: 'keyword.$0' } ],\n [ /\\buncheck action is\\b/, { token: 'keyword.$0' } ],\n [ /\\brows are\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn is\\b/, { token: 'keyword.$0' } ],\n [ /\\bColumn\\b/, { token: 'keyword.$0' } ],\n [ /\\bcell is\\b/, { token: 'keyword.$0' } ],\n [ /\\bDetail Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bMatrix Forms\\b/, { token: 'keyword.$0' } ],\n [ /\\bCell\\b/, { token: 'keyword.$0' } ],\n [ /\\bgrid\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontact info is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis default\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate\\b/, { token: 'keyword.$0' } ],\n [ /\\btime\\b/, { token: 'keyword.$0' } ],\n [ /\\bregistration key is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsession\\b/, { token: 'keyword.$0' } ],\n [ /\\breference to\\b/, { token: 'keyword.$0' } ],\n [ /\\btext of\\b/, { token: 'keyword.$0' } ],\n [ /\\bweek day\\b/, { token: 'keyword.$0' } ],\n [ /\\byear day\\b/, { token: 'keyword.$0' } ],\n [ /\\bweek\\b/, { token: 'keyword.$0' } ],\n [ /\\bhours\\b/, { token: 'keyword.$0' } ],\n [ /\\bminutes\\b/, { token: 'keyword.$0' } ],\n [ /\\bseconds\\b/, { token: 'keyword.$0' } ],\n [ /\\bfinish form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmouse over text is\\b/, { token: 'keyword.$0' } ],\n [ /\\bblank line\\b/, { token: 'keyword.$0' } ],\n [ /\\ball audit views\\b/, { token: 'keyword.$0' } ],\n [ /\\bcancel action is\\b/, { token: 'keyword.$0' } ],\n [ /\\bgray\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader6 of\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader1\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader4\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader5\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader6\\b/, { token: 'keyword.$0' } ],\n [ /\\blevel key\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements TreeView\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ClassicTable\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow updates\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas attachments\\b/, { token: 'keyword.$0' } ],\n [ /\\bis comment of type\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Wizard\\b/, { token: 'keyword.$0' } ],\n [ /\\bregistration\\b/, { token: 'keyword.$0' } ],\n [ /\\bsignin\\b/, { token: 'keyword.$0' } ],\n [ /\\bsignout\\b/, { token: 'keyword.$0' } ],\n [ /\\bas years\\b/, { token: 'keyword.$0' } ],\n [ /\\bas months\\b/, { token: 'keyword.$0' } ],\n [ /\\bas days\\b/, { token: 'keyword.$0' } ],\n [ /\\bdataarea\\b/, { token: 'keyword.$0' } ],\n [ /\\bcompletion message is\\b/, { token: 'keyword.$0' } ],\n [ /\\byears\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonths\\b/, { token: 'keyword.$0' } ],\n [ /\\bdays\\b/, { token: 'keyword.$0' } ],\n [ /\\bdays in month\\b/, { token: 'keyword.$0' } ],\n [ /\\bdays in year\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisallow navigations\\b/, { token: 'keyword.$0' } ],\n [ /\\bbullet\\b/, { token: 'keyword.$0' } ],\n [ /\\bstyle is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpending\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumns are\\b/, { token: 'keyword.$0' } ],\n [ /\\bcustom home page is\\b/, { token: 'keyword.$0' } ],\n [ /\\buse custom login\\b/, { token: 'keyword.$0' } ],\n [ /\\bparent\\b/, { token: 'keyword.$0' } ],\n [ /\\bsiblings\\b/, { token: 'keyword.$0' } ],\n [ /\\bdescendants\\b/, { token: 'keyword.$0' } ],\n [ /\\bascendant\\b/, { token: 'keyword.$0' } ],\n [ /\\bchildren\\b/, { token: 'keyword.$0' } ],\n [ /\\bupdate actor\\b/, { token: 'keyword.$0' } ],\n [ /\\bCreate Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bDelete Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements FieldRange\\b/, { token: 'keyword.$0' } ],\n [ /\\bfrom is\\b/, { token: 'keyword.$0' } ],\n [ /\\bto is\\b/, { token: 'keyword.$0' } ],\n [ /\\bexclusive\\b/, { token: 'keyword.$0' } ],\n [ /\\boverlaps\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay\\b/, { token: 'keyword.$0' } ],\n [ /\\bforce default\\b/, { token: 'keyword.$0' } ],\n [ /\\bdynamic default\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable resume on error\\b/, { token: 'keyword.$0' } ],\n [ /\\brpg name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bLabelField\\b/, { token: 'keyword.$0' } ],\n [ /\\bauto refresh using\\b/, { token: 'keyword.$0' } ],\n [ /\\braise red alert\\b/, { token: 'keyword.$0' } ],\n [ /\\braise yellow alert\\b/, { token: 'keyword.$0' } ],\n [ /\\braise green alert\\b/, { token: 'keyword.$0' } ],\n [ /\\band siblings\\b/, { token: 'keyword.$0' } ],\n [ /\\band descendants\\b/, { token: 'keyword.$0' } ],\n [ /\\band children\\b/, { token: 'keyword.$0' } ],\n [ /\\band ancestors\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay date\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay time\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay hours and minutes\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ChildHierarchy\\b/, { token: 'keyword.$0' } ],\n [ /\\bchildren are\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable create within\\b/, { token: 'keyword.$0' } ],\n [ /\\blink is row\\b/, { token: 'keyword.$0' } ],\n [ /\\bincrement\\b/, { token: 'keyword.$0' } ],\n [ /\\bdecrement\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Versioning\\b/, { token: 'keyword.$0' } ],\n [ /\\bversion field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bversion is\\b/, { token: 'keyword.$0' } ],\n [ /\\breturn\\b/, { token: 'keyword.$0' } ],\n [ /\\btext search field is\\b/, { token: 'keyword.$0' } ],\n [ /\\badvanced search is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable Auditing\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable EffectiveDated\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable UniqueID\\b/, { token: 'keyword.$0' } ],\n [ /\\bparent field name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bImplements Framework Pattern\\b/, { token: 'keyword.$0' } ],\n [ /\\bexact version is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprecision is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MovexInterface\\b/, { token: 'keyword.$0' } ],\n [ /\\bprogram is\\b/, { token: 'keyword.$0' } ],\n [ /\\bInput Record\\b/, { token: 'keyword.$0' } ],\n [ /\\bOutput Record\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a List Action\\b/, { token: 'keyword.$0' } ],\n [ /\\blinkback\\b/, { token: 'keyword.$0' } ],\n [ /\\bwebapp is\\b/, { token: 'keyword.$0' } ],\n [ /\\btext is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Create RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an Update RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Delete RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an Instance RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Set RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\bcannot be empty\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfirmation required on empty\\b/, { token: 'keyword.$0' } ],\n [ /\\brequest action process is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ForeignTable\\b/, { token: 'keyword.$0' } ],\n [ /\\bcancel\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a WorkViewPanel\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable RetroactiveEffectiveDating\\b/, { token: 'keyword.$0' } ],\n [ /\\bAdditional Folder Items\\b/, { token: 'keyword.$0' } ],\n [ /\\breason code required\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a WebserviceInterface\\b/, { token: 'keyword.$0' } ],\n [ /\\bwsdlURL is\\b/, { token: 'keyword.$0' } ],\n [ /\\bendpoint is\\b/, { token: 'keyword.$0' } ],\n [ /\\bservice is\\b/, { token: 'keyword.$0' } ],\n [ /\\bnamespace is\\b/, { token: 'keyword.$0' } ],\n [ /\\belement name is\\b/, { token: 'keyword.$0' } ],\n [ /\\battribute name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bservice style is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmethod is\\b/, { token: 'keyword.$0' } ],\n [ /\\bURLs\\b/, { token: 'keyword.$0' } ],\n [ /\\burl is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsearch form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmulti-select field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay field is\\b/, { token: 'keyword.$0' } ],\n [ /\\buse\\b/, { token: 'keyword.$0' } ],\n [ /\\bgroup\\b/, { token: 'keyword.$0' } ],\n [ /\\bin subject\\b/, { token: 'keyword.$0' } ],\n [ /\\bsql name for\\b/, { token: 'keyword.$0' } ],\n [ /\\bname for\\b/, { token: 'keyword.$0' } ],\n [ /\\btype for\\b/, { token: 'keyword.$0' } ],\n [ /\\bapprover\\b/, { token: 'keyword.$0' } ],\n [ /\\bfinal approver\\b/, { token: 'keyword.$0' } ],\n [ /\\binitiator\\b/, { token: 'keyword.$0' } ],\n [ /\\binitial value is\\b/, { token: 'keyword.$0' } ],\n [ /\\bchanged between\\b/, { token: 'keyword.$0' } ],\n [ /\\bnever asynchronous\\b/, { token: 'keyword.$0' } ],\n [ /\\balways asynchronous\\b/, { token: 'keyword.$0' } ],\n [ /\\bText Variables\\b/, { token: 'keyword.$0' } ],\n [ /\\bfirst date within\\b/, { token: 'keyword.$0' } ],\n [ /\\blast date within\\b/, { token: 'keyword.$0' } ],\n [ /\\btext\\b/, { token: 'keyword.$0' } ],\n [ /\\brun synchronous\\b/, { token: 'keyword.$0' } ],\n [ /\\brun asynchronous\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ArrayHierarchy\\b/, { token: 'keyword.$0' } ],\n [ /\\bdefault label is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsubject is\\b/, { token: 'keyword.$0' } ],\n [ /\\baction comment required\\b/, { token: 'keyword.$0' } ],\n [ /\\bDetail Sections\\b/, { token: 'keyword.$0' } ],\n [ /\\bin foreground\\b/, { token: 'keyword.$0' } ],\n [ /\\bin background\\b/, { token: 'keyword.$0' } ],\n [ /\\brun in foreground\\b/, { token: 'keyword.$0' } ],\n [ /\\brun in background\\b/, { token: 'keyword.$0' } ],\n [ /\\bposition to\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements MI DataSource\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements LCT DataSource\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements WSI DataSource\\b/, { token: 'keyword.$0' } ],\n [ /\\bDataSource Mapping\\b/, { token: 'keyword.$0' } ],\n [ /\\bset is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfind is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate is\\b/, { token: 'keyword.$0' } ],\n [ /\\bupdate is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdelete is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdatasource\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Purge Action\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Purge RequestAction\\b/, { token: 'keyword.$0' } ],\n [ /\\banniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bBelow\\b/, { token: 'keyword.$0' } ],\n [ /\\bOn Side\\b/, { token: 'keyword.$0' } ],\n [ /\\blast changed date\\b/, { token: 'keyword.$0' } ],\n [ /\\bAll Fields for\\b/, { token: 'keyword.$0' } ],\n [ /\\bare accessible\\b/, { token: 'keyword.$0' } ],\n [ /\\bare not accessible\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements Resequence on\\b/, { token: 'keyword.$0' } ],\n [ /\\bnew sequence field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements M3ClassicTable\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements S3ClassicTable\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate date\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate first changed\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate last changed\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate next changed\\b/, { token: 'keyword.$0' } ],\n [ /\\bdays was\\b/, { token: 'keyword.$0' } ],\n [ /\\bbetween\\b/, { token: 'keyword.$0' } ],\n [ /\\bweighted average\\b/, { token: 'keyword.$0' } ],\n [ /\\bdocument template for\\b/, { token: 'keyword.$0' } ],\n [ /\\bdocument\\b/, { token: 'keyword.$0' } ],\n [ /\\btranslatable\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable auditing\\b/, { token: 'keyword.$0' } ],\n [ /\\bWebApp\\b/, { token: 'keyword.$0' } ],\n [ /\\bDrill List\\b/, { token: 'keyword.$0' } ],\n [ /\\bpropagate as a drill\\b/, { token: 'keyword.$0' } ],\n [ /\\bdrill restricted\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements SurrogateAuditLog for\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit log records\\b/, { token: 'keyword.$0' } ],\n [ /\\baction\\b/, { token: 'keyword.$0' } ],\n [ /\\bexact\\b/, { token: 'keyword.$0' } ],\n [ /\\bsession key\\b/, { token: 'keyword.$0' } ],\n [ /\\bmime type is\\b/, { token: 'keyword.$0' } ],\n [ /\\brepeating\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow as pdf\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn visible when\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisallow show as pdf\\b/, { token: 'keyword.$0' } ],\n [ /\\bCharts\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Bar Chart\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Pie Chart\\b/, { token: 'keyword.$0' } ],\n [ /\\belement value is\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign message group id to\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a BarChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a PieChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a GapChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as link\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements OrgChartView\\b/, { token: 'keyword.$0' } ],\n [ /\\bline1 text is\\b/, { token: 'keyword.$0' } ],\n [ /\\bline2 text is\\b/, { token: 'keyword.$0' } ],\n [ /\\braise red alert when\\b/, { token: 'keyword.$0' } ],\n [ /\\braise yellow alert when\\b/, { token: 'keyword.$0' } ],\n [ /\\braise green alert when\\b/, { token: 'keyword.$0' } ],\n [ /\\blegend state is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay zero\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a M3Interface\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as meter chart\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as thermometer chart\\b/, { token: 'keyword.$0' } ],\n [ /\\bmeter range is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a SearchForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bsearch field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as duration\\b/, { token: 'keyword.$0' } ],\n [ /\\bauthentication is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a LineChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bred alert range is from\\b/, { token: 'keyword.$0' } ],\n [ /\\bgreen alert range is from\\b/, { token: 'keyword.$0' } ],\n [ /\\byellow alert range is from\\b/, { token: 'keyword.$0' } ],\n [ /\\buse as filter\\b/, { token: 'keyword.$0' } ],\n [ /\\balways display\\b/, { token: 'keyword.$0' } ],\n [ /\\btotal\\b/, { token: 'keyword.$0' } ],\n [ /\\brunning total\\b/, { token: 'keyword.$0' } ],\n [ /\\bpercent of total\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow totals only\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress sub-totals\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements EnterpriseSearch using\\b/, { token: 'keyword.$0' } ],\n [ /\\bAliases\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow in relevance order\\b/, { token: 'keyword.$0' } ],\n [ /\\bapplication messages\\b/, { token: 'keyword.$0' } ],\n [ /\\bdatasource paging\\b/, { token: 'keyword.$0' } ],\n [ /\\beffective date required\\b/, { token: 'keyword.$0' } ],\n [ /\\bentry stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bleft of field\\b/, { token: 'keyword.$0' } ],\n [ /\\bright of field\\b/, { token: 'keyword.$0' } ],\n [ /\\bAttachments\\b/, { token: 'keyword.$0' } ],\n [ /\\bwas\\b/, { token: 'keyword.$0' } ],\n [ /\\balways\\b/, { token: 'keyword.$0' } ],\n [ /\\bversion\\b/, { token: 'keyword.$0' } ],\n [ /\\bapplied stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\baction type\\b/, { token: 'keyword.$0' } ],\n [ /\\bpast\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent\\b/, { token: 'keyword.$0' } ],\n [ /\\bfuture\\b/, { token: 'keyword.$0' } ],\n [ /\\bMenu\\b/, { token: 'keyword.$0' } ],\n [ /\\bMenuItem\\b/, { token: 'keyword.$0' } ],\n [ /\\bresume on error\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisallow data export\\b/, { token: 'keyword.$0' } ],\n [ /\\bMenus\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an AuditList\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit period\\b/, { token: 'keyword.$0' } ],\n [ /\\bAll Menus for\\b/, { token: 'keyword.$0' } ],\n [ /\\bAll MenuItems for\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit entry id\\b/, { token: 'keyword.$0' } ],\n [ /\\bby\\b/, { token: 'keyword.$0' } ],\n [ /\\bsearch\\b/, { token: 'keyword.$0' } ],\n [ /\\bmanual transaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bparameter\\b/, { token: 'keyword.$0' } ],\n [ /\\bsub panels are\\b/, { token: 'keyword.$0' } ],\n [ /\\bQuick Entry Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow fixed scale\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as radio buttons\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ScatterChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bpoint size is\\b/, { token: 'keyword.$0' } ],\n [ /\\bx-axis value is\\b/, { token: 'keyword.$0' } ],\n [ /\\by-axis value is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements FutureCorrection\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements HistoryCorrection\\b/, { token: 'keyword.$0' } ],\n [ /\\bEmpty Set Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow editor for\\b/, { token: 'keyword.$0' } ],\n [ /\\bexport\\b/, { token: 'keyword.$0' } ],\n [ /\\brange\\b/, { token: 'keyword.$0' } ],\n [ /\\bhigh value\\b/, { token: 'keyword.$0' } ],\n [ /\\bSummary Total Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\binstance count\\b/, { token: 'keyword.$0' } ],\n [ /\\ball navigations\\b/, { token: 'keyword.$0' } ],\n [ /\\bdata export\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow grid lines\\b/, { token: 'keyword.$0' } ],\n [ /\\beffective until\\b/, { token: 'keyword.$0' } ],\n [ /\\bcorrection\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow panel navigation\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\btimestamp\\b/, { token: 'keyword.$0' } ],\n [ /\\brequest action linkback webapp is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable checkpoint\\b/, { token: 'keyword.$0' } ],\n [ /\\benvelope is\\b/, { token: 'keyword.$0' } ],\n [ /\\bexternal\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as horizontal radio buttons\\b/, { token: 'keyword.$0' } ],\n [ /\\brelevance score\\b/, { token: 'keyword.$0' } ],\n [ /\\bcancel resume\\b/, { token: 'keyword.$0' } ],\n [ /\\bDimensions\\b/, { token: 'keyword.$0' } ],\n [ /\\bMeasures\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements CubeView\\b/, { token: 'keyword.$0' } ],\n [ /\\bRow Dimensions\\b/, { token: 'keyword.$0' } ],\n [ /\\bvalid for dimension\\b/, { token: 'keyword.$0' } ],\n [ /\\bvisible for dimension\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current date\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current year\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current period\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current timestamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current anniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod dimension\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonthly\\b/, { token: 'keyword.$0' } ],\n [ /\\bweekly\\b/, { token: 'keyword.$0' } ],\n [ /\\benable EffectiveDated\\b/, { token: 'keyword.$0' } ],\n [ /\\berror message\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable select in webui\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow steps in webui\\b/, { token: 'keyword.$0' } ],\n [ /\\bFirst Page Header\\b/, { token: 'keyword.$0' } ],\n [ /\\bPage Header\\b/, { token: 'keyword.$0' } ],\n [ /\\bPage Footer\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage number\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay when blank\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow border\\b/, { token: 'keyword.$0' } ],\n [ /\\bshade\\b/, { token: 'keyword.$0' } ],\n [ /\\bunderline\\b/, { token: 'keyword.$0' } ],\n [ /\\bvariable name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bauthenticated actor\\b/, { token: 'keyword.$0' } ],\n [ /\\bvertical split is\\b/, { token: 'keyword.$0' } ],\n [ /\\blabel\\b/, { token: 'keyword.$0' } ],\n [ /\\blocale of\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a QuadrantChart\\b/, { token: 'keyword.$0' } ],\n [ /\\brow title is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn title is\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow unplaced elements\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements DragAndDrop\\b/, { token: 'keyword.$0' } ],\n [ /\\bquadrants are\\b/, { token: 'keyword.$0' } ],\n [ /\\bquadrant value is\\b/, { token: 'keyword.$0' } ],\n [ /\\brow position is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn position is\\b/, { token: 'keyword.$0' } ],\n [ /\\bheader is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as text\\b/, { token: 'keyword.$0' } ],\n [ /\\bdrop target\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a CardView\\b/, { token: 'keyword.$0' } ],\n [ /\\bleft column is\\b/, { token: 'keyword.$0' } ],\n [ /\\bright column is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmissing image is\\b/, { token: 'keyword.$0' } ],\n [ /\\bnode icon is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmain column\\b/, { token: 'keyword.$0' } ],\n [ /\\bcard view is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements FixedSizeList\\b/, { token: 'keyword.$0' } ],\n [ /\\bleft column\\b/, { token: 'keyword.$0' } ],\n [ /\\bright column\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ColumnarPanel\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow steps\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow panel control on left\\b/, { token: 'keyword.$0' } ],\n [ /\\bmax levels is\\b/, { token: 'keyword.$0' } ],\n [ /\\bwith\\b/, { token: 'keyword.$0' } ],\n [ /\\bweek year\\b/, { token: 'keyword.$0' } ],\n [ /\\bphoto image\\b/, { token: 'keyword.$0' } ],\n [ /\\bicon is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements HorizontalScrolling\\b/, { token: 'keyword.$0' } ],\n [ /\\bfreeze first\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumns\\b/, { token: 'keyword.$0' } ],\n [ /\\bpanel text is\\b/, { token: 'keyword.$0' } ],\n [ /\\brow separator is\\b/, { token: 'keyword.$0' } ],\n [ /\\bhorizontal rule\\b/, { token: 'keyword.$0' } ],\n [ /\\bmatches\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas audit change\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolor of\\b/, { token: 'keyword.$0' } ],\n [ /\\bred\\b/, { token: 'keyword.$0' } ],\n [ /\\bgreen\\b/, { token: 'keyword.$0' } ],\n [ /\\bblue\\b/, { token: 'keyword.$0' } ],\n [ /\\byellow\\b/, { token: 'keyword.$0' } ],\n [ /\\bjade\\b/, { token: 'keyword.$0' } ],\n [ /\\bmagenta\\b/, { token: 'keyword.$0' } ],\n [ /\\bmaroon\\b/, { token: 'keyword.$0' } ],\n [ /\\borange\\b/, { token: 'keyword.$0' } ],\n [ /\\bbrown\\b/, { token: 'keyword.$0' } ],\n [ /\\bhidden\\b/, { token: 'keyword.$0' } ],\n [ /\\ball global UI configuration\\b/, { token: 'keyword.$0' } ],\n [ /\\bdescription is\\b/, { token: 'keyword.$0' } ],\n [ /\\bbutton row\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an ImageMap\\b/, { token: 'keyword.$0' } ],\n [ /\\bmain image is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdescription area is\\b/, { token: 'keyword.$0' } ],\n [ /\\bOverlays\\b/, { token: 'keyword.$0' } ],\n [ /\\bhot spot at\\b/, { token: 'keyword.$0' } ],\n [ /\\bid is\\b/, { token: 'keyword.$0' } ],\n [ /\\bvalid when id\\b/, { token: 'keyword.$0' } ],\n [ /\\bactive\\b/, { token: 'keyword.$0' } ],\n [ /\\bactive on hover\\b/, { token: 'keyword.$0' } ],\n [ /\\buntil new hotspot\\b/, { token: 'keyword.$0' } ],\n [ /\\bwith no deactivate\\b/, { token: 'keyword.$0' } ],\n [ /\\bHover Overlays\\b/, { token: 'keyword.$0' } ],\n [ /\\bPress Overlays\\b/, { token: 'keyword.$0' } ],\n [ /\\bdefault text properties\\b/, { token: 'keyword.$0' } ],\n [ /\\bfont size is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfont color is\\b/, { token: 'keyword.$0' } ],\n [ /\\bvertically align\\b/, { token: 'keyword.$0' } ],\n [ /\\bhorizontally align\\b/, { token: 'keyword.$0' } ],\n [ /\\bleft\\b/, { token: 'keyword.$0' } ],\n [ /\\bright\\b/, { token: 'keyword.$0' } ],\n [ /\\btop\\b/, { token: 'keyword.$0' } ],\n [ /\\bbottom\\b/, { token: 'keyword.$0' } ],\n [ /\\bin rectangle\\b/, { token: 'keyword.$0' } ],\n [ /\\bblack\\b/, { token: 'keyword.$0' } ],\n [ /\\bat\\b/, { token: 'keyword.$0' } ],\n [ /\\bactive area is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements HotSpot\\b/, { token: 'keyword.$0' } ],\n [ /\\bhover image is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpress image is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as progress bar\\b/, { token: 'keyword.$0' } ],\n [ /\\bimage map is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as slider\\b/, { token: 'keyword.$0' } ],\n [ /\\brange is from\\b/, { token: 'keyword.$0' } ],\n [ /\\bdepends on\\b/, { token: 'keyword.$0' } ],\n [ /\\bderived value is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdata area is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ExtendsExternalData\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements DashBoardView\\b/, { token: 'keyword.$0' } ],\n [ /\\boverview navigation is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdata translation enabled\\b/, { token: 'keyword.$0' } ],\n [ /\\balign as label\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow as springboard\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow up to\\b/, { token: 'keyword.$0' } ],\n [ /\\bcharacters\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements AnalyticCube\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable continuous update\\b/, { token: 'keyword.$0' } ],\n [ /\\baction tag is\\b/, { token: 'keyword.$0' } ],\n [ /\\badd action tag\\b/, { token: 'keyword.$0' } ],\n [ /\\baction tag\\b/, { token: 'keyword.$0' } ],\n [ /\\bprior\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiods\\b/, { token: 'keyword.$0' } ],\n [ /\\bquarter\\b/, { token: 'keyword.$0' } ],\n [ /\\bquarters\\b/, { token: 'keyword.$0' } ],\n [ /\\bbeginning\\b/, { token: 'keyword.$0' } ],\n [ /\\bending\\b/, { token: 'keyword.$0' } ],\n [ /\\bytd\\b/, { token: 'keyword.$0' } ],\n [ /\\bbalance\\b/, { token: 'keyword.$0' } ],\n [ /\\bthru\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress blank rows\\b/, { token: 'keyword.$0' } ],\n [ /\\bon completion navigate to\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow non-modal interaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bList\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bQ1\\b/, { token: 'keyword.$0' } ],\n [ /\\bQ2\\b/, { token: 'keyword.$0' } ],\n [ /\\bQ3\\b/, { token: 'keyword.$0' } ],\n [ /\\bQ4\\b/, { token: 'keyword.$0' } ],\n [ /\\blocale\\b/, { token: 'keyword.$0' } ],\n [ /\\bgroup label is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MultiListPanel\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable AsOfDateProcessing\\b/, { token: 'keyword.$0' } ],\n [ /\\bopen\\b/, { token: 'keyword.$0' } ],\n [ /\\bsave\\b/, { token: 'keyword.$0' } ],\n [ /\\bsave and new\\b/, { token: 'keyword.$0' } ],\n [ /\\bsave and close\\b/, { token: 'keyword.$0' } ],\n [ /\\bexport to pdf\\b/, { token: 'keyword.$0' } ],\n [ /\\bexport to csv\\b/, { token: 'keyword.$0' } ],\n [ /\\brefresh\\b/, { token: 'keyword.$0' } ],\n [ /\\baction icon is\\b/, { token: 'keyword.$0' } ],\n [ /\\brelease\\b/, { token: 'keyword.$0' } ],\n [ /\\btransfer\\b/, { token: 'keyword.$0' } ],\n [ /\\bsubmit\\b/, { token: 'keyword.$0' } ],\n [ /\\bapply\\b/, { token: 'keyword.$0' } ],\n [ /\\bapprove\\b/, { token: 'keyword.$0' } ],\n [ /\\baward\\b/, { token: 'keyword.$0' } ],\n [ /\\bcalculate\\b/, { token: 'keyword.$0' } ],\n [ /\\bchart\\b/, { token: 'keyword.$0' } ],\n [ /\\bclaim\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate\\b/, { token: 'keyword.$0' } ],\n [ /\\bcopy\\b/, { token: 'keyword.$0' } ],\n [ /\\bdelete\\b/, { token: 'keyword.$0' } ],\n [ /\\bedit\\b/, { token: 'keyword.$0' } ],\n [ /\\bfinalize\\b/, { token: 'keyword.$0' } ],\n [ /\\bpreview\\b/, { token: 'keyword.$0' } ],\n [ /\\breject\\b/, { token: 'keyword.$0' } ],\n [ /\\brequest\\b/, { token: 'keyword.$0' } ],\n [ /\\bvalidate\\b/, { token: 'keyword.$0' } ],\n [ /\\bundo\\b/, { token: 'keyword.$0' } ],\n [ /\\bhide when invalid\\b/, { token: 'keyword.$0' } ],\n [ /\\bhelper list\\b/, { token: 'keyword.$0' } ],\n [ /\\bcharts\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontains environment data\\b/, { token: 'keyword.$0' } ],\n [ /\\bprimitive size is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprimitive type is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprimitive decimal size is\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfigurable home page is\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfigurable css is\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfigurable login is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent year is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent period is\\b/, { token: 'keyword.$0' } ],\n [ /\\bPeriod Views\\b/, { token: 'keyword.$0' } ],\n [ /\\bPeriods\\b/, { token: 'keyword.$0' } ],\n [ /\\binvalid\\b/, { token: 'keyword.$0' } ],\n [ /\\bParent Attach Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bchild\\b/, { token: 'keyword.$0' } ],\n [ /\\bparent state is\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit update\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit create\\b/, { token: 'keyword.$0' } ],\n [ /\\bchange effective date\\b/, { token: 'keyword.$0' } ],\n [ /\\bAudit Entry Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bCreate Exit Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bimage is\\b/, { token: 'keyword.$0' } ],\n [ /\\brepresentative text\\b/, { token: 'keyword.$0' } ],\n [ /\\brepresentative image\\b/, { token: 'keyword.$0' } ],\n [ /\\braise blue alert\\b/, { token: 'keyword.$0' } ],\n [ /\\braise blue alert when\\b/, { token: 'keyword.$0' } ],\n [ /\\bdistributed\\b/, { token: 'keyword.$0' } ],\n [ /\\bminimize contention\\b/, { token: 'keyword.$0' } ],\n [ /\\bis framework spec\\b/, { token: 'keyword.$0' } ],\n [ /\\buntranslatable:\\\"\\b/, { token: 'keyword.$0' } ],\n [ /\\btransfer\\b/, { token: 'keyword.$0' } ],\n [ /\\bfill in user fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\bfill in blank user fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bas parameters\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit delete\\b/, { token: 'keyword.$0' } ],\n [ /\\bcentered\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas children when\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn header is\\b/, { token: 'keyword.$0' } ],\n [ /\\bportrait image\\b/, { token: 'keyword.$0' } ],\n [ /\\bfull image\\b/, { token: 'keyword.$0' } ],\n [ /\\bvalidity constraint\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an ActionOverride\\b/, { token: 'keyword.$0' } ],\n [ /\\ball security configuration\\b/, { token: 'keyword.$0' } ],\n [ /\\ball personalization\\b/, { token: 'keyword.$0' } ],\n [ /\\ball scheduled actions\\b/, { token: 'keyword.$0' } ],\n [ /\\bdata menu\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable saved search\\b/, { token: 'keyword.$0' } ],\n [ /\\bsend notification\\b/, { token: 'keyword.$0' } ],\n [ /\\bdetail is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpriority is\\b/, { token: 'keyword.$0' } ],\n [ /\\bvery low\\b/, { token: 'keyword.$0' } ],\n [ /\\blow\\b/, { token: 'keyword.$0' } ],\n [ /\\bmedium\\b/, { token: 'keyword.$0' } ],\n [ /\\bhigh\\b/, { token: 'keyword.$0' } ],\n [ /\\bvery high\\b/, { token: 'keyword.$0' } ],\n [ /\\bdata translation implemented\\b/, { token: 'keyword.$0' } ],\n [ /\\bis fixed\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\binitiating action\\b/, { token: 'keyword.$0' } ],\n [ /\\binvoking action\\b/, { token: 'keyword.$0' } ],\n [ /\\bbypass field rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a DashBoardView\\b/, { token: 'keyword.$0' } ],\n [ /\\burl\\b/, { token: 'keyword.$0' } ],\n [ /\\bignore invalid addresses\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow form only\\b/, { token: 'keyword.$0' } ],\n [ /\\bdialogue\\b/, { token: 'keyword.$0' } ],\n [ /\\buse array insert\\b/, { token: 'keyword.$0' } ],\n [ /\\btranslation\\b/, { token: 'keyword.$0' } ],\n [ /\\btranslations\\b/, { token: 'keyword.$0' } ],\n [ /\\bTranslation Field Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bsave on next\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements S3ClassicAttachments\\b/, { token: 'keyword.$0' } ],\n [ /\\bexact translation\\b/, { token: 'keyword.$0' } ],\n [ /\\bcontext of\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage break\\b/, { token: 'keyword.$0' } ],\n [ /\\bindependent\\b/, { token: 'keyword.$0' } ],\n [ /\\btop align\\b/, { token: 'keyword.$0' } ],\n [ /\\bbottom align\\b/, { token: 'keyword.$0' } ],\n [ /\\bmiddle\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable AuditIndex\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements StaticJava\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a DashBoardPanel\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a Pane\\b/, { token: 'keyword.$0' } ],\n [ /\\blist\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow preview of\\b/, { token: 'keyword.$0' } ],\n [ /\\buse for\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow on\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a StaticJavaWS\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a StaticJavaPD\\b/, { token: 'keyword.$0' } ],\n [ /\\bsub form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdaily\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonth name\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonth short name\\b/, { token: 'keyword.$0' } ],\n [ /\\bday name\\b/, { token: 'keyword.$0' } ],\n [ /\\bday short name\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a CalendarChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow date of\\b/, { token: 'keyword.$0' } ],\n [ /\\bInitiateRequest Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bUpdateRequest Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bCancelRequest Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bpropagated from\\b/, { token: 'keyword.$0' } ],\n [ /\\bchart list\\b/, { token: 'keyword.$0' } ],\n [ /\\bchart elements\\b/, { token: 'keyword.$0' } ],\n [ /\\bchart periods\\b/, { token: 'keyword.$0' } ],\n [ /\\bmember of\\b/, { token: 'keyword.$0' } ],\n [ /\\bpeer group\\b/, { token: 'keyword.$0' } ],\n [ /\\bAppointments\\b/, { token: 'keyword.$0' } ],\n [ /\\bappointment\\b/, { token: 'keyword.$0' } ],\n [ /\\breminder\\b/, { token: 'keyword.$0' } ],\n [ /\\bbefore\\b/, { token: 'keyword.$0' } ],\n [ /\\blocation is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsend as\\b/, { token: 'keyword.$0' } ],\n [ /\\bmeeting\\b/, { token: 'keyword.$0' } ],\n [ /\\bmessage\\b/, { token: 'keyword.$0' } ],\n [ /\\beffective stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bfvar\\b/, { token: 'keyword.$0' } ],\n [ /\\baction request id\\b/, { token: 'keyword.$0' } ],\n [ /\\bweeks\\b/, { token: 'keyword.$0' } ],\n [ /\\bApply Pending Effective Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements InlineCreate\\b/, { token: 'keyword.$0' } ],\n [ /\\blimited list personalization\\b/, { token: 'keyword.$0' } ],\n [ /\\blimited form personalization\\b/, { token: 'keyword.$0' } ],\n [ /\\bfuture data indicator\\b/, { token: 'keyword.$0' } ],\n [ /\\bhidden entry\\b/, { token: 'keyword.$0' } ],\n [ /\\breason code not required\\b/, { token: 'keyword.$0' } ],\n [ /\\baction comment not required\\b/, { token: 'keyword.$0' } ],\n [ /\\beffective date not required\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress current period\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas future changes\\b/, { token: 'keyword.$0' } ],\n [ /\\bAction Exit Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements PeriodFilter\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdate range is\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod is\\b/, { token: 'keyword.$0' } ],\n [ /\\byear is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent date is\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit transaction id\\b/, { token: 'keyword.$0' } ],\n [ /\\bForm Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bActionForm Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bList Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bCardView Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplicit\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfigurable\\b/, { token: 'keyword.$0' } ],\n [ /\\bjar entry is\\b/, { token: 'keyword.$0' } ],\n [ /\\bline number is\\b/, { token: 'keyword.$0' } ],\n [ /\\bline offset is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a PageContextForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MenuForm\\b/, { token: 'keyword.$0' } ],\n [ /\\bauto refresh\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas charts\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas instance selection\\b/, { token: 'keyword.$0' } ],\n [ /\\baction form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprint form\\b/, { token: 'keyword.$0' } ],\n [ /\\bOntology Relations Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bOntology Sets Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bAutoSequenceRule Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bImplicit Relation Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements LightweightAuditing\\b/, { token: 'keyword.$0' } ],\n [ /\\bpre-calculate totals\\b/, { token: 'keyword.$0' } ],\n [ /\\bdynamically calculate totals\\b/, { token: 'keyword.$0' } ],\n [ /\\bnext record\\b/, { token: 'keyword.$0' } ],\n [ /\\bprevious record\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfiguration:\\\"\\b/, { token: 'keyword.$0' } ],\n [ /\\bis last day in month\\b/, { token: 'keyword.$0' } ],\n [ /\\btranslation for\\b/, { token: 'keyword.$0' } ],\n [ /\\bfield\\b/, { token: 'keyword.$0' } ],\n [ /\\bform\\b/, { token: 'keyword.$0' } ],\n [ /\\bderive value from\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow unlimited concurrency\\b/, { token: 'keyword.$0' } ],\n [ /\\bReports\\b/, { token: 'keyword.$0' } ],\n [ /\\bValid Business Classes\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable subset select on dependent relation\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ActionResults\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable ActionResults\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude persistent user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude auditable user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude derived user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bafter\\b/, { token: 'keyword.$0' } ],\n [ /\\ball dates\\b/, { token: 'keyword.$0' } ],\n [ /\\bkeypad is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprompt for\\b/, { token: 'keyword.$0' } ],\n [ /\\bAttributes\\b/, { token: 'keyword.$0' } ],\n [ /\\ball crypto actions\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay negative amounts using parens\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay amounts in\\b/, { token: 'keyword.$0' } ],\n [ /\\bthousands\\b/, { token: 'keyword.$0' } ],\n [ /\\bmillions\\b/, { token: 'keyword.$0' } ],\n [ /\\bactor agent required\\b/, { token: 'keyword.$0' } ],\n [ /\\bURL Parameters\\b/, { token: 'keyword.$0' } ],\n [ /\\berror message key\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow in title\\b/, { token: 'keyword.$0' } ],\n [ /\\bformat fields based on primary form\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem date\\b/, { token: 'keyword.$0' } ],\n [ /\\bchild is\\b/, { token: 'keyword.$0' } ],\n [ /\\baggregation percent is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcompute\\b/, { token: 'keyword.$0' } ],\n [ /\\bcompute value\\b/, { token: 'keyword.$0' } ],\n [ /\\ball periods in\\b/, { token: 'keyword.$0' } ],\n [ /\\bAutoSequence Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bdimension name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bas pdf\\b/, { token: 'keyword.$0' } ],\n [ /\\brow search field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bin progress when\\b/, { token: 'keyword.$0' } ],\n [ /\\bcompleted when\\b/, { token: 'keyword.$0' } ],\n [ /\\beight column\\b/, { token: 'keyword.$0' } ],\n [ /\\bnine column\\b/, { token: 'keyword.$0' } ],\n [ /\\bten column\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn8\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn9\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn10\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod label\\b/, { token: 'keyword.$0' } ],\n [ /\\bdistinct\\b/, { token: 'keyword.$0' } ],\n [ /\\braise\\b/, { token: 'keyword.$0' } ],\n [ /\\balert\\b/, { token: 'keyword.$0' } ],\n [ /\\bchild set is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements InlineUserFields\\b/, { token: 'keyword.$0' } ],\n [ /\\bsize is\\b/, { token: 'keyword.$0' } ],\n [ /\\bvisited action is\\b/, { token: 'keyword.$0' } ],\n [ /\\bMapping Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bunique ID set\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements AdminCommand\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable filtering within db\\b/, { token: 'keyword.$0' } ],\n [ /\\bdynamic configuration\\b/, { token: 'keyword.$0' } ],\n [ /\\bbase url\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ConfigurationMetadata\\b/, { token: 'keyword.$0' } ],\n [ /\\bchanged field names\\b/, { token: 'keyword.$0' } ],\n [ /\\brun after\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign async action request id to\\b/, { token: 'keyword.$0' } ],\n [ /\\bis like\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent async action request id\\b/, { token: 'keyword.$0' } ],\n [ /\\btype is like\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements BODId\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ExportBOD\\b/, { token: 'keyword.$0' } ],\n [ /\\bExport Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bExclude Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bbod id\\b/, { token: 'keyword.$0' } ],\n [ /\\bbod key\\b/, { token: 'keyword.$0' } ],\n [ /\\bmeasure name is\\b/, { token: 'keyword.$0' } ],\n [ /\\btop node when\\b/, { token: 'keyword.$0' } ],\n [ /\\bdefault total node is\\b/, { token: 'keyword.$0' } ],\n [ /\\btrigger\\b/, { token: 'keyword.$0' } ],\n [ /\\bPA service\\b/, { token: 'keyword.$0' } ],\n [ /\\bbeginning balance is period zero\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress when in dimension\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude persistent fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude auditable fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude user fields from\\b/, { token: 'keyword.$0' } ],\n [ /\\bQueue Mapping Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as byte size\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay using\\b/, { token: 'keyword.$0' } ],\n [ /\\bContext Message Invocations\\b/, { token: 'keyword.$0' } ],\n [ /\\bMessage\\b/, { token: 'keyword.$0' } ],\n [ /\\bProperty Mapping\\b/, { token: 'keyword.$0' } ],\n [ /\\bsend\\b/, { token: 'keyword.$0' } ],\n [ /\\ball lists\\b/, { token: 'keyword.$0' } ],\n [ /\\ball forms\\b/, { token: 'keyword.$0' } ],\n [ /\\bContextMessage Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ContextMessage\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ContextMessageInvocation\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas references\\b/, { token: 'keyword.$0' } ],\n [ /\\bContextMessageInvocation Index\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow total node\\b/, { token: 'keyword.$0' } ],\n [ /\\bupdate stamp key\\b/, { token: 'keyword.$0' } ],\n [ /\\bappointment message\\b/, { token: 'keyword.$0' } ],\n [ /\\bappointment attachment\\b/, { token: 'keyword.$0' } ],\n [ /\\bCube Relations\\b/, { token: 'keyword.$0' } ],\n [ /\\bcell relation to\\b/, { token: 'keyword.$0' } ],\n [ /\\bDimension Mapping\\b/, { token: 'keyword.$0' } ],\n [ /\\bPreload Measures\\b/, { token: 'keyword.$0' } ],\n [ /\\bcube dimension value\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements SecurityCache\\b/, { token: 'keyword.$0' } ],\n [ /\\binput value\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements IncrementalReplication\\b/, { token: 'keyword.$0' } ],\n [ /\\binvoke script\\b/, { token: 'keyword.$0' } ],\n [ /\\binvoke method\\b/, { token: 'keyword.$0' } ],\n [ /\\bin script\\b/, { token: 'keyword.$0' } ],\n [ /\\busing mime type\\b/, { token: 'keyword.$0' } ],\n [ /\\bhas role\\b/, { token: 'keyword.$0' } ],\n [ /\\bin group\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements RepresentativeImageView\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable multiple instance selection\\b/, { token: 'keyword.$0' } ],\n [ /\\bvalid for measure\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements IndependentFormPanels\\b/, { token: 'keyword.$0' } ],\n [ /\\bmatrix relation to\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod view is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdynamic mapping is\\b/, { token: 'keyword.$0' } ],\n [ /\\buntranslatable\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable StaticTranslations\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable surrogates\\b/, { token: 'keyword.$0' } ],\n [ /\\bdescendants are\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow context form on top\\b/, { token: 'keyword.$0' } ],\n [ /\\bMeasure Based Dimensions\\b/, { token: 'keyword.$0' } ],\n [ /\\bcaption is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis aggregatable\\b/, { token: 'keyword.$0' } ],\n [ /\\buser configuration\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfig stamp is\\b/, { token: 'keyword.$0' } ],\n [ /\\band gaps\\b/, { token: 'keyword.$0' } ],\n [ /\\bindependent form is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as switch\\b/, { token: 'keyword.$0' } ],\n [ /\\bpanel header is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as hijri date\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as gregorian date\\b/, { token: 'keyword.$0' } ],\n [ /\\brefresh using\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit log\\b/, { token: 'keyword.$0' } ],\n [ /\\bmessage queue\\b/, { token: 'keyword.$0' } ],\n [ /\\blink\\b/, { token: 'keyword.$0' } ],\n [ /\\bto this agent\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress manual transaction warning\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an InstanceCountChart\\b/, { token: 'keyword.$0' } ],\n [ /\\bChart Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bembedded\\b/, { token: 'keyword.$0' } ],\n [ /\\b_reserved_1422\\b/, { token: 'keyword.$0' } ],\n [ /\\bchart is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdynamic preload measures are\\b/, { token: 'keyword.$0' } ],\n [ /\\bvariable\\b/, { token: 'keyword.$0' } ],\n [ /\\bin background group\\b/, { token: 'keyword.$0' } ],\n [ /\\bbackground group\\b/, { token: 'keyword.$0' } ],\n [ /\\bis drill target\\b/, { token: 'keyword.$0' } ],\n [ /\\bwrite to base level only\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow write to summary level\\b/, { token: 'keyword.$0' } ],\n [ /\\bSuppress Warnings\\b/, { token: 'keyword.$0' } ],\n [ /\\bset size on\\b/, { token: 'keyword.$0' } ],\n [ /\\ball set size warnings\\b/, { token: 'keyword.$0' } ],\n [ /\\bagent actor\\b/, { token: 'keyword.$0' } ],\n [ /\\benable explicit context override\\b/, { token: 'keyword.$0' } ],\n [ /\\brun outside of action background group\\b/, { token: 'keyword.$0' } ],\n [ /\\band attachable\\b/, { token: 'keyword.$0' } ],\n [ /\\band attachability\\b/, { token: 'keyword.$0' } ],\n [ /\\bis neither accessible nor attachable\\b/, { token: 'keyword.$0' } ],\n [ /\\bis text index\\b/, { token: 'keyword.$0' } ],\n [ /\\band blank dimension\\b/, { token: 'keyword.$0' } ],\n [ /\\bempty\\b/, { token: 'keyword.$0' } ],\n [ /\\brefresh and lock this instance\\b/, { token: 'keyword.$0' } ],\n [ /\\bcommit transaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bmenu item name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfooter is\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign async background group id to\\b/, { token: 'keyword.$0' } ],\n [ /\\bon error\\b/, { token: 'keyword.$0' } ],\n [ /\\bwith year of\\b/, { token: 'keyword.$0' } ],\n [ /\\byear when\\b/, { token: 'keyword.$0' } ],\n [ /\\bquarter when\\b/, { token: 'keyword.$0' } ],\n [ /\\bmonth when\\b/, { token: 'keyword.$0' } ],\n [ /\\bweek when\\b/, { token: 'keyword.$0' } ],\n [ /\\bday when\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent date period is\\b/, { token: 'keyword.$0' } ],\n [ /\\bstart date is\\b/, { token: 'keyword.$0' } ],\n [ /\\bend date is\\b/, { token: 'keyword.$0' } ],\n [ /\\bparent period is\\b/, { token: 'keyword.$0' } ],\n [ /\\bnext period is\\b/, { token: 'keyword.$0' } ],\n [ /\\bprevious period is\\b/, { token: 'keyword.$0' } ],\n [ /\\bbeginning balance is\\b/, { token: 'keyword.$0' } ],\n [ /\\bending balance is\\b/, { token: 'keyword.$0' } ],\n [ /\\bbeginning ytd balance is\\b/, { token: 'keyword.$0' } ],\n [ /\\bending ytd balance is\\b/, { token: 'keyword.$0' } ],\n [ /\\bparameters\\b/, { token: 'keyword.$0' } ],\n [ /\\bmime type\\b/, { token: 'keyword.$0' } ],\n [ /\\bContext Field Values\\b/, { token: 'keyword.$0' } ],\n [ /\\bwhen value changed\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable DataTranslations\\b/, { token: 'keyword.$0' } ],\n [ /\\bprotected\\b/, { token: 'keyword.$0' } ],\n [ /\\bbypass relational integrity rules\\b/, { token: 'keyword.$0' } ],\n [ /\\benable ImmutableContextCache\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable ImmutableContextCache\\b/, { token: 'keyword.$0' } ],\n [ /\\bphrase\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow fixed integer scale\\b/, { token: 'keyword.$0' } ],\n [ /\\bminimum value is\\b/, { token: 'keyword.$0' } ],\n [ /\\btop node is\\b/, { token: 'keyword.$0' } ],\n [ /\\bHierarchies\\b/, { token: 'keyword.$0' } ],\n [ /\\bbase level\\b/, { token: 'keyword.$0' } ],\n [ /\\bincluded\\b/, { token: 'keyword.$0' } ],\n [ /\\bbod reference\\b/, { token: 'keyword.$0' } ],\n [ /\\bnoun\\b/, { token: 'keyword.$0' } ],\n [ /\\bgeneral action\\b/, { token: 'keyword.$0' } ],\n [ /\\bSubtotal By\\b/, { token: 'keyword.$0' } ],\n [ /\\bbypass no duplicates validation\\b/, { token: 'keyword.$0' } ],\n [ /\\bdeprecated\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow dimension reordering\\b/, { token: 'keyword.$0' } ],\n [ /\\binline create\\b/, { token: 'keyword.$0' } ],\n [ /\\blazily lock this instance\\b/, { token: 'keyword.$0' } ],\n [ /\\ballow form create\\b/, { token: 'keyword.$0' } ],\n [ /\\bpersistent user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bauditable user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bderived user fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bthis field\\b/, { token: 'keyword.$0' } ],\n [ /\\bdependent panels\\b/, { token: 'keyword.$0' } ],\n [ /\\bproperty\\b/, { token: 'keyword.$0' } ],\n [ /\\bmultiple select\\b/, { token: 'keyword.$0' } ],\n [ /\\bsingle select\\b/, { token: 'keyword.$0' } ],\n [ /\\balways display search\\b/, { token: 'keyword.$0' } ],\n [ /\\binitially display search\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as star\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as box\\b/, { token: 'keyword.$0' } ],\n [ /\\bfilled star\\b/, { token: 'keyword.$0' } ],\n [ /\\boutlined star\\b/, { token: 'keyword.$0' } ],\n [ /\\bsynchronized\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow as simple list\\b/, { token: 'keyword.$0' } ],\n [ /\\bkeyword search field is\\b/, { token: 'keyword.$0' } ],\n [ /\\binitially display\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign async action background group id to\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent action background group id\\b/, { token: 'keyword.$0' } ],\n [ /\\baction background group\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent action background group\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisable IncrementalReplication\\b/, { token: 'keyword.$0' } ],\n [ /\\bhttp method is\\b/, { token: 'keyword.$0' } ],\n [ /\\bplain text\\b/, { token: 'keyword.$0' } ],\n [ /\\bis condition for\\b/, { token: 'keyword.$0' } ],\n [ /\\bis related link for\\b/, { token: 'keyword.$0' } ],\n [ /\\bis related value for\\b/, { token: 'keyword.$0' } ],\n [ /\\bwhen blank\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow using\\b/, { token: 'keyword.$0' } ],\n [ /\\bSoHo Xi\\b/, { token: 'keyword.$0' } ],\n [ /\\bSoHo 3.x\\b/, { token: 'keyword.$0' } ],\n [ /\\bfooter\\b/, { token: 'keyword.$0' } ],\n [ /\\blarge menu\\b/, { token: 'keyword.$0' } ],\n [ /\\bsmall menu\\b/, { token: 'keyword.$0' } ],\n [ /\\bin portrait\\b/, { token: 'keyword.$0' } ],\n [ /\\bin landscape\\b/, { token: 'keyword.$0' } ],\n [ /\\bfont offset is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis transaction boundary\\b/, { token: 'keyword.$0' } ],\n [ /\\bunlimited\\b/, { token: 'keyword.$0' } ],\n [ /\\bdo not save in checkpoint\\b/, { token: 'keyword.$0' } ],\n [ /\\bsend ion bod\\b/, { token: 'keyword.$0' } ],\n [ /\\bbod is\\b/, { token: 'keyword.$0' } ],\n [ /\\bbod type is\\b/, { token: 'keyword.$0' } ],\n [ /\\bassign message id to\\b/, { token: 'keyword.$0' } ],\n [ /\\btemplate\\b/, { token: 'keyword.$0' } ],\n [ /\\bXMLDocument\\b/, { token: 'keyword.$0' } ],\n [ /\\bJSONObject\\b/, { token: 'keyword.$0' } ],\n [ /\\bselect\\b/, { token: 'keyword.$0' } ],\n [ /\\bis an Import Action\\b/, { token: 'keyword.$0' } ],\n [ /\\ball imports\\b/, { token: 'keyword.$0' } ],\n [ /\\bdocument for\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a DrillList\\b/, { token: 'keyword.$0' } ],\n [ /\\bform mask is\\b/, { token: 'keyword.$0' } ],\n [ /\\blist mask is\\b/, { token: 'keyword.$0' } ],\n [ /\\bview navigation\\b/, { token: 'keyword.$0' } ],\n [ /\\bconfiguration\\b/, { token: 'keyword.$0' } ],\n [ /\\bis version relation\\b/, { token: 'keyword.$0' } ],\n [ /\\bKey Field Back Relations\\b/, { token: 'keyword.$0' } ],\n [ /\\bReplaced Relations\\b/, { token: 'keyword.$0' } ],\n [ /\\bReplaced Sets\\b/, { token: 'keyword.$0' } ],\n [ /\\bOntological OTM Relations\\b/, { token: 'keyword.$0' } ],\n [ /\\bAnalyticCube Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bDimension Attribute\\b/, { token: 'keyword.$0' } ],\n [ /\\bMeasure Attribute\\b/, { token: 'keyword.$0' } ],\n [ /\\bDictionary Component Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bAllow User Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bKey Field Reference Info\\b/, { token: 'keyword.$0' } ],\n [ /\\bAdd UsedByATransaction\\b/, { token: 'keyword.$0' } ],\n [ /\\bDelete Entrance Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bDelete Instance Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bByParentRelation\\b/, { token: 'keyword.$0' } ],\n [ /\\btransient or local dependent\\b/, { token: 'keyword.$0' } ],\n [ /\\buses primary set\\b/, { token: 'keyword.$0' } ],\n [ /\\bautomated context of\\b/, { token: 'keyword.$0' } ],\n [ /\\bOPF Snapshot Fields\\b/, { token: 'keyword.$0' } ],\n [ /\\bKey Field\\b/, { token: 'keyword.$0' } ],\n [ /\\btype\\b/, { token: 'keyword.$0' } ],\n [ /\\bCube Links\\b/, { token: 'keyword.$0' } ],\n [ /\\blink to\\b/, { token: 'keyword.$0' } ],\n [ /\\btop node\\b/, { token: 'keyword.$0' } ],\n [ /\\bInstanceCount\\b/, { token: 'keyword.$0' } ],\n [ /\\baggregation of\\b/, { token: 'keyword.$0' } ],\n [ /\\bcalculate dynamically\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements AuditCompare\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow changed values on right\\b/, { token: 'keyword.$0' } ],\n [ /\\baudit compare\\b/, { token: 'keyword.$0' } ],\n [ /\\bcube rule is\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow labels\\b/, { token: 'keyword.$0' } ],\n [ /\\bhide labels\\b/, { token: 'keyword.$0' } ],\n [ /\\bshort date\\b/, { token: 'keyword.$0' } ],\n [ /\\bmedium date\\b/, { token: 'keyword.$0' } ],\n [ /\\blong date\\b/, { token: 'keyword.$0' } ],\n [ /\\bshort anniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bmedium anniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\blong anniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bshort period\\b/, { token: 'keyword.$0' } ],\n [ /\\bmedium period\\b/, { token: 'keyword.$0' } ],\n [ /\\blong period\\b/, { token: 'keyword.$0' } ],\n [ /\\bbypass integrity rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bfilter list is\\b/, { token: 'keyword.$0' } ],\n [ /\\bfilter\\b/, { token: 'keyword.$0' } ],\n [ /\\bsort\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow legend\\b/, { token: 'keyword.$0' } ],\n [ /\\bhide legend\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow as donut\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow bars\\b/, { token: 'keyword.$0' } ],\n [ /\\bvertically\\b/, { token: 'keyword.$0' } ],\n [ /\\bhorizontally\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow elements\\b/, { token: 'keyword.$0' } ],\n [ /\\bside-by-side\\b/, { token: 'keyword.$0' } ],\n [ /\\bstacked\\b/, { token: 'keyword.$0' } ],\n [ /\\boverlapped\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow area\\b/, { token: 'keyword.$0' } ],\n [ /\\bno records message is\\b/, { token: 'keyword.$0' } ],\n [ /\\bworkflow event title is\\b/, { token: 'keyword.$0' } ],\n [ /\\binsert history\\b/, { token: 'keyword.$0' } ],\n [ /\\bchange create date\\b/, { token: 'keyword.$0' } ],\n [ /\\bdelete history\\b/, { token: 'keyword.$0' } ],\n [ /\\bpurge audit log entries\\b/, { token: 'keyword.$0' } ],\n [ /\\bpurge date\\b/, { token: 'keyword.$0' } ],\n [ /\\btable\\b/, { token: 'keyword.$0' } ],\n [ /\\bcreate within\\b/, { token: 'keyword.$0' } ],\n [ /\\bcopy row\\b/, { token: 'keyword.$0' } ],\n [ /\\bcolumn headers\\b/, { token: 'keyword.$0' } ],\n [ /\\brow headers\\b/, { token: 'keyword.$0' } ],\n [ /\\blogical id\\b/, { token: 'keyword.$0' } ],\n [ /\\btenant id\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude deleted records\\b/, { token: 'keyword.$0' } ],\n [ /\\binclude only deleted records\\b/, { token: 'keyword.$0' } ],\n [ /\\backnowledge action is\\b/, { token: 'keyword.$0' } ],\n [ /\\backnowledge completed when\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements InMemoryCache\\b/, { token: 'keyword.$0' } ],\n [ /\\bclear in-memory cache\\b/, { token: 'keyword.$0' } ],\n [ /\\blast panel navigation is\\b/, { token: 'keyword.$0' } ],\n [ /\\bnext button title is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmingle url is\\b/, { token: 'keyword.$0' } ],\n [ /\\bperiod dimension is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a RuleBlocks\\b/, { token: 'keyword.$0' } ],\n [ /\\bRuleBlock Index\\b/, { token: 'keyword.$0' } ],\n [ /\\breplace\\b/, { token: 'keyword.$0' } ],\n [ /\\bno acknowledgement\\b/, { token: 'keyword.$0' } ],\n [ /\\bproduct line\\b/, { token: 'keyword.$0' } ],\n [ /\\bbase environment\\b/, { token: 'keyword.$0' } ],\n [ /\\bCSVText\\b/, { token: 'keyword.$0' } ],\n [ /\\bdbimport\\b/, { token: 'keyword.$0' } ],\n [ /\\binto\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements OnceUsedNeverDelete\\b/, { token: 'keyword.$0' } ],\n [ /\\bdrill around\\b/, { token: 'keyword.$0' } ],\n [ /\\bmanual range is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay when\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements DynamicChildVisibility\\b/, { token: 'keyword.$0' } ],\n [ /\\bchild designator field is\\b/, { token: 'keyword.$0' } ],\n [ /\\bparent match field is\\b/, { token: 'keyword.$0' } ],\n [ /\\btarget business class is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress header\\b/, { token: 'keyword.$0' } ],\n [ /\\bsuppress footer\\b/, { token: 'keyword.$0' } ],\n [ /\\bTranslation Rules\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ColumnarReplicate\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements ColumnarView\\b/, { token: 'keyword.$0' } ],\n [ /\\bresponsive card view is\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements LongRunningList\\b/, { token: 'keyword.$0' } ],\n [ /\\bRequired Search Parameters\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent corporate time\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent corporate date\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent corporate year\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent corporate period\\b/, { token: 'keyword.$0' } ],\n [ /\\bcurrent corporate aniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current corporate date\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current corporate year\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current corporate period\\b/, { token: 'keyword.$0' } ],\n [ /\\bsystem current corporate aniversary\\b/, { token: 'keyword.$0' } ],\n [ /\\bimplements VirtualBackRelSets\\b/, { token: 'keyword.$0' } ],\n [ /\\bindicator field is\\b/, { token: 'keyword.$0' } ],\n [ /\\breplicate when\\b/, { token: 'keyword.$0' } ],\n [ /\\bthen set to\\b/, { token: 'keyword.$0' } ],\n [ /\\bwhen in background\\b/, { token: 'keyword.$0' } ],\n [ /\\bselect line that\\b/, { token: 'keyword.$0' } ],\n [ /\\bstarts with\\b/, { token: 'keyword.$0' } ],\n [ /\\bends with\\b/, { token: 'keyword.$0' } ],\n [ /\\bline in\\b/, { token: 'keyword.$0' } ],\n [ /\\bsplit\\b/, { token: 'keyword.$0' } ],\n [ /\\bsplit on\\b/, { token: 'keyword.$0' } ],\n [ /\\bin base64\\b/, { token: 'keyword.$0' } ],\n [ /\\berror message field name\\b/, { token: 'keyword.$0' } ],\n [ /\\bprivileged\\b/, { token: 'keyword.$0' } ],\n [ /\\binitial\\b/, { token: 'keyword.$0' } ],\n [ /\\bschedule concurrency is\\b/, { token: 'keyword.$0' } ],\n [ /\\bFullConcurrency\\b/, { token: 'keyword.$0' } ],\n [ /\\bNoConcurrency\\b/, { token: 'keyword.$0' } ],\n [ /\\bNoActionGroupConcurrency\\b/, { token: 'keyword.$0' } ],\n [ /\\bmisfire strategy is\\b/, { token: 'keyword.$0' } ],\n [ /\\bDoNothing\\b/, { token: 'keyword.$0' } ],\n [ /\\bRunOnce\\b/, { token: 'keyword.$0' } ],\n [ /\\bRunAllProcessesScheduled\\b/, { token: 'keyword.$0' } ],\n [ /\\bshow context form on left\\b/, { token: 'keyword.$0' } ],\n [ /\\bfull name\\b/, { token: 'keyword.$0' } ],\n [ /\\bbackground is\\b/, { token: 'keyword.$0' } ],\n [ /\\btheme color\\b/, { token: 'keyword.$0' } ],\n [ /\\bdouble width\\b/, { token: 'keyword.$0' } ],\n [ /\\btriple width\\b/, { token: 'keyword.$0' } ],\n [ /\\bquad width\\b/, { token: 'keyword.$0' } ],\n [ /\\bdouble height\\b/, { token: 'keyword.$0' } ],\n [ /\\bManualRepresentation\\b/, { token: 'keyword.$0' } ],\n [ /\\bManual Representation\\b/, { token: 'keyword.$0' } ],\n [ /\\brepresentation name is\\b/, { token: 'keyword.$0' } ],\n [ /\\bmanual representation\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a ManualRepresentation\\b/, { token: 'keyword.$0' } ],\n [ /\\brandom background\\b/, { token: 'keyword.$0' } ],\n [ /\\bforeground text is\\b/, { token: 'keyword.$0' } ],\n [ /\\bis default sort order\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as select\\b/, { token: 'keyword.$0' } ],\n [ /\\berror message stack trace\\b/, { token: 'keyword.$0' } ],\n [ /\\btemplate name\\b/, { token: 'keyword.$0' } ],\n [ /\\binvoke modify update stamp\\b/, { token: 'keyword.$0' } ],\n [ /\\bexpect acknowledgement\\b/, { token: 'keyword.$0' } ],\n [ /\\baccounting entity is\\b/, { token: 'keyword.$0' } ],\n [ /\\bdocument id is\\b/, { token: 'keyword.$0' } ],\n [ /\\bvariation id is\\b/, { token: 'keyword.$0' } ],\n [ /\\brevision id is\\b/, { token: 'keyword.$0' } ],\n [ /\\bsource is\\b/, { token: 'keyword.$0' } ],\n [ /\\binstance count is\\b/, { token: 'keyword.$0' } ],\n [ /\\bcustom property is\\b/, { token: 'keyword.$0' } ],\n [ /\\bround to precision\\b/, { token: 'keyword.$0' } ],\n [ /\\bdisplay as tag\\b/, { token: 'keyword.$0' } ],\n [ /\\bcenter field is\\b/, { token: 'keyword.$0' } ],\n [ /\\blinear when\\b/, { token: 'keyword.$0' } ],\n [ /\\bpurple\\b/, { token: 'keyword.$0' } ],\n [ /\\bturquoise\\b/, { token: 'keyword.$0' } ],\n [ /\\battach\\b/, { token: 'keyword.$0' } ],\n [ /\\bis a MultiListView\\b/, { token: 'keyword.$0' } ],\n [ /\\bfirst page header is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage header is\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage footer is\\b/, { token: 'keyword.$0' } ],\n [ /\\benable subset select on dependent relation\\b/, { token: 'keyword.$0' } ],\n [ /\\blog\\b/, { token: 'keyword.$0' } ],\n [ /\\bpage mask is\\b/, { token: 'keyword.$0' } ],\n [ /\\btemplate mask is\\b/, { token: 'keyword.$0' } ],\n [ /\\bview mask is\\b/, { token: 'keyword.$0' } ],\n\n // identifiers and keywords\n [ /[a-zA-Z_$][\\w$]*/, {\n cases: {\n '@keywords': { token: 'keyword.$0' },\n '@default': 'identifier'\n }\n } ],\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [ /[{}()\\[\\]]/, '@brackets' ],\n [ /[<>](?!@symbols)/, '@brackets' ],\n [ /@symbols/, {\n cases: {\n '@operators': 'delimiter',\n '@default': ''\n }\n } ],\n\n // @ annotations.\n [ /@\\s*[a-zA-Z_\\$][\\w\\$]*/, 'annotation' ],\n\n // numbers\n [ /(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, 'number.float' ],\n [ /(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, 'number.float' ],\n [ /0[xX](@hexdigits)[Ll]?/, 'number.hex' ],\n [ /0(@octaldigits)[Ll]?/, 'number.octal' ],\n [ /0[bB](@binarydigits)[Ll]?/, 'number.binary' ],\n [ /(@digits)[fFdD]/, 'number.float' ],\n [ /(@digits)[lL]?/, 'number' ],\n\n // delimiter: after number because of .\\d floats\n [ /[;,.]/, 'delimiter' ],\n\n // strings\n [ /\"([^\"\\\\]|\\\\.)*$/, 'string.invalid' ], // non-terminated string\n [ /\"/, 'string', '@string' ],\n\n // characters\n [ /'[^\\\\']'/, 'string' ],\n [ /(')(@escapes)(')/, [ 'string', 'string.escape', 'string' ] ],\n [ /'/, 'string.invalid' ]\n ],\n\n whitespace: [\n [ /[ \\t\\r\\n]+/, '' ],\n [ /\\/\\*\\*(?!\\/)/, 'comment.doc', '@javadoc' ],\n [ /\\/\\*/, 'comment', '@comment' ],\n [ /\\/\\/.*$/, 'comment' ],\n ],\n\n comment: [\n [ /[^\\/*]+/, 'comment' ],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/\n [ /\\*\\//, 'comment', '@pop' ],\n [ /[\\/*]/, 'comment' ]\n ],\n // Identical copy of comment above, except for the addition of .doc\n javadoc: [\n [ /[^\\/*]+/, 'comment.doc' ],\n // [/\\/\\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(\n [ /\\/\\*/, 'comment.doc.invalid' ],\n [ /\\*\\//, 'comment.doc', '@pop' ],\n [ /[\\/*]/, 'comment.doc' ]\n ],\n\n string: [\n [ /[^\\\\\"]+/, 'string' ],\n [ /@escapes/, 'string.escape' ],\n [ /\\\\./, 'string.escape.invalid' ],\n [ /\"/, 'string', '@pop' ]\n ],\n },\n };\n\n SECCLASS_LANGUAGE = {\n defaultToken: '',\n tokenPostfix: '.secclass',\n\n keywords: [\n 'abstract', 'continue', 'for', 'new', 'switch', 'assert', 'default',\n 'goto', 'package', 'synchronized', 'boolean', 'do', 'if', 'private',\n 'this', 'break', 'double', 'implements', 'protected', 'throw', 'byte',\n 'else', 'import', 'public', 'throws', 'case', 'enum', 'instanceof', 'return',\n 'transient', 'catch', 'extends', 'int', 'short', 'try', 'char', 'final',\n 'interface', 'static', 'void', 'class', 'finally', 'long', 'strictfp',\n 'volatile', 'const', 'float', 'native', 'super', 'while', 'true', 'false',\n ],\n\n operators: [\n '=', '>', '<', '!', '~', '?', ':',\n '==', '<=', '>=', '!=', '&&', '||', '++', '--',\n '+', '-', '*', '/', '&', '|', '^', '%', '<<',\n '>>', '>>>', '+=', '-=', '*=', '/=', '&=', '|=',\n '^=', '%=', '<<=', '>>=', '>>>='\n ],\n\n // we include these common regular expressions\n symbols: /[=>](?!@symbols)/, '@brackets' ],\n [ /@symbols/, {\n cases: {\n '@operators': 'delimiter',\n '@default': ''\n }\n } ],\n\n // @ annotations.\n [ /@\\s*[a-zA-Z_\\$][\\w\\$]*/, 'annotation' ],\n\n // numbers\n [ /(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, 'number.float' ],\n [ /(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, 'number.float' ],\n [ /0[xX](@hexdigits)[Ll]?/, 'number.hex' ],\n [ /0(@octaldigits)[Ll]?/, 'number.octal' ],\n [ /0[bB](@binarydigits)[Ll]?/, 'number.binary' ],\n [ /(@digits)[fFdD]/, 'number.float' ],\n [ /(@digits)[lL]?/, 'number' ],\n\n // delimiter: after number because of .\\d floats\n [ /[;,.]/, 'delimiter' ],\n\n // strings\n [ /\"([^\"\\\\]|\\\\.)*$/, 'string.invalid' ], // non-terminated string\n [ /\"/, 'string', '@string' ],\n\n // characters\n [ /'[^\\\\']'/, 'string' ],\n [ /(')(@escapes)(')/, [ 'string', 'string.escape', 'string' ] ],\n [ /'/, 'string.invalid' ]\n ],\n\n whitespace: [\n [ /[ \\t\\r\\n]+/, '' ],\n [ /\\/\\*\\*(?!\\/)/, 'comment.doc', '@javadoc' ],\n [ /\\/\\*/, 'comment', '@comment' ],\n [ /\\/\\/.*$/, 'comment' ],\n ],\n\n comment: [\n [ /[^\\/*]+/, 'comment' ],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/\n [ /\\*\\//, 'comment', '@pop' ],\n [ /[\\/*]/, 'comment' ]\n ],\n // Identical copy of comment above, except for the addition of .doc\n javadoc: [\n [ /[^\\/*]+/, 'comment.doc' ],\n // [/\\/\\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(\n [ /\\/\\*/, 'comment.doc.invalid' ],\n [ /\\*\\//, 'comment.doc', '@pop' ],\n [ /[\\/*]/, 'comment.doc' ]\n ],\n\n string: [\n [ /[^\\\\\"]+/, 'string' ],\n [ /@escapes/, 'string.escape' ],\n [ /\\\\./, 'string.escape.invalid' ],\n [ /\"/, 'string', '@pop' ]\n ],\n },\n };\n\n secclassAccessibilityTenses: Array = [ 'past', 'current', 'future' ];\n secclassActions: Array = [ 'all actions', 'all functions', 'all creates', 'all imports', 'all scheduled actions', 'all security configuration', 'all audit views',\n 'all global UI configuration', 'all updates', 'all personalization', 'all inquiries', 'all deletes', 'all audit views', 'future data indicator', 'data export',\n 'insert history', 'ViewAuditLog', 'audit update', 'data menu', 'change create date', 'purge audit log entries', 'Inquire', 'audit delete', 'all crypto actions',\n 'ViewFullAuditLog', 'change effective date', 'invalidate', 'limited list personalization', 'audit create', 'limited form personalization', 'delete history' ];\n\n public getSecuritySnippetInfo(category: SECCLASSCategory): Array {\n if (category === 'object') {\n return [\n { category: 'object', snippet: 'DataArea', phrase: 'LPL_EDITOR_DataArea' },\n { category: 'object', snippet: 'Module', phrase: 'LPL_EDITOR_Module' },\n { category: 'object', snippet: 'WebApp', phrase: 'LPL_EDITOR_WebApp' },\n { category: 'object', snippet: 'Menu', phrase: 'LPL_EDITOR_Menu' },\n { category: 'object', snippet: 'MenuItem', phrase: 'LPL_EDITOR_MenuItem' },\n { category: 'object', snippet: 'KeyField', phrase: 'LPL_EDITOR_KeyField' },\n { category: 'object', snippet: 'BusinessClass', phrase: 'LPL_EDITOR_BusinessClass' },\n { category: 'object', snippet: 'Field', phrase: 'LPL_EDITOR_Field' },\n { category: 'object', snippet: 'AllFields', phrase: 'LPL_EDITOR_AllFields' },\n { category: 'object', snippet: 'BusinessTask', phrase: 'LPL_EDITOR_BusinessTask' },\n { category: 'object', snippet: 'Executable', phrase: 'LPL_EDITOR_executable' }\n ];\n }\n\n if (category === 'type') {\n return [\n { category: 'type', snippet: 'DataArea', phrase: 'LPL_EDITOR_DataArea' },\n { category: 'type', snippet: 'Module', phrase: 'LPL_EDITOR_Module' },\n { category: 'type', snippet: 'WebApp', phrase: 'LPL_EDITOR_WebApp' },\n { category: 'type', snippet: 'Menu', phrase: 'LPL_EDITOR_Menu' },\n { category: 'type', snippet: 'MenuItem', phrase: 'LPL_EDITOR_MenuItem' },\n { category: 'type', snippet: 'KeyField', phrase: 'LPL_EDITOR_KeyField' },\n { category: 'type', snippet: 'BusinessClass', phrase: 'LPL_EDITOR_BusinessClass' },\n { category: 'type', snippet: 'Field', phrase: 'LPL_EDITOR_Field' },\n { category: 'type', snippet: 'FieldGroups', phrase: 'LPL_EDITOR_FieldGroups' },\n { category: 'type', snippet: 'BusinessTask', phrase: 'LPL_EDITOR_BusinessTask' },\n { category: 'type', snippet: 'Executable', phrase: 'LPL_EDITOR_executable' }\n ];\n }\n }\n public getSecuritySnippet(category: SECCLASSCategory, snippet: SECCLASSType | SECCLASSObject): string {\n if (category === 'object') {\n return this.getSecurableObjectSnippet(snippet as SECCLASSObject, false);\n }\n\n if (category === 'type') {\n return this.getSecurableTypeSnippet(snippet as SECCLASSType, false);\n }\n }\n\n private getSecClassCompletionList(model: ITextModel, position: Position, context: CompletionContext, token: CancellationToken): ProviderResult {\n const suggestions = [];\n const underAccessRights = this.indentedUnderAccessRights(model, position);\n const firstTextColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber);\n const lastTextColumn = model.getLineLastNonWhitespaceColumn(position.lineNumber);\n const line = model.getLineContent(position.lineNumber).trim();\n\n if (position.column === 5 && !underAccessRights) {\n suggestions.push(this.buildCompletedItem('description is'));\n suggestions.push(this.buildCompletedItem('Access Rights'));\n }\n\n if (position.column === 13 && underAccessRights) {\n suggestions.push(this.buildCompletedItem('is accessible'));\n suggestions.push(this.buildCompletedItem('is not accessible'));\n }\n\n if (firstTextColumn === 13 && underAccessRights) {\n if (line.endsWith('is')) {\n suggestions.push(this.buildCompletedItem('not'));\n }\n if (line.endsWith('is') || line.endsWith('not')) {\n suggestions.push(this.buildCompletedItem('accessible'));\n }\n if (line.endsWith('accessible')) {\n suggestions.push(this.buildCompletedItem('in'));\n }\n if (line.endsWith('in') || line.endsWith(',')) {\n this.secclassAccessibilityTenses.forEach(tense => {\n if (line.indexOf(tense) === -1) {\n suggestions.push(this.buildCompletedItem(tense));\n }\n });\n }\n }\n\n if (position.column === 17 && underAccessRights) {\n suggestions.push(this.buildCompletedItem('for'));\n // this.secclassActions.forEach(action => {\n // suggestions.push(this.buildCompletedItem('for ' + action));\n // });\n suggestions.push(this.buildCompletedItem('when'));\n suggestions.push(this.buildCompletedItem('unconditionally'));\n }\n\n if (firstTextColumn === 17 && underAccessRights) {\n if (line.endsWith('for') || line.endsWith(',')) {\n this.secclassActions.forEach(action => {\n if (line.indexOf(action) === -1) {\n suggestions.push(this.buildCompletedItem(action));\n }\n });\n }\n }\n\n if (position.column === 9 && underAccessRights && firstTextColumn === 0 && lastTextColumn === 0) {\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_MODULE_SNIPPET'), this.getSecurableObjectSnippet('Module')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_DATAAREA_SNIPPET'), this.getSecurableObjectSnippet('DataArea')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_WEBAPP_SNIPPET'), this.getSecurableObjectSnippet('WebApp')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_MENU_SNIPPET'), this.getSecurableObjectSnippet('Menu')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_MENUITEM_SNIPPET'), this.getSecurableObjectSnippet('MenuItem')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_KEYFIELD_SNIPPET'), this.getSecurableObjectSnippet('KeyField')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_BUSINESSCLASS_SNIPPET'), this.getSecurableObjectSnippet('BusinessClass')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_FIELD_SNIPPET'), this.getSecurableObjectSnippet('Field')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_ALLFIELDS_SNIPPET'), this.getSecurableObjectSnippet('AllFields')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_BUSINESSTASK_SNIPPET'), this.getSecurableObjectSnippet('BusinessTask')));\n suggestions.push(this.buildSnippet(Soho.Locale.translate('LPL_EDITOR_EXECUTABLE_SNIPPET'), this.getSecurableObjectSnippet('Executable')));\n }\n\n return >{ suggestions };\n }\n\n private buildCompletedItem(item: string): any {\n return {\n label: item,\n kind: monaco.languages.CompletionItemKind.Text,\n insertText: item,\n insertTextRules: monaco.languages.CompletionItemInsertTextRule,\n };\n }\n\n private buildSnippet(label: string, snippet: string): any {\n return {\n label,\n kind: monaco.languages.CompletionItemKind.Snippet,\n insertText: snippet,\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n documentation: label\n };\n }\n\n private indentedUnderAccessRights(model: ITextModel, position: Position): boolean {\n for (let i = position.lineNumber; i > 0; i--) {\n const offset = model.getLineFirstNonWhitespaceColumn(i);\n const lineContent = model.getLineContent(i);\n if (offset === 5 && lineContent?.indexOf('Access Rights') === (offset -1)) {\n return true;\n };\n }\n\n return false;\n }\n\n private getSecurableObjectSnippet(securableObject: SECCLASSObject, forSnippet = true): string {\n\n if ('MenuItem' === securableObject) {\n if (forSnippet) {\n return [\n '<' + securableObject + '> ' + securableObject + ' for Menu',\n '\\tis accessible',\n '\\t\\tfor all actions',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\tunconditionally',\n '\\t\\t//when (write your condition here)'\n ].join('\\n');\n } else {\n return [\n '<' + securableObject + '> ' + securableObject + ' for Menu',\n '\\t\\t\\tis accessible',\n '\\t\\t\\t\\tfor all actions',\n '\\t\\t\\t\\t\\texcluding',\n '\\t\\t\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\t\\t\\tunconditionally',\n '\\t\\t\\t\\t//when (write your condition here)'\n ].join('\\n');\n }\n }\n\n if ('AllFields' === securableObject) {\n if (forSnippet) {\n return [\n 'All Fields for BusinessClass',\n '\\texcluding',\n '\\t\\t//list excluded fields here',\n '\\tis accessible',\n '\\t\\tfor all actions',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\tunconditionally',\n '\\t\\t//when (write your condition here)'\n ].join('\\n');\n } else {\n return [\n 'All Fields for BusinessClass',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t//list excluded fields here',\n '\\t\\t\\tis accessible',\n '\\t\\t\\t\\tfor all actions',\n '\\t\\t\\t\\t\\texcluding',\n '\\t\\t\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\t\\t\\tunconditionally',\n '\\t\\t\\t\\t//when (write your condition here)'\n ].join('\\n');\n }\n }\n\n if ('KeyField' === securableObject) {\n if (forSnippet) {\n return [\n ' KeyField',\n '\\tgrants access in past,current,future',\n '\\t\\tto all ontology// list of business classes or keyFields',\n '\\t\\tfor all actions',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t// list excluded actions here!'\n ].join('\\n');\n } else {\n return [\n ' KeyField',\n '\\t\\t\\tgrants access in past,current,future',\n '\\t\\t\\t\\tto all ontology// list of business classes or keyFields',\n '\\t\\t\\t\\tfor all actions',\n '\\t\\t\\t\\t\\texcluding',\n '\\t\\t\\t\\t\\t\\t// list excluded actions here!'\n ].join('\\n');\n }\n }\n\n if (forSnippet) {\n return [\n '<' + securableObject + '> ' + securableObject,\n '\\tis accessible',\n '\\t\\tfor all actions',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\tunconditionally',\n '\\t\\t//when (write your condition here)'\n ].join('\\n');\n } else {\n return [\n '<' + securableObject + '> ' + securableObject,\n '\\t\\t\\tis accessible',\n '\\t\\t\\t\\tfor all actions',\n '\\t\\t\\t\\t\\texcluding',\n '\\t\\t\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\t\\t\\tunconditionally',\n '\\t\\t\\t\\t//when (write your condition here)'\n ].join('\\n');\n }\n }\n\n private getSecurableTypeSnippet(securableType: SECCLASSType, forSnippet = true): string {\n\n if (forSnippet) {\n return [\n securableType + ' Type',\n '\\tis accessible',\n '\\t\\tfor all actions',\n '\\t\\t\\texcluding',\n '\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\tunconditionally',\n '\\t\\t//when (write your condition here)'\n ].join('\\n');\n } else {\n return [\n securableType + ' Type',\n '\\t\\t\\tis accessible',\n '\\t\\t\\t\\tfor all actions',\n '\\t\\t\\t\\t\\texcluding',\n '\\t\\t\\t\\t\\t\\t// list excluded actions here!',\n '\\t\\t\\t\\tunconditionally',\n '\\t\\t\\t\\t//when (write your condition here)'\n ].join('\\n');\n }\n }\n\n private getSecurableObject(model: ITextModel, position: Position): string[] {\n for (let i = position.lineNumber; i > 0; i--) {\n const offset = model.getLineFirstNonWhitespaceColumn(i);\n const lineContent = model.getLineContent(i);\n if (offset === 5 && lineContent?.indexOf('Access Rights') === (offset -1)) {\n return null;\n }\n }\n\n return null;\n }\n}\n","export * from './lm-manual.component';\n","import { AfterViewInit, Component, OnInit, HostListener, Input } from '@angular/core';\nimport { Event, Router } from '@angular/router';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMComponentInfoService, } from '@services/lm-componentinfo.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\n\nclass FormViewData {\n /**\n * Set this formSpec to have the view template pass list spec down\n * to the form-content.component and it's sub view (standard, composite, etc...)\n */\n formSpec: LMFormSpec;\n /**\n * Set this dataView to have the view template pass dataView down\n * to the form-content.component and it's sub view (standard, composite, etc...)\n */\n dataView: LMDataView;\n}\n// \n@Component({\n selector: 'lm-manual',\n template: `\n
          \n

          The selected row is {{selectedRow}}

          \n \n\n
          \n
          \n `,\n providers: []\n})\n\nexport class LMManualComponent extends LMBaseComponent implements OnInit, AfterViewInit {\n @HostListener('document:click', ['$event'])\n handleClick(event: Event) {\n\n // if (this.el.nativeElement.contains(event.target)) {\n // this.highlight('yellow');\n // } else {\n // this.highlight(null);\n // }\n }\n\n @Input() selectedRow: Number = 3;\n @Input() resourceId: string;\n @Input() formSpec: LMFormSpec = null;\n\n private isRouterOutletRootComponent = false;\n private initialBuildComplete = false;\n private innerIframe: NodeListOf;\n public formViewData: FormViewData = new FormViewData();\n private formType: LMFormType = 'Summary';\n\n public customUrl: SafeResourceUrl = null;\n constructor(\n public sohoModalDialogService: SohoModalDialogService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n protected _sanitizer: DomSanitizer,\n private lmLoggerService: LMLoggerService,\n private router: Router,\n private lmSpecService: LMSpecService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n\n }\n\n // events\n ngOnInit() {\n this.lmLoggerService.trace([ this, 'ngOnInit()', 'resourceId=', this.resourceId, 'formSpec=', this.formSpec ]);\n\n this.isRouterOutletRootComponent = !this.formSpec;\n this.showBusyIndicator();\n }\n\n ngAfterViewInit(): void {\n // [src]=\"getCustomURL() | safe:'resourceUrl'\"\n this.customUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.getCustomURL());\n\n // Add listeners for frame events\n\n window.document.addEventListener('IFrameEvent', (e: any) => {\n this.selectedRow = e.detail.selectedRow;\n }, false);\n\n window.document.addEventListener('IFrameLoadedEvent', (e: any) => {\n this.hideBusyIndicator();\n }, false);\n\n window.document.addEventListener('IFrameUnloadedEvent', (e: any) => {\n this.lmLoggerService.log('*** screen unloading ***');\n }, false);\n\n this.lmLoggerService.trace([ this, 'ngAfterViewInit' ]);\n\n if (!this.initialBuildComplete) {\n this.build();\n }\n }\n\n public build() {\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n // let compiledTemplate = urltemplate.parse(this.pageSpec);\n // let loadUrl = compiledTemplate.expand({ resourceId: this.model.getData().resourceId });\n\n const formInfo: LMComponentInfo = {\n componentType: 'custom',\n name: 'custom',\n type: 'page',\n developer: false,\n isWizard: false,\n panelNavigation: false,\n hasConfigAccess: this.lmComponentInfoService.hasConfigAccess(),\n };\n\n return formInfo;\n }\n\n public getCustomURL() {\n return 'http://usspnswolynie2.infor.com:2041/uitest/web/samples/iframetest/test.html';\n }\n\n public getCustomHTML() {\n\n return '

          Use this to clear the selected Index textbox

          ttCNNtt';\n }\n\n public fireEventToIframe(e) {\n\n const testFrame: any = document.getElementById('testIframe');\n testFrame.contentWindow.notify();\n // testFrame.contentDocument.getCustomURL();\n // let iframeData = { selectedRow: enteredSelectedIndex, title: 'title 2' };\n // let event = new CustomEvent('IFrameEvent', { detail: iframeData })\n // window.parent.document.dispatchEvent(event)\n }\n\n public getComponentPlaceHolder() {\n return this.placeHolder;\n }\n}\n","export * from './services';\nexport * from './lm-compute-builder.component';\nexport * from './lm-compute-builder-row.component';\nexport * from './lm-derived-compute-builder.component';\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\n\n@Component({\n selector: 'lm-compute-builder-row',\n templateUrl: './lm-compute-builder-row.component.html',\n styleUrls: ['./lm-compute-builder-row.component.scss']\n})\nexport class LMComputeBuilderRowComponent implements OnInit {\n\n @Input() isFirst: boolean;\n @Input() isLast: boolean;\n @Input() computeRow: LMComputeRow;\n @Input() businessClass: string;\n @Input() includeAuditFields: boolean;\n @Input() lookupUrl: string;\n @Input() index: number;\n @Input() fieldSearchUrl: string;\n @Input() lplValidationUrl: string;\n\n @Output() onRemoveRowEvent = new EventEmitter();\n @Output() onComputeRowUpdate = new EventEmitter();\n @Output() onAddNewRowEvent = new EventEmitter();\n\n operators: Array;\n functions: Array;\n types: Array;\n literalId: string;\n functionId: string;\n operatorId: string;\n typeId: string;\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private lmUniqueIdService: LMUniqueIdService) { }\n\n ngOnInit(): void {\n\n this.literalId = this.lmUniqueIdService.uniqueId(['literal', this.index.toString()]);\n this.functionId = this.lmUniqueIdService.uniqueId(['function', this.index.toString()]);\n this.operatorId = this.lmUniqueIdService.uniqueId(['operator', this.index.toString()]);\n this.typeId = this.lmUniqueIdService.uniqueId(['type', this.index.toString()]);\n\n this.types = [];\n this.types.push({ value: 'field', label: 'Field' });\n this.types.push({ value: 'string', label: 'String' });\n this.types.push({ value: 'number', label: 'Number' });\n\n this.operators = [];\n this.operators.push({ value: '', label: '' });\n this.operators.push({ value: '+', label: '+' });\n this.operators.push({ value: '-', label: '-' });\n this.operators.push({ value: '*', label: '*' });\n this.operators.push({ value: '/', label: '/' });\n this.operators.push({ value: '^', label: '^' });\n this.operators.push({ value: '%', label: '%' });\n\n this.functions = [];\n this.functions.push({ value: '', label: '', position: 'noop'});\n this.functions.push({ value: 'weighted average', label: 'weighted average', position: 'prepend'});\n this.functions.push({ value: 'date first changed', label: 'date first changed', position: 'prepend'});\n this.functions.push({ value: 'date last changed', label: 'date last changed', position: 'prepend'});\n this.functions.push({ value: 'date next changed', label: 'date next changed', position: 'prepend'});\n this.functions.push({ value: 'days was', label: 'days was', position: 'prepend'});\n this.functions.push({ value: 'floor', label: 'floor', position: 'prepend'});\n this.functions.push({ value: 'ceiling', label: 'ceiling', position: 'append'});\n this.functions.push({ value: 'decimals', label: 'decimals', position: 'append'});\n this.functions.push({ value: 'size', label: 'size', position: 'append'});\n }\n\n onRemoveButtonEvent() {\n this.computeRow.index = this.index;\n this.onRemoveRowEvent.emit({ computeRow: this.computeRow });\n }\n\n handleFieldLookUpEvent() {\n this.setupFunctionSelection();\n this.changeDetectorRef.detectChanges();\n }\n\n handleFieldChange() {\n if (this.computeRow.function) {\n const element = this.functions.find(operation => operation.value === this.computeRow.function);\n this.computeRow.position = element.position;\n }\n this.onComputeRowUpdate.emit({computeRow: this.computeRow});\n }\n\n setupFunctionSelection() {\n this.functions = [];\n\n // this should use the field pricker to select the field Operator, but then have the function be the type operator DPB\n // should be based on the landmark field type.\n this.functions.push({ value: '', label: '', position: 'noop'});\n this.functions.push({ value: 'weighted average', label: 'weighted average', position: 'append'});\n this.functions.push({ value: 'date first changed', label: 'date first changed', position: 'append'});\n this.functions.push({ value: 'date last changed', label: 'date last changed', position: 'append'});\n this.functions.push({ value: 'date next changed', label: 'date next changed', position: 'append'});\n this.functions.push({ value: 'days was', label: 'days was', position: 'append'});\n this.functions.push({ value: 'floor', label: 'floor', position: 'prepend'});\n this.functions.push({ value: 'ceiling', label: 'ceiling', position: 'prepend'});\n this.functions.push({ value: 'decimals', label: 'decimals', position: 'append'});\n this.functions.push({ value: 'size', label: 'size', position: 'append'});\n\n if (this.computeRow.field.type === 'DATE') {\n this.functions.push({ value: 'year', label: 'year', position: 'append'});\n this.functions.push({ value: 'month', label: 'month', position: 'append'});\n this.functions.push({ value: 'day', label: 'day', position: 'append'});\n this.functions.push({ value: 'date', label: 'date', position: 'append'});\n this.functions.push({ value: 'time', label: 'time', position: 'append'});\n this.functions.push({ value: 'week day', label: 'week day', position: 'append'});\n this.functions.push({ value: 'year day', label: 'year day', position: 'append'});\n this.functions.push({ value: 'week', label: 'week', position: 'append'});\n this.functions.push({ value: 'hours', label: 'hours', position: 'append'});\n this.functions.push({ value: 'minutes', label: 'minutes', position: 'append'});\n this.functions.push({ value: 'seconds', label: 'seconds', position: 'append'});\n this.functions.push({ value: 'as years', label: 'as years', position: 'append'});\n this.functions.push({ value: 'as months', label: 'as months', position: 'append'});\n this.functions.push({ value: 'as days', label: 'as days', position: 'append'});\n this.functions.push({ value: 'days in month', label: 'days in month', position: 'append'});\n this.functions.push({ value: 'days in year', label: 'days in year', position: 'append'});\n this.functions.push({ value: 'anniversary', label: 'anniversary', position: 'append'});\n this.functions.push({ value: 'period', label: 'period', position: 'append'});\n }\n\n if (this.computeRow.field.type === 'RELATION') {\n this.functions.push({ value: 'sum', label: 'sum', position: 'append'});\n this.functions.push({ value: 'avg', label: 'avg', position: 'append'});\n this.functions.push({ value: 'instance count of', label: 'instance count of', position: 'prepend'});\n this.functions.push({ value: 'first', label: 'first', position: 'append'});\n this.functions.push({ value: 'last', label: 'last', position: 'append'});\n }\n this.handleFieldChange();\n }\n\n onOperatorChange() {\n if (this.isLast && this.computeRow.operator !== '') {\n this.onAddNewRowEvent.emit({ computeRow: this.computeRow });\n }\n this.handleFieldChange();\n }\n\n clearField() {\n this.computeRow.field.text = '';\n this.computeRow.field.type = 'TEXT';\n this.computeRow.function = '';\n this.handleFieldChange();\n }\n}\n","
          \n
          \n
          \n {{'Type' | translate}}\n
          \n
          \n \n \n \n
          \n
          \n
          \n \n \n \n \n \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n\n
          \n
          \n
          \n  \n
          \n \n
          \n
          \n
          \n","import { ChangeDetectorRef, Component, Input, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { LMLoggerService, LMSpecService } from '@services/index';\nimport { SohoAlertDirective, SohoMessageService, SohoSpinboxComponent } from 'ids-enterprise-ng';\nimport { LMComputeBuilderService } from './services';\nimport * as urltemplate from 'url-template';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'lm-compute-builder',\n templateUrl: './lm-compute-builder.component.html',\n styleUrls: [ './lm-compute-builder.component.scss' ]\n})\nexport class LMComputeBuilderComponent implements OnInit, OnDestroy {\n\n @ViewChild(SohoSpinboxComponent) spinboxComponent: SohoSpinboxComponent;\n\n @ViewChild('size', { read: SohoAlertDirective }) sizeAlert: SohoAlertDirective;\n @ViewChild('decimal', { read: SohoAlertDirective }) decimalAlert: SohoAlertDirective;\n @ViewChild('fieldName', { read: SohoAlertDirective }) fieldNameAlert: SohoAlertDirective;\n @ViewChild('fieldType', { read: SohoAlertDirective }) fieldTypeAlert: SohoAlertDirective;\n @ViewChild('computePreview', { read: SohoAlertDirective }) generatedLplAlert: SohoAlertDirective;\n\n @Input() businessClass: string;\n @Input() includeAuditFields: boolean;\n @Input() lookupUrl: string;\n @Input() fieldSearchUrl: string;\n @Input() lplValidationUrl: string;\n @Input() isCustomCompute: boolean;\n @Input() customComputeLpl: string;\n @Input() resourceId: string;\n\n private _computeRows = new Array();\n private _operators = new Array();\n\n generatedComputeLpl: string;\n\n isSizeReadOnly = false;\n isDecimalReadOnly = false;\n\n private compiledValidationUrl: string;\n fieldNameValidateEventDebouncer$ = new Subject();\n\n // Custom Compute properties\n customCompute: LMCustomCompute = {\n fieldName: '',\n fieldType: ''\n };\n\n fieldTypes: Object[] = [\n { value: 'Date', label: Soho.Locale.translate('Date') },\n { value: 'Decimal', label: Soho.Locale.translate('DecimalLabel') },\n { value: 'Unsigned Decimal', label: Soho.Locale.translate('UnsignedDecimalLabel') },\n { value: 'Integer', label: Soho.Locale.translate('IntegerLabel') },\n { value: 'Numeric', label: Soho.Locale.translate('NumericLabel') },\n { value: 'Percent', label: Soho.Locale.translate('PercentLabel') },\n { value: 'Unsigned Percent', label: Soho.Locale.translate('UnsignedPercentLabel') },\n { value: 'Period', label: Soho.Locale.translate('Period') },\n { value: 'Time', label: Soho.Locale.translate('Time') }\n ];\n\n get computeRows(): Array {\n return this._computeRows;\n }\n\n get operators(): Array {\n return this._operators;\n }\n\n constructor(private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private changeDetectorRef: ChangeDetectorRef,\n private sohoMessageService: SohoMessageService,\n private lmComputeBuilderService: LMComputeBuilderService) { }\n\n ngOnInit(): void {\n if (this.customComputeLpl) {\n this.customCompute = this.lmComputeBuilderService.parseCustomComputeLpl(this.customComputeLpl, this.businessClass, this.fieldSearchUrl);\n this.computeRows.push({ field: { text: '', type: 'TEXT' }, operator: '', type: 'field' });\n this.handleFieldType();\n } else {\n this.computeRows.push({ field: { text: '', type: 'TEXT' }, operator: '', type: 'field' });\n }\n\n this.isDecimalReadOnly = true;\n this.fieldNameValidateEventDebouncer$\n .pipe(\n filter(() => !!this.customCompute.fieldName),\n debounceTime(500))\n .subscribe(() => this.validateFieldName(this.customCompute.fieldName));\n }\n\n ngOnDestroy() {\n this.fieldNameValidateEventDebouncer$.complete();\n }\n\n onRemoveButtonEvent(event: LMComputeBuilderRemoveRowEvent, isFirst: boolean) {\n if (!isFirst) {\n this.computeRows.splice(this.computeRows.indexOf(event.computeRow), 1);\n } else {\n this.computeRows[ 0 ].field.text = '';\n this.computeRows[ 0 ].field.type = 'TEXT';\n this.computeRows[ 0 ].function = '';\n this.computeRows[ 0 ].operator = '';\n this.computeRows[ 0 ].type = 'field';\n }\n this.onComputeRowUpdate();\n }\n\n onAddNewRowEvent() {\n this.computeRows.push({ field: { text: '', type: 'TEXT' }, operator: '', type: 'field' });\n this.changeDetectorRef.detectChanges();\n }\n\n onComputeRowUpdate() {\n // if (this.isCustomCompute) {\n this.generatedComputeLpl = this.lmComputeBuilderService.convertComputeRowCriteria(this.computeRows, this.customCompute);\n\n if (this.generatedLplAlert) {\n this.generatedLplAlert.removeAllMessages();\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.lplValidationUrl);\n this.compiledValidationUrl = compiledUrlTemplate.expand({ resourceId: this.generatedComputeLpl });\n\n this.lmComputeBuilderService.computeIsValid(this.compiledValidationUrl, this.businessClass, this.generatedComputeLpl, 'compute')\n .subscribe(result => {\n if (result.lplStatus && result.lplStatus !== 'LPL_VALID' && result.validationError && this.generatedLplAlert) {\n if (this.isCustomCompute) {\n this.generatedLplAlert.addInlineMessage(result.validationError.errorDescription);\n }\n }\n });\n // }\n this.changeDetectorRef.detectChanges();\n }\n\n // Would not work if we add a type in the parameter.\n copyToClipboard(previewElement) {\n previewElement.textarea.element.select();\n document.execCommand('copy');\n previewElement.element.nativeElement.setSelectionRange(0, 0);\n }\n\n handleFieldType(value?: string) {\n\n this.customCompute.fieldType = value ? value : this.customCompute.fieldType;\n\n if (this.customCompute.fieldType === 'Date') {\n\n this.customCompute.size = '8';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = true;\n this.isDecimalReadOnly = true;\n\n } else if (this.customCompute.fieldType === 'Decimal'\n || this.customCompute.fieldType === 'Unsigned Decimal') {\n\n this.customCompute.size = '';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = false;\n } else if (this.customCompute.fieldType === 'Integer') {\n\n this.customCompute.size = '';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = true;\n } else if (this.customCompute.fieldType === 'Numeric') {\n\n this.customCompute.size = '';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = true;\n\n } else if (this.customCompute.fieldType === 'Percent'\n || this.customCompute.fieldType === 'Unsigned Percent') {\n\n this.customCompute.size = '';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = false;\n\n } else if (this.customCompute.fieldType === 'Period'\n || this.customCompute.fieldType === 'Time') {\n\n this.customCompute.size = '6';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = true;\n this.isDecimalReadOnly = true;\n }\n\n this.handleFieldChangedEvent();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private validateFieldName(fieldName: string) {\n if (fieldName) {\n const result = this.lmComputeBuilderService.validateFieldName(fieldName);\n if (result !== '' && this.fieldNameAlert) {\n this.fieldNameAlert.addInlineMessage(result);\n }\n }\n }\n\n handleFieldNameEvent(value: string) {\n this.customCompute.fieldName = value;\n if (value) {\n this.fieldNameValidateEventDebouncer$.next();\n }\n this.handleFieldChangedEvent();\n }\n\n handleSizeEvent(value: string) {\n this.customCompute.size = value;\n this.handleFieldChangedEvent();\n }\n\n handleDecimalEvent(value: string) {\n this.customCompute.decimal = value;\n this.handleFieldChangedEvent();\n }\n\n private handleFieldChangedEvent() {\n this.removeAlertMessages();\n this.generatedComputeLpl = this.lmComputeBuilderService.convertComputeRowCriteria(this.computeRows, this.customCompute);\n }\n\n private removeAlertMessages() {\n if (this.sizeAlert) {\n this.sizeAlert.removeAllMessages();\n }\n\n if (this.decimalAlert) {\n this.decimalAlert.removeAllMessages();\n }\n\n if (this.fieldNameAlert) {\n this.fieldNameAlert.removeAllMessages();\n }\n\n if (this.fieldTypeAlert) {\n this.fieldTypeAlert.removeAllMessages();\n }\n\n if (this.generatedLplAlert) {\n this.generatedLplAlert.removeAllMessages();\n }\n }\n\n handleValidationEvent() {\n this.removeAlertMessages();\n\n if (this.customCompute.fieldType === 'Decimal'\n || this.customCompute.fieldType === 'Unsigned Decimal'\n || this.customCompute.fieldType === 'Percent'\n || this.customCompute.fieldType === 'Unsigned Percent') {\n\n if (!this.customCompute.decimal) {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueRequired'));\n }\n }\n\n if (this.customCompute.decimal && this.customCompute.size\n || this.customCompute.decimal && !this.customCompute.size) {\n\n if (this.customCompute.size) {\n const decimal: number = +this.customCompute.decimal;\n const size: number = +this.customCompute.size;\n\n if (decimal > size) {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueExceeds'));\n }\n }\n } else {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueExceeds'));\n }\n }\n }\n }\n\n if (this.customCompute.fieldType === 'Integer') {\n if (this.customCompute.size) {\n const size: number = +this.customCompute.size;\n\n if (size !== 1\n && size !== 2\n && size !== 4) {\n this.sizeAlert.addInlineMessage(Soho.Locale.translate('ValidIntegerSize'));\n }\n }\n }\n\n if (!this.customCompute.size && this.sizeAlert) {\n this.sizeAlert.addInlineMessage(Soho.Locale.translate('SizeRequired'));\n }\n\n if (!this.customCompute.fieldName && this.fieldNameAlert) {\n this.fieldNameAlert.addInlineMessage(Soho.Locale.translate('FieldNameRequired'));\n }\n\n if (!this.customCompute.fieldType && this.fieldTypeAlert) {\n this.fieldTypeAlert.addInlineMessage(Soho.Locale.translate('FieldTypeRequired'));\n }\n }\n\n hasError(): boolean {\n\n if (this.sizeAlert.getMessage()\n || this.decimalAlert.getMessage()\n || this.fieldNameAlert.getMessage()\n || this.fieldTypeAlert.getMessage()\n || this.generatedLplAlert.getMessage()) {\n return true;\n }\n }\n}\n","
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n  \n
          \n {{ 'Copy' | translate }}\n
          \n
          \n
          \n \n \n \n \n
          \n\n","import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { SohoAlertDirective, SohoMessageService, SohoSpinboxComponent } from 'ids-enterprise-ng';\nimport { LMLoggerService, LMSpecService } from '@app/services';\nimport { LMComputeBuilderService } from './services';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport * as urltemplate from 'url-template';\nimport { Subject } from 'rxjs';\nimport {debounceTime, filter, switchMap} from 'rxjs/operators';\n\n@Component({\n selector: 'lm-derived-compute-builder',\n templateUrl: './lm-derived-compute-builder.component.html',\n styleUrls: ['./lm-derived-compute-builder.component.scss']\n})\nexport class LMDerivedComputeBuilderComponent implements OnInit, OnDestroy {\n\n @ViewChild('definition', {read: SohoAlertDirective}) definitionAlert: SohoAlertDirective;\n @ViewChild('size', {read: SohoAlertDirective}) sizeAlert: SohoAlertDirective;\n @ViewChild('decimal', {read: SohoAlertDirective}) decimalAlert: SohoAlertDirective;\n @ViewChild('fieldName', {read: SohoAlertDirective}) fieldNameAlert: SohoAlertDirective;\n @ViewChild('fieldType', {read: SohoAlertDirective}) fieldTypeAlert: SohoAlertDirective;\n\n @Input() businessClass: string;\n @Input() lookupUrl: string;\n @Input() lplValidationUrl: string;\n @Input() derivedLpl: string;\n @Input() resourceId: string;\n\n preview: string;\n\n isSizeReadOnly = false;\n isDecimalReadOnly = false;\n\n private compiledValidationUrl: string;\n\n private queryValidateEventDebouncer$ = new Subject();\n private fieldNameValidateEventDebouncer$ = new Subject();\n\n // Custom Compute properties\n customCompute: LMCustomCompute = {\n fieldName: '',\n fieldType: '',\n size: '',\n decimal: ''\n };\n\n fieldTypes: Object[] = [\n { value: 'Date', label: Soho.Locale.translate('Date')},\n { value: 'Decimal', label: Soho.Locale.translate('DecimalLabel')},\n { value: 'Unsigned Decimal', label: Soho.Locale.translate('UnsignedDecimalLabel')},\n { value: 'Integer', label: Soho.Locale.translate('IntegerLabel')},\n { value: 'Numeric', label: Soho.Locale.translate('NumericLabel')},\n { value: 'Percent', label: Soho.Locale.translate('PercentLabel')},\n { value: 'Unsigned Percent', label: Soho.Locale.translate('UnsignedPercentLabel')},\n { value: 'Period', label: Soho.Locale.translate('Period')},\n { value: 'Time', label: Soho.Locale.translate('Time')}\n ];\n\n constructor(private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private changeDetectorRef: ChangeDetectorRef,\n private sohoMessageService: SohoMessageService,\n private lmComputeBuilderService: LMComputeBuilderService,\n private lmFieldUtilService: LMFieldUtilService) { }\n\n ngOnInit(): void {\n this.isDecimalReadOnly = true;\n\n if (this.derivedLpl) {\n this.customCompute = this.lmComputeBuilderService.parseDerivedLpl(this.derivedLpl);\n this.handleFieldType();\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.lplValidationUrl);\n this.compiledValidationUrl = compiledUrlTemplate.expand({ resourceId: this.resourceId});\n\n this.queryValidateEventDebouncer$\n .pipe(\n debounceTime(250),\n switchMap((lpl) => this.lmComputeBuilderService.computeIsValid(this.compiledValidationUrl, this.businessClass, lpl, 'derived'))\n ).subscribe((result: LMLplValidationResponse) => {\n if (this.definitionAlert) {\n this.definitionAlert.removeAllMessages();\n }\n\n if (result.lplStatus\n && result.lplStatus !== 'LPL_VALID'\n && result.validationError\n && this.definitionAlert) {\n this.definitionAlert.addInlineMessage(result.validationError.errorDescription);\n }\n this.handleFieldChangedEvent();\n });\n\n this.fieldNameValidateEventDebouncer$\n .pipe(\n filter(() => !!this.customCompute.fieldName),\n debounceTime(500))\n .subscribe(() => this.validateFieldName(this.customCompute.fieldName));\n }\n\n ngOnDestroy(): void {\n this.queryValidateEventDebouncer$.complete();\n this.fieldNameValidateEventDebouncer$.complete();\n }\n\n handleFieldType(value?: string) {\n\n this.customCompute.fieldType = value ? value : this.customCompute.fieldType;\n this.customCompute.size = this.customCompute.size || '';\n this.customCompute.decimal = this.customCompute.decimal || '';\n\n if (this.customCompute.fieldType === 'Date') {\n\n this.customCompute.size = '8';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = true;\n this.isDecimalReadOnly = true;\n\n } else if (this.customCompute.fieldType === 'Decimal'\n || this.customCompute.fieldType === 'Unsigned Decimal') {\n\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = false;\n } else if (this.customCompute.fieldType === 'Integer') {\n\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = true;\n } else if (this.customCompute.fieldType === 'Numeric') {\n\n this.customCompute.decimal = '';\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = true;\n\n } else if (this.customCompute.fieldType === 'Percent'\n || this.customCompute.fieldType === 'Unsigned Percent') {\n\n this.isSizeReadOnly = false;\n this.isDecimalReadOnly = false;\n\n } else if (this.customCompute.fieldType === 'Period'\n || this.customCompute.fieldType === 'Time') {\n\n this.customCompute.size = '6';\n this.customCompute.decimal = '';\n this.isSizeReadOnly = true;\n this.isDecimalReadOnly = true;\n }\n\n this.handleFieldChangedEvent();\n\n this.changeDetectorRef.markForCheck();\n }\n\n handleFieldNameEvent(value: string) {\n this.customCompute.fieldName = value;\n\n if (value) {\n this.fieldNameValidateEventDebouncer$.next();\n }\n this.handleFieldChangedEvent();\n }\n\n handleSizeEvent(value: string) {\n this.customCompute.size = value;\n this.handleFieldChangedEvent();\n }\n\n handleDecimalEvent(value: string) {\n this.customCompute.decimal = value;\n this.handleFieldChangedEvent();\n }\n\n handleLplTextEvent(value: string) {\n this.customCompute.computeLpl = value;\n const lpl = this.lmComputeBuilderService.convertDerivedComputeCriteria(this.customCompute);\n this.queryValidateEventDebouncer$.next(lpl);\n }\n\n private handleFieldChangedEvent() {\n this.removeAlertMessages();\n this.preview = this.lmComputeBuilderService.convertDerivedComputeCriteria(this.customCompute);\n }\n\n private removeAlertMessages() {\n if (this.sizeAlert) {\n this.sizeAlert.removeAllMessages();\n }\n\n if (this.decimalAlert) {\n this.decimalAlert.removeAllMessages();\n }\n\n if (this.fieldNameAlert) {\n this.fieldNameAlert.removeAllMessages();\n }\n\n if (this.fieldTypeAlert) {\n this.fieldTypeAlert.removeAllMessages();\n }\n }\n\n handleValidationEvent() {\n\n this.removeAlertMessages();\n\n if (this.customCompute.fieldType === 'Decimal'\n || this.customCompute.fieldType === 'Unsigned Decimal'\n || this.customCompute.fieldType === 'Percent'\n || this.customCompute.fieldType === 'Unsigned Percent') {\n\n if (!this.customCompute.decimal) {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueRequired'));\n }\n }\n\n if (this.customCompute.decimal && this.customCompute.size\n || this.customCompute.decimal && !this.customCompute.size) {\n\n if (this.customCompute.size) {\n const decimal: number = +this.customCompute.decimal;\n const size: number = +this.customCompute.size;\n\n if (decimal > size) {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueExceeds'));\n }\n }\n } else {\n if (this.decimalAlert) {\n this.decimalAlert.addInlineMessage(Soho.Locale.translate('DecimalValueExceeds'));\n }\n }\n }\n }\n\n if (this.customCompute.fieldType === 'Integer') {\n if (this.customCompute.size) {\n const size: number = +this.customCompute.size;\n\n if (size !== 1\n && size !== 2\n && size !== 4) {\n this.sizeAlert.addInlineMessage(Soho.Locale.translate('ValidIntegerSize'));\n }\n }\n }\n\n if (!this.customCompute.size) {\n this.sizeAlert.addInlineMessage(Soho.Locale.translate('SizeRequired'));\n }\n\n if (!this.customCompute.fieldName) {\n this.fieldNameAlert.addInlineMessage(Soho.Locale.translate('FieldNameRequired'));\n }\n\n if (!this.customCompute.fieldType) {\n this.fieldTypeAlert.addInlineMessage(Soho.Locale.translate('FieldTypeRequired'));\n }\n }\n\n private validateFieldName(fieldName: string) {\n if (fieldName) {\n let result = this.lmComputeBuilderService.validateFieldName(fieldName)\n if (result !== '' && this.fieldNameAlert) {\n this.fieldNameAlert.addInlineMessage(result);\n }\n }\n }\n\n hasError(): boolean {\n if (this.sizeAlert.getMessage()\n || this.decimalAlert.getMessage()\n || this.fieldNameAlert.getMessage()\n || this.fieldTypeAlert.getMessage()\n || this.definitionAlert.getMessage()) {\n return true;\n }\n }\n}\n","
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n","export * from './lm-compute-builder.service';\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMComputeBuilderComponent } from '@modal/compute-builder/lm-compute-builder.component';\nimport { LMDerivedComputeBuilderComponent } from '@modal/compute-builder/lm-derived-compute-builder.component';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { LMFormRequest } from '@form/index';\nimport { FormRequestType } from '@app/utils';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\n\n@Injectable()\nexport class LMComputeBuilderService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private http: HttpClient,\n private lmFormatUtilService: LMFormatUtilService) { }\n\n public openComputeBuilderDialog(busclass: string, fieldLookUpUrl: string, fieldSearchUrl: string,\n lplValidationUrl: string, fieldHasComputeLpl: boolean, isCustomCompute = false, includeAuditFields: boolean, resourceId?: string, customComputeLpl?: string): Observable {\n let lmComputeBuilderComponentRef: LMComputeBuilderComponent;\n const returnQuery = new Subject();\n\n const closeModalWith = (lpl, result, modal) => {\n if (result === 'Ok' && isCustomCompute && lmComputeBuilderComponentRef.hasError()) {\n return;\n }\n returnQuery.next({lplQuery: lpl, action: result});\n modal.close(true);\n returnQuery.complete();\n };\n\n let buttons = [];\n\n // Create modal button\n if (fieldHasComputeLpl && !isCustomCompute) {\n buttons = [\n {\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, 'Cancel', modal);\n }\n },\n {\n text: Soho.Locale.translate('Append'),\n click: (e, modal) => {\n closeModalWith(lmComputeBuilderComponentRef.generatedComputeLpl, 'Append', modal);\n },\n isDefault: true,\n },\n {\n text: Soho.Locale.translate('Overwrite'),\n click: (e, modal) => {\n closeModalWith(lmComputeBuilderComponentRef.generatedComputeLpl, 'Overwrite', modal);\n },\n isDefault: true,\n }\n ];\n\n } else {\n buttons = [\n {\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, 'Cancel', modal);\n }\n },\n {\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n lmComputeBuilderComponentRef.handleValidationEvent();\n closeModalWith(lmComputeBuilderComponentRef.generatedComputeLpl, 'Ok', modal);\n },\n isDefault: true,\n },\n ];\n }\n\n this.sohoModalDialogService\n .modal(LMComputeBuilderComponent)\n .title(Soho.Locale.translate('LplComputeBuilderTitle'))\n .buttons(buttons)\n .open()\n .apply((dialogComponent: LMComputeBuilderComponent) => {\n lmComputeBuilderComponentRef = dialogComponent;\n lmComputeBuilderComponentRef.businessClass = busclass;\n lmComputeBuilderComponentRef.lookupUrl = fieldLookUpUrl;\n lmComputeBuilderComponentRef.fieldSearchUrl = fieldSearchUrl;\n lmComputeBuilderComponentRef.lplValidationUrl = lplValidationUrl;\n lmComputeBuilderComponentRef.isCustomCompute = isCustomCompute;\n lmComputeBuilderComponentRef.resourceId = resourceId;\n lmComputeBuilderComponentRef.customComputeLpl = customComputeLpl;\n lmComputeBuilderComponentRef.includeAuditFields = includeAuditFields;\n });\n\n return returnQuery.asObservable();\n }\n\n public openDerivedComputeBuilderDialog(busclass: string,\n lplValidationUrl: string, resourceId: string, derivedLpl?: string): Observable {\n let lmDerivedComputeBuilderComponentRef: LMDerivedComputeBuilderComponent;\n const returnQuery = new Subject();\n\n const closeModalWith = (lpl, result, modal) => {\n if (result === 'Ok' && lmDerivedComputeBuilderComponentRef.hasError()) {\n return;\n }\n returnQuery.next({lplQuery: lpl, action: result});\n modal.close(true);\n returnQuery.complete();\n };\n\n // Create modal button\n const buttons = [\n {\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, 'Cancel', modal);\n }\n },\n {\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n lmDerivedComputeBuilderComponentRef.handleValidationEvent();\n closeModalWith(lmDerivedComputeBuilderComponentRef.preview, 'Ok', modal);\n },\n isDefault: true,\n },\n ];\n\n this.sohoModalDialogService\n .modal(LMDerivedComputeBuilderComponent)\n .title(Soho.Locale.translate('LplDerivedBuilderTitle'))\n .buttons(buttons)\n .open()\n .apply((dialogComponent: LMDerivedComputeBuilderComponent) => {\n lmDerivedComputeBuilderComponentRef = dialogComponent;\n lmDerivedComputeBuilderComponentRef.businessClass = busclass;\n lmDerivedComputeBuilderComponentRef.lplValidationUrl = lplValidationUrl;\n lmDerivedComputeBuilderComponentRef.resourceId = resourceId;\n lmDerivedComputeBuilderComponentRef.derivedLpl = derivedLpl;\n });\n\n return returnQuery.asObservable();\n }\n\n public convertComputeRowCriteria(computeRows: Array, customCompute?: LMCustomCompute): string {\n let query = ``;\n if (customCompute && ( customCompute.fieldName || customCompute.fieldType)) {\n query = `${customCompute.fieldName} is a ComputeField\\n`;\n if (customCompute.fieldType === 'Period'\n || customCompute.fieldType === 'Time'\n || customCompute.fieldType === 'Date') {\n query += `\\ttype is ${customCompute.fieldType}\\n`;\n } else if (customCompute.fieldType) {\n query += `\\ttype is ${customCompute.fieldType} size ${customCompute.size}${customCompute.decimal ? `.${customCompute.decimal}` : ''}\\n`;\n }\n\n query += `\\t`;\n }\n\n if (!this.emptyRows(computeRows)) {\n query += '(';\n computeRows.forEach((computeRow, index, array) => {\n\n let field = '';\n if (computeRow.type === 'string') {\n field = `\"${computeRow.field.text}\"`;\n } else {\n field = `${computeRow.field.text}`\n }\n\n if (index === (array.length - 1)) {\n if (computeRow.function) {\n if (computeRow.position === 'append') {\n query += `${field} ${computeRow.function}`;\n } else if (computeRow.position === 'prepend') {\n query += `${computeRow.function} ${field}`;\n }\n } else {\n query += `${field}`;\n }\n } else {\n if (computeRow.function) {\n if (computeRow.position === 'append') {\n query += `${field} ${computeRow.function} `;\n } else if (computeRow.position === 'prepend') {\n query += `${computeRow.function} ${field} `;\n }\n } else {\n query += `${field} `;\n }\n }\n\n if (computeRow.operator) {\n query += `${computeRow.operator} `;\n }\n });\n query += ')';\n }\n return query;\n }\n\n public convertDerivedComputeCriteria(customCompute: LMCustomCompute): string {\n let query = ``;\n if (customCompute) {\n query = `${customCompute.fieldName} is a DerivedField\\n`;\n if (customCompute.fieldType === 'Period'\n || customCompute.fieldType === 'Time'\n || customCompute.fieldType === 'Date') {\n query += `\\ttype is ${customCompute.fieldType}\\n`;\n } else {\n query += `\\ttype is ${customCompute.fieldType} size ${customCompute.size}${customCompute.decimal ? `.${customCompute.decimal}` : ''}\\n`;\n }\n\n if (customCompute.computeLpl) {\n const lines = customCompute.computeLpl.split('\\n');\n lines.forEach(value => {\n query += `\\t${value}\\n`;\n });\n }\n }\n\n return query;\n }\n\n private emptyRows(computeRows: Array): boolean {\n return (computeRows.filter( computeRow => (computeRow.field.text !== '')).length === 0)\n }\n\n public parseDerivedLpl(derivedLpl: string): LMCustomCompute {\n const customCompute: LMCustomCompute = {\n fieldName: '',\n fieldType: '',\n size: '',\n decimal: '',\n computeLpl: ''\n };\n\n const lpl = derivedLpl.split('\\n');\n lpl.forEach(value => {\n\n if (value.includes(' is a DerivedField')) {\n customCompute.fieldName = value.substring(0, value.indexOf(' is a DerivedField')).trim();\n }\n\n if (value.includes('type is ')) {\n if (value.includes(' size')) {\n customCompute.fieldType = value.substring(value.indexOf('type is ') + 8, value.indexOf(' size'));\n\n const size = value.substring(value.indexOf(' size ') + 6, value.indexOf('.') !== -1 ? value.indexOf('.') + 2 : value.length);\n\n if (size.indexOf('.') !== -1) {\n customCompute.size = size.split('.')[0];\n customCompute.decimal = size.split('.')[1];\n } else {\n customCompute.size = size.trim();\n }\n\n } else {\n customCompute.fieldType = value.substring(value.indexOf('type is ') + 8, value.length).trim();\n }\n }\n\n if (!value.includes(' is a DerivedField') && !value.includes('type is ')) { // Condition\n if (value.startsWith('\\t\\t')) {\n customCompute.computeLpl += value.substring(2, value.length) + '\\n'; // to remove the starting tabs\n } else if (value.startsWith('\\t')) {\n customCompute.computeLpl += value.substring(1, value.length) + '\\n'; // to remove the starting tabs\n } else if (value.startsWith(' ')) {\n customCompute.computeLpl += value.substring(4, value.length) + '\\n'; // to remove the starting spaces\n } else {\n customCompute.computeLpl += value + '\\n';\n }\n }\n });\n\n return customCompute;\n }\n\n public parseCustomComputeLpl(customComputeLpl: string, businessClass: string, fieldSearchUrl: string): LMCustomCompute {\n const customCompute: LMCustomCompute = {\n fieldName: '',\n fieldType: '',\n size: '',\n decimal: ''\n };\n\n const lpl = customComputeLpl.split('\\n');\n lpl.forEach(value => {\n\n if (value.includes(' is a ComputeField')) {\n customCompute.fieldName = value.substring(0, value.indexOf(' is a ComputeField')).trim();\n }\n\n if (value.includes('type is ')) {\n if (value.includes(' size')) {\n customCompute.fieldType = value.substring(value.indexOf('type is ') + 8, value.indexOf(' size'));\n\n const size = value.substring(value.indexOf(' size ') + 6, value.indexOf('.') !== -1 ? value.indexOf('.') + 2 : value.length);\n\n if (size.indexOf('.') !== -1) {\n customCompute.size = size.split('.')[0];\n customCompute.decimal = size.split('.')[1];\n } else {\n customCompute.size = size.trim();\n }\n\n } else {\n customCompute.fieldType = value.substring(value.indexOf('type is ') + 8, value.length).trim();\n }\n }\n\n });\n return customCompute;\n }\n\n public computeIsValid(lplValidationUrl: string, busClass: string, lpl: string, computeType: string): Observable {\n const formRequest: LMFormRequest = {\n requestType: FormRequestType.ValidateCondition,\n param1: busClass,\n param2: lpl,\n isBusinessClassCompute: true,\n computeType\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return > this.http\n .post(lplValidationUrl, formRequest);\n }\n\n public validateFieldName(fieldName: string): string {\n const firstChar = fieldName.charAt(0);\n const isUpperCase = /^[A-Z]*$/.test(firstChar);\n const invalidChar = this.checkInvalidCharacter(fieldName);\n\n if (this.hasUnicodeCharacters(fieldName)) {\n return Soho.Locale.translate('FIELD_CONTAINS_INVALID_LPL_CHARACTER');\n }\n\n if (/^[A-Za-z]+$/.test(firstChar) && !isUpperCase) {\n return Soho.Locale.translate('FIELD_LC_ERROR_MESSAGE');\n }\n\n if (fieldName.indexOf(' ') >= 0) {\n return Soho.Locale.translate('FIELD_SPACE_CHAR_ERROR_MESSAGE');\n }\n\n if (invalidChar !== '') {\n return this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FIELD_INVALID_CHAR_ERROR_MESSAGE'), invalidChar);\n }\n\n return '';\n }\n\n private hasUnicodeCharacters(fieldName: string): boolean {\n for (let i = 0; i < fieldName.length; i++) {\n if (fieldName.charCodeAt( i ) > 127) {\n return true;\n }\n }\n return false;\n }\n\n private checkInvalidCharacter(fieldName: string): string {\n const invalidChar = fieldName.match(/[^\\w]|_/);\n if (invalidChar) {\n return invalidChar[0];\n }\n return '';\n }\n}\n","export * from './services';\nexport * from './lm-cube-cell-rel-test.component';\n","import { Component, Input } from '@angular/core';\nimport { LMCubeCellRelTestResult } from './lm-cube-cell-rel';\nimport { LMCubeCellRelService } from './services';\nimport { LMErrorUtilService } from '@services/utils';\nimport { LMMeasure } from '@modal/cubes/lm-cubes';\n\n@Component({\n selector: 'lm-cube-cell-rel-test',\n templateUrl: './lm-cube-cell-rel-test.component.html',\n})\n\nexport class LMCubeCellRelTestComponent {\n @Input() busClass: string;\n @Input() busClassTotalName: string;\n @Input() measures: Array;\n\n public measure: string;\n public testResult: string;\n\n constructor(\n private lmCubeCellRelService: LMCubeCellRelService,\n private lmErrorUtilService: LMErrorUtilService,\n ) {}\n\n public testMeasure() {\n if (!this.measures) {\n return;\n }\n this.lmCubeCellRelService.testMeasure(this.busClass, this.busClassTotalName, this.measure)\n .subscribe((response: LMCubeCellRelTestResult) => {\n if (response.error) {\n this.lmErrorUtilService.handleError(response.error);\n return;\n }\n this.testResult = response.value;\n });\n }\n}\n","\n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n \n \n {{ 'TestMeasure' | translate}}\n
          \n
          \n
          \n","export * from './lm-cube-cell-rel.service';\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { KeyedResource } from '@resources/keyed.resource';\nimport { LMErrorUtilService, LMUrlUtilService } from '@services/utils';\nimport { AppConstants, FormRequestType, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { catchError } from 'rxjs/operators';\nimport {\n LMCubeCellRelationDefinition,\n LMPrintLPL\n} from '@modal/cube-cell-rel/lm-cube-cell-rel';\nimport {\n LMCubeRequest,\n LMDimension, LMDimensionMappingResult,\n LMMeasure,\n} from '@modal/cubes/lm-cubes';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMCubeDimensionsMappingComponent } from '@modal/cubes/lm-cube-dimensions-mapping.component';\nimport { LMCubeCellRelTestComponent } from '@modal/cube-cell-rel/lm-cube-cell-rel-test.component';\n\n@Injectable()\nexport class LMCubeCellRelService {\n constructor(\n private http: HttpClient,\n private sohoModalDialogService: SohoModalDialogService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n ) {}\n\n public buildCubeCellRelDimensionsDialog(placeHolder: ViewContainerRef,\n busClassTotal: string,\n busClass: string,\n definition: string,\n dimensionMappingInput?: Array): Observable {\n const relationDefinition = new Subject();\n const closeModalWith = (result: LMCubeCellRelationDefinition, modal) => {\n modal.close(true);\n relationDefinition.next(result);\n relationDefinition.complete();\n }\n\n this.getDimensionMapping(busClass, definition, dimensionMappingInput)\n .subscribe((dimensionMappingResult: LMDimensionMappingResult) => {\n let cubeCellRelDimensionsDialogRef: LMCubeDimensionsMappingComponent;\n\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId(['lm-cube-cell-rel', 'dimensions', LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, modal);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId(['lm-cube-cell-rel', 'dimensions', LMDialogButtonKey.OK]),\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n const newDimensionMapping = cubeCellRelDimensionsDialogRef.getDimensionMapping();\n this.getRelationLPL(busClass, busClassTotal, newDimensionMapping)\n .subscribe((lplResponse: LMPrintLPL) => {\n if ((lplResponse as any).status === AppConstants.STATUS_SYSTEM_ERROR) {\n const lmError = (lplResponse as any);\n this.lmErrorUtilService.handleError(lmError.message, lmError.details, lmError.status);\n return;\n }\n const result: LMCubeCellRelationDefinition = {dimensionMapping: newDimensionMapping, relationLpl: lplResponse.relationLPL};\n closeModalWith(result, modal);\n },\n error => {\n this.lmErrorUtilService.handleUnexpectedError(error, placeHolder);\n });\n },\n isDefault: true,\n },\n ];\n\n const dialogTitle = busClass + ' ' + Soho.Locale.translate('Dimensions');\n this.sohoModalDialogService\n .modal(LMCubeDimensionsMappingComponent, placeHolder, {fullsize: 'responsive'})\n .title(dialogTitle)\n .buttons(buttons)\n .open()\n .apply((dialogComp: LMCubeDimensionsMappingComponent) => {\n cubeCellRelDimensionsDialogRef = dialogComp;\n cubeCellRelDimensionsDialogRef.cubeBusClass = busClass;\n cubeCellRelDimensionsDialogRef.message = dimensionMappingResult.message;\n // deep clone dimension mapping. On ok, the dimension mapping will be updated.\n cubeCellRelDimensionsDialogRef.dimensionMapping = JSON.parse(JSON.stringify(dimensionMappingResult.dimensionMapping));\n });\n });\n\n return relationDefinition.asObservable();\n }\n\n private getDimensionMapping(busClass: string, definition: string, dimensionMapping?: Array): Observable {\n if (!dimensionMapping) {\n const cubeCellRequest = Object.assign(\n {requestType: FormRequestType.CubeRelDimensionMapping},\n {busClass},\n {definition});\n return this.executeFormRequest(this.getRequestUrl(busClass), cubeCellRequest);\n }\n return of({dimensionMapping, message: 'cache'});\n }\n\n public getRequestUrl(busClass: string): string {\n const formResource = new KeyedResource({resourceType: 'form', resourceId: busClass});\n return this.lmUrlUtilService.buildUrl({ resource: formResource });\n }\n\n private executeFormRequest(url: string, cubeCellRequest: LMCubeRequest): Observable {\n return this.http\n .post(url, cubeCellRequest).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n private getRelationLPL(busClass: string, busClassTotal: string, dimensionMapping?: Array): Observable {\n const cubeCellRequest = Object.assign(\n {requestType: FormRequestType.CubeRelationLPL},\n {busClass},\n {busClassTotalName: busClassTotal},\n {dimensionMapping});\n return this.executeFormRequest(this.getRequestUrl(busClass), cubeCellRequest);\n }\n\n public getMeasures(busClass: string, measures?: Array): Observable> {\n if (!measures) {\n const cubeCellRequest = Object.assign(\n {requestType: FormRequestType.CubeRelGetMeasures},\n {busClass});\n return this.executeFormRequest(this.getRequestUrl(busClass), cubeCellRequest);\n } else {\n return of(measures);\n }\n }\n\n public testMeasure(busClass: string, busClassTotalName: string, measure: string): Observable {\n const cubeCellRequest = Object.assign(\n {requestType: FormRequestType.CubeRelTestMeasure},\n {busClass},\n {busClassTotalName},\n {measure});\n return this.executeFormRequest(this.getRequestUrl(busClass), cubeCellRequest);\n }\n\n public buildCubeCellRelMeasuresTestDialog(placeHolder: ViewContainerRef,\n busClassTotal: string,\n busClass: string,\n measuresInput?: Array): Observable> {\n const testMeasures = new Subject>();\n const closeModalWith = (result: Array, modal) => {\n modal.close(true);\n testMeasures.next(result);\n testMeasures.complete();\n }\n this.getMeasures(busClass, measuresInput)\n .subscribe((measures: Array) => {\n\n let cubeCellRelTestComponent: LMCubeCellRelTestComponent;\n\n const buttons = [\n // {\n // id: this.lmUniqueIdService.uniqueId(['lm-cube-cell-rel', 'measures', LMDialogButtonKey.CANCEL]),\n // text: Soho.Locale.translate('Cancel'),\n // click: (e, modal) => {\n // modal.close(true);\n // }\n // },\n {\n id: this.lmUniqueIdService.uniqueId(['lm-cube-cell-rel', 'measures', LMDialogButtonKey.OK]),\n text: Soho.Locale.translate('Close'),\n click: (e, modal) => {\n closeModalWith(measures, modal);\n },\n isDefault: true,\n },\n ];\n\n const dialogTitle = busClass + ' ' + Soho.Locale.translate('Measures');\n this.sohoModalDialogService\n .modal(LMCubeCellRelTestComponent, placeHolder, {fullsize: 'responsive'})\n .title(dialogTitle)\n .buttons(buttons)\n .open()\n .apply((dialogComp: LMCubeCellRelTestComponent) => {\n cubeCellRelTestComponent = dialogComp;\n cubeCellRelTestComponent.busClass = busClass;\n cubeCellRelTestComponent.busClassTotalName = busClassTotal;\n cubeCellRelTestComponent.measures = measures;\n });\n\n });\n return testMeasures.asObservable();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { SohoComponentsModule } from 'ids-enterprise-ng';\n\nimport { LMCubeDimensionsDialogComponent } from './lm-cube-dimensions-dialog.component';\nimport { LMCubePeriodOverrideDialogComponent } from './lm-cube-periodoverride-dialog.component';\nimport { LMCubeUtilService } from './lm-cube-util.service';\nimport { LMCubeDimensionRowComponent } from '@modal/cubes/lm-cube-dimension-row.component';\nimport { LMCubePeriodDimensionComponent } from '@modal/cubes/lm-cube-period-dimension.component';\nimport { LMCubeDimensionsMappingComponent } from '@modal/cubes/lm-cube-dimensions-mapping.component';\nimport { LMCommonModule } from '@app/lm-common.module';\nimport { LMCubeStructuresComponent } from '@modal/cubes/lm-cube-structures.component';\n\n@NgModule({\n declarations: [\n LMCubeDimensionsDialogComponent,\n LMCubePeriodOverrideDialogComponent,\n LMCubeStructuresComponent,\n LMCubeDimensionsMappingComponent,\n LMCubeDimensionRowComponent,\n LMCubePeriodDimensionComponent,\n ],\n providers: [LMCubeUtilService],\n imports: [FormsModule, CommonModule, SohoComponentsModule, LMCommonModule],\n exports: [\n LMCubeDimensionsDialogComponent,\n LMCubePeriodOverrideDialogComponent,\n LMCubeStructuresComponent,\n LMCubeDimensionsMappingComponent\n ]\n})\nexport class CubesModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { LMDimension } from '@modal/cubes/lm-cubes';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMCubeUtilService } from '@modal/cubes/lm-cube-util.service';\nimport { SohoAlertDirective } from 'ids-enterprise-ng';\n\n@Component({\n selector: 'lm-cube-dimension-row',\n templateUrl: './lm-cube-dimension-row.component.html',\n})\n\nexport class LMCubeDimensionRowComponent implements OnInit {\n @Input() cubeBusClass: string;\n @Input() dimension: LMDimension;\n @Input() structures: boolean;\n @Input() hasReportingBasis: boolean;\n @Input() topNodeBaseValue: string;\n\n public hasAlert: boolean;\n public get isState(): boolean {\n return this.dimension.type === 'state';\n }\n\n public get isBoolean(): boolean {\n return this.dimension.type === 'boolean';\n }\n\n public get isKeyField(): boolean {\n return this.dimension.type === 'keyfield';\n }\n\n public get isPeriod(): boolean {\n return this.dimension.type === 'period';\n }\n\n public get isText(): boolean {\n return this.dimension.type === 'simpletext';\n }\n\n public id: string;\n public selectListUrl: string;\n public getFieldsUrl: string;\n\n constructor(\n private lmCubeUtilService: LMCubeUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n ) {}\n\n ngOnInit() {\n this.id = this.lmUniqueIdService.uniqueId(['cube-cell-dimension', this.dimension.type, this.dimension.name]);\n if (!this.dimension.value) {\n // The empty string does not come thru in JSON response from server.\n this.dimension.value = '';\n }\n if (this.isKeyField) {\n this.selectListUrl = this.lmCubeUtilService.getSelectListUrl(this.dimension);\n this.getFieldsUrl = this.lmCubeUtilService.getRequestUrl(this.cubeBusClass);\n }\n this.hasAlert = this.dimension.override || false;\n }\n\n public fieldValueChanged(event) {\n if (this.structures && this.hasReportingBasis) {\n this.hasAlert = true;\n }\n }\n}\n","
          \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n \n
          \n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { SohoMessageService, SohoSwapListComponent } from 'ids-enterprise-ng';\nimport { LMDialogButtonKey, LMUniqueIdService } from '../../../utils';\n\n@Component({\n selector: 'lm-cube-dimensions-dialog',\n templateUrl: 'lm-cube-dimensions-dialog.component.html',\n styleUrls: [ 'lm-cube-dimensions-dialog.component.scss' ]\n})\n\n// export type LMCubeDimensionParent = 'cubeviewer' | 'reportpersonalization';\n\nexport class LMCubeDimensionsDialogComponent implements OnInit {\n @Input() listSpec: LMListSpec;\n @Input() dataViewSet: LMDataViewSet;\n @Input() listState: LMListState;\n @Input() parentContainer: string;\n\n public labelAvailable: string;\n public labelSelected: string;\n public labelLevels: string;\n public labelSuppressZeros: string;\n public labelSuppressCurPeriod: string;\n public labelShowTotal: string;\n public labelPivotName: string;\n public labelPreservePD: string;\n\n private periodDimCheck: string;\n private periodDimCheck2: string;\n private fixedDimCheck: string;\n private periodViewCheck: string;\n\n public available: Array = [];\n public current: Array = [];\n\n public pivotName: string;\n public maxLevels: number;\n public showLevels: number;\n public showTotal: boolean;\n public suppressZeros: boolean;\n public suppressCurPeriod: boolean;\n public preservePD: boolean;\n\n public hasDimensionLevels: boolean;\n public hasTotalNode: boolean;\n public hasSuppressZeros: boolean;\n public hasSuppressCurPeriod: boolean;\n public showPreservePD: boolean;\n\n private periodDimensions: Array = [];\n private hasPeriodView: boolean;\n private lastFixedIndex: number;\n\n private updateState: boolean;\n @ViewChild(SohoSwapListComponent, { static: true }) swapListComponent: SohoSwapListComponent;\n\n constructor(\n private sohoMessageService: SohoMessageService,\n private lmUniqueIdService: LMUniqueIdService\n ) {\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n private initialize(): void {\n this.labelAvailable = Soho.Locale.translate('AvailableDimensions');\n this.labelSelected = Soho.Locale.translate('DimensionTree');\n this.labelLevels = Soho.Locale.translate('ShowDimensionLevels');\n this.labelSuppressZeros = Soho.Locale.translate('SuppressZeros');\n this.labelSuppressCurPeriod = Soho.Locale.translate('SuppressCurrentPeriod');\n this.labelPreservePD = Soho.Locale.translate('PreservePivotDimensionsWhenFiltered');\n this.labelShowTotal = Soho.Locale.translate('ShowTotalNode');\n this.periodDimCheck = Soho.Locale.translate('PeriodDimensionCheck');\n this.periodDimCheck2 = Soho.Locale.translate('PeriodDimensionCheck2');\n this.fixedDimCheck = Soho.Locale.translate('FixedDimensionCheck');\n this.periodViewCheck = Soho.Locale.translate('PeriodViewCheck');\n\n const availableDims = this.dataViewSet.cubeInfo.availableDims;\n const currentDims = this.dataViewSet.cubeInfo.currentDims;\n this.showLevels = this.dataViewSet.showLevels || 0; // Used by both cube and tree. Not replicated in CubeInfo.\n this.showTotal = this.dataViewSet.cubeInfo.showTotal;\n this.suppressZeros = this.dataViewSet.cubeInfo.suppressZeros;\n this.suppressCurPeriod = this.dataViewSet.cubeInfo.suppressCurPeriod;\n this.preservePD =(this.listState.cubeOverrides?.dimensionOverrides?.preservePD) ? this.listState.cubeOverrides.dimensionOverrides.preservePD : false;\n this.maxLevels = (this.showTotal) ? currentDims.length + 1 : currentDims.length;\n\n if (this.listSpec.cubeOptions.pivotViews && this.listSpec.cubeOptions.pivotViews.length > 0){\n if (this.dataViewSet.cubeInfo.pivotView) {\n this.pivotName = this.dataViewSet.cubeInfo.pivotView;\n } else {\n this.pivotName = this.listSpec.cubeOptions.pivotViews.find((p) => p.default !== undefined && p.default).name;\n }\n }\n if (this.pivotName) {\n this.labelPivotName = Soho.Locale.translate('PivotView') + ': ' + this.listSpec.cubeOptions.pivotViews.find((p) => p.name === this.pivotName).label;\n }\n\n this.hasPeriodView = (this.listSpec.cubeOptions.periods !== undefined);\n this.hasSuppressCurPeriod = (this.listSpec.cubeOptions.hasPeriodDimension && !this.hasPeriodView) || this.parentContainer === 'reportpersonalization';\n this.hasDimensionLevels = this.parentContainer === 'cubeviewer';\n this.hasTotalNode = this.parentContainer === 'cubeviewer';\n this.hasSuppressZeros = true;\n this.showPreservePD = this.parentContainer === 'cubeviewer' && (this.listSpec.busListSpec.hasChildHierarchyDims || this.listSpec.busListSpec.searchForm !== undefined);\n\n this.lastFixedIndex = this.dataViewSet.cubeInfo.lastFixedIndex;\n\n availableDims.map(m => {\n this.available.push({ id: m.id, value: m.id, text: m.label });\n });\n\n currentDims.map(m => {\n this.current.push({ id: m.id, value: m.id, text: m.label });\n });\n\n availableDims.filter(availableDim => availableDim.isPeriod).forEach(item => this.periodDimensions.push(item.id));\n currentDims.filter(currentDim => currentDim.isPeriod).forEach(item => this.periodDimensions.push(item.id));\n\n this.updateState = false;\n }\n\n public onBeforeSwap(event: SohoSwapListBeforeSwapEvent) {\n if (!event.moved.items || event.moved.items.length === 0) {\n event.result = false;\n return;\n }\n\n // Before swap, validate the dimension tree.\n const swapItemId = event.moved.items[ 0 ].id;\n const filteredItem = this.swapListComponent.availableItems.filter((availableItem) => availableItem.id === swapItemId);\n if (filteredItem.length > 0) {\n // Can the selected items be added to the dimension tree?\n const thisArg = this;\n const periodItemsCount = event.moved.items.filter((item) => thisArg.periodDimensions.findIndex((period) => period === item.id) > -1).length;\n\n // The cubes can have more than one period dimension.\n // A period dimension is prevented from being added to the dimension tree if the CubeView has period Views.\n if (this.hasPeriodView && periodItemsCount > 0) {\n this.printMessage(this.periodViewCheck);\n event.result = false;\n return;\n }\n\n // *** This Check is not performed since the introduction of multiple period dimension feature\n // 1. Check the number of period dimensions in event items list\n // if (periodItemsCount > 1) {\n // // Cannot select more than one period dimension\n // this.printMessage(this.periodDimCheck);\n // event.result = false;\n // return;\n // }\n\n // *** This Check is not performed since the introduction of multiple period dimension feature\n // 2. Is there a period dimension in the selected items list already?\n // if (periodItemsCount === 1) {\n // let selectedPeriodItems = this.swapListComponent.selectedItems.filter((selectedItem) => thisArg.periodDimensions.findIndex((period) => period === selectedItem.id) > -1);\n // if (selectedPeriodItems.length > 0 ) {\n // this.printMessage(this.periodDimCheck2);\n // event.result = false;\n // return;\n // }\n // }\n } else {\n // Can the selected items be removed from the dimension tree?\n // 3. Fixed dimensions cannot be removed from the selected list.\n const firstSelectedIndex = this.swapListComponent.selectedItems.findIndex(selectedItem => selectedItem.id === event.moved.items[ 0 ].id);\n if (firstSelectedIndex <= this.lastFixedIndex) {\n this.printMessage(this.fixedDimCheck);\n event.result = false;\n return;\n }\n }\n event.result = true;\n }\n\n private printMessage(message: string) {\n const dialogId = 'DimensionTree';\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ];\n this.sohoMessageService\n .message()\n .message(message)\n .title(Soho.Locale.translate(dialogId))\n .buttons(buttons)\n .open();\n }\n\n public onDimensionSwapListUpdated(event: SohoSwapListSwapUpdateEvent) {\n // Swap list updated - Get the new dimension tree.\n // let updated = this.swapListComponent.selectedItems;\n this.maxLevels = (this.showTotal) ? this.swapListComponent.selectedItems.length + 1 : this.swapListComponent.selectedItems.length;\n this.updateState = true;\n\n if (this.listState.cubeOverrides?.fltrDimensions?.length) {\n const dimensionTree = this.swapListComponent.selectedItems.map(m => m.id).join(',');\n const filteredDimensions = this.listState.cubeOverrides.fltrDimensions.filter(dim => dimensionTree.indexOf(dim.fltrDimId) >= 0);\n if (filteredDimensions.length > 0 && !this.preservePD) {\n this.printMessage(Soho.Locale.translate('SetPreservePivotDimensionWhenFiltered'));\n }\n }\n }\n\n public onDirty(event: any) {\n this.updateState = true;\n }\n\n public onPristine(event: any) {\n // Checkbox unchecked calls onPristine. The value is changed from the initial state, so set updateState to true.\n this.updateState = true;\n }\n\n public onReset(): boolean {\n if (Object.keys(this.listState).length > 0 && this.listState.hasOwnProperty('cubeOverrides')) {\n this.listState.cubeOverrides.dimensionOverrides = {};\n return true;\n }\n return false;\n }\n\n public onApply(): boolean {\n if (this.updateState) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.dimensionOverrides = this.getCubeOverrides();\n }\n return this.updateState;\n }\n\n private getCubeOverrides(): LMCubeDimensionOverrides {\n const cubeDimensionOverrides: LMCubeDimensionOverrides = {};\n\n const dimensionTree = this.swapListComponent.selectedItems.map(m => m.id).join(',');\n cubeDimensionOverrides.dimensionsOverride = dimensionTree;\n cubeDimensionOverrides.showLevels = this.showLevels;\n cubeDimensionOverrides.suppressZeros = this.suppressZeros;\n cubeDimensionOverrides.showTotal = this.showTotal;\n cubeDimensionOverrides.suppressCurPeriod = this.suppressCurPeriod;\n cubeDimensionOverrides.preservePD = this.preservePD;\n cubeDimensionOverrides.overrideDims = true;\n\n return cubeDimensionOverrides;\n }\n\n public hasCubeDimensionsChanged(): boolean {\n // Used by report and personalization\n if (this.updateState) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.dimensionOverrides = {};\n let selectedItemsChanged = this.dataViewSet.cubeInfo.currentDims.length !== this.swapListComponent.selectedItems.length;\n if (!selectedItemsChanged) {\n this.swapListComponent.selectedItems.forEach((m, index) => {\n if (m.id !== this.dataViewSet.cubeInfo.currentDims[index].id) {\n selectedItemsChanged = true;\n }\n });\n }\n if (selectedItemsChanged) {\n this.listState.cubeOverrides.dimensionOverrides.dimensionsOverride = this.swapListComponent.selectedItems.map(m => m.id).join(',');\n this.listState.cubeOverrides.pivotView = this.pivotName || undefined;\n }\n\n if (this.suppressZeros !== this.dataViewSet.cubeInfo.suppressZeros) {\n this.listState.cubeOverrides.dimensionOverrides.suppressZeros = this.suppressZeros;\n }\n\n if (this.suppressCurPeriod !== this.dataViewSet.cubeInfo.suppressCurPeriod) {\n this.listState.cubeOverrides.dimensionOverrides.suppressCurPeriod = this.suppressCurPeriod;\n }\n }\n return this.updateState;\n }\n}\n","
          \n
          \n
          \n
          \n
          \n

          {{labelPivotName}}

          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n","import { Component, Input, OnInit } from '@angular/core';\nimport { LMDimension } from '@modal/cubes/lm-cubes';\n\n@Component({\n selector: 'lm-cube-dimensions-mapping',\n templateUrl: './lm-cube-dimensions-mapping.component.html',\n styleUrls: [ './lm-cube-dimensions-mapping.component.scss' ],\n})\n\nexport class LMCubeDimensionsMappingComponent implements OnInit {\n @Input() cubeBusClass: string;\n @Input() dimensionMapping: Array;\n @Input() message: string;\n @Input() structures: boolean;\n @Input() hasReportingBasis: boolean;\n @Input() topNodeBaseValues: LMDimensionValues;\n @Input() displayHelpText: boolean;\n public helpText: string;\n\n public emptyMessage: SohoEmptyMessageOptions;\n ngOnInit(): void {\n if (this.dimensionMapping && this.dimensionMapping.length === 0) {\n this.emptyMessage = {\n title: this.message,\n icon: 'icon-empty-error-loading',\n color: 'azure'\n };\n }\n this.helpText = Soho.Locale.translate('FilterDialogHelpInfo');\n }\n\n public getDimensionMapping(): Array {\n // Return Updated dimensions and values to the cube cell relation service.\n return this.dimensionMapping;\n }\n}\n","
          \n 0; else ShowEmptyMessage\">\n \n
          \n \n \n \n

          {{helpText}}

          \n
          \n
          \n \n \n \n \n
          \n \n
          \n
          \n
          \n","import { Component, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { LMDimension } from '@modal/cubes/lm-cubes';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMCubeUtilService } from '@modal/cubes/lm-cube-util.service';\n\n@Component({\n selector: 'lm-cube-period-dimension',\n templateUrl: './lm-cube-period-dimension.component.html',\n})\n\nexport class LMCubePeriodDimensionComponent implements OnInit {\n @ViewChild('periodPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @Input() dimension: LMDimension;\n\n public id: string;\n public launchButtonTooltip: string;\n\n constructor(\n private lmUniqueIdService: LMUniqueIdService,\n private lmCubeUtilService: LMCubeUtilService,\n ) {}\n\n ngOnInit(): void {\n this.id = this.lmUniqueIdService.uniqueId(['cube-cell-dimension', this.dimension.type, this.dimension.name]);\n this.launchButtonTooltip = Soho.Locale.translate('CurrentPeriod')\n }\n\n public openPeriodDialog() {\n this.lmCubeUtilService.openPeriodDialogForPeriodDimension(this.placeholder, this.dimension.interval, this.dimension.currentPeriod)\n .subscribe((periodKey: string) => {\n this.dimension.value = periodKey;\n this.dimension.currentPeriod = this.dimension.value.replace(/\\/\\w*\\//, '\\n');\n });\n }\n\n}\n","\n\n\n
          \n","import { Component, Input, Output, OnInit, EventEmitter, ViewChild } from '@angular/core';\nimport { SohoSliderComponent } from 'ids-enterprise-ng';\nimport { LMFormatUtilService } from '@services/utils';\n\n@Component ({\n selector: 'lm-cube-periodoverride-dialog',\n templateUrl: 'lm-cube-periodoverride-dialog.component.html'\n})\n\nexport class LMCubePeriodOverrideDialogComponent implements OnInit {\n @Input() listSpec: LMListSpec;\n @Input() dataViewSet: LMDataViewSet;\n @Input() listState: LMListState;\n\n // The following two inputs are from BusinessClassTotal, that defines the cube cell relation.\n // The list spec, state or dataviewset is not available in this case.\n @Input() cubeInterval: string;\n @Input() cubeCurrentPeriod: string;\n\n @ViewChild(SohoSliderComponent) sliderPeriod: SohoSliderComponent;\n\n public cubeViewer: boolean;\n public interval: string;\n public currPeriodKey: string;\n public date: string;\n public year: string;\n private week: string;\n private month: string;\n\n public labelPeriodOverride: string;\n public labelPeriod: string;\n public labelYear: string;\n private labelMonth: string;\n private labelWeek: string;\n\n public sliderPeriodValue: string;\n public sliderPeriodLabel: string;\n public sliderMin: number;\n public sliderMax: number;\n\n public dateFormat: string;\n private updateState: boolean;\n\n public disableOptions: SohoDatePickerDisable = {\n dates: '',\n minDate: this.lmFormatUtilService.minDate,\n maxDate: this.lmFormatUtilService.maxDate,\n dayOfWeek: []\n };\n\n public pickerOptions: SohoDatePickerOptions;\n\n constructor( private lmFormatUtilService: LMFormatUtilService) {}\n\n ngOnInit() {\n this.initialize();\n this.pickerOptions = {\n dateFormat: this.dateFormat,\n disable: this.disableOptions\n };\n }\n\n private initialize(): void {\n this.cubeViewer = (this.dataViewSet !== undefined);\n if (this.cubeViewer) {\n this.interval = this.dataViewSet.cubeInfo.periodInterval;\n this.currPeriodKey = this.dataViewSet.cubeInfo.periodDimension;\n\n if (this.interval === 'DAILY') {\n this.date = this.currPeriodKey;\n this.dateFormat = Soho.Locale.calendar().dateFormat.short;\n } else {\n const periodParts = this.currPeriodKey.split('/');\n this.year = periodParts[1];\n (this.interval === 'WEEKLY') ? this.week = periodParts[0] : this.month = periodParts[0];\n }\n } else if (this.cubeCurrentPeriod && this.cubeInterval) {\n this.interval = this.cubeInterval;\n this.currPeriodKey = this.cubeCurrentPeriod.replace('\\n', '/');\n\n const periodParts = this.currPeriodKey.split('/');\n if (this.interval === 'DAILY') {\n const periodKeyToDate = new Date(parseInt(periodParts[0], 10), 0);\n periodKeyToDate.setDate(parseInt(periodParts[1], 10));\n this.dateFormat = Soho.Locale.calendar().dateFormat.short;\n const formatDateAttribs: any = {\n pattern: this.dateFormat,\n fromGregorian: (Soho.Locale.calendar().name === 'islamic-umalqura') ? true : false\n };\n this.date = Soho.Locale.formatDate(periodKeyToDate, formatDateAttribs);\n } else {\n this.year = periodParts[0];\n (this.interval === 'WEEKLY') ? this.week = periodParts[1] : this.month = periodParts[1];\n }\n }\n\n this.labelPeriodOverride = Soho.Locale.translate('PeriodOverride');\n this.labelPeriod = (this.dataViewSet?.cubeInfo?.variablePeriod) ? Soho.Locale.translate('VariablePeriod') : Soho.Locale.translate('CurrentPeriod');\n this.labelYear = Soho.Locale.translate('Year');\n this.labelMonth = Soho.Locale.translate('Month');\n this.labelWeek = Soho.Locale.translate('Week');\n\n this.sliderMin = 1;\n if (this.interval === 'WEEKLY') {\n this.sliderPeriodLabel = this.labelWeek;\n this.sliderPeriodValue = this.week;\n this.sliderMax = 53;\n } else {\n this.sliderPeriodLabel = this.labelMonth;\n this.sliderPeriodValue = this.month;\n this.sliderMax = 12;\n }\n }\n\n public onDirty(event: any) {\n this.updateState = true;\n }\n\n public onPristine(event: any) {\n // Checkbox unchecked calls onPristine. The value is changed from the initial state, so set updateState to true.\n this.updateState = true;\n }\n\n public onSliderPeriodUpdated(event: any) {\n // this.currPeriodKey = this.sliderPeriod.value + '/' + this.year;\n this.updateState = true;\n }\n\n public onReset(): boolean {\n if (Object.keys(this.listState).length > 0 && this.listState.hasOwnProperty('cubeOverrides')) {\n this.listState.cubeOverrides.periodOverrides = {};\n return true;\n }\n return false;\n }\n\n public onApply(): boolean {\n if (this.updateState && this.cubeViewer) {\n this.listState.cubeOverrides = this.listState.cubeOverrides || {};\n this.listState.cubeOverrides.periodOverrides = this.getCubeOverrides();\n }\n return this.updateState;\n }\n\n private getCubeOverrides(): LMCubePeriodOverrides {\n const cubePeriodOverrides: LMCubePeriodOverrides = {};\n if (this.interval === 'DAILY') {\n this.currPeriodKey = this.date;\n } else {\n this.currPeriodKey = this.sliderPeriod.value[0] + '/' + this.year;\n }\n cubePeriodOverrides.periodOverride = this.currPeriodKey;\n cubePeriodOverrides.overridePeriods = true;\n if (this.dataViewSet.cubeInfo.variablePeriod) {\n cubePeriodOverrides.periodKey = this.dataViewSet.cubeInfo.periodKey;\n }\n return cubePeriodOverrides;\n }\n\n public getCubeCellRelPeriodKey(): string {\n if (this.cubeInterval === 'DAILY') {\n const periodDate: Date = Soho.Locale.parseDate(this.date, this.dateFormat, false);\n return periodDate.getFullYear() + '/Day/' + this.getDayOfTheYear();\n } else {\n const periodType = (this.cubeInterval === 'MONTHLY') ? '/Month/' : '/Week/';\n return this.year + periodType + this.sliderPeriod.value[0];\n }\n }\n\n private getDayOfTheYear(): string {\n const periodDate = Soho.Locale.parseDate(this.date, this.dateFormat, false);\n const startDate = new Date(Date.UTC(periodDate.getFullYear(), 0, 0)); // Dec 31 of the previous year\n const msInDay = 1000 * 60 * 60 * 24;\n return ((+(periodDate) - +(startDate)) / msInDay).toFixed();\n }\n}\n","
          \n
          \n
          \n
          \n \n
          \n \n \n
          \n
          \n \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n","import { Component, forwardRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { LMDimension, LMNewTopNodeValuesResult, LMReportingBasis } from '@modal/cubes/lm-cubes';\nimport { LMLookupBasicComponent } from '@field/lookup';\nimport { LMCubeUtilService } from '@modal/cubes/lm-cube-util.service';\nimport { LMErrorUtilService } from '@app/services';\nimport { AppConstants } from '@app/utils';\n\n@Component({\n selector: 'lm-cube-sructure',\n templateUrl: './lm-cube-structures.component.html',\n})\n\nexport class LMCubeStructuresComponent implements OnInit {\n @Input() cubeBusClass: string;\n @Input() dimensionMapping: Array;\n @Input() message: string;\n\n @Input() reportingBasis: LMReportingBasis\n @ViewChild(forwardRef(() => LMLookupBasicComponent)) lmLookupBasicReportingBasis;\n\n public hasReportingBasis: boolean;\n private cubePeriodKey: string;\n\n constructor(private lmCubeUtilService: LMCubeUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n ) {}\n ngOnInit(): void {\n this.hasReportingBasis = this.reportingBasis !== undefined;\n }\n\n public getDimensionMapping(): Array {\n // Return Updated dimensions and values to the cube cell relation service.\n return this.dimensionMapping;\n }\n\n public getReportingBasis(): string {\n return (this.hasReportingBasis && this.lmLookupBasicReportingBasis) ? this.lmLookupBasicReportingBasis.lookupValue : undefined;\n }\n\n public getCubePeriodKey(): string {\n return this.cubePeriodKey;\n }\n\n public onContextValueChanged(event: LMFieldEvent) {\n // ngmodelchanged from lmLookupBasicReportingBasis\n // this.reportingBasis.resourceId = this.reportingBasis.resourceId.replace(this.reportingBasis.value, this.lmLookupBasicReportingBasis.lookupValue);\n this.reportingBasis.value = this.lmLookupBasicReportingBasis.lookupValue;\n this.lmCubeUtilService.getNewTopNodeValues(this.cubeBusClass, this.reportingBasis.cubeListName, this.lmLookupBasicReportingBasis.lookupValue)\n .subscribe((response: LMNewTopNodeValuesResult) => {\n if (response.message) {\n this.lmErrorUtilService.handleError(response.message);\n return;\n } else if ((response as any).status === AppConstants.STATUS_SYSTEM_ERROR) {\n const lmError = (response as any);\n this.lmErrorUtilService.handleError(lmError.message, lmError.details, lmError.status);\n return;\n }\n this.cubePeriodKey = response.periodKey;\n const dimensionMappingClone = JSON.parse(JSON.stringify(this.dimensionMapping));\n Object.keys(response.topNodes).forEach(key => {\n const dimension = dimensionMappingClone.find((dim) => dim.name === key);\n if (dimension) {\n dimension.value = response.topNodes[key].replace(/(\\r\\n|\\n|\\r)/gm, '/');\n }\n });\n this.dimensionMapping = dimensionMappingClone;\n });\n }\n}\n","\n

          {{'ContextLabel' | translate}}

          \n
          \n \n \n
          \n
          \n

          {{'Dimensions' | translate}}

          \n
          \n\n\n\n","import { Injectable, NgZone, ViewContainerRef } from '@angular/core';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMCubeDimensionsDialogComponent } from './lm-cube-dimensions-dialog.component';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMCubePeriodOverrideDialogComponent } from './lm-cube-periodoverride-dialog.component';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { catchError, first } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConstants, FormRequestType, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { LMCubeDimensionsMappingComponent } from '@modal/cubes/lm-cube-dimensions-mapping.component';\nimport { KeyedResource } from '@resources/keyed.resource';\nimport { LMErrorUtilService, LMFormatUtilService, LMUrlUtilService } from '@services/utils';\nimport { LMCubeRequest, LMDimension, LMDimensionMappingResult, LMReportingBasis } from '@modal/cubes/lm-cubes';\nimport { LMCubeStructuresComponent } from '@modal/cubes/lm-cube-structures.component';\nimport { LMLookupComponent } from '@field/lookup';\nimport { LMSpecService } from '@app/services';\nimport { LMSelectDialogService, LMSelectResponse } from '@app/components';\n\n@Injectable()\nexport class LMCubeUtilService {\n constructor(\n private ngZone: NgZone,\n private http: HttpClient,\n private sohoModalDialogService: SohoModalDialogService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmSpecService: LMSpecService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmSelectDialogService: LMSelectDialogService,\n private lmErrorUtilService: LMErrorUtilService,\n ) {\n }\n\n /**\n * open the dimensions dialog.\n * @param listSpec\n * @param dataViewSet\n * @param placeholder\n * @return\n */\n public openCubeDimensionsDialog(listSpec: LMListSpec, dataViewSet: LMDataViewSet, listState: LMListState, placeholder: ViewContainerRef): Observable {\n return new Observable((observer) => {\n let dlgComponent: LMCubeDimensionsDialogComponent;\n const dialogId = 'DimensionTree';\n const buttons = [\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n dialog.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.RESET ]),\n text: Soho.Locale.translate(LMDialogButtonKey.RESET),\n click: (e, modal) => {\n dialog.close(dlgComponent.onReset());\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.APPLY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.APPLY),\n validate: false,\n isDefault: true,\n click: (e, modal) => {\n dialog.close(dlgComponent.onApply());\n }\n },\n ];\n const dialog: SohoModalDialogRef = this.sohoModalDialogService\n .modal(LMCubeDimensionsDialogComponent, placeholder, { fullsize: 'responsive' } )\n .buttons(buttons)\n .title(Soho.Locale.translate(dialogId))\n .isAlert(false)\n .open();\n\n dialog.apply((dimDialog: LMCubeDimensionsDialogComponent) => {\n dlgComponent = dimDialog;\n dimDialog.listSpec = listSpec;\n dimDialog.dataViewSet = dataViewSet;\n dimDialog.listState = listState;\n dimDialog.parentContainer = 'cubeviewer';\n });\n dialog.afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n /**\n * open the Period override dialog.\n * @param listSpec\n * @param dataViewSet\n * @param placeholder\n * @return\n */\n public openCubePeriodOverrideDialog(listSpec: LMListSpec, dataViewSet: LMDataViewSet, listState: LMListState, placeholder: ViewContainerRef): Observable {\n return new Observable((observer) => {\n let dlgComponent: LMCubePeriodOverrideDialogComponent;\n const dialogId = 'PeriodOverride';\n const buttons = [\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n dialog.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.RESET ]),\n text: Soho.Locale.translate(LMDialogButtonKey.RESET),\n click: (e, modal) => {\n dialog.close(dlgComponent.onReset());\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.APPLY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.APPLY),\n validate: false,\n isDefault: true,\n click: (e, modal) => {\n dialog.close(dlgComponent.onApply());\n }\n },\n ];\n const dialog: SohoModalDialogRef = this.sohoModalDialogService\n .modal(LMCubePeriodOverrideDialogComponent, placeholder, { fullsize: 'responsive' })\n .buttons(buttons)\n .title(Soho.Locale.translate(dialogId))\n .isAlert(false)\n .open();\n\n dialog.apply((periodDialog: LMCubePeriodOverrideDialogComponent) => {\n dlgComponent = periodDialog;\n periodDialog.listSpec = listSpec;\n periodDialog.dataViewSet = dataViewSet;\n periodDialog.listState = listState;\n });\n dialog.afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n public buildCubeStructuresDialog(placeHolder: ViewContainerRef,\n busClass: string,\n dimensionValues?: LMDimensionValues,\n dimensionMappingInput?: Array,\n reportingBasis?: LMReportingBasis): Observable {\n const dimensionMappingResult = new Subject();\n const closeModalWith = (result: LMDimensionMappingResult, modal) => {\n modal.close(true);\n dimensionMappingResult.next(result);\n dimensionMappingResult.complete();\n }\n\n this.getDimensionMapping(busClass, dimensionValues, dimensionMappingInput, true)\n .subscribe((dimMappingResult: LMDimensionMappingResult) => {\n let cubeStructureComponentRef: LMCubeStructuresComponent;\n\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'structures', LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, modal);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'showAlert', LMDialogButtonKey.RESET ]),\n text: Soho.Locale.translate('Reset'),\n click: (e, modal) => {\n closeModalWith({ dimensionMapping: [], message: 'reset' }, modal);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'structures', LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n const newDimensionMapping = cubeStructureComponentRef.getDimensionMapping();\n const newReportingBasis = cubeStructureComponentRef.getReportingBasis();\n const newPeriodKey = cubeStructureComponentRef.getCubePeriodKey();\n closeModalWith({ dimensionMapping: newDimensionMapping, message: dimMappingResult.message, reportingBasis: newReportingBasis, cubePeriodKey: newPeriodKey}, modal);\n },\n isDefault: true,\n },\n ];\n\n const dialogTitle = busClass + ' ' + Soho.Locale.translate('Structures');\n this.sohoModalDialogService\n .modal(LMCubeStructuresComponent, placeHolder, { fullsize: 'responsive' })\n .title(dialogTitle)\n .buttons(buttons)\n .open()\n .apply((dialogComp: LMCubeStructuresComponent) => {\n cubeStructureComponentRef = dialogComp;\n cubeStructureComponentRef.cubeBusClass = busClass;\n cubeStructureComponentRef.message = dimMappingResult.message;\n cubeStructureComponentRef.reportingBasis = reportingBasis;\n // deep clone dimension mapping. On ok, the dimension mapping will be updated.\n cubeStructureComponentRef.dimensionMapping = JSON.parse(JSON.stringify(dimMappingResult.dimensionMapping));\n });\n });\n\n return dimensionMappingResult.asObservable();\n }\n\n public buildCubeDimensionMappingDialog(placeHolder: ViewContainerRef,\n busClass: string,\n topNodeBaseValues: LMDimensionValues,\n dimensionValues?: LMDimensionValues,\n dimensionMappingInput?: Array,\n structure = false): Observable {\n const dimensionMappingResult = new Subject();\n const closeModalWith = (result: LMDimensionMappingResult, modal) => {\n modal.close(true);\n dimensionMappingResult.next(result);\n dimensionMappingResult.complete();\n }\n\n this.getDimensionMapping(busClass, dimensionValues, dimensionMappingInput, structure)\n .subscribe((dimMappingResult: LMDimensionMappingResult) => {\n let cubeDimensionsMappingDialogRef: LMCubeDimensionsMappingComponent;\n\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'dimensions', LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, modal);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'dimensions', LMDialogButtonKey.RESET ]),\n text: Soho.Locale.translate('Reset'),\n click: (e, modal) => {\n closeModalWith({ dimensionMapping: [], message: 'reset' }, modal);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ 'lm-cube-util', 'dimensions', LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n const newDimensionMapping = cubeDimensionsMappingDialogRef.getDimensionMapping();\n closeModalWith({ dimensionMapping: newDimensionMapping, message: dimMappingResult.message }, modal);\n },\n isDefault: true,\n },\n ];\n\n const dialogTitle = busClass + ' ' + Soho.Locale.translate('Dimensions');\n this.sohoModalDialogService\n .modal(LMCubeDimensionsMappingComponent, placeHolder, { fullsize: 'responsive' })\n .title(dialogTitle)\n .buttons(buttons)\n .open()\n .apply((dialogComp: LMCubeDimensionsMappingComponent) => {\n cubeDimensionsMappingDialogRef = dialogComp;\n cubeDimensionsMappingDialogRef.cubeBusClass = busClass;\n cubeDimensionsMappingDialogRef.message = dimMappingResult.message;\n cubeDimensionsMappingDialogRef.displayHelpText = true;\n // deep clone dimension mapping. On ok, the dimension mapping will be updated.\n cubeDimensionsMappingDialogRef.dimensionMapping = JSON.parse(JSON.stringify(dimMappingResult.dimensionMapping));\n cubeDimensionsMappingDialogRef.topNodeBaseValues = topNodeBaseValues;\n });\n });\n\n return dimensionMappingResult.asObservable();\n }\n public getDimensionMapping(busClass: string, dimensionValues?: LMDimensionValues, dimensionMapping?: Array, structure = false): Observable {\n if (!dimensionMapping || dimensionMapping.length === 0) {\n const cubeDimMap = Object.assign(\n { requestType: FormRequestType.CubeDimensionMapping },\n { busClass },\n { dimensionValues },\n { structure });\n return this.executeFormRequest(this.getRequestUrl(busClass), cubeDimMap);\n }\n return of({ dimensionMapping, message: 'cache' });\n }\n\n public getRequestUrl(busClass: string): string {\n const formResource = new KeyedResource({ resourceType: 'form', resourceId: busClass });\n return this.lmUrlUtilService.buildUrl({ resource: formResource });\n }\n\n public getSelectListUrl(dimension: LMDimension): string {\n if (dimension.type !== 'keyfield') {\n return undefined;\n }\n const listResource = new KeyedResource({ resourceType: 'list', resourceId: dimension.relatedBusClass + '.' + dimension.uilist });\n const selectResource = new KeyedResource({ resourceType: 'select', resourceId: dimension.relatedBusClass + '.' + dimension.selectField });\n const params: any = { output: 'spec', type: 'select' };\n return this.lmUrlUtilService.buildUrl({ resource: listResource, contextResource: selectResource, params });\n }\n\n public openPeriodDialogForPeriodDimension(placeHolder: ViewContainerRef, interval: string, currentPeriod: string): Observable {\n const periodKey = new Subject();\n const closeModalWith = (result: string, modal) => {\n modal.close(true);\n periodKey.next(result);\n periodKey.complete();\n };\n\n let dlgComponent: LMCubePeriodOverrideDialogComponent;\n const dialogId = 'CurrentPeriod';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n dialog.close();\n }\n },\n\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.APPLY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.APPLY),\n validate: false,\n isDefault: true,\n click: (e, modal) => {\n const periodKeyStr = dlgComponent.getCubeCellRelPeriodKey();\n closeModalWith(periodKeyStr, modal);\n }\n },\n ];\n const dialog: SohoModalDialogRef = this.sohoModalDialogService\n .modal(LMCubePeriodOverrideDialogComponent, placeHolder, { fullsize: 'responsive' })\n .buttons(buttons)\n .title(Soho.Locale.translate(dialogId))\n .isAlert(false)\n .open();\n\n dialog.apply((periodDialog: LMCubePeriodOverrideDialogComponent) => {\n dlgComponent = periodDialog;\n dlgComponent.cubeInterval = interval;\n dlgComponent.cubeCurrentPeriod = currentPeriod;\n });\n return periodKey.asObservable();\n }\n\n public getNewTopNodeValues(cubeBusClass: string, cubeListName: string, ctxValue: string): Observable {\n const newTopNodes = { requestType: FormRequestType.CubeGetTopNodesForContext,\n busClass: cubeBusClass,\n cubeListName,\n ctxValue };\n return this.executeFormRequest(this.getRequestUrl(cubeBusClass), newTopNodes);\n }\n\n private executeFormRequest(url: string, cubeRequest: LMCubeRequest): Observable {\n return this.http\n .post(url, cubeRequest).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public cubeSearchOpenSelectListDialog(dimension: LMDimension, topNodeBaseValue: string, field: LMLookupComponent, searchFormDataView: LMDataView) {\n const selectListUrl = (dimension) ? this.getSelectListUrl(dimension)\n : this.lmUrlUtilService.buildSelectListUrl(field.model.formUrlInfo, field.layoutObject.selectListInfo);\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmLoggerService.log([ 'LMCubeUtilService', 'getListSpec() completed', listSpecResponse ]);\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n const sourceField = (dimension) ? dimension.name : field.specField.selectFieldId || field.bindId;\n // If the list spec has search form, it is either displayed initially or the user will click on search icon to open up.\n // In either case, do not set the height of the modal. The search form and the list together should be in auto height.\n // Also in the case of tree view, do not want to set the modal with overflow:hidden. As the nodes are expanded, we should be able to scroll.\n const className = (listSpec.busListSpec.searchForm === undefined && !listSpec.busListSpec.implementsTreeView) ? 'lm-lookup-modal' : '';\n\n const fieldHasNoVariables = (!field.specField.label.variables || field.specField.label.variables.length === 0);\n const labelValue = (field.specField.label.resourceValue !== ' ' || !fieldHasNoVariables)\n ? this.lmFormatUtilService.formatMessageRule(field.specField.label, field.model, field.specFields)\n : '';\n const title = (labelValue !== '')\n ? this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SelectTitle'), labelValue)\n : Soho.Locale.translate('Select');\n\n // If a topDimensionValue is set, use it to intialize the search form dataview\n if (dimension && topNodeBaseValue) {\n const keyNames = dimension.relBusClassKeyNames.split('/');\n const keyValues = topNodeBaseValue.split('/');\n if (keyNames.length > 0) {\n keyNames.forEach((key, i) => {\n if (searchFormDataView.fields[key]) {\n searchFormDataView.fields[key].value = keyValues[i];\n } else {\n searchFormDataView.fields[key] = { value: keyValues[i] };\n }\n });\n }\n }\n const selectRequestData: SelectRequestData = {\n viewType: field.model.formSpec.selectViewType ? field.model.formSpec.selectViewType : 'form',\n viewName: field.model.formSpec.busFormSpec.name,\n dataView: searchFormDataView,\n allowMultiSelections: false,\n onSearchForm: true,\n displayTopNodeAndChildren: (dimension && topNodeBaseValue !== undefined),\n };\n this.lmSelectDialogService.showSelectListDialog({\n listUrlInfo,\n listSpec,\n title,\n sourceField,\n className,\n selectRequestData\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe((selectResponse: LMSelectResponse) => {\n this.lmLoggerService.log([ 'LMCubeUtilService', 'cubeSearchOpenSelectListDialog()', selectResponse ]);\n if (selectResponse?.status === AppConstants.STATUS_COMPLETED && selectResponse.dataViews) {\n const selectedDataView: LMDataView = selectResponse.dataViews[0];\n this.applyValue(dimension, searchFormDataView.busClassName, selectedDataView).subscribe((response: any) => {\n if (response.status && response.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n return;\n }\n\n const resDataView: LMDataView = response;\n const lookupValue = resDataView.fields[sourceField].value as string;\n if (dimension) {\n dimension.value = lookupValue;\n }\n field.modelField.value = lookupValue;\n //TODO: When multiselect is turned on, set the model field value and entered filter value using the delimiter.\n\n // sohoLookupComponent requires a data property on each array element\n const selectedData: Array = [ { data: resDataView } ] ;\n this.ngZone.runOutsideAngular(() => {\n field.sohoLookup.setValue(selectedData);\n });\n });\n } else if (selectResponse?.status === AppConstants.STATUS_CANCEL) {\n this.ngZone.runOutsideAngular(() => {\n field?.inputElement?.nativeElement?.focus();\n });\n }\n });\n },\n (error: any) => {\n this.lmLoggerService.log([ 'LMCubeUtilService cubeSearchOpenSelectListDialog', error ]);\n });\n }\n\n private applyValue(dimension: LMDimension, busClassName: string, dataView: LMDataView): Observable {\n // getFields call will return the ontological context values along with the selected key for a dimension\n if (dimension) {\n const getFieldsUrl = this.getRequestUrl(busClassName);\n const cubeCellRequest = Object.assign(\n { requestType: FormRequestType.CubeRelGetSelectValue },\n { busClass: busClassName },\n { dimension: dimension.name },\n { selectResourceId: dataView.resourceId + '.' + dimension.uilist },\n { selectDataView: dataView },\n );\n return this.http\n .post(getFieldsUrl, cubeCellRequest).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n } else {\n return of(dataView);\n }\n }\n}\n","import { AppConstants } from '@utils/app.constants';\nimport { LMFieldPickerComponent, LMFieldPickerService } from '@app/components';\nimport { LMFormatUtilService } from '@app/services';\n\nexport const lmFieldPickerFormatter = (\n lmFieldPickerService: LMFieldPickerService,\n lmFormatUtilService: LMFormatUtilService,\n searchFromContext: Array,\n nameSearch: string,\n isKey: boolean,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n uiFieldSpec: UIFieldSpec,\n dataGrid: SohoDataGridStatic\n): string => {\n\n let displayText: string;\n const hasSearchCriteria = !(!nameSearch || nameSearch.trim().length === 0);\n\n if (columnDef.displayField.isTreeColumn) {\n const searchFrom = searchFromContext?.length > 0 ? searchFromContext[searchFromContext.length -1] : undefined;\n let displayValue = hasSearchCriteria ? lmFieldPickerService.getUIFieldSpecSearchName(uiFieldSpec, searchFrom) : value;\n\n if (hasSearchCriteria && uiFieldSpec.depth === 1) {\n const searchInfo = nameSearch.split('.');\n\n if (searchInfo.length === 1) {\n displayValue = lmFieldPickerService.boldQuery(displayValue, nameSearch);\n } else {\n displayValue = lmFieldPickerService.boldQuery(displayValue, searchInfo[searchInfo.length - 1]);\n }\n\n }\n\n displayText = Soho.Formatters.Tree(row, cell, displayValue, columnDef, uiFieldSpec, dataGrid);\n } else if (columnDef.displayField.type === AppConstants.TEXT) {\n displayText = Soho.Formatters.Ellipsis(row, cell, value, columnDef, uiFieldSpec, dataGrid);\n }\n\n if (columnDef.id === LMFieldPickerComponent.LABEL_COLUMN_ID && isKey) {\n const tooltip = lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_KeyForText'), uiFieldSpec.businessClass);\n\n return `` +\n `` +\n `` +\n `${displayText}`;\n }\n\n if (columnDef.id === LMFieldPickerComponent.TYPE_COLUMN_ID) {\n switch (uiFieldSpec.fieldType) {\n case 'TEXT': return Soho.Locale.translate('FieldPicker_text_type_label');\n case 'BOOLEAN': return Soho.Locale.translate('FieldPicker_boolean_type_label');\n case 'NUMBER': return Soho.Locale.translate('FieldPicker_number_type_label');\n case 'DATE': return Soho.Locale.translate('FieldPicker_date_type_label');\n case 'BINARYOBJECT': return Soho.Locale.translate('FieldPicker_binary_type_label');\n case 'STATE': return Soho.Locale.translate('FieldPicker_state_type_label');\n case 'GROUP': return Soho.Locale.translate('FieldPicker_Group_type_label');\n case 'ARRAY': return Soho.Locale.translate('FieldPicker_array_type_label');\n case 'OTO_RELATION': return Soho.Locale.translate('FieldPicker_otorelation_type_label');\n case 'OTM_RELATION': return Soho.Locale.translate('FieldPicker_otmrelation_type_label');\n default: return Soho.Locale.translate('FieldPicker_other_type_label');\n }\n }\n\n return displayText;\n};\n\nexport const lmFieldPickerHyperLinkFormatter = (\n lmFieldPickerService: LMFieldPickerService,\n row: number,\n cell: number,\n value: any,\n columnDef: ListGridColumn,\n uiFieldSpec: UIFieldSpec,\n dataGrid: SohoDataGridStatic\n): string => {\n\n if (columnDef.id === LMFieldPickerComponent.SEARCH_FROM_HERE_COLUMN_ID) {\n if (uiFieldSpec.hasChildren\n && uiFieldSpec.relatedBusinessClass\n && !uiFieldSpec.isStateField\n && uiFieldSpec.fieldType !== 'GROUP'\n && uiFieldSpec.fieldType !== 'ARRAY') {\n return Soho.Formatters.Hyperlink(row, cell, value, columnDef, uiFieldSpec, dataGrid);\n }\n return '';\n }\n};\n","export * from './services';\nexport * from './lm-field-picker.component';\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoDataGridComponent,\n SohoDataGridToggleRowEvent,\n SohoMessageService\n} from 'ids-enterprise-ng';\nimport {\n LMBusyIndicatorService,\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMRouteComponentService,\n LMUrlUtilService\n} from '@services/index';\nimport { AppConstants, ListRequestType, LMDialogButtonKey } from '@utils/app.constants';\nimport { LMFieldPickerService } from './services';\nimport { lmFieldPickerFormatter, lmFieldPickerHyperLinkFormatter } from './formatter/lm-fieldpicker.formatter';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport {\n LMFieldOperatorOptionState,\n LMFieldPickerIncludeOptions,\n LMFieldPickerOptionState,\n LMFieldPickerRequest,\n LMFieldPickerResponse,\n LMFieldPickerSearchComparator,\n LMFieldPickerSearchOptions,\n LMFieldPickerSearchScope,\n LMFieldPickerSelectOptions,\n LMFormatStyleOptionState,\n LMOperatorInfo,\n LMTypeOperatorOptionState\n} from '@modal/field-picker/lm-field-picker';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LMNotificationComponent } from '@components/notification';\nimport { LMFormRequestService } from '@form/services';\nimport { Subject } from 'rxjs';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n\n@Component({\n selector: 'lm-field-picker',\n animations: [\n trigger('panelDisplay', [\n state('visible', style({\n height: '*',\n display: 'block'\n })),\n state('hidden', style({\n height: '0px',\n display: 'none',\n })),\n transition('visible => hidden', [\n animate('450ms ease-in')\n ]),\n transition('hidden => visible', [\n animate('450ms ease-out')\n ]),\n ]),\n ],\n templateUrl: './lm-field-picker.component.html',\n styleUrls: [ './lm-field-picker.component.scss' ],\n providers: [ LMRouteComponentService ]\n})\nexport class LMFieldPickerComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n\n @ViewChild('SohoDataGrid') dataGridComponent: SohoDataGridComponent;\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(LMNotificationComponent) lmNotificationPlaceholder: LMNotificationComponent;\n\n @Input() options: LMFieldPickerSelectOptions;\n @Input() lookupUrl: string;\n\n @Output() rowSelectedEvent = new EventEmitter();\n @Output() uiFieldSpecSelectionEvent = new EventEmitter();\n\n public static NAME_COLUMN_ID = 'fieldNameCol';\n public static SEARCH_FROM_HERE_COLUMN_ID = 'searchFrom';\n public static LABEL_COLUMN_ID = 'labelCol';\n public static TYPE_COLUMN_ID = 'fieldTypeCol';\n\n EMPTY_DATA: SohoEmptyMessageOptions = {\n title: Soho.Locale.translate('FieldPickerEmptyDataMessage'),\n icon: 'icon-empty-no-data',\n color: 'graphite'\n };\n\n showingOperatorBuilder = false;\n periodLabel = Soho.Locale.translate('FieldPicker_number_label');\n fieldTypes: Array;\n fieldOperators: Array;\n typeOperators: Array;\n formatStyles: Array;\n fieldNameComparators = [\n { value: 'contains', text: Soho.Locale.translate('Contains'), icon: 'filter-contains' },\n { value: 'startsWith', text: Soho.Locale.translate('StartsWith'), icon: 'filter-start-with' },\n { value: 'endsWith', text: Soho.Locale.translate('EndsWith'), icon: 'filter-end-with' },\n { value: 'equals', text: Soho.Locale.translate('Equals'), icon: 'filter-equals' },\n ];\n\n searchScope: LMFieldPickerSearchScope = 'normal';\n includeOptions: LMFieldPickerIncludeOptions[] = [];\n relatedFieldFilter: string;\n relatedFieldFilterComparator: LMFieldPickerSearchComparator;\n searchOptions: LMFieldPickerSearchOptions = { nameValue: '', nameComparator: 'contains', };\n gridOptions: SohoDataGridOptions;\n emptyMessage: SohoEmptyMessageOptions = this.EMPTY_DATA;\n searchingFromHere = false;\n searchingFromHereTags: Array = [];\n searchingFromHereContext: Array = [];\n useCompactFormLayout = false;\n businessClasses: Array;\n\n businessClassSource = (response: any, searchTerm: any) => {\n response(this.businessClasses, true);\n }\n\n lplName: string;\n operatorExample: string;\n\n get selectedRow(): UIFieldSpec {\n return this._selectedRow;\n }\n\n _selectedRow: UIFieldSpec;\n\n get fieldOperatorInfo(): LMOperatorInfo {\n return this._fieldOperatorInfo;\n }\n\n _fieldOperatorInfo: LMOperatorInfo;\n\n private cancelNotifier$: Subject;\n private dataLoaded = false;\n\n constructor(protected lmBusyIndicatorService: LMBusyIndicatorService,\n private ngZone: NgZone,\n private changeDetectionRefService: ChangeDetectorRef,\n private sohoMessageService: SohoMessageService,\n private lmFieldPickerService: LMFieldPickerService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmContextService: LMContextService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmFormRequestService: LMFormRequestService,\n private lmUrlUtilService: LMUrlUtilService,\n private domSanitizer: DomSanitizer\n ) {\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n }\n\n ngOnInit() {\n this.resetPeriodOperatorInfo();\n this.loadBusClasses(this.options.businessClass);\n this.buildSearchFieldTypeOptions();\n this.buildGrid();\n }\n\n ngAfterViewInit() {\n this.loadInitialPage();\n }\n\n ngAfterViewChecked() {\n if (this.dataLoaded) {\n this.dataLoaded = false;\n // LMCLIENT-38564\n setTimeout(() => this.handleInitialFocus());\n }\n }\n\n ngOnDestroy() {\n this.cleanUpCancelNotifier();\n }\n\n markForCheck() {\n this.changeDetectionRefService.detectChanges();\n }\n\n showBusyIndicator() {\n this.lmBusyIndicatorService.showBusyIndicator(this.busyIndicator);\n }\n\n hideBusyIndicator() {\n this.lmBusyIndicatorService.hideBusyIndicator(this.busyIndicator);\n }\n\n private loadBusClasses(businessClass: string) {\n const baseUrl = this.lmUrlUtilService.getBaseUrl();\n let url = `${baseUrl}/config/All`;\n url = this.lmUrlUtilService.propagateSessionKeys(url, '?');\n\n this.lmFormRequestService.getRelatedBusClasses(url, businessClass)\n .subscribe((busClasses: any) => {\n this.businessClasses = [];\n busClasses.forEach((busClass) => this.businessClasses.push(busClass.name));\n },\n (error: any) => {\n // notify listeners\n });\n }\n\n private buildSearchFieldTypeOptions() {\n this.fieldTypes = [\n { value: 'onlyTextFields', label: Soho.Locale.translate('FieldPicker_text_type_label') },\n { value: 'onlyBooleanFields', label: Soho.Locale.translate('FieldPicker_boolean_type_label') },\n { value: 'onlyNumberFields', label: Soho.Locale.translate('FieldPicker_number_type_label') },\n { value: 'onlyDateFields', label: Soho.Locale.translate('FieldPicker_date_type_label') },\n { value: 'onlyBinaryObjectFields', label: Soho.Locale.translate('FieldPicker_binary_type_label') },\n { value: 'onlyKeys', label: Soho.Locale.translate('FieldPicker_keyfield_type_label') },\n { value: 'onlyUserFields', label: Soho.Locale.translate('FieldPicker_userfield_type_label') },\n ];\n\n if (this.options.includeAuditFields) {\n this.fieldTypes.push({ value: 'onlyAuditFields', label: Soho.Locale.translate('FieldPicker_auditfield_type_label') });\n }\n }\n\n private buildGrid() {\n const headerColumns: ListGridColumn[] = [\n {\n id: LMFieldPickerComponent.SEARCH_FROM_HERE_COLUMN_ID,\n name: '',\n displayField: { columnId: 'fieldName', type: AppConstants.TEXT },\n icon: 'search-folder',\n sortable: false,\n resizable: false,\n minWidth: 50,\n maxWidth: 50,\n formatter: this.LMLinkFormatter,\n align: 'center',\n singleline: true,\n click: this.LMColumnClick,\n tooltip: this.LMListCellTooltip\n },\n {\n id: LMFieldPickerComponent.NAME_COLUMN_ID,\n name: Soho.Locale.translate('FieldPicker_FieldNameLabel'),\n field: 'fieldName',\n displayField: { columnId: 'fieldName', isTreeColumn: true, type: AppConstants.TEXT },\n sortable: false,\n minWidth: 200,\n maxWidth: 300,\n resizable: true,\n formatter: this.LMFieldFormatter,\n singleline: true,\n },\n {\n id: LMFieldPickerComponent.LABEL_COLUMN_ID,\n name: Soho.Locale.translate('FieldPicker_FieldLabelLabel'),\n field: 'label',\n displayField: { columnId: 'label', type: AppConstants.TEXT },\n sortable: false,\n resizable: true,\n minWidth: 300,\n maxWidth: 300,\n formatter: this.LMFieldFormatter,\n singleline: true,\n },\n {\n id: LMFieldPickerComponent.TYPE_COLUMN_ID,\n name: Soho.Locale.translate('FieldPicker_FieldTypeLabel'),\n field: 'fieldType',\n displayField: { columnId: 'fieldType', type: AppConstants.TEXT },\n sortable: false,\n resizable: true,\n minWidth: 125,\n formatter: this.LMFieldFormatter,\n singleline: true,\n tooltip: this.LMListCellTooltip\n }\n ];\n\n this.gridOptions = {\n columns: headerColumns,\n selectable: 'single',\n editable: false,\n paging: false,\n treeGrid: true,\n showDirty: false,\n emptyMessage: this.emptyMessage,\n rowHeight: 'short',\n clickToSelect: true,\n stretchColumn: LMFieldPickerComponent.NAME_COLUMN_ID,\n enableTooltips: true,\n stickyHeader: true,\n filterWhenTyping: false,\n };\n }\n\n private getUIFieldSpecData(row: number): UIFieldSpec {\n\n const flatDataViewArray = [];\n\n // Push root or multi roots\n this.dataGridComponent.dataset.forEach((d) => {\n flatDataViewArray.push(d);\n if (d.children) {\n flatten(d.children);\n }\n });\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n function flatten(data?: Array) {\n data.forEach((d) => {\n flatDataViewArray.push(d);\n\n if (d.children && d.children.length > 0) {\n flatten(d.children);\n }\n });\n }\n\n return flatDataViewArray[row];\n }\n\n private resetSearchTagCriteria() {\n this.searchingFromHereContext = [];\n this.searchingFromHereTags = [];\n this.searchingFromHere = false;\n }\n\n private refreshPage() {\n if (this.searchingFromHere) {\n const uiFieldSpec = this.searchingFromHereContext[this.searchingFromHereContext.length - 1];\n this.loadSearchFromHereData(uiFieldSpec);\n } else {\n this.loadInitialPage();\n }\n }\n\n private loadInitialPage() {\n this.cleanUpCancelNotifier();\n this.dataGridComponent?.unSelectAllRows();\n this._selectedRow = undefined;\n const params = this.buildRequestParams(this.options.businessClass);\n this.showBusyIndicator();\n this.closeNotification();\n\n this.lmFieldPickerService.getFieldSpecData(params, this.lookupUrl, this.options.businessClass).subscribe((response: LMFieldPickerResponse) => {\n\n if (this.handleServerError(response as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n\n const data = response.data;\n this.loadDataInGrid(data);\n\n if (data?.length > 0) {\n this.dataLoaded = true;\n this._selectedRow = data[0];\n }\n\n this.hideBusyIndicator();\n },\n error => {\n if (this.handleServerError(error.error as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n });\n }\n\n private handleInitialFocus() {\n this.dataGridComponent?.scrollRowIntoView(0);\n this.dataGridComponent?.selectRows(0);\n this.rowSelectedEvent.emit({ row: this.selectedRow });\n }\n\n private loadChildren(parent: UIFieldSpec) {\n this.cleanUpCancelNotifier();\n const businessClass: string = this.options.businessClass;\n const params = this.buildRequestParams(businessClass, parent);\n\n if (params.searchOptions) {\n // DO NOT apply filter to children!!!!!\n params.searchOptions = undefined;\n }\n\n if (params.relatedFieldFilter) {\n // DO NOT apply related filet to children, want to explore and not be limited!!!!!\n params.relatedFieldFilter = undefined;\n }\n\n this.lmFieldPickerService.getFieldSpecData(params, this.lookupUrl, this.options.businessClass).subscribe((response: LMFieldPickerResponse) => {\n\n if (this.handleServerError(response as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n\n const data = response.data;\n this.loadDataInGrid(data, parent);\n this.hideBusyIndicator();\n }, error => {\n if (this.handleServerError(error.error as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n });\n }\n\n private loadSearchFromHereData(uiFieldSpec: UIFieldSpec) {\n this.cleanUpCancelNotifier();\n this.dataGridComponent?.unSelectAllRows();\n this._selectedRow = undefined;\n const params = this.buildRequestParams(this.options.businessClass, uiFieldSpec);\n this.showBusyIndicator();\n this.closeNotification();\n\n this.lmFieldPickerService.getFieldSpecData(params, this.lookupUrl, this.options.businessClass).subscribe((response: LMFieldPickerResponse) => {\n\n if (this.handleServerError(response as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n\n const data = response.data;\n this.loadDataInGrid(data);\n\n if (data?.length > 0) {\n this.dataLoaded = true;\n this._selectedRow = data[0];\n }\n\n this.hideBusyIndicator();\n }, error => {\n if (this.handleServerError(error.error as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n });\n }\n\n private buildSearchTag(uiFieldSpec: UIFieldSpec): LMListSearchTag {\n const parent: string = this.lmFieldPickerService.getUIFieldSpecFullName(uiFieldSpec);\n return {\n id: parent,\n label: Soho.Locale.translate('SearchingFromContextLabel'),\n tag: parent,\n };\n }\n\n private loadDataInGrid(data: Array, parent?: UIFieldSpec) {\n const depth = parent ? parent.depth + 1 : 1;\n\n data.forEach((uiFieldSpec) => {\n uiFieldSpec.depth = depth;\n if (uiFieldSpec.hasChildren) {\n uiFieldSpec.children = [];\n uiFieldSpec.isLeaf = false;\n } else {\n uiFieldSpec.isLeaf = true;\n }\n });\n\n let datasource: Array;\n\n if (parent) {\n parent.children = data;\n (parent as any).childrenLoaded = true;\n datasource = this.dataGridComponent.dataset;\n datasource = [].concat(datasource);\n } else {\n datasource = data;\n }\n\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n data.map(function callback(uiFieldSpec: UIFieldSpec) {\n if (Array.isArray(uiFieldSpec.children)) {\n uiFieldSpec.children.map(callback);\n }\n });\n\n this.dataGridComponent.dataset = datasource;\n }\n\n private buildRequestParams(businessClass: string, parent?: UIFieldSpec): LMFieldPickerRequest {\n const searchOptions = this.hasSearchCriteria() ? this.searchOptions : undefined;\n\n return {\n requestType: ListRequestType.FieldSpecForBusClass,\n businessClass,\n parent,\n view: this.options.view,\n searchOptions,\n includeOptions: this.includeOptions,\n includeAuditFields: this.options.includeAuditFields,\n searchScope: this.searchScope,\n relatedFieldFilter: this.relatedFieldFilter,\n relatedFieldFilterComparator: 'equals'\n };\n }\n\n private runSearch() {\n if (!this.hasSearchCriteria()) {\n this.refreshPage();\n return;\n }\n\n this.cleanUpCancelNotifier();\n this.dataGridComponent?.unSelectAllRows();\n this._selectedRow = undefined;\n\n let businessClass: string;\n let parentUiFieldSpec;\n\n if (this.searchingFromHere) {\n const index = this.searchingFromHereContext.length - 1;\n parentUiFieldSpec = this.searchingFromHereContext[index];\n businessClass = parentUiFieldSpec.businessClass;\n\n } else {\n businessClass = this.options.businessClass;\n }\n\n this.dataGridComponent?.unSelectAllRows();\n this._selectedRow = undefined;\n const params = this.buildRequestParams(businessClass, parentUiFieldSpec);\n this.showBusyIndicator();\n this.closeNotification();\n\n this.lmFieldPickerService.getCancellableFieldSpecData(params, this.lookupUrl, this.options.businessClass).subscribe((response: LMFieldPickerResponse) => {\n\n if (response.status === 'STARTED') {\n this.cancelNotifier$ = response.cancelableNotifier;\n return;\n } else if (response.status === 'WAITING') {\n this.showNotification('Search is taking a while.', 'Click here to cancel your search');\n return;\n } else if (response.status === 'CANCELED') {\n this.hideBusyIndicator();\n this.closeNotification();\n this.cancelNotifier$ = null;\n return;\n } else {\n this.cancelNotifier$ = null;\n this.closeNotification();\n }\n\n if (this.handleServerError(response as LMError)) {\n this.hideBusyIndicator();\n return;\n }\n\n if (response.message) {\n this.showNotification(response.message);\n }\n\n const data = response.data;\n\n this.loadDataInGrid(data);\n\n if (data?.length > 0) {\n this.dataLoaded = true;\n this._selectedRow = data[0];\n }\n\n this.hideBusyIndicator();\n });\n }\n\n private resetSearchCriteria() {\n this.searchOptions.nameValue = '';\n this.includeOptions = [];\n this.searchScope = 'normal';\n }\n\n private hasSearchCriteria(): boolean {\n const searchValue = this.searchOptions.nameValue;\n return !(!searchValue || searchValue.trim().length === 0);\n }\n\n private _toggleOperator() {\n if (this.showingOperatorBuilder) {\n this.hideOperatorBuilder();\n } else {\n this.showOperatorBuilder(this.selectedRow);\n }\n }\n\n private showOperatorBuilder(uiFieldSpec: UIFieldSpec) {\n this.resetPeriodOperatorInfo();\n this._fieldOperatorInfo.periodOperatorInfo.periodInfo.category = 'period';\n this._fieldOperatorInfo.periodOperatorInfo.periodInfo.periodOperator = 'period';\n\n this.buildFieldOperatorOptions(uiFieldSpec);\n this.buildTypeOperatorOptions(uiFieldSpec);\n this.buildFieldStyleOptions(uiFieldSpec);\n this.lplName = this.lmFieldPickerService.getUIFieldSpecFullName(uiFieldSpec);\n this.showingOperatorBuilder = true;\n }\n\n private hideOperatorBuilder() {\n this.resetPeriodOperatorInfo();\n this.formatStyles = [];\n this.lplName = '';\n this.showingOperatorBuilder = false;\n }\n\n private buildFieldOperatorOptions(uiFieldSpec: UIFieldSpec) {\n if (uiFieldSpec.lmrkFieldType) {\n const isAuditList = this.options.includeAuditFields;\n\n if (isAuditList) {\n this.fieldOperators = [ { value: 'old', label: 'Previous Value' } ]; // TODO need translation\n return;\n }\n\n const isOtmField = this.lmFieldPickerService.isOTMField(uiFieldSpec);\n\n if (isOtmField) {\n if (uiFieldSpec.lmrkFieldType === AppConstants.BCD) {\n this.fieldOperators = this.lmFieldPickerService.OTM_BCD_FIELD_OPERATORS_GROUP;\n } else {\n this.fieldOperators = this.lmFieldPickerService.OTM_FIELD_OPERATORS_GROUP;\n }\n }\n } else {\n this.fieldOperators = [];\n }\n }\n\n private buildTypeOperatorOptions(uiFieldSpec: UIFieldSpec) {\n if (uiFieldSpec.lmrkFieldType) {\n if (uiFieldSpec.lmrkFieldType === AppConstants.YYYYMMDD) {\n this.typeOperators = this.lmFieldPickerService.DATE_TYPE_OPERATORS_GROUP;\n } else if (uiFieldSpec.lmrkFieldType === AppConstants.TIMESTAMP) {\n this.typeOperators = this.lmFieldPickerService.TIMESTAMP_TYPE_OPERATORS_GROUP;\n } else if (uiFieldSpec.lmrkFieldType === AppConstants.MMDD) {\n this.typeOperators = this.lmFieldPickerService.ANNIVERSARY_TYPE_OPERATORS_GROUP;\n } else if (uiFieldSpec.lmrkFieldType === AppConstants.YYYYMM) {\n this.typeOperators = this.lmFieldPickerService.PERIOD_TYPE_OPERATORS_GROUP;\n } else {\n this.typeOperators = [];\n }\n } else {\n this.typeOperators = [];\n }\n }\n\n private buildFieldStyleOptions(uiFieldSpec: UIFieldSpec) {\n if (uiFieldSpec.lmrkFieldType === AppConstants.TIMESTAMP\n || uiFieldSpec.lmrkFieldType === AppConstants.YYYYMMDD\n || uiFieldSpec.lmrkFieldType === AppConstants.YYYYMM\n || uiFieldSpec.lmrkFieldType === AppConstants.MMDD) {\n this.formatStyles = this.lmFieldPickerService.FORMAT_STYLES;\n } else {\n this.formatStyles = [];\n }\n }\n\n private showNotification(message: string, actionMessage?: string) {\n this.ngZone.run(() => {\n this.lmNotificationPlaceholder.isVisible = true;\n this.lmNotificationPlaceholder.message = message;\n this.lmNotificationPlaceholder.actionMessage = actionMessage;\n });\n }\n\n private closeNotification() {\n if (this.lmNotificationPlaceholder.isVisible) {\n this.ngZone.run(() => {\n this.lmNotificationPlaceholder.isVisible = false;\n this.lmNotificationPlaceholder.message = undefined;\n this.lmNotificationPlaceholder.actionMessage = undefined;\n });\n }\n }\n\n private handleServerError(error: LMError): boolean {\n if (error?.status === AppConstants.STATUS_SYSTEM_ERROR || error?.statusText === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleViewException(error);\n return true;\n }\n return false;\n }\n\n onSearchNameEnter(event) {\n this.runSearch();\n }\n\n onSearchClicked(event) {\n this.runSearch();\n }\n\n onClearSearchClicked(event) {\n this.resetSearchCriteria();\n this.resetSearchTagCriteria();\n this.loadBusClasses(this.options.businessClass);\n this.relatedFieldFilter = '';\n this.refreshPage();\n }\n\n onFieldNameComparatorChange(event: SohoFieldFilteredEvent) {\n if (event?.filterOption?.value) {\n this.searchOptions.nameComparator = event.filterOption?.value as LMFieldPickerSearchComparator;\n }\n }\n\n onBusinessClassComparatorChange(event: SohoFieldFilteredEvent) {\n if (event?.filterOption?.value) {\n this.relatedFieldFilterComparator = event.filterOption?.value as LMFieldPickerSearchComparator;\n }\n }\n\n onSearchTagRemoved(removedSearchTag: LMListSearchTag) {\n if (this.searchingFromHereContext.length > 0) {\n this.searchingFromHereContext.pop();\n }\n\n if (this.searchingFromHereContext.length > 0) {\n const index = this.searchingFromHereContext.length - 1;\n const uiFieldSpec = this.searchingFromHereContext[index];\n this.searchingFromHereTags = [ this.buildSearchTag(uiFieldSpec) ];\n this.loadBusClasses(uiFieldSpec.relatedBusinessClass);\n this.loadSearchFromHereData(uiFieldSpec);\n } else {\n this.resetSearchTagCriteria();\n this.loadBusClasses(this.options.businessClass);\n this.loadInitialPage();\n }\n }\n\n onRowSelected(event: SohoDataGridRowClicked) {\n if (!event) {\n return;\n }\n\n const row: number = event.row;\n this._selectedRow = this.getUIFieldSpecData(row) as UIFieldSpec;\n const lmFieldPickerRowSelectionEvent: LMFieldPickerRowSelectionEvent = { row: this.selectedRow };\n this.rowSelectedEvent.emit(lmFieldPickerRowSelectionEvent);\n }\n\n onRowDoubleClicked(event: SohoDataGridRowClicked) {\n if (!event) {\n return;\n }\n\n const row: number = event.row;\n this._selectedRow = this.getUIFieldSpecData(row) as UIFieldSpec;\n\n if (this.options.view === 'SimpleConditions'\n && (this.selectedRow.fieldType !== 'STATE' && this.selectedRow.fieldType !== 'BOOLEAN' && this.selectedRow.fieldType !== 'CONDITION')) {\n return;\n }\n\n if (this.selectedRow.fieldName === 'agent' || this.selectedRow.fieldName === 'context' || this.selectedRow.fieldName.endsWith(')')) {\n return;\n }\n\n const lmFieldPickerRowSelectionEvent: LMFieldPickerRowSelectionEvent = { row: this.selectedRow };\n this.uiFieldSpecSelectionEvent.emit(lmFieldPickerRowSelectionEvent);\n }\n\n onExpandRow(event: SohoDataGridToggleRowEvent) {\n const rowData: UIFieldSpec = event.rowData;\n if ((rowData as any).childrenLoaded) {\n return;\n }\n\n this.showBusyIndicator();\n this.closeNotification();\n\n setTimeout(() => this.loadChildren(rowData));\n }\n\n onCollapseRow(event: SohoDataGridToggleRowEvent) {\n // no -op\n }\n\n onFieldSpecSelected(callback) {\n if (this.selectedRow === undefined || (this.selectedRow.fieldName === 'agent' || this.selectedRow.fieldName === 'context' || this.selectedRow.fieldName.endsWith(')'))) {\n return;\n }\n if (this.options.view === 'SimpleConditions'\n && (this.selectedRow.fieldType !== 'BOOLEAN' && this.selectedRow.fieldType !== 'STATE' && this.selectedRow.fieldType !== 'CONDITION')) {\n const dialogId = 'ConditionSelectionMessage';\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('ListPersonalizationConditionErrorMessage'))\n .title(Soho.Locale.translate('ListPersonalizationConditionSelectionTitle'))\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n }\n }\n ])\n .open();\n return;\n }\n\n callback();\n }\n\n onOperatorChange(id: string) {\n const uiFieldSpec = this.selectedRow;\n\n if ('periodCategory' === id || 'periodOperator' === id || 'periodPriorNext' === id) {\n this.periodLabel = this._fieldOperatorInfo?.periodOperatorInfo?.periodInfo?.category === 'periodRange' ? Soho.Locale.translate('FieldPicker_from_label') : this.buildPeriodLabel();\n } else if ('yearOperator' === id) {\n if (!this._fieldOperatorInfo?.periodOperatorInfo?.yearInfo?.yearOperator) {\n this._fieldOperatorInfo.periodOperatorInfo.yearInfo.year = undefined;\n }\n }\n\n this.lplName = this.lmFieldPickerService.buildFieldNameWithOperatorInfo(uiFieldSpec, this._fieldOperatorInfo, this.options);\n this.operatorExample = this.lmFieldPickerService.buildFormatExample(this._fieldOperatorInfo);\n }\n\n onNotificationEvent(event: LMNotificationEvent) {\n this.cancelSearchRequest();\n }\n\n private onColumnClicked(event: Event, args: SohoDataGridColumnClickData[]) {\n if (args?.length > 0) {\n const cell = args[0].cell;\n const uiFieldSpec = args[0].item;\n const column = this.dataGridComponent?.getColumns()[cell as any]; // SOHO type seems wrong, should be a number not an HTMLElement\n const columnId = column?.id;\n\n if (LMFieldPickerComponent.SEARCH_FROM_HERE_COLUMN_ID === columnId) {\n this.searchingFromHereContext.push(uiFieldSpec);\n this.searchingFromHereTags = [ this.buildSearchTag(uiFieldSpec) ];\n this.searchingFromHere = true;\n this.loadBusClasses(uiFieldSpec.relatedBusinessClass);\n this.loadSearchFromHereData(uiFieldSpec);\n }\n }\n };\n\n private onCellTooltip(row: number, cell: number, value: any, columnDef: ListGridColumn, uiFieldSpec: UIFieldSpec, dataGrid: SohoDataGridStatic): string {\n if (LMFieldPickerComponent.SEARCH_FROM_HERE_COLUMN_ID === columnDef.id) {\n return this.lmFormatUtilService.formatMessage(Soho.Locale.translate('SearchFromContextLabel'), uiFieldSpec.fieldName);\n }\n\n if (LMFieldPickerComponent.TYPE_COLUMN_ID === columnDef.id && uiFieldSpec.lmrkFieldType) {\n return uiFieldSpec.lmrkFieldType;\n }\n }\n\n private decorateAsKey(uiFieldSpec): boolean {\n if (uiFieldSpec?.isOntologyContext) {\n if (this.searchingFromHereContext.length > 0) {\n const searchFromUiFieldSpec = this.searchingFromHereContext[this.searchingFromHereContext.length -1];\n return uiFieldSpec?.businessClass === searchFromUiFieldSpec.relatedBusinessClass;\n } else {\n return uiFieldSpec?.businessClass === this.options.businessClass;\n }\n }\n return false;\n }\n\n private cleanUpCancelNotifier(): void {\n if (this.cancelNotifier$) {\n this.cancelNotifier$.next(true);\n this.cancelNotifier$ = null;\n }\n }\n\n private cancelSearchRequest() {\n if (this.cancelNotifier$) {\n this.cancelNotifier$.next(true);\n }\n }\n\n private resetPeriodOperatorInfo() {\n this._fieldOperatorInfo = {\n periodOperatorInfo: {\n yearInfo: { yearOperator: undefined, year: undefined },\n periodInfo: { category: undefined, priorNext: undefined, periodOperator: undefined, to: undefined, from: undefined }\n },\n fieldOperator: undefined,\n typeOperatorInfo: {\n typeOperator: undefined,\n asOfDate: undefined,\n splitOn: ',',\n useFullName: undefined,\n useShortName: false,\n javaFormat: undefined,\n formatStyle: 'short',\n withShortDayName: false,\n withDayName: false,\n } };\n }\n LMFieldFormatter = (row: number, cell: number, value: any, headerColumns: ListGridColumn, uiFieldSpec: UIFieldSpec, dataGrid: SohoDataGridStatic): string =>\n lmFieldPickerFormatter(this.lmFieldPickerService, this.lmFormatUtilService, this.searchingFromHereContext, this.searchOptions.nameValue, this.decorateAsKey(uiFieldSpec), row, cell, value, headerColumns, uiFieldSpec, dataGrid);\n\n LMLinkFormatter = (row: number, cell: number, value: any, headerColumns: ListGridColumn, uiFieldSpec: UIFieldSpec, dataGrid: SohoDataGridStatic): string =>\n lmFieldPickerHyperLinkFormatter(this.lmFieldPickerService, row, cell, value, headerColumns, uiFieldSpec, dataGrid);\n\n LMColumnClick = (e: Event, args: SohoDataGridColumnClickData[]) => this.onColumnClicked(e, args);\n\n LMListCellTooltip = (row: number, cell: number, value: any, columnDef: ListGridColumn, uiFieldSpec: UIFieldSpec, dataGrid: SohoDataGridStatic): string =>\n this.onCellTooltip(row, cell, value, columnDef, uiFieldSpec, dataGrid);\n\n public toggleOperator() {\n this.ngZone.run(() => this._toggleOperator());\n }\n\n\n private buildPeriodLabel(): string {\n if (this._fieldOperatorInfo?.periodOperatorInfo?.periodInfo?.priorNext) {\n return Soho.Locale.translate('FieldPicker_shift_label');\n } else {\n switch (this._fieldOperatorInfo?.periodOperatorInfo?.periodInfo.periodOperator) {\n case 'period': return Soho.Locale.translate('FieldPicker_number_label');\n case 'week': return Soho.Locale.translate('FieldPicker_weekOption_label');\n case 'month': return Soho.Locale.translate('FieldPicker_monthOption_label');\n case 'quarter': return Soho.Locale.translate('FieldPicker_quarterOption_label');\n case 'year': return Soho.Locale.translate('FieldPicker_yearOption_label');\n default: return Soho.Locale.translate('FieldPicker_number_label');\n }\n }\n }\n}\n\n","
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n \n \n \n
          \n
          \n \n \n \n \n
          \n
          \n \n \n \n \n \n\n \n
          \n
          \n
          \n
          \n \n \n
          \n 1 ? 'left-arrow' : 'close'\"\n >\n
          \n \n
          \n
          \n
          \n
          \n\n \n
          \n
          \n \n

          {{ 'FieldPicker_periodOperator_label' | translate }}

          \n
          \n
          \n \n \n \n \n \n \n \n \n \n
          \n
          \n
          \n
          \n \n \n \n \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n \n \n \n \n
          \n
          \n {{ 'FieldPicker_period_label' | translate }}\n \n \n \n \n \n \n \n
          \n
          \n {{periodLabel}}\n \n
          \n
          \n {{ 'FieldPicker_thru_label' | translate }}\n \n
          \n
          \n
          \n\n \n

          {{ 'FieldPicker_AddOperatorLabel' | translate }}

          \n
          \n 0\" id=\"fieldOperatorContainer\">\n
          \n
          \n \n \n \n \n \n \n \n \n \n
          \n
          \n
          \n
          0\" class=\"scope-criteria \">\n
          \n \n \n \n \n \n \n \n \n \n
          \n
          \n
          \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
          \n \n \n
          \n
          \n \n
          \n \n \n \n \n
          \n
          \n \n
          \n \n \n
          \n
          \n \n \n
          \n \n
          \n
          \n
          \n\n
          \n
          \n \n

          {{lplName}}

          \n
          \n
          \n \n

          {{operatorExample}}

          \n
          \n
          \n
          \n
          \n
          \n\n
          \n","export * from './lm-field-picker-service';\n","import { Injectable, NgZone, ViewContainerRef } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport { LMFieldPickerComponent } from '@modal/field-picker/lm-field-picker.component';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport { AppConstants, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { Observable } from 'rxjs';\nimport { Observer, Subject, throwError, timer } from 'rxjs';\nimport {\n LMFieldOperatorOptionState,\n LMFieldPickerRequest,\n LMFieldPickerResponse,\n LMFieldPickerSelectOptions,\n LMFieldPickerSelectResponse,\n LMFieldPickerView,\n LMFormatStyleOptionState,\n LMOperatorInfo,\n LMPeriodInfo,\n LMPeriodOperatorInfo,\n LMTypeOperatorInfo,\n LMTypeOperatorOptionState, LMYearPeriodInfo\n} from '@modal/field-picker/lm-field-picker';\nimport { LMContextService, LMFormatUtilService } from '@app/services';\n\n\n@Injectable()\nexport class LMFieldPickerService {\n\n public static ADD_OPERATOR_BUTTON_ID = 'fieldPickerAddOperatorBtn'\n\n // FIELD OPERATORS ==================================================================================\n public OTM_FIELD_OPERATORS_GROUP: Array = [\n { value: 'first', label: Soho.Locale.translate('FieldPicker_first_field_operator') },\n { value: 'last', label: Soho.Locale.translate('FieldPicker_last_field_operator') },\n {\n label: Soho.Locale.translate('FieldPicker_calculation_field_operator_group'), children: [\n { value: 'instance count of', label: Soho.Locale.translate('FieldPicker_instance_count_field_operator') },\n ]\n },\n ];\n\n public OTM_BCD_FIELD_OPERATORS_GROUP: Array = [\n { value: 'first', label: Soho.Locale.translate('FieldPicker_first_field_operator') },\n { value: 'last', label: Soho.Locale.translate('FieldPicker_last_field_operator') },\n {\n label: Soho.Locale.translate('FieldPicker_calculation_field_operator_group'), children: [\n { value: 'sum', label: Soho.Locale.translate('FieldPicker_sum_field_operator') },\n { value: 'avg', label: Soho.Locale.translate('FieldPicker_avg_field_operator') },\n { value: 'min', label: Soho.Locale.translate('FieldPicker_min_field_operator') },\n { value: 'max', label: Soho.Locale.translate('FieldPicker_max_field_operator') },\n { value: 'instance count of', label: Soho.Locale.translate('FieldPicker_instance_count_field_operator') },\n ]\n },\n ];\n\n public AUDIT_FIELD_OPERATORS: Array = [\n { value: 'old', label: Soho.Locale.translate('FieldPicker_old_field_operator') },\n ];\n\n // TYPE OPERATORS ==================================================================================\n public FIELD_INFO_TYPE_OPERATORS: Array = [\n { value: 'size', label: Soho.Locale.translate('FieldPicker_size_type_operator') },\n { value: 'label', label: Soho.Locale.translate('FieldPicker_label_type_operator') },\n { value: 'name', label: Soho.Locale.translate('FieldPicker_name_type_operator') },\n { value: 'full name', label: Soho.Locale.translate('FieldPicker_fullname_type_operator') },\n ];\n\n public OTHER_OPERATORS: Array = [\n { value: 'as of', label: Soho.Locale.translate('FieldPicker_asofdate_type_operator') },\n ];\n\n public STRING_TYPE_OPERATORS: Array = [\n // { value: 'uppercase', label: 'uppercase', info: 'Transform value to all uppercase' },\n // { value: 'lowercase', label: 'lowercase', info: 'Transform value to all lowercase' },\n {\n value: 'split', label: Soho.Locale.translate('FieldPicker_splits_type_operator') },\n ];\n\n public FORMATTING_OPERATORS: Array = [\n // { value: 'timestamp format', label: 'timestamp format', info: 'Display with format' },\n { value: 'date format', label: Soho.Locale.translate('FieldPicker_dateFormat_type_operator') },\n { value: 'anniversary format', label: Soho.Locale.translate('FieldPicker_anniversaryFormat_type_operator') },\n { value: 'period format', label: Soho.Locale.translate('FieldPicker_periodFormat_type_operator') },\n { value: 'using', label: Soho.Locale.translate('FieldPicker_javaFormat_type_operator') },\n ];\n\n public TIMESTAMP_TYPE_OPERATORS: Array = [\n { value: 'corporate date', label: Soho.Locale.translate('FieldPicker_corporateDate_type_operator') },\n { value: 'system date', label: Soho.Locale.translate('FieldPicker_systemDate_type_operator') },\n { value: 'date', label:Soho.Locale.translate('FieldPicker_date_type_operator') },\n { value: 'time', label: Soho.Locale.translate('FieldPicker_time_type_operator') },\n ];\n\n public DATE_TYPE_OPERATORS: Array = [\n // { value: 'first date in year', label: 'First Date In Year' }, // TODO Translate\n // { value: 'first date in month', label: 'First Date In Month' }, // TODO Translate\n // { value: 'first date in week', label: 'First Date In Week' }, // TODO Translate\n // { value: 'last date in year', label: 'Last Date In Year' }, // TODO Translate\n // { value: 'last date in month', label: 'Last Date In Month' }, // TODO Translate\n // { value: 'last date in week', label: 'Last Date In Week' }, // TODO Translate\n\n { value: 'anniversary', label: Soho.Locale.translate('FieldPicker_anniversary_type_operator') },\n { value: 'period', label: Soho.Locale.translate('FieldPicker_period_type_operator') },\n { value: 'year', label: Soho.Locale.translate('FieldPicker_year_type_operator') },\n { value: 'year day', label: Soho.Locale.translate('FieldPicker_yearDay_type_operator') },\n { value: 'month', label: Soho.Locale.translate('FieldPicker_month_type_operator') },\n { value: 'month name', label: Soho.Locale.translate('FieldPicker_monthName_type_operator') },\n { value: 'month short name', label: Soho.Locale.translate('FieldPicker_monthShortName_type_operator') },\n { value: 'day', label: Soho.Locale.translate('FieldPicker_day_type_operator') },\n { value: 'day name', label: Soho.Locale.translate('FieldPicker_dayName_type_operator') },\n { value: 'day short name', label: Soho.Locale.translate('FieldPicker_dayShortName_type_operator') },\n { value: 'week', label: Soho.Locale.translate('FieldPicker_week_type_operator') },\n { value: 'week day', label: Soho.Locale.translate('FieldPicker_weekDay_type_operator') },\n { value: 'week year', label: Soho.Locale.translate('FieldPicker_weekYear_type_operator') },\n { value: 'days in month', label: Soho.Locale.translate('FieldPicker_daysInMonth_type_operator') },\n { value: 'days in year', label: Soho.Locale.translate('FieldPicker_daysInYear_type_operator') },\n ];\n\n public TIME_TYPE_OPERATORS: Array = [\n { value: 'hours', label: Soho.Locale.translate('FieldPicker_hours_type_operator') },\n { value: 'minutes', label: Soho.Locale.translate('FieldPicker_minutes_type_operator') },\n { value: 'seconds', label: Soho.Locale.translate('FieldPicker_seconds_type_operator') },\n ];\n\n public ANNIVERSARY_TYPE_OPERATORS: Array = [\n { value: 'anniversary format', label: Soho.Locale.translate('FieldPicker_anniversaryFormat_type_operator') },\n ];\n\n public PERIOD_TYPE_OPERATORS: Array = [\n { value: 'period format', label: Soho.Locale.translate('FieldPicker_periodFormat_type_operator') },\n ];\n\n public NUMERIC_TYPE_OPERATORS: Array = [\n { value: 'as years', label: Soho.Locale.translate('FieldPicker_asYears_type_operator') },\n { value: 'as months', label: Soho.Locale.translate('FieldPicker_asMonths_type_operator') },\n { value: 'as days', label: Soho.Locale.translate('FieldPicker_asDays_type_operator') },\n ];\n\n public BCD_TYPE_OPERATORS: Array = [\n { value: 'decimals', label: Soho.Locale.translate('FieldPicker_decimals_type_operator') },\n ];\n\n public RICH_TEXT_TYPE_OPERATORS: Array = [\n { value: 'plain text', label: Soho.Locale.translate('FieldPicker_plainText_type_operator') },\n ];\n\n public BINARY_TYPE_OPERATORS: Array = [\n { value: 'mime type', label: Soho.Locale.translate('FieldPicker_mimeType_type_operator') },\n { value: 'in base64', label: Soho.Locale.translate('FieldPicker_base64_type_operator') },\n ];\n\n public ARRAY_TYPE_OPERATORS: Array = [\n { value: 'levels', label: Soho.Locale.translate('FieldPicker_levels_type_operator') },\n { value: 'entries', label: Soho.Locale.translate('FieldPicker_entries_type_operator') },\n ];\n\n public COMPACT_FORMAT_TYPE_OPERATORS: Array = [\n { value: 'compact format', label: Soho.Locale.translate('FieldPicker_compactFormat_type_operator') },\n ];\n\n public TEXT_VARIABLES_TYPE_OPERATORS: Array = [\n { value: 'text', label: Soho.Locale.translate('FieldPicker_text_type_operator') },\n ];\n\n\n // TYPE OPERATORS GROUPS ============================================================================\n public TIMESTAMP_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_formatting_group_label'), children: this.FORMATTING_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_timestamp_group_label'), children: this.TIMESTAMP_TYPE_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_date_group_label'), children: this.DATE_TYPE_OPERATORS\n }\n ];\n\n public DATE_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_formatting_group_label'), children: this.FORMATTING_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_date_group_label'), children: this.DATE_TYPE_OPERATORS\n },\n ];\n\n public TIME_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_time_group_label'), children: this.TIME_TYPE_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public ANNIVERSARY_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_anniversary_group_label'), children: this.ANNIVERSARY_TYPE_OPERATORS\n }\n ];\n\n public PERIOD_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_period_group_label'), children: this.PERIOD_TYPE_OPERATORS\n }\n ];\n\n public NUMERIC_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_numeric_group_label'), children: this.NUMERIC_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public BCD_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_bcd_group_label'), children: this.BCD_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public RICH_TEXT_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_richText_group_label'), children: this.RICH_TEXT_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public BINARY_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_binaryField_group_label'), children: this.BINARY_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public ARRAY_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_array_group_label'), children: this.ARRAY_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public COMPACT_FORMAT_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_groupField_group_label'), children: this.COMPACT_FORMAT_TYPE_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public TEXT_VARIABLES_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_textVariables_group_label'), children: this.TEXT_VARIABLES_TYPE_OPERATORS\n },\n ];\n\n public STRING_TYPE_OPERATORS_GROUP: Array = [\n {\n label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.STRING_TYPE_OPERATORS\n },\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public TYPE_OPERATORS_GROUP: Array = [\n // {\n // label: Soho.Locale.translate('FieldPicker_other_group_label'), children: this.OTHER_OPERATORS\n // },\n {\n label: Soho.Locale.translate('FieldPicker_fieldInfo_group_label'), children: this.FIELD_INFO_TYPE_OPERATORS\n },\n ];\n\n public FORMAT_STYLES: Array = [\n { value: 'short', label: Soho.Locale.translate('FieldPicker_shortFormat_operator') },\n { value: 'medium', label: Soho.Locale.translate('FieldPicker_mediumFormat_operator') },\n { value: 'long', label: Soho.Locale.translate('FieldPicker_longFormat_operator') },\n ];\n\n constructor(private http: HttpClient,\n private sohoModalDialogService: SohoModalDialogService,\n private lmLoggerService: LMLoggerService,\n private lmContextService: LMContextService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmFormatUtilService: LMFormatUtilService,\n private zone: NgZone,\n ) {\n // no-op\n }\n\n public getBusinessClassForRelatedField(dataview: LMDataView, fieldName: string, resourceId: string, url: string): Observable {\n const params = {\n fieldName,\n requestType: 'GetRelatedFieldBusinessClass',\n dataView: dataview\n };\n const templateUrl = urltemplate.parse(url);\n const urlCompiled = templateUrl.expand({ resourceId });\n return >this.http.post(urlCompiled, params).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public openFieldPickerDialog(options: LMFieldPickerSelectOptions, fieldLookUpUrl: string, placeHolder: ViewContainerRef): Observable {\n let fieldPickerComponent: LMFieldPickerComponent;\n const returnQuery = new Subject();\n const formName = 'fieldPicker';\n let operatorToggle = false;\n\n const closeModalWith = (result) => {\n modalRef.close(true);\n this.zone.run(() => {\n returnQuery.next(result);\n returnQuery.complete();\n });\n };\n\n // Create modal button\n const buttons = [];\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ options.businessClass, formName, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: () => {\n closeModalWith(undefined);\n },\n }\n );\n\n if (options.enableOperatorBuilder) {\n buttons.push(\n {\n id: LMFieldPickerService.ADD_OPERATOR_BUTTON_ID,\n text: Soho.Locale.translate('FieldPicker_AddOperatorLabel'),\n click: () => {\n operatorToggle = !operatorToggle;\n const newLabel = operatorToggle ? Soho.Locale.translate('FieldPicker_SkipOperatorLabel') : Soho.Locale.translate('FieldPicker_AddOperatorLabel');\n\n const sohoButtonOptions: Array = modalRef.buttonsetAPI?.settings?.buttons || [];\n for (let i = 1; i < sohoButtonOptions.length; i++) {\n if (sohoButtonOptions[i].id === LMFieldPickerService.ADD_OPERATOR_BUTTON_ID) {\n sohoButtonOptions[i].text = newLabel;\n modalRef.buttonsetAPI.at(i).updated(sohoButtonOptions[i]);\n break;\n }\n }\n fieldPickerComponent.toggleOperator();\n },\n }\n );\n }\n\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ options.businessClass, formName, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: () => {\n fieldPickerComponent.onFieldSpecSelected(() => {\n const response = {\n fieldName: this.buildFieldNameWithOperatorInfo(fieldPickerComponent.selectedRow, fieldPickerComponent.fieldOperatorInfo, fieldPickerComponent.options),\n uiFieldSpec: fieldPickerComponent.selectedRow\n };\n closeModalWith(response);\n });\n },\n isDefault: true,\n }\n );\n\n let title: string;\n if (options.view === 'RelatedLinks') {\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_RelatedLink_Dialog_Title'), options.businessClass);\n } else if (options.view === 'Measures') {\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_Measure_Dialog_Title'), options.businessClass);\n } else if (options.view === 'SimpleConditions') {\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_SimpleCondition_Dialog_Title'), options.businessClass);\n } else if (options.view === 'Dimensions' || options.view === 'DimensionsWithAttributes' ){\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_Dimension_Dialog_Title'), options.businessClass);\n } else {\n title = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldPicker_Field_Dialog_Title'), options.businessClass);\n }\n\n const modalRef = this.sohoModalDialogService.modal(LMFieldPickerComponent, placeHolder, { fullsize: 'responsive' })\n .title(title)\n .buttons(buttons)\n .isAlert(false)\n .open()\n .apply((dialogComponent: LMFieldPickerComponent) => {\n fieldPickerComponent = dialogComponent;\n fieldPickerComponent.lookupUrl = fieldLookUpUrl;\n fieldPickerComponent.options = options;\n\n fieldPickerComponent.uiFieldSpecSelectionEvent.subscribe((event: LMFieldPickerRowSelectionEvent) => {\n if (event && event.row) {\n const response = {\n fieldName: this.buildFieldNameWithOperatorInfo(event.row, fieldPickerComponent.fieldOperatorInfo, fieldPickerComponent.options),\n uiFieldSpec: event.row\n };\n closeModalWith(response);\n }\n });\n\n if (options.enableOperatorBuilder) {\n fieldPickerComponent.rowSelectedEvent.subscribe((event: LMFieldPickerRowSelectionEvent) => {\n if (event && event.row) {\n const sohoButtonOptions: Array = modalRef.buttonsetAPI?.settings?.buttons || [];\n\n if (options.view === 'Fields') {\n let disabled = !this.supportsFieldOperator(event.row);\n\n if (options.includeAuditFields) {\n disabled = false; // always available for audit lists so use can choose old value.\n }\n\n for (let i = 1; i < sohoButtonOptions.length; i++) {\n if (sohoButtonOptions[i].id === LMFieldPickerService.ADD_OPERATOR_BUTTON_ID) {\n modalRef.buttonsetAPI.at(i).disabled = disabled;\n }\n }\n }\n }\n });\n }\n })\n .beforeClose(() => {\n // if ref.dialogResult is undefined, the escape key was used\n if (!modalRef.dialogResult) {\n closeModalWith(undefined);\n return true;\n }\n });\n\n return returnQuery.asObservable();\n }\n\n public getFieldSpecData(params: LMFieldPickerRequest, url: string, businessClass: string): Observable {\n const templateUrl = urltemplate.parse(url);\n const urlCompiled = templateUrl.expand({ resourceId: businessClass });\n return this._makeHttpCall(urlCompiled, params);\n }\n\n public getCancellableFieldSpecData(params: LMFieldPickerRequest, url: string, businessClass: string): Observable {\n const templateUrl = urltemplate.parse(url);\n const urlCompiled = templateUrl.expand({ resourceId: businessClass });\n\n return new Observable(observer => {\n const cancelSubject$ = new Subject();\n cancelSubject$.subscribe(cancelled => {\n observer.next({ status: 'CANCELED' });\n observer.complete();\n });\n\n const cancellableNotifier = new LMFieldPickerSearchNotifier(observer, cancelSubject$, 10000);\n cancellableNotifier.start();\n this._makeCancellableHttpCall(cancelSubject$, urlCompiled, params).subscribe((response: LMListPagingResponse) => {\n cancellableNotifier.finish();\n observer.next(response);\n observer.complete();\n });\n });\n }\n\n private _makeHttpCall(url: string, params: LMFieldPickerRequest): Observable {\n return >this.http.post(url, params).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n private _makeCancellableHttpCall(cancelSubject$: Subject, url: string, params: LMFieldPickerRequest): Observable {\n return >this.http.post(url, params).pipe(takeUntil(cancelSubject$),\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public isOTMField(uiFieldSpec: UIFieldSpec): boolean {\n\n if (uiFieldSpec && uiFieldSpec.parentFieldTypes) {\n const parentFieldTypes = uiFieldSpec.parentFieldTypes.split('.');\n return parentFieldTypes.length > 0 && parentFieldTypes.includes('OTM_RELATION');\n }\n\n return false;\n }\n\n public getUIFieldSpecSearchName(uiFieldSpec: UIFieldSpec, searchFrom?: UIFieldSpec): string {\n if (uiFieldSpec.depth > 1) {\n return uiFieldSpec.fieldName;\n } else {\n return this.getUIFieldSpecFullName(uiFieldSpec, searchFrom);\n }\n };\n\n public getUIFieldSpecFullName(uiFieldSpec: UIFieldSpec, searchFrom?: UIFieldSpec): string {\n if (uiFieldSpec.parent) {\n let childName;\n const agentParent = uiFieldSpec.parent.endsWith('agent');\n\n if (agentParent) {\n childName = `${uiFieldSpec.parent}${uiFieldSpec.fieldName}`;\n } else {\n childName = `${uiFieldSpec.parent}.${uiFieldSpec.fieldName}`;\n }\n\n if (searchFrom) {\n const searchFromName = this.getUIFieldSpecFullName(searchFrom);\n const suffix = agentParent ? '' : '.';\n return childName.replace(searchFromName + suffix, '');\n } else {\n return childName;\n }\n }\n return uiFieldSpec.fieldName;\n };\n\n public buildFieldNameWithOperatorInfo(uiFieldSpec: UIFieldSpec, operatorInfo: LMOperatorInfo, fieldPickerOptions: LMFieldPickerSelectOptions): string {\n if (!uiFieldSpec) {\n return '';\n }\n\n const fieldName = this.getUIFieldSpecFullName(uiFieldSpec);\n\n if (!operatorInfo || fieldPickerOptions.view === 'RelatedLinks') {\n return fieldName;\n }\n\n if (fieldPickerOptions.view === 'Measures') {\n return this.buildPeriodOperatorLPL(fieldName, operatorInfo.periodOperatorInfo);\n }\n\n // Field and Type Operators for Fields and SimpleConditions\n let fieldOperator = operatorInfo?.fieldOperator ? operatorInfo.fieldOperator : '';\n\n if (this.isOTMField(uiFieldSpec) && !fieldOperator) {\n fieldOperator = 'first';\n }\n\n const typeOperator = this.buildTypeOperatorLPL(operatorInfo);\n const array = [ fieldOperator, fieldName, typeOperator ];\n return array.join(' ').trim();\n }\n\n private buildPeriodOperatorLPL(measure: string, info: LMPeriodOperatorInfo): string {\n const yearOperator = this.buildYearOperator(info.yearInfo);\n const periodOperator = this.buildPeriodOperator(info.periodInfo);\n const lpl = `${yearOperator} ${periodOperator}`.trim();\n return `${measure} ${lpl}`.trim();\n }\n\n private buildYearOperator(info: LMYearPeriodInfo): string {\n if (!info) {\n return '';\n }\n\n if (info.yearOperator) {\n const year = info.yearOperator && info.year? info.year : '';\n return `${info.yearOperator} ${year}`.trim();\n } else {\n return '';\n }\n }\n\n private buildPeriodOperator(info: LMPeriodInfo): string {\n if (!info) {\n return '';\n }\n\n const priorNext = info.priorNext ? info.priorNext : '';\n const period = info.periodOperator ? info.periodOperator : '';\n const thruNumber = info.to ? info.to : '';\n const fromNumber = info.from ? info.from : '';\n const baseLPL = `${priorNext} ${period} ${fromNumber}`.trim();\n\n if (info.category === 'periodRange') {\n if (!thruNumber || !fromNumber) {\n return baseLPL;\n } else {\n return `${priorNext} ${period} ${fromNumber} thru ${thruNumber}`.trim();\n }\n } else if (info.category === 'beginning balance') {\n return `${baseLPL} beginning balance`;\n } else if (info.category === 'beginning ytd balance') {\n return `${baseLPL} beginning ytd balance`;\n } else if (info.category === 'ending balance') {\n return `${baseLPL} ending balance`;\n } else if (info.category === 'ending ytd balance') {\n return `${baseLPL} ending ytd balance`;\n } else if (info.category === 'period') {\n return baseLPL;\n }\n\n return '';\n }\n\n private buildTypeOperatorLPL(operatorInfo: LMOperatorInfo): string {\n if (operatorInfo?.typeOperatorInfo) {\n const typeOperator = operatorInfo.typeOperatorInfo.typeOperator;\n\n switch (typeOperator) {\n case undefined:\n return '';\n case 'period format':\n return operatorInfo.typeOperatorInfo.formatStyle + ' period';\n case 'anniversary format':\n return operatorInfo.typeOperatorInfo.formatStyle + ' anniversary ' + this.buildWithDay(operatorInfo.typeOperatorInfo);\n case 'date format':\n return operatorInfo.typeOperatorInfo.formatStyle + ' date ' + this.buildWithDay(operatorInfo.typeOperatorInfo);\n case 'using':\n return typeOperator + ' \"' + operatorInfo.typeOperatorInfo?.javaFormat + '\"';\n case 'split':\n return typeOperator + ' on \"' + operatorInfo.typeOperatorInfo.splitOn + '\"';\n default:\n return typeOperator;\n }\n\n return '';\n }\n }\n\n private buildWithDay(info: LMTypeOperatorInfo): string {\n if (info.withDayName) {\n if (info.withShortDayName) {\n return 'with day short name';\n } else {\n return 'with day name';\n }\n } else {\n return '';\n }\n }\n\n public buildFormatExample(operatorInfo: LMOperatorInfo): string {\n\n if (!operatorInfo) {\n return '';\n }\n\n if (operatorInfo.typeOperatorInfo) {\n const typeOperator = operatorInfo.typeOperatorInfo.typeOperator;\n\n switch (typeOperator) {\n case 'period format':\n return this.buildPeriodFormatExample(operatorInfo.typeOperatorInfo);\n case 'anniversary format':\n return this.buildAnniversaryFormatExample(operatorInfo.typeOperatorInfo);\n case 'date format':\n return this.buildDateFormatExample(operatorInfo.typeOperatorInfo);\n default:\n return '';\n }\n }\n }\n\n private buildDateFormatExample(typeOperatorInfo: LMTypeOperatorInfo): string {\n const date = new Date();\n switch (typeOperatorInfo.formatStyle) {\n case 'short':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: '2-digit', month: 'numeric', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: '2-digit', month: 'numeric', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: '2-digit', month: 'numeric', day:'numeric' });\n }\n break;\n case 'medium':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'short', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'short', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'short', day:'numeric' });\n }\n break;\n case 'long':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'long', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'long', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month: 'long', day:'numeric' });\n }\n break;\n default:\n return '';\n }\n }\n\n private buildAnniversaryFormatExample(typeOperatorInfo: LMTypeOperatorInfo): string {\n const date = new Date();\n\n switch (typeOperatorInfo.formatStyle) {\n case 'short':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'numeric', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'numeric', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'numeric', day:'numeric' });\n }\n break;\n case 'medium':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'short', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'short', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'short', day:'numeric' });\n }\n break;\n case 'long':\n if (typeOperatorInfo.withDayName) {\n if (typeOperatorInfo.withShortDayName) {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'long', day:'2-digit', weekday: 'short' });\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'long', day:'2-digit', weekday: 'long' });\n }\n } else {\n return date.toLocaleString(Soho.Locale.currentLocale.name, { month: 'long', day:'numeric' });\n }\n break;\n default:\n return '';\n }\n }\n\n private buildPeriodFormatExample(typeOperatorInfo: LMTypeOperatorInfo): string {\n const date = new Date();\n\n switch (typeOperatorInfo.formatStyle) {\n case 'short':\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: '2-digit', month:'numeric' });\n return '';\n case 'medium':\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month:'short' });\n return '';\n case 'long':\n return date.toLocaleString(Soho.Locale.currentLocale.name, { year: 'numeric', month:'long' });\n default:\n return '';\n }\n }\n\n public supportsFieldOperator(uiFieldSpec: UIFieldSpec): boolean {\n\n if (!uiFieldSpec) {\n return false;\n }\n\n if (this.isOTMField(uiFieldSpec)) {\n return true;\n }\n\n if (uiFieldSpec.lmrkFieldType === AppConstants.YYYYMMDD\n || uiFieldSpec.lmrkFieldType === AppConstants.TIMESTAMP\n || uiFieldSpec.lmrkFieldType === AppConstants.MMDD\n || uiFieldSpec.lmrkFieldType === AppConstants.YYYYMM) {\n return true;\n } else {\n return false;\n }\n\n // return !(!uiFieldSpec\n // || uiFieldSpec.fieldType === 'STATE'\n // || uiFieldSpec.fieldType === 'OTM_RELATION'\n // || uiFieldSpec.fieldType === 'OTO_RELATION'\n // || (uiFieldSpec.fieldType === 'GROUP' && !uiFieldSpec.isCompactFormat));\n }\n\n public boldQuery(str, query): string {\n\n if (!str || !query) {\n return '';\n }\n const n = str.toUpperCase();\n const q = query.toUpperCase();\n const x = n.indexOf(q);\n if (!q || x === -1) {\n return str; // bail early\n }\n const l = q.length;\n return str.substr(0, x) + '' + str.substr(x, l) + '' + str.substr(x + l);\n }\n\n public createFieldPickerView(lplFieldInfo: LMLPLFieldInfo): LMFieldPickerView {\n if (lplFieldInfo.mode === 'RelatedLink') {\n return 'RelatedLinks';\n } else if (lplFieldInfo.dimensionsOrMeasuresOnly) {\n if (lplFieldInfo.dimensionsOrMeasuresOnly === 'measures') {\n return 'Measures';\n } else {\n return (lplFieldInfo.withAttributes) ? 'DimensionsWithAttributes' : 'Dimensions';\n }\n } else {\n return 'Fields';\n }\n }\n\n public includesAuditFields(lplFieldInfo: LMLPLFieldInfo): boolean {\n if (lplFieldInfo.mode === 'RelatedLink') {\n return false;\n } else {\n return !lplFieldInfo.dimensionsOrMeasuresOnly;\n }\n }\n\n public fieldPickerOperatorsEnabled(lplFieldInfo: LMLPLFieldInfo): boolean {\n if (lplFieldInfo.dimensionsOrMeasuresOnly && lplFieldInfo.dimensionsOrMeasuresOnly === 'measures'){\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport class LMFieldPickerSearchNotifier {\n private clock: Observable;\n private finished = false;\n private observer: Observer;\n private cancelSubject$: Subject;\n private interval: number;\n\n constructor(observer: Observer, cancelSubject$: Subject, interval: number) {\n this.observer = observer;\n this.cancelSubject$ = cancelSubject$;\n this.interval = interval;\n }\n\n public start() {\n this.observer.next({ status: 'STARTED', cancelableNotifier: this.cancelSubject$ });\n this.setTimer();\n }\n\n public finish() {\n this.finished = true;\n }\n\n private setTimer() {\n this.clock = timer(this.interval);\n this.clock.subscribe(x => {\n if (this.finished) {\n return;\n }\n\n this.observer.next({ status: 'WAITING' });\n this.setTimer();\n });\n }\n}\n\n","export * from './services';\nexport * from './lm-filter-builder.component';\nexport * from './lm-filter-builder-field-lookup.component';\nexport * from './lm-filter-builder-row.component';\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { SohoAlertDirective, SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { LMFieldPickerService } from '@modal/field-picker/services';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport * as urltemplate from 'url-template';\nimport { catchError, debounceTime } from 'rxjs/operators';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport {\n LMFieldPickerResponse,\n LMFieldPickerSelectOptions,\n LMFieldPickerSelectResponse,\n LMFieldPickerView\n} from '@modal/field-picker/lm-field-picker';\nimport {LMConfigurationService} from \"@app/services\";\n\n/*\n* TODO: Refactor once create report is implemented\n */\n\n@Component({\n selector: 'lm-filter-builder-field-lookup',\n templateUrl: './lm-filter-builder-field-lookup.component.html',\n styleUrls: [ './lm-filter-builder-field-lookup.component.scss' ]\n})\nexport class LMFilterBuilderFieldLookupComponent implements OnInit {\n\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild('modalPlaceholder', { read: ViewContainerRef }) modalPlaceholder: ViewContainerRef;\n @ViewChild(SohoAlertDirective) fieldAlert: SohoAlertDirective;\n\n @Input() id: string;\n @Input() qualifier: Qualifier;\n @Input() businessClass: string;\n @Input() includeAuditFields: boolean;\n @Input() lookupUrl: string;\n @Input() index: number;\n @Input() position: string;\n @Input() mode: LMFieldPickerView | 'Fields';\n @Input() fieldSearchUrl: string;\n @Input() lplValidationUrl: string;\n\n @Output() fieldSelectionEvent = new EventEmitter();\n\n modelChanged: Subject = new Subject();\n\n fieldId: string;\n\n constructor(private lmFieldPickerService: LMFieldPickerService,\n private http: HttpClient,\n private lmUniqueIdService: LMUniqueIdService,\n private lmConfigurationService: LMConfigurationService) {\n }\n\n /*onGetFieldQualifier = (e, lookup) => {\n this.busyIndicator.activated = true;\n this.lmFieldPickerService.openFieldPickerDialog(this.modalPlaceholder, this.businessClass, this.lookupUrl, this.mode)\n .subscribe((result: UIFieldSpec) => {\n if (result) {\n this.handleRowSelectionEvent(result);\n }\n this.busyIndicator.activated = false;\n });\n };*/\n\n ngOnInit(): void {\n\n this.fieldId = this.lmUniqueIdService.uniqueId([ this.id, this.index.toString() ]);\n\n this.modelChanged.pipe(\n debounceTime(10)).subscribe( input => {\n\n this.qualifier.updated = true;\n this.qualifier.validated = false;\n this.qualifier.isValid = false;\n\n if (this.qualifier.text === '') {\n this.fieldAlert.removeAllMessages();\n this.qualifier.validated = true;\n this.qualifier.isValid = true;\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n } else {\n this.fieldIsValid(this.qualifier.text)\n .subscribe((response: any) => {\n if (response.lplStatus === 'LPL_VALID' || this.qualifier.type === 'OTO_RELATION' || this.qualifier.type === 'OTM_RELATION') {\n this.fieldAlert.removeAllMessages();\n this.qualifier.isValid = true;\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n } else {\n this.fieldAlert.addInlineMessage(response.message.error, 'error');\n this.qualifier.isValid = false;\n }\n this.qualifier.validated = true;\n });\n }\n });\n }\n\n private handleRowSelectionEvent(response: LMFieldPickerSelectResponse) {\n if (response) {\n this.qualifier.index = this.index;\n this.qualifier.position = this.position;\n\n const uiFieldSpec = response.uiFieldSpec;\n const fieldName = response.fieldName;\n\n this.qualifier.text = fieldName;\n this.qualifier.type = uiFieldSpec.fieldType; // this should use the lmrkFieldType\n this.qualifier.validated = true;\n this.qualifier.isValid = true;\n\n this.fieldAlert.removeAllMessages();\n\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n }\n };\n\n autoCompleteSource = ((searchTerm: string, response: SohoAutoCompleteResponseFunction) => {\n this.searchField(searchTerm)\n .subscribe((fieldPickerResponse: LMFieldPickerResponse) => {\n let uiFieldSpecNames;\n if (fieldPickerResponse.data) {\n uiFieldSpecNames = fieldPickerResponse.data.map(uiFieldSpec => {\n const fieldName = this.lmFieldPickerService.getUIFieldSpecSearchName(uiFieldSpec);\n return {\n value: fieldName,\n label: fieldName,\n fieldType: uiFieldSpec.fieldType\n }\n });\n\n response(searchTerm, uiFieldSpecNames);\n }\n });\n });\n\n onGetFieldQualifier($event: Event) {\n const options: LMFieldPickerSelectOptions = {\n view: this.mode,\n businessClass: this.businessClass,\n includeAuditFields: this.includeAuditFields\n };\n this.lmFieldPickerService.openFieldPickerDialog(options, this.lookupUrl, this.modalPlaceholder)\n .subscribe((result) => {\n this.handleRowSelectionEvent(result);\n });\n }\n\n searchField(searchTerm: string): Observable {\n const formRequest: any = {\n lookupField: searchTerm\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(this.fieldSearchUrl);\n\n const url = compiledUrlTemplate.expand({ resourceId: this.businessClass });\n return this.lmConfigurationService.searchField(searchTerm, url, this.businessClass, 'Fields');\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n return throwError(error || 'Server error');\n }\n\n onAutoCompleteSelected(event: Event) {\n this.fieldIsValid(event[ 2 ].label)\n .subscribe((response: any) => {\n if (response.lplStatus === 'LPL_VALID' || event[ 2 ].value === 'OTO_RELATION' || event[ 2 ].value === 'OTM_RELATION') {\n this.fieldAlert.removeAllMessages();\n this.qualifier.text = event[ 2 ].label;\n // The value attribute needs to be unique which is why fieldName and fieldType is combined.\n this.qualifier.type = event[ 2 ].fieldType;\n this.qualifier.isValid = true;\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n } else {\n this.fieldAlert.addInlineMessage(response.message.error, 'error');\n this.qualifier.isValid = false;\n }\n this.qualifier.validated = true;\n });\n }\n\n fieldIsValid(value: string): Observable {\n const formRequest: any = {\n requestType: 'validateField',\n param1: this.businessClass,\n param2: value,\n param3: this.businessClass,\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(this.lplValidationUrl);\n\n const url = compiledUrlTemplate.expand({ resourceId: this.businessClass });\n\n return > this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n onChange(event: Event) {\n this.modelChanged.next((event.target).value);\n }\n\n validateField() {\n if (this.qualifier.text === '') {\n this.fieldAlert.removeAllMessages();\n this.qualifier.validated = true;\n this.qualifier.isValid = true;\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n } else {\n this.fieldIsValid(this.qualifier.text)\n .subscribe((response: any) => {\n if (response.lplStatus === 'LPL_VALID' || this.qualifier.type === 'OTO_RELATION' || this.qualifier.type === 'OTM_RELATION') {\n this.fieldAlert.removeAllMessages();\n this.qualifier.isValid = true;\n this.fieldSelectionEvent.emit({ qualifier: this.qualifier });\n } else {\n this.fieldAlert.addInlineMessage(response.message.error, 'error');\n this.qualifier.isValid = false;\n }\n this.qualifier.validated = true;\n });\n }\n }\n}\n","
          \n \n\n \n
          \n \n\n \n
          \n
          \n
          \n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { SohoAlertDirective, SohoSpinboxComponent } from 'ids-enterprise-ng';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { filter } from 'cypress/types/bluebird';\n\n@Component({\n selector: 'lm-filter-builder-row',\n templateUrl: './lm-filter-builder-row.component.html',\n styleUrls: [ './lm-filter-builder-row.component.scss' ]\n})\nexport class LMFilterBuilderRowComponent implements OnInit {\n\n @ViewChild(SohoSpinboxComponent) spinboxComponent: SohoSpinboxComponent;\n @ViewChild(SohoAlertDirective) alert: SohoAlertDirective;\n\n @Input() filterRow: FilterRow;\n @Input() businessClass: string;\n @Input() includeAuditFields: boolean;\n @Input() lookupUrl: string;\n @Input() index: number;\n @Input() fieldSearchUrl: string;\n @Input() lplValidationUrl: string;\n\n @Output() onFieldLookUpEvent = new EventEmitter();\n @Output() onRemoveRowEvent = new EventEmitter();\n\n conditions: Array;\n hasPredicate: boolean;\n literalId: string;\n checkboxId: string;\n operatorId: string;\n\n constructor(private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmUniqueIdService: LMUniqueIdService) {\n }\n\n ngOnInit() {\n this.setupConditionSelection('subject');\n this.literalId = this.lmUniqueIdService.uniqueId([ 'literal', this.index.toString() ]);\n this.checkboxId = this.lmUniqueIdService.uniqueId([ 'checkbox', this.index.toString() ]);\n this.operatorId = this.lmUniqueIdService.uniqueId([ 'operator', this.index.toString() ]);\n this.hidePredicate();\n }\n\n setupConditionSelection(source?: string) {\n if (source === 'subject') {\n this.filterRow.condition = '';\n }\n\n this.conditions = [];\n\n if (this.filterRow.subject.type === 'TEXT'\n || this.filterRow.subject.type === 'GROUP'\n || this.filterRow.subject.type === 'BINARY'\n || this.filterRow.subject.type === 'BINARY_DOCUMENT'\n || this.filterRow.subject.type === 'BINARY_OBJECT'\n || this.filterRow.subject.type === 'UNIQUEID'\n || this.filterRow.subject.type === 'ACTOR'\n || this.filterRow.subject.type === 'ARRAY'\n || this.filterRow.subject.type === 'BUSCLASS'\n || this.filterRow.subject.type === 'CONTEXT') {\n this.conditions.push({ value: 'like', label: 'Like' });\n }\n\n if (this.filterRow.subject.type === 'TEXT'\n || this.filterRow.subject.type === 'GROUP'\n || this.filterRow.subject.type === 'BINARY'\n || this.filterRow.subject.type === 'BINARY_DOCUMENT'\n || this.filterRow.subject.type === 'BINARY_OBJECT'\n || this.filterRow.subject.type === 'UNIQUEID'\n || this.filterRow.subject.type === 'ACTOR'\n || this.filterRow.subject.type === 'ARRAY'\n || this.filterRow.subject.type === 'BUSCLASS'\n || this.filterRow.subject.type === 'CONTEXT'\n || this.filterRow.subject.type === 'NUMBER'\n || this.filterRow.subject.type === 'DATE'\n || this.filterRow.subject.type === 'TIME'\n || this.filterRow.subject.type === 'TIMESTAMP'\n || this.filterRow.subject.type === 'CHANGESTAMP') {\n this.conditions.push({ value: 'equalTo', label: 'Equal to' });\n this.conditions.push({ value: 'notEqualTo', label: 'Not equal to' });\n this.conditions.push({ value: 'entered', label: 'Entered' });\n this.conditions.push({ value: 'notEntered', label: 'Not entered' });\n }\n\n if (this.filterRow.subject.type === 'NUMBER'\n || this.filterRow.subject.type === 'DATE'\n || this.filterRow.subject.type === 'TIME'\n || this.filterRow.subject.type === 'TIMESTAMP'\n || this.filterRow.subject.type === 'CHANGESTAMP') {\n this.conditions.push({ value: 'greaterThan', label: 'Greater than' });\n this.conditions.push({ value: 'greaterThanOrEqualTo', label: 'Greater than or equal to' });\n this.conditions.push({ value: 'lessThan', label: 'Less than' });\n this.conditions.push({ value: 'lessThanOrEqualTo', label: 'Less than or equal to' });\n }\n\n if (this.filterRow.subject.type === 'BOOLEAN'\n || this.filterRow.subject.type === 'CONDITION'\n || this.filterRow.subject.type === 'STATE') {\n this.conditions.push({ value: 'true', label: 'True' });\n this.conditions.push({ value: 'false', label: 'False' });\n }\n\n if (this.filterRow.subject.type === 'OTO_RELATION' || this.filterRow.subject.type === 'OTM_RELATION') {\n this.conditions.push({ value: 'exist', label: 'Exist' });\n this.conditions.push({ value: 'doesNotExist', label: 'Does not exist' });\n }\n }\n\n onRemoveButtonEvent() {\n this.filterRow.index = this.index;\n this.onRemoveRowEvent.emit({ filterRow: this.filterRow });\n }\n\n handleFieldLookUpEvent(event: LMFieldLookUpEvent, source: string) {\n this.setupConditionSelection(source);\n this.hidePredicate();\n this.changeDetectorRef.detectChanges();\n }\n\n hidePredicate() {\n this.hasPredicate = this.filterRow.subject.type === 'BOOLEAN'\n || this.filterRow.subject.type === 'OTO_RELATION'\n || this.filterRow.subject.type === 'OTM_RELATION'\n || this.filterRow.subject.type === 'CONDITION'\n || this.filterRow.subject.type === 'STATE'\n || this.filterRow.condition === 'entered'\n || this.filterRow.condition === 'notEntered';\n\n if (this.hasPredicate) {\n this.filterRow.predicate.text = '';\n this.filterRow.predicate.type = '';\n }\n }\n\n clearField() {\n this.filterRow.predicate.text = '';\n this.filterRow.predicate.type = 'TEXT';\n }\n}\n","
          \n
          \n
          \n \n \n
          \n
          \n
          \n \n \n \n \n \n \n \n \n \n \n
          \n
          \n \n
          \n \n \n \n \n \n
          \n \n \n
          \n
          \n
          \n
           
          \n \n {{'Literal' | translate}}\n
          \n
          \n
          \n \n
          \n  \n
          \n
          \n  \n
          \n
          \n
          \n
          \n
          \n
          \n
           
          \n \n
          \n
          \n
          \n
          \n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AppConstants, LMDialogButtonKey } from '@utils/app.constants';\nimport { SohoAlertDirective, SohoMessageService, SohoSpinboxComponent } from 'ids-enterprise-ng';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\n\n@Component({\n selector: 'lm-filter-builder',\n templateUrl: './lm-filter-builder.component.html',\n styleUrls: [ './lm-filter-builder.component.scss' ]\n})\nexport class LMFilterBuilderComponent implements OnInit {\n\n @ViewChild(SohoSpinboxComponent) spinboxComponent: SohoSpinboxComponent;\n @ViewChild(SohoAlertDirective) alert: SohoAlertDirective;\n\n @Input() businessClass: string;\n @Input() includeAuditFields: boolean;\n @Input() lookupUrl: string;\n @Input() fieldSearchUrl: string;\n @Input() lplValidationUrl: string;\n\n @Output() filterData = new EventEmitter();\n\n public static MATCH_OPTION_ALL = 'all';\n public static MATCH_OPTION_ANY = 'any';\n\n separator: string;\n\n buildAnotherLabel: string;\n\n public model = {\n conditionString: '',\n includeBaseFilter: false,\n matchOption: '',\n businessClass: '',\n listName: '',\n };\n\n private _filterRows = new Array();\n\n get filterRows(): Array {\n return this._filterRows;\n }\n\n get matchOption(): string {\n if (this.model.matchOption === LMFilterBuilderComponent.MATCH_OPTION_ALL) {\n return AppConstants.CONDITION_AND;\n } else if (this.model.matchOption === LMFilterBuilderComponent.MATCH_OPTION_ANY) {\n return AppConstants.CONDITION_OR;\n }\n }\n\n constructor(private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private changeDetectorRef: ChangeDetectorRef,\n private sohoMessageService: SohoMessageService,\n private lmUniqueIdService: LMUniqueIdService) {\n }\n\n ngOnInit() {\n this.buildAnotherLabel = Soho.Locale.translate('BuildAnother');\n this.model.matchOption = LMFilterBuilderComponent.MATCH_OPTION_ALL;\n this.separator = AppConstants.CONDITION_AND;\n this.createOneFilterRowEntry();\n }\n\n private createOneFilterRowEntry() {\n this.filterRows.push({\n subject: { text: '', type: 'TEXT' },\n condition: '',\n predicate: { text: '', type: 'TEXT' },\n literal: false\n });\n }\n\n onMatchChange(event: Event) {\n if (this.model.matchOption === LMFilterBuilderComponent.MATCH_OPTION_ALL\n && this.separator === AppConstants.CONDITION_OR) {\n this.separator = AppConstants.CONDITION_AND;\n } else if (this.model.matchOption === LMFilterBuilderComponent.MATCH_OPTION_ANY\n && this.separator === AppConstants.CONDITION_AND) {\n this.separator = AppConstants.CONDITION_OR;\n }\n }\n\n onRemoveButtonEvent(event: LMFilterBuilderRemoveRowEvent, isFirst: boolean) {\n if (!isFirst) {\n this.filterRows.splice(this.filterRows.indexOf(event.filterRow), 1);\n } else {\n this.filterRows[ 0 ].subject.text = '';\n this.filterRows[ 0 ].subject.type = 'TEXT';\n\n this.filterRows[ 0 ].predicate.text = '';\n this.filterRows[ 0 ].predicate.type = 'TEXT';\n }\n }\n\n onAddButtonEvent(event: Event) {\n this.filterRows.push({ subject: { text: '', type: 'TEXT' }, condition: '', predicate: { text: '', type: 'TEXT' } });\n this.changeDetectorRef.detectChanges();\n }\n\n validateFilterConditions(): boolean {\n let valid = true;\n\n this.filterRows.forEach(filterRow => {\n valid = this.valdateFilterCriteria(filterRow);\n });\n\n if (valid) {\n return true;\n } else {\n const buttons = [\n // tslint:disable-next-line - shadowed variable e,\n {\n id: this.lmUniqueIdService.uniqueId([ 'ValidationError', LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n click: (e, modal) => {\n modal.close(true);\n }\n }\n ];\n this.sohoMessageService\n .message()\n .message(` ${Soho.Locale.translate('ConditionLineError')} `)\n .title(Soho.Locale.translate('ValidationError'))\n .buttons(buttons)\n .open();\n }\n return false;\n }\n\n private valdateFilterCriteria(filterRow: FilterRow): boolean {\n if (filterRow.subject.text === ''\n || filterRow.condition === ''\n || filterRow.subject.text.trim().length === 0\n || filterRow.condition.trim().length === 0) {\n return false;\n }\n\n if (!(filterRow.subject.type === 'BOOLEAN'\n || filterRow.subject.type === 'OTO_RELATION'\n || filterRow.subject.type === 'OTM_RELATION'\n || filterRow.subject.type === 'CONDITION'\n || filterRow.subject.type === 'STATE'\n || filterRow.condition === 'entered'\n || filterRow.condition === 'notEntered')\n && (filterRow.predicate.text === '' || filterRow.predicate.text.trim().length === 0)) {\n return false;\n }\n\n if (filterRow.predicate.type === 'OTO_RELATION' || filterRow.predicate.type === 'OTM_RELATION') {\n return false;\n }\n\n return true;\n }\n\n}\n","
          \n
          \n
          \n \n \n \n \n \n
          \n
          \n \n
          \n

          {{ 'Conditions' | translate }}

          \n
          \n \n \n \n 1 && !isLast\">\n \n
          \n
          \n
          \n
          \n
          \n

          {{separator}}

          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n \n
          \n","export * from './lm-filter-builder.service';\n","import {Injectable} from '@angular/core';\nimport {LMFilterBuilderComponent} from '@modal/filter-builder/lm-filter-builder.component';\nimport {Observable, Subject} from 'rxjs';\nimport {SohoMessageService, SohoModalDialogService} from 'ids-enterprise-ng';\nimport {FilterBuilderDialogResult} from '@utils/index';\nimport {LMFormatUtilService} from '@services/utils';\n\n@Injectable()\nexport class LMFilterBuilderService {\n constructor(private sohoModalDialogService: SohoModalDialogService,\n private lmFormatUtilService: LMFormatUtilService,\n private sohoMessageService: SohoMessageService) {\n }\n\n public openBuilderDialog(busclass: string, fieldLookUpUrl: string, fieldSearchUrl: string, lplValidationUrl: string, includeAuditFields?: boolean): Observable {\n let lmFilterBuilderComponentRef: LMFilterBuilderComponent;\n const returnQuery = new Subject();\n\n const closeModalWith = (result, modal) => {\n modal.close(true);\n returnQuery.next({lplQuery: result, matchOption: lmFilterBuilderComponentRef.matchOption });\n returnQuery.complete();\n };\n\n // Create modal button\n const buttons = [\n {\n text: Soho.Locale.translate('Cancel'),\n click: (e, modal) => {\n closeModalWith(undefined, modal);\n }\n },\n {\n text: Soho.Locale.translate('Ok'),\n click: (e, modal) => {\n if (lmFilterBuilderComponentRef.validateFilterConditions()) {\n closeModalWith(this.convertFilterRowCriteria(lmFilterBuilderComponentRef.filterRows, lmFilterBuilderComponentRef.matchOption), modal);\n }\n },\n isDefault: true,\n },\n ];\n\n this.sohoModalDialogService\n .modal(LMFilterBuilderComponent)\n .options({fullsize: 'responsive'})\n .cssClass(\"lm-filter-builder\")\n .title(this.lmFormatUtilService.formatMessage(Soho.Locale.translate('LplConditionBuilderTitle'), busclass))\n .buttons(buttons)\n .open()\n .apply((dialogComponent: LMFilterBuilderComponent) => {\n lmFilterBuilderComponentRef = dialogComponent;\n lmFilterBuilderComponentRef.businessClass = busclass;\n lmFilterBuilderComponentRef.lookupUrl = fieldLookUpUrl;\n lmFilterBuilderComponentRef.fieldSearchUrl = fieldSearchUrl;\n lmFilterBuilderComponentRef.lplValidationUrl = lplValidationUrl;\n lmFilterBuilderComponentRef.includeAuditFields = includeAuditFields;\n });\n\n return returnQuery.asObservable();\n }\n\n private convertFilterRowCriteria(filterRows: Array, macthOption: string): string {\n let query = '';\n const rowSize: number = filterRows.length;\n let i = 0;\n\n query += '(';\n filterRows.forEach(filterRow => {\n i++;\n if (filterRow.condition === 'false') {\n query += '!';\n }\n\n query += filterRow.subject.text;\n\n if (filterRow.condition !== 'false') {\n query += ' ';\n }\n\n switch (filterRow.condition) {\n case 'equalTo':\n query += '= ';\n break;\n case 'notEqualTo':\n query += '!= ';\n break;\n case 'entered':\n query += 'entered';\n break;\n case 'notEntered':\n query += 'not entered';\n break;\n case 'greaterThan':\n query += '>';\n break;\n case 'greaterThanOrEqualTo':\n query += '>=';\n break;\n case 'lessThan':\n query += '<';\n break;\n case 'lessThanOrEqualTo':\n query += '<=';\n break;\n case 'exist':\n query += 'exists';\n break;\n case 'doesNotExist':\n query += 'not exists';\n break;\n case 'like':\n query += 'like';\n break;\n }\n\n if (filterRow.predicate.text.trim().length !== 0) {\n if (filterRow.literal && filterRow.subject.type !== 'NUMBER') {\n query += ` \"${filterRow.predicate.text}\"`;\n } else {\n query += ` ${filterRow.predicate.text}`;\n }\n\n }\n\n if (i !== rowSize) {\n query += ` ${macthOption} `;\n }\n });\n query += ')';\n\n return query;\n\n }\n\n public promptAppendOverwriteConfirmationMessage(): Observable {\n const msgConfirm = new Subject();\n\n const message = Soho.Locale.translate('ConditionExistsMessage');\n\n const closeModalWith = (result: FilterBuilderDialogResult, modal) => {\n modal.close(true);\n msgConfirm.next(result);\n msgConfirm.complete();\n };\n\n // Build the buttons array\n const buttons = [\n // tslint:disable-next-line - shadowed variable e,\n { text: Soho.Locale.translate('Append'), click: (e, modal) => {\n closeModalWith(FilterBuilderDialogResult.CONFIRMATION_APPEND, modal);\n }},\n { text: Soho.Locale.translate('Overwrite'), click: (e, modal) => {\n closeModalWith(FilterBuilderDialogResult.CONFIRMATION_OVERWRITE, modal);\n }},\n { text: Soho.Locale.translate('Cancel'), click: (e, modal) => {\n closeModalWith(FilterBuilderDialogResult.CONFIRMATION_CANCEL, modal);\n }, isDefault: true}\n ];\n\n // Show the confirmation message dialog.\n this.sohoMessageService\n .message()\n .message('' + message + '')\n .buttons(buttons)\n .title(Soho.Locale.translate('ConditionExistsTitle'))\n .open();\n\n return msgConfirm.asObservable();\n }\n\n}\n","export * from './print-dialog';\nexport * from './field-picker';\nexport * from './filter-builder';\nexport * from './compute-builder';\nexport * from './saved-search';\nexport * from './lm-report-personalization-dialog.service';\nexport * from './lm-action-form-dialog.service';\nexport * from './lm-action-form-dialog.component';\nexport * from './lm-compact-form-dialog.component';\nexport * from './lm-compact-form-dialog.service';\nexport * from './lm-confirmation-message.service';\nexport * from './lm-contextual-action-panel.service';\nexport * from './lm-dirty-check-dialog.component';\nexport * from './lm-response-required.service';\nexport * from './lm-response-required-modal-form.component';\nexport * from './lm-helper-list-dialog.service';\nexport * from './lm-helper-list-dialog.component';\nexport * from './lm-select-record-dialog.component';\nexport * from './lm-select-record-dialog.service';\nexport * from './lm-select-dialog.component';\nexport * from './lm-select-dialog.service';\nexport * from './lm-sub-form-dialog.component';\nexport * from './lm-sub-form-dialog.service';\nexport * from './lm-report-personalization-swaplist-service';\nexport * from './lm-report-personalization-dialog.component';\n// export * from './lm-field-editor-dialog.component';\n// export * from './lm-field-editor-dialog.service';\n// export * from './lm-compute-editor-dialog.service';\n// export * from './lm-compute-editor-dialog.component';\nexport * from './lm-pending-changes-dialog.component';\nexport * from './lm-keyboard-shortcuts-dialog.component';\n","import {\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n HostListener\n} from '@angular/core';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\n\n@Component({\n selector: 'lm-action-form',\n template: `\n \n `\n})\nexport class LMActionFormDialogComponent {\n\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() dataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() actionFormOptions: LMActionFormOptions;\n @Input() defaultButton: SohoModalButton;\n\n @Output() titleChanged = new EventEmitter();\n\n @ViewChild(forwardRef(() => LMFormComponent), { static: true }) formComponent; // : LMFormComponent;\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n //dont trigger default button by enter key when focused on a button, link, text area or a rich text field\n if (this.defaultButton) {\n const eventTarget: HTMLElement = event.target as HTMLElement;\n if (this.lmKeyboardShortcutService.onKeyDown(event) === LMKeyType.SAVE\n || (event.code === 'Enter'\n && eventTarget?.tagName !== 'BUTTON'\n && eventTarget?.tagName !== 'A'\n && eventTarget?.tagName !== 'TEXTAREA'\n && !eventTarget?.hasAttribute('soho-editor'))) {\n\n //need to trigger the blur event to trigger the field's change event\n eventTarget.blur();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.defaultButton.click(null,null);\n }\n }\n }\n\n constructor(\n private changeDetectionRef: ChangeDetectorRef,\n private lmKeyboardShortcutService: LMKeyboardShortcutService,\n ) {}\n\n triggerDetectChanges() {\n this.changeDetectionRef.markForCheck();\n }\n\n onTitleChanged(newTitle: string) {\n this.titleChanged.emit(newTitle);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { SohoMessageService, SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\n\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMActionFormDialogComponent } from './lm-action-form-dialog.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMDataService } from '@services/lm-data.service';\nimport { LMActionRequest } from '@services/lm-action.service';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMScheduleDialogService } from '@modal/print-dialog/schedule/lm-schedule-dialog.service';\nimport { AppConstants, LMActionRequestSaveMode, LMActionRequestStatus, LMUniqueIdService } from '@utils/index';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { filter } from 'rxjs/operators';\nimport { LMContextService } from '@services/lm-context.service';\n\nexport enum LMActionFormDialogResultCode {\n ACTION_FORM_DIALOG_CANCEL = 0,\n ACTION_FORM_DIALOG_OK,\n ACTION_FORM_DIALOG_OK2,\n ACTION_FORM_DIALOG_COMPARE,\n ACTION_FORM_DIALOG_PFACTION,\n ACTION_FORM_DIALOG_SAVED,\n ACTION_FORM_DIALOG_ENABLEBUTTONS,\n ACTION_FORM_DIALOG_OPENERROR,\n ACTION_FORM_DIALOG_CLEAR,\n ACTION_FORM_VALIDATE_ONLY\n}\n\nexport interface LMActionFormDialogResult {\n result: LMActionFormDialogResultCode;\n pfActionName?: string;\n pfActionRequestSaveMode?: LMActionRequestSaveMode;\n scheduleView?: LMDataView;\n status?: string;\n actionRequestArray: LMActionRequest[];\n transactionStateResult: LMTransactionState;\n openError?: LMError;\n}\n\n@Injectable()\nexport class LMActionFormDialogService {\n constructor(\n private ngZone: NgZone,\n private sohoMessageService: SohoMessageService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmDataService: LMDataService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmScheduleDialogService: LMScheduleDialogService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmContextService: LMContextService,\n ) {}\n\n private openDialogs: Array> = [];\n private scheduleView: Array = [];\n\n public get hasOpenDialog(): boolean {\n return this.openDialogs.length > 0;\n }\n\n public get getOpenDialog(): SohoModalDialogRef {\n return this.hasOpenDialog ? this.openDialogs[ this.openDialogs.length - 1 ] : undefined;\n }\n\n public getActionFormDialogDataView(formDataUrl: string): Observable {\n return this.lmDataService.getRecord(formDataUrl);\n }\n\n public getDataViewFieldButtonDataView(formDataUrl: string, dataView?: LMDataView): Observable {\n if (dataView) {\n const formDataView: LMDataView = JSON.parse(JSON.stringify(dataView));\n formDataView.status = AppConstants.STATUS_COMPLETED;\n return new Observable(observer => {\n observer.next(formDataView);\n observer.complete();\n });\n }\n return this.lmDataService.getRecord(formDataUrl);\n }\n\n public runActionFormDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n actionSpec: LMActionSpec,\n dataView?: LMDataView,\n transactionState?: LMTransactionState,\n actionFormOptions?: LMActionFormOptions,\n loadTimerStarted?: boolean,\n hideActionButtons?: boolean,\n ): Observable {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.lmLoggerService.log([ 'LMActionFormDialog', 'formService.getFormSpec()', 'Complete' ]);\n\n // actionDialog$ subject is there to facilitate communication between the form component and dialog frame.\n const actionDialog$: Subject = new Subject();\n // Action form dialog pushes the result onAfterClose and the transaction service observer will get the result.\n // do not have to push the transaction observer here\n // actionDialog$.observers.push(observer);\n\n let dialog: SohoModalDialogRef = this.sohoModalDialogService.modal(\n LMActionFormDialogComponent, null, { fullsize: 'responsive' });\n\n // Todo: Button text, title translation.\n const buttons = this.getDialogButtons(dataView, formSpec, actionSpec, dialog, actionDialog$, transactionState, actionFormOptions, hideActionButtons);\n\n const defaultButton = buttons.find(button => button.isDefault);\n\n if (!loadTimerStarted) {\n this.lmLoggerService.time({\n id: 'TotalActionForm',\n description: 'TOTAL ACTION FORM',\n className: 'LMActionFormDialogService',\n timingStart: 'LMActionFormDialogService -> runActionFormDialog()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n }\n\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: `lm-${formSpec?.automationId}-modal`\n } ];\n\n const useFullPage = (formSpec?.busFormSpec?.panels?.length > 1)? 'always' : false;\n\n const sohoModalOptions: SohoModalOptions = {\n title: this.getDialogTitle(formSpec.busFormSpec.title, dataView, actionSpec, formSpec, transactionState),\n cssClass: this.getCSSClass(formSpec),\n isAlert: false,\n fullsize: useFullPage,\n attributes,\n buttons,\n };\n\n return new Observable(observer => {\n dialog\n .options(sohoModalOptions)\n // .title(this.getDialogTitle(formSpec.busFormSpec.title, dataView, actionSpec, formSpec, transactionState))\n // .isAlert(false)\n .open()\n .beforeOpen(() => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n })\n .apply((actionForm: LMActionFormDialogComponent) => {\n actionForm.formUrlInfo = formUrlInfo;\n actionForm.formSpec = formSpec;\n actionForm.dataView = dataView;\n actionForm.formOptions = {\n actionFormDialogData: {\n actionSpec,\n actionDialog$\n }\n };\n actionForm.actionFormOptions = actionFormOptions;\n actionForm.defaultButton = defaultButton;\n // TODO: Set the title after processing message rules\n // dialog.title(formSpec.busFormSpec.title);\n // actionForm.titleChanged.first().subscribe(newTitle => {\n // this.dialog.title(newTitle);\n // actionForm.triggerDetectChanges();\n // });\n\n // Need to trigger change detection manually for Change Password dialog, revisit this in the future if there is an alternative way\n // actionForm.triggerDetectChanges();\n })\n .beforeClose(() => {\n // if ref.dialogResult is undefined, the escape key was used\n const isEscapeKey = (!dialog.dialogResult);\n // TODO: restore the check back when beforeClose() is fixed\n // dataView indicates a Cancel key is on the dialog; ref.dialogResult.result is the button used\n if (dataView && (isEscapeKey/* || ref.dialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL*/)) {\n const model = dialog.componentDialog.formComponent.model;\n if (model.isDirty) {\n // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() here\n // TODO: restore when beforeClose() is fixed\n // this.displayUnsavedChanges().then((allowNavigation: boolean) => {\n // return allowNavigation;\n // });\n return false;\n }\n }\n // The cleanup is done earlier in before close since after close will be triggered after 20ms delay.\n // sohoxi waits for the overlay to be removed before triggering after close. LMCLIENT-29718\n this.openDialogs.pop();\n this.scheduleView.pop();\n actionDialog$.complete(); // UnCommented this line out due to multiple toast messages displaying.\n // Still need to figure out issue on check control not being unchecked after doing a Cancel - LMCLIENT-25672\n return true;\n })\n .afterClose(result => {\n dialog = null;\n\n // if we don't have a result, then create a cancel\n if (!result) {\n result = {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n } as LMActionFormDialogResult;\n }\n\n observer.next(result);\n observer.complete();\n // actionDialog$.complete(); // Commented this line out due to multiple toast messages displaying.\n // Still need to figure out issue on check control not being unchecked after doing a Cancel - LMCLIENT-25672\n })\n .afterOpen(() => {\n this.openDialogs.push(dialog);\n this.scheduleView.push({});\n });\n });\n }\n\n private getCSSClass(formSpec: LMFormSpec): string {\n const cssClass = [ 'lm-action-form-dialog' ];\n\n if (formSpec?.busFormSpec?.panels?.length > 1) {\n cssClass.push('lm-has-composite');\n cssClass.push('lm-full-tabbed-action-form');\n }\n\n return cssClass.join(' ');\n }\n\n private getDialogTitle(titleMsgRule: LMMessageRule, dataView: LMDataView, actionSpec: LMActionSpec, formspec: LMFormSpec, transactionState?: LMTransactionState): string {\n const title = titleMsgRule && dataView ? this.lmFormatUtilService.formatMessageRule(titleMsgRule, dataView, formspec.busFormSpec.fields) : Soho.Locale.translate('ActionForm');\n let alertMessage: string;\n\n if (actionSpec && transactionState && transactionState.transactionRequestList && transactionState.transactionRequestList.length > 1) {\n const count = transactionState.transactionRequestList.length;\n const phrase = actionSpec.type === AppConstants.ACTION_TYPE_DELETE ? 'DeleteConfirmationAlertMessage' : 'ActionConfirmationAlertMessage';\n alertMessage = this.lmFormatUtilService.formatMessage(Soho.Locale.translate(phrase), count);\n }\n\n if (alertMessage) {\n return '
          ' + title + '
          ' + alertMessage + '
          ';\n } else {\n return title;\n }\n }\n\n // TODO: consider removing this method and just use just dialog.close if all other stuff below will no longer be needed\n private dialogClose(dialog: SohoModalDialogRef, actionDialog$: Subject, result: LMActionFormDialogResult) {\n // when a dialog close is fired bu deactivation guard, the cleanup is not done.\n // So moving the cleanup code to before or after close\n // actionDialog$.complete(); // UnCommented this line out due to multiple toast messages displaying.\n // // Still need to figure out issue on check control not being unchecked after doing a Cancel - LMCLIENT-25672\n // this.openDialogs.pop();\n // this.scheduleView.pop();\n dialog.close(result);\n }\n\n // TODO: Badly needs cleanup and make sure button click functions runs in ng zone unless they only do dialog.close()\n private getDialogButtons(dataView: LMDataView, formSpec: LMFormSpec, actionSpec: LMActionSpec, dialog: SohoModalDialogRef,\n actionDialog$: Subject, transactionState?: LMTransactionState, actionFormOptions?: LMActionFormOptions, hideActionButtons?: boolean): SohoModalButton[] {\n const actionRequestArray = (transactionState) ? transactionState.transactionRequestList : undefined;\n let renderAllPfActions = true;\n const current = (Soho as any).breakpoints.current();\n if (current === 'phone' || current === 'phonedown') {\n // Render cancel, approve and reject only in mobile for process flow action requests.\n // Other action dialog forms will have cancel and submit\n renderAllPfActions = (dataView.processFlowActions && dataView.processFlowActions.length > 0) ? false : true;\n }\n\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n let buttons: SohoModalButton[] = [];\n\n // if there is no action just present a close button\n // this happens when a list opens a record in\n // read only mode (no valid update action)\n if (!actionSpec || hideActionButtons) {\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: () => {\n\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n });\n\n return buttons;\n }\n\n if (actionFormOptions && actionFormOptions.isDataViewFieldButtonForm) {\n return this.getDataViewFormButtons(formSpec, dialog, actionDialog$, transactionState, actionFormOptions);\n }\n\n if (dataView) {\n // 1. Cancel Button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => {\n // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() here\n // but the message does not always display\n const model = dialog.componentDialog.formComponent.model;\n if (model.isDirty) {\n this.displayUnsavedChanges().then((allowNavigation: boolean) => {\n if (allowNavigation) {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n });\n } else {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n }\n });\n\n // 2. Compare button\n if (dataView.canCompare && renderAllPfActions) {\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.COMPARE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.COMPARE),\n click: (event) => {\n this.subscribeToActionDialogButtonClick(dialog, actionDialog$);\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_COMPARE\n });\n }\n });\n }\n\n // 3. Process flow actions\n if (dataView.processFlowActions && dataView.processFlowActions.length > 0 && !this.lmContextService.hasAsOfDateInPast()) {\n // On a phone, render approve or reject if available. If not, pick max 2 buttons to be rendered.\n const pfActions = (renderAllPfActions) ? dataView.processFlowActions : this.getPhonePFActions(dataView.processFlowActions);\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < pfActions.length; i++) {\n const pfAction = pfActions[i];\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, pfAction.label ]),\n text: pfAction.label,\n click: (event) => {\n this.subscribeToActionDialogButtonClick(dialog, actionDialog$);\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_PFACTION,\n pfActionName: pfAction.name\n });\n }\n });\n }\n }\n\n if (actionSpec.willRunAsynchronous && !this.lmContextService.hasAsOfDateInPast()) {\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.SCHEDULE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SCHEDULE),\n click: (event) => {\n this.lmScheduleDialogService.openScheduleDialog(dataView.busClassName, actionSpec.name, actionDialog$)\n .subscribe((scheduleView: LMDataView) => {\n if (scheduleView) {\n this.scheduleView[ this.scheduleView.length - 1 ] = scheduleView;\n }\n });\n this.subscribeToActionDialogButtonClick(dialog, actionDialog$);\n }\n });\n }\n\n // 4. Ok Button (Save as draft)\n if (!dataView.displayOnly && renderAllPfActions && !this.lmContextService.hasAsOfDateInPast()) {\n let okText = LMDialogButtonKey.SUBMIT;\n let okText2;\n let pfActionRequestSaveMode: LMActionRequestSaveMode;\n let pfActionRequestSaveMode2: LMActionRequestSaveMode;\n const defaultButton = true; // (dataView.processFlowActions && dataView.processFlowActions.length > 0) ? false : true;\n\n const isInitiator = dataView.contextProperties && dataView.contextProperties['context_prd_initiator'] !== undefined && dataView.contextProperties['context_prd_initiator'] === 'true';\n const isActionRequest = dataView.contextProperties && dataView.contextProperties['context_prd_action_prd_request'] !== undefined\n && dataView.contextProperties['context_prd_action_prd_request'].length > 0;\n const isApprover = dataView.contextProperties && dataView.contextProperties['context_prd_approver'] !== undefined && dataView.contextProperties['context_prd_approver'] === 'true';\n const isFinalApprover = dataView.contextProperties && dataView.contextProperties['context_prd_finalapprover'] !== undefined\n && dataView.contextProperties['context_prd_finalapprover'] === 'true';\n\n if (isInitiator) {\n if (isActionRequest) {\n // Action request is already created.\n okText = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.DRAFT;\n const notInProcess = (dataView.contextProperties['context_prd_action_prd_request_prd_status']\n && dataView.contextProperties['context_prd_action_prd_request_prd_status'] === LMActionRequestStatus.NOTINPROCESS);\n if (notInProcess) {\n okText2 = LMDialogButtonKey.SUBMIT;\n pfActionRequestSaveMode2 = LMActionRequestSaveMode.SUBMIT;\n }\n } else {\n okText = LMDialogButtonKey.SUBMIT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.SUBMIT;\n okText2 = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode2 = LMActionRequestSaveMode.DRAFT;\n }\n } else if (isApprover || isFinalApprover) {\n okText = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.DRAFT;\n }\n\n if (okText2) {\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, okText2 ]),\n text: Soho.Locale.translate(okText2),\n validate: false,\n click: (event) => {\n this.ngZone.run(() => {\n this.subscribeToActionDialogButtonClick(dialog, actionDialog$);\n const scheduleDataView = this.scheduleView.length ? this.scheduleView[this.scheduleView.length - 1] : null;\n const scheduleView = (scheduleDataView && scheduleDataView.fields) ? scheduleDataView : null;\n\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK2,\n pfActionRequestSaveMode: pfActionRequestSaveMode2,\n actionRequestArray,\n transactionStateResult: transactionState,\n scheduleView\n });\n });\n }\n });\n }\n\n if (okText) {\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, okText ]),\n text: Soho.Locale.translate(okText),\n isDefault: defaultButton,\n validate: false,\n cssClass: ' no-validation ',\n click: (event) => {\n this.ngZone.run(() => {\n this.subscribeToActionDialogButtonClick(dialog, actionDialog$);\n const scheduleDataView = this.scheduleView.length ? this.scheduleView[this.scheduleView.length - 1] : null;\n const scheduleView = (scheduleDataView && scheduleDataView.fields) ? scheduleDataView : null;\n\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK,\n pfActionRequestSaveMode,\n actionRequestArray,\n transactionStateResult: transactionState,\n scheduleView\n });\n });\n }\n });\n }\n }\n } else {\n buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.SUBMIT ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SUBMIT),\n isDefault: true,\n validate: false,\n click: () => {\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK\n });\n actionDialog$.subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.dialogClose(dialog, actionDialog$, result);\n }\n });\n }\n }\n ];\n }\n return buttons;\n }\n\n private getPhonePFActions(pfActions: LMProcessFlowAction[]): LMProcessFlowAction[] {\n // On a phone, render approve or reject if available. If not, pick max 2 buttons to be rendered.\n const phonePFActions = [];\n const approveIndex = pfActions.findIndex(pfAction => pfAction.name.toLowerCase() === 'approve');\n if (approveIndex !== -1) {\n phonePFActions[phonePFActions.length] = pfActions[approveIndex];\n }\n let rejectIndex = pfActions.findIndex(pfAction => pfAction.name.toLowerCase() === 'reject');\n let rejectActionName = 'reject';\n if (rejectIndex !== -1) {\n phonePFActions[phonePFActions.length] = pfActions[rejectIndex];\n } else {\n rejectIndex = pfActions.findIndex(pfAction => pfAction.name.toLowerCase() === 'deny');\n if (rejectIndex !== -1) {\n rejectActionName = 'deny';\n phonePFActions[phonePFActions.length] = pfActions[rejectIndex];\n }\n }\n\n // The names of the buttons are customized in the flow.\n if (phonePFActions.length === 0) {\n // Get the first 2 pfActions to be rendered in a phone\n for (let i = 0; i < pfActions.length && i < 2; i++) {\n phonePFActions[i] = pfActions[i];\n }\n } else if (phonePFActions.length === 1 && pfActions.length > 1) {\n if (approveIndex === -1) {\n // Reject or deny button is there in the collection.\n phonePFActions[phonePFActions.length] = pfActions.find(pfAction => pfAction.name.toLowerCase() !== rejectActionName);\n } else {\n // Approve button is there in the collection.\n phonePFActions[phonePFActions.length] = pfActions.find(pfAction => pfAction.name.toLowerCase() !== 'approve');\n }\n }\n return phonePFActions;\n }\n\n private subscribeToActionDialogButtonClick(dialog: SohoModalDialogRef, actionDialog$: Subject) {\n this.disableButtons(dialog);\n // With first(), an error is thrown when subject completes (Emptyerror no elements in sequence).\n // Cannot use take(1) because the message intended to go to the form also comes here.\n // Do not cancel the subscription when the result is OK, OK2, PFACTION, COMPARE. Wait for saved or enablebuttons.\n const subscription = actionDialog$.subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.dialogClose(dialog, actionDialog$, result);\n subscription.unsubscribe();\n } else if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS) {\n this.enableButtons(dialog);\n subscription.unsubscribe();\n }\n });\n }\n\n /* tslint:disable-next-line:max-line-length */\n private getDataViewFormButtons(formSpec: LMFormSpec, dialog: SohoModalDialogRef, actionDialog$: Subject, transactionState?: LMTransactionState, actionFormOptions?: LMActionFormOptions): SohoModalButton[] {\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n const actionRequestArray = (transactionState) ? transactionState.transactionRequestList : undefined;\n const buttons: SohoModalButton[] = [];\n\n // Buttons for the job parameters form dialog\n // 1. Cancel Button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => {\n const model = dialog.componentDialog.formComponent.model;\n if (model.isDirty) {\n this.displayUnsavedChanges().then((allowNavigation: boolean) => {\n if (allowNavigation) {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n });\n } else {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n }\n });\n\n // 2. Clear button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CLEAR ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLEAR),\n click: (event) => {\n const model = dialog.componentDialog.formComponent.model;\n if (model.isDirty || actionFormOptions.dataViewFieldButtonHasData) {\n const message = '

          ' + Soho.Locale.translate('DocumentHasChangesMessage') + '

          '\n + '

          ' + Soho.Locale.translate('ClickStayToSaveChanges') + '

          '\n + '

          ' + Soho.Locale.translate('ClickLeaveToClearForm') + '

          ';\n this.displayUnsavedChanges(message).then((allowNavigation: boolean) => {\n if (allowNavigation) {\n this.subscribeToDataViewFormButtonClick(dialog, actionDialog$);\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CLEAR,\n actionRequestArray,\n transactionStateResult: transactionState,\n });\n } else {\n this.enableButtons(dialog);\n }\n });\n } else {\n this.dialogClose(dialog, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CLEAR\n });\n }\n }\n });\n\n // 3. Ok button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n validate: false,\n click: (event) => {\n this.subscribeToDataViewFormButtonClick(dialog, actionDialog$);\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_VALIDATE_ONLY,\n actionRequestArray,\n transactionStateResult: transactionState,\n });\n }\n });\n\n return buttons;\n }\n\n private subscribeToDataViewFormButtonClick(dialog: SohoModalDialogRef, actionDialog$: Subject) {\n this.disableButtons(dialog);\n // With first(), an error is thrown when subject completes (Emptyerror no elements in sequence).\n // Cannot use take(1) because the message intended to go to the form also comes here.\n // Cancel the subscription on a save, clear or enablebuttons.\n const subscription = actionDialog$.subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED\n || result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CLEAR) {\n this.dialogClose(dialog, actionDialog$, result);\n subscription.unsubscribe();\n } else if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS) {\n this.enableButtons(dialog);\n subscription.unsubscribe();\n }\n });\n }\n\n // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() but the message does not always display\n private displayUnsavedChanges(message?: string): Promise {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n\n const dialogId = 'UnsavedChanges';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.NO ]),\n text: Soho.Locale.translate(LMDialogButtonKey.NO),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n },\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.YES ]),\n text: Soho.Locale.translate(LMDialogButtonKey.YES),\n click: (e, modal) => {\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n },\n }\n ];\n\n const title = Soho.Locale.translate('UnsavedChangesMessage');\n if (!message) {\n message = '

          ' + Soho.Locale.translate('DocumentHasChangesMessage') + '

          '\n + '

          ' + Soho.Locale.translate('ClickStayToSaveChanges') + '

          '\n + '

          ' + Soho.Locale.translate('ClickLeaveToIgnoreChanges') + '

          ';\n }\n\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: `lm-discard-changes-modal`\n } ];\n\n const options: SohoMessageOptions = {\n attributes\n };\n\n this.sohoMessageService\n .message(options)\n .message(Soho.Locale.translate('DiscardChangesMsg'))\n .allowedTags('

          ')\n .title('')\n .buttons(buttons)\n .open();\n\n return (youMayNavigate.pipe(filter(el => el))).toPromise();\n }\n\n private disableButtons(dialog: SohoModalDialogRef) {\n const parent = dialog?.buttonsetAPI?.element;\n const children = parent?.children;\n for (let index = 0, len = children?.length; index < len; index++) {\n const btn = children[ index ];\n const id = btn.getAttribute('id');\n if (id.indexOf(LMDialogButtonKey.CLOSE) > -1) {\n continue;\n }\n btn.setAttribute('disabled', 'true');\n }\n }\n\n private enableButtons(dialog: SohoModalDialogRef) {\n const parent = dialog?.buttonsetAPI?.element;\n const children = parent?.children;\n for (let index = 0, len = children?.length; index < len; index++) {\n const btn = children[ index ];\n const id = btn.getAttribute('id');\n if (id.indexOf(LMDialogButtonKey.CLOSE) > -1) {\n continue;\n }\n btn.removeAttribute('disabled');\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n OnInit,\n ViewChild,\n NgZone,\n Renderer2,\n} from '@angular/core';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMModel } from '@form/model';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-compact-form',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\n\nexport class LMCompactFormDialogComponent implements OnInit, AfterViewInit {\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() dataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() specFields: LMSpecFields;\n @Input() parentModel: LMModel;\n @Input() buttonIds: {ok: string, clear: string};\n @Input() defaultButton: SohoModalButton;\n private isInAccessibilityMode: boolean;\n\n @ViewChild(forwardRef(() => LMFormComponent)) formComponent; // : LMFormComponent;\n\n @HostListener('keyup', [ '$event' ]) onKeyUp(event) {\n if (event.which === 13 && event.srcElement.nodeName !== 'BUTTON') {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n\n this.elementRef.nativeElement.parentElement.parentElement.parentElement.parentNode.querySelector('button[id=\"' + this.buttonIds.ok + '\"]').click();\n }\n }\n\n constructor(\n private elementRef: ElementRef,\n private ngZone: NgZone,\n private renderer: Renderer2,\n private globalPersonalizationService: LMGlobalPersonalizationService\n ) {}\n\n ngOnInit() {\n this.isInAccessibilityMode = this.globalPersonalizationService.getAccessibilityMode();\n }\n\n ngAfterViewInit() {\n\n // When dataview is set in the template, the form component\n // is not fully intitialized and model is null.\n // This causes empty form to come up in the required response dialog.\n // Moving set dataview to ngAfterViewInit solves this issue\n // Commenting it out as Vonny moved setData from _initDataView setter to formDataLoaded - 09/19/17\n\n // this.formComponent.initDataView = this.dataView;\n const okButton: Element = this.elementRef.nativeElement.parentElement.parentElement.parentElement.querySelector(`button[id=${this.buttonIds.ok}]`);\n okButton.addEventListener('keydown', (event: KeyboardEvent) => {\n if(event.keyCode === 9 && event.shiftKey) {\n okButton.setAttribute('data-shift-tabbed', String(true));\n } else {\n okButton.removeAttribute('data-shift-tabbed');\n }\n });\n okButton.addEventListener('focusout', (event: FocusEvent) => {\n const elementToFocus: Element = event?.relatedTarget as Element;\n if (okButton.getAttribute('data-shift-tabbed') === 'true') {\n if ((elementToFocus?.closest('lm-date')\n || elementToFocus?.closest('lm-time')\n || elementToFocus?.closest('lm-lookup'))) {\n //LMCLIENT-36048 when shift tabbing to a field with inline button, it should skip the inline button\n //and should focus to the input element.\n elementToFocus?.closest('lm-field').querySelector('input').focus();\n }\n okButton.removeAttribute('data-shift-tabbed');\n }\n });\n\n if (this.formSpec.selectViewType !== 'list') {\n return;\n }\n\n //ok buttons are not tabbable when opened from lists.\n if (!this.isInAccessibilityMode) {\n this.renderer.setAttribute(okButton, 'tabIndex', '-1');\n }\n if (!this.isInAccessibilityMode) {\n const selector = [\n 'button:not([disabled]):not([tabindex=\"-1\"])',\n // '[href]:not([disabled]):not([tabindex=\"-1\"])', //excluding links\n 'input:not([disabled]):not([tabindex=\"-1\"])',\n 'div.dropdown:not(.is-disabled):not([tabindex=\"-1\"])',\n 'div.multiselect:not(.is-disabled):not([tabindex=\"-1\"])',\n 'textarea:not([readonly]):not([disabled]):not([tabindex=\"-1\"])',\n '[focusable]:not([focusable=\"false\"])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n ];\n const focusableEls = this.elementRef.nativeElement.querySelectorAll(selector.join(','));\n const lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n // Using keydown alone to handle requirement for LMCLIENT-35630 causes the focus to be out of order\n // not sure why\n let tabPressed = false;\n lastFocusableEl.addEventListener('keydown', (e) => {\n if (e.keyCode === 9 && e.shiftKey !== true) {\n tabPressed = true;\n }\n });\n\n lastFocusableEl.addEventListener('focusout', (e) => {\n if (tabPressed) {\n this.defaultButton.click(e, null);\n }\n });\n }\n }\n\n onFormDisplayed(event) {\n setTimeout(() => {\n if (this.parentModel) {\n this.formComponent.model.applyState(this.parentModel);\n }\n }, 1);\n }\n\n public clearForm(dataView: LMDataView) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngZone.run(() => {\n this.formComponent.model.setData(dataView);\n });\n });\n });\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMCompactFormDialogComponent } from './lm-compact-form-dialog.component';\nimport { AppConstants, LMDialogButtonKey, LMFormType } from '@utils/app.constants';\nimport { LMModel } from '@form/model';\nimport { Observable } from 'rxjs';\nimport { LMCommonUtilService, LMUniqueIdService } from '@utils/index';\nimport { LMBusyIndicatorService, LMFormatUtilService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMFormSpecUtilService } from '@form/services';\n\nexport enum LMCompactFormDialogResult {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK\n}\n\nexport interface LMCompactFormResult {\n result: LMCompactFormDialogResult;\n fieldId?: string;\n dataView?: LMDataView;\n model?: LMModel;\n bindIds?: Array;\n filterCriteria?: Array;\n}\n\nexport interface LMCompactFormDialogOptions {\n placeholder: ViewContainerRef;\n fieldId: string;\n layout: LMFormLayout;\n title: LMMessageRule;\n dataView: LMDataView;\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec;\n specFields?: LMSpecFields;\n model?: LMModel;\n originalCompoundFieldLayout?: LMCompoundFieldLayout;\n displayOnly?: boolean;\n formType?: LMFormType;\n formOptions?: LMFormOptions;\n excludeOriginalField?: boolean;\n fromFilter?: boolean;\n}\n\n@Injectable()\nexport class LMCompactFormDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n ) {}\n\n private buttons: SohoModalButton[];\n private dlgComponent: LMCompactFormDialogComponent;\n\n public promptCompactFormDialog(args: LMCompactFormDialogOptions): Observable {\n const formSpec: LMFormSpec = this.buildCompactFormDlgParams(args);\n // skipFilloutUrls should be true because compact forms don't use urls.\n const options: LMFormUrlInfoOptions = { isCompoundFieldForm: true };\n const formUrlInfo: LMFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(formSpec, options);\n const specFields: LMSpecFields = formSpec.busFormSpec.fields;\n return this.openDialog(formUrlInfo, formSpec, args.dataView, args.placeholder, args.fieldId, args.title, specFields, args.model || null, args.formOptions || {});\n }\n\n private buildCompactFormDlgParams(args: LMCompactFormDialogOptions): LMFormSpec {\n // make a deep clone of the formSpec\n const formSpec: LMFormSpec = JSON.parse(JSON.stringify(args.formSpec));\n formSpec.automationId = args.fieldId;\n\n // update with the correct subFormType\n formSpec.busFormSpec.subFormType = AppConstants.FORMSUBTYPE_COMPOUNDFLD;\n\n // TODO this seems fragile to need to reset all these attributes. Can't we just drive off 'formSpec.busFormSpec.subFormType = AppConstants.FORMSUBTYPE_COMPOUNDFLD'\n formSpec.busFormSpec.busFormLayoutSpec = { layout: null };\n formSpec.busFormSpec.panels = undefined;\n\n if (formSpec.busFormSpec.isWizard) {\n formSpec.busFormSpec.isWizard = false;\n }\n\n formSpec.busFormSpec.formType = (args.formType) ? args.formType : LMFormType.STANDARD;\n\n // keep the original namePrefix, name, and current namePrefix\n formSpec.busFormSpec.namePrefix = this.lmUniqueIdService.uniqueId([ args.formSpec.busFormSpec.namePrefix, args.formSpec.busFormSpec.name, formSpec.busFormSpec.namePrefix ]);\n\n // replace the layout with with a deep clone of the compact form layout\n formSpec.busFormSpec.busFormLayoutSpec.layout = JSON.parse(JSON.stringify(args.layout));\n\n if (args.displayOnly) {\n formSpec.isReadOnly = true;\n }\n\n // replace with a deep clone\n if (args.originalCompoundFieldLayout && !args.excludeOriginalField) {\n const originalCompoundField = JSON.parse(JSON.stringify(args.originalCompoundFieldLayout));\n originalCompoundField.previewMode = true;\n const originalCompoundFieldLayout: LMFormLayoutSection = { field: originalCompoundField };\n\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections.unshift(originalCompoundFieldLayout);\n }\n\n // if specFields were passed, they need to be integrated into the busFormSpec.fields collection\n // if a specField already exists (same bindId), then the incoming specField replaces it; otherwise, it is added\n if (args.specFields) {\n const currentSpecFields: LMSpecFields = formSpec.busFormSpec.fields;\n\n Object.keys(args.specFields).forEach((key: string) => {\n currentSpecFields[ key ] = args.specFields[ key ];\n });\n }\n\n return formSpec;\n }\n\n private openDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef,\n fieldId: string,\n title: LMMessageRule,\n specFields: LMSpecFields,\n parentModel?: LMModel,\n formOptions?: LMFormOptions\n ): Observable {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n return new Observable(observer => {\n let dialog: SohoModalDialogRef;\n const bindIds = this.lmCommonUtilService.getBindIdsFromFormSpec(formSpec);\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n const isCodeBlockFilter = this.lmFormSpecUtilService.isCodeBlockFilter(formSpec);\n const isList = formSpec.selectViewType === 'list';\n const okButton = this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.OK ]);\n const clearButton = this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CLEAR ]);\n\n const buttonIds = {\n ok: okButton,\n clear: clearButton\n };\n\n this.buttons = [];\n\n if (isCodeBlockFilter) {\n this.buttons.push({\n id: clearButton,\n text: Soho.Locale.translate(LMDialogButtonKey.CLEAR),\n click: () => {\n this.clearForm(formSpec, dataView);\n },\n tabindex: -1\n });\n }\n\n this.buttons.push({\n id: okButton,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n validate: false,\n isDefault: true,\n click: (e, modal) => {\n const filterCriteria = (isCodeBlockFilter) ? this.dlgComponent.formComponent.formContentComponent.searchFormComponent.getFilterCriteria() : [];\n this.dlgComponent.formComponent.waitForFormToBeReady().subscribe((status: boolean) => {\n dialog.close({\n result: LMCompactFormDialogResult.RESPONSE_OK,\n fieldId,\n dataView: this.dlgComponent.formComponent.formModel.getData(),\n model: this.dlgComponent.formComponent.model,\n bindIds,\n filterCriteria\n });\n });\n }\n });\n\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: `lm-${fieldId}-modal`\n } ];\n\n // Handle if the title is a message rule\n const modalTitle = this.lmFormatUtilService.formatMessageRule(title, dataView, specFields);\n\n const sohoModalOptions: SohoModalOptions = {\n title: modalTitle,\n isAlert: false,\n fullsize: 'responsive',\n showCloseBtn: true,\n attributes,\n buttons: this.buttons,\n closeBtnOptions: isList ? {\n attributes: [{ name: 'tabIndex', value: '-1' }]\n } : undefined\n };\n\n dialog = this.sohoModalDialogService\n .modal(LMCompactFormDialogComponent, placeholder)\n .options(sohoModalOptions)\n .beforeOpen(() => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n })\n .open();\n\n dialog.apply((compactForm: LMCompactFormDialogComponent) => {\n this.dlgComponent = compactForm;\n\n compactForm.formOptions = formOptions;\n compactForm.formUrlInfo = formUrlInfo;\n compactForm.formSpec = formSpec;\n compactForm.dataView = dataView;\n compactForm.specFields = specFields;\n compactForm.parentModel = parentModel;\n compactForm.buttonIds = buttonIds;\n compactForm.defaultButton = this.buttons.find( button => button.isDefault );\n });\n\n dialog.afterClose(result => {\n if (!result) {\n result = {\n result: LMCompactFormDialogResult.RESPONSE_CANCEL\n };\n }\n\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n private clearForm(formSpec: LMFormSpec, dataView: LMDataView) {\n this.lmCommonUtilService.clearCodeBlockDataViewFields(formSpec, formSpec.busFormSpec.busFormLayoutSpec.layout, dataView);\n this.dlgComponent.clearForm(dataView);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { Observable } from 'rxjs';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\n\nexport enum ConfirmationDialogResult {\n CONFIRMATION_CANCEL = 0,\n CONFIRMATION_OK,\n CONFIRMATION_OKTOALL\n}\n\nexport interface ConfirmationMessageOptions {\n message: string;\n title?: string; // TODO DPB this is not used\n okToAll?: boolean;\n alertMessage?: string;\n dialogTitle?: string;\n}\n\n@Injectable()\nexport class LMConfirmationMessageService {\n constructor(\n private sohoMessageService: SohoMessageService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n /**\n * Bring up the soho message service to display the confirmation message.\n * Args: message string, okToAll, title\n *\n */\n public promptConfirmationMessage(args: ConfirmationMessageOptions): Observable {\n const msgConfirm: Observable = new Observable(observer => {\n const dialogId = args.dialogTitle === undefined ? 'ConfirmationRequired' : args.dialogTitle;\n const okToAll = args.okToAll || false;\n const message = args.message;\n\n const buttons: SohoModalButton[] = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.close(true);\n observer.next(ConfirmationDialogResult.CONFIRMATION_CANCEL);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n modal.close(true);\n observer.next(ConfirmationDialogResult.CONFIRMATION_OK);\n },\n isDefault: true\n }\n ];\n\n if (okToAll) {\n buttons.splice(1, 0, {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OKTOALL]),\n text: Soho.Locale.translate(LMDialogButtonKey.OKTOALL),\n click: (e, modal) => {\n modal.close(true);\n observer.next(ConfirmationDialogResult.CONFIRMATION_OKTOALL);\n }\n });\n }\n\n // this.lmBusyIndicatorService.hideBusyIndicator();\n\n const attributes: SohoAttributesArray = [ { name: 'data-automation-id', value: 'lm-ConfirmationRequired-modal' } ];\n const messageOptions: SohoMessageOptions = {\n allowedTags: '

          , ,

          ',\n message,\n buttons,\n title: this.buildTitle(args),\n attributes\n };\n\n // Show the confirmation message dialog.\n this.sohoMessageService\n .message(messageOptions)\n .open();\n });\n return msgConfirm;\n }\n\n private buildTitle(options: ConfirmationMessageOptions): string {\n const title = options.title || Soho.Locale.translate('ConfirmationRequired');\n\n if (options.alertMessage) {\n return '

          ' + title + '

          ' + options.alertMessage + '

          ';\n } else {\n return title;\n }\n }\n}\n","/**\n * Created by aaralikar on 1/12/2018.\n */\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport {\n SohoContextualActionPanelRef,\n SohoContextualActionPanelService,\n SohoMessageService,\n} from 'ids-enterprise-ng';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMDataService } from '@services/lm-data.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMActionFormDialogResult, LMActionFormDialogResultCode } from './lm-action-form-dialog.service';\nimport { LMActionFormDialogComponent } from './lm-action-form-dialog.component';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\nimport { LMActionRequestSaveMode, LMActionRequestStatus, LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { LMScheduleDialogService } from './print-dialog';\nimport { filter } from 'rxjs/operators';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Injectable()\nexport class LMContextualActionPanelService {\n\n constructor(\n private sohoMessageService: SohoMessageService,\n private sohoContextualActionPanelService: SohoContextualActionPanelService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmDataService: LMDataService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmScheduleDialogService: LMScheduleDialogService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmThemeService: LMThemeService\n ) {}\n\n private openPanels: Array> = [];\n private scheduleView: Array = [];\n\n public get hasOpenDialog(): boolean {\n return this.openPanels.length > 0;\n }\n\n public get getOpenDialog(): SohoContextualActionPanelRef {\n return this.hasOpenDialog ? this.openPanels[this.openPanels.length - 1] : undefined;\n }\n\n public getContextualPanelDataView(formDataUrl: string): Observable {\n return this.lmDataService.getRecord(formDataUrl);\n }\n\n public openContextualActionPanel(formSpec: LMFormSpec, actionSpec: LMActionSpec, placeholder: ViewContainerRef,\n dataView?: LMDataView, transactionState?: LMTransactionState, actionFormOption?: LMActionFormOptions): Observable {\n return new Observable(observer => {\n this.lmLoggerService.log(['LMContextualActionPanelService', 'openContextualActionPanel', 'begin']);\n // actionDialog$ subject is there to facilitate communication between the form component and dialog frame.\n const actionDialog$: Subject = new Subject();\n // Action form dialog pushes the result onAfterClose and the transaction service observer will get the result.\n // do not have to push the transaction observer here\n // actionDialog$.observers.push(observer);\n\n const capFormSpec: LMFormSpec = JSON.parse(JSON.stringify(formSpec));\n capFormSpec.container = 'contextualpanel';\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n const contextualPanel = this.sohoContextualActionPanelService\n .contextualactionpanel(LMActionFormDialogComponent, placeholder);\n\n const buttons = this.getDialogButtons(dataView, formSpec, actionSpec, contextualPanel, actionDialog$, transactionState);\n\n contextualPanel\n .buttons(buttons)\n .title(this.getDialogTitle(capFormSpec.busFormSpec.title, dataView))\n .initializeContent(true)\n .trigger('immediate')\n .open()\n .apply((actionPanel: LMActionFormDialogComponent) => {\n actionPanel.formSpec = capFormSpec;\n actionPanel.dataView = dataView;\n actionPanel.formOptions = {actionFormDialogData: {actionSpec, actionDialog$}};\n\n // Need to trigger change detection manually for Change Password dialog, revisit this in the future if there is an alternative way\n actionPanel.triggerDetectChanges();\n })\n // *** beforeClose does not exist for contextual panel\n // .beforeClose( (ref) => {\n // // if ref.dialogResult is undefined, the escape key was used\n // const isEscapeKey = (!ref.dialogResult);\n //\n // // TODO: restore the check back when beforeClose() is fixed\n // // dataView indicates a Cancel key is on the dialog; ref.dialogResult.result is the button used\n // if (dataView && (isEscapeKey/* || ref.dialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL*/)) {\n // let model = dialog.componentDialog.formComponent.model;\n // if (model.isDirty) {\n // // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() here\n // // TODO: restore when beforeClose() is fixed\n // // this.displayUnsavedChanges().then((allowNavigation: boolean) => {\n // // return allowNavigation;\n // // });\n // return false;\n // }\n // }\n // return true;\n // })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n // actionDialog$.complete(); // Commented this line out due to multiple toast messages displaying.\n // Still need to figure out issue on check control not being unchecked after doing a Cancel - LMCLIENT-25672\n })\n .afterOpen(() => {\n this.openPanels.push(contextualPanel);\n this.scheduleView.push({});\n });\n });\n }\n\n private getDialogTitle(titleMsgRule: LMMessageRule, dataView: LMDataView): string {\n if (titleMsgRule && dataView) {\n return this.lmFormatUtilService.formatMessageRule(titleMsgRule, dataView);\n }\n // TODO: Default message\n return Soho.Locale.translate('ActionForm');\n }\n\n /* tslint:disable-next-line:max-line-length */\n private dialogClose(contextualPanel: SohoContextualActionPanelRef, actionDialog$: Subject, result: LMActionFormDialogResult) {\n actionDialog$.complete(); // UnCommented this line out due to multiple toast messages displaying.\n // Still need to figure out issue on check control not being unchecked after doing a Cancel - LMCLIENT-25672\n this.openPanels.pop();\n this.scheduleView.pop();\n contextualPanel.close(result);\n }\n\n /* tslint:disable-next-line:max-line-length */\n\n private getDialogButtons(dataView: LMDataView, formSpec: LMFormSpec, actionSpec: LMActionSpec,\n contextualPanel: SohoContextualActionPanelRef,\n actionDialog$: Subject, transactionState?: LMTransactionState): SohoContextualActionPanelButton[] {\n const actionRequestArray = (transactionState) ? transactionState.transactionRequestList : undefined;\n let renderAllPfActions = true;\n const current = (Soho as any).breakpoints.current();\n if (current === 'phone' || current === 'phonedown' ) {\n // Render cancel, approve and reject only in mobile for process flow action requests.\n // Other action dialog forms will have cancel and submit\n renderAllPfActions = (dataView.processFlowActions && dataView.processFlowActions.length > 0) ? false : true;\n }\n\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n let buttons: SohoContextualActionPanelButton[] = [];\n // if there is no action just present a close button\n // this happens when a list opens a record in\n // read only mode (no valid update action)\n // TODO: SohoContextualActionPanelButton does not have an id property\n if (!actionSpec) {\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n this.dialogClose(contextualPanel, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n });\n\n return buttons;\n }\n\n if (dataView) {\n // 1. Cancel Button\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() here\n // but the message does not always display\n const model = contextualPanel.componentPanel.formComponent.model;\n if (model.isDirty) {\n this.displayUnsavedChanges().then((allowNavigation: boolean) => {\n if (allowNavigation) {\n this.dialogClose(contextualPanel, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n });\n } else {\n this.dialogClose(contextualPanel, actionDialog$, {\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL\n });\n }\n // this.dialogClose(contextualPanel, actionDialog$, { result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n }\n });\n\n // 2. Compare button\n if (dataView.canCompare && renderAllPfActions) {\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.COMPARE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.COMPARE),\n icon: '#icon-' + this.lmThemeService.lplIconToSohoXI('process'),\n click: (e, modal) => {\n const event = e;\n this.subscribeToCAPButtonClick(event, contextualPanel, actionDialog$);\n actionDialog$.next({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_COMPARE });\n }\n });\n }\n\n // 3. Process flow actions\n if (dataView.processFlowActions && dataView.processFlowActions.length > 0) {\n const pfActions = dataView.processFlowActions;\n for (let i = 0; i < pfActions.length; i++) {\n const pfAction = pfActions[i];\n if (!renderAllPfActions) {\n if (pfAction.name.toLowerCase() !== 'approve'\n && pfAction.name.toLowerCase() !== 'reject') {\n continue;\n }\n }\n let iconName: LMIcon = 'process';\n if (pfAction.name.toLowerCase() === 'approve') {\n iconName = 'approve';\n } else if (pfAction.name.toLowerCase() === 'acknowledge') {\n iconName = 'submit';\n } else if (pfAction.name.toLowerCase() === 'reject') {\n iconName = 'reject';\n } else if (pfAction.name.toLowerCase() === 'return') {\n iconName = 'undo';\n }\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, pfAction.label ]),\n text: pfAction.label,\n icon: '#icon-' + this.lmThemeService.lplIconToSohoXI(iconName),\n click: (e, modal) => {\n const event = e;\n this.subscribeToCAPButtonClick(event, contextualPanel, actionDialog$);\n actionDialog$.next({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_PFACTION, pfActionName: pfAction.name });\n }\n });\n }\n }\n\n if (actionSpec.willRunAsynchronous) {\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.SCHEDULE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SCHEDULE),\n click: (e, modal) => {\n const event = e;\n this.lmScheduleDialogService.openScheduleDialog(dataView.busClassName, actionSpec.name)\n .subscribe((scheduleView: LMDataView) => {\n this.scheduleView[this.scheduleView.length - 1] = scheduleView;\n });\n this.subscribeToCAPButtonClick(event, contextualPanel, actionDialog$);\n }\n })\n }\n\n // 4. Ok Button (Save as draft)\n if (!dataView.displayOnly && renderAllPfActions) {\n let okText = LMDialogButtonKey.SUBMIT;\n let okText2;\n let pfActionRequestSaveMode: LMActionRequestSaveMode;\n let pfActionRequestSaveMode2: LMActionRequestSaveMode;\n const defaultButton = true; // (dataView.processFlowActions && dataView.processFlowActions.length > 0) ? false : true;\n\n const isInitiator = dataView.contextProperties && dataView.contextProperties[ 'context_prd_initiator' ] !== undefined && dataView.contextProperties[ 'context_prd_initiator' ] === 'true';\n const isActionRequest = dataView.contextProperties && dataView.contextProperties[ 'context_prd_action_prd_request' ] !== undefined\n && dataView.contextProperties[ 'context_prd_action_prd_request' ].length > 0;\n const isApprover = dataView.contextProperties && dataView.contextProperties[ 'context_prd_approver' ] !== undefined && dataView.contextProperties[ 'context_prd_approver' ] === 'true';\n const isFinalApprover = dataView.contextProperties && dataView.contextProperties[ 'context_prd_finalapprover' ] !== undefined\n && dataView.contextProperties[ 'context_prd_finalapprover' ] === 'true';\n\n if (isInitiator) {\n if (isActionRequest) {\n // Action request is already created.\n okText = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.DRAFT;\n const notInProcess = (dataView.contextProperties[ 'context_prd_action_prd_request_prd_status' ]\n && dataView.contextProperties[ 'context_prd_action_prd_request_prd_status' ] === LMActionRequestStatus.NOTINPROCESS)\n if (notInProcess) {\n okText2 = LMDialogButtonKey.SUBMIT;\n pfActionRequestSaveMode2 = LMActionRequestSaveMode.SUBMIT;\n }\n } else {\n okText = LMDialogButtonKey.SUBMIT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.SUBMIT;\n okText2 = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode2 = LMActionRequestSaveMode.DRAFT;\n }\n } else if (isApprover || isFinalApprover) {\n okText = LMDialogButtonKey.SAVEASDRAFT;\n pfActionRequestSaveMode = LMActionRequestSaveMode.DRAFT;\n }\n\n if (okText2) {\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, okText2 ]),\n text: Soho.Locale.translate(okText2),\n validate: false,\n click: (e, modal) => {\n const event = e;\n this.subscribeToCAPButtonClick(event, contextualPanel, actionDialog$);\n const scheduleDataView = this.scheduleView[this.scheduleView.length - 1];\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK2,\n pfActionRequestSaveMode: pfActionRequestSaveMode2,\n actionRequestArray,\n transactionStateResult: transactionState,\n scheduleView: scheduleDataView.fields ? scheduleDataView : undefined\n });\n }\n });\n }\n\n if (okText) {\n buttons.push({\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, okText ]),\n text: Soho.Locale.translate(okText),\n isDefault: defaultButton,\n validate : false,\n click: (e, modal) => {\n const event = e;\n this.subscribeToCAPButtonClick(event, contextualPanel, actionDialog$);\n const scheduleDataView = this.scheduleView[this.scheduleView.length - 1];\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK,\n pfActionRequestSaveMode,\n actionRequestArray,\n transactionStateResult: transactionState,\n scheduleView: scheduleDataView.fields ? scheduleDataView : undefined\n });\n }\n });\n }\n }\n } else {\n buttons = [\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n {\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n this.dialogClose(contextualPanel, actionDialog$, { result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n }\n },\n {\n // id: this.lmUniqueIdService.uniqueId([ formNamePrefix, formName, LMDialogButtonKey.SUBMIT ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SUBMIT),\n isDefault: true,\n validate : false,\n click: (e, modal) => {\n actionDialog$.next({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OK });\n actionDialog$.subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.dialogClose(contextualPanel, actionDialog$, result);\n }\n });\n }\n }\n ];\n }\n return buttons;\n }\n\n private subscribeToCAPButtonClick(event: any, panel: SohoContextualActionPanelRef, actionDialog$: Subject) {\n this.disableButtons(event);\n // With first(), an error is thrown when subject completes (Emptyerror no elements in sequence).\n // Cannot use take(1) because the message intended to go to the form also comes here.\n // Do not cancel the subscription when the result is OK, OK2, PFACTION, COMPARE. Wait for saved or enablebuttons.\n const subscription = actionDialog$.subscribe((result: LMActionFormDialogResult) => {\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n this.dialogClose(panel, actionDialog$, result);\n subscription.unsubscribe();\n } else if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS) {\n this.enableButtons(event);\n subscription.unsubscribe();\n }\n });\n }\n\n // TODO: would be nice to use dialog.componentDialog.formComponent.displayUnsavedChanges() but the message does not always display\n private displayUnsavedChanges(message?: string): Promise {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n\n const dialogId = 'UnsavedChanges';\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.LEAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.LEAVE),\n click: (e, modal) => {\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n },\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.STAY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.STAY),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n },\n }\n ];\n\n const title = Soho.Locale.translate('UnsavedChangesMessage');\n if (!message) {\n message = '

          ' + Soho.Locale.translate('DocumentHasChangesMessage') + '

          '\n + '

          ' + Soho.Locale.translate('ClickStayToSaveChanges') + '

          '\n + '

          ' + Soho.Locale.translate('ClickLeaveToIgnoreChanges') + '

          ';\n }\n\n this.sohoMessageService\n .message()\n .message(message)\n .allowedTags('

          ')\n .title(title)\n .buttons(buttons)\n .open();\n\n return (youMayNavigate.pipe(filter(el => el))).toPromise();\n }\n\n private disableButtons(e) {\n const targetElement: HTMLElement = e.currentTarget as HTMLElement;\n const parent = targetElement.parentElement;\n const children = parent.children;\n for (let index = 0, len = children.length; index < len; index++) {\n const btn = children[ index ];\n const id = btn.getAttribute('id');\n if (id.indexOf(LMDialogButtonKey.CANCEL) > -1 || id.indexOf(LMDialogButtonKey.CLOSE) > -1) {\n continue;\n }\n btn.setAttribute('disabled', 'true');\n }\n }\n private enableButtons(e) {\n const targetElement: HTMLElement = e.currentTarget as HTMLElement;\n const parent = targetElement.parentElement;\n const children = parent.children;\n for (let index = 0, len = children.length; index < len; index++) {\n const btn = children[ index ];\n const id = btn.getAttribute('id');\n if (id.indexOf(LMDialogButtonKey.CANCEL) > -1 || id.indexOf(LMDialogButtonKey.CLOSE) > -1) {\n continue;\n }\n btn.removeAttribute('disabled');\n }\n }\n}\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { LMDialogInfo } from '@base/index';\n\n@Component({\n selector: 'lm-dirty-check-form',\n template: `\n

          {{info.message}}

          \n `\n})\n\nexport class LMDirtyCheckDialogComponent implements OnInit, AfterViewInit {\n @Input() info: LMDialogInfo;\n\n constructor() {\n }\n\n ngOnInit() {\n // no-op\n }\n\n ngAfterViewInit() {\n // no-op\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable, of, throwError } from 'rxjs'\nimport { catchError, map } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport { LMValidateFieldResponse } from './lm-field-editor-dialog';\nimport { LMLoggerService } from '@services/lm-logger.service';\n\n@Injectable()\nexport class LMFieldValidatorService {\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n ) {\n }\n\n public fieldIsValid(value: string, busClassName: string, busListName: string, reportPersonalizationUrl: string): Observable {\n if (!(value.trim().length > 0)) {\n return of({\n lplStatus: 'LPL_INVALID',\n message: {\n error: Soho.Locale.translate('Required')\n }\n } as LMValidateFieldResponse);\n }\n\n const formRequest = {\n requestType: 'validateField',\n param1: busClassName,\n param2: value,\n param3: busListName,\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(reportPersonalizationUrl);\n\n const url = compiledUrlTemplate.expand({ resourceId: busClassName });\n\n return this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n map((response: LMValidateFieldResponse) => {\n if (response.message.error) {\n response.message.error = Soho.Locale.translate('ListPersonalizationAddFieldErrorMessage');\n }\n return response;\n }),\n catchError(error => this._handleError(error)));\n }\n\n public validatePeriodOperator(lplText: string, listSpec: LMListSpec, listUrlInfo: LMListUrlInfo): Observable {\n if (!(lplText.trim().length > 0)) {\n return of({\n lplStatus: 'LPL_VALID',\n message: {}\n } as LMValidateFieldResponse);\n }\n\n const formRequest = {\n requestType: 'validatePeriodOperator',\n param1: listSpec.busClassSpec.name,\n param2: lplText,\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(listUrlInfo.reportPersonalizationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: listSpec.busClassSpec.name });\n\n return this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n map((response: LMValidateFieldResponse) => {\n if (response.lplStatus === 'LPL_INVALID') {\n response.message.error = Soho.Locale.translate('ListPersonalizationPeriodOperatorErrorMessage');\n }\n return response;\n }),\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","/**\n * Created by vwiny on 8/28/2017.\n */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewChild, ChangeDetectorRef, forwardRef\n} from '@angular/core';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\n\n@Component({\n selector: 'lm-helper-list',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LMHelperListDialogComponent implements OnInit, AfterViewInit {\n @ViewChild(forwardRef(() => 'lmListComponent')) lmListComponent; // : LMListComponent;\n\n @Input() listUrlInfo: LMListUrlInfo;\n @Input() listSpec: LMListSpec;\n @Input() fromDataView: LMDataView;\n @Input() helperListOptions: LMHelperListOptions;\n\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n ngAfterViewInit() { }\n\n triggerDetectChanges() {\n // DETECT CHANGES\n this.changeDetectionRef.detectChanges();\n }\n}\n","/**\n * Created by vwiny on 8/28/2017.\n */\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMHelperListDialogComponent } from './lm-helper-list-dialog.component';\nimport { LMListComponent } from '@list/lm-list.component';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { Observable, Subject } from 'rxjs';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMActionService } from '@app/services';\n\nexport enum LMHelperListDialogResultCode {\n HELPER_LIST_DIALOG_CANCEL = 0,\n HELPER_LIST_DIALOG_OK,\n HELPER_LIST_ACTION_FORM_DIALOG_SAVED,\n HELPER_LIST_ALL_PARAMS_SAVED\n}\n\n/**\n * Must be a class and not an interface for typescript type guards to work.\n */\nexport class LMHelperListDialogResult {\n result: LMHelperListDialogResultCode;\n dataView?: LMDataView;\n status?: string;\n helperListAction: LMBusListRefAction;\n}\n\n@Injectable()\nexport class LMHelperListDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmActionService: LMActionService\n ) {\n }\n\n public dialog: SohoModalDialogRef;\n private dialogOpened = false;\n private buttons: SohoModalButton[];\n private readonly dialogId = 'HelperList'; \n\n public get hasOpenDialog() {\n return this.dialogOpened;\n }\n\n // LMCLIENT-33598: update helper list button state\n public updateHelperListButtonState(actions: LMActionSpec[], dataViewSet: LMDataViewSet, rows?: any[]) {\n\n /* !!!IMPORTANT!!!\n This function is temporarily disabled due to applications \n need time to adapt to this new helper list rule.\n See LMCLIENT-35152 \n */\n return false;\n\n /*\n const buttonset: SohoButtonsetStatic = this.dialog.buttonsetAPI;\n const buttons: Array = buttonset?.settings?.buttons || [];\n\n if (!dataViewSet?.data?.length || !rows?.length) {\n //disable all helper actions \n for (let i = 1; i < buttons.length; i++) { \n buttonset.at(i).disabled = true;\n }\n } else {\n //check valid helper actions for the selected dataviews \n const validInstanceActions: Array = this.lmActionService.getValidListInstanceActions(actions, dataViewSet, rows);\n\n validInstanceActions.forEach(value => {\n const id = this.lmUniqueIdService.uniqueId([ this.dialogId, value.name ]);\n for (let i = 1; i < buttons.length; i++) { \n if (buttons[i].id === id) {\n buttonset.at(i).disabled = false;\n }\n } \n });\n }\n */\n }\n\n public runHelperListDialog(listSpec: LMListSpec, fromDataView: LMDataView, contextDataView: LMDataView, helperListActions: Array,\n parentListComponent: LMListComponent, placeholder: ViewContainerRef): Observable {\n return new Observable(observer => {\n this.lmLoggerService.log([ 'LMHelperListDialog', 'formService.getFormSpec()', 'Complete' ]);\n\n const helperListDialog$: Subject = new Subject();\n const listUrlinfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(listSpec);\n\n let dlgComponent: LMHelperListDialogComponent;\n const title = Soho.Locale.translate('Select');\n\n // Todo: Button text\n this.buttons = [\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ this.dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n this.dialog.close({\n result: LMHelperListDialogResultCode.HELPER_LIST_DIALOG_CANCEL\n });\n }\n }\n ];\n\n for (let i = 0; i < helperListActions.length; i++) {\n this.buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ this.dialogId, helperListActions[ i ].actionSpec.name ]),\n text: helperListActions[ i ].actionSpec.label,\n click: (e, modal) => {\n helperListDialog$.next({\n result: LMHelperListDialogResultCode.HELPER_LIST_DIALOG_OK,\n helperListAction: helperListActions[ i ]\n });\n }\n }\n )\n }\n\n helperListDialog$.subscribe((result: LMHelperListDialogResult) => {\n if (result.result === LMHelperListDialogResultCode.HELPER_LIST_ACTION_FORM_DIALOG_SAVED\n || result.result === LMHelperListDialogResultCode.HELPER_LIST_ALL_PARAMS_SAVED) {\n parentListComponent.listContentComponent.refresh().subscribe();\n }\n });\n\n if (helperListActions.length === 1) {\n this.buttons[ 1 ].isDefault = true;\n }\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n this.dialog = this.sohoModalDialogService\n .modal(LMHelperListDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(this.buttons)\n .title(title)\n .isAlert(false)\n .autoFocus(false)\n .open()\n .apply((helperList: LMHelperListDialogComponent) => {\n dlgComponent = helperList;\n helperList.listUrlInfo = listUrlinfo;\n helperList.listSpec = listSpec;\n helperList.fromDataView = fromDataView;\n helperList.helperListOptions = {\n helperListActions,\n helperListDialog$,\n contextDataView\n };\n //\n // // TODO: Set the title after processing message rules\n // // dialog.title(formSpec.busFormSpec.title);\n // helperList.titleChanged.first().subscribe(newTitle => {\n // this.dialog.title(newTitle);\n // helperList.triggerDetectChanges();\n // });\n })\n .afterClose(result => {\n helperListDialog$.complete();\n observer.next(result);\n observer.complete();\n this.dialogOpened = false;\n })\n .afterOpen(() => {\n this.dialogOpened = true;\n })\n });\n }\n}\n","import {\n Component,\n AfterViewInit,\n OnInit,\n ChangeDetectionStrategy,\n Renderer2,\n} from '@angular/core';\nimport { LMBrowserUtilService } from '@utils/lm-browser-util.service';\n\n@Component({\n selector: 'lm-keyboard-shortcuts-dialog',\n templateUrl: 'lm-keyboard-shortcuts-dialog.component.html',\n styleUrls: [ 'lm-keyboard-shortcuts-dialog.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LMKeyboardShortcutsDialogComponent implements OnInit, AfterViewInit {\n\n public isMac: boolean;\n\n constructor(\n private renderer: Renderer2,\n private lmBrowserUtilService: LMBrowserUtilService,\n ) {\n this.isMac = this.lmBrowserUtilService.isMAC;\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n // Add a class to the overlay to override the opacity\n this.renderer.addClass(document.body, 'lm-overlay');\n }\n}\n","
          \n
          \n\n
          \n
          \n {{ 'ToggleMenu' | translate }}\n {{ 'CtrlShiftK' | translate }}\n {{ 'CommandShiftK' | translate }}\n
          \n
          \n {{ 'Save' | translate }}\n {{ 'CtrlShiftS' | translate }}\n {{ 'CommandShiftS' | translate }}\n
          \n
          \n {{ 'PreviousRecord' | translate }}\n {{ 'CtrlShiftLeftArrow' | translate }}\n {{ 'CommandShiftLeftArrow' | translate }}\n
          \n
          \n {{ 'NextRecord' | translate }}\n {{ 'CtrlShiftRightArrow' | translate }}\n {{ 'CommandShiftRightArrow' | translate }}\n
          \n
          \n {{ 'FieldDefine' | translate }}\n {{ 'CtrlShiftF6' | translate }}\n {{ 'FnF6' | translate }}\n
          \n
          \n {{ 'Refresh' | translate }}\n {{ 'CtrlShiftF5' | translate }}\n {{ 'FnF5' | translate }}\n
          \n
          \n {{ 'Open' | translate }}\n {{ 'CtrlAltO' | translate }}\n {{ 'CommandAltO' | translate }}\n
          \n
          \n {{ 'FieldSelect' | translate }}{{ 'DownArrow' | translate }}\n
          \n
          \n {{ 'FieldOptions' | translate }}\n {{ 'CtrlShiftF7' | translate }}\n {{ 'FnF7' | translate }}\n
          \n
          \n
          \n
          \n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lm-pending-changes-form',\n template: `\n

          {{documentHasChangesMessage}}

          \n

          {{clickApply}}

          \n

          {{clickDiscard}}

          \n `\n})\n\nexport class LMPendingChangesDialogComponent implements OnInit, AfterViewInit {\n @Input() formSpec: LMFormSpec;\n @Input() formOptions: LMFormOptions;\n\n public documentHasChangesMessage: string;\n public clickApply: string;\n public clickDiscard: string;\n\n constructor() {\n }\n\n ngOnInit() {\n this.documentHasChangesMessage = Soho.Locale.translate('DocumentHasPendingChangesMessage');\n this.clickApply = Soho.Locale.translate('ClickApplyToContinueChanges');\n this.clickDiscard = Soho.Locale.translate('ClickDiscardToIgnoreChanges');\n }\n\n ngAfterViewInit() {\n }\n}\n","/**\n * Created by vwiny on 10/10/2017.\n */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMFormRequestService } from '@form/services/lm-form-request.service';\nimport {\n SohoAccordionComponent,\n SohoAlertDirective,\n SohoAutoCompleteComponent,\n SohoBusyIndicatorDirective,\n SohoDataGridComponent,\n SohoDropDownComponent,\n SohoLookupComponent,\n SohoMessageService,\n SohoModalDialogRef,\n SohoModalDialogService,\n SohoSpinboxComponent,\n SohoTabsComponent,\n SohoTrackDirtyDirective\n} from 'ids-enterprise-ng';\nimport {\n LMReportPersonalizationDialogResult,\n LMReportPersonalizationDialogResultCode\n} from './lm-report-personalization-dialog.service';\nimport { AppConstants, FilterBuilderDialogResult, LMDialogButtonKey } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport { ReportPersonalizationSwapListService } from './lm-report-personalization-swaplist-service';\nimport { LMLookupDialogComponent } from '@field/lookup/lm-lookup-dialog.component';\nimport { LMLookupSelectionEvent } from '@field/lookup';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { ConfirmationDialogResult, LMConfirmationMessageService } from './lm-confirmation-message.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMConfigurationService } from '@services/lm-configuration.service';\nimport { BehaviorSubject, defer, Observable, of, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, first, flatMap, map, switchMap, takeUntil, takeWhile } from 'rxjs/operators';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMCommonUtilService, LMUniqueIdService } from '../../utils';\nimport { LMFilterBuilderService } from '@modal/filter-builder/services/lm-filter-builder.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMFieldPickerService } from '@modal/field-picker/services';\nimport { LMFieldValidatorService } from './lm-field-validator.service';\nimport { LMComputeBuilderService } from '@modal/compute-builder/services';\nimport { LMCubeDimensionsDialogComponent } from '@modal/cubes/lm-cube-dimensions-dialog.component';\nimport { LMSelectDialogService, LMSelectResponse } from '@app/components';\nimport {\n LMFieldPickerResponse,\n LMFieldPickerSelectOptions,\n LMFieldPickerSelectResponse\n} from '@modal/field-picker/lm-field-picker';\n\nenum FieldAlertType {\n RED_ALERT\t\t\t= 1,\n YELLOW_ALERT\t\t= 2,\n GREEN_ALERT\t\t= 3,\n BLUE_ALERT\t = 4,\n ICON_ALERT\t = 5\n}\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nconst customAlertFormatter = function(row, cell, value, col, item, api) {\n if (value !== '') {\n if (item.type !== FieldAlertType.ICON_ALERT) {\n const content = `` +\n ``;\n return Soho.Formatters.Input(row, cell, content, col, item, api);\n } else {\n const content = ``;\n return Soho.Formatters.Input(row, cell, content, col, item, api);\n }\n } else {\n return Soho.Formatters.Input(row, cell, value, col, item, api);\n }\n};\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nconst customAlertConditionFormatter = function(row, cell, value, col, item, api) {\n if (value !== '' && item.negated) {\n let condition: string = value;\n condition = condition.replace('not', '').trim();\n return Soho.Formatters.Input(row, cell, condition, col, item, api);\n } else {\n return Soho.Formatters.Input(row, cell, value, col, item, api);\n }\n};\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nconst customFormatter = function(row, cell, value, col, item, api) {\n let content = '';\n let columnLabel = '';\n\n if (col.field === 'label') {\n columnLabel = item.label ? item.label : item.placeholder;\n\n if (!columnLabel){\n if (item.name !== undefined) {\n columnLabel = item.name.replace(/([a-z])([A-Z])/g, '$1 $2');\n columnLabel = columnLabel.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2');\n }\n content += '

          ' + columnLabel + '

          ';\n } else {\n content += '

          ' + columnLabel + '

          ';\n }\n } else if (col.field === 'field') {\n columnLabel = item.name;\n content += '

          ' + columnLabel + '

          ';\n }\n\n if (item.defaultSort) {\n content = '
          ' + content;\n content += '
          ' + Soho.Locale.translate('ListPersonalizationDefaultSortLabel40') + '
          ';\n content += '
          ';\n }\n\n return Soho.Formatters.Input(row, cell, content, col, item, api);\n};\n\n@Component({\n selector: 'lm-create-report',\n templateUrl: './lm-report-personalization-dialog.component.html',\n styleUrls: [ 'lm-report-personalization-dialog.component.scss' ],\n providers: [\n LMRouteComponentService, LMFormRequestService, LMHtmlPageUtilService, ReportPersonalizationSwapListService,\n LMFieldValidatorService\n // LMFieldEditorDialogService,\n // LMComputeEditorDialogService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LMReportPersonalizationDialogComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('columnDataGridComponent') columnDataGridComponent: SohoDataGridComponent;\n @ViewChild('alertDataGridComponent') alertDataGridComponent: SohoDataGridComponent;\n @ViewChild(SohoSpinboxComponent) spinboxComponent: SohoSpinboxComponent;\n @ViewChild(SohoBusyIndicatorDirective) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChild(SohoLookupComponent) sohoLookup: SohoLookupComponent;\n @ViewChild(SohoAccordionComponent) accordionComponent: SohoAccordionComponent;\n @ViewChildren(SohoAlertDirective) alerts: QueryList;\n @ViewChild(SohoTrackDirtyDirective) trackDirty: SohoTrackDirtyDirective;\n @ViewChild('sortOrder', { static: false }) dropDown: SohoDropDownComponent;\n @ViewChild('fieldName', { static: false }) fieldNameComponent: SohoAutoCompleteComponent;\n @ViewChild('modalPlaceholder', { read: ViewContainerRef }) modalPlaceholder: ViewContainerRef;\n @ViewChild(LMCubeDimensionsDialogComponent) cubeDimensions: LMCubeDimensionsDialogComponent;\n @ViewChild(SohoTabsComponent) tabs: SohoTabsComponent;\n\n @ViewChild(SohoAlertDirective) fieldAlert: SohoAlertDirective;\n\n @Input() mode: LMReportPersonalizationMode;\n @Input() personalizationExists: boolean;\n @Input() url: string;\n @Input() actorGroupUrl: string;\n @Input() roleUrl: string;\n @Input() roleGroupUrl: string;\n @Input() fieldSearchUrl: string;\n @Input() contained: boolean;\n @Input() listTitle: string;\n @Input() listUrlInfo: LMListUrlInfo;\n @Input() listSpec: LMListSpec;\n @Input() dataViewSet: LMDataViewSet;\n @Input() includeBaseFilter: boolean;\n\n @Input() filterCondition: string;\n @Input() chartName: string;\n @Input() dialog$: Subject;\n\n private MATCH_OPTION_ALL = 'all';\n\n private DATA_OPTION_LIVE = 'live';\n private DATA_OPTION_AUDIT = 'audit';\n\n private PRIVATE_SHARING_OPTION = 'Private';\n private PUBLIC_SHARING_OPTION = 'Public';\n private GROUP_SHARING_OPTION = 'Group';\n private ROLE_SHARING_OPTION = 'Role';\n private ROLEGROUP_SHARING_OPTION = 'RoleGroup';\n\n private REPORT_NAME_FIELD = 'ReportName';\n private LIST_NAME_FIELD = 'ListName';\n private ACTOR_GROUP_FIELD = 'ActorGroup';\n private ROLE_FIELD = 'Role';\n private ROLE_GROUP_FIELD = 'RoleGroup';\n private SHARED_WITH_OPTION_FIELD = 'SharedWithOption';\n private BUSINESS_CLASS_FIELD = 'BusinessClass';\n private PDF_OFFSET_FIELD = 'FontOffsetSpinner';\n private PDF_ORIENTATION_FIELD = 'Orientation';\n private CHART_NAME_FIELD = 'ChartName';\n private DATA_OPTION_FIELD = 'DataOption';\n private AS_OF_DATE_FIELD = 'AsOfDate';\n\n listUrl: string;\n filterMode: string;\n disableEdit: boolean;\n disableRemove: boolean;\n disableAsOfDate: boolean;\n separator: string;\n canTotal: boolean;\n sharing: any[];\n listNames: any[];\n listName: string;\n busClassName: string;\n businessClasses: any[];\n viewNames: any[];\n allViewNames: { [ key: string ]: any[] } = {};\n sortColumns: any[];\n isPrimaryList: boolean;\n noChartView: boolean;\n conditionValid: boolean;\n originalTitle: string;\n isColumnarView: boolean;\n sortOrders: any[];\n totaling: any[];\n public noRedAlert: boolean;\n public noGreenAlert: boolean;\n public noYellowAlert: boolean;\n public noBlueAlert: boolean;\n public hasAllAlerts: boolean;\n public selectedField: LMPersonalizationColumn;\n alertOptions: LMFieldEditorFieldAlert[];\n iconAlert: string;\n // fieldAlert: SohoAlertDirective;\n computeAlert: SohoAlertDirective;\n conditionAlert: SohoAlertDirective;\n disableTabs: boolean;\n\n private availableItems$ = new BehaviorSubject([]);\n public availableItems = this.availableItems$.asObservable();\n\n private selectedItems$ = new BehaviorSubject([]);\n public selectedItems = this.selectedItems$.asObservable();\n\n private lookupSelectionEvent: LMLookupSelectionEvent;\n private lookupSelectionSubscription;\n private unsubscribe$ = new Subject();\n\n private fieldValidation$ = new Subject();\n\n public instanceSelectionValidator$ = new Subject();\n private reportUrl: string;\n private actorGroupSelectUrl: string;\n private roleSelectUrl: string;\n private roleGroupSelectUrl: string;\n public displayFields: Array;\n private setSpecs: { [key: string]: string[] };\n private totalTypes: Array;\n private shareLookupDialog: SohoModalDialogRef;\n private fieldLookUpUrl: string;\n public allowSharing = true;\n public conditionNames: Array;\n // public iconNames: Array;\n public selectedAlert: number;\n public isCubeView = false;\n public cubeParent: string;\n public cubeViewState: LMListState;\n private cubeColumnView: string;\n public testVersion3: boolean;\n public showLabelText: string;\n public showLabel: boolean;\n public filterConditionInitial: string;\n public filterConditionChanged: boolean;\n\n columnGridOptions: SohoDataGridOptions;\n alertGridOptions: SohoDataGridOptions;\n\n public model = {\n name: '',\n conditionString: '',\n includeBaseFilter: false,\n matchOption: '',\n dataOption: '',\n sharing: '',\n businessClass: '',\n listName: '',\n viewName: '',\n actorGroup: '',\n role: '',\n roleGroup: '',\n fontOffset: 0,\n orientation: 'landscape',\n asOfDate: '',\n actualOrRound: '',\n roundingPrecision: false,\n displayNegInParens: false,\n defaultSortColumn: '',\n sortDescending: false,\n titleChanged: false,\n fieldLookupUrl: '',\n };\n\n private confirmedMessageIds: string[];\n\n protected dialog: SohoModalDialogRef;\n\n public pickerOptions: SohoDatePickerOptions = {\n mode: 'standard',\n dateFormat: Soho.Locale.calendar().dateFormat.short,\n showMonthYearPicker: true\n };\n\n public get enableDefaultSort(): boolean {\n if (this.model.defaultSortColumn === undefined || this.model.defaultSortColumn === '') {\n return true;\n } else {\n if (this.selectedField.sortOrder !== this.model.defaultSortColumn) {\n return false;\n } else {\n return true;\n }\n }\n }\n\n public get dataView(): LMReportPersonalizationDataView {\n const fields = {};\n fields[this.REPORT_NAME_FIELD] = this.model.name;\n fields[this.LIST_NAME_FIELD] = this.model.listName;\n fields[this.ACTOR_GROUP_FIELD] = this.model.actorGroup;\n fields[this.ROLE_FIELD] = this.model.role;\n fields[this.ROLE_GROUP_FIELD] = this.model.roleGroup;\n fields[this.SHARED_WITH_OPTION_FIELD] = this.model.sharing;\n fields[this.BUSINESS_CLASS_FIELD] = this.model.businessClass;\n fields[this.PDF_OFFSET_FIELD] = this.model.fontOffset;\n fields[this.PDF_ORIENTATION_FIELD] = this.model.orientation;\n fields[this.CHART_NAME_FIELD] = this.model.viewName;\n fields[this.DATA_OPTION_FIELD] = this.model.dataOption;\n fields[this.AS_OF_DATE_FIELD] = this.lmFormatUtilService.yyyymmddToData(this.model.asOfDate);\n\n const reportDataView: LMReportPersonalizationDataView = {\n fields,\n listTitle: this.model.name,\n defaultSortField: this.model.defaultSortColumn,\n sortDescending: this.model.sortDescending,\n manualCondition: this.model.conditionString,\n includeBaseFilter: this.model.includeBaseFilter,\n titleChanged: this.model.titleChanged,\n confirmedMessageIds: this.confirmedMessageIds\n };\n\n return reportDataView;\n }\n\n get actorGroupSharing(): boolean {\n if (this.model.sharing === 'Group') {\n return true;\n } else {\n return false;\n }\n }\n\n get roleSharing(): boolean {\n if (this.model.sharing === 'Role') {\n return true;\n } else {\n return false;\n }\n }\n\n get roleGroupSharing(): boolean {\n if (this.model.sharing === 'RoleGroup') {\n return true;\n } else {\n return false;\n }\n }\n\n public emptyMessage: SohoEmptyMessageOptions = {\n title: Soho.Locale.translate('ListPersonalizationNoFieldAlertsMessage'),\n icon: 'icon-empty-no-alerts',\n };\n\n constructor(private ngZone: NgZone,\n private http: HttpClient,\n private element: ElementRef,\n private changeDetectionRef: ChangeDetectorRef,\n private lmContextService: LMContextService,\n private lmFormRequestService: LMFormRequestService,\n private lmSpecService: LMSpecService,\n private lmLoggerService: LMLoggerService,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n // private lmColumnEditorDialogService: LMFieldEditorDialogService,\n // private lmComputeEditorDialogService: LMComputeEditorDialogService,\n private lmFieldValidatorService: LMFieldValidatorService,\n private lmConfirmationMessageService: LMConfirmationMessageService,\n private lmUrlUtilService: LMUrlUtilService,\n private swapListService: ReportPersonalizationSwapListService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmFilterBuilderService: LMFilterBuilderService,\n private lmFieldPickerService: LMFieldPickerService,\n private lmComputeBuilderService: LMComputeBuilderService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmConfigurationService: LMConfigurationService,\n private lmSelectDialogService: LMSelectDialogService,\n private sohoMessageService: SohoMessageService) {\n // no-op\n }\n\n autoCompleteSource = ((searchTerm: string, response: SohoAutoCompleteResponseFunction) => {\n const url = this.listUrlInfo ? this.listUrlInfo.fieldSearchUrl : this.fieldSearchUrl;\n const mode = this.isCubeView ? 'Measures' : 'Fields';\n this.lmConfigurationService.searchField(searchTerm, url, this.model.businessClass, mode)\n .subscribe((fieldPickerResponse: LMFieldPickerResponse) => {\n setTimeout(() => {\n let uiFieldSpecNames;\n if (fieldPickerResponse.data) {\n uiFieldSpecNames = fieldPickerResponse.data.map(uiFieldSpec => this.lmFieldPickerService.getUIFieldSpecSearchName(uiFieldSpec));\n response(searchTerm, uiFieldSpecNames);\n }\n }, 1);\n });\n })\n\n // validate when using auto complete\n onAutoCompleteSelected(event: Event) {\n\n if (this.fieldAlert) {\n this.fieldAlert.removeAllMessages();\n }\n\n this.selectedField.name = event[ 2 ].label;\n this.columnDataGridComponent.rowStatus(this.columnDataGridComponent.selectedRows()[0].idx, 'new', Soho.Locale.translate('RowDataChanged'));\n this.columnDataGridComponent.updateRow(this.columnDataGridComponent.selectedRows()[0].idx, this.selectedField);\n\n this.fieldValidation$.next(event[ 2 ].label);\n }\n\n public sortOrderSource = (response: any, searchTerm: any) => {\n this.buildSortOrders();\n\n response(this.sortOrders);\n }\n\n private buildSortOrders() {\n this.sortOrders = [];\n this.sortOrders.push({ value: 'None' });\n const keys: Array = Object.keys(this.setSpecs);\n\n for (const key of keys) {\n this.sortOrders.push({ value: key, label: key });\n }\n }\n\n public totalSource = (response: any, searchTerm: any) => {\n this.buildTotalTypes();\n\n response(this.totaling);\n }\n\n private buildTotalTypes() {\n this.totaling = [];\n\n // Should only support NONE and TOTAL\n if (this.isColumnarView) {\n for (let i = 0; i < 2; i++) {\n const total = this.totalTypes[ i ];\n this.totaling.push({ value: total, label: total });\n }\n } else if (this.selectedField.canTotal || this.selectedField.compute) {\n for (const totalType of this.totalTypes) {\n this.totaling.push({ value: totalType, label: totalType });\n }\n } else {\n this.totaling.push({ value: this.totalTypes[ 0 ], label: this.totalTypes[ 0 ] });\n }\n }\n\n loadBusClasses() {\n this.lmFormRequestService.getBusClasses(this.url)\n .subscribe((busClasses: any) => {\n this.businessClasses = [];\n busClasses.forEach((busClass) => this.businessClasses.push({ value: busClass.name, label: busClass.name }));\n },\n (error: any) => {\n // notify listeners\n });\n }\n\n loadListNamesAndViews(event: Event, businessClassChanged: boolean) {\n const url = this.listUrlInfo ? this.listUrlInfo.reportPersonalizationUrl : this.url;\n this.lmFormRequestService.getListNamesAndViewsForBusClass(url, this.model.businessClass)\n .subscribe(\n (response: any) => {\n this.listNames = [];\n response.forEach((listInfo) => {\n this.listNames.push({ value: listInfo.listName, label: listInfo.listName });\n\n const listViews = [];\n listInfo.listViews.forEach((listInfoViewName) =>\n listViews.push({ value: listInfoViewName, label: listInfoViewName }));\n\n this.allViewNames[ listInfo.listName ] = listViews;\n });\n\n if (!businessClassChanged) {\n this.viewNames = this.loadViews();\n this.noChartView = (this.viewNames.length === 1) ? true : false;\n this.model.viewName = this.chartName ? this.chartName : 'List';\n return;\n }\n\n this.model.listName = this.listNames[ 0 ].value;\n this.onListChange(event);\n this.markForRefresh();\n },\n (error: any) => {\n // notify listeners\n });\n }\n\n loadViews(): any[] {\n return this.allViewNames [ this.model.listName ];\n }\n\n onSortOrderChanged(event: string) {\n this.dropDown.updated();\n this.updateSortOrderFields(event);\n this.onSortChange();\n }\n\n private updateSortOrderFields(setSpecName: string) {\n if (!setSpecName) {\n this.selectedField.sortOrderFields = [];\n return;\n }\n\n if (setSpecName.trim().length === 0) {\n this.selectedField.sortOrderFields = [];\n } else {\n this.selectedField.sortOrderFields = [];\n if (this.setSpecs[setSpecName]) {\n this.selectedField.sortOrderFields = this.setSpecs[setSpecName].map(value => {\n const sortBreak = value.indexOf('*') === 0;\n return { name: value, sortBreak };\n });\n } else {\n this.selectedField.defaultSort = false;\n }\n }\n }\n\n lmFieldLookupClickFunction = (\n event: any,\n lookup: SohoLookupStatic,\n clickArguments: any) => {\n\n if (!clickArguments) {\n return;\n }\n\n const personalizationComponent = clickArguments.grid.settings.userObject;\n personalizationComponent.onGetConditionQualifier(lookup, clickArguments.grid);\n };\n\n onLabelDirty() {\n if (this.selectedField.placeholder !== this.selectedField.label) {\n this.selectedField.label = this.selectedField.placeholder;\n }\n this.onChange();\n }\n\n onLabelPristine() {\n this.onChange();\n }\n\n onChange(fieldChanged = false) {\n if (fieldChanged) {\n this.selectedField.added = true;\n } else {\n this.selectedField.updated = true;\n }\n\n this.columnDataGridComponent.rowStatus(this.columnDataGridComponent.selectedRows()[0].idx, 'new', Soho.Locale.translate('RowDataChanged'));\n this.columnDataGridComponent.updateRow(this.columnDataGridComponent.selectedRows()[0].idx, this.selectedField);\n this.selectedField.validated = false;\n this.selectedField.isValid = false;\n\n if (this.selectedField.compute) {\n this.validateCompute();\n } else {\n this.validateField();\n }\n }\n\n isModified() : boolean {\n for (let personalizationCol of this.displayFields){\n if (personalizationCol?.updated || personalizationCol?.added) {\n return true;\n }\n }\n\n return false;\n }\n\n onSortChange() {\n // this.populateSortOrders();\n this.onChange();\n if (this.selectedField.defaultSort) {\n const prevDefaultSort: LMPersonalizationColumn[] = this.displayFields.filter((field: LMPersonalizationColumn) => field.defaultSort && field.index !== this.selectedField.index);\n if (prevDefaultSort.length > 0) {\n prevDefaultSort[0].defaultSort = false;\n this.columnDataGridComponent.updateRow(prevDefaultSort[0].index, prevDefaultSort[0]);\n }\n this.model.defaultSortColumn = this.selectedField.index.toString();\n }\n }\n\n onSortDescendingChange() {\n this.model.sortDescending = this.selectedField.sortDescending;\n this.onChange();\n }\n\n // validateFields() {\n // // this.displayFields.forEach((field: LMPersonalizationColumn) => this.validateField(field));\n // // }\n\n // validate when not using auto complete\n validateField(field?: LMPersonalizationColumn) {\n if (!field) {\n field = this.selectedField;\n }\n\n // if (!field.validated ) {\n const rowNumber = field.index === 0 || field.index < this.columnDataGridComponent.dataset.length ? field.index : this.columnDataGridComponent.selectedRows()[0].idx;\n this.fieldAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'name');\n\n if (this.fieldAlert) {\n this.fieldAlert.removeAllMessages();\n }\n\n if (this.selectedField.type !== 'Field' || this.selectedField.name === '') {\n this.columnDataGridComponent.clearRowError(rowNumber);\n field.validated = true;\n field.isValid = true;\n } else {\n // this.alert.removeAllMessages();\n // this.columnDataGridComponent.clearRowError(field.index);\n this.fieldValidation$.next(this.selectedField.name);\n }\n // }\n }\n\n validAlerts(event?: SohoDataGridEditModeEvent, row?: number) {\n let validAlerts = true;\n const rowNumber = event ? event.row : row ? row : 0;\n\n if (!this.selectedField.alerts || this.selectedField.alerts === undefined) {\n validAlerts = true;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.rowStatus && fieldAlert.type === undefined).length > 0) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === FieldAlertType.RED_ALERT ).length > 1) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === FieldAlertType.YELLOW_ALERT ).length > 1) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === FieldAlertType.GREEN_ALERT ).length > 1) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === FieldAlertType.BLUE_ALERT ).length > 1) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === FieldAlertType.ICON_ALERT ).length > 1) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.iconName.trim() === '').length > 0) {\n validAlerts = false;\n } else if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.condition === undefined).length > 0) {\n validAlerts = false;\n }\n\n if (!validAlerts) {\n this.columnDataGridComponent.showRowError(rowNumber, Soho.Locale.translate('FieldEditorFixAlert'), 'error');\n this.selectedField.isValid = false;\n this.selectedField.validated = true;\n } else {\n if (this.selectedField.isValid) {\n this.selectedField.validated = true;\n this.selectedField.isValid = true;\n this.columnDataGridComponent.clearRowError(rowNumber);\n }\n }\n }\n\n validateCompute(event?: Event) {\n setTimeout(() => {\n this.computeAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'compute');\n const field = this.selectedField;\n const rowNumber = field.index === 0 || field.index < this.columnDataGridComponent.dataset.length ? field.index : this.columnDataGridComponent.selectedRows()[0].idx;\n\n if (this.computeAlert) {\n this.computeAlert.removeAllMessages();\n }\n if (this.selectedField.name === '') {\n this.columnDataGridComponent.clearRowError(rowNumber);\n this.selectedField.validated = true;\n this.selectedField.isValid = true;\n } else {\n if (this.selectedField.name.indexOf('(') !== 0) {\n this.selectedField.name = '(' + this.selectedField.name;\n }\n\n if (this.selectedField.name.lastIndexOf(')') !== this.selectedField.name.length - 1) {\n this.selectedField.name += ')';\n }\n\n this.lmConfigurationService.computeIsValid(this.listUrlInfo.reportPersonalizationUrl, this.listSpec.busClassSpec.name, this.selectedField).subscribe((response: any) => {\n if (response.lplStatus !== 'LPL_VALID') {\n if (this.computeAlert) {\n this.computeAlert.addInlineMessage(response.message);\n }\n this.columnDataGridComponent.showRowError(rowNumber, response.message.error, 'error');\n this.selectedField.isValid = false;\n\n } else {\n this.columnDataGridComponent.clearRowError(rowNumber);\n this.selectedField.isValid = true;\n }\n this.selectedField.validated = true;\n });\n }\n }, 10);\n }\n\n isRequired(id: string): string {\n // used to set the sohoxi required validator on the data-validate attribute on a control\n // return null means attribute is not set\n if (this.selectedField.validated) {\n return 'required';\n }\n return null;\n }\n\n // computeIsValid(): Observable {\n // let formRequest: any = {\n // requestType: 'validateCompute',\n // param1: this.listSpec.busClassSpec.name,\n // param2: this.selectedField.name,\n // param3: this.selectedField.compute,\n // };\n //\n // let headers = new HttpHeaders();\n // headers.append('Content-Type', 'application/json;charset=utf-8');\n //\n // const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.reportPersonalizationUrl);\n //\n // let url = compiledUrlTemplate.expand({ resourceId: this.listSpec.busClassSpec.name });\n //\n // return > this.http.post(url, JSON.stringify(formRequest), {headers: headers}).pipe(\n // catchError(error => this._handleError(error)));\n // }\n\n hasAlert(type: number) {\n if (!this.selectedField.alerts) {\n return false;\n }\n\n if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === type).length >= 1) {\n return true;\n }\n return false;\n }\n\n onGetFieldQualifier($event: Event) {\n const mode = this.isCubeView ? 'Measures' : 'Fields';\n const includeAudit = this.listSpec?.busListSpec?.isAudit || this.model?.dataOption === this.DATA_OPTION_AUDIT;\n\n let enableOperator = this.isCubeView ? this.listSpec?.cubeOptions?.hasPeriodDimension : false;\n if (this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_Configuration)) {\n enableOperator = true;\n }\n\n const options: LMFieldPickerSelectOptions = {\n view: this.isCubeView ? 'Measures' : 'Fields',\n businessClass: this.model.businessClass,\n enableOperatorBuilder: enableOperator,\n includeAuditFields: includeAudit\n };\n this.lmFieldPickerService.openFieldPickerDialog(options, this.fieldLookUpUrl, this.modalPlaceholder)\n .subscribe((result) => {\n this.handleRowSelectionEvent(result);\n });\n }\n\n onGetConditionQualifier(lookup: SohoLookupStatic, grid: SohoDataGridStatic) {\n const options: LMFieldPickerSelectOptions = {\n view: 'SimpleConditions',\n businessClass: this.model.businessClass\n };\n this.lmFieldPickerService.openFieldPickerDialog(options, this.fieldLookUpUrl, this.modalPlaceholder)\n .subscribe((result) => {\n this.handleConditionSelectionEvent(result, lookup, grid);\n });\n }\n\n setValidAlerts() {\n this.noRedAlert = !this.hasAlert(FieldAlertType.RED_ALERT);\n this.noYellowAlert = !this.hasAlert(FieldAlertType.YELLOW_ALERT);\n this.noGreenAlert = !this.hasAlert(FieldAlertType.GREEN_ALERT);\n this.noBlueAlert = !this.hasAlert(FieldAlertType.BLUE_ALERT);\n\n if (!this.noRedAlert && !this.noYellowAlert && !this.noGreenAlert && !this.noBlueAlert) {\n this.hasAllAlerts = true;\n } else {\n this.hasAllAlerts = false;\n }\n }\n\n private buildAlerts() {\n if (this.selectedField.alerts) {\n this.selectedField.alerts.forEach((fieldAlert: LMFieldEditorFieldAlert) => {\n this.setAlertIconImage(fieldAlert);\n });\n }\n }\n\n private setAlertIconImage(fieldAlert: LMFieldEditorFieldAlert) {\n switch (fieldAlert.type) {\n case FieldAlertType.RED_ALERT:\n fieldAlert.iconImage = 'error';\n break;\n case FieldAlertType.YELLOW_ALERT:\n fieldAlert.iconImage = 'alert';\n break;\n case FieldAlertType.GREEN_ALERT:\n fieldAlert.iconImage = 'success';\n break;\n case FieldAlertType.BLUE_ALERT:\n fieldAlert.iconImage = 'info-field';\n break;\n case FieldAlertType.ICON_ALERT:\n fieldAlert.iconImage = this.buildIconUrl(fieldAlert.iconName);\n break;\n }\n }\n\n onAlertTypeChanged(alertType: number) {\n const selectedAlert: LMFieldEditorFieldAlert[] = this.alertOptions.filter(alert => alert.type === alertType);\n\n if (selectedAlert[0].type === FieldAlertType.ICON_ALERT) {\n this.iconAlert = '';\n } else {\n this.iconAlert = selectedAlert[0].iconName;\n }\n }\n\n ngOnInit() {\n if (this.listUrlInfo != null) {\n this.reportUrl = this.listUrlInfo.reportPersonalizationUrl;\n this.actorGroupSelectUrl = this.listUrlInfo.actorGroupSelectUrl;\n this.roleSelectUrl = this.listUrlInfo.roleSelectUrl;\n this.roleGroupSelectUrl = this.listUrlInfo.roleGroupSelectUrl;\n } else {\n this.actorGroupSelectUrl = this.actorGroupUrl;\n this.roleSelectUrl = this.roleUrl;\n this.roleGroupSelectUrl = this.roleGroupUrl;\n }\n\n this.conditionValid = true;\n this.displayFields = [];\n this.disableEdit = true;\n this.disableRemove = true;\n // this.disableMoveUp = true;\n // this.disableMoveDown = true;\n this.disableAsOfDate = false;\n this.filterMode = 'contains';\n\n this.model.matchOption = this.MATCH_OPTION_ALL;\n this.model.dataOption = this.DATA_OPTION_LIVE;\n this.model.fontOffset = 0;\n this.model.orientation = 'landscape';\n this.model.asOfDate = '';\n this.model.actorGroup = '';\n this.confirmedMessageIds = [];\n\n this.separator = AppConstants.CONDITION_AND;\n this.canTotal = false;\n this.totalTypes = [];\n this.conditionNames = [];\n // this.iconNames = [];\n this.allowSharing = (this.mode === 'createReport' || this.mode === 'report') && this.lmContextService.getContext().configuredFeatures.indexOf(AppConstants.FEATURE_UseAllActorGroups) !== -1;\n this.loadSharingOptions();\n if (this.mode === 'report') {\n this.loadBusClasses();\n this.disableTabs = true;\n } else {\n this.initializeListInfo();\n this.disableTabs = false;\n }\n\n this.fieldValidation$.pipe(\n switchMap((fieldName) => this.lmFieldValidatorService.fieldIsValid(fieldName, this.model.businessClass, this.model.listName, this.listUrlInfo ? this.listUrlInfo.reportPersonalizationUrl : this.url))\n ).subscribe(response => {\n const rowNumber = this.selectedField.index === 0 || this.selectedField.index < this.columnDataGridComponent.dataset.length ? this.selectedField.index : this.columnDataGridComponent.selectedRows()[0].idx;\n this.selectedField.name = this.fieldNameComponent.getValue();\n\n if (response.lplStatus === 'LPL_VALID') {\n this.selectedField.canTotal = response.message.canTotalField;\n this.selectedField.canUpdate = response.message.canUpdateField;\n this.columnDataGridComponent.clearRowError(rowNumber);\n this.selectedField.isValid = true;\n } else {\n this.fieldAlert.addInlineMessage(response.message.error, 'error');\n this.columnDataGridComponent.showRowError(rowNumber, response.message.error, 'error');\n this.selectedField.isValid = false;\n }\n this.validAlerts(undefined, rowNumber);\n this.selectedField.validated = true;\n });\n\n this.testVersion3 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V3;\n this.showLabelText = Soho.Locale.translate('ShowLabel');\n this.showLabel = true;\n this.filterConditionChanged = false;\n }\n\n ngAfterViewInit() {\n this.conditionAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'filterCriteria');\n this.instanceSelectionValidator$.pipe(\n takeUntil(this.unsubscribe$),\n debounceTime(1250),\n distinctUntilChanged())\n .subscribe(value => {\n this.filterConditionChanged = this.filterConditionInitial !== value;\n this.validateInstanceSelection();\n });\n\n // Do not do first here. This subscription will be active until dialog is closed.\n // The dialog service will complete and close this subject.\n this.dialog$.subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_OK && this.conditionValid) {\n // if (this.displayFields.filter((field: LMPersonalizationColumn) => !field.validated).length > 0) {\n // this.validateFields();\n // } else {\n // if (this.displayFields.filter((field: LMPersonalizationColumn) => field.isValid).length === this.displayFields.length) {\n if (this.mode === 'report') {\n let listUrl = this.lmUrlUtilService.getBaseUrl() + '/list/' + this.model.businessClass + '.' + this.model.listName;\n listUrl = this.lmUrlUtilService.propagateSessionKeys(listUrl, '?');\n this.runCreateReport(listUrl, result.viewReport);\n } else if (this.mode === 'createReport' && !this.personalizationExists) {\n const listUrl = this.dataViewSet?.listUrl ? this.dataViewSet.listUrl : this.lmUrlUtilService.buildSavePersonalizationUrl(this.listUrlInfo, this.listSpec);\n this.runCreateReport(listUrl, result.viewReport);\n } else {\n this.runPersonalize();\n }\n // }\n // }\n }\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_RESET) {\n this.runReset();\n }\n });\n if (this.mode === 'report') {\n this.tabs.select('tabs-normal-column');\n }\n }\n\n private markForRefresh() {\n this.changeDetectionRef.markForCheck();\n }\n\n private initializeListInfo() {\n this.model.businessClass = this.listSpec.busClassSpec.name;\n this.model.listName = this.listSpec.busListSpec.name;\n this.filterConditionInitial = this.filterCondition;\n this.model.conditionString = this.filterCondition;\n this.model.includeBaseFilter = this.includeBaseFilter;\n this.model.titleChanged = false;\n this.model.fontOffset = this.listSpec.busListSpec.fontOffset || 0;\n this.model.orientation = this.listSpec.busListSpec.orientation || 'landscape';\n\n this.isColumnarView = this.listSpec.busListSpec ? this.listSpec.busListSpec.implementsColumnarView : false;\n if (this.listSpec.busListSpec.implementsCubeView) {\n this.isCubeView = true;\n this.cubeViewState = {};\n this.cubeParent = 'reportpersonalization';\n if (this.listSpec.cubeOptions.columnViews) {\n let columnView: LMColumnView;\n if (this.dataViewSet.cubeInfo.columnView) {\n columnView = this.listSpec.cubeOptions.columnViews.find((c) => c.name === this.dataViewSet.cubeInfo.columnView);\n } else {\n columnView = this.listSpec.cubeOptions.columnViews.find((c) => c.default !== undefined && c.default);\n }\n if (!columnView) {\n columnView = this.listSpec.cubeOptions.columnViews[ 0 ];\n }\n this.cubeColumnView =columnView.name;\n }\n }\n const listPersonalizationUrl = this.listUrlInfo.listPersonalizationUrl + '&resourceName=' +\n this.model.businessClass + '.' + this.model.listName + '&fragment=true&output=spec' + (this.cubeColumnView ? '&colView=' + this.cubeColumnView : '');\n\n this.loadListNamesAndViews(null, false);\n\n this.retrievePersonalization(listPersonalizationUrl);\n }\n\n retrievePersonalization(listPersonalizationUrl: string): void {\n // todo: need to check for last delimiter\n\n this.lmHtmlPageUtilService.getListPersonalizationSpec(listPersonalizationUrl)\n .subscribe((response: LMPersonalizationResponse) => {\n this.displayFields = response.displayFields;\n this.isPrimaryList = response.dataView.isPrimaryList;\n this.totalTypes = response.totalTypes;\n this.conditionNames = response.conditionNames;\n // this.iconNames = response.iconNames;\n this.fieldLookUpUrl = response.fieldLookUpUrl;\n this.originalTitle = response.dataView.listTitle;\n this.setSpecs = response.setSpecs;\n this.model.defaultSortColumn = response.dataView.defaultSortField; // response.dataView.defaultSortField.toString();\n this.model.sortDescending = response.dataView.sortDescending ? true : false;\n\n if (this.mode === 'list') {\n this.model.name = this.originalTitle;\n } else {\n this.model.name = this.listTitle ? this.listTitle : this.model.name;\n }\n\n if (this.mode === 'report' || this.mode === 'createReport') {\n this.includeBaseFilter = response.includeBaseFilter;\n this.filterCondition = response.manualCondition;\n if (response.implementsCubeView) {\n this.isColumnarView = true;\n } else {\n this.isColumnarView = false;\n }\n if (response.implementsCubeView) {\n this.isCubeView = true;\n this.cubeViewState = {};\n this.cubeParent = 'reportpersonalization';\n } else {\n this.isCubeView = false;\n this.cubeViewState = {};\n this.cubeParent = null;\n }\n }\n\n\n this.initializeValidation();\n this.initializeSelectedField(undefined, 0);\n this.initializeSort();\n\n this.buildDisplayFieldTable();\n this.buildSortOrders();\n this.buildTotalTypes();\n\n if (response.dataView.fields) {\n const sharedWith = response.dataView.fields[this.SHARED_WITH_OPTION_FIELD];\n const dataOption = response.dataView.fields[this.DATA_OPTION_FIELD];\n const actorGroup = response.dataView.fields[this.ACTOR_GROUP_FIELD];\n const role = response.dataView.fields[this.ROLE_FIELD];\n const roleGroup = response.dataView.fields[this.ROLE_GROUP_FIELD];\n const asOfDate = response.dataView.fields[this.AS_OF_DATE_FIELD];\n const pdfOffset = response.dataView.fields[this.PDF_OFFSET_FIELD];\n const pdfOrientation = response.dataView.fields[this.PDF_ORIENTATION_FIELD];\n const chartName = response.dataView.fields[this.CHART_NAME_FIELD] ? response.dataView.fields[this.CHART_NAME_FIELD] : this.chartName;\n\n if (sharedWith) {\n this.model.sharing = sharedWith;\n\n if (this.mode === 'createReport' && !this.personalizationExists) {\n this.model.sharing = this.PRIVATE_SHARING_OPTION;\n }\n\n if (this.model.sharing === this.GROUP_SHARING_OPTION && actorGroup) {\n this.model.actorGroup = actorGroup;\n } else if (this.model.sharing === this.ROLE_SHARING_OPTION && role) {\n this.model.role = role;\n } else if (this.model.sharing === this.ROLEGROUP_SHARING_OPTION && roleGroup) {\n this.model.roleGroup = roleGroup;\n }\n this.onAudiDataOptionChanged();\n }\n\n if (dataOption) {\n this.model.dataOption = dataOption;\n\n if (this.model.dataOption === this.DATA_OPTION_LIVE && asOfDate) {\n this.model.asOfDate = this.lmFormatUtilService.yyyymmddToDisplay(asOfDate);\n }\n }\n\n if (pdfOffset) {\n this.model.fontOffset = pdfOffset;\n }\n\n if (pdfOrientation) {\n this.model.orientation = pdfOrientation;\n }\n\n if (chartName) {\n this.model.viewName = chartName;\n }\n }\n this.markForRefresh();\n setTimeout(() => {\n if (this.columnDataGridComponent) {\n this.columnDataGridComponent.selectRows([ 0 ]);\n this.initializeAlert();\n this.accordionComponent.expand('detailHeader');\n }\n });\n });\n }\n\n private buildSortOrdersCellOptions() {\n const sortOrdersCellOptions: SohoGridCellOption[] = [];\n sortOrdersCellOptions.push({ value: ' ', label: ' ' });\n const keys: Array = Object.keys(this.setSpecs);\n keys.map(value => sortOrdersCellOptions.push({ value, label: value }));\n return sortOrdersCellOptions;\n }\n\n private isSupportedTotalType(totalType: DisplayFieldTotalType): boolean {\n if (this.isColumnarView) {\n return totalType === 'totaling.option.label.none' || totalType === 'totaling.option.label.total';\n } else {\n return true;\n }\n }\n\n private buildTotalTypeCellOptions(): SohoGridCellOption[] {\n const totalTypeCellOptions: SohoGridCellOption[] = [];\n this.totalTypes.forEach(value => {\n if (this.isSupportedTotalType(value)) {\n totalTypeCellOptions.push({ value, label: value });\n }\n });\n return totalTypeCellOptions;\n }\n\n buildDisplayFieldTable(): void {\n const orderColumn: SohoDataGridColumn = {\n id: 'rowReorder',\n name: '',\n field: 'id',\n align: 'center',\n sortable: false,\n formatter: Soho.Formatters.RowReorder,\n width: 80\n };\n const labelColumn: SohoDataGridColumn = {\n id: 'label',\n name: Soho.Locale.translate('ListLabel'),\n sortable: false,\n field: 'label',\n formatter: customFormatter,\n click: (e: any, args: any) => {\n console.log('link was clicked', args);\n },\n textOverflow: 'ellipsis'\n };\n\n const fieldColumn: SohoDataGridColumn = {\n id: 'field',\n name: Soho.Locale.translate('ListField'),\n sortable: false,\n field: 'field',\n formatter: customFormatter,\n click: (e: any, args: any) => {\n console.log('link was clicked', args);\n },\n textOverflow: 'ellipsis',\n hidden: true\n };\n\n const PAGING_COLUMNS: SohoDataGridColumn[] = [\n orderColumn,\n labelColumn,\n fieldColumn\n // nameColumn,\n // typeColumn,\n // allowUpdateColumn,\n // hasAlertColumn,\n // sortOrder,\n // totalColumn\n ];\n\n const COLUMNAR_PAGING_COLUMNS: SohoDataGridColumn[] = [\n orderColumn,\n labelColumn,\n fieldColumn\n ];\n\n this.columnGridOptions = {\n columns: this.isColumnarView ? COLUMNAR_PAGING_COLUMNS : PAGING_COLUMNS,\n dataset: this.displayFields,\n selectable: 'single',\n paging: false,\n rowReorder: true,\n editable: false,\n rowHeight: 'short',\n isList: true,\n emptyMessage: { title: 'Display Fields', info: Soho.Locale.translate('ListPersonalizationNoFieldsMessage') },\n showDirty: true,\n enableTooltips: true\n };\n }\n\n loadSharingOptions() {\n this.sharing = [];\n this.sharing.push({ value: this.PRIVATE_SHARING_OPTION, label: Soho.Locale.translate('CreateReportPrivate') });\n this.sharing.push({ value: this.GROUP_SHARING_OPTION, label: Soho.Locale.translate('CreateReportGroup') });\n this.sharing.push({ value: this.PUBLIC_SHARING_OPTION, label: Soho.Locale.translate('CreateReportPublic') });\n this.sharing.push({ value: this.ROLE_SHARING_OPTION, label: Soho.Locale.translate('CreateReportRoleLabel') });\n this.sharing.push({ value: this.ROLEGROUP_SHARING_OPTION, label: Soho.Locale.translate('CreateReportRoleGroupLabel') });\n this.model.sharing = this.PRIVATE_SHARING_OPTION;\n }\n\n onAddField() {\n this.selectedField = {\n index: Date.now(),\n type: 'Field',\n name: '',\n label: null,\n placeholder: '',\n allowUpdate: false,\n canUpdate: true,\n sortOrder: '',\n totaling: 'None',\n canTotal: true,\n alerts: [],\n compute: false,\n added: true,\n defaultSort: false,\n sortOrderFields: [],\n sortDescending: false,\n isValid: true,\n validated: true,\n };\n\n this.displayFields.push(this.selectedField);\n this.columnDataGridComponent.dataset = this.displayFields;\n this.columnDataGridComponent.rowStatus(this.displayFields.length - 1, 'new', 'column added'); // TODO transalation\n this.columnDataGridComponent.selectRows(this.columnDataGridComponent.dataset.length - 1);\n this.onRowClicked(null, this.columnDataGridComponent.dataset.length - 1);\n\n const selectedElement = document.getElementById('columnDataGridComponent');\n this.lmCommonUtilService.scrollIntoView(selectedElement);\n\n const labelFieldElement = document.getElementById('name');\n labelFieldElement.focus();\n }\n\n onAddCompute() {\n this.selectedField = {\n index: Date.now(),\n type: 'Field',\n name: '',\n label: '',\n placeholder: '',\n allowUpdate: false,\n canUpdate: false,\n sortOrder: '',\n totaling: 'None',\n canTotal: true,\n alerts: [],\n compute: true,\n added: true,\n defaultSort: false,\n sortOrderFields: [],\n sortDescending: false,\n isValid: true,\n validated: true,\n };\n this.displayFields.push(this.selectedField);\n\n this.columnDataGridComponent.dataset = this.displayFields;\n this.columnDataGridComponent.rowStatus(this.displayFields.length - 1, 'new', 'column added'); // TODO transalation\n\n this.columnDataGridComponent.selectRows(this.columnDataGridComponent.dataset.length - 1);\n\n this.onRowClicked(null, this.columnDataGridComponent.dataset.length - 1);\n\n const selectedElement = document.getElementById('columnDataGridComponent');\n this.lmCommonUtilService.scrollIntoView(selectedElement);\n\n setTimeout(() => {\n const labelFieldElement = document.getElementById('computeLabel');\n labelFieldElement.focus();\n }, 1);\n }\n\n onListViewClicked(event: any) {\n this.disableEdit = false;\n this.disableRemove = false;\n\n const rowNumber = event.row;\n this.selectedField = this.displayFields[event.row];\n // this.toggleMoveButtonsForRow(rowNumber);\n }\n\n private initializeSelectedField(event?: SohoDataGridRowClicked, row?: number) {\n this.disableEdit = false;\n this.disableRemove = false;\n\n const rowNumber = event ? event.row : row !== undefined ? row : 0;\n this.selectedField = this.displayFields[rowNumber];\n if (this.selectedField) {\n // this.selectedField.isValid = false;\n // this.selectedField.validated = false;\n this.selectedField.placeholder = this.selectedField.label !== undefined ? this.selectedField.label : '';\n\n if (!this.selectedField.validated) {\n if (!this.selectedField.compute) {\n this.validateField();\n } else {\n this.validateCompute();\n }\n }\n }\n }\n\n onRowClicked(event?: SohoDataGridRowClicked, row?: number) {\n const rowNumber = event ? event.row : row;\n\n if (rowNumber === undefined) {\n return;\n }\n\n this.initializeSelectedField(event, rowNumber);\n\n this.initializeSort();\n this.initializeAlert();\n this.buildTotalTypes();\n // this.toggleMoveButtonsForRow(rowNumber);\n }\n\n private resetDialogInfo() {\n this.conditionValid = true;\n this.displayFields = [];\n this.disableEdit = true;\n this.disableRemove = true;\n // this.disableMoveUp = true;\n // this.disableMoveDown = true;\n this.disableAsOfDate = false;\n this.filterMode = 'contains';\n\n this.model.matchOption = this.MATCH_OPTION_ALL;\n this.model.dataOption = this.DATA_OPTION_LIVE;\n this.model.fontOffset = 0;\n this.model.orientation = 'landscape';\n this.model.asOfDate = '';\n this.model.actorGroup = '';\n this.confirmedMessageIds = [];\n\n this.separator = AppConstants.CONDITION_AND;\n this.canTotal = false;\n this.totalTypes = [];\n this.conditionNames = [];\n\n this.model.listName = '';\n this.model.viewName = '';\n // this.model.name = '';\n this.model.sharing = this.PRIVATE_SHARING_OPTION;\n this.columnDataGridComponent.dataset = [];\n this.displayFields = [];\n this.selectedField = undefined;\n }\n\n private initializeValidation() {\n this.displayFields.forEach(displayField => {\n displayField.isValid = true;\n displayField.validated = true;\n });\n }\n\n private initializeSort() {\n this.displayFields.forEach(displayField => {\n displayField.defaultSort = this.model.defaultSortColumn !== undefined && this.model.defaultSortColumn.toString() === displayField.index.toString() ? true : false;\n if (displayField.defaultSort) {\n displayField.sortDescending = this.model.sortDescending;\n }\n });\n this.updateSortOrderFields(this.selectedField.sortOrder);\n }\n\n private initializeAlert() {\n this.setValidAlerts();\n if (!this.alertOptions) {\n this.buildAlertOptions();\n }\n if (this.selectedField.type === 'Field' && !this.selectedField.compute) {\n setTimeout(() => {\n this.buildAlertTable();\n this.buildAlerts();\n }, 1);\n }\n }\n\n private handleRowSelectionEvent(response: LMFieldPickerSelectResponse) {\n if (response === undefined) {\n return;\n }\n\n const uiFieldSpec = response.uiFieldSpec;\n\n const fieldName = response.fieldName;\n\n // if (this.lmFieldPickerService.isOTMField(uiFieldSpec)) {\n // fieldName = 'first ' + fieldName; // TODO how to handle this maybe the picker should automaticall add it if the not defined by the operator\n // }\n\n this.selectedField.name = fieldName;\n this.selectedField.placeholder = this.selectedField.name !== undefined ? uiFieldSpec.label : '';\n\n if (this.selectedField.label !== null && this.selectedField.placeholder !== this.selectedField.label) {\n this.selectedField.label = this.selectedField.placeholder;\n }\n\n this.onChange(true);\n if (!this.selectedField.validated) {\n this.validateField();\n }\n\n this.changeDetectionRef.detectChanges();\n };\n\n private handleConditionSelectionEvent(response: LMFieldPickerSelectResponse, lookup: SohoLookupStatic, grid: SohoDataGridStatic) {\n const uiFieldSpec = response.uiFieldSpec;\n\n if (uiFieldSpec) {\n const rowValue = response.fieldName;\n const alertRow = grid.selectedRows()[0].idx;\n this.selectedField.alerts[alertRow].condition = rowValue;\n grid.updateRow(alertRow, this.selectedField.alerts[alertRow]);\n this.selectedField.updated = true;\n this.columnDataGridComponent.updateRow(this.columnDataGridComponent.selectedRows()[0].idx, this.selectedField);\n }\n }\n\n // private getRowFieldName(row: UIFieldSpec): string {\n // if (row && row.parent) {\n // if (row.parent.endsWith('agent')) {\n // return `${row.parent}${row.fieldName}`;\n // } else {\n // return `${row.parent}.${row.fieldName}`;\n // }\n // }\n // return row ? row.fieldName : undefined;\n // };\n\n onRemoveField() {\n const selectedRows = this.columnDataGridComponent.selectedRows();\n if (selectedRows.length === 1) {\n const selectedRow = selectedRows[0];\n if (this.selectedField.defaultSort) {\n this.model.defaultSortColumn = '';\n this.model.sortDescending = false;\n }\n this.columnDataGridComponent.removeSelected();\n this.columnDataGridComponent.selectRows(selectedRow.idx - 1);\n this.displayFields = this.columnDataGridComponent.dataset;\n this.initializeSelectedField(undefined, selectedRow.idx - 1);\n // this.populateSortOrders();\n }\n }\n\n onAudiDataOptionChanged() {\n this.disableAsOfDate = this.model.dataOption === this.DATA_OPTION_AUDIT ? true : false;\n }\n\n onBCChange(event: Event) {\n if (this.model.listName === '') {\n this.tabs.enable();\n this.disableTabs = false;\n this.resetBusClass(event);\n } else {\n if (this.isModified() || this.filterConditionChanged) {\n this.promptConfirmationMessage(Soho.Locale.translate('ListPersonalizationBCUnsavedChangesContinuingMsg')).subscribe((response: any) => {\n if (response === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.resetBusClass(event);\n } else {\n this.model.businessClass = this.busClassName;\n this.markForRefresh();\n }\n });\n } else {\n this.resetBusClass(event);\n }\n }\n }\n\n private resetBusClass(event: Event) {\n this.busClassName = this.model.businessClass;\n this.model.conditionString = '';\n this.filterConditionChanged = false;\n\n this.loadListNamesAndViews(event, true);\n this.resetDialogInfo();\n }\n\n private promptConfirmationMessage(message: string): Observable {\n const msgConfirm: Observable = new Observable(observer => {\n const dialogId = 'ConfirmationRequired';\n\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.close(true);\n observer.next(ConfirmationDialogResult.CONFIRMATION_CANCEL);\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: (e, modal) => {\n modal.close(true);\n observer.next(ConfirmationDialogResult.CONFIRMATION_OK);\n },\n isDefault: true\n }\n ];\n\n // Show the confirmation message dialog.\n this.sohoMessageService\n .message({ allowedTags: '
          , ,

          ' })\n .message(message)\n .buttons(buttons)\n .title(Soho.Locale.translate('ConfirmationRequired'))\n .open();\n });\n return msgConfirm;\n }\n\n onListChange(event: Event) {\n if (this.model.viewName === '') {\n this.resetList();\n } else {\n if (this.isModified()) {\n this.promptConfirmationMessage(Soho.Locale.translate('ListPersonalizationListUnsavedChangesContinuingMsg')).subscribe((response: any) => {\n if (response === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.resetList();\n } else {\n this.model.listName = this.listName;\n this.markForRefresh();\n }\n });\n } else {\n this.resetList();\n }\n }\n }\n\n onSharingChange(event: Event) {\n if (!this.actorGroupSharing) {\n this.model.actorGroup = '';\n }\n if (!this.roleSharing) {\n this.model.role = '';\n }\n if (!this.roleGroupSharing) {\n this.model.roleGroup = '';\n }\n }\n\n resetList() {\n this.listName = this.model.listName;\n this.viewNames = this.loadViews();\n this.model.viewName = this.viewNames[ 0 ].value;\n this.noChartView = (this.viewNames.length === 1) ? true : false;\n this.model.titleChanged = false;\n\n let listPersonalizationUrl = this.lmUrlUtilService.getBaseUrl() + '/static/' + this.lmContextService.getContext().webApp + '?resources=ListPersonalization.html&resourceName=' +\n this.model.businessClass + '.' + this.model.listName + '&fragment=true&output=spec';\n listPersonalizationUrl = this.lmUrlUtilService.propagateSessionKeys(listPersonalizationUrl, '&');\n\n this.retrievePersonalization(listPersonalizationUrl);\n }\n\n onLookupField = (data: LMDataView) => {\n if (this.model.sharing === 'Group') {\n return data.fields[this.ACTOR_GROUP_FIELD].value;\n } else if (this.model.sharing === 'Role') {\n return data.fields[this.ROLE_FIELD].value;\n } else if (this.model.sharing === 'RoleGroup') {\n return data.fields[ this.ROLE_GROUP_FIELD ].value;\n }\n }\n\n onLookupClick = (e, lookup) => {\n if (this.lmContextService.useSingleSelectList()) {\n this.showSelectListDialog();\n } else {\n this.showClassicSelectListDialog();\n }\n }\n\n private showSelectListDialog() {\n this.busyIndicator.activated = false;\n\n let selectListUrl;\n let businessClassName;\n let viewName;\n let title;\n\n if (this.model.sharing === 'Group') {\n selectListUrl = this.actorGroupSelectUrl;\n businessClassName = 'ActorGroup';\n viewName = 'ActorGroupHierarchyList';\n title = Soho.Locale.translate('CreateReportActorGroupLabel');\n } else if (this.model.sharing === 'Role') {\n selectListUrl = this.roleSelectUrl;\n businessClassName = 'Role';\n viewName = 'RoleList';\n title = Soho.Locale.translate('CreateReportRoleLabel');\n } else if (this.model.sharing === 'RoleGroup') {\n selectListUrl = this.roleGroupSelectUrl;\n businessClassName = 'RoleGroup';\n viewName = 'RoleGroupList';\n title = Soho.Locale.translate('CreateReportRoleGroupLabel');\n }\n\n this.lmSpecService.getListSpec(selectListUrl).subscribe((listSpecResponse: LMListSpecResponse) => {\n this.lmLoggerService.log([ 'LMReportPersonalizationDialogComponent', 'getListSpec() completed', listSpecResponse ]);\n\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n\n const dataView: LMDataView = {\n resourceId: businessClassName,\n representativeText: '',\n status: '',\n name: '',\n action: '',\n busClassName: businessClassName,\n navigations: [],\n contextProperties: null,\n actionMeta: null,\n fields: {}\n };\n\n const selectRequestData: SelectRequestData = { viewType: 'form', viewName, dataView };\n\n this.lmSelectDialogService.showSelectListDialog({\n listUrlInfo,\n listSpec,\n title,\n sourceField: businessClassName,\n selectRequestData\n }).pipe(\n first()) // causes the subscription to complete after its messaged the first time\n .subscribe((selectResponse: LMSelectResponse) => {\n this.lmLoggerService.log([ 'LMReportPersonalizationDialogComponent', 'showSelectListDialog()', selectResponse ]);\n if (selectResponse?.status === AppConstants.STATUS_COMPLETED && selectResponse.dataViews) {\n const selectedDataView = selectResponse.dataViews[0];\n const fields = selectedDataView.fields;\n\n // sohoLookupComponent requires a data property on each array element\n const selectedData: Array = [ { data: selectedDataView } ];\n this.ngZone.runOutsideAngular(() => {\n this.sohoLookup.setValue(selectedData);\n });\n\n if (fields.hasOwnProperty('ActorGroup')) {\n this.model.actorGroup = fields['ActorGroup'].value as string;\n } else if (fields.hasOwnProperty('Role')) {\n this.model.role = fields['Role'].value as string;\n } else if (fields.hasOwnProperty('RoleGroup')) {\n this.model.roleGroup = fields['RoleGroup'].value as string;\n }\n } else if (selectResponse?.status === AppConstants.STATUS_CANCEL) {\n this.ngZone.runOutsideAngular(() => {\n this.element?.nativeElement?.querySelectorAll('input[soho-lookup]')[0]?.focus();\n });\n }\n }\n );\n },\n (error: any) => {\n this.busyIndicator.activated = false;\n this.lmLoggerService.log([ 'LMReportPersonalizationDialogComponent error', error ]);\n });\n }\n\n // TODO: Remove the following and its supporting methods once we now longer support classic lookup selection\n private showClassicSelectListDialog() {\n this.busyIndicator.activated = true;\n\n let sharingUrl;\n let businessClassName;\n let businessViewName;\n let dialogTitle;\n\n if (this.model.sharing === 'Group') {\n sharingUrl = this.actorGroupSelectUrl;\n businessClassName = 'ActorGroup';\n businessViewName = 'ActorGroupHierarchyList';\n dialogTitle = Soho.Locale.translate('CreateReportActorGroupLabel');\n } else if (this.model.sharing === 'Role') {\n sharingUrl = this.roleSelectUrl;\n businessClassName = 'Role';\n businessViewName = 'RoleList';\n dialogTitle = Soho.Locale.translate('CreateReportRoleLabel');\n } else if (this.model.sharing === 'RoleGroup') {\n sharingUrl = this.roleGroupSelectUrl;\n businessClassName = 'RoleGroup';\n businessViewName = 'RoleGroupList';\n dialogTitle = Soho.Locale.translate('CreateReportRoleGroupLabel');\n }\n\n this.lmSpecService.getListSpec(sharingUrl).subscribe(\n (listSpecResponse: LMListSpecResponse) => {\n if ((listSpecResponse as LMSystemException)\n && ((listSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (listSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n // todo ppatton need to handle errors better\n return;\n }\n\n const listUrlInfo = listSpecResponse.listUrlInfo;\n const listSpec = listSpecResponse.listSpec;\n const dialogId = 'ReportShareGroup';\n const cancelButton = this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]);\n const okButton = this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.OK ]);\n\n const buttonIds = {\n ok: okButton,\n cancel: cancelButton\n };\n\n const buttons = [\n {\n id: cancelButton,\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // eslint-disable-next-line @typescript-eslint/no-shadow\n click: (e, modal) => {\n this.busyIndicator.activated = false;\n modal.close(true);\n },\n isDefault: true\n },\n {\n id: okButton,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n // tslint:disable-next-line:no-shadowed-variable > shadowed variable e\n // eslint-disable-next-line @typescript-eslint/no-shadow\n click: (e, modal) => {\n this.handleSelection();\n }\n }\n ];\n\n this.shareLookupDialog = this.sohoModalDialogService\n .modal(LMLookupDialogComponent)\n .options({ fullsize: 'responsive', noRefocus: true })\n .buttons(buttons)\n .title(dialogTitle)\n .isAlert(false)\n .autoFocus(false)\n .open()\n .apply((lookupDialog: LMLookupDialogComponent) => {\n this.ngZone.run(() => {\n lookupDialog.buttonIds = buttonIds;\n lookupDialog.listUrlInfo = listUrlInfo;\n lookupDialog.listSpec = listSpec;\n lookupDialog.selectRequestData = {\n viewType: 'form',\n viewName: businessViewName,\n dataView: {\n resourceId: businessClassName,\n representativeText: '',\n status: '',\n name: '',\n action: '',\n busClassName: businessClassName,\n navigations: [],\n contextProperties: null,\n actionMeta: null,\n fields: {}\n },\n };\n\n lookupDialog.triggerDetectChanges();\n\n // ---------------------------------------------------------------------\n // need to markForCheck on the next tick() so angular picks up the\n // the list that is added to the dialog in this apply method.\n // ---------------------------------------------------------------------\n\n // need to listen for all occurrences as will get a row selection for a 'deselection'\n this.lookupSelectionSubscription =\n lookupDialog.lookupSelection.subscribe((event: LMLookupSelectionEvent) => {\n this.lookupSelectionEvent = event;\n });\n\n lookupDialog.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n this.shareLookupDialog.close();\n });\n });\n })\n .afterClose(result => {\n this.busyIndicator.activated = false;\n\n if (this.lookupSelectionSubscription) {\n this.lookupSelectionSubscription.unsubscribe();\n this.lookupSelectionSubscription = null;\n }\n\n this.lookupSelectionEvent = null;\n this.shareLookupDialog = null;\n });\n },\n (error: any) => {\n this.busyIndicator.activated = false;\n this.lmLoggerService.log([ 'LMLookupDialog error', error ]);\n });\n };\n\n private handleSelection() {\n if (this.lookupSelectionEvent) {\n const result: Array = this.lookupSelectionEvent.rows;\n if (result && Array.isArray(result) && result.length > 0) {\n const dataView: LMDataView = result[0].data;\n const fields = dataView.fields;\n\n this.sohoLookup.setValue(this.lookupSelectionEvent.rows);\n\n if (fields.hasOwnProperty('ActorGroup')) {\n this.model.actorGroup = fields['ActorGroup'].value as string;\n } else if (fields.hasOwnProperty('Role')) {\n this.model.role = fields['Role'].value as string;\n } else if (fields.hasOwnProperty('RoleGroup')) {\n this.model.roleGroup = fields['RoleGroup'].value as string;\n }\n }\n }\n\n this.shareLookupDialog.close();\n }\n\n private validateInstanceSelection(): void {\n if (this.model.conditionString === '') {\n this.updateInstanceSelectionAlert();\n } else {\n this.lmConfigurationService.conditionIsValid(this.model.conditionString, this.listUrlInfo.reportPersonalizationUrl, this.listSpec.busClassSpec.name)\n .subscribe((response: LMLplValidationResponse) => {\n this.conditionValid = response.lplStatus === 'LPL_VALID';\n this.updateInstanceSelectionAlert(response);\n });\n }\n }\n\n private updateInstanceSelectionAlert(lplValidationResponse?: LMLplValidationResponse): void {\n if (!lplValidationResponse || lplValidationResponse.lplStatus === 'LPL_VALID') {\n this.conditionAlert.removeAllMessages();\n } else {\n const validationError = lplValidationResponse.validationError;\n let alertMessage = lplValidationResponse.message;\n\n if (validationError) {\n alertMessage = validationError.errorDescription;\n // TODO this is not needed if we can hightlite the error text\n if (validationError.errorText) {\n alertMessage += ' ' + validationError.errorText;\n }\n }\n const alertType = validationError && validationError.isWarning ? 'info' : 'error';\n this.conditionAlert.addInlineMessage(alertMessage, alertType, true);\n }\n }\n\n // private conditionIsValid(value: string): Observable {\n // let formRequest: any = {\n // requestType: 'validateCondition',\n // param1: this.listSpec.busClassSpec.name,\n // param2: value\n // };\n //\n // let headers = new HttpHeaders();\n // headers.append('Content-Type', 'application/json;charset=utf-8');\n //\n // const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.reportPersonalizationUrl);\n //\n // let url = compiledUrlTemplate.expand({resourceId: this.listSpec.busClassSpec.name});\n //\n // return >this.http.post(url, JSON.stringify(formRequest), {headers: headers}).pipe(\n // catchError(error => this._handleError(error)));\n // }\n\n onTitleDirty(event: SohoTrackDirtyEvent): void {\n if (this.model.name !== this.originalTitle) {\n this.model.titleChanged = true;\n } else {\n this.trackDirty.resetDirty();\n }\n }\n\n onTitleAfterResetDirty(event: SohoTrackDirtyEvent): void {\n this.model.titleChanged = false;\n }\n\n onTitlePristine(event: SohoTrackDirtyEvent): void {\n this.model.titleChanged = false;\n }\n\n public sharingSource = (response: any, searchTerm: any) => {\n response(this.sharing, true);\n }\n\n public businessClassSource = (response: any, searchTerm: any) => {\n response(this.businessClasses, true);\n }\n\n public listNameSource = (response: any, searchTerm: any) => {\n response(this.listNames, true);\n }\n\n public viewNameSource = (response: any, searchTerm: any) => {\n response(this.viewNames, true);\n }\n\n // private createReport(url: string, busClassName: string, dataView: LMReportPersonalizationDataView, displayFields?: any[], viewReport?: boolean): Observable {\n // return this.createReportAndPersonalize(url, this.model.businessClass, this.dataView, this.displayFields, viewReport);\n // }\n //\n // private createReportAndPersonalize(url: string, busClassName: string, dataView: LMReportPersonalizationDataView, displayFields: any[], viewReport?: boolean): Observable {\n // let formRequest: LMReportFormRequest = {\n // requestType: 'createReportAndPersonalize',\n // param1: displayFields,\n // reportDataView: dataView,\n // viewReport: viewReport\n // };\n //\n // return this.makeFormRequest(url, formRequest);\n // }\n //\n // private personalize(url: string, busClassName: string, dataView: LMReportPersonalizationDataView, displayFields: any[]): Observable {\n // let formRequest: LMPersonalizeFormRequest = {\n // requestType: 'saveListPersonalization',\n // param1: displayFields,\n // param2: dataView\n // };\n //\n // url = this.lmUrlUtilService.updateUrlParams(url, {userfolder: this.listSpec.userFolder});\n // return this.makeFormRequest(url, formRequest);\n // }\n //\n // private resetPersonalization(url: string, busClassName: string, dataView: LMReportPersonalizationDataView, displayFields: any[]): Observable {\n // let formRequest: LMPersonalizeFormRequest = {\n // requestType: 'deleteListPersonalization'\n // };\n //\n // url = this.lmUrlUtilService.updateUrlParams(url, {userfolder: this.listSpec.userFolder});\n // return this.makeFormRequest(url, formRequest);\n // }\n //\n // private makeFormRequest(url: string, formRequest: LMReportFormRequest | LMPersonalizeFormRequest): Observable {\n // let headers = new HttpHeaders();\n // headers.append('Content-Type', 'application/json;charset=utf-8');\n //\n // return >this.http.post(url, JSON.stringify(formRequest), {headers: headers}).pipe(\n // catchError(error => this._handleError(error)));\n // }\n //\n // private _handleError(error: Response) {\n // // in a real world app, we may send the error to some remote logging infrastructure\n // // instead of just logging it to the console\n // this.lmLoggerService.log(error);\n // return throwError(error || 'Server error');\n // }\n\n onBuildButtonEvent(event: Event) {\n const promptDialog$ = defer(() => this.lmFilterBuilderService.promptAppendOverwriteConfirmationMessage());\n const url = this.listUrlInfo ? this.listUrlInfo.fieldSearchUrl : this.fieldSearchUrl;\n const personalizationUrl = this.listUrlInfo ? this.listUrlInfo.reportPersonalizationUrl : this.url;\n const includeAudit = this.listSpec?.busListSpec?.isAudit || this.model?.dataOption === this.DATA_OPTION_AUDIT;\n\n this.lmFilterBuilderService.openBuilderDialog(this.model.businessClass, this.fieldLookUpUrl,\n url, personalizationUrl, includeAudit).pipe(\n takeUntil(this.unsubscribe$),\n takeWhile((result: LMFilterBuilderResult) => (result.lplQuery && result.lplQuery !== this.model.conditionString)),\n flatMap(result => {\n const lplFieldPicker = result.lplQuery;\n\n if (!this.model.conditionString) {\n return of(lplFieldPicker);\n } else {\n return promptDialog$.pipe(\n map((dialogResult: FilterBuilderDialogResult) => {\n if (dialogResult === FilterBuilderDialogResult.CONFIRMATION_APPEND) {\n return `${this.model.conditionString} ${result.matchOption} ${result.lplQuery}`;\n }\n // CANCEL means empty\n if (dialogResult === FilterBuilderDialogResult.CONFIRMATION_CANCEL) {\n return this.model.conditionString;\n }\n // dialogResult is null if there's no this.modelField.value\n if (!dialogResult || dialogResult === FilterBuilderDialogResult.CONFIRMATION_OVERWRITE) {\n return result.lplQuery;\n }\n }),\n );\n }\n })).subscribe((value: string) => {\n this.filterConditionChanged = this.filterConditionInitial !== value;\n this.model.conditionString = value;\n this.changeDetectionRef.detectChanges();\n });\n }\n\n buildAlertOptions() {\n this.alertOptions = [];\n\n this.alertOptions.push({ iconName: 'redAlert', type: FieldAlertType.RED_ALERT, label: 'Red Alert' });\n this.alertOptions.push({ iconName: 'yellowAlert', type: FieldAlertType.YELLOW_ALERT, label: 'Yellow Alert' });\n this.alertOptions.push({ iconName: 'greenAlert', type: FieldAlertType.GREEN_ALERT, label: 'Green Alert' });\n this.alertOptions.push({ iconName: 'blueAlert', type: FieldAlertType.BLUE_ALERT, label: 'Blue Alert' });\n this.alertOptions.push({ type: FieldAlertType.ICON_ALERT, label: 'Icon Alert' });\n }\n\n private buildAlertTable() {\n const iconImageColumn: SohoDataGridColumn = {\n id: 'iconImage',\n name: Soho.Locale.translate('ColumnEditorAlertLabel'),\n field: 'iconName',\n sortable: false,\n formatter: customAlertFormatter,\n // editor: Soho.Editors.Dropdown,\n isEditable: this.checkAlertEditable,\n contentVisible: this.checkAlertCellContentVisible\n };\n\n const conditionColumn: SohoDataGridColumn = {\n id: 'condition',\n name: Soho.Locale.translate('ColumnEditorAlertConditionLabel'),\n field: 'condition',\n sortable: false,\n expandOnActivate: true,\n // editor: Soho.Editors.Dropdown,\n // options: this.buildAlertConditionCellOptions(),\n editor: Soho.Editors.Lookup,\n editorOptions: {\n editable: this.checkAlertEditable,\n click: this.lmFieldLookupClickFunction,\n clickArguments: {\n column: {\n displayField: this.selectedField\n }\n }\n },\n // formatter: customAlertConditionFormatter,\n isEditable: this.checkAlertEditable,\n contentVisible: this.checkAlertCellContentVisible\n };\n const conditionNegatedColumn: SohoDataGridColumn = {\n id: 'negated',\n name: Soho.Locale.translate('ColumnEditorAlertNegatedLabel'),\n field: 'negated',\n sortable: false,\n align: 'center',\n formatter: Soho.Formatters.Checkbox,\n editor: Soho.Editors.Checkbox,\n isEditable: this.checkAlertEditable,\n contentVisible: this.checkAlertCellContentVisible\n };\n\n const mouseOverColumn: SohoDataGridColumn = {\n id: 'mouseOverText',\n width: 150,\n name: Soho.Locale.translate('ColumnEditorAlertMouseOverLabel'),\n field: 'mouseOverText',\n sortable: false,\n editor: Soho.Editors.Input,\n isEditable: this.checkAlertEditable\n };\n\n const PAGING_COLUMNS: SohoDataGridColumn[] = [\n iconImageColumn,\n conditionColumn,\n conditionNegatedColumn,\n mouseOverColumn,\n ];\n\n this.alertGridOptions = {\n columns: PAGING_COLUMNS,\n dataset: this.selectedField.alerts,\n selectable: 'single',\n paging: false,\n rowReorder: false,\n editable: true,\n rowHeight: 'short',\n isList: true,\n emptyMessage: this.emptyMessage,\n showDirty: true,\n userObject: this\n };\n }\n\n checkAlertEditable = (row: number, cell: number, value: string, column: SohoDataGridColumn, personalizationColumn: LMPersonalizationColumn, dataGrid: SohoDataGridStatic): boolean => {\n if (column.id === 'type') {\n return false;\n }\n return true;\n };\n\n checkAlertCellContentVisible = (row: number, cell: HTMLElement, value: any, column: SohoDataGridColumn, personalizationColumn: LMPersonalizationColumn): boolean => true;\n\n private buildAlertTypeCellOptions(): SohoGridCellOption[] {\n const alertTypeCellOptions: SohoGridCellOption[] = [];\n this.alertOptions.forEach(alert => {\n alertTypeCellOptions.push({ value: alert.type, label: alert.label });\n });\n return alertTypeCellOptions;\n }\n\n private buildAlertIconCellOptions(): SohoGridCellOption[] {\n const alertIconCellOptions: SohoGridCellOption[] = [];\n\n this.alertOptions.forEach(alert => {\n alertIconCellOptions.push({ value: alert.iconName, label: alert.iconName });\n });\n return alertIconCellOptions;\n }\n\n private buildAlertConditionCellOptions(): SohoGridCellOption[] {\n const alertConditionCellOptions: SohoGridCellOption[] = [];\n this.conditionNames.forEach((item) => {\n const condition: string = item.name;\n alertConditionCellOptions.push({ value: item.name, label: item.name });\n });\n return alertConditionCellOptions;\n }\n\n onAddAlert(type: number) {\n if (!this.selectedField.alerts) {\n this.selectedField.alerts = [];\n }\n\n this.onAlertTypeChanged(type);\n const fieldAlert = { type, iconName: this.iconAlert, iconImage: this.setAlertImage(type) };\n this.alertDataGridComponent.addRow(fieldAlert, 'bottom');\n\n this.alertDataGridComponent.setActiveCell(this.alertDataGridComponent.dataset.length - 1, 1);\n this.alertDataGridComponent.selectRows(this.alertDataGridComponent.dataset.length - 1);\n }\n\n onDeleteAlert() {\n this.alertDataGridComponent.removeSelected();\n }\n\n onAlertRowClicked(event?: SohoDataGridRowClicked, row?: number) {\n const rowNumber = event ? event.row : row;\n this.selectedAlert = rowNumber;\n }\n\n onAlertRowAdd(event: SohoDataGridAddRowEvent): void {\n if (!event || !event.value) {\n return;\n }\n this.selectedAlert = event.row;\n this.selectedField.alerts[event.row] = this.alertDataGridComponent.dataset[event.row];\n this.setValidAlerts();\n this.selectedField.updated = true;\n this.selectedField.validated = false;\n\n this.alertDataGridComponent.setActiveCell(this.selectedAlert, 1);\n }\n\n onAlertRowRemove(event: SohoDataGridRowRemoveEvent): void {\n if (!event) {\n return;\n }\n this.selectedAlert = event.row;\n\n this.setValidAlerts();\n this.selectedField.updated = true;\n this.selectedField.validated = false;\n\n this.alertDataGridComponent.setActiveCell(this.selectedAlert, 1);\n }\n\n private setAlertImage(type: number): string {\n switch (type) {\n case FieldAlertType.RED_ALERT:\n return 'error';\n case FieldAlertType.YELLOW_ALERT:\n return 'alert';\n case FieldAlertType.GREEN_ALERT:\n return 'success';\n case FieldAlertType.BLUE_ALERT:\n return 'info-field';\n }\n }\n\n private setAlertType(type: number): string {\n switch (type) {\n case FieldAlertType.RED_ALERT:\n return 'redAlert';\n case FieldAlertType.YELLOW_ALERT:\n return 'yellowAlert';\n case FieldAlertType.GREEN_ALERT:\n return 'greenAlert';\n case FieldAlertType.BLUE_ALERT:\n return 'blueAlert';\n }\n }\n\n public onCellChange(event: SohoDataGridCellChangeEvent) {\n if (!event) {\n return;\n }\n\n if (event.column.id === 'type') {\n if (event.column.id === 'type') {\n if (this.selectedField.alerts.filter((fieldAlert: LMFieldEditorFieldAlert) => fieldAlert.type === event.value ).length > 1) {\n this.alertDataGridComponent.rowStatus(event.row, 'error', Soho.Locale.translate('FieldEditorAlertError'));\n } else {\n this.alertDataGridComponent.clearRowError(event.row);\n }\n this.onAlertTypeChanged(event.value);\n this.selectedField.alerts[event.row].iconName = this.iconAlert;\n this.setAlertIconImage(this.selectedField.alerts[event.row]);\n }\n // this.fieldValidated = false;\n }\n if (event.column.id === 'iconName') {\n this.setAlertIconImage(this.selectedField.alerts[event.row]);\n this.alertDataGridComponent.updateRow(event.row, this.selectedField.alerts[event.row]);\n }\n if (event.column.id === 'mouseOverText') {\n this.selectedField.alerts[event.row].mouseOverText = event.value;\n }\n if (event.column.id === 'condition') {\n this.selectedField.alerts[event.row].condition = event.value;\n }\n\n this.selectedAlert = event.row;\n this.alertDataGridComponent.updateRow(event.row, this.selectedField.alerts[event.row]);\n this.onChange();\n }\n\n private buildIconUrl(iconName: string): string {\n const imageUrl = this.lmUrlUtilService.getBaseUrl() + '/specicon/' + iconName;\n return this.lmUrlUtilService.updateUrlParams(imageUrl, this.lmContextService.getContext().contextSessionKeys);\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n this.fieldValidation$.complete();\n }\n\n private runCreateReport(url: string, viewReport: boolean): void {\n if (!this.sharingIsValid()) {\n const buttons = [ { text: Soho.Locale.translate('Ok'), click: (e, modal) => {modal.close(true);} } ];\n this.sohoMessageService\n .error()\n .title(Soho.Locale.translate('CreateReportErrorMessage'))\n .message(this.roleSharing ? Soho.Locale.translate('RoleIsRequiredErrorMessage') : Soho.Locale.translate('GroupIsRequiredErrorMessage'))\n .buttons(buttons)\n .open();\n return;\n }\n\n let cubeInfo: LMDVSetCubeInfo;\n if (this.isCubeView) {\n cubeInfo = this.buildCubeInfo();\n }\n const userFolder = this.listSpec ? this.listSpec.userFolder : null;\n this.lmConfigurationService.createReport(url, this.dataView, this.displayFields, userFolder, cubeInfo, viewReport)\n .subscribe(\n (res: any) => {\n if (res.status === AppConstants.STATUS_COMPLETED) {\n this.dialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED,\n message: Soho.Locale.translate('ReportIsCreatedMessage'),\n viewReport,\n reportUrl: res.reportUrl\n });\n }\n if (res.status === AppConstants.VIEW_EXCEPTION\n || res.status === AppConstants.STATUS_SYSTEM_ERROR) {\n const message = res.message || Soho.Locale.translate('ReportWasNotCreatedMessage');\n const details = res.details || Soho.Locale.translate('ReportWasNotCreatedMessage');\n this.lmErrorUtilService.handleError(message, details, res.status, Soho.Locale.translate('ReportWasNotCreatedMessage'));\n }\n });\n }\n\n private runPersonalize(): void {\n let cubeInfo: LMDVSetCubeInfo;\n if (this.isCubeView) {\n cubeInfo = this.buildCubeInfo();\n }\n const listUrl = this.lmUrlUtilService.buildSavePersonalizationUrl(this.listUrlInfo, this.listSpec);\n this.lmConfigurationService.personalize(listUrl, this.model.businessClass, this.dataView, this.displayFields, this.listSpec.userFolder, cubeInfo)\n .subscribe(\n (res: any) => {\n if (res.status === AppConstants.STATUS_COMPLETED) {\n this.dialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED,\n message: Soho.Locale.translate('ListPersonalizationIsCreatedMessage')\n });\n }\n if (res.status === AppConstants.VIEW_EXCEPTION\n || res.status === AppConstants.STATUS_SYSTEM_ERROR) {\n const message = res.message || Soho.Locale.translate('ListPersonalizationWasNotCreatedMessage');\n const details = res.details || Soho.Locale.translate('ListPersonalizationWasNotCreatedMessage');\n this.lmErrorUtilService.handleError(message, details, res.status, Soho.Locale.translate('ListPersonalizationWasNotCreatedMessage'));\n }\n this.confirmedMessageIds = [];\n if (res.status === AppConstants.CONFIRMATION_REQUIRED) {\n this.lmConfirmationMessageService.promptConfirmationMessage({ message: res.message, okToAll: false })\n .subscribe(\n (confirmation: any) => {\n if (ConfirmationDialogResult.CONFIRMATION_OK === confirmation) {\n this.confirmedMessageIds.push(res.messageId);\n this.runPersonalize();\n }\n });\n }\n });\n }\n\n private runReset(): void {\n this.lmConfirmationMessageService.promptConfirmationMessage({\n title: 'Reset Personalization',\n dialogTitle: 'Reset Personalization',\n message: Soho.Locale.translate('ListPersonalizationResetConfirmationMessage'),\n okToAll: false\n }).subscribe(\n (confirmationResult: number) => {\n if (confirmationResult === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.lmConfigurationService.runPersonalizeAction(this.listUrlInfo.reportPersonalizationUrl, { action: 'Delete', userfolder: this.listSpec.userFolder })\n .subscribe((result: LMPersonalizeActionResponse) => {\n if (result.status === AppConstants.STATUS_COMPLETED) {\n this.dialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED,\n message: Soho.Locale.translate('ListPersonalizationIsDeletedMessage')\n });\n }\n if (result.status === AppConstants.VIEW_EXCEPTION\n || result.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(Soho.Locale.translate('ListPersonalizationWasNotDeletedMessage'), Soho.Locale.translate('ListPersonalizationErrorMessage'));\n }\n });\n }\n }\n );\n }\n\n // private runResetPersonalization(): void {\n // const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.transactionUrl);\n // let url = compiledUrlTemplate.expand({resourceId: this.model.businessClass});\n //\n // this.lmConfirmationMessageService.promptConfirmationMessage({\n // title: 'Reset Personalization',\n // dialogTitle: 'Reset Personalization',\n // message: Soho.Locale.translate('ListPersonalizationResetConfirmationMessage'),\n // okToAll: false\n // })\n // .subscribe(\n // (confirmationResult: number) => {\n // if (confirmationResult === ConfirmationDialogResult.CONFIRMATION_OK) {\n // this.lmConfigurationService.resetPersonalization(url, this.model.businessClass, this.dataView, this.displayFields)\n // .subscribe(\n // (res: any) => {\n // if (res.status === AppConstants.STATUS_COMPLETED) {\n // this.dialog$.next({\n // status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED,\n // message: Soho.Locale.translate('ListPersonalizationIsDeletedMessage')\n // });\n // }\n // if (res.status === AppConstants.VIEW_EXCEPTION\n // || res.status === AppConstants.STATUS_SYSTEM_ERROR) {\n // this.lmErrorUtilService.handleError(Soho.Locale.translate('ListPersonalizationWasNotDeletedMessage'), Soho.Locale.translate('ListPersonalizationErrorMessage'));\n // }\n // })\n // }\n // }\n // )\n // }\n\n sharingIsValid() {\n if (this.actorGroupSharing && this.model.actorGroup === '') {\n return false;\n }\n\n if (this.roleSharing && this.model.role === '') {\n return false;\n }\n\n if (this.roleGroupSharing && this.model.roleGroup === '') {\n return false;\n }\n\n return true;\n }\n\n onLplChangedEvent(lpl: string) {\n this.model.conditionString = lpl;\n }\n\n onBuildComputeCondition() {\n const url = this.listUrlInfo ? this.listUrlInfo.fieldSearchUrl : this.fieldSearchUrl;\n const personalizationUrl = this.listUrlInfo ? this.listUrlInfo.reportPersonalizationUrl : this.url;\n const includeAudit = this.listSpec?.busListSpec?.isAudit || this.model?.dataOption === this.DATA_OPTION_AUDIT;\n\n this.lmComputeBuilderService.openComputeBuilderDialog(this.model.businessClass, this.fieldLookUpUrl,\n url, personalizationUrl, !!this.selectedField.name, false, includeAudit).pipe(\n takeUntil(this.unsubscribe$),\n takeWhile((result: LMComputeBuilderResult) => (result.lplQuery && result.lplQuery !== this.selectedField.name))\n ).subscribe((result: LMComputeBuilderResult) => {\n if (result.action === 'Append') {\n this.selectedField.name = `${this.selectedField.name} ${result.lplQuery}`;\n }\n\n // dialogResult is null if there's no this.modelField.value\n if (result.action === 'Ok' || result.action === 'Overwrite') {\n this.selectedField.name = result.lplQuery;\n }\n\n this.changeDetectionRef.detectChanges();\n this.onChange();\n });\n }\n\n private buildCubeInfo(): LMDVSetCubeInfo {\n const cubeInfo: LMDVSetCubeInfo = {};\n if (this.cubeColumnView) {\n cubeInfo.columnView = this.cubeColumnView;\n }\n if (this.cubeDimensions.hasCubeDimensionsChanged()) {\n if (this.cubeViewState.cubeOverrides.pivotView) {\n cubeInfo.pivotView = this.cubeViewState.cubeOverrides.pivotView;\n }\n\n if (this.cubeViewState.cubeOverrides.dimensionOverrides.dimensionsOverride) {\n cubeInfo.currentDims = this.cubeViewState.cubeOverrides.dimensionOverrides.dimensionsOverride.split(',');\n }\n\n if (this.cubeViewState.cubeOverrides.dimensionOverrides.suppressZeros !== undefined) {\n cubeInfo.suppressZeros = this.cubeViewState.cubeOverrides.dimensionOverrides.suppressZeros;\n }\n\n if (this.cubeViewState.cubeOverrides.dimensionOverrides.suppressCurPeriod !== undefined) {\n cubeInfo.suppressCurPeriod = this.cubeViewState.cubeOverrides.dimensionOverrides.suppressCurPeriod;\n }\n }\n\n return cubeInfo;\n }\n\n onShowLabel(showLabel: boolean){\n this.showLabel = showLabel;\n const gridColumns: ListGridColumn[] = this.columnDataGridComponent.getColumns();\n const columnGroups: SohoDataGridColumnGroup[] = this.columnDataGridComponent.getColumnGroups();\n\n if(showLabel){\n this.showLabelText = Soho.Locale.translate('ShowLabel');\n } else {\n this.showLabelText = Soho.Locale.translate('ShowField');\n }\n\n if (gridColumns) {\n gridColumns\n .map(column => column)\n .forEach((column: ListGridColumn) => {\n if (column.field === 'label' || column.field === 'field') {\n column.hidden = !column.hidden;\n }\n });\n }\n this.columnDataGridComponent.updateColumns(gridColumns, columnGroups);\n }\n}\n","

          \n
          \n \n\n\n \n \n
          \n
          \n
          \n \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n\n\n\n\n\n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n\n \n
          \n
          \n
          \n \n \n \n {{ 'Add' | translate}}\n \n \n \n {{ 'ListPersonalizationRemoveButtonLabel' | translate }}\n \n \n
          \n
          \n
          \n
          \n \n {{ 'Details' | translate }}\n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n {{ 'FieldEditorAlertsTab' | translate }}\n \n \n \n {{ 'FieldEditorTotalSortTab' | translate }}\n \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n \n \n 0\">\n
          \n
          \n \n
          \n \n
          \n
          0\">\n
          \n \n
          \n
          \n
          \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n {{ 'BuilderNoEllipses' | translate}}\n
          \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n\n \n
          \n
          \n
          \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n {{ 'BuilderNoEllipses' | translate}}\n
          \n
          \n
          \n
          \n\n \n
          \n
          \n

          {{ 'PrintToFile' | translate }}

          \n
          \n \n \n
          \n
          \n \n \n \n \n \n
          \n
          \n
          \n

          {{'CreateReportDefViewLabel' | translate}}

          \n
          \n \n
          \n
          \n
          \n
          \n\n \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n\n \n
          \n \n
          \n
          \n
          \n","/**\n * Created by vwiny on 10/10/2017.\n */\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMReportPersonalizationDialogComponent } from './lm-report-personalization-dialog.component';\nimport { Observable, Subject } from 'rxjs';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\n\nexport enum LMReportPersonalizationDialogResultCode {\n REPORT_PERSONALIZATION_DIALOG_CANCEL = 0,\n REPORT_PERSONALIZATION_DIALOG_OK,\n REPORT_PERSONALIZATION_DIALOG_RESET,\n REPORT_PERSONALIZATION_DIALOG_SAVED\n}\n\n/**\n * Must be a class and not an interface for typescript type guards to work.\n */\nexport class LMReportPersonalizationDialogResult {\n status: LMReportPersonalizationDialogResultCode;\n displayFields?: any[];\n reportDataView?: LMReportPersonalizationDataView;\n message?: string;\n viewReport?: boolean;\n reportUrl?: string;\n}\n\n@Injectable()\nexport class LMReportPersonalizationDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService) {\n }\n\n public dialog: SohoModalDialogRef;\n\n public runReportPersonalizationDialog(\n mode: LMReportPersonalizationMode,\n placeholder: ViewContainerRef,\n url?: string,\n actorGroupSelectUrl?: string,\n roleSelectUrl?: string,\n roleGroupSelectUrl?: string,\n fieldSearchUrl?: string,\n listTitle?: string,\n listUrlInfo?: LMListUrlInfo,\n listSpec?: LMListSpec,\n dataViewSet?: LMDataViewSet,\n personalizationExists?: boolean,\n includeBaseFilter?: boolean,\n filterCondition?: string,\n chartName?: string\n ): Observable {\n return new Observable(observer => {\n this.lmLoggerService.log([ 'LMReportPersonalizationDialog', 'formService.getFormSpec()', 'Complete' ]);\n\n const reportPersonalizationDialog$: Subject = new Subject();\n let dlgComponent: LMReportPersonalizationDialogComponent;\n const dialogId = 'ReportPersonalization';\n const okButtonKey = (mode === 'createReport' && !personalizationExists) ? LMDialogButtonKey.CREATEREPORT : LMDialogButtonKey.OK;\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n const buttons: SohoModalButton[] = [\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n reportPersonalizationDialog$.complete();\n this.dialog.close({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_CANCEL\n });\n }\n }\n ];\n\n if (!personalizationExists && mode === 'createReport' || mode === 'report') {\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CREATEANDVIEWREPORT ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CREATEANDVIEWREPORT),\n isDefault: true,\n click: (e, modal) => {\n reportPersonalizationDialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_OK,\n reportDataView: dlgComponent.dataView,\n viewReport: true\n });\n }\n }\n )\n }\n\n if (personalizationExists) {\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.RESET ]),\n text: Soho.Locale.translate(LMDialogButtonKey.RESET),\n click: (e, modal) => {\n reportPersonalizationDialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_RESET,\n reportDataView: dlgComponent.dataView\n });\n }\n }\n );\n }\n\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, okButtonKey ]),\n text: Soho.Locale.translate(okButtonKey),\n isDefault: true,\n click: (e, modal) => {\n reportPersonalizationDialog$.next({\n status: LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_OK,\n reportDataView: dlgComponent.dataView\n });\n }\n }\n );\n\n this.dialog = this.sohoModalDialogService\n .modal(LMReportPersonalizationDialogComponent, placeholder, { fullsize: 'always' })\n .title(mode === 'report' || mode === 'createReport' ? Soho.Locale.translate('CreateReport') : Soho.Locale.translate('Personalize'),\n )\n .buttons(buttons)\n .isAlert(false)\n .open()\n .apply((ReportPersonalization: LMReportPersonalizationDialogComponent) => {\n dlgComponent = ReportPersonalization;\n dlgComponent.mode = mode;\n dlgComponent.personalizationExists = personalizationExists;\n\n if (url) {\n dlgComponent.url = url;\n }\n if (actorGroupSelectUrl) {\n dlgComponent.actorGroupUrl = actorGroupSelectUrl;\n }\n if (roleSelectUrl) {\n dlgComponent.roleUrl = roleSelectUrl;\n }\n if (roleGroupSelectUrl) {\n dlgComponent.roleGroupUrl = roleGroupSelectUrl;\n }\n if (fieldSearchUrl) {\n dlgComponent.fieldSearchUrl = fieldSearchUrl;\n }\n if (listSpec) {\n dlgComponent.listTitle = listTitle;\n dlgComponent.listUrlInfo = listUrlInfo;\n dlgComponent.listSpec = listSpec;\n dlgComponent.dataViewSet = dataViewSet;\n dlgComponent.includeBaseFilter = includeBaseFilter;\n dlgComponent.filterCondition = filterCondition;\n\n if(chartName) {\n dlgComponent.chartName = chartName;\n }\n }\n\n dlgComponent.dialog$ = reportPersonalizationDialog$;\n })\n .afterClose(result => {\n observer.next(result);\n observer.complete();\n })\n\n reportPersonalizationDialog$.subscribe((result: LMReportPersonalizationDialogResult) => {\n if (result.status === LMReportPersonalizationDialogResultCode.REPORT_PERSONALIZATION_DIALOG_SAVED) {\n reportPersonalizationDialog$.complete();\n this.dialog.close(result);\n }\n });\n });\n }\n}\n","/**\n * Created by vwiny on 10/30/2017.\n */\nimport { Injectable } from '@angular/core';\nimport { SohoSwapListService } from 'ids-enterprise-ng';\nimport { of as observableOf, Observable } from 'rxjs';\n\n@Injectable()\nexport class ReportPersonalizationSwapListService extends SohoSwapListService {\n private options: SohoSwapListOptions = {};\n private availableToolbarActions: SohoSwapListItem[] = [];\n private selectedDemoItems: SohoSwapListItem[] = [];\n private additionalDemoItems: SohoSwapListItem[] = [];\n\n getData(): Observable {\n console.log(this.options.available);\n return observableOf(this.options);\n }\n\n constructor() {\n super();\n this.init();\n }\n\n updateItems(actions: Array) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i];\n this.availableToolbarActions.push({ id: i, value: action.name, text: action.name });\n }\n }\n init() {\n this.options.available = this.availableToolbarActions;\n }\n}\n","\nimport {\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMKeyboardShortcutService, LMKeyType } from '@services/lm-keyboard-shortcut.service';\n@Component({\n selector: 'lm-response-required',\n template: `\n \n \n `\n})\n\nexport class LMResponseRequiredModalFormComponent {\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() dataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() defaultButton: SohoModalButton;\n\n @ViewChild(forwardRef(() => LMFormComponent)) formComponent: LMFormComponent;\n\n @HostListener('keydown',['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.defaultButton) {\n const eventTarget: HTMLElement = event.target as HTMLElement;\n if (this.lmKeyboardShortcutService.onKeyDown(event) === LMKeyType.SAVE\n || (event.code === 'Enter'\n && eventTarget?.tagName !== 'BUTTON'\n && eventTarget?.tagName !== 'A'\n && eventTarget?.tagName !== 'TEXTAREA'\n && !eventTarget?.hasAttribute('soho-editor'))) {\n\n //need to trigger the blur event to trigger the field's change event\n eventTarget.blur();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.defaultButton.click(null,null);\n }\n }\n }\n\n constructor(private changeDetectionRef: ChangeDetectorRef, private lmKeyboardShortcutService: LMKeyboardShortcutService) {}\n\n triggerDetectChanges() {\n this.changeDetectionRef.markForCheck();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMResponseRequiredModalFormComponent } from './lm-response-required-modal-form.component';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMModelField } from '@form/model/lm-model-field';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { Observable } from 'rxjs';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMContextService, LMUrlInfoBuilderService } from '@services/index';\n\nexport enum ResponseRequiredDialogResult {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK,\n RESPONSE_OKTOALL\n}\n\nexport interface ResponseRequiredResult {\n result: ResponseRequiredDialogResult;\n specFields?: LMSpecFields;\n model?: LMModel;\n}\n\nexport interface ResponseRequiredDialogOptions {\n dataView: LMDataView;\n actionSpec?: LMActionSpec;\n pfAction?: LMProcessFlowAction;\n busClassSpec?: LMBusClassSpec;\n busFormSpec?: LMBusFormSpec;\n navigationContext?: LMNavContextKeys;\n okToAll?: boolean; // Render Ok to all button?\n}\n\ninterface LMFormSpecParams {\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n}\n\n@Injectable()\nexport class LMResponseRequiredService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmContextService: LMContextService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n private buttons: SohoModalButton[];\n private dlgComponent: LMResponseRequiredModalFormComponent;\n\n /***\n * Check if additional response is required.\n * @param actionSpec\n * @param busFormSpec\n * @returns {boolean}\n */\n public isResponseRequired(actionSpec: LMActionSpec, busFormSpec?: LMBusFormSpec, dataView?: LMDataView): boolean {\n if (!actionSpec) {\n return false;\n }\n\n // odd spec behavior. running local does not add effectiveDateFieldId to form, does if running in grid. //LMClient-26866\n // this should also account for a list with an effective date column that is updateable!\n if (actionSpec.effectiveDateRequired && (!busFormSpec || !busFormSpec.effectiveDateFieldId)\n && this.isEffectiveDateRequired(dataView)) {\n return true;\n }\n\n if (actionSpec.reasonCodeRequired && (!busFormSpec || !busFormSpec.reasonCodeFieldId)) {\n return true;\n }\n if (actionSpec.actionCommentRequired && (!busFormSpec || !busFormSpec.actionCommentFieldId)) {\n return true;\n }\n if (actionSpec.effectiveThruRequired && (!busFormSpec || !busFormSpec.effectiveThroughFieldId)) {\n return true;\n }\n if (actionSpec.correctionCmtRequired && (!busFormSpec || !busFormSpec.correctionCommentFieldId)) {\n return true;\n }\n return false;\n }\n\n private isEffectiveDateRequired(dataView: LMDataView): boolean {\n if (!dataView) {\n return true;\n }\n\n const effectiveDateFld = dataView.fields[`${dataView.busClassName}_effective_date`];\n const effectiveDate = effectiveDateFld ? effectiveDateFld.value : '';\n return this.lmFieldUtilService.isBlank(AppConstants.YYYYMMDD, effectiveDate);\n }\n\n /**\n * Prompt response required dialog\n * @param args\n * @return\n */\n public promptResponseRequiredDialog(args: ResponseRequiredDialogOptions): Observable {\n const params: LMFormSpecParams = this.buildResponseRequiredDlgParams(args);\n\n const formDataView = JSON.parse(JSON.stringify(args.dataView));\n formDataView.action = args.actionSpec.name;\n\n return this.openDialog(params.formUrlInfo, params.formSpec, formDataView, args.okToAll);\n }\n\n private buildResponseRequiredDlgParams(args: ResponseRequiredDialogOptions): LMFormSpecParams {\n const actionSpec = args.actionSpec;\n const busFormSpec = args.busFormSpec || null;\n const dataView: LMDataView = args.dataView;\n const formSpec = this.buildBasicFormSpec(args.busClassSpec);\n\n // set automation id to be used for the modal and generated response required form.\n formSpec.automationId = `ResponseRequired`;\n\n // let formUrlInfo.navi = {\n // navigationContext: args.navigationContext,\n // pfActionName: args.pfAction ? args.pfAction.name : undefined,\n // };\n\n // Build Spec fields collection\n // And Build layout elements fields collection.\n // TODO: Translate labels. Equivalent of globalize.localize.\n // Effective Date\n if (actionSpec.effectiveDateRequired && (busFormSpec == null || busFormSpec.effectiveDateFieldId == null)) {\n const specField: LMSpecField = {\n bindId: dataView.busClassName + '_effective_date',\n dsplSize: 8,\n label: { resourceValue: 'Effective Date' },\n size: 8,\n type: AppConstants.YYYYMMDD,\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n const layoutField: LMFormLayoutField = {\n bindId: specField.bindId,\n label: { label: { resourceValue: 'Effective Date' } },\n required: true,\n type: 'date',\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField);\n }\n\n // Reason Code\n if (actionSpec.reasonCodeRequired\n && (busFormSpec == null || busFormSpec.reasonCodeFieldId == null)) {\n const specField: LMSpecField = {\n bindId: dataView.busClassName + '_reason_code',\n drillable: true,\n dsplSize: 20,\n label: { resourceValue: Soho.Locale.translate('Reason') },\n selectable: true,\n selectFieldId: 'ActionReason',\n size: 20,\n type: AppConstants.ALPHAUPPER,\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n let selectListUrl;\n if (!this.lmContextService.useNewSpecUrls()) {\n selectListUrl = this.lmUrlUtilService.getBaseUrl()\n + '/list/ActionReason.ActionReasonSelect?type=select&select='\n + dataView.busClassName + '.' + specField.bindId\n + '&output=spec';\n selectListUrl = this.lmUrlUtilService.propagateSessionKeys(selectListUrl, '&');\n }\n\n const selectListInfo = {\n selectListResourceId: 'ActionReason.ActionReasonSelect',\n selectResourceType: 'select',\n selectResourceId: dataView.busClassName + '.' + specField.bindId,\n };\n\n const layoutField: LMLookupLayout = {\n bindId: specField.bindId,\n label: { label: { resourceValue: Soho.Locale.translate('Reason') } },\n required: true,\n selectable: true,\n selectFieldId: 'ActionReason',\n selectListInfo,\n selectListUrl,\n type: 'text',\n\n // todo spec-context-refactor - drillPointsParam.context should be no diff than global context.\n // const drillResource = new DrillResource({ busClassName: drillPointsParams.dataView.resourceId, drillName: '_drillpoints_' });\n // const url = this.urlUtilService.buildUrl({ context: drillPointsParams.context, resource: drillResource });\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField);\n }\n\n // Action Comment\n if ((actionSpec.reasonCodeRequired || actionSpec.actionCommentRequired)\n && (busFormSpec == null || busFormSpec.actionCommentFieldId == null)) {\n const required = (actionSpec.actionCommentRequired) ? true : false; // actionCommentRequired can be undefined\n const specField: LMSpecField = {\n type: AppConstants.TEXT,\n bindId: dataView.busClassName + '_action_comment',\n label: { resourceValue: Soho.Locale.translate('ActionComment') }\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n const layoutField: LMFormLayoutField = {\n bindId: specField.bindId,\n label: { label: { resourceValue: Soho.Locale.translate('ActionComment') } },\n lines: 0,\n required,\n type: 'textarea',\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField, required);\n }\n\n // Effective Through\n if (actionSpec.effectiveThruRequired\n && (busFormSpec == null || busFormSpec.effectiveThroughFieldId == null)) {\n const specField: LMSpecField = {\n size: 8,\n dsplSize: 8,\n type: AppConstants.YYYYMMDD,\n bindId: dataView.busClassName + '_effective_thru',\n label: { resourceValue: 'Effective Through' }\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n const layoutField: LMFormLayoutField = {\n bindId: specField.bindId,\n label: { label: { resourceValue: 'Effective through' } },\n required: true,\n type: 'date',\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField);\n }\n\n // Correction Comment\n if (actionSpec.correctionCmtRequired\n && (busFormSpec == null || busFormSpec.correctionCommentFieldId == null)) {\n const specField: LMSpecField = {\n bindId: dataView.busClassName + '_correction_cmt',\n label: { resourceValue: 'Correction Comment' },\n type: AppConstants.TEXT,\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n const layoutField: LMFormLayoutField = {\n bindId: specField.bindId,\n label: { label: { resourceValue: 'Correction Comment' } },\n lines: 0,\n required: true,\n type: 'textarea',\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField);\n }\n\n const formUrlInfo: LMFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(formSpec);\n // formUrlInfo.navigationContext = args.navigationContext;\n // formUrlInfo.pfActionName = args.pfAction ? args.pfAction.name : undefined;\n\n // let formUrlInfo = {\n // navigationContext: args.navigationContext,\n // pfActionName: args.pfAction ? args.pfAction.name : undefined,\n // };\n\n return { formUrlInfo, formSpec };\n }\n\n private buildBasicFormSpec(busClassSpec: LMBusClassSpec): LMFormSpec {\n // const busFormSpec = args.busFormSpec || null;\n // const dataView: LMDataView = args.dataView;\n\n const formName = 'RequiredResponse';\n const formSpec: LMFormSpec = {\n isImplicit: true,\n resourceId: busClassSpec.name + '.' + formName,\n formElementId: formName,\n busClassSpec,\n busFormSpec: {\n name: 'ResponseRequired',\n title: { resourceValue: Soho.Locale.translate('ResponseRequired') },\n formType: 'Standard',\n subFormType: 'ResponseReqd',\n fields: {},\n busFormLayoutSpec: {\n layout: {\n sections: [{\n type: 'column',\n nbrColumns: 1,\n columns: [{\n elements: []\n }]\n }]\n }\n }\n }\n };\n\n // formSpec.isImplicit = true;\n // formSpec.busFormSpec.name = 'ResponseRequired';\n // // Set the form title\n // formSpec.busFormSpec.title = { 'resourceValue': Soho.Locale.translate('ResponseRequired') };\n // // Set the business class name\n // formSpec.busClassSpec = busClassSpec;\n\n // if (args.navigationContext) {\n // formSpec.navigationContext = args.navigationContext;\n // }\n //\n // if (args.pfAction) {\n // formSpec.pfActionName = args.pfAction.name;\n // }\n return formSpec;\n }\n\n private addFieldToDV(dataView: LMDataView, specField: LMSpecField, fieldRequired = true): void {\n const dvField: LMField = dataView.fields[ specField.bindId ];\n if (!dvField) {\n dataView.fields[ specField.bindId ] = {\n value: '', size: specField.size,\n mutable: true, required: fieldRequired, label: ''\n }; // Label is required for some reason?\n }\n }\n\n private openDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n dataView: LMDataView,\n okToAll: boolean\n ): Observable {\n return new Observable(observer => {\n let dialog: SohoModalDialogRef;\n const dialogId = 'ResponseRequired';\n\n // Build the buttons array\n this.buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([formSpec.busFormSpec.name, dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => {\n dialog.close( {\n result: ResponseRequiredDialogResult.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([formSpec.busFormSpec.name, dialogId, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n validate : false,\n isDefault: true,\n click: () => {\n if (this.validateResponseRequiredForm(formSpec.busFormSpec, this.dlgComponent.formComponent.formModel)) {\n dialog.close( {\n result: ResponseRequiredDialogResult.RESPONSE_OK,\n specFields: formSpec.busFormSpec.fields,\n model: this.dlgComponent.formComponent.formModel\n });\n }\n }\n }\n ];\n const defaultButton = this.buttons.find(button => button.isDefault);\n\n if (okToAll) {\n this.buttons.splice(1, 0, {\n id: this.lmUniqueIdService.uniqueId([formSpec.busFormSpec.name, dialogId, LMDialogButtonKey.OKTOALL]),\n text: Soho.Locale.translate(LMDialogButtonKey.OKTOALL),\n click: () => {\n dialog.close( {\n result: ResponseRequiredDialogResult.RESPONSE_OKTOALL,\n specFields: formSpec.busFormSpec.fields,\n model: this.dlgComponent.formComponent.formModel\n });\n }\n });\n }\n\n const attributes: SohoAttributesArray = [ { name: 'data-automation-id', value: `lm-${formSpec.automationId}-modal` } ];\n const modalOptions: SohoModalOptions = {\n title: Soho.Locale.translate('ResponseRequired'),\n buttons: this.buttons,\n fullsize: 'responsive',\n isAlert: false,\n attributes\n };\n\n dialog = this.sohoModalDialogService\n .modal(LMResponseRequiredModalFormComponent, null, modalOptions)\n .open();\n\n // dialog = this.sohoModalDialogService\n // .modal(LMResponseRequiredModalFormComponent, null, {fullsize: 'responsive'})\n // .buttons(this.buttons)\n // .title(Soho.Locale.translate('ResponseRequired'))\n // .isAlert(false)\n // .open();\n\n dialog.apply((responseReqdForm: LMResponseRequiredModalFormComponent) => {\n this.dlgComponent = responseReqdForm;\n responseReqdForm.formUrlInfo = formUrlInfo;\n responseReqdForm.formSpec = formSpec;\n responseReqdForm.dataView = dataView;\n responseReqdForm.formOptions = {};\n responseReqdForm.defaultButton = defaultButton;\n });\n\n dialog.afterClose((result: ResponseRequiredResult) => {\n dialog = null;\n this.dlgComponent = null;\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n private validateResponseRequiredForm(busFormSpec: LMBusFormSpec, lmModel: LMModel): boolean {\n const keys: string[] = Object.keys(busFormSpec.fields);\n for (let i = 0, l = keys.length; i < l; i++) {\n const bindId: string = keys[ i ];\n const specField: LMSpecField = busFormSpec.fields[ bindId ];\n const modelField: LMModelField = lmModel.getField(bindId);\n\n if (modelField.required && modelField.isBlank) {\n const message = this.lmFormatUtilService.formatMessage(Soho.Locale.translate('FieldIsRequired'), [ specField.label.resourceValue ]);\n lmModel.setFieldError(bindId, message);\n return false;\n }\n }\n return true;\n }\n\n public isResponseRequiredPF(pfAction: LMProcessFlowAction) {\n const pfActionShowPopup = pfAction.showPopup || false;\n const pfActionReason = pfAction.actionReasonRequired || false;\n const pfActionComment = pfAction.reasonCommentRequired || false;\n\n return pfActionShowPopup || pfActionReason || pfActionComment;\n }\n\n public promptResponseRequiredDialogPF(args: ResponseRequiredDialogOptions): Observable {\n // Clone the dataView. Two fields will be added to the dataview for reasoncode and action comment.\n // On ok handler will read the values from the model and push it into the original dataview's pfAction object.\n const formDataView = JSON.parse(JSON.stringify(args.dataView));\n const formSpecResponse: LMFormSpecResponse = this.buildResponseRequiredPFDlgParams(args, formDataView);\n\n if (args.actionSpec) {\n formDataView.action = args.actionSpec.name;\n }\n return this.openDialog(formSpecResponse.formUrlInfo, formSpecResponse.formSpec, formDataView, args.okToAll);\n }\n\n private buildResponseRequiredPFDlgParams(args: ResponseRequiredDialogOptions, dataView: LMDataView): LMFormSpecParams {\n const formSpec = this.buildBasicFormSpec(args.busClassSpec);\n const pfAction = args.pfAction;\n const pfActionShowPopup = pfAction.showPopup || false;\n const pfActionReason = pfAction.actionReasonRequired || false;\n const pfActionComment = pfAction.reasonCommentRequired || false;\n const busClassName = pfAction.busClassName || dataView.busClassName;\n\n // Build Reason code field\n if (pfActionShowPopup || pfActionReason) {\n const specField: LMSpecField = {\n bindId: busClassName + '_reason_code_pf',\n drillable: true,\n dsplSize: 20,\n label: { resourceValue: Soho.Locale.translate('Reason') },\n size: 20,\n selectFieldId: 'ActionReason',\n selectable: true,\n type: AppConstants.ALPHAUPPER,\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n let selectUrl;\n if (!this.lmContextService.useNewSpecUrls()) {\n selectUrl = this.lmUrlUtilService.getBaseUrl()\n + '/list/ActionReason.ActionReasonSelect?type=select&select='\n + busClassName + '.PFReasonCode'\n + '&output=spec';\n selectUrl = this.lmUrlUtilService.propagateSessionKeys(selectUrl, '&');\n }\n\n const selectListInfo = {\n selectListResourceId: 'ActionReason.ActionReasonSelect',\n selectResourceType: 'select',\n selectResourceId: busClassName + '.PFReasonCode',\n };\n\n const layoutField: LMLookupLayout = {\n bindId: busClassName + '_reason_code_pf',\n label: { label: { resourceValue: Soho.Locale.translate('Reason') } },\n required: pfActionReason,\n selectFieldId: 'ActionReason',\n selectable: true,\n selectListInfo,\n selectListUrl: selectUrl,\n type: 'text',\n };\n\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField, pfActionReason);\n }\n\n if (pfActionShowPopup || pfActionReason || pfActionComment) {\n const specField: LMSpecField = {\n bindId: busClassName + '_action_comment_pf',\n label: { resourceValue: Soho.Locale.translate('ActionComment') },\n type: AppConstants.TEXT,\n };\n formSpec.busFormSpec.fields[ specField.bindId ] = specField;\n\n const layoutField: LMFormLayoutField = {\n bindId: busClassName + '_action_comment_pf',\n label: { label: { resourceValue: Soho.Locale.translate('ActionComment') } },\n lines: 0,\n required: pfActionComment,\n type: 'textarea',\n };\n formSpec.busFormSpec.busFormLayoutSpec.layout.sections[ 0 ].columns[ 0 ].elements.push({ field: layoutField });\n this.addFieldToDV(dataView, specField, pfActionComment);\n }\n\n const formUrlInfo: LMFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(formSpec);\n formUrlInfo.navigationContext = args.navigationContext;\n formUrlInfo.pfActionName = args.pfAction ? args.pfAction.name : undefined;\n\n // const formUrlInfo = {\n // navigationContext: args.navigationContext,\n // pfActionName: args.pfAction.name || undefined,\n // };\n\n return { formUrlInfo, formSpec };\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n NgZone,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LMListComponent, LMListSelectionEvent } from '@list/lm-list.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMContextService } from '@app/services';\nimport { LMSelectionEvent } from '@app/components';\n\n@Component({\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\nexport class LMSelectDialogComponent implements AfterViewChecked, AfterViewInit {\n\n @ViewChild(forwardRef(() => LMListComponent)) selectList: LMListComponent;\n\n @HostListener('keyup', [ '$event' ]) onKeyUp(event) {\n if (event.which === 13 && event.srcElement.nodeName !== 'BUTTON' && event.srcElement.nodeName !== 'INPUT') { // 13 => enter\n // Do not perform a row click (which closes the dialog and returns the selected row)\n // for an enter key initiated from the filter row\n if (this.enterKeyFromFilterRow) {\n this.enterKeyFromFilterRow = false;\n return;\n }\n\n const selectedRows = this.selectList.getSelectedRows();\n if (selectedRows.length > 0) {\n if (!this.selectList.inSelectListEditMode) {\n const row = selectedRows[0];\n const dataView = this.selectList.getDataView(row);\n this.onRowClicked({ cell: 0, item: dataView, originalEvent: event, row });\n }\n }\n } else if (event.which === 38 || event.which === 40) { // 38 => up arrow; 40 => down arrow\n if (!this.selectList.inSelectListEditMode && !this.allowMultiSelections) {\n const cellEvent = this.selectList.getCellFromEvent(event);\n const cellEventRow = cellEvent?.row;\n if (!isNaN(cellEventRow)) {\n this.selectList.listContentComponent.unSelectAllRows();\n this.selectList.listContentComponent.setSelectedRows([ cellEventRow ], false);\n }\n }\n }\n }\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() selectionEvent = new EventEmitter();\n\n /**\n *\n * @type {EventEmitter}\n */\n @Output() titleChanged = new EventEmitter();\n @Output() navigatingToolbarEvent = new EventEmitter();\n\n @Input() listUrlInfo: LMListUrlInfo;\n\n /**\n * The list spec of the select list used to Select a value for our\n * select field.\n */\n @Input() listSpec: LMListSpec;\n\n /**\n * The SelectRequestData containing what's needed to run the select and\n * page appropriately over it's records.\n */\n @Input() selectRequestData: SelectRequestData;\n\n /**\n * The button ids for the done editing button\n */\n @Input() buttonIds: {doneEditing?: string};\n\n private executeFocus = false;\n private allowMultiSelections = false;\n private enterKeyFromFilterRow = false;\n private _selectionEvent: LMSelectionEvent;\n\n constructor(\n private lmContextService: LMContextService,\n private elementRef: ElementRef,\n private changeDetectionRef: ChangeDetectorRef,\n private ngZone: NgZone) { }\n\n ngAfterViewInit() {\n this.allowMultiSelections = this.selectList.selectRequestData?.allowMultiSelections;\n }\n\n ngAfterViewChecked(): void {\n if (this.executeFocus) {\n this.executeFocus = false;\n this.handleFocus();\n }\n }\n\n /**\n * Re-emit the row clicked event.\n * @param listRowClickedEvent\n */\n onRowClicked(listRowClickedEvent: LMListRowClickedEvent) {\n // Handle row click when in selection mode and the field does not allow multiple selections\n if (!this.selectList.inSelectListEditMode && !this.allowMultiSelections) {\n this._selectionEvent = new LMSelectionEvent(this, [ listRowClickedEvent.row ], listRowClickedEvent.item);\n this.selectionEvent.emit(this._selectionEvent);\n }\n }\n\n /**\n * Re-emit the row selection event.\n * @param listSelectionEvent\n */\n onRowsSelected(listSelectionEvent: LMListSelectionEvent) {\n // Handle row selection when the field allows multiple selections\n if (this.allowMultiSelections) {\n this._selectionEvent = new LMSelectionEvent(this, listSelectionEvent.selectedRows);\n this.selectionEvent.emit(this._selectionEvent);\n }\n }\n\n /**\n * Re-emit title changed event so that the apply function has a chance\n * to subscribe to it and in turn update the dialogs title.\n */\n onTitleChanged(newTitle: string) {\n this.titleChanged.emit(newTitle);\n }\n\n onToolbarButtonEvent(event: LMToolbarButtonEvent) {\n const id = event.actionReference.id.toUpperCase();\n if (id.indexOf(AppConstants.ACTION_TYPE_CREATE) > -1 ||\n id.indexOf(AppConstants.ACTION_TYPE_UPDATE) > -1 ) {\n this.navigatingToolbarEvent.emit(event);\n }\n }\n\n onKeyDown(event: LMListKeyDownEvent) {\n if (event instanceof KeyboardEvent) {\n if ((event as KeyboardEvent).key === 'Enter' && (event?.target as HTMLElement)?.closest('thead')) {\n this.enterKeyFromFilterRow = true;\n }\n } else {\n this.enterKeyFromFilterRow = false;\n }\n }\n\n onListDisplayed() {\n this.executeFocus = true;\n }\n\n triggerDetectChanges() {\n this.changeDetectionRef.markForCheck();\n }\n\n getSelectionEvent(): LMSelectionEvent {\n return this._selectionEvent;\n }\n\n handleFocus() {\n // Needs to be in a timeout to ensure that the list in the modal is displayed and has completed setting its\n // focus element before attempting to set focus on the first row in the datagrid.\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n // does the child list have a search form displayed initially or always\n if (this.selectList.hasSearchForm && this.selectList.showSearchForm) {\n this.selectList.searchFormComponent.elementRef.nativeElement.querySelectorAll('input')[0].focus();\n return;\n }\n\n // attempt to set focus in the select list\n this.selectList.listContentComponent.setSelectListFocus();\n\n }, 2);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { AppConstants, LMDialogButtonKey } from '@utils/app.constants';\nimport { Observable } from 'rxjs';\nimport { LMCommonUtilService, LMUniqueIdService } from '@utils/index';\nimport { LMBusyIndicatorService } from '@app/services';\nimport { LMSelectDialogComponent } from '@modal/lm-select-dialog.component';\nimport { first } from 'rxjs/operators';\n\nexport interface LMSelectResponse {\n status: string\n rows?: Array\n dataViews?: Array\n}\n\nexport interface LMSelectDialogOptions {\n listUrlInfo: LMListUrlInfo;\n listSpec: LMListSpec;\n title: string;\n sourceField: string;\n className?: string;\n allowMultiSelections?: boolean;\n selectRequestData?: SelectRequestData;\n}\n\n@Injectable()\nexport class LMSelectDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n public showSelectListDialog(options: LMSelectDialogOptions): Observable {\n options.className = options.className || '';\n options.allowMultiSelections = options.selectRequestData?.allowMultiSelections || false;\n\n return this.openDialog(options);\n }\n\n private openDialog(options: LMSelectDialogOptions): Observable {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n return new Observable(observer => {\n let selectDialogComponent: LMSelectDialogComponent;\n const busListSpecName = options.listSpec.busListSpec.name;\n const buttons = [];\n\n // Create the Done Editing button\n buttons.push(\n {\n id: this.lmUniqueIdService.uniqueId([ busListSpecName, options.sourceField, LMDialogButtonKey.DONEEDITING ]),\n text: Soho.Locale.translate(LMDialogButtonKey.DONEEDITING),\n click: ( ) => {\n if (selectDialogComponent) {\n selectDialogComponent.selectList.turnOnSelectEditMode(false);\n }\n }\n }\n );\n\n if (options.allowMultiSelections) {\n // Create the Cancel button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ busListSpecName, options.sourceField, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n modal.close(true);\n }\n });\n\n // Create the Ok button\n buttons.push({\n id: this.lmUniqueIdService.uniqueId([ busListSpecName, options.sourceField, LMDialogButtonKey.OK ]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n isDefault: true,\n click: () => {\n if (!selectDialogComponent.selectList.inSelectListEditMode) {\n this.handleSelection(dialogRef, selectDialogComponent.getSelectionEvent(), options.allowMultiSelections);\n }\n }\n });\n }\n\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: `lm-${options.listSpec?.busListSpec?.automationId}-modal`\n } ];\n\n const sohoModalOptions: SohoModalOptions = {\n fullsize: 'responsive',\n noRefocus: true,\n attributes\n };\n\n const dialogRef = this.sohoModalDialogService\n .modal(LMSelectDialogComponent)\n .options(sohoModalOptions)\n .buttons(buttons)\n .title(options.title)\n .isAlert(false)\n .showCloseBtn(true)\n .autoFocus(false)\n .cssClass(options.className)\n .beforeOpen(() => {\n if (options.allowMultiSelections) {\n const dialogButtons = dialogRef.buttonsetAPI.element.children;\n const doneEditingButton = dialogButtons[0] as HTMLElement;\n doneEditingButton.setAttribute('style', 'display:none; width:100%');\n\n const cancelButton = dialogButtons[1] as HTMLElement;\n cancelButton.style.width = '50%';\n\n const okButton = dialogButtons[2] as HTMLElement;\n okButton.style.width = '50%';\n } else {\n dialogRef.buttonsetAPI.element.style.display = 'none';\n }\n\n return true;\n })\n .open()\n .apply((dialogComponent: LMSelectDialogComponent) => {\n selectDialogComponent = dialogComponent;\n selectDialogComponent.listUrlInfo = options.listUrlInfo;\n selectDialogComponent.listSpec = options.listSpec;\n selectDialogComponent.selectRequestData = options.selectRequestData;\n\n selectDialogComponent.titleChanged.pipe(first()).subscribe(newTitle => {\n dialogRef.title(newTitle);\n });\n\n // need to listen for all occurrences as will get a row selection for a 'deselection'\n selectDialogComponent.selectionEvent.subscribe((selectionEvent: LMSelectionEvent) => {\n if (!selectDialogComponent.selectList.inSelectListEditMode && !options.allowMultiSelections) {\n setTimeout(() => {\n this.handleSelection(dialogRef, selectionEvent, options.allowMultiSelections);\n });\n }\n });\n\n selectDialogComponent.navigatingToolbarEvent.pipe(first()).subscribe(() => {\n dialogRef.close({ status: AppConstants.STATUS_COMPLETED });\n });\n\n selectDialogComponent.triggerDetectChanges();\n })\n .afterClose(response => {\n if (!response) {\n response = { status: AppConstants.STATUS_CANCEL };\n }\n observer.next(response);\n observer.complete();\n });\n });\n }\n\n private handleSelection(dialogRef: SohoModalDialogRef, selectionEvent: LMSelectionEvent, allowMultiSelections: boolean) {\n const selectResponse: LMSelectResponse = { status: AppConstants.STATUS_COMPLETED };\n\n if (selectionEvent) {\n if (allowMultiSelections) {\n selectResponse.rows = selectionEvent.rows;\n selectResponse.dataViews = selectionEvent.rows.map(row => row.data);\n } else {\n // The soho-lookup component requires a data object on the array element\n selectResponse.rows = [ { data: selectionEvent.dataView } ];\n selectResponse.dataViews = [ selectionEvent.dataView ];\n }\n }\n dialogRef.close(selectResponse);\n }\n}\n\nexport class LMSelectionEvent {\n constructor(\n public eventSource: LMSelectDialogComponent,\n public rows: Array,\n public dataView?: LMDataView) {}\n}\n","import { Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMModel } from '@form/model';\n\n@Component({\n selector: 'lm-select-record',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\n\nexport class LMSelectRecordDialogComponent {\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() dataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() parentModel: LMModel;\n\n @ViewChild(forwardRef(() => LMFormComponent)) formComponent; // : LMFormComponent;\n\n constructor() {\n }\n\n onFormDisplayed(event) {\n setTimeout(() => {\n if (this.parentModel) {\n this.formComponent.model.applyState(this.parentModel);\n }\n }, 1);\n }\n}\n","import { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { AppConstants, LMFormType } from '@utils/app.constants';\nimport { Observable } from 'rxjs';\nimport { LMModel } from '@form/model';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport {\n LMActionService,\n LMBusyIndicatorService,\n LMErrorUtilService,\n LMLoggerService\n} from '@services/index';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { LMSelectRecordDialogComponent } from './lm-select-record-dialog.component';\nimport { LMFormContext } from '@form/services';\nimport { LMFormTransactionService } from '@form/services/lm-form-transaction.service';\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport { LMTransactionState } from '@transaction/lm-transaction-state';\n\nexport enum LMSelectRecordDialogResult {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK\n}\n\nexport interface LMSelectRecordResult {\n result: LMSelectRecordDialogResult;\n dataView?: LMDataView;\n model?: LMModel;\n isModified?: boolean;\n}\n\nexport interface LMSelectRecordDialogOptions {\n formUrlInfo: LMFormUrlInfo;\n formSpec: LMFormSpec;\n busFormSpec: LMBusFormSpec;\n dataView: LMDataView;\n fieldId: string;\n placeholder: ViewContainerRef;\n}\n\n@Injectable()\nexport class LMSelectRecordDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmActionService: LMActionService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmFormTransactionService: LMFormTransactionService,\n private lmLoggerService: LMLoggerService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n public promptSelectRecordDialog(args: LMSelectRecordDialogOptions): Observable {\n const formSpec: LMFormSpec = args.formSpec;\n\n const busFormSpec = args.busFormSpec;\n busFormSpec.formType = LMFormType.ACTION;\n\n const title = formSpec.busFormSpec.title.resourceValue;\n return this.openDialog(args.formUrlInfo, formSpec, args.dataView, args.placeholder, args.fieldId, title);\n }\n\n private openDialog(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, dataView: LMDataView, placeholder: ViewContainerRef, fieldId: string, title: string): Observable {\n this.lmBusyIndicatorService.showBusyIndicator();\n return new Observable(observer => {\n let dlgComponent: LMSelectRecordDialogComponent;\n let dialog: SohoModalDialogRef;\n\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n const formContext: LMFormContext = {\n formUrlInfo,\n formSpec,\n placeholder\n };\n\n // Build the buttons array\n const buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([formNamePrefix, formName, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n dialog.close( {\n result: LMSelectRecordDialogResult.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([formNamePrefix, formName, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n validate : false,\n isDefault: true,\n click: (e, modal) => {\n const selectDataView = dlgComponent.formComponent.formModel.getData();\n const actionSpec = this.lmActionService.getActionByName(formSpec.busClassSpec.actions, formSpec.action);\n this.runValidateKeysOnly(formContext, actionSpec, selectDataView).subscribe((validated: boolean) => {\n if (validated) {\n dialog.close( {\n result: LMSelectRecordDialogResult.RESPONSE_OK,\n dataView: dlgComponent.formComponent.formModel.getData(),\n model: dlgComponent.formComponent.formModel,\n isModified: dlgComponent.formComponent.formModel.isDirty\n });\n }\n });\n }\n }\n ];\n\n dialog = this.sohoModalDialogService\n .modal(LMSelectRecordDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(title)\n .isAlert(false)\n .beforeOpen(() => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n })\n .open();\n\n dialog.apply((selectRecordDialog: LMSelectRecordDialogComponent) => {\n dlgComponent = selectRecordDialog;\n\n selectRecordDialog.formOptions = {};\n selectRecordDialog.formUrlInfo = formUrlInfo;\n selectRecordDialog.formSpec = formSpec;\n selectRecordDialog.dataView = dataView;\n });\n\n dialog.afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n private runValidateKeysOnly(formContext: LMFormContext, actionSpec: LMActionSpec, dataView: LMDataView): Observable {\n return new Observable(observer => {\n this.lmFormTransactionService.runValidateKeysOnly(formContext, actionSpec, dataView).subscribe(\n (transactionState: LMTransactionState) => {\n this.lmLoggerService.log([ this, 'runValidateKeysOnly {' + actionSpec.name + '}: ' + JSON.stringify(transactionState.getTransactionResult()) ]);\n if (transactionState.isError) {\n this.lmErrorUtilService.handleError(\n transactionState.response.message,\n transactionState.response.details,\n transactionState.response.status,\n transactionState.response.message);\n } else {\n this.handleTransactionStatus(transactionState.getTransactionResult());\n }\n\n observer.next(transactionState.isSuccess());\n observer.complete();\n });\n });\n }\n\n private handleTransactionStatus(result: LMActionResult) {\n if (result.status === AppConstants.VIEW_EXCEPTION) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status);\n } else if (result.status !== AppConstants.STATUS_COMPLETED && result.status !== AppConstants.CONFIRMATION_REQUIRED) {\n this.lmErrorUtilService.handleError(result.message, result.details, result.status, result.message);\n }\n }\n}\n","import { AfterViewInit, Component, forwardRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { LMFormComponent } from '@form/lm-form.component';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMModel } from '@form/model';\n\n@Component({\n selector: 'lm-sub-form',\n template: `\n \n \n `,\n providers: [ LMRouteComponentService ]\n})\n\nexport class LMSubFormDialogComponent implements OnInit, AfterViewInit {\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() formSpec: LMFormSpec;\n @Input() dataView: LMDataView;\n @Input() formOptions: LMFormOptions;\n @Input() parentModel: LMModel;\n\n @ViewChild(forwardRef(() => LMFormComponent)) formComponent; // : LMFormComponent;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n // When dataview is set in the template, the form component\n // is not fully intitialized and model is null.\n // This causes empty form to come up in the required response dialog.\n // Moving set dataview to ngAfterViewInit solves this issue\n // Commenting it out as Vonny moved setData from _initDataView setter to formDataLoaded - 09/19/17\n\n // this.formComponent.initDataView = this.dataView;\n }\n\n onFormDisplayed(event) {\n setTimeout(() => {\n if (this.parentModel) {\n this.formComponent.model.applyState(this.parentModel);\n }\n }, 1);\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMSubFormDialogComponent } from './lm-sub-form-dialog.component';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable } from 'rxjs';\nimport { LMModel } from '@form/model';\nimport { LMCommonUtilService, LMUniqueIdService } from '@utils/index';\nimport { LMBusyIndicatorService, LMFormatUtilService } from '@services/index';\nimport { LMDialogButtonKey } from '@utils/app.constants';\nimport { LMFormSpecUtilService } from '@form/services';\n\nexport enum LMSubFormDialogResult {\n RESPONSE_CANCEL = 0,\n RESPONSE_OK,\n RESPONSE_ERROR\n}\n\nexport interface LMSubFormResult {\n result: LMSubFormDialogResult;\n dataView?: LMDataView;\n model?: LMModel;\n bindIds?: Array;\n error?: LMSubFormError;\n}\n\nexport interface LMSubFormError {\n message?: string;\n details?: string;\n status?: string;\n statusText?: string;\n}\n\nexport interface LMSubFormDialogOptions {\n placeholder: ViewContainerRef;\n fieldId: string;\n busFormSpec: LMBusFormSpec;\n title: LMMessageRule;\n dataView: LMDataView;\n formUrlInfo: LMFormUrlInfo;\n formSpec: LMFormSpec;\n model?: LMModel;\n}\n\n@Injectable()\nexport class LMSubFormDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmCommonUtilService: LMCommonUtilService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmFormSpecUtilService: LMFormSpecUtilService\n ) {}\n\n public promptSubFormDialog(args: LMSubFormDialogOptions): Observable {\n const formSpec: LMFormSpec = this.buildSubFormDlgParams(args);\n const specFields: LMSpecFields = formSpec.busFormSpec.fields;\n const title = this.lmFormatUtilService.formatMessageRule(args.title, args.dataView, specFields);\n return this.openDialog(args.formUrlInfo, formSpec, args.dataView, args.placeholder, args.fieldId, title, args.model);\n }\n\n private buildSubFormDlgParams(args: LMSubFormDialogOptions): LMFormSpec {\n // make a deep clone of the formSpec\n const formSpec: LMFormSpec = JSON.parse(JSON.stringify(args.formSpec));\n\n // replace the busFormSpec with a deep clone of the args.busFormSpec\n formSpec.busFormSpec = JSON.parse(JSON.stringify(args.busFormSpec));\n\n // update with the correct subFormType\n formSpec.busFormSpec.subFormType = AppConstants.BUTTON_TYPE_SUBFORM;\n\n // keep the original namePrefix, name, and current namePrefix\n formSpec.busFormSpec.namePrefix = this.lmUniqueIdService.uniqueId([args.formSpec.busFormSpec.namePrefix, args.formSpec.busFormSpec.name, formSpec.busFormSpec.namePrefix]);\n\n return formSpec;\n }\n\n private openDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n dataView: LMDataView,\n placeholder: ViewContainerRef,\n fieldId: string,\n title: string,\n parentModel?: LMModel\n ): Observable {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n return new Observable(observer => {\n\n if (!this.lmFormSpecUtilService.isStandardForm(formSpec)) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n const formType = formSpec.busFormSpec.formType;\n const error: LMSubFormError = {\n message: this.lmFormatUtilService.formatMessage(Soho.Locale.translate('InvalidSubFormType'), formType),\n status: AppConstants.VIEW_EXCEPTION\n };\n const result: LMSubFormResult = {\n result: LMSubFormDialogResult.RESPONSE_ERROR,\n error\n };\n observer.next(result);\n observer.complete();\n return;\n }\n\n let dlgComponent: LMSubFormDialogComponent;\n let dialog: SohoModalDialogRef;\n const bindIds = this.lmCommonUtilService.getBindIdsFromFormSpec(formSpec);\n const formNamePrefix = (formSpec.busFormSpec.namePrefix) ? formSpec.busFormSpec.namePrefix : '';\n const formName = formSpec.busFormSpec.name;\n\n // Build the buttons array\n const buttons = [\n {\n // TODO: The button default disables the button. A bug in controls?\n // tslint:disable-next-line - shadowed variable e\n id: this.lmUniqueIdService.uniqueId([formNamePrefix, formName, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: (e, modal) => {\n dialog.close( {\n result: LMSubFormDialogResult.RESPONSE_CANCEL\n });\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([formNamePrefix, formName, LMDialogButtonKey.OK]),\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n validate : false,\n isDefault: true,\n click: (e, modal) => {\n dialog.close( {\n result: LMSubFormDialogResult.RESPONSE_OK,\n dataView: dlgComponent.formComponent.formModel.getData(),\n model: dlgComponent.formComponent.formModel,\n bindIds\n });\n }\n }\n ];\n\n dialog = this.sohoModalDialogService\n .modal(LMSubFormDialogComponent, placeholder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(title)\n .isAlert(false)\n .beforeOpen(() => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n return true;\n })\n .open();\n\n dialog.apply((subForm: LMSubFormDialogComponent) => {\n dlgComponent = subForm;\n\n subForm.formOptions = {};\n subForm.formUrlInfo = formUrlInfo;\n subForm.formSpec = formSpec;\n subForm.dataView = dataView;\n subForm.parentModel = parentModel;\n });\n\n dialog.afterClose(result => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport {\n SohoAlertDirective,\n SohoBusyIndicatorDirective,\n SohoMessageService,\n SohoSpinboxComponent\n} from 'ids-enterprise-ng';\nimport { Subscription } from 'rxjs';\n\nimport { LMPrintCsvInfo, LMPrintDialog } from '@modal/print-dialog/lm-print-dialog.service';\nimport { LMPrintRequestService } from '@modal/print-dialog/lm-print-request.service';\n\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLookupBasicComponent } from '@field/lookup';\nimport { LMFieldValueChangedEvent, LMFormRequestService } from '@app/components';\nimport { LMUrlUtilService } from '@app/services';\nimport { LMListDropdownComponent } from '@components/lmlistdropdown';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-print-csv-dialog',\n templateUrl: './lm-print-csv-dialog.component.html',\n styleUrls: [ './lm-print-csv-dialog.component.css' ]\n})\nexport class LMPrintCsvDialogComponent implements LMPrintDialog, AfterViewInit, OnDestroy, OnInit {\n constructor(\n private sohoMessageService: SohoMessageService,\n private formBuilder: FormBuilder,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmPrintRequestService: LMPrintRequestService,\n private lmFromRequestService: LMFormRequestService) {}\n\n @ViewChild('modalPlaceholder', { read: ViewContainerRef, static: true }) modalPlaceholder: ViewContainerRef;\n @ViewChild('maxLevels') maxLevels: SohoSpinboxComponent;\n @ViewChild('maxRows') maxRows: SohoSpinboxComponent;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChildren(SohoAlertDirective) alerts: QueryList;\n @ViewChild(LMLookupBasicComponent) lmLookupBasicCsv: LMLookupBasicComponent;\n @ViewChild('dynamicActorsComponent') dynamicActorsComponent: LMListDropdownComponent;\n\n @Input() printInfo: LMPrintCsvInfo;\n\n private subscriptions: Subscription[] = [];\n\n dynamicActorOptions: LMListDropdownOptions = {\n businessClass: 'Actor',\n maxValues: 20,\n searchFields: [ 'Actor', 'PersonName.GivenName', 'PersonName.FamilyName', 'PersonName.PreferredGivenName' ],\n selectList: 'AdHocDistributionGroupActorList' };\n showDynamicActors = false;\n atLeastOneDynamicActor = false;\n dynamicActorsLabel = Soho.Locale.translate('PDFAdHocActors');\n\n reportDistGroupLabel = '';\n sourceFieldName = '';\n\n readonly formatOptions: LMPrintOption[] = [\n { label: 'CSV', value: 1 },\n { label: 'Excel', value: 2 },\n ];\n\n readonly columnHeaderOptions: LMPrintOption[] = [\n { label: 'FieldID', value: 0 },\n { label: 'FieldLabel', value: 1 },\n ];\n\n readonly exportOptions: LMPrintOption[] = [\n { label: Soho.Locale.translate('PDFAllLevels'), value: AppConstants.PDF_EXPANDED_ACTION },\n { label: Soho.Locale.translate('PDFSpecifiedMaxLevels'), value: AppConstants.PDF_SPECIFIED_ACTION },\n ];\n\n printForm: FormGroup;\n allRecordsAlert: SohoAlertDirective;\n dynamicActorsAlert: SohoAlertDirective;\n useCompactFormLayout = false;\n useTabs = true;\n showMaxRows = false;\n showMaxLevels = false;\n\n ngOnInit() {\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n // Setup form with default values\n this.printForm = this.formBuilder.group({\n csvFormat: [ 1, Validators.required ],\n columnHeaderType: [ 0, Validators.required ],\n name: [ '', Validators.required ],\n maxRows: [ 5000, Validators.required ],\n recordLimitOption: [ 'default', Validators.required ],\n allRecords: [ false, Validators.required ],\n exportOption: [ { value: 0, disabled: true }, Validators.required ],\n maxLevels: [ { value: 3, disabled: true }, Validators.required ],\n });\n const controls = this.printForm.controls;\n controls.name.setValue(this.printInfo.name);\n\n if (!this.printInfo.includeRecordLimit && !this.printInfo.isTreeList && !this.isUseAllActorGroups) {\n this.useTabs = false;\n }\n\n if (!this.printInfo.includeRecordLimit) {\n controls.allRecords.disable();\n controls.recordLimitOption.disable();\n controls.maxRows.disable();\n }\n\n if (this.printInfo.isTreeList) {\n controls.exportOption.enable();\n controls.exportOption.setValue(AppConstants.PDF_EXPANDED_ACTION);\n }\n this.reportDistGroupLabel = Soho.Locale.translate('PDFRepDistGroup');\n this.sourceFieldName = 'ReportDistributionGroup';\n }\n\n ngAfterViewInit() {\n const controls = this.printForm.controls;\n let subscription: Subscription;\n // exportOption value determines if maxLevels field enable/disable\n subscription = controls.exportOption.valueChanges.subscribe((value) => {\n const maxLevelsControl = controls.maxLevels;\n const disable = Number(value) !== AppConstants.PDF_SPECIFIED_ACTION;\n this.showMaxLevels = !disable;\n if (disable) {\n maxLevelsControl.disable();\n } else {\n maxLevelsControl.enable();\n }\n });\n this.subscriptions.push(subscription);\n\n subscription = controls.recordLimitOption.valueChanges.subscribe((value) => {\n const maxRowsControl = this.printForm.get('maxRows');\n const allRecordsControl = this.printForm.get('allRecords');\n allRecordsControl.setValue(value === 'all');\n this.showMaxRows = value === 'custom';\n this.allRecordsAlert?.removeAllMessages();\n\n switch (value) {\n case 'all':\n maxRowsControl.disable();\n const alertMessage = Soho.Locale.translate('PDFIncludingAllRecords');\n this.allRecordsAlert?.addInlineMessage(alertMessage, 'info', true);\n break;\n case 'default':\n maxRowsControl.enable();\n maxRowsControl.setValue(5000);\n break;\n case 'large':\n maxRowsControl.enable();\n maxRowsControl.setValue(250000);\n break;\n case 'small':\n maxRowsControl.enable();\n maxRowsControl.setValue(100);\n break;\n case 'custom':\n maxRowsControl.enable();\n maxRowsControl.setValue(5000);\n }\n });\n this.subscriptions.push(subscription);\n\n if (this.lmLookupBasicCsv) {\n // Set the select list url for ReportDistributionGroup\n this.lmLookupBasicCsv.viewName = 'CSVOptions'; // Dummy data for handcoded forms. (There is no formSpec or fromDataView)\n this.lmLookupBasicCsv.selectListUrl = this.lmPrintRequestService.getReportDistributionSelectUrl();\n }\n\n this.allRecordsAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'recordLimitAlert');\n this.dynamicActorsAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'dynamicActors');\n\n if (this.printInfo.includeRecordLimit) {\n const exportDefaultRecordLimit = this.lmGlobalPersonalizationService.getGlobalPersonalization().exportDefaultRecordLimit;\n if (exportDefaultRecordLimit === 'no-limit') {\n controls.recordLimitOption.setValue('all');\n controls.maxRows.disable();\n const alertMessage = Soho.Locale.translate('PDFIncludingAllRecords');\n this.allRecordsAlert?.addInlineMessage(alertMessage, 'info', true);\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n get resource(): Resource {\n return this.printInfo.resource;\n }\n\n get isUseAllActorGroups(): boolean {\n return this.lmPrintRequestService.getConfigFeatureUseAllActorGroups();\n }\n\n public checkIfFormIsValid(): boolean {\n let isValid = true;\n if (this.atLeastOneDynamicActor) {\n isValid = this.dynamicActorsComponent.values.length > 0;\n if (!isValid) {\n // this.dynamicActorsComponent.dropdown.setFocus();\n const options: SohoMessageOptions = {\n title: Soho.Locale.translate('ValidationError'),\n message: Soho.Locale.translate('PDFAtLeastOneDynamicActor'),\n showCloseBtn: true };\n\n this.sohoMessageService\n .alert(options)\n .open();\n }\n }\n return isValid;\n }\n\n get requestData(): LMPrintRequestData {\n // Default scheduleView derived from landmark.popupmenu.js\n let value = this.printForm.controls.name.value;\n value = `${value} - ${Soho.Locale.translate('ExportToCSV')}`;\n\n const scheduleView = { fields: { Name: { value } } };\n const requestData = {\n requestType: 'scheduleCsv',\n scheduleView\n };\n\n if (this.printInfo.dataView) {\n requestData.dataView = this.printInfo.dataView;\n }\n\n if (this.printInfo.selectRequestData) {\n requestData.selectRequestData = this.printInfo.selectRequestData;\n }\n\n if (this.showDynamicActors && this.dynamicActorsComponent) {\n requestData.dynamicActors = this.dynamicActorsComponent.values;\n }\n return requestData;\n }\n\n /**\n * Returns configured form values\n * @return\n */\n get requestParams(): LMPrintRequestParams {\n const commonParams = this.lmPrintRequestService.getCommonRequestParams(this.printInfo);\n\n const params = {\n output: 'csv',\n ...this.printForm.value,\n ...commonParams\n };\n\n if (this.printInfo.chartName) {\n params.chartName = this.printInfo.chartName;\n }\n\n // Lookup component does not implement ControlAccessorValue. Landmark forms does not use formgroup / formcontrol to manage model data.\n if (this.lmLookupBasicCsv && this.lmLookupBasicCsv.lookupValue) {\n params.reportDistGroup = this.lmLookupBasicCsv.lookupValue;\n }\n\n if (this.printInfo.isTreeList && !params.hasOwnProperty('maxLevels')) {\n params.maxLevels = -1;\n }\n\n return params;\n }\n\n /**\n * Returns Toast Success Message\n * @param if csv is scheduled\n * @return\n */\n getSuccessMessage(scheduled: boolean): SohoToastOptions {\n const title = Soho.Locale.translate(scheduled ? 'CSVIsScheduled' : 'GeneratingCSV');\n const message = Soho.Locale.translate('PleaseVisitMyPrintFiles');\n\n return { title, message };\n }\n\n /**\n * Returns Toast Error Message\n * @param if csv is scheduled\n * @return\n */\n getErrorMessage(scheduled: boolean): SohoToastOptions {\n const title = Soho.Locale.translate(scheduled ? 'CSVScheduleError' : 'CSVGenerationError');\n const message = Soho.Locale.translate(scheduled ? 'CSVWasNotScheduled' : 'CSVWasNotGenerated');\n\n return { title, message };\n }\n\n reportDistributionGroupChanged(event: LMFieldValueChangedEvent) {\n const key = this.lmLookupBasicCsv?.lookupValue;\n this.dynamicActorsAlert.removeAllMessages();\n\n if (!key) {\n this.dynamicActorsLabel = Soho.Locale.translate('PDFAdHocActors');\n this.showDynamicActors = false;\n this.atLeastOneDynamicActor = false;\n return;\n }\n\n const baseUrl = this.lmUrlUtilService.getBaseUrl();\n const resourceId = encodeURIComponent(`ReportDistributionGroup(${key})`);\n const url = `${baseUrl}/form/${resourceId}`;\n const fieldList = [ 'HasDynamicActorReportDistribution', 'DynamicActorsOnlyProfiles' ];\n\n this.lmFromRequestService.getFieldValues(url, fieldList).subscribe(response => {\n let showActors = false;\n let requiresAtLeastOneActor = false;\n\n if (response?.status === 'Completed') {\n const fields = response.fields;\n if (fields.hasOwnProperty('HasDynamicActorReportDistribution') && fields.hasOwnProperty('DynamicActorsOnlyProfiles')) {\n const hasDynamicActorsFld: LMField = fields.HasDynamicActorReportDistribution;\n const onlyDynamicActorsFld: LMField = fields.DynamicActorsOnlyProfiles;\n showActors = hasDynamicActorsFld.value as boolean;\n requiresAtLeastOneActor = onlyDynamicActorsFld.value as boolean;\n }\n }\n\n this.dynamicActorsLabel = requiresAtLeastOneActor ? Soho.Locale.translate('PDFRequiredAdHocActors') : Soho.Locale.translate('PDFAdHocActors');\n this.showDynamicActors = showActors;\n this.atLeastOneDynamicActor = requiresAtLeastOneActor;\n\n if (showActors) {\n const alertMessage = requiresAtLeastOneActor ? Soho.Locale.translate('PDFNeedAtLeastOneActor') : Soho.Locale.translate('PDFAddAdditionalActors');\n this.dynamicActorsAlert.addInlineMessage(alertMessage, 'info', true);\n }\n });\n }\n}\n","
          \n
          \n \n
          \n \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n\n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n
          \n \n
          \n
          \n\n\n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n","export * from './lm-print-request.service';\nexport * from './lm-print-dialog.service';\nexport * from './schedule/lm-schedule-dialog.service';\nexport * from './csv/lm-print-csv-dialog.component';\nexport * from './pdf/lm-print-pdf-dialog.component';\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LMPrintDialogService, LMPrintRequestService } from '@app/components';\nimport { Subject, SubscriptionLike as ISubscription } from 'rxjs';\nimport { AppConstants, LMGlobalUtilService } from '@app/utils';\nimport { LMContextService, LMLoggerService, LMUrlUtilService } from '@app/services';\nimport { SohoBusyIndicatorDirective } from 'ids-enterprise-ng';\nimport { ListResource } from '@app/resources';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-poll-and-print-dialog',\n templateUrl: './lm-poll-and-print-dialog.component.html',\n styleUrls: [ './lm-poll-and-print-dialog.component.scss' ]\n})\n\nexport class LMPollAndPrintDialogComponent implements OnInit, OnDestroy, AfterViewChecked {\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n\n public isExport: boolean;\n\n public status: string;\n public statusMessage: string;\n public displayIcon: boolean;\n public iconName: string;\n private iconClasses: string;\n private errorMsg: string;\n\n private myPrintFiles: string;\n private myPrintFilesUrl: string;\n\n private cancelPolling$: Subject;\n private timerSubscription: ISubscription;\n private inProgress: number;\n private maxPollIterations: number;\n\n constructor(private lmPrintRequestService: LMPrintRequestService,\n private lmPrintDialogService: LMPrintDialogService,\n private lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private elementRef: ElementRef,\n private zone: NgZone,) {}\n\n ngOnInit() {\n this.cancelPolling$ = new Subject();\n this.inProgress = 1;\n\n this.initialize();\n\n // Default 3 iterations, Cap it at 15 seconds or 4 iterations. Can be set in user settings dialog\n let maxWaitInSecs = this.lmGlobalPersonalizationService.getGlobalPersonalization().maxWaitPDFCSV;\n if (!maxWaitInSecs) {\n maxWaitInSecs = 10;\n }\n this.maxPollIterations = (maxWaitInSecs <= 5 ) ? 2\n : (maxWaitInSecs <= 10 ) ? 3 : ( maxWaitInSecs <= 15 ) ? 4 : 3;\n }\n\n ngOnDestroy() {\n this.timerSubscription.unsubscribe();\n this.cancelPolling$.complete();\n }\n\n ngAfterViewChecked() {\n if (this.elementRef.nativeElement.querySelector('#gotoPrintFiles')) {\n this.elementRef.nativeElement.querySelector('#gotoPrintFiles').addEventListener('click', this.gotoPrintFiles.bind(this));\n }\n }\n\n get svgIconClasses(): string {\n return this.iconClasses;\n }\n\n private initialize() {\n this.myPrintFiles = Soho.Locale.translate('MyPrintFiles');\n const printFilesResource = new ListResource({\n resourceId: 'UserReport',\n listName: 'MyUserReportsList'\n });\n this.myPrintFilesUrl = this.lmUrlUtilService.buildUrl({ resource: printFilesResource });\n\n this.setStatusStrings('SUBMITTED');\n\n this.displayIcon = false;\n // this.iconName = 'info';\n // this.iconClasses = 'icon icon-info';\n }\n\n private setStatusStrings(type: LMPollStatus) {\n const anchorText = `${this.myPrintFiles}`;\n switch(type) {\n case 'SUBMITTED':\n this.status = Soho.Locale.translate('DocumentGenerationStatus1');\n this.statusMessage = Soho.Locale.translate('DocumentGenerationStatusMessage1');\n // this.status = 'We will wait for a few seconds';\n // this.statusMessage = 'If you want to continue working click Dismiss and find it later at {0}';\n\n this.statusMessage = this.statusMessage.replace('{0}', anchorText);\n break;\n case 'INPROGRESS':\n this.status = Soho.Locale.translate('DocumentGenerationStatus2');\n this.statusMessage = Soho.Locale.translate('DocumentGenerationStatusMessage2');\n // this.status = 'This is taking a while';\n // this.statusMessage = 'We will continue to work on it. Find it later at {0}.';\n\n this.statusMessage = this.statusMessage.replace('{0}', anchorText);\n break;\n case 'ERROR':\n this.status = Soho.Locale.translate('DocumentGenerationStatus3');\n this.statusMessage = Soho.Locale.translate('DocumentGenerationStatusMessage3');\n // this.statusMessage += ' ' + this.errorMsg;\n break;\n default:\n this.status = Soho.Locale.translate('DocumentGenerationStatus1');\n this.statusMessage = Soho.Locale.translate('DocumentGenerationStatusMessage1');\n }\n }\n\n public startPoll(asyncId: string) {\n this.lmLoggerService.log([ 'Start polling for PDF/CSV generation.' ]);\n this.timerSubscription = this.lmPrintRequestService.startPoll(asyncId, this.cancelPolling$)\n .subscribe((response: LMPrintPollResponse) => {\n if (response.status === AppConstants.STATUS_INPROGRESS) {\n ++this.inProgress;\n if (this.inProgress > this.maxPollIterations) {\n this.zone.run(() => {\n this.setStatusStrings('INPROGRESS');\n\n this.displayIcon = true;\n this.iconName = 'info';\n this.iconClasses = 'icon icon-info';\n });\n this.cancelPoll();\n // this.lmPrintDialogService.showPollDialogStatus(response.status);\n }\n } else if (response.status === AppConstants.STATUS_COMPLETED) {\n this.cancelPoll();\n this.lmPrintDialogService.openPrintDocument(response.actionRedirect);\n } else {\n // Handle Async failure and exception\n this.errorMsg = (response.errorMsg) ? response.errorMsg : '';\n this.zone.run(() => {\n this.setStatusStrings('ERROR');\n\n this.displayIcon = true;\n this.iconName = 'error';\n this.iconClasses = 'icon icon-error';\n });\n this.cancelPoll();\n // this.lmPrintDialogService.showPollDialogStatus(response.status, response as LMError);\n }\n });\n }\n\n public cancelPoll() {\n // Either the user clicked on the cancel button in dialog\n // Or the poll returns 'in progress' for maxPollIterations times in a row\n // Or got a completed response\n // Or got an error response\n this.lmLoggerService.log([ 'End polling for PDF/CSV generation.' ]);\n this.cancelPolling$.next(true);\n }\n\n public gotoPrintFiles() {\n this.cancelPoll();\n this.lmGlobalUtilService.navigate(this.myPrintFilesUrl);\n }\n}\n","
          \n
          \n {{this.status}}\n
          \n
          \n \n \n \n {{this.status}}\n
          \n
          \n
          \n","import { Injectable } from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoModalDialogRef,\n SohoModalDialogService,\n SohoToastService\n} from 'ids-enterprise-ng';\n\nimport { ListResource } from '@resources/list.resource';\nimport { AppConstants, LMDialogButtonKey, LMGlobalUtilService, LMUniqueIdService } from '@utils/index';\nimport {\n LMContextService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMUrlUtilService\n} from '@services/index';\nimport { LMScheduleDialogService } from './schedule/lm-schedule-dialog.service';\nimport { LMPrintCsvDialogComponent } from './csv/lm-print-csv-dialog.component';\nimport { LMPrintPdfDialogComponent } from './pdf/lm-print-pdf-dialog.component';\nimport { LMPrintRequestService } from './lm-print-request.service';\nimport { LMPollAndPrintDialogComponent } from '@modal/print-dialog/lm-poll-and-print-dialog.component';\nimport { DocumentResource } from '@app/resources';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Injectable()\nexport class LMPrintDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private sohoToastService: SohoToastService,\n private lmLoggerService: LMLoggerService,\n private lmPrintRequestService: LMPrintRequestService,\n private lmScheduleDialogService: LMScheduleDialogService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmContextService: LMContextService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n ) {}\n\n private dialog: SohoModalDialogRef;\n private pollDialog: SohoModalDialogRef;\n private component: LMPrintDialog;\n private printingMessage: string;\n private neverPoll: boolean;\n\n readonly printFilesResource = new ListResource({\n resourceId: 'UserReport',\n listName: 'MyUserReportsList'\n });\n\n private runSchedule() {\n if (!this.component.checkIfFormIsValid()) {\n return;\n }\n const data = this.component.requestData;\n const params = this.component.requestParams;\n\n this.lmScheduleDialogService.openScheduleDialog(undefined, params.name)\n .subscribe((scheduleView: LMDataView) => {\n if (scheduleView) {\n // overwrite scheduleView of requestData\n data.scheduleView = scheduleView;\n this.component.busyIndicator.activated = true;\n const options = {\n resource: this.component.resource,\n params,\n requestData: data\n } as LMRunPrintOptions;\n\n this.lmPrintRequestService.runPrint(options)\n .subscribe((result: LMPrintResponse) => {\n this.component.busyIndicator.activated = false;\n this.dialog.close();\n const success = (result.status === AppConstants.STATUS_COMPLETED);\n this.showPrintStatus(success, true);\n });\n }\n });\n }\n\n private runPrint(data?: LMPrintRequestData) {\n if (!this.component.checkIfFormIsValid()) {\n return;\n }\n const requestData = data ? data : this.component.requestData;\n const params = this.component.requestParams;\n if (this.component.printInfo.chartName) {\n params.chartName = this.component.printInfo.chartName;\n }\n\n this.component.busyIndicator.activated = true;\n const options = {\n resource: this.component.resource,\n params,\n requestData\n } as LMRunPrintOptions;\n this.lmPrintRequestService.runPrint(options)\n .subscribe((result: LMPrintResponse) => {\n this.component.busyIndicator.activated = false;\n this.dialog.close();\n const success = (result.status === AppConstants.STATUS_COMPLETED);\n if (success && !this.neverPoll) {\n this.lmLoggerService.log([ 'Begin poll for PDF/CSV generation.' ]);\n this.openPollDialog(result.asyncId);\n } else {\n this.showPrintStatus(success, !!data);\n }\n });\n }\n\n private showPrintStatus(success: boolean, scheduled: boolean) {\n const url = this.lmUrlUtilService.buildUrl({ resource: this.printFilesResource });\n\n const toastAttributes: SohoAttributesArray = [];\n const toastMessageResult = success ? AppConstants.TRA_ACTION_COMPLETED : AppConstants.TRA_ACTION_FAILED;\n toastAttributes.push({ name: 'data-automation-id', value: 'lm-toast-message-container' });\n toastAttributes.push({ name: 'toast-message-result', value: toastMessageResult });\n\n const toastOptions = success ?\n this.component.getSuccessMessage(scheduled) :\n this.component.getErrorMessage(scheduled);\n\n toastOptions.attributes = toastAttributes;\n if (success) {\n // Add link to 'My Print Files' for success messages\n toastOptions.allowLink = success;\n toastOptions.message =\n `\n ${toastOptions.message}`;\n }\n\n this.lmGlobalUtilService.displayToastMessage(toastOptions.title, toastOptions.message, toastMessageResult, toastOptions.allowLink);\n }\n\n public getModalButtons(scheduleActionAllowed: boolean, isExport = false): SohoModalButton[] {\n const dialogId = 'PrintDialog';\n const printBtnText = isExport ? LMDialogButtonKey.EXPORT : LMDialogButtonKey.PRINT;\n const buttons: SohoModalButton[] = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => this.dialog.close()\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.SCHEDULE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SCHEDULE),\n click: () => this.runSchedule()\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, printBtnText ]),\n text: Soho.Locale.translate(printBtnText),\n click: () => this.runPrint(),\n isDefault: true,\n validate : false\n },\n ];\n\n // Remove schedule button if not allowed\n if (!scheduleActionAllowed) {\n buttons.splice(1, 1);\n }\n return buttons;\n }\n\n private openDialog(info: LMPrintDialogInfo): SohoModalDialogRef {\n this.component = this.dialog.componentDialog;\n this.component.printInfo = info;\n\n return this.dialog.title(info.actionReference.label || info.actionReference.tooltip)\n .buttons(this.getModalButtons(info.scheduleActionAllowed, info.isExport))\n .open();\n }\n\n /**\n * Open a PDF Print Dialog\n * @param info dialog's settings\n */\n public openPdfDialog(info: LMPrintPdfInfo) {\n const attributes: SohoAttributesArray = [ { name: 'data-automation-id', value: 'lm-print-to-pdf-modal' } ];\n const options: SohoModalOptions = {\n cssClass: 'lm-action-form-dialog lm-has-composite lm-export-tabbed-action-form',\n fullsize: 'always',\n attributes\n };\n\n // Initialize pdf modal\n const printing = Soho.Locale.translate('PrintingToPDF');\n this.printingMessage = this.lmFormatUtilService.formatMessage(printing, info.name);\n // If Never wait is set in User settings, maxWait will be 0.\n const maxWaitInSecs = this.lmGlobalPersonalizationService.getGlobalPersonalization().maxWaitPDFCSV as number;\n // eslint-disable-next-line eqeqeq\n this.neverPoll = (maxWaitInSecs && maxWaitInSecs == 0) ? true : false;\n this.dialog = this.sohoModalDialogService.modal(LMPrintPdfDialogComponent, null, options);\n return this.openDialog(info);\n }\n\n /**\n * Open a CSV Print Dialog\n * @param info dialog's settings\n */\n public openCsvDialog(info: LMPrintCsvInfo) {\n // Initialize csv modal\n info.isExport = true;\n const printing = Soho.Locale.translate('CreatingCSVFile');\n this.printingMessage = this.lmFormatUtilService.formatMessage(printing, info.name);\n // If Never wait is set in User settings, maxWait will be 0.\n const maxWaitInSecs = this.lmGlobalPersonalizationService.getGlobalPersonalization().maxWaitPDFCSV as number;\n // eslint-disable-next-line eqeqeq\n this.neverPoll = (maxWaitInSecs && maxWaitInSecs == 0) ? true : false;\n const attributes: SohoAttributesArray = [ { name: 'data-automation-id', value: 'lm-export-to-csv-modal' } ];\n const options: SohoModalOptions = {\n cssClass: 'lm-action-form-dialog lm-has-composite lm-export-tabbed-action-form',\n fullsize: 'always',\n attributes\n };\n this.dialog = this.sohoModalDialogService.modal(LMPrintCsvDialogComponent, null, options);\n return this.openDialog(info);\n }\n\n private openPollDialog(asyncId: string): SohoModalDialogRef{\n const dialogId = 'PollDialog';\n this.pollDialog = this.sohoModalDialogService.modal(LMPollAndPrintDialogComponent, null, { fullsize: 'responsive' });\n return this.pollDialog\n .title(this.component.printInfo.isExport ? Soho.Locale.translate('GeneratingCSV') : Soho.Locale.translate('GeneratingPDF'))\n .buttons([\n {\n // Not able to change the button text on the fly to 'close', when the status changes to say, error\n // id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.RUNINBACKGROUND ]),\n // text: Soho.Locale.translate(LMDialogButtonKey.RUNINBACKGROUND),\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.DISMISS ]),\n text: Soho.Locale.translate(LMDialogButtonKey.DISMISS),\n click: () => this.pollDialog.close()\n },\n ])\n .open()\n .apply((pollDlg) => pollDlg.isExport = this.component.printInfo.isExport)\n .afterOpen(() => this.startPoll(asyncId))\n .beforeClose((pollDlg) => {\n // cancelPoll done in before close so Escape key will also stop polling.\n // Modal dialog implementation does not execute the 'Close' button handler on Escape.\n pollDlg.componentDialog.cancelPoll();\n return true;\n });\n }\n\n private startPoll(asyncId: string) {\n this.pollDialog.componentDialog.startPoll(asyncId);\n }\n\n // private toastCancellingMessage() {\n // const url = this.lmUrlUtilService.buildUrl({ resource: this.printFilesResource });\n // const toastOptions: SohoToastOptions = { allowLink: true, title: '', message:'' };\n // // const message1 = Soho.Locale.translate('CancelPoll');\n // const message = Soho.Locale.translate('PleaseVisitMyPrintFiles');\n // toastOptions.message =\n // `\n // ${message}`;\n // this.sohoToastService.show(toastOptions);\n // }\n\n // public showPollDialogStatus(status: string, error?: LMError) {\n // if (status === AppConstants.STATUS_INPROGRESS) {\n // Aborting, since the document is taking a longer time to generate.\n // Close the dialog and show a toast.\n // this.pollDialog.close();\n // this.toastCancellingMessage();\n // } else if (status === AppConstants.STATUS_SYSTEM_ERROR) {\n // Close the dialog and Process unexpected error.\n // this.pollDialog.close();\n // this.lmErrorUtilService.handleError(error.message, error.details);\n // }\n // const dialogId = 'PollDialog';\n // this.pollDialog.buttons([\n // {\n // id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n // text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n // click: () => this.pollDialog.close()\n // },\n // ]);\n // }\n\n public openPrintDocument(actionRedirect: LMActionRedirect) {\n this.pollDialog.close();\n const documentResource = new DocumentResource({\n resourceId: actionRedirect.resourceId,\n fieldName: actionRedirect.fieldName\n }, '');\n const url = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n if (this.component.printInfo.isExport) {\n this.lmGlobalUtilService.navigate(url);\n } else {\n this.lmGlobalUtilService.navigate(url, null, 'external');\n }\n }\n}\n\nexport interface LMPrintDialogInfo {\n resource: Resource\n fromResource?: Resource\n actionReference: LMBusActionReference\n name: string\n chartName?: string\n dataView?: LMDataView\n dataViewSet?: LMDataViewSet\n cubeOverrides?: LMCubeOverrides\n cubeOptions?: LMCubeOptions\n userFolder?: string\n selectedRows?: number[]\n filterFields?: LMFilterFieldCriteria[]\n scheduleActionAllowed?: boolean\n includeRecordLimit?: boolean\n isExport?: boolean\n selectRequestData?: SelectRequestData\n}\n\nexport interface LMPrintPdfInfo extends LMPrintDialogInfo {\n pdfType: string\n fontOffset?: number\n orientation?: 'portrait' | 'landscape'\n selectedTabIndex?: number\n selectedPanelName?: string\n listParams?: LMPaneListParams\n includeSearchForm?: boolean\n}\n\nexport interface LMPrintCsvInfo extends LMPrintDialogInfo {\n isTreeList?: boolean\n}\n\nexport interface LMPrintDialog {\n resource: Resource\n requestData: LMPrintRequestData\n requestParams: LMPrintRequestParams\n printInfo: LMPrintDialogInfo\n busyIndicator: SohoBusyIndicatorDirective\n checkIfFormIsValid(): boolean\n getSuccessMessage(scheduled: boolean, url?: string): SohoToastOptions\n getErrorMessage(scheduled: boolean): SohoToastOptions\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of, Subject, timer } from 'rxjs';\n\nimport { LMPrintDialogInfo } from './lm-print-dialog.service';\nimport { LMUrlUtilService, NameValueMap, URLOptions } from '@services/utils/lm-url-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { AppConstants } from '@utils/app.constants';\nimport {\n catchError,\n concatMap,\n takeUntil,\n} from 'rxjs/operators';\nimport { DocumentResource } from '@app/resources';\n\n@Injectable()\nexport class LMPrintRequestService {\n constructor(\n private httpClient: HttpClient,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n public getCommonRequestParams(printInfo: LMPrintDialogInfo): LMCommonPrintParams {\n let params: LMCommonPrintParams = {};\n\n // Optional parameters to be added when defined:\n if (printInfo.userFolder) {\n params.userFolder = printInfo.userFolder;\n }\n if (printInfo.cubeOverrides) {\n params.cubeOverrides = printInfo.cubeOverrides;\n } else if (printInfo.cubeOptions) {\n // Cube options contain array of objects for each dimension type such as context, filter and current cube\n // They are kept separate in different collections and DataViewCubeInfo object is built before fetching data.\n params.cubeOptions = printInfo.cubeOptions;\n }\n if (printInfo.fromResource) {\n params[printInfo.fromResource.resourceType] = printInfo.fromResource.generateResourceId(false);\n }\n // as of now, there is no possible way to identify a Matrix Spreadsheet and a Matrix Compare\n // they both have the same LPL syntax construct and the same spec\n // the only way to differentiate the two is via url item params\n // when item is present in the url, the form is Matrix Compare (hence ITEM compare)\n // absence of item in the url params means it is a Matrix Spreadsheet.\n // this is both true with export to csv and pdf\n if (printInfo?.dataView?.columnList && this.lmUrlUtilService.hasParam(window.location.href, 'item')) {\n const items: string[] = [];\n printInfo.dataView.columnList.forEach((dataView: LMDataView) => {\n items.push(dataView.resourceId);\n });\n params['item'] = items;\n }\n // Append PagingInfo from DataViewSet\n const pagingInfo = (printInfo.dataViewSet) ? printInfo.dataViewSet.pagingInfo : {};\n if (pagingInfo.filter) {\n params.filter = pagingInfo.filter;\n }\n if (pagingInfo.sortOrderName) {\n params.sortordername = pagingInfo.sortOrderName;\n }\n if (pagingInfo.isAscending !== undefined) {\n params.isascending = pagingInfo.isAscending;\n }\n\n // TODO: Refactor this with backend and use filters from LMPrintRequestData\n // instead of having two separate places to send filter criteria\n if (printInfo.filterFields?.length) {\n const filterFields = this.lmUrlUtilService.filterFieldCriteriaToNameValueMap(printInfo.filterFields, 'fc');\n filterFields.forEach((filter: NameValueMap) => {\n params = { ...params, ...filter };\n });\n }\n return params;\n }\n\n public getConfigFeatureUseAllActorGroups(): boolean {\n // better for testing!!!\n return this.lmContextService.isConfigFeatureEnabled(AppConstants.FEATURE_UseAllActorGroups);\n }\n\n public getReportDistributionSelectUrl(): string {\n const url = this.lmUrlUtilService.getBaseUrl() + '/list/ReportDistributionGroup.ReportDistributionGroupDefaultList?' +\n 'output=spec&type=select&select=ReportDistributionGroup.ReportDistributionGroup';\n return this.lmUrlUtilService.propagateSessionKeys(url, '&');\n }\n\n public runPrint(options: LMRunPrintOptions): Observable {\n let cubeOptions = '';\n if (options?.params?.cubeOverrides) {\n cubeOptions = '&' + this.lmUrlUtilService.cubeOverridesToQueryString(options.params.cubeOverrides);\n delete options.params.cubeOverrides;\n }\n\n if (options?.params?.cubeOptions) {\n cubeOptions = '&' + this.lmUrlUtilService.objectToCubeQueryString(options.params.cubeOptions);\n delete options.params.cubeOptions;\n }\n\n const items: string[] = [];\n let itemStringified = '';\n\n if (options?.params?.item) {\n options.params.item.forEach( item => {\n items.push(this.lmUrlUtilService.objectToQueryString({ item }));\n });\n itemStringified = '&' + items.join('&');\n delete options.params.item;\n }\n\n const urlOptions = {\n resource: options.resource,\n params: options.params\n } as URLOptions;\n const url = this.lmUrlUtilService.buildUrl(urlOptions) + cubeOptions + itemStringified;\n const headers = new HttpHeaders({ 'Content-Type': 'application/json;charset=utf-8' });\n\n return this.httpClient.post(url, JSON.stringify(options.requestData), { headers });\n }\n\n public startPoll(asyncId: string, cancelPolling: Subject, timeInterval = 1000): Observable {\n const documentResource = new DocumentResource({ resourceId: 'ScheduledDocumentStatusTask.GetStatus' }, '');\n const url = this.lmUrlUtilService.buildUrl({ resource: documentResource, params: { asyncId } });\n let i = 0;\n // Timer will complete after emitting one value.\n const intervalBackoff = iteration => timer(iteration * 1000);\n return timer(0, timeInterval)\n .pipe(\n // Get async status after 'iteration' seconds\n concatMap(() => intervalBackoff(++i)),\n concatMap(() => this.httpClient.get(url)),\n // If async status is 'ready', cancel polling\n // This subject will emit an event from subscribe block.\n takeUntil(cancelPolling),\n catchError((error) => {\n // Cancel polling for now, retry logic will be an improvement.\n cancelPolling.next(true);\n if (!error.status) {\n throw error;\n }\n return of(error);\n })\n );\n }\n}\n","import {\n AfterViewInit,\n Component,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport {\n SohoAlertDirective,\n SohoBusyIndicatorDirective,\n SohoMessageService,\n SohoSpinboxComponent\n} from 'ids-enterprise-ng';\n\nimport { LMPrintDialog, LMPrintPdfInfo } from '@modal/print-dialog/lm-print-dialog.service';\nimport { LMPrintRequestService } from '@modal/print-dialog/lm-print-request.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLookupBasicComponent } from '@field/lookup';\nimport { LMFieldValueChangedEvent, LMFormRequestService } from '@app/components';\nimport { LMUrlUtilService } from '@app/services';\nimport { ListResource } from '@app/resources';\nimport { LMListDropdownComponent } from '@components/lmlistdropdown';\nimport { LMGlobalPersonalizationService } from '@app/states';\n\n@Component({\n selector: 'lm-print-pdf-dialog',\n templateUrl: './lm-print-pdf-dialog.component.html',\n styleUrls: [ './lm-print-pdf-dialog.component.css' ]\n})\nexport class LMPrintPdfDialogComponent implements LMPrintDialog, AfterViewInit, OnDestroy, OnInit {\n constructor(\n private sohoMessageService: SohoMessageService,\n private formBuilder: FormBuilder,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmPrintRequestService: LMPrintRequestService,\n private lmFromRequestService: LMFormRequestService) {}\n\n @ViewChild('modalPlaceholder', { read: ViewContainerRef, static: true }) modalPlaceholder: ViewContainerRef;\n @ViewChild('maxLevels') maxLevels: SohoSpinboxComponent;\n @ViewChild('maxRows') maxRows: SohoSpinboxComponent;\n @ViewChild(SohoBusyIndicatorDirective, { static: true }) busyIndicator: SohoBusyIndicatorDirective;\n @ViewChildren(SohoAlertDirective) alerts: QueryList;\n @ViewChild(forwardRef(() => LMLookupBasicComponent)) lmLookupBasicPdf;\n @ViewChild('dynamicActorsComponent') dynamicActorsComponent: LMListDropdownComponent;\n @Input() printInfo: LMPrintPdfInfo;\n\n\n pdfType: string;\n private subscriptions: Subscription[] = [];\n\n dynamicActorOptions: LMListDropdownOptions = {\n businessClass: 'Actor',\n maxValues: 20,\n searchFields: [ 'Actor', 'PersonName.GivenName', 'PersonName.FamilyName', 'PersonName.PreferredGivenName' ],\n selectList: 'AdHocDistributionGroupActorList' };\n showDynamicActors = false;\n atLeastOneDynamicActor = false;\n dynamicActorsLabel = Soho.Locale.translate('PDFAdHocActors');\n\n printForm: FormGroup;\n includeSearchForm = false;\n includePrintOption = false;\n reportDistGroupLabel = '';\n sourceFieldName = '';\n allRecordsAlert: SohoAlertDirective;\n dynamicActorsAlert: SohoAlertDirective;\n useCompactFormLayout = false;\n useTabs = true;\n showMaxRows = false;\n showFontOffset = false;\n showMaxLevels = false;\n public printOptions: LMPrintOption[] = [];\n\n ngOnInit() {\n this.useCompactFormLayout = this.lmGlobalPersonalizationService.getGlobalPersonalization().useCompactFormLayout;\n\n // Setup form with default values\n this.printForm = this.formBuilder.group({\n name: [ '', Validators.required ],\n orientation: [ 'landscape', Validators.required ],\n fontOffsetOption: [ 'default', Validators.required ],\n fontOffset: [ 0, Validators.required ],\n maxRows: [ 5000, Validators.required ],\n recordLimitOption: [ 'default', Validators.required ],\n allRecords: [ false, Validators.required ],\n searchForm: [ { value: false, disabled: true }, Validators.required ],\n printOption: [ { value: 0, disabled: true }, Validators.required ],\n maxLevels: [ { value: 3, disabled: true }, Validators.required ],\n });\n const controls = this.printForm.controls;\n\n this.pdfType = this.printInfo.pdfType;\n if (this.pdfType === AppConstants.REGULAR_FORM_PDF && !this.isUseAllActorGroups) {\n this.useTabs = false;\n }\n\n controls.name.setValue(this.printInfo.name);\n\n if (this.printInfo.fontOffset) {\n controls.fontOffset.setValue(this.printInfo.fontOffset);\n if (this.printInfo.fontOffset === 0) {\n controls.fontOffsetOption.setValue('default');\n } else if (this.printInfo.fontOffset === -2) {\n controls.fontOffsetOption.setValue('small');\n } else if (this.printInfo.fontOffset === -3) {\n controls.fontOffsetOption.setValue('smaller');\n } else if (this.printInfo.fontOffset === -5) {\n controls.fontOffsetOption.setValue('smallest');\n } else {\n controls.fontOffsetOption.setValue('custom');\n }\n } else {\n controls.fontOffsetOption.setValue('default');\n }\n\n if (this.printInfo.orientation) {\n controls.orientation.setValue(this.printInfo.orientation);\n }\n\n this.includeSearchForm = this.printInfo.includeSearchForm;\n this.includePrintOption = (\n this.pdfType === AppConstants.COMPOSITE_FORM_PDF ||\n this.pdfType === AppConstants.LIST_WITH_DETAILS_PDF ||\n this.pdfType === AppConstants.TREE_LIST_PDF ||\n this.pdfType === AppConstants.TREE_LIST_WITH_DETAILS_PDF\n );\n\n if (!this.printInfo.includeRecordLimit) {\n controls.allRecords.disable();\n controls.recordLimitOption.disable();\n controls.maxRows.disable();\n }\n\n if (this.includeSearchForm) {\n controls.searchForm.enable();\n }\n\n if (this.includePrintOption) {\n this.printOptions = this.getPrintOptions();\n controls.printOption.enable();\n // Auto select first option\n controls.printOption.setValue(this.printOptions[0].value);\n }\n\n this.reportDistGroupLabel = Soho.Locale.translate('PDFRepDistGroup');\n this.sourceFieldName = 'ReportDistributionGroup';\n }\n\n ngAfterViewInit() {\n const controls = this.printForm.controls;\n let subscription: Subscription;\n // PrintOption value determines if maxLevels field enable/disable\n subscription = controls.printOption.valueChanges.subscribe((value) => {\n const maxLevelsControl = controls.maxLevels;\n const disable = !this.isSpecifiedLevels(Number(value));\n this.showMaxLevels = !disable;\n if (disable) {\n maxLevelsControl.disable();\n } else {\n maxLevelsControl.enable();\n }\n });\n this.subscriptions.push(subscription);\n\n // AllRecords value determines if maxRows field enable/disable\n subscription = controls.recordLimitOption.valueChanges.subscribe((value) => {\n const maxRowsControl = this.printForm.get('maxRows');\n const allRecordsControl = this.printForm.get('allRecords');\n allRecordsControl.setValue(value === 'all');\n this.showMaxRows = value === 'custom';\n this.allRecordsAlert?.removeAllMessages();\n\n switch (value) {\n case 'all':\n maxRowsControl.disable();\n const alertMessage = Soho.Locale.translate('PDFIncludingAllRecords');\n this.allRecordsAlert?.addInlineMessage(alertMessage, 'info', true);\n break;\n case 'default':\n maxRowsControl.enable();\n maxRowsControl.setValue(5000);\n break;\n case 'large':\n maxRowsControl.enable();\n maxRowsControl.setValue(250000);\n break;\n case 'small':\n maxRowsControl.enable();\n maxRowsControl.setValue(100);\n break;\n case 'custom':\n maxRowsControl.enable();\n maxRowsControl.setValue(5000);\n }\n });\n this.subscriptions.push(subscription);\n\n\n subscription = controls.fontOffsetOption.valueChanges.subscribe((value) => {\n const fontOffsetControl = this.printForm.get('fontOffset');\n this.showFontOffset = value === 'custom';\n fontOffsetControl.enable();\n\n switch (value) {\n case 'default':\n fontOffsetControl.setValue(0);\n break;\n case 'small':\n fontOffsetControl.setValue(-2);\n break;\n case 'smaller':\n fontOffsetControl.setValue(-3);\n break;\n case 'smallest':\n fontOffsetControl.setValue(-5);\n break;\n case 'custom':\n fontOffsetControl.setValue(0);\n break;\n }\n });\n this.subscriptions.push(subscription);\n if (this.lmLookupBasicPdf) {\n // Set the select list url for ReportDistributionGroup\n this.lmLookupBasicPdf.viewName = 'PDFOptions'; // Dummy data for handcoded forms. (There is no formSpec or fromDataView)\n this.lmLookupBasicPdf.selectListUrl = this.lmPrintRequestService.getReportDistributionSelectUrl();\n }\n this.allRecordsAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'recordLimitAlert');\n this.dynamicActorsAlert = this.alerts.find((alert: SohoAlertDirective) => (alert.elementRef.nativeElement as Element).getAttribute('id') === 'dynamicActors');\n\n if (this.printInfo.includeRecordLimit) {\n const exportDefaultRecordLimit = this.lmGlobalPersonalizationService.getGlobalPersonalization().exportDefaultRecordLimit;\n if (exportDefaultRecordLimit === 'no-limit') {\n controls.recordLimitOption.setValue('all');\n controls.maxRows.disable();\n const alertMessage = Soho.Locale.translate('PDFIncludingAllRecords');\n this.allRecordsAlert?.addInlineMessage(alertMessage, 'info', true);\n }\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n private isSpecifiedLevels(printOption: number): boolean {\n return (printOption === AppConstants.PDF_SPECIFIED_ACTION\n || printOption === AppConstants.PDF_SPECIFIED_WITH_DETAILS_ACTION);\n }\n\n get isTreeList(): boolean {\n return (this.pdfType === AppConstants.TREE_LIST_PDF\n || this.pdfType === AppConstants.TREE_LIST_WITH_DETAILS_PDF);\n }\n\n get isUseAllActorGroups(): boolean {\n return this.lmPrintRequestService.getConfigFeatureUseAllActorGroups();\n }\n\n get resource(): Resource {\n // Switch Resource to selected record when printing\n // with 'Selected Record With Details' option is chosen\n const printOption = Number(this.printForm.controls.printOption.value);\n if (printOption === AppConstants.PDF_SELECTED_WITH_DETAILS_ACTION\n && this.printInfo.dataViewSet.data.length\n && this.printInfo.selectedRows.length) {\n const listResource = this.printInfo.resource;\n return new ListResource({\n resourceId: this.printInfo.dataViewSet.data[this.printInfo.selectedRows[0]].resourceId,\n listName: listResource.listName\n });\n }\n\n return this.printInfo.resource;\n }\n\n public checkIfFormIsValid(): boolean {\n let isValid = true;\n if (this.atLeastOneDynamicActor) {\n isValid = this.dynamicActorsComponent.values.length > 0;\n if (!isValid) {\n const options: SohoMessageOptions = {\n title: Soho.Locale.translate('ValidationError'),\n message: Soho.Locale.translate('PDFAtLeastOneDynamicActor'),\n showCloseBtn: true };\n\n this.sohoMessageService\n .alert(options)\n .open();\n }\n }\n return isValid;\n }\n\n get requestData(): LMPrintRequestData {\n // Default scheduleView derived from landmark.popupmenu.js\n let value = this.printForm.controls.name.value;\n value = `${value} - ${Soho.Locale.translate('PrintToFile')}`;\n const scheduleView = { fields: { Name: { value } } };\n const requestData = {\n requestType: 'schedulePdf',\n scheduleView\n };\n\n if (this.printInfo.dataView) {\n requestData.dataView = this.printInfo.dataView;\n }\n\n if (this.printInfo.selectRequestData) {\n requestData.selectRequestData = this.printInfo.selectRequestData;\n }\n\n if (this.printInfo.includeSearchForm && this.printInfo.filterFields?.length) {\n // Send filter fields in a format the PDF generator requires to build search tags.\n // get requestParams() will build filter field parameters to be sent in the request url itself\n // for FilterBuilder to set dataviewset filter. It is not in the same format PDF generator expects in PDFAction arguments.\n requestData.filterCriteria = this.printInfo.filterFields.map((fc) => ({ fieldId: fc.fieldId, operator: fc.operator, value: Array.isArray(fc.value) ? fc.value.join('|') : fc.value }));\n }\n\n if (this.printInfo.listParams && Object.keys(this.printInfo.listParams).length) {\n requestData.listParams = this.printInfo.listParams;\n }\n\n if (this.showDynamicActors && this.dynamicActorsComponent) {\n requestData.dynamicActors = this.dynamicActorsComponent.values;\n }\n\n return requestData;\n }\n\n /**\n * Returns configured form values\n * @return\n */\n get requestParams(): LMPdfPrintParams {\n const commonParams = this.lmPrintRequestService.getCommonRequestParams(this.printInfo);\n const params = {\n output: 'pdf',\n ...this.printForm.value,\n ...commonParams\n };\n\n if (this.printInfo.chartName) {\n params.chartName = this.printInfo.chartName;\n }\n\n if (this.printInfo.selectedTabIndex) {\n params.selectedTabIndex = this.printInfo.selectedTabIndex;\n }\n\n if (this.printInfo.selectedPanelName) {\n params.selectedPanelName = this.printInfo.selectedPanelName;\n }\n\n // Lookup component does not implement ControlAccessorValue. Landmark forms does not use formgroup / formcontrol to manage model data.\n if (this.lmLookupBasicPdf && this.lmLookupBasicPdf.lookupValue) {\n params.reportDistGroup = this.lmLookupBasicPdf.lookupValue;\n }\n return params;\n }\n\n /**\n * Returns a set print options based on PDF type\n * @return Array of print options\n */\n getPrintOptions(): LMPrintOption[] {\n const options: { [index: string]: LMPrintOption[] } = {};\n const formatOption = (value, label) => ({ value, label: Soho.Locale.translate(label) });\n\n options[AppConstants.COMPOSITE_FORM_PDF] = [\n formatOption(AppConstants.PDF_SELECTED_TAB_ACTION, 'PDFSelectedTab'),\n formatOption(AppConstants.PDF_ALL_TABS_ACTION, 'PDFAllTabs'),\n ];\n options[AppConstants.LIST_WITH_DETAILS_PDF] = [\n formatOption(AppConstants.PDF_ACTION, 'PDFCurrentList'),\n formatOption(AppConstants.PDF_WITH_DETAILS_ACTION, 'PDFWithDetails'),\n formatOption(AppConstants.PDF_SELECTED_WITH_DETAILS_ACTION, 'PDFSelectedWithDetails'),\n ];\n options[AppConstants.TREE_LIST_PDF] = [\n formatOption(AppConstants.PDF_ACTION, 'PDFDefaultTree'),\n formatOption(AppConstants.PDF_EXPANDED_ACTION, 'PDFAllLevels'),\n formatOption(AppConstants.PDF_SPECIFIED_ACTION, 'PDFSpecifiedMaxLevels'),\n ];\n options[AppConstants.TREE_LIST_WITH_DETAILS_PDF] = [\n formatOption(AppConstants.PDF_ACTION, 'PDFDefaultTree'),\n formatOption(AppConstants.PDF_WITH_DETAILS_ACTION, 'PDFRootLevelsWithDetails'),\n formatOption(AppConstants.PDF_EXPANDED_ACTION, 'PDFAllLevels'),\n formatOption(AppConstants.PDF_EXPANDED_WITH_DETAILS_ACTION, 'PDFAllLevelWithDetails'),\n formatOption(AppConstants.PDF_SPECIFIED_ACTION, 'PDFSpecifiedMaxLevels'),\n formatOption(AppConstants.PDF_SPECIFIED_WITH_DETAILS_ACTION, 'PDFSpecifiedMaxLevelsWithDetails'),\n formatOption(AppConstants.PDF_SELECTED_WITH_DETAILS_ACTION, 'PDFSelectedWithDetails'),\n ];\n\n // Exclude PDF_SELECTED_WITH_DETAILS_ACTION when there is no selected row/s\n if (!this.printInfo.selectedRows?.length) {\n options[this.pdfType] = options[this.pdfType].filter((option: LMPrintOption) => option.value !== AppConstants.PDF_SELECTED_WITH_DETAILS_ACTION);\n }\n\n return options[this.pdfType];\n }\n\n /**\n * Returns Toast Success Message\n * @param if pdf is scheduled\n * @return\n */\n getSuccessMessage(scheduled: boolean): SohoToastOptions {\n const title = Soho.Locale.translate(scheduled ? 'PDFIsScheduled' : 'GeneratingPDF');\n const message = Soho.Locale.translate('PleaseVisitMyPrintFiles');\n\n return { title, message };\n }\n\n /**\n * Returns Toast Error Message\n * @param if pdf is scheduled\n * @return\n */\n getErrorMessage(scheduled: boolean): SohoToastOptions {\n const title = Soho.Locale.translate(scheduled ? 'PDFScheduleError' : 'PDFGenerationError');\n const message = Soho.Locale.translate(scheduled ? 'PDFWasNotScheduled' : 'PDFWasNotGenerated');\n\n return { title, message };\n }\n\n reportDistributionGroupChanged(event: LMFieldValueChangedEvent) {\n const key = this.lmLookupBasicPdf?.lookupValue;\n this.dynamicActorsAlert.removeAllMessages();\n\n if (!key) {\n this.dynamicActorsLabel = Soho.Locale.translate('PDFAdHocActors');\n this.showDynamicActors = false;\n this.atLeastOneDynamicActor = false;\n return;\n }\n\n const baseUrl = this.lmUrlUtilService.getBaseUrl();\n const resourceId = encodeURIComponent(`ReportDistributionGroup(${key})`);\n const url = `${baseUrl}/form/${resourceId}`;\n const fieldList = [ 'HasDynamicActorReportDistribution', 'DynamicActorsOnlyProfiles' ];\n\n this.lmFromRequestService.getFieldValues(url, fieldList).subscribe(response => {\n let showActors = false;\n let requiresAtLeastOneActor = false;\n\n if (response?.status === 'Completed') {\n const fields = response.fields;\n if (fields.hasOwnProperty('HasDynamicActorReportDistribution') && fields.hasOwnProperty('DynamicActorsOnlyProfiles')) {\n const hasDynamicActorsFld: LMField = fields.HasDynamicActorReportDistribution;\n const onlyDynamicActorsFld: LMField = fields.DynamicActorsOnlyProfiles;\n showActors = hasDynamicActorsFld.value as boolean;\n requiresAtLeastOneActor = onlyDynamicActorsFld.value as boolean;\n }\n }\n\n this.dynamicActorsLabel = requiresAtLeastOneActor ? Soho.Locale.translate('PDFRequiredAdHocActors') : Soho.Locale.translate('PDFAdHocActors');\n this.showDynamicActors = showActors;\n this.atLeastOneDynamicActor = requiresAtLeastOneActor;\n\n if (showActors) {\n const alertMessage = requiresAtLeastOneActor ? Soho.Locale.translate('PDFNeedAtLeastOneActor') : Soho.Locale.translate('PDFAddAdditionalActors');\n this.dynamicActorsAlert.addInlineMessage(alertMessage, 'info', true);\n }\n });\n }\n}\n","
          \n
          \n\n \n
          \n \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n\n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n \n \n
          \n
          \n \n \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n","import { Injectable } from '@angular/core';\nimport { Observable, throwError, Subject } from 'rxjs';\nimport { catchError, flatMap, map } from 'rxjs/operators';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\nimport * as urltemplate from 'url-template';\n\nimport { FormResource } from '@resources/form.resource';\nimport { LMDialogButtonKey, LMUniqueIdService } from '@utils/index';\nimport { LMErrorUtilService } from '@services/utils';\nimport { LMDataService, LMSpecService, LMUrlUtilService } from '@services/index';\nimport { LMActionFormDialogComponent } from '@modal/lm-action-form-dialog.component';\nimport { LMActionFormDialogResultCode } from '@modal/lm-action-form-dialog.service';\n\n@Injectable()\nexport class LMScheduleDialogService {\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmSpecService: LMSpecService,\n private lmDataService: LMDataService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmUniqueIdService: LMUniqueIdService\n ) {}\n\n // Form used for Scheduling\n readonly formResource = new FormResource({formName: 'CreateRequestBasicForm', busClassName: 'AsyncActionRequest'});\n\n private getScheduleFormInfo(busClassName: string, actionName: string): Observable {\n const params = {\n output: 'csvpdfschedule',\n action: 'CreateRequest'\n } as LMUrlParams;\n // This is set when it's not for a pdf or csv dialog\n if (busClassName && actionName) {\n params.scheduleAction = `${busClassName}.${actionName}`;\n }\n\n const resource = this.formResource;\n const url = this.lmUrlUtilService.buildUrl({ resource, params });\n return this.lmSpecService.getFormSpecFromDialogActionUrl(url).pipe(\n flatMap((formSpecResponse: LMFormSpecResponse) => {\n const formUrlInfo = formSpecResponse.formUrlInfo;\n const formSpec = formSpecResponse.formSpec;\n // TODO: This urltemplate boilerplate is everywhere, it'd be nice to have a simpler method in lmUrlUtilService\n const dataUrlTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n let dataUrl = dataUrlTemplate.expand({ resourceId: resource.dataResourceId, actionName: 'CreateRequest' });\n dataUrl = this.lmUrlUtilService.updateUrlParams(dataUrl, params);\n\n return this.lmDataService.getRecord(dataUrl).pipe(\n map((scheduleView: LMDataView) => {\n return {\n scheduleView,\n formUrlInfo,\n formSpec\n } as LMScheduleFormInfo;\n })\n );\n })\n );\n }\n\n private showActionFormDialog(info: LMScheduleFormInfo, actionDialog$?: Subject): Observable {\n const dialog = this.sohoModalDialogService.modal(LMActionFormDialogComponent, null, {fullsize: 'responsive'});\n dialog.title(info.formSpec.busFormSpec.title.resourceValue);\n const dialogId = 'ScheduleDialog';\n\n const actionForm = dialog.componentDialog;\n actionForm.formUrlInfo = info.formUrlInfo;\n actionForm.formSpec = info.formSpec;\n actionForm.dataView = info.scheduleView;\n\n const actionSpec = info.formSpec.busClassSpec.actionSpec;\n const actionFormDialogData = { actionSpec };\n actionForm.formOptions = { actionFormDialogData };\n actionForm.triggerDetectChanges();\n const cancelButton: SohoModalButton = {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CANCEL]),\n text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n click: () => dialog.close()\n };\n const submitButton: SohoModalButton = {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.OK]),\n isDefault: true,\n text: Soho.Locale.translate(LMDialogButtonKey.OK),\n click: () => dialog.close(actionForm.formComponent.getDataView())\n };\n actionForm.defaultButton = submitButton;\n\n dialog.buttons([cancelButton, submitButton]).open();\n\n // Return afterClose as LMDataView observable\n return new Observable (observer => {\n dialog.afterClose((result => {\n // time out is needed here to allow the soho dialog control\n // to close, else if the process continues another Dialog such as\n // the response required dialog will be listening to the afterClose event\n // and be closed by mistake. Use case is running a set action with no ui\n // from a menu that will open a schedule modal then followed by a response\n // required model\n setTimeout(() => {\n observer.next(result);\n observer.complete();\n if (actionDialog$) {\n actionDialog$.next({\n result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_ENABLEBUTTONS\n });\n }\n });\n }));\n });\n }\n\n /**\n * Opens a Schedule Form modal where you can set an scheduled action request\n * Returns an Observable where you can get a scheduleView needed for scheduled printing\n * @param busClassName\n * @param actionName\n * @param actionDialog$\n * @return sachedule dataview\n */\n public openScheduleDialog(busClassName: string, actionName: string, actionDialog$?: Subject): Observable {\n // Fetch Schedule Form Spec and DataView\n return >this.getScheduleFormInfo(busClassName, actionName)\n .pipe(\n // Show Action Form Dialog\n flatMap((info: LMScheduleFormInfo) => this.showActionFormDialog(info, actionDialog$)),\n catchError(error => {\n this.lmErrorUtilService.handleError(error.message);\n return throwError(error);\n })\n );\n }\n}\n\nexport interface LMScheduleFormInfo {\n scheduleView: LMDataView,\n formSpec: LMFormSpec,\n formUrlInfo: LMFormUrlInfo\n}\n","export * from './lm-saved-search.service';\nexport * from './lm-saved-search.component';\nexport * from './lm-saved-search-manage.component';\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lm-saved-search-manage',\n template: `\n \n \n `\n})\nexport class LMSavedSearchManageComponent implements OnInit {\n\n @Input() listSpec: LMListSpec;\n @Input() listUrlInfo: LMListUrlInfo;\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lm-saved-search',\n templateUrl: './lm-saved-search.component.html',\n styleUrls: [ './lm-saved-search.component.scss' ]\n})\nexport class LMSavedSearchComponent implements OnInit {\n\n constructor() { }\n\n @Input() name: string;\n @Input() description: string;\n @Input() default: boolean;\n\n ngOnInit(): void {\n }\n\n}\n","
          \n
          \n \n \n
          \n
          \n \n \n
          \n\n\n\n\n
          \n","import { Injectable } from '@angular/core';\nimport { SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { Observable, Subject } from 'rxjs';\n\nimport { LMSavedSearchComponent, LMSavedSearchManageComponent } from '.';\nimport { LMDialogButtonKey, LMUniqueIdService, LMGlobalUtilService, AppConstants } from '@utils/index';\nimport {\n LMUrlUtilService,\n LMConfigurationService,\n LMSpecService,\n LMFormatUtilService,\n LMLoggerService, LMErrorUtilService, LMContextService, LMBusyIndicatorService\n} from '@services/index';\nimport { KeyedResource } from '@app/resources';\nimport { first } from 'rxjs/operators';\nimport { LMActionFormDialogResultCode, LMActionFormDialogService } from '@app/components';\nimport { LMTransactionState } from '@app/transaction';\nimport * as urltemplate from 'url-template';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LMSavedSearchService {\n\n constructor(\n private sohoModalDialogService: SohoModalDialogService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmConfigurationService: LMConfigurationService,\n private lmSpecService: LMSpecService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmActionFormDialogService: LMActionFormDialogService,\n private lmContextService: LMContextService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n ) {}\n\n public dialog: SohoModalDialogRef;\n\n private getDataView(userListViewParams: LMUserListViewParams): LMDataView {\n const fields = {\n Name: { value: (this.dialog?.componentDialog ? this.dialog?.componentDialog?.name : userListViewParams.userListViewItem?.name) },\n Description: { value: (this.dialog?.componentDialog ? this.dialog?.componentDialog?.description : userListViewParams.userListViewItem?.description) },\n // IsDefault: { value: (this.dialog?.componentDialog ? this.dialog?.componentDialog?.default : userListViewParams.userListViewItem?.isDefault) },\n SearchState: { value: JSON.stringify(userListViewParams.searchState) },\n BusinessView: { value: userListViewParams.listSpec.busClassSpec.name },\n BusinessList: { value: userListViewParams.listSpec.busListSpec.name }\n } as LMFields;\n if (userListViewParams.userListViewItem?.userListView) {\n fields['UserListView'] = { value: userListViewParams.userListViewItem.userListView };\n }\n // Existing saved searches do not have the following fields defined.\n // DataUtils throws a runtime exception if field json does not have value defined.\n if (!fields['Description'].value) {\n fields['Description'].value = '';\n }\n if (!fields['IsDefault'].value) {\n fields['IsDefault'].value = false;\n }\n\n const dvResourceId = userListViewParams.userListViewItem\n ? new KeyedResource({ resourceType: 'form', resourceId: 'UserListView(' + userListViewParams.userListViewItem.userListView + ')' })\n : new KeyedResource({ resourceType: 'form', resourceId: 'UserListView(_niu_)' });\n return {\n action: (userListViewParams.userListViewItem) ? 'Update' : 'Create',\n fields,\n resourceId: dvResourceId.generateResourceId(true)\n } as LMDataView;\n }\n\n private showToast(success: boolean) {\n const title = success ? Soho.Locale.translate('SaveCompleted') : Soho.Locale.translate('SaveFailed');\n const message = success ? Soho.Locale.translate('CurrentSearchIsSaved') : Soho.Locale.translate('CurrentSearchIsNotSaved');\n this.lmGlobalUtilService.displayToastMessage(title, message);\n this.dialog?.close(success);\n }\n\n private save(userListViewParams: LMUserListViewParams): Observable {\n const dataView = this.getDataView(userListViewParams);\n const url = this.lmUrlUtilService.buildUserListViewFetchUrl(userListViewParams.listUrlInfo, userListViewParams.listSpec);\n return new Observable((observer) => {\n this.lmConfigurationService.saveUserListView(url, dataView).subscribe((response: LMActionResult) => {\n this.showToast(AppConstants.STATUS_COMPLETED === response.status);\n const userListViewItem: LMUserListViewItem = {\n userListView: response.dataView.fields['UserListView'].value as string,\n name: response.dataView.fields['Name'].value as string,\n description: response.dataView.fields['Description'].value as string,\n isDefault: response.dataView.fields['IsDefault'].value as boolean,\n searchState: response.dataView.fields['SearchState'].value as string,\n };\n observer.next({ success: AppConstants.STATUS_COMPLETED === response.status,\n userListViewItem });\n observer.complete();\n });\n });\n }\n\n /**\n * Opens the save dialog to save filters and sort order\n * @param userListViewParams LMUserListViewParams\n * @returns Observable true if saving is successful\n */\n // private openSaveDialog(userListViewParams: LMUserListViewParams): Observable {\n // let saveUserListViewResult: LMUserListViewResult = { success: false };\n // const dialogId = 'SavedSearchDialog';\n // this.dialog = this.sohoModalDialogService.modal(LMSavedSearchComponent);\n // this.dialog.title(Soho.Locale.translate('SavedSearch'));\n // this.dialog.options({ fullsize: 'responsive' });\n // this.dialog.buttons([\n // {\n // id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CANCEL ]),\n // text: Soho.Locale.translate(LMDialogButtonKey.CANCEL),\n // click: () => this.dialog.close(false)\n // },\n // {\n // id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.SAVE ]),\n // text: Soho.Locale.translate(LMDialogButtonKey.SAVE),\n // click: () => {\n // this.save(userListViewParams).subscribe((result: LMUserListViewResult) => saveUserListViewResult = result);\n // },\n // isDefault: true\n // },\n // ]);\n // this.dialog.apply((savedSearchComponent: LMSavedSearchComponent) => {\n // if (userListViewParams.userListViewItem) {\n // savedSearchComponent.name = userListViewParams.userListViewItem.name;\n // savedSearchComponent.description = userListViewParams.userListViewItem.description;\n // // savedSearchComponent.default = userListViewParams.userListViewItem.isDefault;\n // } else if (userListViewParams.name) {\n // savedSearchComponent.name = userListViewParams.name;\n // }\n // });\n // this.dialog.open();\n //\n // const sub = new Subject();\n // this.dialog.afterClose((result: boolean) => {\n // sub.next(saveUserListViewResult);\n // sub.complete();\n // });\n // return sub.asObservable();\n // }\n\n public runSave(userListViewParams: LMUserListViewParams): Observable {\n if (userListViewParams.userListViewItem !== undefined) {\n // Just save it, taking in the modifications.\n return this.save(userListViewParams);\n } else {\n // Open the dialog to save\n return this.openSaveActionDialog(userListViewParams);\n }\n }\n\n public runSaveAs(userListViewParams: LMUserListViewParams): Observable {\n if (userListViewParams.name) {\n userListViewParams.name = userListViewParams.name + '-Copy';\n }\n // Always prompt a dialog to enter a name\n return this.openSaveActionDialog(userListViewParams);\n }\n\n private openSaveActionDialog(userListViewParams: LMUserListViewParams): Observable {\n const sub = new Subject();\n\n this.lmBusyIndicatorService.showBusyIndicator();\n const resource = new KeyedResource({ resourceType: 'form', resourceId: 'UserListView(_niu_)' });\n const createAction = 'SaveUserListView';\n const actionResource = new KeyedResource( { resourceType: 'action', resourceId: resource.resourceId }, createAction);\n const params = { output: 'spec' };\n const url = this.lmUrlUtilService.buildUrl({ resource: actionResource, params });\n\n this.lmSpecService.getFormSpecFromRedirectActionUrl(url).pipe(first())\n .subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n const exception = response as LMSystemException;\n this.lmLoggerService.error(response as LMSystemException);\n this.lmErrorUtilService.handleError(exception.message, exception.details, exception.status, exception.statusText);\n }\n const actionFormUrlResponse = response as LMActionFormUrlResponse;\n const formUrlInfo = actionFormUrlResponse.formUrlInfo;\n const formSpec = actionFormUrlResponse.formSpec;\n const actionSpec = formSpec.busClassSpec.actions.find((a) => a.name === createAction);\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId: resource.resourceId, actionName: actionSpec.name });\n this.lmActionFormDialogService.getActionFormDialogDataView(dataUrl).pipe(first()).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status !== AppConstants.STATUS_COMPLETED) {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n return;\n }\n this.setFieldsOnCreateDataView(userListViewParams, formDataView);\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView)\n .subscribe((actionFormDialogResult) => {\n if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const transactionState: LMTransactionState = actionFormDialogResult.transactionStateResult;\n if (transactionState.isSuccess()) {\n const actionResult: LMActionResult = actionFormDialogResult.transactionStateResult.getTransactionResult();\n const resultDataView = actionResult.dataView;\n const userListViewItem: LMUserListViewItem = {\n userListView: resultDataView.fields[ 'UserListView' ].value as string,\n name: resultDataView.fields[ 'Name' ].value as string,\n description: resultDataView.fields[ 'Description' ].value as string,\n isDefault: resultDataView.fields[ 'IsDefault' ].value as boolean,\n searchState: resultDataView.fields[ 'SearchState' ].value as string,\n };\n const result: LMUserListViewResult = { success: true, userListViewItem, dataView: resultDataView };\n sub.next(result);\n this.showToast(true);\n }\n } else if (actionFormDialogResult.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_OPENERROR) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n this.lmErrorUtilService.handleError(actionFormDialogResult.openError.message, actionFormDialogResult.openError.details, actionFormDialogResult.openError.status);\n }\n });\n });\n });\n return sub.asObservable();\n }\n\n private setFieldsOnCreateDataView(userListViewParams: LMUserListViewParams, dataView: LMDataView) {\n dataView.fields[ 'BusinessView' ].value = userListViewParams.listSpec.busClassSpec.name;\n dataView.fields[ 'BusinessList'].value = userListViewParams.listSpec.busListSpec.name;\n if (userListViewParams.listSpec.userFolder) {\n dataView.fields[ 'UserFolder' ].value = userListViewParams.listSpec.userFolder;\n } else {\n dataView.fields[ 'Actor' ].value = this.lmContextService.getActorId();\n }\n if (userListViewParams.name) {\n dataView.fields[ 'Name' ].value = userListViewParams.name;\n }\n dataView.fields[ 'SearchState' ].value = JSON.stringify(userListViewParams.searchState);\n dataView.fields[ 'NewDisplayOrder' ].value = 1;\n }\n\n public openManageDialog(businessClass: string, listName: string, listTitle: string, actorId: string, userFolder: string): Observable {\n const params = { pagesize: 5 };\n // const params = { pagesize: 5, 'fc.BusinessView' : 'contains(' + businessClass + ')', 'fc.BusinessList' : 'contains(' + listName + ')' };\n const listResource = new KeyedResource({ resourceType: 'list',\n resourceId: 'UserListView[ByViewListActor](' + businessClass + ',' + listName + ',' + actorId + ',' + userFolder + ').UserListViewQuickManageList' });\n const url = this.lmUrlUtilService.buildUrl({ resource: listResource, params });\n const dialogId = 'SavedSearchManageDialog';\n const attributes: SohoAttributesArray = [ {\n name: 'data-automation-id',\n value: 'lm-manage-saved-search-modal'\n } ];\n const dialog = this.sohoModalDialogService.modal(LMSavedSearchManageComponent);\n\n this.lmSpecService.getListSpec(url).subscribe((listSpecResponse: LMListSpecResponse ) => {\n dialog.title(this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ManageSavedSearch'), [ listTitle ]))\n .options({ fullsize: 'always', attributes, cssClass: 'lm-saved-search-manage' })\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: () => dialog.close(false),\n isDefault: true\n },\n ])\n .apply((manageComponent: LMSavedSearchManageComponent) => {\n manageComponent.listSpec = listSpecResponse.listSpec;\n manageComponent.listUrlInfo = listSpecResponse.listUrlInfo;\n })\n .open();\n });\n\n const sub = new Subject();\n dialog.afterClose((result: boolean) => {\n sub.next(result);\n sub.complete();\n });\n return sub.asObservable();\n\n }\n}\n","export * from './lm-navigation.service';\nexport * from './lm-navigation.component';\n","import { AfterViewInit, Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LMNavigationService } from './lm-navigation.service';\n\n@Component({\n selector: 'lm-navigation',\n template: `
          Redirecting...
          `,\n})\nexport class LMNavigationComponent implements AfterViewInit {\n\n constructor(\n private router: Router,\n private lmNavigationService: LMNavigationService\n ) {}\n\n ngAfterViewInit() {\n this.redirect(this.router.url);\n }\n\n redirect(navigationUrl: string) {\n const delimiter = navigationUrl.indexOf('?') === -1 ? '?' : '&';\n navigationUrl += delimiter + 'output=spec';\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { replaceUrl: true });\n }\n\n checkSaveRequired() {\n return false;\n }\n\n public allowPageNavigation(): Promise | boolean {\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMBusyIndicatorService, LMContextService, LMLoggerService } from '@services/index';\nimport { LMErrorUtilService, LMUrlUtilService } from '@services/utils';\nimport { NavigationExtras, Router } from '@angular/router';\nimport {\n AppConstants,\n FormRequestType,\n LMContextUtilService,\n LMFormInvokeUrlPostContent,\n LMFormInvokeUrlResponse,\n LMGlobalUtilService\n} from '@utils/index';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, first } from 'rxjs/operators';\n\nexport interface LMNavigationOptions extends NavigationExtras {\n showAsPdf?: boolean;\n openNewTab?: boolean;\n}\n\n@Injectable()\nexport class LMNavigationService {\n\n constructor(\n private http: HttpClient,\n private router: Router,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmContextService: LMContextService,\n private lmContextUtilService: LMContextUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmErrorUtilService: LMErrorUtilService,\n ) {}\n\n private getActionNavigationUrl(navigationUrl: string): Observable { // todo ppatton type the Observable response\n // todo combine all \"getRedirectUrl\" functions into a single service.\n // todo should .first() be used here or where the implementing code subscribes?\n // any subscription to this should be called once and then closed\n return this.http.get(navigationUrl).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n private getFormInvokeUrl(formInvokeUrl: string, postContent: LMFormInvokeUrlPostContent) {\n return this.http.post(formInvokeUrl, postContent).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public runCreateActionNavigation(createActionUrl: string) {\n this.getActionNavigationUrl(createActionUrl).pipe(first()).subscribe(response => {\n // --------------------------------------------------------------------------------\n // todo based on the response may need to load the url in a dialog instead\n // of routing to a new component.\n // --------------------------------------------------------------------------------\n\n const relativeUrl = this.lmUrlUtilService.toRelativeUrl(response.redirectUrl, true, true);\n\n // ---------------------------------------------------------------------------\n // todo ppatton if navigating to a new route (form) then apply paging\n // information to the url so the form next/prev fun ctionality works.\n // ---------------------------------------------------------------------------\n this.router.navigateByUrl(relativeUrl);\n });\n }\n\n /**\n *\n * @param formInvokeUrl\n * @param formInvokeName\n * @param dataView\n */\n public runFormInvoke(navigationUrl: string, formInvokeName: string, dataView: LMDataView) {\n\n // No busy indicator in service. The components will show / hide the busy indicator\n // this.lmBusyIndicatorService.showBusyIndicator();\n\n // place into a timeout so the busyIndicator has a chance to show immediately.\n setTimeout(() => {\n const postContent: LMFormInvokeUrlPostContent = {\n requestType: FormRequestType.FormInvoke,\n formInvokeName,\n dataView\n };\n\n this.getFormInvokeUrl(navigationUrl, postContent).subscribe((response: LMFormInvokeUrlResponse) => {\n // --------------------------------------------------------------------------------\n // todo based on the response may need to load the url in a dialog instead\n // of routing to a new component.\n // --------------------------------------------------------------------------------\n if (response.redirectUrl) {\n this.lmGlobalUtilService.navigateByUrl(response.redirectUrl);\n\n } else if (response.status && response.status === AppConstants.VIEW_EXCEPTION) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status);\n }\n });\n });\n }\n\n public postProcessHttpUrl(url: string, openNewTab: boolean) {\n const option: string = (openNewTab) ? 'external' : '';\n if (url) {\n\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(url);\n } catch (e) {\n //noop\n }\n\n if (resource?.resourceType === 'navigation') {\n this.runNavigation(url, undefined, { openNewTab });\n } else {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n }\n\n public runNavigation(navigationUrl: string, pagingInfo?: LMPagingInfo, options?: LMNavigationOptions) {\n\n // No busy indicator in service. The components will show / hide the busy indicator\n // Causing issue in form load since the busy indicator is dismissed prematurely in form spec loaded\n // this.lmBusyIndicatorService.showBusyIndicator();\n\n // place into a timeout so the busyIndicator has a chance to show immediately.\n setTimeout(() => {\n navigationUrl = this.lmUrlUtilService.updateUrlParams(navigationUrl, { output: 'spec' });\n this.getActionNavigationUrl(navigationUrl).subscribe(response => {\n if (response.messageId && !response.redirectUrl) {\n // Common Inbox Integration - Direct route to open notification may return error messages.\n this.lmErrorUtilService.handleError(Soho.Locale.translate(response.messageId));\n return;\n } else if (response.status && response.status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.lmErrorUtilService.handleError(response.message, response.details, response.status, response.statusText);\n return;\n }\n\n let redirectUrl = (this.lmContextService.inMingleWidget())\n ? response.redirectUrl : this.lmUrlUtilService.toRelativeUrl(response.redirectUrl, true, true);\n if (pagingInfo) {\n // ---------------------------------------------------------------------------\n // if navigating to a new route (form) then apply paging\n // information to the url so the form next/prev functionality works.\n // ---------------------------------------------------------------------------\n const delimiter = redirectUrl.indexOf('?') === -1 ? '?' : '&';\n redirectUrl += delimiter + Object.entries(pagingInfo).map(pair => LMUrlUtilService.toUrlParam(pair, true)).join('&');\n }\n\n // For now, lets not retain page state if we run a navigation.\n // Need the check below because the open action on a list uses this api\n if (response.hasPositionTo) {\n this.lmContextService.setClearNextPageState(true);\n }\n\n // --------------------------------------------------------------------------------\n // todo based on the response may need to load the url in a dialog instead\n // of routing to a new component.\n // --------------------------------------------------------------------------------\n if (options && options.showAsPdf) {\n this.lmUrlUtilService.openFile(redirectUrl);\n } else if (redirectUrl.indexOf('output=pdf') > -1) {\n this.lmGlobalUtilService.navigate(redirectUrl, null, 'external');\n } else if (options && options.openNewTab) {\n redirectUrl = this.lmUrlUtilService.encodeParens(redirectUrl);\n this.lmUrlUtilService.openExternalUrl(redirectUrl);\n } else if (this.lmContextService.inMingleWidget()) {\n this.lmContextUtilService.sendDrillbackMessage(redirectUrl);\n } else if (redirectUrl.indexOf('/document/') > -1) {\n this.lmGlobalUtilService.navigate(redirectUrl);\n } else {\n this.lmGlobalUtilService.navigateByUrl(redirectUrl, options);\n }\n // this.lmBusyIndicatorService.hideBusyIndicator();\n });\n });\n }\n}\n","export * from './lm-notification.component';\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'lm-notification',\n templateUrl: 'lm-notification.component.html',\n styleUrls: [ './lm-notification.component.scss' ],\n animations: [\n trigger('notificationVisibility', [\n state('show', style({\n height: '*',\n visibility: 'visible'\n })),\n state('hide', style({\n height: '0px',\n visibility: 'collapse'\n })),\n transition('hide => show', [\n animate('1000ms ease-in')\n ]),\n transition('show => hide', [\n animate('1000ms ease-out')\n ]),\n ]),\n ],\n providers: []\n})\n\nexport class LMNotificationComponent {\n\n @Input() isVisible: boolean | false;\n @Input() notificationType: NotificationType | 'info';\n @Input() message: string;\n @Input() actionMessage: string;\n @Input() userObject: any;\n\n @Output() lmNotificationEvent = new EventEmitter();\n\n public onLMNotificationEvent(event: LMNotificationEvent): void {\n this.lmNotificationEvent.emit(event);\n }\n\n public handleClose(): void {\n this.isVisible = false;\n }\n\n public handleActionClick(): void {\n this.isVisible = false;\n this.onLMNotificationEvent({notificationType: this.notificationType, userObject: this.userObject})\n }\n}\n","\n
          \n {{message}}\n {{actionMessage}}\n

          \n \n
          \n
          \n\n\n
          \n {{message}}\n {{actionMessage}}\n

          \n \n
          \n
          \n\n\n
          \n {{message}}\n {{actionMessage}}\n

          \n \n
          \n
          \n\n\n
          \n {{message}}\n {{actionMessage}}\n

          \n \n
          \n
          \n","export * from './lm-page.component';\nexport * from './lm-page-pane-list.component';\nexport * from './lm-page-pane-dashboard.component';\nexport * from './lm-page-pane-menu.component';\nexport * from './lm-page-pane-multi-list.component';\nexport * from './lm-page-pane-url.component';\nexport * from './lm-page-panel.component';\nexport * from './lm-page-panel-helper.service';\nexport * from './lm-page-spec-util.service';\nexport * from './lm-page-toolbar.service';\n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMDashboardViewComponent } from '@dashboard/lm-dashboard-view.component';\nimport { Observable, of as observableOf } from 'rxjs';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { LMListTransactionEvent, LMRefreshRequest } from '@app/components';\nimport { LMContextService } from '@app/services';\nimport { LMConditionUtilService } from '@app/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[lm-page-pane-dashboard-component]',\n templateUrl: './lm-page-pane-dashboard.component.html',\n styleUrls: [ 'lm-page-pane-dashboard.component.scss' ],\n\n})\nexport class LMPagePaneDashBoardComponent implements OnInit, AfterViewChecked {\n @ViewChild('dashboardViewComponent', { static: true }) dashboardViewComponent: LMDashboardViewComponent;\n\n @Input() columns: 3 | 4 = 3;\n\n @Input() pane: LMMultiPagePaneSpec;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this.m_fromDataView = fromDataView;\n }\n\n @Input() set messageRuleView(messageRuleView: LMDataView) {\n this.m_messageRuleView = messageRuleView;\n }\n\n get messageRuleView(): LMDataView {\n return this.m_messageRuleView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() panelContentDisplayed = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n\n public m_fromDataView: LMDataView;\n private m_messageRuleView: LMDataView;\n public panels: Array;\n public hasBackgroundImage = true;\n private refreshPending: boolean;\n\n constructor(\n public lmSpecService: LMSpecService,\n private lmConditionService: LMConditionUtilService) {\n }\n\n ngOnInit() {\n this.transformPanesToLandmarkPanels();\n }\n\n ngAfterViewChecked() {\n if (this.refreshPending) {\n this.refreshPending = false;\n setTimeout(() => this.transformPanesToLandmarkPanels());\n }\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onDashboardContentDisplayed() {\n const event: LMContentDisplayedEvent = { pane: this.pane, args: null };\n this.panelContentDisplayed.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onPanelDataUpdated(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n sendBusinessContext(contextMsgs?: any) {\n // stub this out to avoid a js error\n // TODO jerry or cheryl can you implement if needed\n // got here because lm-page-panel.component.getPagePaneListComponents is\n // a list of any objects.\n }\n\n public isModified(): boolean {\n if (this.dashboardViewComponent) {\n return this.dashboardViewComponent.isModified();\n }\n\n return false;\n }\n\n public refresh(refreshRequest?: LMRefreshRequest): Observable {\n this.refreshPending = true;\n\n if (this.dashboardViewComponent) {\n return this.dashboardViewComponent.refresh(refreshRequest);\n }\n\n return observableOf(true);\n }\n\n public save(): Observable {\n if (this.dashboardViewComponent && this.dashboardViewComponent.isModified()) {\n return this.dashboardViewComponent.runSaveAction();\n }\n\n return observableOf(false); // safety\n }\n\n private transformPanesToLandmarkPanels() {\n\n if (this.pane.panes) {\n this.panels = [];\n const useTwelveColumnGrid = this.pane.useTwelveColumnGrid;\n for (let i = 0, len = this.pane.panes.length; i < len; i++) {\n const pane: LMPagePaneSpec = this.pane.panes[ i ];\n let isVisible = true;\n let isValid = true;\n\n if (this.m_messageRuleView) {\n if (pane.visibility) {\n if (!this.lmConditionService.isValid([ pane.visibility ], this.m_messageRuleView)) {\n isVisible = false;\n }\n }\n if (pane.validity) {\n if (!this.lmConditionService.isValid([ pane.validity ], this.m_messageRuleView)) {\n isValid = false;\n }\n }\n }\n\n const title = this.pane.panes[ i ].paneTitle.resourceValue;\n\n switch (pane.paneType) {\n case 'list':\n this.panels.push({\n id: pane.paneId,\n automationId: pane.paneAutomationId,\n title,\n content: '',\n isVisible,\n isValid,\n index: i,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n listSpec: pane.listSpec,\n type: pane.paneType,\n overviewNavigation: pane.overviewNavigation,\n displayChart: pane.displayChart,\n widgetWidth: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewWidth),\n widgetHeight: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewHeight),\n spanningColumns: useTwelveColumnGrid ? pane.twelveColumnGridSpan : undefined\n });\n break;\n case 'url':\n this.panels.push({\n id: pane.paneId,\n automationId: pane.paneAutomationId,\n title,\n content: '',\n url: this.pane.panes[ i ].url,\n isVisible,\n isValid,\n index: i,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n listSpec: pane.listSpec,\n type: pane.paneType,\n overviewNavigation: pane.overviewNavigation,\n displayChart: pane.displayChart,\n widgetWidth: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewWidth),\n widgetHeight: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewHeight),\n spanningColumns: useTwelveColumnGrid ? pane.twelveColumnGridSpan : undefined\n });\n break;\n case 'menuPanel':\n this.panels.push({\n id: pane.paneId,\n automationId: pane.paneAutomationId,\n title,\n content: '',\n isVisible,\n isValid,\n index: i,\n initialized: false,\n loaded: false,\n reload: false,\n disabled: false,\n hidden: false,\n type: pane.paneType,\n layout: pane.pane.menuPanelLayout,\n overviewNavigation: null,\n widgetWidth: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewWidth),\n widgetHeight: useTwelveColumnGrid ? undefined : this.lmSpecService.toWidgetSizeToType(pane.dashboardViewHeight),\n spanningColumns: useTwelveColumnGrid ? pane.twelveColumnGridSpan : undefined\n });\n break;\n default:\n break;\n }\n }\n }\n }\n}\n","\n \n\n\n \n\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {\n LMListComponent,\n LMListRowActivationEvent,\n LMListSelectionEvent,\n LMListTransactionEvent,\n} from '@list/lm-list.component';\nimport {AppConstants} from '@utils/app.constants';\nimport {Observable, of} from 'rxjs';\nimport {LMUrlInfoBuilderService} from '@services/lm-url-info-builder.service';\nimport {LMRefreshRequest} from \"@app/components\";\n\nexport class LMPaneListSelectionEvent {\n constructor(\n public listComponent: LMListComponent,\n public selectedRow: LMListRowData,\n public pagePaneListComponent: LMPagePaneListComponent\n ) {}\n}\n\nexport class LMPaneRowActivatedEvent {\n constructor(\n public listComponent: LMListComponent,\n public activatedEvent: LMListRowActivatedEvent,\n public pagePaneListComponent: LMPagePaneListComponent\n ) {}\n}\n\nexport class LMPaneListSendContextMessageEvent {\n constructor(\n public contextMsgs: any,\n public listComponent: LMListComponent,\n public pagePaneListComponent: LMPagePaneListComponent\n ) {}\n}\n\n@Component({\n selector: '[lm-page-pane-list-component]',\n templateUrl: './lm-page-pane-list.component.html',\n styleUrls: ['lm-page-pane-list.component.scss']\n})\nexport class LMPagePaneListComponent implements OnInit {\n // forwardRef to make tests work\n @ViewChild(forwardRef(() => LMListComponent)) lmListComponent;\n\n @Input() panel: LMPagePanelSpec;\n @Input() pane: LMMultiPagePaneSpec;\n @Input() listSpec: LMListSpec;\n @Input() fromDataView: LMDataView;\n @Input() overrideListTitle: string;\n @Input() pageHasContextForm = false;\n @Input() pageHasTabs = false;\n\n @Output() paneListContentDisplayed = new EventEmitter();\n\n @Output() paneListRowSelected = new EventEmitter();\n @Output() paneListRowActivated = new EventEmitter();\n @Output() paneListRowDeactivated = new EventEmitter();\n @Output() paneContentModified = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n @Output() paneListSendContextMessageEvent = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n\n private isInitialBusinessMessage = true;\n public listUrlInfo: LMListUrlInfo;\n\n constructor(private lmUrlInfoBuilderService: LMUrlInfoBuilderService) {}\n\n ngOnInit(): void {\n this.listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(this.listSpec, { pagePaneSpec: this.pane as LMPagePaneSpec });\n }\n\n public getPaneSpec(): LMMultiPagePaneSpec {\n return this.pane;\n }\n\n public isModified(): boolean {\n if (!this.lmListComponent) {\n return false;\n }\n return this.lmListComponent.isModified();\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n if (this.lmListComponent) {\n return this.lmListComponent.refresh(request);\n } else {\n return of (true)\n }\n }\n\n public save(): Observable {\n return new Observable(observer => {\n if (this.lmListComponent && this.isModified()) {\n this.lmListComponent.runSaveAction(AppConstants.STANDARD_SAVE, observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n onListRowSelected(listSelectionEvent: LMListSelectionEvent) {\n const paneListSelectionEvent: LMPaneListSelectionEvent = new LMPaneListSelectionEvent(\n listSelectionEvent.eventSource, listSelectionEvent.selectedRows[0], this);\n this.paneListRowSelected.emit(paneListSelectionEvent);\n }\n\n onListRowActivated(rowActivationEvent: LMListRowActivationEvent) {\n const paneListSelectionEvent = new LMPaneRowActivatedEvent(rowActivationEvent.eventSource, rowActivationEvent.activatedEvent, this);\n this.paneListRowActivated.emit(paneListSelectionEvent);\n }\n\n onListRowDeactivated(rowActivationEvent: LMListRowActivationEvent) {\n const paneListSelectionEvent = new LMPaneRowActivatedEvent(rowActivationEvent.eventSource, rowActivationEvent.activatedEvent, this);\n this.paneListRowDeactivated.emit(paneListSelectionEvent);\n }\n\n onUpdateToolbarStateEvent(event: any) {\n this.updateToolbarStateEvent.emit();\n }\n\n onSendContextMessageEvent(event: any) {\n let needSendBusinessMessage = true;\n if (this.panel && this.panel.panelType === 'MultiPanePanel') {\n if (!this.pane.isRelativePanel && this.isInitialBusinessMessage) {\n const firstListPane = this.getFirstListPane();\n if (firstListPane && firstListPane.paneId !== this.pane.paneId) {\n needSendBusinessMessage = false;\n }\n }\n }\n\n if (needSendBusinessMessage) {\n const paneListSendContextMessageEvent = new LMPaneListSendContextMessageEvent(event, this.lmListComponent, this);\n this.paneListSendContextMessageEvent.emit(paneListSendContextMessageEvent);\n }\n this.isInitialBusinessMessage = false;\n }\n\n onContentModified(event: LMListFieldChangedEvent) {\n this.paneContentModified.emit(event);\n }\n\n onPanelDataUpdated(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n getFirstListPane(): LMMultiPagePaneSpec {\n for (let i = 0; i < this.panel.panes.length; i++) {\n const pane = this.panel.panes[ i ];\n if (pane.paneType === 'ListPanel') {\n return pane;\n }\n }\n return null;\n }\n\n onListDisplayed(args: any) {\n const event: LMContentDisplayedEvent = {pane: this.pane, args}\n this.paneListContentDisplayed.emit(event);\n }\n\n savePaneState() {\n if (this.lmListComponent) {\n this.lmListComponent.saveComponentState(true);\n }\n }\n\n sendBusinessContext(contextMsgs?: any) {\n if (this.lmListComponent) {\n this.lmListComponent.sendBusinessContext(contextMsgs);\n }\n }\n}\n","\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\n\n@Component({\n selector: '[lm-page-pane-menu-component]', // tslint:disable-line\n templateUrl: './lm-page-pane-menu.component.html'\n})\nexport class LMPagePaneMenuComponent implements AfterViewInit, OnInit {\n @Input() panel: LMMultiPagePaneSpec;\n @Input() set messageRuleView(messageRuleView: LMDataView) { // optional if used in a page panel\n this.m_messageRuleView = messageRuleView;\n }\n\n @Output() panelContentDisplayed = new EventEmitter();\n\n public m_messageRuleView: LMDataView = null;\n public panels: Array;\n public formUrlInfo: LMFormUrlInfo;\n public formSpec: LMFormSpec;\n\n constructor(\n private lmUniqueIdService: LMUniqueIdService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService\n ) {}\n\n ngOnInit() {\n const menuFormPanelId = this.buildMenuPanelFormId()\n this.formSpec = {\n formElementId: menuFormPanelId,\n busFormSpec: this.buildBusFormSpec(),\n busClassSpec: this.buildBusClassSpec(),\n resourceId: menuFormPanelId\n };\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.formSpec);\n }\n\n ngAfterViewInit() {\n }\n\n onFormRendered(args: any) {\n const event: LMContentDisplayedEvent = { pane: this.panel, args };\n this.panelContentDisplayed.emit(event);\n }\n\n buildBusFormSpec(): LMBusFormSpec {\n\n const busFormLayoutSpec: LMBusFormLayoutSpec = {\n layout: this.panel.pane.menuPanelLayout\n };\n\n const messageRule: LMMessageRule = {\n resourceValue: '',\n };\n\n const busFormSpec: LMBusFormSpec = {\n busFormLayoutSpec,\n name: '',\n fields: {},\n title: messageRule,\n formType: 'Menu',\n effectiveDateField: {},\n effectiveDateFieldId: '',\n reasonCodeFieldId: '',\n actionCommentFieldId: '',\n effectiveThroughFieldId: '',\n correctionCommentFieldId: '',\n openActionRestricted: false,\n implementsDashBoardView: false,\n };\n return busFormSpec;\n }\n\n buildBusClassSpec(): LMBusClassSpec {\n\n const busClassSpec: LMBusClassSpec = {\n actions: [],\n actionSpec: {},\n implAuditing: false,\n implEffectiveDated: false,\n isBusClass: false,\n isBusTask: false,\n name: 'menuPanel',\n implementsOrgChartView: false,\n };\n return busClassSpec;\n }\n\n private buildMenuPanelFormId() {\n return this.lmUniqueIdService.uniqueId([ this.panel.paneId, 'MenuPanel' ]);\n }\n}\n","\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {\n LMListComponent,\n LMListTransactionEvent,\n LMPanelTransactionEvent,\n LMRefreshRequest\n} from '@app/components';\nimport { LMFormatUtilService, LMUrlInfoBuilderService } from '@app/services';\nimport { LMConditionUtilService, LMMultiListSaveWorker } from '@app/utils';\nimport { forkJoin, Observable, Observer } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[lm-page-pane-multi-list]',\n templateUrl: 'lm-page-pane-multi-list.component.html',\n styleUrls: [ 'lm-page-pane-multi-list.component.scss' ]\n})\nexport class LMPagePaneMultiListComponent {\n @ViewChildren('LMListComponent') listComponents: QueryList;\n\n @Input() panel: LMPagePanelSpec;\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this._numberVisibleLists = 0;\n this.listViewData = this.panel.panes.map(list => this.toListViewData(list));\n }\n\n get fromDataView(): LMDataView {\n return this._fromDataView;\n }\n\n @Output() contentModified = new EventEmitter();\n @Output() formPanelContentLoaded = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() specialActionToolbarButtonEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _fromDataView: LMDataView;\n public listViewData: Array;\n\n private _numberVisibleLists = 0;\n\n constructor(\n private lmFormatUtilService: LMFormatUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private elementRef: ElementRef\n ) { }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n public get numberVisibleLists(): number {\n return this._numberVisibleLists;\n }\n\n private toListViewData(section: LMMultiListSectionSpec): LMListViewData {\n if (!section?.hasOwnProperty('listSpec')) {\n return null;\n }\n\n const listViewData: LMListViewData = {\n listUrlInfo: this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(section.listSpec),\n listSpec: section.listSpec\n };\n\n if (section.panelText) {\n listViewData.panelText = section.panelText;\n }\n\n if (section.showLines) {\n listViewData.listSpec.busListSpec.showLines = section.showLines;\n }\n\n listViewData.isVisible = (section.visibility)\n ? this.lmConditionUtilService.isValid([ section.visibility ], this._fromDataView)\n : true;\n\n if (listViewData.isVisible) {\n this._numberVisibleLists++;\n }\n\n if (section.specialActions) {\n listViewData.specialActions = section.specialActions;\n }\n\n return listViewData;\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onListDisplayed(event: any) {\n this.formPanelContentLoaded.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onSpecialActionToolbarButtonEvent(event: LMSpecialActionToolbarButtonEvent) {\n this.specialActionToolbarButtonEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMListTransactionEvent) {\n const originatingId = this.panel.id;\n const originatingList = event.eventSource.listId;\n const panelTransactionEvt = new LMPanelTransactionEvent(originatingId);\n panelTransactionEvt.originatingList = originatingList;\n this.panelTransactionEvent.emit(panelTransactionEvt);\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n const lists = this.listComponents ? this.listComponents.toArray() : [];\n return new Observable(observer => {\n const refreshCalls: Observable[] = lists.filter(list => list.listId !== request?.originatingSourceId)\n .map((list: LMListComponent) => list.refresh());\n\n // console.log('multilist to be refresh:' + refreshCalls.length);\n\n forkJoin(refreshCalls).subscribe(value => {\n // console.log('multilist to be forkJoin:');\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n public save(callBack: Observer) {\n this.runSaveList().subscribe(\n (continueOn: boolean) => {\n callBack.next(continueOn);\n callBack.complete();\n });\n }\n\n trackByListSpec(index: number, list: LMListViewData): LMListSpec {\n return list.listSpec;\n }\n\n private runSaveList(): Observable {\n const listComponents: LMListComponent[] = this.listComponents.toArray();\n const saveWorker: LMMultiListSaveWorker = new LMMultiListSaveWorker(listComponents);\n return saveWorker.start();\n }\n\n public isDirty(): boolean {\n const listComponents: LMListComponent[] = this.listComponents.toArray();\n\n for (let i = 0, l = listComponents.length; i < l; i++) {\n if (listComponents[ i ].isModified()) {\n return true;\n }\n }\n return false;\n }\n\n saveListComponentState(): void {\n this.listComponents.toArray().forEach(listComponent => listComponent.saveComponentState(true));\n }\n\n clearListComponentState(): void {\n this.listComponents.toArray().forEach(listComponent => listComponent.clearComponentState(true));\n }\n}\n","\n \n \n \n\n\n","import { Component, EventEmitter, Input, Output, ViewChild, OnInit } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMPanelTransactionEvent } from '@form/services';\nimport { LMListTransactionEvent } from '@list/lm-list.component';\nimport { LMContextService } from '@services/lm-context.service';\nimport { AppConstants } from '@utils/app.constants';\n\n// automationId=\"{{panel.automationId}}\"\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[lm-page-pane-url-component]',\n template: `\n \n `,\n styleUrls: ['./lm-page-pane-url.component.scss'],\n})\nexport class LMPagePaneUrlComponent implements OnInit {\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent: LMHtmlUrlDocComponent;\n\n @Input() public automationId: string;\n\n // todo change this to be @Input() panel: LMMultiPagePaneSpec; and call\n // this.setUrl() in ngOnInit.\n // The panel should be set before ngOnInit is called and should not\n // change once the component is constructed.\n @Input() set panel(panel: LMMultiPagePaneSpec) {\n this._panel = panel;\n this.setUrl();\n }\n get panel(): LMMultiPagePaneSpec {\n return this._panel;\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n // ----------------------------------------------------------------------\n // OUTPUTS\n // ----------------------------------------------------------------------\n @Output() landmarkCustomReady = new EventEmitter();\n @Output() panelContentDisplayed = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n\n public url: string = undefined;\n private _fromDataView: LMDataView = null;\n private _panel: LMMultiPagePaneSpec = null;\n\n public testVersion1: boolean;\n\n constructor(\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService\n ) {}\n\n ngOnInit() {\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n }\n\n onLandmarkCustomReady(event: any) {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n onLandmarkApiLoaded(event: any) {\n this.onPanelContentDisplayed({});\n }\n\n onPanelContentDisplayed(args: any) {\n const event: LMContentDisplayedEvent = { pane: this.panel, args };\n this.panelContentDisplayed.emit(event);\n }\n\n onNotifyUrlTransactionComplete(event: LMListTransactionEvent) {\n this.panelDataUpdated.emit();\n }\n\n setUrl() {\n if (this.panel) {\n this.url = this.lmFormatUtilService.formatMessageRule(this.panel.pane.httpUrl, this._fromDataView);\n }\n }\n\n onHtmlUrlDisplayed(event: any) {\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMPagePanelHelperService {\n public getPagePaneClasses(panel: LMPagePanelSpec, pane: LMMultiPagePaneSpec): string {\n const type = panel.panelLayoutType;\n const paneNum = parseInt(pane.paneName.substring(4), 10);\n\n switch (type) {\n case 1:\n if (paneNum === 1) {\n return 'pane left no-scroll';\n }\n if (paneNum === 3) {\n return 'pane right no-scroll';\n }\n break;\n case 2:\n if (paneNum === 1) {\n return 'pane top no-scroll';\n }\n if (paneNum === 2) {\n return 'pane bottom no-scroll';\n }\n break;\n case 3:\n if (paneNum === 1) {\n return 'pane top-left no-scroll';\n }\n if (paneNum === 2) {\n return 'pane bottom-left no-scroll';\n }\n if (paneNum === 3) {\n return 'pane right no-scroll';\n }\n break;\n case 4:\n if (paneNum === 2) {\n return 'pane left no-scroll';\n }\n if (paneNum === 3) {\n return 'pane top-right no-scroll';\n }\n if (paneNum === 4) {\n return 'pane bottom-right no-scroll';\n }\n break;\n case 5:\n if (paneNum === 1) {\n return 'pane top no-scroll';\n }\n if (paneNum === 2) {\n return 'pane bottom-left no-scroll';\n }\n if (paneNum === 4) {\n return 'pane bottom-right no-scroll';\n }\n break;\n case 6:\n if (paneNum === 1) {\n return 'pane top-left no-scroll';\n }\n if (paneNum === 3) {\n return 'pane top-right no-scroll';\n }\n if (paneNum === 4) {\n return 'pane bottom no-scroll';\n }\n break;\n case 7:\n if (paneNum === 1) {\n return 'pane top-left no-scroll';\n }\n if (paneNum === 2) {\n return 'pane bottom-left no-scroll';\n }\n if (paneNum === 3) {\n return 'pane top-right no-scroll';\n }\n if (paneNum === 4) {\n return 'pane bottom-right no-scroll';\n }\n break;\n }\n\n return 'pane single no-scroll';\n }\n\n public reorderDependentPanes(pagePanelSpec: LMPagePanelSpec): Array {\n const orderedPanes: Array = new Array(0);\n const processedPaneList: Array = new Array(0);\n\n for (const pane of pagePanelSpec.panes) {\n // continue if already processed\n if (processedPaneList.indexOf(pane.paneId) > -1) {\n continue;\n }\n\n // skip pane if it is a menu panel layout. not supported yet.\n if (pane.paneType === 'MenuPanel') {\n continue;\n }\n\n // not a dependent pane\n if (!pane.isRelativePanel) {\n // added to order panes list and mark as processed.\n orderedPanes.push(pane);\n processedPaneList.push(pane.paneId);\n\n // if there are dependent panes process them before\n // moving on to the next pane ins the panel.panes array.\n if (pane.hasDependentPanels) {\n this.processDependentPanes(pagePanelSpec, pane, orderedPanes, processedPaneList);\n }\n }\n }\n\n return orderedPanes;\n }\n\n private processDependentPanes(\n pagePanelSpec: LMPagePanelSpec,\n multiPanePanelSpec: LMMultiPagePaneSpec,\n orderedPanes: Array,\n processedPaneList: Array): void {\n const depPanes: Array = this.getDependentPagePanes(pagePanelSpec, multiPanePanelSpec.paneId);\n\n for (const depMultiPaneSpec of depPanes) {\n orderedPanes.push(depMultiPaneSpec);\n processedPaneList.push(depMultiPaneSpec.paneId);\n\n if (depMultiPaneSpec.hasDependentPanels) {\n this.processDependentPanes(pagePanelSpec, depMultiPaneSpec, orderedPanes, processedPaneList);\n }\n }\n }\n\n private getDependentPagePanes(pagePanelSpec: LMPagePanelSpec, paneId: string): Array {\n const depPaneArray: Array = new Array(0);\n\n const multiPane: LMMultiPagePaneSpec = this.getPaneById(pagePanelSpec, paneId);\n for (const depPaneId of multiPane.pane.depPanes) {\n depPaneArray.push(this.getPaneById(pagePanelSpec, depPaneId));\n }\n\n return depPaneArray;\n }\n\n private getPaneById(pagePanelSpec: LMPagePanelSpec, paneId: string): LMMultiPagePaneSpec {\n for (const pane of pagePanelSpec.panes) {\n if (pane.paneId === paneId) {\n return pane;\n }\n }\n\n return null;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { LMListSelectionEvent } from '@list/lm-list.component';\nimport {\n LMPagePaneListComponent,\n LMPaneListSelectionEvent,\n LMPaneListSendContextMessageEvent,\n LMPaneRowActivatedEvent\n} from './lm-page-pane-list.component';\nimport { LMPagePaneDashBoardComponent } from './lm-page-pane-dashboard.component';\nimport { LMPagePanelHelperService } from './lm-page-panel-helper.service';\nimport { Observable, of as observableOf } from 'rxjs';\nimport { LMListSpecUtilService } from '@list/services/lm-list-spec-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { LMPanelTransactionEvent, LMRefreshRequest } from '@app/components';\n\n@Component({\n selector: 'lm-page-panel',\n templateUrl: './lm-page-panel.component.html',\n styleUrls: [ 'lm-page-panel.component.scss' ],\n providers: [ LMPagePanelHelperService ],\n})\nexport class LMPagePanelComponent implements OnInit, AfterViewInit {\n\n @HostBinding('class.lm-page-multi-pane-panel') get classMultiPanePanel() {\n return this.isMultiPanePanel();\n }\n\n @HostBinding('class.lm-page-single-pane-panel') get classSinglePanePanel() {\n return !this.isMultiPanePanel();\n }\n\n @HostBinding('style.position') get position() {\n return 'relative';\n }\n\n @HostBinding('style.overflow') get overflow() {\n return this.pageHasContextForm ? '' : 'auto';\n }\n\n @HostBinding('class.is-vertical-split') get isVerticalSplitClass() {\n return this.isVerticalSplit;\n }\n\n // ---------------------------------------------------\n // INPUTS\n // ---------------------------------------------------\n @Input() panel: LMPagePanelSpec;\n @Input() needsReload: boolean;\n @Input() messageRuleView: LMDataView;\n @Input() overrideListTitle: string;\n @Input() insideTabs = false;\n @Input() isSinglePanePage = false;\n @Input() pageHasContextForm = false;\n @Input() pageHasTabs = false;\n\n /**\n * Whether or not this tabs has been visited. Set this to true\n * when a tab is selected to avoid building content until it comes\n * into view.\n */\n @Input() set activated(activated: boolean) {\n // activate panel to display it in the template\n this.panelActivated = activated;\n this.sendBusinessContext();\n\n if (this.isMultiPanePanel()) {\n // -------------------------------------------------------------------------------------\n // need to call this in a secondary timeout that takes place in 40ms. Starting the busy\n // indicator takes 20ms by default so any code should be executed after that otherwise\n // angular will block the busy indicator.\n // -------------------------------------------------------------------------------------\n setTimeout(() => this.buildDependentListMap(), 40);\n }\n }\n\n get activated(): boolean {\n return this._activated;\n }\n\n // ---------------------------------------------------\n // OUTPUTS\n // ---------------------------------------------------\n @Output() rowsSelected: EventEmitter = new EventEmitter();\n @Output() panelContentDisplayed = new EventEmitter();\n @Output() updateToolbarStateEvent = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelContentModified = new EventEmitter();\n @Output() panelDataUpdated = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n\n // ---------------------------------------------------\n // CHILDREN VARIABLES\n // ---------------------------------------------------\n @ViewChildren(LMPagePaneListComponent) pagePaneListComponents: QueryList;\n @ViewChildren(LMPagePaneDashBoardComponent) pagePaneDashBoardComponents: QueryList;\n\n // ---------------------------------------------------\n // MEMBER VARIABLES\n // ---------------------------------------------------\n public orderedUIPanes: Array = [];\n public onMobile = false;\n public isVerticalSplit: boolean;\n public multiPanePanel = false;\n public dashboardPanePanel = false;\n public menuPanel = false;\n public singleUrlPanePanel = false;\n public singlePanePanel = false;\n public multiListPanel = false;\n public singlePane: LMPagePaneSpec;\n public panelActivated = false;\n\n private orderedPanes: Array;\n /** array of paneIds */\n private undisplayedPaneIdList: Array;\n private _activated = false;\n private pagePaneMap: Map = new Map();\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private lmPagePanelHelperService: LMPagePanelHelperService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmContextService: LMContextService,\n private domSanitizer: DomSanitizer\n ) {\n this.onMobile = this.lmContextService.isMobileDevice();\n }\n\n // ---------------------------------------------------\n // LIFECYCLE METHODS\n // ---------------------------------------------------\n ngOnInit() {\n this.checkIfVerticalSplit();\n this.buildHTMLVariables();\n if (this.singlePanePanel && !this.menuPanel && !this.singleUrlPanePanel && !this.dashboardPanePanel) {\n this.singlePane = this.singlePanelPane;\n }\n }\n\n ngAfterViewInit() {\n if (this.isMultiPanePanel()) {\n /**\n * Reorder the panes so that they are built into the container in the order\n * of the cascading dependent lists. In that was once the container forces\n * the panels to be responsive and line up in a single column so that the\n * dependent panel are in order.\n * @type {Array}\n */\n this.orderedPanes = this.lmPagePanelHelperService.reorderDependentPanes(this.panel);\n this.undisplayedPaneIdList = this.orderedPanes.map(pane => pane.paneId);\n this.buildPanesHeightClasses();\n }\n }\n\n // ---------------------------------------------------\n // PUBLIC METHODS\n // ---------------------------------------------------\n public refresh(request?: LMRefreshRequest): Observable {\n // -----------------------------------------------------------------------------------\n // if no lists anywhere then return false for refreshed. That way the toolbar won't\n // try and update.\n // -----------------------------------------------------------------------------------\n const pagePaneComponentArray = this.getPagePaneListComponents(request);\n if (pagePaneComponentArray.length === 0) {\n return observableOf(true); // safety\n }\n\n // -----------------------------------------------------------------------------------\n // if only one list on this panel then return the refresh() Observable.\n // -----------------------------------------------------------------------------------\n if (pagePaneComponentArray.length === 1) {\n // console.log('pagepanel 1 list refresh');\n return pagePaneComponentArray[ 0 ].refresh(request);\n }\n\n // -----------------------------------------------------------------------------------\n // if multiple lists on this panel then go through each list and\n // call refresh on it. Once all these lists have been refreshed then notify the\n // caller of this function through it's returned Observable.\n // -----------------------------------------------------------------------------------\n return new Observable(observer => {\n const refreshedArray: boolean[] = Array(pagePaneComponentArray.length).fill(false);\n\n pagePaneComponentArray.forEach((pagePaneComponent, index) => {\n // console.log('pagepanel list refresh');\n pagePaneComponent.refresh(request).subscribe(refreshed => { // DPB need to test this path must be a mult-pane also use the forkJoin and do i need to refresh dependent list panes\n if (!refreshed) {\n observer.next(refreshed);\n }\n\n refreshedArray[ index ] = refreshed;\n if (refreshedArray.filter(refreshedElement => refreshedElement).length === refreshedArray.length) {\n observer.next(refreshed);\n }\n });\n });\n });\n }\n\n public isModified(): boolean {\n if (this.pagePaneListComponents.some(pagePaneListComponent => pagePaneListComponent.isModified())) {\n return true;\n }\n return this.pagePaneDashBoardComponents.some(pagePaneDashBoardComponent => pagePaneDashBoardComponent.isModified());\n\n }\n\n public save(): Observable {\n // -----------------------------------------------------------------------------------\n // if no lists anywhere then return false for saved. That way the toolbar won't\n // try and update.\n // -----------------------------------------------------------------------------------\n const pagePaneComponentArray = this.getPagePaneListComponents();\n if (pagePaneComponentArray.length === 0) {\n return observableOf(false); // safety\n }\n\n // -----------------------------------------------------------------------------------\n // if only one list on this panel then return the save() Observable.\n // -----------------------------------------------------------------------------------\n if (pagePaneComponentArray.length === 1) {\n return pagePaneComponentArray[ 0 ].save();\n }\n\n // -----------------------------------------------------------------------------------\n // if multiple lists on this panel then go through each list and\n // call save on it. Once all these lists have been saved then notify the\n // caller of this function through it's returned Observable.\n // -----------------------------------------------------------------------------------\n return new Observable(observer => {\n const savedArray: boolean[] = Array(pagePaneComponentArray.length).fill(false);\n\n pagePaneComponentArray.forEach((pagePaneComponent, index) => {\n pagePaneComponent.save().subscribe(saved => {\n if (!saved) {\n observer.next(saved);\n }\n\n savedArray[ index ] = saved;\n if (savedArray.filter(savedElement => savedElement).length === savedArray.length) {\n observer.next(saved);\n }\n });\n });\n });\n }\n\n public sendBusinessContext(): void {\n const pagePaneComponentArray = this.getPagePaneListComponents();\n if (pagePaneComponentArray.length === 0) {\n return; // safety\n } else if (pagePaneComponentArray.length === 1) {\n pagePaneComponentArray[0].sendBusinessContext();\n } else {\n const pagePane = pagePaneComponentArray.find(pane => pane.panel.panelType === 'MultiPanePanel');\n if (pagePane) {\n const paneSpec: LMMultiPagePaneSpec = pagePane.pane;\n const parentPane = this.getParentPane(paneSpec);\n if (parentPane) {\n parentPane.sendBusinessContext();\n }\n }\n }\n }\n\n // ---------------------------------------------------\n // EVENT HANDLERS\n // ---------------------------------------------------\n onPanelContentDisplayed(event: LMContentDisplayedEvent) {\n if (!this.isDashboardPanePanel()) {\n if (this.undisplayedPaneIdList && event.pane) {\n // filter out the completed paneId.\n this.undisplayedPaneIdList = this.undisplayedPaneIdList.filter(paneId => paneId !== event.pane.paneId);\n\n // if there are still undisplayed panels then return\n if (this.undisplayedPaneIdList.length > 0) {\n return;\n }\n }\n }\n\n this.panelContentDisplayed.emit(event);\n }\n\n onUpdateToolbarStateEvent() {\n this.updateToolbarStateEvent.emit();\n }\n\n public onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onContentModified(event: any) {\n this.panelContentModified.emit(event);\n }\n\n onPaneContentModified(fieldChangedEvent: LMListFieldChangedEvent) {\n this.panelContentModified.emit(fieldChangedEvent);\n }\n\n onPanelDataUpdated(event: LMPanelTransactionEvent) {\n this.panelDataUpdated.emit(event);\n }\n\n onPaneListRowSelected(paneListSelectionEvent: LMPaneListSelectionEvent) {\n if (!this.isMultiPanePanel() || paneListSelectionEvent.listComponent === undefined) {\n return;\n }\n\n const paneSpec: any = paneListSelectionEvent.pagePaneListComponent.getPaneSpec();\n const selectionMode: SohoDataGridSelectable = paneListSelectionEvent.listComponent.displayType === 'chart' ?\n 'single' : this.lmListSpecUtilService.getSelectionMode(paneListSelectionEvent.listComponent.listSpec);\n\n if (selectionMode !== 'single') {\n // if not single select then onListRowActivated will be messaged instead.\n return;\n }\n\n let fromDataView: any = null;\n\n if (paneListSelectionEvent.selectedRow.idx > -1) {\n const rowIndex: number = paneListSelectionEvent.selectedRow.idx;\n fromDataView = paneListSelectionEvent.listComponent.getDataView(rowIndex);\n }\n\n this.updateDependentPanes(paneSpec, fromDataView);\n }\n\n onPaneListRowActivated(panelRowActivatedEvent: LMPaneRowActivatedEvent) {\n if (!this.isMultiPanePanel()) {\n return;\n }\n\n const paneSpec: any = panelRowActivatedEvent.pagePaneListComponent.getPaneSpec();\n const selectionMode: SohoDataGridSelectable = this.lmListSpecUtilService.getSelectionMode(panelRowActivatedEvent.listComponent.listSpec);\n if (selectionMode !== 'mixed') {\n return;\n }\n\n let fromDataView: any;\n\n if (panelRowActivatedEvent.activatedEvent.row > -1) {\n const rowIndex: number = panelRowActivatedEvent.activatedEvent.row;\n fromDataView = panelRowActivatedEvent.listComponent.getDataView(rowIndex);\n } else {\n fromDataView = null;\n }\n\n this.updateDependentPanes(paneSpec, fromDataView);\n }\n\n onPaneListRowDeactivated(panelRowActivatedEvent: LMPaneRowActivatedEvent) {\n if (!this.isMultiPanePanel()) {\n return;\n }\n\n const paneSpec: any = panelRowActivatedEvent.pagePaneListComponent.getPaneSpec();\n const fromDataView: any = null;\n\n if (panelRowActivatedEvent.activatedEvent.row === -1) {\n this.updateDependentPanes(paneSpec, fromDataView);\n } else if (panelRowActivatedEvent.listComponent.listSpec.busListSpec.selection !== 'multiple') {\n return;\n }\n\n // todo: need to disable and clear related lists when selection is 'multiple' and onPaneListRowDeactivated - Phillip 5/9/17\n }\n\n onPaneListSendContextMessageEvent(paneListSendContextMessageEvent: LMPaneListSendContextMessageEvent) {\n if (this.panel && this.panel.panelType === 'Panel') {\n this.sendContextMessageEvent.emit(paneListSendContextMessageEvent.contextMsgs);\n } else if (this.panel && this.panel.panelType === 'MultiPanePanel') {\n const paneSpec: LMMultiPagePaneSpec = paneListSendContextMessageEvent.pagePaneListComponent.getPaneSpec();\n if (paneSpec.isRelativePanel) {\n const parentPane = this.getParentPane(paneSpec);\n if (parentPane) {\n parentPane.sendBusinessContext(paneListSendContextMessageEvent.contextMsgs);\n }\n } else {\n this.sendContextMessageEvent.emit(paneListSendContextMessageEvent.contextMsgs);\n }\n }\n }\n\n // ---------------------------------------------------\n // PRIVATE METHODS\n // ---------------------------------------------------\n private getPagePaneListComponents(request?: LMRefreshRequest): Array {\n if (this.panel.panelType === 'Panel') {\n return this.pagePaneListComponents.toArray();\n }\n\n if (this.panel.panelType === 'MultiPanePanel') {\n return this.getOrderedPagePaneListComponents(request?.originatingSourceId);\n }\n\n if (this.panel.panelType === 'DashBoardPanel') {\n return this.pagePaneDashBoardComponents.toArray();\n }\n\n return [];\n }\n\n public isMultiPanePanel(): boolean {\n return (this.panel !== undefined && this.panel.panes !== undefined && this.panel.panes.length > 1);\n }\n\n public isSinglePanePanel(): boolean { // tslint:disable-line\n return (this.panel !== undefined && (this.panel.pane !== undefined || this.panel.panes.length === 1));\n }\n\n public isDashboardPanePanel(): boolean {\n return this.panel.panelType === 'DashBoardPanel';\n }\n\n public isMultiListPanel(): boolean {\n return this.panel?.panelType === 'MultiListPanel';\n }\n\n public get isMenuPanel(): boolean {\n if (this.isDashboardPanePanel()) {\n return false;\n }\n return (this.isSinglePanePanel() && (this.panel.pane && this.panel.pane.menuPanelLayout !== undefined)\n || (this.panel.panes && this.panel.panes.length === 1 && this.panel.panes[0].pane.menuPanelLayout !== undefined));\n }\n\n public get isSinglePaneURLPanel(): boolean {\n if (this.isDashboardPanePanel()) {\n return false;\n }\n return (this.isSinglePanePanel() && (this.panel.pane && this.panel.pane.paneType === 'URLPanel') ||\n (this.panel.panes && this.panel.panes.length === 1 && this.panel.panes[0].pane.paneType === 'URLPanel'));\n }\n\n public get singlePanelPane() {\n return this.panel.pane ? this.panel.pane : this.panel.panes[0].pane;\n }\n\n private buildDependentListMap(): void {\n this.pagePaneListComponents.forEach((item: LMPagePaneListComponent) => {\n this.pagePaneMap.set(item.getPaneSpec().paneId, item);\n });\n }\n\n private getDependentPagePaneListComponents(paneId: string): Array {\n let depPaneIdList = [];\n\n const pagePane = this.pagePaneMap.get(paneId);\n if (pagePane && pagePane.getPaneSpec().pane.depPanes) {\n depPaneIdList = pagePane.getPaneSpec().pane.depPanes;\n }\n\n const depPaneArray = this.pagePaneListComponents.filter((pagePaneListComponent: LMPagePaneListComponent) =>\n (depPaneIdList.indexOf(pagePaneListComponent.getPaneSpec().paneId) > -1));\n\n return depPaneArray;\n }\n\n // tslint:disable-next-line:no-unused-variable - method use in template\n public getClasses(pane: any): string {\n let classes = this.lmPagePanelHelperService.getPagePaneClasses(this.panel, pane);\n if (this.insideTabs) {\n classes += ' in-page-tab';\n }\n classes += ' scrollable-y';\n return classes;\n }\n\n public getVerticalSplitWidth(loc: number, index: number) {\n const width = index === 0 ? loc : 100 - loc;\n return this.domSanitizer.bypassSecurityTrustStyle(`calc(${width}% - 30px)`);\n }\n\n private buildHTMLVariables() {\n this.multiPanePanel = this.isMultiPanePanel();\n this.dashboardPanePanel = this.isDashboardPanePanel();\n this.menuPanel = this.isMenuPanel;\n this.singleUrlPanePanel = this.isSinglePaneURLPanel;\n this.singlePanePanel = this.isSinglePanePanel();\n this.multiListPanel = this.isMultiListPanel();\n }\n\n private buildPanesHeightClasses() {\n if (this.multiPanePanel && !this.dashboardPanePanel && !this.menuPanel && !this.singleUrlPanePanel && !this.multiListPanel) {\n // this.orderedUIPanes = JSON.parse(JSON.stringify(this.orderedPanes));\n this.orderedPanes.forEach((pane: LMMultiPagePaneSpec, index: number) => {\n this.orderedUIPanes.push({\n paneSpec: pane,\n classes: this.getClasses(pane),\n verticalSplitWidth: (this.isVerticalSplit ? this.getVerticalSplitWidth(this.panel.loc, index) : '')\n });\n });\n }\n }\n\n private updateDependentPanes(paneSpec: any, fromDataView: LMDataView) {\n const dependentPaneArray: Array = this.getDependentPagePaneListComponents(paneSpec.paneId);\n if (dependentPaneArray.length <= 0) {\n return; // noop\n }\n for (const dependentPane of dependentPaneArray) {\n dependentPane.fromDataView = fromDataView;\n }\n }\n\n private getParentPane(paneSpec: any): LMPagePaneListComponent {\n const pagePane = this.pagePaneMap.get(paneSpec.paneId);\n if (pagePane) {\n for (const panelPane of pagePane.panel.panes) {\n if (panelPane.hasDependentPanels && panelPane.pane.depPanes.length > 0) {\n const pane = panelPane.pane;\n for (const depPane of pane.depPanes) {\n if (depPane === paneSpec.paneId) {\n return this.pagePaneMap.get(panelPane.paneId);\n }\n }\n }\n }\n }\n\n return null;\n }\n\n private getOrderedPagePaneListComponents(excludeListId?: string): Array {\n const orderedListArray: Array = new Array(0);\n\n if (this.panel.panelType === 'MultiPanePanel') {\n this.pagePaneListComponents.forEach((item: LMPagePaneListComponent) => {\n if (item.getPaneSpec().hasDependentPanels) {\n this.processDependentPanels(item, orderedListArray);\n }\n\n if (!orderedListArray.includes(item)) {\n orderedListArray.push(item);\n }\n });\n }\n\n if (excludeListId) {\n return orderedListArray.filter(pagePanelList => excludeListId !== pagePanelList.lmListComponent.listId);\n } else {\n return orderedListArray;\n }\n }\n\n private processDependentPanels(pagePaneListComponent: LMPagePaneListComponent, orderedListArray: Array): void {\n const dependentPaneArray: Array = this.getDependentPagePaneListComponents(pagePaneListComponent.getPaneSpec().paneId);\n for (const item of dependentPaneArray) {\n if (item.getPaneSpec().hasDependentPanels) {\n this.processDependentPanels(item, orderedListArray);\n }\n\n if (!orderedListArray.includes(item)) {\n orderedListArray.push(item);\n }\n }\n }\n\n savePanelState() {\n this.pagePaneListComponents.toArray().forEach(pane => pane.savePaneState());\n }\n\n private checkIfVerticalSplit() {\n if (this.panel.noOfPanels === 2) {\n const panes = this.panel.panes.filter((pane) => pane.paneName === 'Pane1' || pane.paneName === 'Pane3');\n\n this.isVerticalSplit = panes.length === 2 && this.panel.loc !== undefined;\n }\n }\n}\n","\n\n\n
          \n \n\n \n
          \n
          \n\n \n
          \n \n
          \n
          \n
          \n\n \n \n
          \n
          \n\n \n \n\n \n
          \n
          \n\n \n
          \n
          \n\n \n
          \n
          \n\n
          \n
          \n","import { Injectable } from '@angular/core';\nimport { LMListSpecUtilService } from '@list/services';\n\n/**\n * Use this util service to compute things based off of a listSpec.\n */\n@Injectable()\nexport class LMPageSpecUtilService {\n\n constructor(private lmListSpecUtilService: LMListSpecUtilService) {}\n\n public allowUpdate(pageSpec: LMPageSpec): boolean {\n for (let i = 0, len = pageSpec.pageSpec.panels.length; i < len; i++) {\n const pagePanelSpec: LMPagePanelSpec = pageSpec.pageSpec.panels[i];\n\n if (pagePanelSpec.panelType === 'MultiPanePanel') {\n for (const pane of pagePanelSpec.panes) {\n if (pane.listSpec && this.lmListSpecUtilService.allowUpdate(pane.listSpec)) {\n return true;\n } else if (pane.pane && pane.pane.listSpec && this.lmListSpecUtilService.allowUpdate(pane.pane.listSpec)) {\n return true;\n }\n }\n\n } else if (pagePanelSpec.panelType === 'Panel') {\n const pane = pagePanelSpec.pane;\n if (pane.listSpec && this.lmListSpecUtilService.allowUpdate(pane.listSpec)) {\n return true;\n }\n\n } else if (pagePanelSpec.panelType === 'DashBoardPanel') {\n for (const pane of pagePanelSpec.panes) {\n if (pane.listSpec && this.lmListSpecUtilService.allowUpdate(pane.listSpec)) {\n return true;\n }\n }\n\n } else if (pagePanelSpec.panelType === 'WorkViewPanel') {\n // not implemented in 4.x\n }\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMToolbarServiceBase } from '@toolbar/lm-toolbar-service.base';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMToolbarServiceAdapter } from '@toolbar/lm-toolbar-service-adapter';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMPageSpecUtilService } from './lm-page-spec-util.service';\n\n@Injectable()\nexport class LMPageToolbarService extends LMToolbarServiceBase {\n\n constructor(\n private lmContextService: LMContextService,\n private lmPageSpecUtilService: LMPageSpecUtilService,\n public lmToolbarServiceAdapter: LMToolbarServiceAdapter\n ) {\n super(lmToolbarServiceAdapter); // must msg the base class constructor\n }\n\n public buildToolbarButtons(pageSpec: LMPageSpec, pageStateInfo: PageStateInfo): void {\n this.updateToolbar(pageSpec, pageStateInfo);\n }\n\n public updateToolbar(pageSpec: LMPageSpec, pageStateInfo: PageStateInfo) {\n const actionRefs: LMBusActionReference[] = this.getPageToolbarActionRefs(pageSpec);\n this.toolbarButtons = this.pageActionRefArrayToToolbarButtonArray(pageSpec, actionRefs);\n this._updateToolbarState(this.toolbarButtons, pageSpec, pageStateInfo);\n this.fireToolbarObservable();\n }\n\n private getPageToolbarActionRefs(pageSpec: LMPageSpec): LMBusActionReference[] {\n const context = this.lmContextService.getContext();\n const noPdfInConfig = context.configuredFeatures.indexOf(AppConstants.FEATURE_ExportToPDF) !== -1;\n const noPagePdf = context.hidePagePdf; // config parameter to revert pagePDF feature\n const actionReferenceArray = [];\n\n if (!noPagePdf && (!context.disallowExport && noPdfInConfig && this.displayPDFExportButton(pageSpec))) {\n actionReferenceArray.push(this.getStandardToolbarActions().printToPDF);\n }\n\n if (this.lmPageSpecUtilService.allowUpdate(pageSpec)) {\n actionReferenceArray.push(this.getStandardToolbarActions().save);\n }\n\n actionReferenceArray.push(this.getStandardToolbarActions().refresh);\n\n return actionReferenceArray;\n }\n\n private pageActionRefArrayToToolbarButtonArray(pageSpec: LMPageSpec, actionRefArray: LMBusActionReference[]): LMToolbarButton[] {\n return actionRefArray.map(actionRef =>\n this.buildLMToolbarButton(pageSpec, actionRef, true, false, false));\n }\n\n // If it is only MenuPanel do not show the PDF\n private displayPDFExportButton(pageSpec: LMPageSpec): boolean {\n\n if (pageSpec.pageSpec?.panels?.length === 1\n && (pageSpec.pageSpec?.panels[0]?.pane?.paneType === 'MenuPanel'\n || pageSpec.pageSpec?.panels[0]?.pane?.paneType === 'menuPanel')) {\n return false;\n }\n\n return true;\n }\n\n // Checks if panel is supported for PDF export\n private isPdfExportSupported(panel: LMPagePanelSpec): boolean {\n if (!panel) {\n return false;\n }\n\n if (panel.panelType === 'MultiPanePanel') {\n return true;\n }\n\n if (panel.panelType === 'Panel' && panel.pane.listSpec) {\n return !panel.pane.listSpec.busListSpec?.implementsOrgChartView;\n }\n\n if (panel.panelType === 'DashBoardPanel') {\n for (const pane of panel.panes) {\n if (!pane.listSpec) {\n return false;\n }\n\n if (pane.listSpec.busListSpec?.implementsOrgChartView) {\n return false;\n }\n }\n return true;\n }\n\n return false;\n }\n\n private _updateToolbarState(toolbarButtons: LMToolbarButton[], pageSpec: LMPageSpec, pageStateInfo: PageStateInfo) {\n toolbarButtons.forEach((toolbarButton: LMToolbarButton) => {\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_SAVE) {\n toolbarButton.state.disabled = !pageStateInfo.isModified;\n }\n // Disables PDF button for unsupported types\n if (toolbarButton.actionReference.id === AppConstants.STANDARD_TOOLBAR_EXPORTPDF) {\n toolbarButton.state.disabled = !this.isPdfExportSupported(pageStateInfo.selectedPanel);\n }\n });\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, CanDeactivate, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Observer, of, Subscription, SubscriptionLike as ISubscription } from 'rxjs';\nimport { SohoMessageService, SohoModalDialogService, SohoTabsComponent } from 'ids-enterprise-ng';\nimport { PageResource } from '@resources/page.resource';\nimport {\n LMComponentInfoService,\n LMDataService,\n LMDrillService,\n LMErrorUtilService,\n LMFormatUtilService,\n LMLoggerService,\n LMUrlInfoBuilderService,\n LMUrlUtilService\n} from '@services/index';\nimport { LMBannerHeaderComponentRef, LMBannerService } from '@banner/index';\nimport { LMPagePanelComponent } from './lm-page-panel.component';\nimport { LMPageToolbarService } from './lm-page-toolbar.service';\nimport { LMPagePersonalization } from '@states/models/lm-page-personalization.model';\nimport { LMPageStateKeyParams, LMPageStateService } from '@states/services/lm-page-state.service';\nimport {\n LMPagePersonalizationKeyParams,\n LMPagePersonalizationService\n} from '@states/services/lm-page-personalization.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport { SaveRequired } from '@base/lm-base';\nimport { LMBaseComponent, LMDialogInfo, LMRefreshRequest } from '@base/lm-base.component';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { LMRouteComponentService } from '@services/lm-route-component.service';\nimport { LMListSpecUtilService } from '@list/services/lm-list-spec-util.service';\nimport { LMHtmlPageUtilService } from '@html/lm-html-page-util.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { LMGlobalPersonalizationService } from '@states/services/lm-global-personalization.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMContextUtilService } from '@utils/lm-context-util.service';\nimport { AppConstants, LMDialogButtonKey } from '@utils/app.constants';\nimport { environment } from '@environments/environment';\nimport { LMToolbarComponent } from '@toolbar/lm-toolbar.component';\nimport { LMStateHelperService } from '@services/lm-state-helper.service';\nimport { LMConditionUtilService, LMGlobalUtilService, LMUniqueIdService } from '@utils/index';\nimport {\n LMActionFormDialogComponent,\n LMActionFormDialogResult,\n LMActionFormDialogResultCode,\n LMActionFormDialogService,\n LMPrintDialogService,\n LMPrintPdfInfo\n} from '@modal/index';\nimport { filter } from 'rxjs/operators';\nimport { HashTagListener } from '@base/lm-hash-tag-listener';\nimport { LMListComponent, LMListTransactionEvent } from '@list/lm-list.component';\nimport { LMWorker } from '../../types/lm-worker';\nimport { LMHtmlUrlDocService } from '@services/lm-html-url-doc.service';\nimport { LMFormComponent } from '@app/components';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\nexport class LMPageSaveWorker extends LMWorker {\n private readonly panels: LMPagePanelComponent[];\n\n constructor(panel: LMPagePanelComponent[]) {\n super();\n\n this.panels = panel;\n }\n\n protected has(i: number): boolean {\n return (i < this.panels.length);\n }\n\n protected get(i: number): LMPagePanelComponent {\n return this.panels[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const panel = this.panels[ i ];\n if (panel) {\n panel.save().subscribe(continueOn => {\n observer.next(continueOn);\n observer.complete();\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-page',\n templateUrl: './lm-page.component.html',\n styleUrls: [ 'lm-page.component.scss' ],\n providers: [\n LMPageToolbarService,\n LMListSpecUtilService,\n LMHtmlPageUtilService,\n LMHtmlUrlDocService,\n LMFormManualRepService,\n LMDrillService\n ]\n})\n\nexport class LMPageComponent extends LMBaseComponent implements HashTagListener, AfterViewChecked, AfterViewInit, CanDeactivate, OnDestroy, OnInit, SaveRequired {\n\n // ----------------------------------------------------------------------\n // INPUTS\n // ----------------------------------------------------------------------\n @Input() resourceId: string;\n @Input() pageSpec: LMPageSpec;\n\n // ----------------------------------------------------------------------\n // OUTPUTS\n // ----------------------------------------------------------------------\n @Output() sendContextMessageEvent = new EventEmitter();\n\n // ----------------------------------------------------------------------\n // CHILDREN VARIABLES\n // ----------------------------------------------------------------------\n @ViewChildren('LMPagePanelComponent') pagePanelComponentList: QueryList;\n @ViewChild('dialogPlaceholder', { read: ViewContainerRef, static: true }) placeholder: ViewContainerRef;\n @ViewChild(LMToolbarComponent) toolbar: LMToolbarComponent;\n @ViewChild(SohoTabsComponent) tabs: SohoTabsComponent;\n @ViewChild('cartForm') cartForm: LMFormComponent;\n\n // ------\n // HOST BINDINGS\n // ----\n @HostBinding('id') public pageId;\n @HostBinding('attr.data-automation-id') public pageAutomationId;\n\n @HostBinding('style.height') get getHeight(): string {\n if (this.onMobile) {\n return 'inherit';\n } else {\n return this.hideTitleBar ? '100%' : null;\n }\n }\n\n @HostBinding('style.overflow') get overflow(): string {\n return this.hideTitleBar && this.hasContextForm ? 'auto' : null;\n }\n\n @HostBinding('class.has-context-form') public hasContextForm = false;\n @HostBinding('class.implements-card-view') get implementsCardView(): boolean {\n return this.pageSpec && this.pageSpec.pageSpec.hasCartForm;\n }\n @HostBinding('class.has-full-page-background') public hasFullPageBackground = false;\n\n // ----------------------------------------------------------------------\n // MEMBER VARIABLES\n // ----------------------------------------------------------------------\n public contextFormSpec: LMFormSpec;\n public contextFormUrlInfo: LMFormUrlInfo;\n public contextFormDataView: LMDataView;\n public dataView: LMDataView;\n public hasPanels = true;\n public lmTabsOptions: LMTabsOptions = {};\n public isProduction = environment.production;\n public personalizeTabs = false;\n public tabPanelContainerId = 'page-tab-panel-container';\n public legacyWebUI = false;\n public url3_5 = undefined;\n public overrideListTitle: string;\n public hideTitleBar = false;\n public toolbarButtons: Observable>;\n public pageTitle: string;\n public screenId: string;\n public automationIdAttributes: SohoAttributesArray = [];\n public pagePanelTabAttributes: SohoAttributesArray = [];\n\n public isMultiPanel = false;\n public isSinglePanel = false;\n public isPersonalizable = false;\n public useAlternateTabs = false;\n public noPageDetailsString = '';\n public cartFormUrlInfo: LMFormUrlInfo = null;\n\n public fullPageBackgroundImage: SafeStyle;\n public foregroundLight = false;\n public foregroundDark = false;\n\n private pageStateInfo: PageStateInfo = { isModified: false };\n private panels: Array;\n private pageResource: PageResource = null;\n private initialBuildComplete = false;\n private pageDataReturned = false;\n private tabActivatedSubscription: Subscription;\n\n /**\n * Whether or not this PageComponent is the root router-outlet component.\n * If it is then use the headerToolbarRef to set the toolbar view data.\n * Otherwise use the toolbar in this lists template.\n * @type {boolean}\n */\n private isRouterOutletRootComponent = false;\n\n /*\n * observable subscriptions. needed to unsubscribe when this\n * component is destroyed.\n */\n private subscriptions: ISubscription[] = [];\n\n private pageState: LMPageState = {};\n private pagePersonalization: LMPagePersonalization = {};\n private pageStateKeyParams: LMPageStateKeyParams;\n private pagePersonalizationKeyParams: LMPagePersonalizationKeyParams;\n readonly instanceId: string;\n\n public onMobile = false;\n private pageUrlInfo: LMPageUrlInfo;\n\n public testVersion1: boolean;\n public pagePanelTabsetId: string;\n public pagePanelTabsetAutomationId: string;\n\n private initializeSohoTabs = false;\n public useThemeColor = false;\n public useBackgroundImage = false;\n public backgroundImageUrl: SafeStyle;\n private _pendingSinglePanelSelection = false;\n\n constructor(\n private appRef: ApplicationRef,\n private changeDetectorRef: ChangeDetectorRef,\n public elementRef: ElementRef,\n private location: Location,\n private route: ActivatedRoute,\n private router: Router,\n private zone: NgZone,\n public sohoModalDialogService: SohoModalDialogService,\n private sohoMessageService: SohoMessageService,\n protected lmBusyIndicatorService: LMBusyIndicatorService,\n private lmBannerHeaderComponentRef: LMBannerHeaderComponentRef,\n private lmContextService: LMContextService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmLoggerService: LMLoggerService,\n private lmHtmlPageUtilService: LMHtmlPageUtilService,\n private lmActionFormDialogService: LMActionFormDialogService,\n private lmPagePersonalizationService: LMPagePersonalizationService,\n private lmPageStateService: LMPageStateService,\n private lmStateHelperService: LMStateHelperService,\n private lmPageToolbarService: LMPageToolbarService,\n private currentComponent: LMRouteComponentService,\n private lmSpecService: LMSpecService,\n private lmBannerService: LMBannerService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmListSpecUtilService: LMListSpecUtilService,\n private lmContextUtilService: LMContextUtilService,\n protected lmComponentInfoService: LMComponentInfoService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmPrintDialogService: LMPrintDialogService,\n private lmDataService: LMDataService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmConditionUtilService: LMConditionUtilService,\n private _sanitizer: DomSanitizer\n ) {\n super(sohoModalDialogService, lmBusyIndicatorService, lmComponentInfoService, lmUniqueIdService);\n this.instanceId = this.lmLoggerService.instanceId;\n this.onMobile = this.lmContextService.isMobileDevice();\n\n // This is added for now to get by an issue where the preceived loading of the component is delayed.\n // The constructor is called but then a 4-10 second delay is seen before the ngOnInit is called.\n // The issue was written up but the issue closed as no example was submitted and the problem was not\n // seen by a large number of people. Current plan is to try to dup the issue in a small example and\n // submit. A link to the issue Below\n // https://github.com/angular/angular/issues/18816\n setTimeout(() => {\n this.zone.run(() => {\n // CHANGE DETECTION\n if (this.url3_5) {\n this.changeDetectorRef.detectChanges();\n }\n });\n });\n\n const subscription = router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n // this.currentComponent.setRouteComponent( this);\n // if (this.initialBuildComplete) {\n // // ---------------------------------------------------------------------\n // // Called when this ListComponent object is reused by angular.\n // // Call resetListComponent and build here as ngOnInit and\n // // ngAfterViewInit will not be called in this scenarios.\n // // ---------------------------------------------------------------------\n // this.resetPageComponent();\n // this.build();\n // }\n //\n // // setTimeout(() => {\n // // appRef.tick();\n // // });\n } else if (event instanceof NavigationStart) {\n\n // show busy indicator when leaving a route.\n this.lmBusyIndicatorService.showBusyIndicator();\n\n // ---------------------------------------------------------------------\n // if starting a new navigation (leaving this route) then save this\n // lists state and personalizations\n // ---------------------------------------------------------------------\n // NOTE: if an access denied error happens then page won't be built.\n // Make sure to only saveState and personalizations if the component\n // is actyally built.\n // ---------------------------------------------------------------------\n if (this.initialBuildComplete) {\n if (!this.legacyWebUI) {\n this.saveComponentState();\n }\n }\n }\n });\n this.subscriptions.push(subscription);\n }\n\n // ----------------------------------------------------------------------\n // Component life cycle hooks.\n // ----------------------------------------------------------------------\n\n ngOnInit() {\n this.lmLoggerService.time({ id: '>> Total Page ' + this.instanceId });\n this.lmLoggerService.log([ this, this.instanceId, 'ngOnInit()' ]);\n\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.hideTitleBar = this.lmContextService.isHideTitlebar();\n if (!this.pageSpec && !this.lmContextService.inMingleWidget() && !this.hideTitleBar) {\n this.isRouterOutletRootComponent = true;\n this.currentComponent.setRouteComponent(this as Component);\n }\n }\n\n // todo ppatton could go into a service\n private setAutomationIds(): void {\n this.pageId = this.pageSpec.pageSpec.name + '_page';\n this.pagePanelTabsetId = this.pageSpec.pageSpec.name + '_tabs';\n\n this.pageAutomationId = 'lm-' + this.pageSpec.pageSpec.name + '-page';\n this.pagePanelTabsetAutomationId = 'lm-' + this.pageSpec.pageSpec.name + '-tabs';\n\n if (!this.testVersion1) {\n this.pagePanelTabAttributes.push({ name: 'id', value: this.pagePanelTabsetId + AppConstants.ELEMENT_ID_SUFFIX_FORM_PANEL_TABSET });\n }\n this.pagePanelTabAttributes.push({ name: 'data-automation-id', value: this.pagePanelTabsetAutomationId });\n }\n\n ngAfterViewInit() {\n this.lmLoggerService.log([ this, this.instanceId, 'ngAfterViewInit()' ]);\n this.lmBusyIndicatorService.showBusyIndicator();\n\n // -------------------------------------------------------------------------------------\n // need to call this in a secondary timeout that takes place in 40ms. Starting the busy\n // indicator takes 20ms by default so any code should be executed after that otherwise\n // angular will block the busy indicator.\n // -------------------------------------------------------------------------------------\n\n\n /**\n * Need to set and pass url from outside of setTimeout()\n * For some reason this.router.url ocassionally will have the /home path in the url\n * when it has been referenced from within this.build().\n * It appears as if this.router.url was probably set to early. While /home was still present (before redirect)\n *\n * This causes an error to occur intermittently from within keyed.resource.ts\n * https://jira.lawson.com/browse/LMCLIENT-39632\n */\n const url = this.router.url;\n setTimeout(() => this.build(url), 40);\n }\n\n ngAfterViewChecked() {\n if (this.initializeSohoTabs) {\n if (this.hasPanels && this.sohoTabsComponent) {\n this.initializeSohoTabs = false;\n this.sohoTabsComponent.updated();\n if (this.pageState.selectedTabId) {\n const pagePanel: LMPagePanelSpec = this.panels.find((panel: LMPagePanelSpec) => (panel.id === this.pageState.selectedTabId));\n const id = pagePanel ? pagePanel.id : this.panels[0].id;\n this.sohoTabsComponent.select(id);\n }\n }\n }\n\n if (this._pendingSinglePanelSelection) {\n this._pendingSinglePanelSelection = false;\n setTimeout(() => this.handleNewSinglePanelSelection());\n }\n }\n\n ngOnDestroy() {\n this.setComponentDestroyed();\n this.tabActivatedSubscription?.unsubscribe();\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n\n if (this.lmBannerHeaderComponentRef && this.lmBannerHeaderComponentRef.instance) {\n this.lmBannerHeaderComponentRef.instance.hasTabs = false;\n this.lmBannerHeaderComponentRef.instance.tabsOptions = {};\n }\n this.lmPageToolbarService.reset();\n }\n\n // ----------------------------------------------------------------------\n // Router life cycle hooks.\n // ----------------------------------------------------------------------\n canDeactivate(): any {\n // verify that there are no outstanding changes, prompt the user if\n // the page lists, etc.. are dirty.\n return true;\n }\n\n public allowPageNavigation(): Promise | boolean {\n if (this.checkSaveRequired()) {\n if (this.modalOpen()) {\n // let just ask if they want to stay,\n // difficult to determine the modal's purpose - it may run an action or it may just return unsaved data\n return this.displayNavigationConfirmation();\n } else {\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(continueOn => {\n youMayNavigateSource.next(continueOn);\n youMayNavigateSource.complete();\n this.hideBusyIndicator();\n });\n\n return youMayNavigate.pipe(filter(el => el)).toPromise();\n }\n }\n return true;\n }\n\n private handleUnsavedChanges(info: LMDialogInfo): Observable {\n return new Observable(observer => {\n if (this.isModified()) {\n this.showUnsavedChanges(info).subscribe((response: UnsavedChangesResponse) => {\n if (response === LMDialogButtonKey.YES) {\n this.runSaveAction(true, observer);\n } else if (response === LMDialogButtonKey.NO) {\n observer.next(true);\n observer.complete();\n } else {\n // Cancel. Stay put and do nothing!\n observer.next(false);\n observer.complete();\n }\n });\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n\n checkSaveRequired() {\n return this.isModified() || this.modalOpen();\n }\n\n modalOpen() {\n return this.lmActionFormDialogService.hasOpenDialog;\n }\n\n displayNavigationConfirmation(): Promise | boolean {\n const comp: LMActionFormDialogComponent = this.lmActionFormDialogService.getOpenDialog.componentDialog;\n const youMayNavigateSource = new BehaviorSubject(false);\n const youMayNavigate: Observable = youMayNavigateSource.asObservable();\n const dialogId = 'UnsavedChanges';\n if (comp.formComponent.isModified()) {\n const buttons = [\n // tslint:disable-next-line - shadowed variable e\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.LEAVE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.LEAVE),\n click: (e, modal) => {\n this.lmActionFormDialogService.getOpenDialog.close({ result: LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL });\n youMayNavigateSource.next(true);\n youMayNavigateSource.complete();\n modal.close();\n }\n },\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.STAY ]),\n text: Soho.Locale.translate(LMDialogButtonKey.STAY),\n click: (e, modal) => {\n youMayNavigateSource.next(false);\n youMayNavigateSource.complete();\n modal.close();\n this.hideBusyIndicator();\n }\n }\n ];\n\n // Show the confirmation message dialog.\n // todo I18n\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('NavigateAwayMessage'))\n .title(Soho.Locale.translate('UnsavedChangesMessage'))\n .buttons(buttons)\n .open();\n\n } else {\n // the form in the action form dialog component isn't dirty, so just return a boolean rather than\n // a promise attached to a confirmation\n this.lmActionFormDialogService.getOpenDialog.close();\n return true;\n }\n\n return (youMayNavigate.pipe(filter(el => el))).toPromise();\n }\n\n // ----------------------------------------------------------------------\n // PUBLIC METHODS\n // ----------------------------------------------------------------------\n\n // ----------------------------------------------------------------------\n // Event Handlers\n // ----------------------------------------------------------------------\n public onTitleChanged(event: any) {\n const titleChanged = event.detail;\n if (this.hideTitleBar) {\n this.pageTitle = titleChanged.newTitle;\n } else {\n this.lmBannerHeaderComponentRef.instance.toolbarSectionTitle = titleChanged.newTitle;\n this.lmBannerHeaderComponentRef.instance.toolbarMoreSettings = { beforeOpen: null, attachToBody: true };\n }\n }\n\n onToolbarButtonButtonEvent(toolbarButtonEvent: LMToolbarButtonEvent): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'onToolbarButtonEvent()', toolbarButtonEvent ]);\n\n if (!toolbarButtonEvent.actionReference) {\n return;\n }\n if (toolbarButtonEvent.actionReference.id === AppConstants.STANDARD_TOOLBAR_REFRESH) {\n const info: LMDialogInfo = { message: Soho.Locale.translate('UnsavedChangesContinuingMsg') };\n this.handleUnsavedChanges(info).subscribe(response => {\n if (response) {\n this.runRefreshAction();\n }\n });\n } else if (toolbarButtonEvent.actionReference.id === AppConstants.STANDARD_SAVE) {\n this.runSaveAction(false);\n } else if (toolbarButtonEvent.actionReference.id === AppConstants.STANDARD_TOOLBAR_EXPORTPDF) {\n this.runPdfAction(toolbarButtonEvent.actionReference);\n }\n }\n\n onTabActivated(tabActivatedEvent: SohoTabsEvent ): void {\n /*\n * onTabActivated gets messaged before the sohoDataGrid has finished resolving it's template\n * so I need to put into a setTimeout allowing angular to have a chance to process the template\n * before I attempt to call methods on it.\n */\n setTimeout(() =>\n this.activateTab(), 1);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendBusinessContext(event);\n }\n\n onUpdateToolbarStateEvent(event: any) {\n if (this.isMultiPanelPage) {\n this.pageStateInfo.isModified = this.isModified();\n this.pageStateInfo.selectedPanel = this.selectedPanel;\n this.updateToolbar();\n }\n }\n\n // ---------------------------------------------------\n // PRIVATE METHODS\n // ---------------------------------------------------\n\n private refreshPageData(): Observable {\n if(!this.lmContextService.enablePageSpecRefactor()) {\n return of(true);\n }\n\n /*\n test the hashTagChanged feature - tested\n\n 1. single panel to single panel same panel - tested\n 2. single panel to single panel new panel - tested\n 3. single panel to multi panel same panel in selected - tested\n 4. single panel to multi panel, new panel selected - tested\n 5. multi panel to single panel same panel selected - tested\n 6. multi panel to single panel new panel selected - tested\n 7. multi panel to multi panel same panel selected\n 8. multi panel to multi panel new panel selected\n 9. single panel to no panels - tested\n 10. multi panel to no panels\n 11. no panels to single panel - tested\n 12. no panels to multiple panel\n */\n return new Observable(observer => {\n this.lmDataService.getPageData(this.pageUrlInfo.initialDataUrl).subscribe((response: LMPageDataResponse) => {\n if (response.status === AppConstants.STATUS_COMPLETED) {\n if (response.serverLog) {\n this.lmLoggerService.serverLog(response.serverLog);\n }\n this.dataView = response.pageData.dataView;\n this.contextFormDataView = response.pageData.contextFormDataView;\n\n const wasSinglePanel = this.isSinglePanel;\n const oldSelectedPanelId = this.selectedPanel?.id;\n this.updatePanels();\n this.buildTabsOptions();\n this.updateTitle();\n this.updateOverrideTitle();\n\n this.hasPanels = this.panels && this.panels.length > 0;\n this.isMultiPanel = this.isMultiPanelPage;\n this.isSinglePanel = this.isSinglePanelPage;\n\n this.updateBannerHeaderComponent();\n\n if (!this.hasPanels) {\n observer.next(true);\n observer.complete();\n return;\n }\n\n const newSelectedPanelId = this.lmTabsOptions.tabs[0].id; // DOesnt work for t=multiple panels need to als handle case where selected tab is gone\n\n if (this.isSinglePanel && wasSinglePanel && newSelectedPanelId !== oldSelectedPanelId) {\n this.isSinglePanel = undefined; // need to force change detection on the template\n this._pendingSinglePanelSelection = true;\n } else if (this.isSinglePanel) {\n this._pendingSinglePanelSelection = true;\n } else if (this.isMultiPanel && wasSinglePanel) {\n /*\n * IMPORTANT: Put in timeout to ensure change detection happens before the bannerHeaderCompRef tabOptions are set.\n * This is required so that the tabset will update it's changes in the tab body area before the header tabs are\n * built. If that doesn't happen then the events from the soho tabset control will not fire correctly.\n *\n * This is also important for a single panel page (where we don't use the tab control) so that\n * the single lm-page-panel will be initialized and the pagePanelComponentList ViewChildren\n * is set properly.\n */\n this.changeDetectorRef.detectChanges(); // DPB is this only need for banner tabs - test that\n this.initializeSohoTabs = true;\n } else if (this.isMultiPanel) {\n this.changeDetectorRef.detectChanges(); // DPB is this only need for banner tabs - test that\n this.initializeSohoTabs = true;\n }\n\n observer.next(true);\n observer.complete();\n } else {\n const error: any = response;\n this.lmErrorUtilService.handleError(error.message, error.details, error.status, error.statusText);\n observer.next(false);\n observer.complete();\n }\n },\n (error: any) => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n observer.next(false);\n observer.complete();\n });\n });\n }\n\n private runRefreshAction(originatingList?: string) {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n let selectedTabIndex = 0;\n if (this.isMultiPanelPage) {\n\n // ----------------------------------------------------------------------\n // if Refreshing mark non selected tabs as needsReload\n // ----------------------------------------------------------------------\n selectedTabIndex = this.getActiveTabIndex();\n\n // ----------------------------------------------------------------------\n // If Refreshing mark non-selected tabs that have already been\n // activated as needsReload.\n // ----------------------------------------------------------------------\n this.pagePanelComponentList.toArray().forEach((panel, index) => {\n if (index !== selectedTabIndex && panel.activated) {\n //\n panel.needsReload = true;\n }\n });\n\n if (this.pageSpec.pageSpec.hasCartForm) {\n this.cartForm.runRefresh(\n Observable.create(observer => {\n observer.next(true);\n observer.complete();\n }));\n }\n }\n\n const pagePanelComponent: LMPagePanelComponent = this.pagePanelComponentList.toArray()[ selectedTabIndex ];\n const request = new LMRefreshRequest();\n request.originatingSourceId = originatingList;\n\n if (pagePanelComponent) {\n pagePanelComponent.refresh(request).subscribe(refreshed => {\n if (refreshed) {\n this.pageStateInfo.isModified = this.isModified();\n this.refreshPageData().subscribe();\n this.updateToolbar();\n }\n this.lmBusyIndicatorService.hideBusyIndicator();\n }, error => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n } else {\n this.refreshPageData().subscribe(refreshed => {\n this.lmBusyIndicatorService.hideBusyIndicator();\n });\n }\n }\n\n // hard refresh indicates that the user is doing an explicit refresh (ran the Refresh action)\n private runSaveAction(skipRefresh: boolean, callBack?: Observer) {\n const pagePanelComponentArray = this.pagePanelComponentList.toArray();\n const modifiedPanels = pagePanelComponentArray.filter(pagePanelComponent => pagePanelComponent.isModified());\n\n const saveWorker: LMPageSaveWorker = new LMPageSaveWorker(modifiedPanels);\n return saveWorker.start().subscribe(continueOn => {\n if (continueOn && !skipRefresh) {\n this.runRefreshAction();\n }\n if (callBack) {\n callBack.next(continueOn);\n callBack.complete();\n }\n }),\n (err => {\n const errorComponent: LMPagePanelComponent = err;\n if (errorComponent) {\n // this.sohoTabsComponent.select('#' + errorPanel.panelId);\n }\n if (callBack) {\n callBack.next(false);\n callBack.complete();\n }\n });\n }\n\n private runPdfAction(actionReference: LMBusActionReference) {\n const pdfType = AppConstants.PAGE_PDF;\n const settings = {\n resource: this.pageResource,\n fromResource: this.pageUrlInfo.sourceResource,\n actionReference,\n name: this.lmFormatUtilService.formatMessageRule(this.pageSpec.pageSpec.title, this.dataView),\n pdfType,\n selectedPanelName: this.selectedPanel?.panelName,\n fontOffset: this.pageSpec.pageSpec.fontOffset,\n orientation: this.pageSpec.pageSpec.orientation,\n scheduleActionAllowed: this.pageSpec.scheduleActionAllowed,\n includeRecordLimit: true,\n isDashboard: (this.selectedPanel?.panelType === 'DashBoardPanel')\n };\n\n const panelComponent = this.getActivePanelComponent();\n settings.listParams = {};\n panelComponent?.pagePaneListComponents?.forEach((comp) => {\n const list = comp.lmListComponent as LMListComponent;\n if (!list) {\n return;\n }\n // allow when atleast one pane is a list\n settings.includeSearchForm = true;\n const filterCriteria = list.getExportActionFilterCriteria().map((fc) => ({\n fieldId: fc.fieldId,\n operator: fc.operator,\n value: Array.isArray(fc.value) ? fc.value.join('|') : fc.value\n }));\n // parameters needed to properly build each list\n const params = {\n resourceId: list.listResource.resourceId,\n filterCriteria\n } as LMListParams;\n // set only chart name if current display is chart\n if (list.listState.displayAs === 'chart') {\n params.chartName = list.chartName;\n }\n\n settings.listParams[comp.pane.paneName || comp.panel.panelName] = params;\n });\n\n this.lmPrintDialogService.openPdfDialog(settings);\n }\n\n private updateToolbar() {\n this.lmPageToolbarService.updateToolbar(this.pageSpec, this.pageStateInfo);\n }\n\n private isModified() {\n return this.pagePanelComponentList.toArray().some(pagePanelComponent => pagePanelComponent.isModified());\n }\n\n private resetPageComponent() {\n this.lmBusyIndicatorService.showBusyIndicator();\n\n this.url3_5 = undefined;\n this.legacyWebUI = false;\n }\n\n private activateTab() {\n if (!this.sohoTabsComponent) {\n return;\n }\n\n const tabIndex = this.getActiveTabIndex();\n\n if (tabIndex === -1) {\n return;\n }\n\n const pagePanelComponent = this.pagePanelComponentList.toArray()[ tabIndex ];\n this.pageState.selectedTabId = this.panels[tabIndex].id;\n this.pageStateInfo.selectedPanel = this.selectedPanel;\n\n if (pagePanelComponent) {\n this.activatePanel(pagePanelComponent);\n }\n this.updateToolbar();\n }\n\n private activatePanel(pagePanelComponent: LMPagePanelComponent) {\n if (!pagePanelComponent.activated) {\n pagePanelComponent.activated = true;\n pagePanelComponent.needsReload = false; // safety\n } else if (pagePanelComponent.needsReload) {\n pagePanelComponent.refresh().subscribe(refreshed =>\n pagePanelComponent.needsReload = !refreshed);\n } else {\n pagePanelComponent.sendBusinessContext();\n }\n }\n\n onPanelContentDisplayed(arg: any) {}\n\n onPanelContentModified(fieldChangedEvent: LMListFieldChangedEvent) {\n this.pageStateInfo.isModified = this.isModified();\n this.lmPageToolbarService.updateToolbar(this.pageSpec, this.pageStateInfo);\n }\n\n onPanelDataUpdated(fieldChangedEvent: LMListFieldChangedEvent) {\n let originatingList: string;\n if (fieldChangedEvent instanceof LMListTransactionEvent) {\n const listTransactionEvent: LMListTransactionEvent = fieldChangedEvent;\n originatingList = listTransactionEvent.eventSource ? listTransactionEvent.eventSource.listId : null;\n }\n this.runRefreshAction(originatingList);\n }\n\n /**\n * Convenience method to return the sohoTabsComponent from the bannerHeaderRef.\n */\n private get sohoTabsComponent(): SohoTabsComponent {\n return (this.hideTitleBar || this.hasContextForm) ?\n this.tabs :\n this.lmBannerHeaderComponentRef.instance.sohoTabsComponent;\n }\n\n private get selectedPanel(): LMPagePanelSpec {\n const tabIndex = this.getActiveTabIndex();\n return this.panels ? this.panels[tabIndex] : null;\n }\n\n private getActiveTabIndex(): number {\n if (this.hideTitleBar) {\n return this.tabs?.getActiveTab()?.closest('li').index();\n }\n\n const index = this.sohoTabsComponent?.getActiveTab()?.closest('li').index();\n return index || 0;\n }\n\n private getActivePanelComponent(): LMPagePanelComponent {\n const tabIndex = this.getActiveTabIndex();\n return this.pagePanelComponentList.toArray()[ tabIndex ];\n }\n\n public build(url: string): void {\n this.lmLoggerService.trace([ this, this.instanceId, 'build()' ]);\n\n if (this.isRouterOutletRootComponent) {\n this.lmBannerHeaderComponentRef.instance.fullPageScroll = this.hasContextForm;\n }\n\n this.initializeSohoTabs = true;\n /*\n * PageSpec is king. If a PageSpec is passed in as Input() then that\n * take precedence over the url.\n */\n if (this.pageSpec) {\n this.pageSpecLoaded();\n } else {\n this.loadPageSpec(url);\n }\n }\n\n private loadPageSpec(url: string): void {\n this.lmLoggerService.time({ id: 'LMPage.loadPageSpec() ' + this.instanceId });\n\n this.lmSpecService.getPageSpec(url).subscribe((response: LMPageSpecResponse | LMSystemException) => {\n this.lmLoggerService.timeEnd('LMPage.loadPageSpec() ' + this.instanceId);\n\n if (this.componentDestroyed) {\n return;\n }\n\n if ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR) {\n this.hideBusyIndicator();\n const statusText = (response as LMSystemException).statusText;\n const details = (response as LMSystemException).details;\n this.lmErrorUtilService.handleError(statusText, details);\n return;\n }\n\n this.pageUrlInfo = (response as LMPageSpecResponse).pageUrlInfo;\n this.pageSpec = (response as LMPageSpecResponse).pageSpec;\n\n this.pageSpecLoaded();\n\n // This is added for now to get by an issue where the perceived loading of the component is delayed.\n // The constructor is called but then a 4-10 second delay is seen before the ngOnInit is called.\n // The issue was written up but the issue closed as no example was submitted and the problem was not\n // seen by a large number of people. Current plan is to try to dup the issue in a small example and\n // submit. A link to the issue Below\n // https://github.com/angular/angular/issues/18816\n this.zone.run(() => {\n // CHANGE DETECTION\n if (this.url3_5) {\n this.changeDetectorRef.detectChanges();\n }\n });\n },\n (error: any) => {\n this.hideBusyIndicator();\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeholder);\n });\n }\n\n private updateTitle() {\n const titleMessageRule: any = this.pageSpec.pageSpec.title;\n const title = this.lmFormatUtilService.formatMessageRule(titleMessageRule, this.dataView);\n if (this.hideTitleBar) {\n this.pageTitle = title;\n } else {\n this.lmBannerHeaderComponentRef.instance.toolbarSectionTitle = title;\n }\n }\n\n private updateOverrideTitle() {\n if (this.hasPanels) {\n const titleMessageRule: any = this.panels[0].panelTitle;\n const title = this.lmFormatUtilService.formatMessageRule(titleMessageRule, this.dataView);\n this.overrideListTitle = this.isSinglePanelPage ? title : null;\n }\n }\n\n private updateTabsOptions() {\n for (let i = 0, len = this.lmTabsOptions?.tabs?.length; i < len; i++) {\n const tab = this.lmTabsOptions.tabs[i];\n tab.title = this.buildPanelTitle(tab.panel);\n }\n }\n\n private buildPanelTitle(panel: LMPagePanelSpec): string {\n const titleMessageRule: any = panel.panelTitle;\n return this.lmFormatUtilService.formatMessageRule(titleMessageRule, this.dataView);\n }\n\n private updatePanels() {\n this.panels = [];\n\n for (let i = 0, len = this.pageSpec.pageSpec.panels.length; i < len; i++) {\n const panel = this.pageSpec.pageSpec.panels[ i ];\n\n if (panel.visibility) {\n if (!this.lmConditionUtilService.isValid([ panel.visibility ], this.dataView)) {\n continue;\n }\n }\n\n if (panel.validity) {\n if (!this.lmConditionUtilService.isValid([ panel.validity ], this.dataView)) {\n continue;\n }\n }\n\n this.panels.push(panel);\n };\n\n this.hasPanels = this.panels && this.panels.length > 0;\n this.isMultiPanel = this.isMultiPanelPage;\n this.isSinglePanel = this.isSinglePanelPage;\n // this.singlePanel = this.isSinglePanel ? this.panels[0] : null;\n }\n\n private load(): void {\n this.lmDataService.getPageData(this.pageUrlInfo.initialDataUrl).subscribe((response: LMPageDataResponse) => {\n if (response.status === AppConstants.STATUS_COMPLETED) {\n\n if (this.componentDestroyed) {\n return;\n }\n\n if (response.serverLog) {\n this.lmLoggerService.serverLog(response.serverLog);\n }\n this.pageDataReturned = true;\n this.dataView = response.pageData.dataView;\n this.contextFormDataView = response.pageData.contextFormDataView;\n this.pageSpecLoaded();\n } else {\n const error: any = response;\n this.lmErrorUtilService.handleError(error.message, error.details, error.status, error.statusText);\n }\n },\n (error: any) => {\n this.lmErrorUtilService.handleUnexpectedError(error, this.placeHolder);\n });\n }\n\n private pageSpecLoaded(): void {\n\n // ------------------------------------------------------------------------\n // can set to true here since the build method will have provided all\n // that's needed to continue building the component.\n // ------------------------------------------------------------------------\n\n if (!this.pageSpec.pageSpec.messageRuleView && !this.pageDataReturned) {\n // data not brought back with spec -- new way not ready to build yet\n this.load();\n return;\n }\n\n this.initialBuildComplete = true;\n\n this.setAutomationIds();\n\n // this.pageId = this.pageSpec.pageSpec.name + '_page';\n // this.pageAutomationId = this.pageSpec.pageSpec.name + '-page';\n //\n // this.pagePanelTabsetId = this.pageSpec.pageSpec.name + AppConstants.ELEMENT_ID_SUFFIX_PAGE_PANEL_TABSET;\n // this.pagePanelTabsetAutomationId = this.pageSpec.pageSpec.name + '-tabset';\n //\n // this.automationIdAttributes = [ {\n // name: 'id', value: this.pagePanelTabsetId\n // }, {\n // name: 'data-automation-id', value: this.pagePanelTabsetAutomationId\n // } ];\n this.pageId = this.pageSpec.pageSpec.name + '_page';\n this.pagePanelTabsetId = this.pageSpec.pageSpec.name; //DPB Need to resolve with PHIL + AppConstants.ELEMENT_ID_SUFFIX_PAGE_PANEL_TABSET;\n this.automationIdAttributes = [ { name: 'id', value: this.pagePanelTabsetId } ];\n\n const bannerPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const appDisplay = bannerPersonalization.appDisplay;\n const unsupportedPattern = this.doesSpecContainUnsupported4_0Patterns(this.pageSpec);\n this.setLegacyVariables(unsupportedPattern, appDisplay, this.lmContextService, this.lmHtmlPageUtilService);\n if (this.lmBannerHeaderComponentRef.instance && this.lmBannerHeaderComponentRef.instance.is3_5 !== undefined) {\n this.lmBannerHeaderComponentRef.instance.is3_5 = (this.url3_5 && this.url3_5.length > 0) ? true : false;\n }\n\n this.updatePanels();\n if (this.pageSpec.pageSpec.hasCartForm) {\n const cartFormSpec: LMFormSpec = this.pageSpec.pageSpec.cartForm;\n this.cartFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(cartFormSpec);\n }\n\n this.loadComponentState();\n this.initialize();\n this.buildToolBar();\n this.buildTabsOptions();\n this.buildPageBackground();\n this.lmTabsOptions.containerElementSelector = '#' + this.tabPanelContainerId;\n this.sendShortcut();\n this.buildHTMLVariables();\n\n this.updateOverrideTitle();\n\n if (this.needSendBusinessMessage) {\n this.sendBusinessContext();\n }\n\n /*\n * IMPORTANT: Put in timeout to ensure change detection happens before the bannerHeaderCompRef tabOptions are set.\n * This is required so that the tabset will update it's changes in the tab body area before the header tabs are\n * built. If that doesn't happen then the events from the soho tabset control will not fire correctly.\n *\n * This is also important for a single panel page (where we don't use the tab control) so that\n * the single lm-page-panel will be initialized and the pagePanelComponentList ViewChildren\n * is set properly.\n */\n this.changeDetectorRef.detectChanges();\n\n if (!this.url3_5) {\n // Need to setup this listener always because the page have refresh and then have tabs\n // const tabActivatedSubscription = this.lmBannerHeaderComponentRef.instance.tabActivated.subscribe(\n // (tabActivatedEvent: SohoTabsEvent ) => this.onTabActivated(tabActivatedEvent));\n // this.subscriptions.push(tabActivatedSubscription);\n\n if (!this.isMultiPanelPage) {\n if (!this.hideTitleBar) {\n this.lmBannerHeaderComponentRef.instance.hasTabs = false;\n }\n\n const pagePanelComponent = this.pagePanelComponentList.toArray()[0];\n if (pagePanelComponent) {\n this.activatePanel(pagePanelComponent);\n }\n }\n\n if (this.isMultiPanelPage && !this.hideTitleBar && !this.hasContextForm) {\n this.lmBannerHeaderComponentRef.instance.hasTabs = true;\n this.lmBannerHeaderComponentRef.instance.tabsOptions = this.lmTabsOptions;\n\n // map outputs\n this.tabActivatedSubscription = this.lmBannerHeaderComponentRef.instance.tabActivated.subscribe(\n (tabActivatedEvent: SohoTabsEvent ) => this.onTabActivated(tabActivatedEvent));\n }\n\n if (!this.hideTitleBar && !this.lmContextService.inMingleWidget()) {\n const toolbarSubscription = this.lmBannerHeaderComponentRef.instance.toolbarButtonEvent.subscribe(\n (toolbarButtonEvent: LMToolbarButtonEvent) => this.onToolbarButtonButtonEvent(toolbarButtonEvent));\n this.subscriptions.push(toolbarSubscription);\n }\n }\n\n const loadTime = this.lmLoggerService.timeEnd('>> Total Page ' + this.instanceId, [ this, 'pageSpecLoaded()', 'end' ]);\n this.sendPageAnalytics(loadTime);\n }\n\n private updateBannerHeaderComponent() {\n if (!this.isMultiPanelPage) {\n if (!this.hideTitleBar) {\n this.lmBannerHeaderComponentRef.instance.hasTabs = false;\n }\n }\n\n if (this.isMultiPanelPage && !this.hideTitleBar && !this.hasContextForm) {\n this.lmBannerHeaderComponentRef.instance.hasTabs = true; // DPB what\n this.lmBannerHeaderComponentRef.instance.tabsOptions = this.lmTabsOptions; // DPB what\n\n if (!this.tabActivatedSubscription) {\n this.lmBannerHeaderComponentRef.instance.tabActivated.subscribe(\n (tabActivatedEvent: SohoTabsEvent ) => this.onTabActivated(tabActivatedEvent)); // dpb verify that this needed!!!\n }\n }\n }\n\n private initialize(): void {\n if (this.pageUrlInfo && this.pageUrlInfo.url && this.pageUrlInfo.url.hash) {\n // ------------------------------------------------------------------------\n // 1. set pageState.selectedTabId to the hashtag (the panel name).\n // This will cause the page to open to that tab.\n // ------------------------------------------------------------------------\n const targetPanelName = this.pageUrlInfo.url.hash.substring(1);\n const pagePanel: LMPagePanelSpec = this.panels.find((panel: LMPagePanelSpec) => (panel.panelName === targetPanelName));\n\n if (pagePanel) {\n this.pageState.selectedTabId = pagePanel.id;\n this.pageStateInfo.selectedPanel = pagePanel;\n }\n\n // ------------------------------------------------------------------------\n // 2. build url w/o the hashtag and replace the url in the location service\n // ------------------------------------------------------------------------\n const urlNoHash = this.pageUrlInfo.url.href.split('#')[0];\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(urlNoHash));\n }\n\n if (this.pageSpec.pageSpec.contextFormInfo) {\n this.buildContextFormInfo();\n }\n\n if (this.pageSpec.pageSpec.messageRuleView) {\n this.dataView = this.pageSpec.pageSpec.messageRuleView;\n }\n\n this.pageResource = new PageResource({ resourceId: this.pageSpec.resourceId });\n this.pageStateInfo.selectedPanel = this.selectedPanel;\n\n if (!this.hasPanels) {\n this.lmBusyIndicatorService.hideBusyIndicator();\n }\n }\n\n /**\n * Lazily builds and returns the LMListStateKeyParams object.\n * @returns\n */\n private buildPageStateKeyParams(): LMPageStateKeyParams {\n if (!this.pageStateKeyParams) {\n this.pageStateKeyParams = this.lmStateHelperService.buildPageStateKeyParams(this.route.snapshot.params['resourceId'], this.pageSpec, this.elementRef.nativeElement.id);\n }\n return this.pageStateKeyParams;\n }\n\n private buildPagePersonalizationKeyParams(): LMPagePersonalizationKeyParams {\n if (!this.pagePersonalizationKeyParams) {\n this.pagePersonalizationKeyParams = new LMPagePersonalizationKeyParams();\n this.pagePersonalizationKeyParams.prefix = this.elementRef.nativeElement.id;\n this.pagePersonalizationKeyParams.dataArea = this.lmContextService.getContext().urlPdlOrDa;\n this.pagePersonalizationKeyParams.resourceId = this.pageSpec.resourceId;\n this.pagePersonalizationKeyParams.actorId = this.lmContextService.getContext().actorId;\n if (this.lmContextService.getContext().asOfDate) {\n this.pageStateKeyParams.asOfDate = this.lmContextService.getContext().asOfDate;\n }\n }\n\n return this.pagePersonalizationKeyParams;\n }\n\n private buildTabsOptions() {\n this.lmTabsOptions.tabs = [];\n for (let i = 0, len = this.panels.length; i < len; i++) {\n const panel = this.panels[ i ];\n const tabItem: LMTab = {\n id: panel.id,\n automationId: panel.automationId,\n panel,\n title: this.buildPanelTitle(panel),\n loaded: false\n };\n\n if (this.pageState.selectedTabId && this.pageState.selectedTabId === this.panels[i].id) {\n tabItem.selected = true;\n }\n\n this.lmTabsOptions.tabs.push(tabItem);\n }\n this.lmTabsOptions.containerElementSelector = '#' + this.tabPanelContainerId;\n }\n\n private buildPageBackground() {\n if (!!this.pageSpec?.pageSpec?.background) {\n this.hasFullPageBackground = true;\n this.fullPageBackgroundImage = this._sanitizer.bypassSecurityTrustStyle(`url('${this.pageSpec.pageSpec.background.image}')`);\n\n this.foregroundDark = this.pageSpec.pageSpec.background.foregroundText === 'dark';\n this.foregroundLight = this.pageSpec.pageSpec.background.foregroundText === 'light';\n }\n }\n\n private buildHTMLVariables(): void {\n this.isPersonalizable = this.canPersonalize();\n this.useAlternateTabs = this.shouldUseAlternateTabs();\n this.noPageDetailsString = this.noPageDetailsMessage;\n }\n\n private buildToolBar() {\n if (this.lmContextService.inMingleWidget()) {\n return;\n }\n\n // toolbar already appends '_toolbar' to the so removing adding it here for v2.\n // need to keep it for v1 in order to not break current usage.\n this.screenId = this.pageSpec.pageSpec.name;\n\n this.lmLoggerService.log([ this, this.instanceId, 'buildToolbar()' ]);\n if (!this.url3_5) {\n if (this.hideTitleBar) {\n this.toolbarButtons = this.lmPageToolbarService.getToolbarButtonsObservable();\n } else {\n this.lmBannerHeaderComponentRef.instance.screenId = this.screenId;\n this.lmBannerHeaderComponentRef.instance.screenAutomationId = this.screenId;\n this.lmBannerHeaderComponentRef.instance.headerTabsetAutomationId = this.screenId;\n this.lmBannerHeaderComponentRef.instance.toolbarButtons = this.lmPageToolbarService.getToolbarButtonsObservable();\n }\n }\n\n this.updateTitle();\n\n setTimeout(() => {\n // ------------------------------------------------------------------\n // need to place in a timeout so the toolbarService has a change to\n // set it's observable member.\n // ------------------------------------------------------------------\n this.lmPageToolbarService.buildToolbarButtons(this.pageSpec, this.pageStateInfo);\n });\n }\n\n private sendPageAnalytics(loadTime: number): void {\n this.lmGlobalUtilService.updateClientStatsTelegraf(this.getComponentInfo(), loadTime).subscribe((response: any) => {});\n }\n\n private sendShortcut(): void {\n this.lmContextUtilService.enableStandardShortcut();\n }\n\n private sendBusinessContext(contextMsgs?: any): void {\n this.lmContextUtilService.clearAll();\n if (contextMsgs) {\n this.lmContextUtilService.sendContextMessages(contextMsgs);\n } else {\n this.lmContextUtilService.buildContextMessages({\n busFormName: this.pageSpec.pageSpec.name,\n busClassName: this.lmContextService.getContext().webApp, // since no busclass for a page use webApp name.\n widgetEventPrefix: AppConstants.RESOURCETYPE_PAGE,\n })\n .subscribe((msgObj: any) => {\n if (msgObj.status === AppConstants.STATUS_COMPLETED) {\n this.lmContextUtilService.sendContextMessages(msgObj);\n }\n });\n }\n }\n\n get isMultiPanelPage(): boolean {\n if (this.panels) {\n return this.panels.length > 1;\n }\n return false;\n }\n\n get isSinglePanelPage(): boolean {\n if (this.panels) {\n return this.panels.length === 1;\n }\n return false;\n }\n\n get needSendBusinessMessage(): boolean {\n // if the first pane on the panel is not a list initiate a message\n if (this.panels && this.panels.length === 0 ) {\n return;\n }\n\n if (this.panels[0].pane) {\n return this.panels[0].pane.paneType === 'MenuPanel';\n } else if (this.panels[0].panelType === 'DashBoardPanel') {\n return true;\n }\n return false;\n }\n\n get noPageDetailsMessage(): string {\n return Soho.Locale.translate('NoPageDetailsExist');\n }\n\n public getComponentInfo(additionalInfo?: LMCompInfoAdditionalInfo): LMComponentInfo {\n // let compiledTemplate = urltemplate.parse(this.pageSpec);\n // let loadUrl = compiledTemplate.expand({ resourceId: this.model.getData().resourceId });\n\n let message = this.pageSpec ? '' : 'SPEC NOT LOADED YET. ';\n message += this.lmContextService.getContext() ? '' : 'CONTEXT NOT LOADED YET. ';\n const resourceInfo = this.pageSpec && this.pageSpec.pageSpec && this.pageSpec.pageSpec.resourceInfo ? this.pageSpec.pageSpec.resourceInfo : undefined;\n const componentConfigInfo: ConfigInfo = {};\n\n componentConfigInfo['personalizeTabs'] = this.personalizeTabs;\n componentConfigInfo['personalization'] = this.pageSpec ? this.pageSpec.pageSpec.personalization : undefined;\n componentConfigInfo['configuration'] = this.pageSpec ? this.pageSpec.pageSpec.configuration : undefined;\n componentConfigInfo['configStamp'] = this.pageSpec ? this.pageSpec.pageSpec.configStamp : 0;\n componentConfigInfo['classConfigStamp'] = this.pageSpec ? this.pageSpec.pageSpec.classConfigStamp : 0;\n\n const pageInfo: LMComponentInfo = {\n componentType: 'PAGE',\n name: this.pageSpec ? this.pageSpec.pageSpec.name : undefined,\n type: 'page',\n developer: this.pageSpec ? this.pageSpec.developer : undefined,\n module: this.pageSpec ? this.pageSpec.module : undefined,\n userWebRequestId: this.getUserWebRequestId(),\n resourceId: this.resourceId,\n pageSpec: JSON.stringify(this.pageSpec, null, 4),\n hasPanels: this.hasPanels,\n // lmTabsOptions: JSON.stringify(this.lmTabsOptions, null, 4),\n overrideListTitle: this.overrideListTitle,\n hideTitleBar: this.hideTitleBar,\n pageTitle: this.pageTitle,\n configInfo: componentConfigInfo,\n lpl: this.pageSpec ? this.pageSpec.pageSpec.lpl : undefined,\n resourceInfo,\n tenant: this.lmContextService.getContext() ? this.lmContextService.getContext().dataArea : undefined,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n\n message: message.length > 0 ? message : undefined,\n };\n\n return pageInfo;\n }\n\n public getComponentPlaceHolder() {\n return this.placeholder;\n }\n\n loadComponentState(): void {\n if (this.lmContextService.disablePageState()) {\n return;\n }\n\n if (this.lmContextService.getClearPageState()) {\n this.clearComponentState(true);\n this.lmContextService.setClearNextPageState(false);\n }\n\n this.pageState = this.lmPageStateService.getPageState(this.buildPageStateKeyParams());\n this.pagePersonalization = this.lmPagePersonalizationService.getPagePersonalization(this.buildPagePersonalizationKeyParams());\n }\n\n saveComponentState(includeSubComponents?: boolean) {\n this.lmPageStateService.savePageState(this.buildPageStateKeyParams(), this.pageState);\n if (includeSubComponents) {\n this.pagePanelComponentList.forEach((panel) => {\n panel.savePanelState();\n });\n }\n this.lmPagePersonalizationService.savePagePersonalization(this.buildPagePersonalizationKeyParams(), this.pagePersonalization);\n }\n\n clearComponentState(includeSubComponents?: boolean): void {\n this.lmStateHelperService.clearPageComponentState(this.route.snapshot.params['resourceId'], this.pageSpec, this.elementRef.nativeElement.id, includeSubComponents);\n }\n\n hashTagChanged(url: string, newHashTag: string): boolean {\n if (this.isSinglePanelPage) {\n return true; // if single panel page then your already on it.\n }\n\n const targetPanelName = newHashTag;\n\n // ------------------------------------------------------------------------\n // 1. activate panel associated with newHasTag passed in\n // ------------------------------------------------------------------------\n const pagePanel: LMPagePanelSpec = this.panels.find((panel: LMPagePanelSpec) => (panel.panelName === targetPanelName));\n\n if (!pagePanel) {\n return false;\n }\n\n // (this.tabs as any).activate(pagePanel.id);\n this.sohoTabsComponent.select(pagePanel.id);\n\n this.lmBusyIndicatorService.hideBusyIndicator();\n\n // ------------------------------------------------------------------------\n // 2. replace the url w/o the hashtag in the location service\n // ------------------------------------------------------------------------\n this.location.replaceState(this.lmUrlUtilService.toRelativeUrl(url));\n return true;\n }\n\n shouldUseAlternateTabs() {\n return false;\n }\n\n canPersonalize() {\n return true;\n }\n\n private buildContextFormInfo(): void {\n this.hasContextForm = true;\n if (!this.hideTitleBar) {\n this.lmBannerHeaderComponentRef.instance.fullPageScroll = true;\n }\n\n const contextFormBusSpec = this.pageSpec.pageSpec.contextFormInfo.busFormSpec;\n this.buildBackgroundInfo(contextFormBusSpec);\n\n this.contextFormSpec = {\n resourceId: this.pageSpec + '_ContextForm',\n busFormSpec: contextFormBusSpec,\n isContextForm: true,\n isReadOnly: true\n };\n\n // no urls for a page context form. pass skipFilloutUrls to the formUrlInfo builder.\n this.contextFormUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.contextFormSpec, { skipFilloutUrls: true });\n\n if (this.pageSpec.pageSpec.contextFormInfo.dataView) {\n this.contextFormDataView = this.pageSpec.pageSpec.contextFormInfo.dataView;\n }\n }\n\n private buildBackgroundInfo(contextFormBusSpec: LMBusFormSpec): void {\n if (!contextFormBusSpec.contextForm.background) {\n return;\n }\n const background = contextFormBusSpec.contextForm.background;\n this.useThemeColor = background.useThemeColor;\n this.useBackgroundImage = background.useBackgroundImage;\n\n if (this.useBackgroundImage) {\n\n this.backgroundImageUrl = this._sanitizer.bypassSecurityTrustStyle(`url('${background.image}')`);\n }\n }\n\n private handleNewSinglePanelSelection() {\n this.isSinglePanel = this.isSinglePanelPage;\n setTimeout(() => {\n const pagePanelComponent = this.pagePanelComponentList.toArray()[0];\n this.pageState.selectedTabId = pagePanelComponent.panel.id;\n if (pagePanelComponent) {\n this.activatePanel(pagePanelComponent);\n }\n });\n }\n\n // when update the lmtaboptions (rebuilding the array), this tells angualar whether or not the object changed\n // keeps templates from being reinitialized for the same lmb-page-panel spec\n trackById(index: number, tab: LMTab): string {\n return tab.id;\n }\n}\n","\n

          \n CURRENTLY UNSUPPORTED SOHO XI PATTERN DETECTED\n

          \n \n
          \n\n \n
          \n \n \n
          \n \n
          \n \n
          \n\n
          \n\n \n \n \n \n \n \n \n \n \n \n \n \n
          \n \n\n \n\n\n\n
          \n \n \n \n \n \n \n
          \n
          \n \n
          \n
          \n
          \n
          \n \n
          \n\n \n 0\"\n tabindex=\"0\"\n id=\"{{lmTabsOptions.tabs[0].id}}\"\n #LMPagePanelComponent\n [class.lm-page-single-panel]=\"true\"\n [panel]=\"lmTabsOptions.tabs[0].panel\"\n [isSinglePanePage]=\"true\"\n [overrideListTitle]=\"overrideListTitle\"\n [messageRuleView]=\"dataView\"\n [pageHasContextForm]=\"hasContextForm\"\n (panelContentDisplayed)=\"onPanelContentDisplayed($event)\"\n (updateToolbarStateEvent)=\"onUpdateToolbarStateEvent($event)\"\n (sendContextMessageEvent)=\"onSendContextMessageEvent($event)\"\n (panelContentModified)=\"onPanelContentModified($event)\"\n (panelDataUpdated)=\"onPanelDataUpdated($event)\"\n >\n\n
          \n

          {{noPageDetailsString}}

          \n
          \n
          \n
          \n\n\n \n \n \n\n\n\n
          \n \n
          \n
          \n\n
          \n","export * from './lm-default-route.component';\nexport * from './lm-home-route.component';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lm-default-route',\n template: `\n
          \n

          The current URL does not have an Angular Route defined.

          \n

          Make sure the url is properly constructed for angular routes

          \n
          \n `\n})\nexport class LMDefaultRouteComponent {\n\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lm-home-route',\n template: `\n
          \n

          Home route for the Angular Soho 4 landmarkUI

          \n
          \n `\n})\nexport class LMHomeRouteComponent {\n\n constructor() {}\n}\n","export * from './lm-toolbar.component';\nexport * from './lm-toolbar-service.base';\nexport * from './lm-dynamic-toolbar.service';\nexport * from './lm-toolbar-service-adapter';\n","import { Injectable } from '@angular/core';\nimport { LMToolbarServiceBase } from './lm-toolbar-service.base';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMToolbarServiceAdapter } from './lm-toolbar-service-adapter';\nimport { AppConstants } from '@app/utils';\n\n@Injectable()\nexport class LMDynamicToolbarService extends LMToolbarServiceBase {\n constructor(\n public lmToolbarServiceAdapter: LMToolbarServiceAdapter\n ) {\n super(lmToolbarServiceAdapter);\n }\n\n public getRelatedActionMenuItems(relationActionUrl: string): Observable {\n return new Observable (observer => {\n this.lmToolbarServiceAdapter.http\n .get(relationActionUrl).pipe(\n catchError(error => {\n this.lmToolbarServiceAdapter.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }))\n .subscribe((res: any) => {\n this.lmToolbarServiceAdapter.lmLoggerService.log('Related DataViewSet retrieved');\n if (res?.actionSpec.type === AppConstants.ACTION_TYPE_CREATE\n || res?.actionSpec.type === AppConstants.ACTION_TYPE_SET\n || res?.actionSpec.type === AppConstants.ACTION_TYPE_IMPORT) {\n const headerRelMenItem: RelatedMenuItem[] = [ { text: res.dataViewSet.header.representativeText, resourceId: res.dataViewSet.header.resourceId } ];\n observer.next({ actionSpec: res.actionSpec, relatedMenuItems: headerRelMenItem });\n observer.complete();\n } else {\n let i = 0;\n const relMenuItems: RelatedMenuItem[] = [];\n const dataViewSet = res.dataViewSet;\n dataViewSet.data.forEach(dataView => {\n relMenuItems[ i++ ] = { text: dataView.representativeText, resourceId: dataView.resourceId };\n });\n observer.next({ actionSpec: res.actionSpec, relatedMenuItems: relMenuItems });\n observer.complete();\n }\n });\n });\n }\n}\n\nexport interface RelatedMenuItem {\n resourceId: string;\n text: string;\n}\n\nexport interface RelatedMenuItemResponse {\n actionSpec: LMActionSpec;\n relatedMenuItems: RelatedMenuItem[];\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {\n LMContextService,\n LMDrillService,\n LMLoggerService,\n LMConfigurationService,\n LMRelatedReportService\n} from '@services/index';\nimport { LMThemeService } from '@banner/lm-theme.service';\n\n@Injectable()\nexport class LMToolbarServiceAdapter {\n constructor(\n public http: HttpClient,\n public lmContextService: LMContextService,\n public lmDrillService: LMDrillService,\n public lmLoggerService: LMLoggerService,\n public lmRelatedReportService: LMRelatedReportService,\n public lmThemeService: LMThemeService,\n public lmConfigurationService: LMConfigurationService\n ) {}\n}\n","import { AppConstants } from '@utils/app.constants';\nimport { DrillPointsParams, PersonalizeParams, RelatedReportParams } from '@services/index';\nimport { Observable, Subscriber, defer } from 'rxjs';\nimport { LMToolbarServiceAdapter } from './lm-toolbar-service-adapter';\nimport { map } from 'rxjs/operators';\n\n/**\n * Created by ppatton on 1/4/2017.\n */\nexport class LMToolbarServiceBase {\n\n protected toolbarButtons: Array = new Array();\n protected toolbarButtonObserver: Subscriber>;\n private toolbarButtonObservable: Observable>;\n\n protected secondaryToolbarButtons: Array = new Array();\n protected secondaryToolbarButtonObserver: Subscriber>;\n protected secondaryToolbarButtonIds: Array = [];\n private secondaryToolbarButtonObservable: Observable>;\n\n private AUDITVIEW_ACTIONS: Array = null;\n private STANDARD_TOOLBAR_ACTIONS: { [ key: string ]: LMBusActionReference } = null;\n private STANDARD_ACTION_MENU_ITEMS: { [ key: string ]: LMBusActionReference } = null;\n private STANDARD_OPTIONS_MENU_ITEMS: { [ key: string ]: LMBusActionReference } = null;\n private STANDARD_SORT_MENU_ITEMS: Array;\n private STANDARD_SEPARATOR_MENU_ITEM: LMBusActionReference;\n private readonly testVersion1: boolean;\n\n constructor(public lmToolbarServiceAdapter: LMToolbarServiceAdapter) {\n if (!lmToolbarServiceAdapter.lmContextService) {\n // todo: ben for lm-form-toolbar.service.spec.ts and lm-list-toolbar.service.spec.ts tests failing.\n // for some reason no lmContextService is set on the lmToolbarServiceAdapter at this time when these\n // test consttruct this service.base.\n this.testVersion1 = true;\n } else {\n this.testVersion1 = lmToolbarServiceAdapter?.lmContextService?.testVersion() === AppConstants.TESTVERSION_V1;\n }\n this.toolbarButtonObservable = new Observable>(observer => {\n this.toolbarButtonObserver = observer;\n });\n\n this.secondaryToolbarButtonObservable = new Observable>(observer => {\n this.secondaryToolbarButtonObserver = observer;\n });\n }\n\n public getAuditViewActions(): Array {\n if (!this.AUDITVIEW_ACTIONS) {\n this.AUDITVIEW_ACTIONS = [\n { id: AppConstants.ACTION_TYPE_AUDIT_OVERRIDE, automationId: AppConstants.ACTION_TYPE_AUDIT_OVERRIDE, type: 'standard', label: Soho.Locale.translate('AuditCreate') },\n { id: AppConstants.ACTION_TYPE_AUDIT_UPDATE, automationId: AppConstants.ACTION_TYPE_AUDIT_UPDATE, type: 'standard', label: Soho.Locale.translate('AuditUpdate') },\n { id: AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE, automationId: AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE, type: 'standard', label: Soho.Locale.translate('ChangeEffectiveDate') },\n { id: AppConstants.ACTION_TYPE_AUDIT_DELETE, automationId: AppConstants.ACTION_TYPE_AUDIT_DELETE, type: 'standard', label: Soho.Locale.translate('AuditDelete') },\n ];\n }\n return this.AUDITVIEW_ACTIONS;\n }\n public getStandardToolbarActions(): { [ key: string ]: LMBusActionReference } {\n if (!this.STANDARD_TOOLBAR_ACTIONS) {\n this.STANDARD_TOOLBAR_ACTIONS = {\n printToPDF: { id: AppConstants.STANDARD_TOOLBAR_EXPORTPDF, automationId: AppConstants.STANDARD_TOOLBAR_EXPORTPDF, type: 'standard', tooltip: Soho.Locale.translate('PrintToFile'), icon: 'pdf' },\n prevRecord: { id: AppConstants.STANDARD_TOOLBAR_PREVRECORD, automationId: AppConstants.STANDARD_TOOLBAR_PREVRECORD, type: 'standard', tooltip: Soho.Locale.translate('Previous'), icon: 'previous' }, //, label: Soho.Locale.translate('Previous') },\n nextRecord: { id: AppConstants.STANDARD_TOOLBAR_NEXTRECORD, automationId: AppConstants.STANDARD_TOOLBAR_NEXTRECORD, type: 'standard', tooltip: Soho.Locale.translate('Next'), icon: 'next' }, //, label: Soho.Locale.translate('Next') },\n search: { id: AppConstants.STANDARD_TOOLBAR_SEARCH, automationId: AppConstants.STANDARD_TOOLBAR_SEARCH, type: 'standard', tooltip: Soho.Locale.translate('Search'), icon: 'filter' }, //, label: Soho.Locale.translate('Search') },\n create: { id: AppConstants.STANDARD_TOOLBAR_CREATE, automationId: AppConstants.STANDARD_TOOLBAR_CREATE, type: 'standard', tooltip: Soho.Locale.translate('Create'), icon: 'create' }, //, label: Soho.Locale.translate('Create') },\n inlineCreate: { id: AppConstants.STANDARD_TOOLBAR_INLINECREATE, automationId: AppConstants.STANDARD_TOOLBAR_INLINECREATE, type: 'standard', tooltip: Soho.Locale.translate('InlineCreate'), icon: 'create' }, //, label: Soho.Locale.translate('InlineCreate') },\n createMenu: { id: AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON, type: 'standard', tooltip: Soho.Locale.translate('Create'), icon: 'create' }, //, label: Soho.Locale.translate('Create') },\n open: { id: AppConstants.STANDARD_TOOLBAR_OPEN, automationId: AppConstants.STANDARD_TOOLBAR_OPEN, type: 'standard', tooltip: Soho.Locale.translate('Open'), icon: 'open' }, //, label: Soho.Locale.translate('Open') },\n save: { id: AppConstants.STANDARD_SAVE, automationId: AppConstants.STANDARD_SAVE, type: 'standard', tooltip: Soho.Locale.translate('Save'), icon: 'save' }, //, label: Soho.Locale.translate('Save') },\n saveAndNew: { id: AppConstants.STANDARD_TOOLBAR_SAVENEW, automationId: AppConstants.STANDARD_TOOLBAR_SAVENEW, type: 'standard', tooltip: Soho.Locale.translate('SaveAndNew'), icon: 'save-new' }, //, label: Soho.Locale.translate('SaveAndNew') },\n matrixShowDetails: { id: AppConstants.STANDARD_TOOLBAR_MATRIXSHOWDETAIL, automationId: AppConstants.STANDARD_TOOLBAR_MATRIXSHOWDETAIL, type: 'standard', label: Soho.Locale.translate('ShowDetails') },\n matrixHideDetails: { id: AppConstants.STANDARD_TOOLBAR_MATRIXHIDEDETAIL, automationId: AppConstants.STANDARD_TOOLBAR_MATRIXHIDEDETAIL, type: 'standard', label: Soho.Locale.translate('HideDetails') },\n // Save As Draft - used by process flow\n saveAsDraft: { id: AppConstants.STANDARD_TOOLBAR_SAVEASDRAFT, automationId: AppConstants.STANDARD_TOOLBAR_SAVEASDRAFT, type: 'standard', tooltip: Soho.Locale.translate('SaveAsDraft'), icon: 'save', label: Soho.Locale.translate('SaveAsDraft'), },\n pfCompare: { id: AppConstants.STANDARD_TOOLBAR_PFCOMPARE, automationId: AppConstants.STANDARD_TOOLBAR_PFCOMPARE, type: 'standard', tooltip: Soho.Locale.translate('Compare'), label: Soho.Locale.translate('Compare'), },\n chartsMenu: { id: AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON, type: 'standard', tooltip: Soho.Locale.translate('ChartOptions'), icon: 'chart' }, //, label: Soho.Locale.translate('ChartOptions') },\n delete: { id: AppConstants.STANDARD_TOOLBAR_DELETE, automationId: AppConstants.STANDARD_TOOLBAR_DELETE, type: 'standard', tooltip: Soho.Locale.translate('Delete'), icon: 'delete' }, //, label: Soho.Locale.translate('Delete') },\n refresh: { id: AppConstants.STANDARD_TOOLBAR_REFRESH, automationId: AppConstants.STANDARD_TOOLBAR_REFRESH, type: 'standard', tooltip: Soho.Locale.translate('Refresh'), icon: 'refresh' }, //, label: Soho.Locale.translate('Refresh') },\n sort: { id: AppConstants.STANDARD_TOOLBAR_SORT, automationId: AppConstants.STANDARD_TOOLBAR_SORT, type: 'standard', tooltip: Soho.Locale.translate('ListSortLabel'), icon: 'sort-ascending' },\n actions: { id: AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON, type: 'standard', label: Soho.Locale.translate('Actions') },\n allActionsMenu: { id: AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON, type: 'standard', label: Soho.Locale.translate(AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON) },\n editMode: { id: AppConstants.STANDARD_TOOLBAR_EDITMODE, automationId: AppConstants.STANDARD_TOOLBAR_EDITMODE, type: 'standard', label: Soho.Locale.translate('EditMode'), icon: 'edit' },\n options: { id: AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON, type: 'standard', label: Soho.Locale.translate('Options') },\n drillAroundMenu: { id: AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON, automationId: AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON, type: 'standard', label: AppConstants.DRILL_AROUND_LABEL },\n // UserListView\n userListViewMenu: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU, type: 'related', tooltip: Soho.Locale.translate('SavedSearchMenu'), icon: 'saved-search' },\n userListViewMoreMenu: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MORE_MENU, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MORE_MENU, type: 'related', label: Soho.Locale.translate('More') },\n };\n }\n\n return this.STANDARD_TOOLBAR_ACTIONS;\n }\n public getStandardActionMenuItems() {\n if (!this.STANDARD_ACTION_MENU_ITEMS) {\n this.STANDARD_ACTION_MENU_ITEMS = {\n open: { id: AppConstants.STANDARD_TOOLBAR_OPEN, automationId: AppConstants.STANDARD_TOOLBAR_OPEN, type: 'standard', label: Soho.Locale.translate('Open'), icon: 'open' },\n save: { id: AppConstants.STANDARD_SAVE, automationId: AppConstants.STANDARD_SAVE, type: 'standard', label: Soho.Locale.translate('Save'), icon: 'save' },\n saveAndNew: { id: AppConstants.STANDARD_TOOLBAR_SAVENEW, automationId: AppConstants.STANDARD_TOOLBAR_SAVENEW, type: 'standard', label: Soho.Locale.translate('SaveAndNew'), icon: 'save-new' },\n inlineCreate: { id: AppConstants.STANDARD_TOOLBAR_INLINECREATE, automationId: AppConstants.STANDARD_TOOLBAR_INLINECREATE, type: 'standard', label: Soho.Locale.translate('InlineCreate'), icon: 'create' },\n createWithin: { id: AppConstants.STANDARD_TOOLBAR_CREATEWITHIN, automationId: AppConstants.STANDARD_TOOLBAR_CREATEWITHIN, type: 'standard', label: Soho.Locale.translate('CreateWithin'), icon: 'create' },\n copyRow: { id: AppConstants.STANDARD_TOOLBAR_COPYROW, automationId: AppConstants.STANDARD_TOOLBAR_COPYROW, type: 'standard', label: Soho.Locale.translate('CopyRow') },\n userListViewSave: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE, type: 'standard', label: Soho.Locale.translate('Save') },\n userListViewSaveAs: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVEAS, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVEAS, type: 'standard', label: Soho.Locale.translate('SaveAs') },\n userListViewClear: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR, type: 'standard', label: Soho.Locale.translate('Clear') },\n userListViewManage: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MANAGE, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MANAGE, type: 'standard', label: Soho.Locale.translate('Manage') },\n userListView: { id: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW, automationId: AppConstants.STANDARD_TOOLBAR_USERLISTVIEW, type: 'standard' },\n };\n }\n\n return this.STANDARD_ACTION_MENU_ITEMS;\n }\n\n public getStandardOptionsMenuItems(): { [ key: string ]: LMBusActionReference } {\n if (!this.STANDARD_OPTIONS_MENU_ITEMS) {\n this.STANDARD_OPTIONS_MENU_ITEMS = {\n search: { id: AppConstants.STANDARD_TOOLBAR_SEARCH, automationId: AppConstants.STANDARD_TOOLBAR_SEARCH, type: 'standard', label: Soho.Locale.translate('Search') },\n printToFile: { id: AppConstants.STANDARD_TOOLBAR_PRINTTOFILE, automationId: AppConstants.STANDARD_TOOLBAR_PRINTTOFILE, type: 'standard', label: Soho.Locale.translate('PrintToFile') },\n printToPDF: { id: AppConstants.STANDARD_TOOLBAR_EXPORTPDF, automationId: AppConstants.STANDARD_TOOLBAR_EXPORTPDF, type: 'standard', label: Soho.Locale.translate('PrintToPDF') },\n exportToCSV: { id: AppConstants.STANDARD_TOOLBAR_EXPORTCSV, automationId: AppConstants.STANDARD_TOOLBAR_EXPORTCSV, type: 'standard', label: Soho.Locale.translate('ExportToCSV') },\n createReport: { id: AppConstants.STANDARD_TOOLBAR_CREATEREPORT, automationId: AppConstants.STANDARD_TOOLBAR_CREATEREPORT, type: 'standard', label: Soho.Locale.translate('CreateReport') },\n relatedReport: { id: AppConstants.STANDARD_TOOLBAR_RELATEDREPORT, automationId: AppConstants.STANDARD_TOOLBAR_RELATEDREPORT, type: 'standard', label: Soho.Locale.translate('RelatedReport') },\n personalize: { id: AppConstants.STANDARD_TOOLBAR_PERSONALIZE, automationId: AppConstants.STANDARD_TOOLBAR_PERSONALIZE, type: 'standard', label: Soho.Locale.translate('Personalize') },\n refresh: { id: AppConstants.STANDARD_TOOLBAR_REFRESH, automationId: AppConstants.STANDARD_TOOLBAR_REFRESH, type: 'standard', label: Soho.Locale.translate('Refresh') },\n auditLog: { id: AppConstants.STANDARD_TOOLBAR_VIEWAUDIT, automationId: AppConstants.STANDARD_TOOLBAR_VIEWAUDIT, type: 'standard', label: Soho.Locale.translate('ViewAuditLog') },\n fullAuditLog: { id: AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT, automationId: AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT, type: 'standard', label: Soho.Locale.translate('ViewFullAuditLog') },\n auditCompare: { id: AppConstants.STANDARD_TOOLBAR_AUDITCOMPARE, automationId: AppConstants.STANDARD_TOOLBAR_AUDITCOMPARE, type: 'standard', label: Soho.Locale.translate('AuditCompare') },\n };\n }\n return this.STANDARD_OPTIONS_MENU_ITEMS;\n }\n\n public getStandardSortMenuItems(elementIdPrefix: string): Array {\n const sortAscendingId = this.testVersion1 ? AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING : `${elementIdPrefix}_${AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING}`;\n const sortDescendingId = this.testVersion1 ? AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING : `${elementIdPrefix}_${AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING}`;\n\n if (!this.STANDARD_SORT_MENU_ITEMS) {\n this.STANDARD_SORT_MENU_ITEMS = [\n this.getStandardSeparatorMenuItem(),\n { id: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING, automationId: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_ASCENDING, elementId: sortAscendingId, type: 'standard', label: Soho.Locale.translate('SortAtoZ') },\n { id: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING, automationId: AppConstants.STANDARD_TOOLBAR_SORT_ORDER_DESCENDING, elementId: sortDescendingId, type: 'standard', label: Soho.Locale.translate('SortZtoA') },\n ];\n }\n return this.STANDARD_SORT_MENU_ITEMS;\n }\n\n public getStandardSeparatorMenuItem(): LMBusActionReference {\n if (!this.STANDARD_SEPARATOR_MENU_ITEM){\n this.STANDARD_SEPARATOR_MENU_ITEM = { id: AppConstants.CSS_MENU_SEPARATOR, type: 'separator', label: '' };\n }\n return this.STANDARD_SEPARATOR_MENU_ITEM;\n }\n\n public getToolbarButtonsObservable(): Observable> {\n return this.toolbarButtonObservable;\n }\n\n public getSecondaryToolbarButtonsObservable(): Observable> {\n return this.secondaryToolbarButtonObservable;\n }\n\n public setSecondaryToolbarOptions(buttonIds: string[]): void {\n this.secondaryToolbarButtonIds = buttonIds;\n }\n\n public reset() {\n this.toolbarButtons = [];\n this.secondaryToolbarButtons = [];\n this.fireToolbarObservable();\n this.fireSecondaryToolbarObservable();\n }\n\n protected buildLMToolbarButton(spec: LMFormSpec | LMListSpec | LMPageSpec, actionReference: LMBusActionReference, visible: boolean, disabled: boolean, isMoreMenuItem: boolean): LMToolbarButton { // , menuType?: string, menu?: Array\n this.updateActionIcon(spec, actionReference);\n const id = this.buildToolbarButtonId(spec, actionReference);\n const automationId = this.buildToolbarButtonAutomationId(spec, actionReference);\n const toolbarButton: LMToolbarButton = {\n id,\n automationId,\n actionReference,\n state: { visible, disabled: disabled === false ? null : disabled },\n data: JSON.stringify(actionReference),\n icon: this.lmToolbarServiceAdapter.lmThemeService.lplIconToSohoXI(actionReference.icon),\n isToggle: this.isToggleButton(actionReference),\n // menuType: menuType,\n // menu: menu\n };\n if (actionReference.isChecked) {\n toolbarButton.isChecked = true;\n }\n if (actionReference.hover) {\n // set the tooltip to the translated one from the server\n toolbarButton.actionReference.tooltip = actionReference.hover;\n }\n if (isMoreMenuItem) {\n toolbarButton.isMoreMenuItem = isMoreMenuItem;\n }\n if (actionReference.icon && !actionReference.label) {\n toolbarButton.isIconOnly = true;\n // todo move these to the server so that the client doesn't have to massage these values\n if (!actionReference.hover ) {\n this.setDefaultHoverText(spec, actionReference, toolbarButton);\n }\n }\n return toolbarButton;\n }\n\n protected buildActionReference(actionSpec: LMActionSpec) {\n const actionReference: LMBusActionReference = {\n id: actionSpec.name,\n type: 'standard',\n };\n if (actionSpec.type === 'UPDATE'\n || actionSpec.type === 'DELETE'\n || actionSpec.type === 'CREATE'\n || actionSpec.type === 'CREATE_WITHIN'\n || actionSpec.type === 'FUNCTION'\n || actionSpec.type === 'SET'\n || actionSpec.type === 'AUDIT_DELETE'\n || actionSpec.type === 'CHANGE_EFFECTIVEDATE') {\n actionReference.type = 'action';\n actionReference.index = actionSpec.index;\n }\n\n return actionReference;\n }\n\n protected buildDrillActionReferences(drillAction: LMDrillAction) {\n const actionReference: LMBusActionReference = {\n id: drillAction.drillId,\n automationId: drillAction.drillId,\n label: drillAction.drillName,\n relActionUrl: drillAction.drillUrl,\n isDrillAround: true,\n type: 'related'\n };\n return actionReference;\n }\n\n protected buildRelatedReportReferences(lmRelatedReportAction: LMRelatedReportAction) {\n const actionReference: LMBusActionReference = {\n id: AppConstants.STANDARD_TOOLBAR_RELATEDREPORT,\n automationId: AppConstants.STANDARD_TOOLBAR_RELATEDREPORT,\n label: lmRelatedReportAction.reportName,\n relActionUrl: lmRelatedReportAction.reportUrl,\n type: 'standard'\n };\n return actionReference;\n }\n\n protected buildPersonalizeReferences(lmPersonalizeAction: LMPersonalizeAction, actionUrl?: string) {\n const actionReference: LMBusActionReference = {\n id: lmPersonalizeAction.name,\n automationId: lmPersonalizeAction.name,\n label: lmPersonalizeAction.label,\n type: 'personalize',\n relActionUrl: actionUrl\n };\n\n // if (actionUrl) {\n // const compiledUrlTemplate = urltemplate.parse(actionUrl);\n // actionReference.relActionUrl = compiledUrlTemplate.expand({ resourceId: resourceId });\n // }\n return actionReference;\n }\n\n protected buildUserListViewReferences(userListView: LMUserListViewItem, isChecked: boolean) {\n const actionReference = {\n ...(this.getStandardActionMenuItems().userListView),\n label: userListView.name,\n userListViewItem: userListView,\n searchState: JSON.parse(userListView.searchState),\n isChecked\n };\n return actionReference;\n }\n\n protected buildPfActionReference(pfAction: LMProcessFlowAction) {\n let iconName: LMIcon = 'process';\n if (pfAction.name.toLowerCase() === 'approve') {\n iconName = 'approve';\n } else if (pfAction.name.toLowerCase() === 'acknowledge') {\n iconName = 'submit';\n } else if (pfAction.name.toLowerCase() === 'reject') {\n iconName = 'reject';\n } else if (pfAction.name.toLowerCase() === 'return') {\n iconName = 'undo';\n }\n\n const actionReference: LMBusActionReference = {\n id: pfAction.name,\n label: pfAction.label,\n type: 'processflow',\n icon: iconName,\n };\n return actionReference;\n }\n\n protected actionSpecsToActionRefs(actionSpecs: Array, dataView?: LMDataView): Array {\n return actionSpecs.map(actionSpec => {\n let label = actionSpec.label;\n if (dataView && dataView.actionMeta) {\n const actionMeta = dataView.actionMeta[actionSpec.name];\n if (actionMeta) {\n label = actionMeta.actionLabel;\n }\n }\n return {\n id: actionSpec.name,\n automationId: actionSpec.name,\n label,\n type: 'action',\n index: actionSpec.index\n };\n });\n }\n\n private isToggleButton(actionReference: LMBusActionReference): boolean {\n switch (actionReference.type) {\n case 'standard':\n return actionReference.id === AppConstants.STANDARD_TOOLBAR_SEARCH;\n\n case 'action':\n case 'related':\n case 'navigation':\n case 'helperList':\n default:\n return false;\n }\n }\n\n protected includeActionRef(spec: LMFormSpec | LMListSpec, actionReference: LMBusActionReference, listStateInfo?: LMListStateInfo): boolean {\n return true;\n }\n\n protected actionRefArrayToToolbarButtonArray(spec: LMFormSpec | LMListSpec, actionRefArray: Array, isMoreMenuItem = false, listStateInfo?: LMListStateInfo): Array {\n return actionRefArray\n .filter(actionRef => this.includeActionRef(spec, actionRef, listStateInfo))\n .map(actionRef => this.buildLMToolbarButton(spec, actionRef, false, true, isMoreMenuItem));\n }\n\n public drillActionsToActionRefArray(drillActions: Array): Array {\n return drillActions.map(drillAction => this.buildDrillActionReferences(drillAction));\n }\n\n protected pfActionsToActionRefArray(pfActions: Array): Array {\n return pfActions.map(pfAction => this.buildPfActionReference(pfAction));\n }\n\n private relatedReportsToActionRefArray(lmRelatedReportActions: Array): Array {\n return lmRelatedReportActions.map(lmRelatedReportAction => this.buildRelatedReportReferences(lmRelatedReportAction));\n }\n\n private personalizeToActionRefArray(lmPersonalizeActions: Array, actionUrl?: string): Array {\n return lmPersonalizeActions.map(lmPersonalizeAction => this.buildPersonalizeReferences(lmPersonalizeAction, actionUrl));\n }\n\n private userListViewsToActionRefArray(lmUserListViews: LMUserListViewItem[], appliedUserListView?: string): Array {\n return lmUserListViews.map(lmUserListView => this.buildUserListViewReferences(lmUserListView, lmUserListView.userListView === appliedUserListView));\n }\n\n protected hasCreateMenu(actionReferences: Array): boolean {\n let hasCreateMenu = false;\n if (actionReferences?.length > 0) {\n const createMenuActionRef = actionReferences.find(actionRef => actionRef.id === AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON);\n hasCreateMenu = !!createMenuActionRef;\n }\n\n return hasCreateMenu;\n }\n\n protected actionSpecsToActionRefsSorted(actionSpecs: Array): Array {\n const actionRefs: Array = this.actionSpecsToActionRefs(actionSpecs);\n actionRefs.sort((actionRef1: LMBusActionReference, actionRef2: LMBusActionReference) => actionRef1.label.localeCompare(actionRef2.label));\n\n return actionRefs;\n }\n\n public createToolbarMenuItemsFromActionReferences(\n spec: LMFormSpec | LMListSpec | LMPageSpec,\n actionReferences: Array,\n isMoreMenuItem = false\n ): Array {\n return actionReferences.map(actionReference => this.buildLMToolbarButton(spec, actionReference, true, false, isMoreMenuItem));\n }\n\n protected fireToolbarObservable() {\n // ---------------------------------------------------------------------\n // Return a copy of the toolbar buttons array so change detection\n // works for the banner toolbar.\n // ---------------------------------------------------------------------\n if (this.toolbarButtonObserver) {\n this.toolbarButtonObserver.next([ ...this.toolbarButtons ]);\n }\n }\n\n protected fireSecondaryToolbarObservable() {\n // ---------------------------------------------------------------------\n // Return a copy of the secondary toolbar buttons array so change\n // detection works for the banner toolbar.\n // ---------------------------------------------------------------------\n if (this.secondaryToolbarButtonObserver) {\n this.secondaryToolbarButtonObserver.next([ ...this.secondaryToolbarButtons ]);\n }\n }\n\n public buildMoreButtonMenu(\n spec: LMFormSpec | LMListSpec | LMPageSpec,\n response: SohoPopupMenuResponseFunction,\n options: any,\n buttons: Array,\n moreButtonParams: LMToolbarMoreButtonMenuParams,\n relatedActionsFunction?: (response: AjaxBeforeOpenResponseFunction, options: any) => void\n ): void {\n if (options.hasOwnProperty('contextElement') && options.contextElement.length > 0) {\n let id = options.contextElement[0].id;\n let sourceFlexToolbarButtonId = '';\n\n // if (id === '' && options.isSubmenu) {\n // check for undefined, null, or ''\n if (!id && options.isSubmenu) {\n // overflowed button is a menu button. Need to step up the dom to get the correct id\n const idArray = options.contextElement[0].parentElement.previousElementSibling.id.split('-');\n id = idArray[idArray.length - 1];\n sourceFlexToolbarButtonId = id;\n\n const toolbarButtonElement = document.getElementById(id);\n id = JSON.parse(toolbarButtonElement.dataset.actionReference).id;\n }\n\n if (id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON) {\n if (moreButtonParams.showDrillAround) {\n // build drill around menu\n defer(async () => await this.lmToolbarServiceAdapter.lmDrillService.getDrillPoints(moreButtonParams.drillParams).toPromise())\n .subscribe((drillPoints: Array) => {\n let menuResponse = '';\n if (drillPoints.length > 0) {\n const actionRefs: Array = this.drillActionsToActionRefArray(drillPoints);\n\n const subMenuButtons: Array = this.createToolbarMenuItemsFromActionReferences(spec, actionRefs);\n for (let index = 0; subMenuButtons.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[ index ];\n if (menuItem.state.visible) {\n const classes = (menuItem.state.disabled ? 'is-disabled' : '') + ' ' + (menuItem.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, 'related', classes, menuItem);\n }\n }\n } else {\n const noActionMenu: LMToolbarButton = {\n actionReference: { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') },\n state: { disabled: false, visible: true }\n };\n const classes = noActionMenu.state.disabled ? 'is-disabled' : '';\n menuResponse += this.createMenuResponse(spec, noActionMenu.actionReference.id, classes, noActionMenu);\n }\n response(menuResponse);\n });\n } else {\n let menuResponse = '';\n const noActionMenu: LMToolbarButton = {\n actionReference: { id: 'noop', type: 'noop', label: Soho.Locale.translate('NoDrillsAvailable') },\n state: { disabled: false, visible: true }\n };\n const classes = noActionMenu.state.disabled ? 'is-disabled' : '';\n menuResponse += this.createMenuResponse(spec, noActionMenu.actionReference.id, classes, noActionMenu);\n\n response(menuResponse);\n }\n } else if (id === AppConstants.STANDARD_TOOLBAR_RELATEDREPORT) {\n this.lmToolbarServiceAdapter.lmRelatedReportService.getRelatedReports(moreButtonParams.relatedReportParams.sourceResourceUrl)\n .subscribe((reports: LMRelatedReports) => {\n let menuResponse = '';\n const lmRelatedReportActions = reports.relatedReports;\n\n if (lmRelatedReportActions.length > 0) {\n const actionRefs: Array = this.relatedReportsToActionRefArray(lmRelatedReportActions);\n\n // Add more reports link\n if (reports.moreReportsUrl) {\n actionRefs.push({\n id: AppConstants.STANDARD_TOOLBAR_RELATEDREPORT_MORE,\n label: Soho.Locale.translate('MoreReports'),\n relActionUrl: `${reports.moreReportsUrl}&reportListTitle=${moreButtonParams.relatedReportParams.listTitle}`,\n type: 'standard'\n });\n }\n\n const subMenuButtons: Array = this.createToolbarMenuItemsFromActionReferences(spec, actionRefs);\n for (let index = 0; subMenuButtons.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[index];\n if (menuItem.state.visible) {\n const classes = (menuItem.state.disabled ? 'is-disabled' : '') + ' ' + (menuItem.isChecked ? 'is-checked': '');\n menuResponse += this.createMenuResponse(spec, menuItem.id, classes, menuItem);\n }\n }\n } else {\n const noActionMenu: LMToolbarButton = {\n actionReference: {\n id: 'noop',\n type: 'noop',\n label: Soho.Locale.translate('NoRelatedReportAvailable')\n },\n state: { disabled: false, visible: true }\n };\n const classes = noActionMenu.state.disabled ? 'is-disabled' : '';\n menuResponse += this.createMenuResponse(spec, noActionMenu.actionReference.id, classes, noActionMenu);\n }\n response(menuResponse);\n });\n } else if (id === AppConstants.STANDARD_TOOLBAR_PERSONALIZE) {\n const userFolder: string = (spec as LMListSpec).userFolder;\n\n this.lmToolbarServiceAdapter.lmConfigurationService.getPersonalization(moreButtonParams.personalizeParams.sourceResourceUrl, userFolder)\n .subscribe((lmPersonalizeResponse: LMPersonalizeResponse) => {\n const lmPersonalizeActions = lmPersonalizeResponse.actions;\n const actionUrl = lmPersonalizeResponse.actionUrl;\n // let resourceId = lmPersonalizeResponse.resourceId;\n let menuResponse = '';\n const actionRefs: Array = this.personalizeToActionRefArray(lmPersonalizeActions, actionUrl);\n\n const subMenuButtons: Array = this.createToolbarMenuItemsFromActionReferences(spec, actionRefs);\n for (let index = 0; subMenuButtons.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[index];\n if (menuItem.state.visible) {\n const classes = (menuItem.state.disabled ? 'is-disabled' : '') + ' ' + (menuItem.isChecked ? 'is-checked': '');\n menuResponse += this.createMenuResponse(spec, 'related', classes, menuItem);\n }\n }\n response(menuResponse);\n });\n } else if (id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU || id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MORE_MENU) {\n this.userListViewMoreMenuResponse(id, options, spec, moreButtonParams).subscribe((menuResponse: string) => response(menuResponse));\n } else {\n let menuResponse = '';\n const parentButton = buttons.find(button => button.actionReference.id === id);\n if (!!parentButton) {\n for (const button of parentButton.menu) {\n if (button.actionReference.type === AppConstants.CSS_MENU_SEPARATOR) {\n menuResponse += `\n
        • `;\n continue;\n }\n if (button.state.visible) {\n if (button.menu) {\n const actionRef = this.stringifyJson(button.actionReference);\n menuResponse +=\n `
        • \n ${button.actionReference.label}\n
            \n
          • `;\n } else {\n const classes = (button.state.disabled ? 'is-disabled' : '') + ' ' + (button.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, button.id, classes, button);\n }\n }\n }\n response(menuResponse);\n } else {\n let actionRefData = options.contextElement[0].getAttribute('data-action-reference');\n // Alternatively, get action reference from its source flex button from the toolbar\n if (!actionRefData && id) {\n if (document.querySelector(`${id}`)) {\n actionRefData = document.querySelector(`#${id}`)\n .getAttribute('data-action-reference');\n } else {\n actionRefData = document.querySelector(`#${sourceFlexToolbarButtonId}`)\n .getAttribute('data-action-reference');\n }\n }\n const actionRef = JSON.parse(actionRefData) as LMBusActionReference;\n // Logic derived from LMToolbarComponent:onBeforeRelatedActionsOpen calling\n // LMDynamicToolbarService:getRelatedActionMenuItems and use response to build the submenu.\n // TODO: Consider converting this class into a servicea and merge it with LMDynamicToolbarService\n // todo: we have to chagne this so http is not called directly. This should be called from\n // SpecUtilService and be converted to the new spec url functionality.\n this.lmToolbarServiceAdapter.http.get(actionRef.relActionUrl)\n .pipe(\n map((relActionResponse: RelatedActionResponse) => {\n const actionSpec = relActionResponse.actionSpec;\n return relActionResponse.dataViewSet.data.map((dataView: LMDataView, index: number) =>\n this.buildToolbarRelatedActionMenuEntry(\n spec,\n {\n id: `${actionSpec.name}_popup${index}`,\n type: 'related',\n index: actionSpec.index,\n label: actionSpec.label,\n requestAction: actionSpec.requestAction,\n resourceId: dataView.resourceId\n } as LMBusActionReference,\n actionSpec,\n dataView.representativeText\n )\n );\n })\n ).subscribe((menuEntries: string[]) => {\n if (menuEntries.length === 0) {\n response(`
          • ${Soho.Locale.translate('NoItemsAvailable')}
          • `);\n } else {\n response(menuEntries.join(''));\n }\n });\n }\n }\n } else if (moreButtonParams.isContextMenu) {\n const initialResponse = this.buildFirstLevelMoreMenu(spec, buttons, moreButtonParams.showDrillAround);\n response(initialResponse);\n }\n }\n\n private userListViewMoreMenuResponse(id: string, options: any, spec: LMFormSpec | LMListSpec | LMPageSpec, moreButtonParams: LMToolbarMoreButtonMenuParams): Observable {\n return new Observable(observer => {\n let lk;\n if (id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MORE_MENU) {\n let submenuElem = options.contextElement[0].previousElementSibling as HTMLElement;\n if (!submenuElem) {\n submenuElem = options.contextElement[0].parentElement.previousElementSibling;\n }\n const actionRef = JSON.parse(submenuElem.dataset.actionReference) as LMBusActionReference;\n lk = actionRef.lk;\n }\n this.lmToolbarServiceAdapter.lmConfigurationService.fetchUserListViews(moreButtonParams.userListViewParams.userListViewUrl, lk).subscribe((result: LMUserListViewResponse) => {\n let menuResponse = '';\n const actionRefs: Array = this.userListViewsToActionRefArray(result.savedViews, moreButtonParams.userListViewParams.appliedUserListView);\n\n const subMenuButtons: Array = this.createToolbarMenuItemsFromActionReferences(spec, actionRefs);\n for (let index = 0; subMenuButtons.length > index; index++) {\n const menuItem: LMToolbarButton = subMenuButtons[index];\n if (menuItem.state.visible) {\n const classes = (menuItem.state.disabled ? 'is-disabled' : '') + ' ' + (menuItem.isChecked ? 'is-checked': '');\n menuResponse += this.createMenuResponse(spec, 'related', classes, menuItem);\n }\n }\n if (result.hasMore) {\n const moreActionRef = { ...this.getStandardToolbarActions().userListViewMoreMenu,\n lk: result.lk,\n isSubMenu: true,\n userListViewUrl: moreButtonParams.userListViewParams.userListViewUrl,\n appliedUserListView: moreButtonParams.userListViewParams.appliedUserListView,\n disableSave: moreButtonParams.userListViewParams.disableSave\n };\n const moreItem = this.buildLMToolbarButton(spec, moreActionRef, true, false, false);\n menuResponse += this.buildSubMenuItemLiFromButton(spec, moreItem);\n }\n\n if (id === AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU) {\n if (subMenuButtons.length > 0) {\n menuResponse += `
          • `;\n }\n const saveItem = this.buildLMToolbarButton(spec, this.getStandardActionMenuItems().userListViewSave, true, moreButtonParams.userListViewParams.disableSave, false);\n const saveClasses = (saveItem.state.disabled ? 'is-disabled' : '') + ' ' + (saveItem.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE, saveClasses, saveItem);\n\n const saveAsItem = this.buildLMToolbarButton(spec, this.getStandardActionMenuItems().userListViewSaveAs, true, moreButtonParams.userListViewParams.disableSave, false);\n const saveAsClasses = (saveAsItem.state.disabled ? 'is-disabled' : '') + ' ' + (saveAsItem.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_SAVE, saveAsClasses, saveAsItem);\n\n menuResponse += `
          • `;\n const clearItem = this.buildLMToolbarButton(spec, this.getStandardActionMenuItems().userListViewClear, true, moreButtonParams.userListViewParams.appliedUserListView === undefined, false);\n const clearClasses = (clearItem.state.disabled ? 'is-disabled' : '') + ' ' + (clearItem.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR, clearClasses, clearItem);\n\n const manageItem = this.buildLMToolbarButton(spec, this.getStandardActionMenuItems().userListViewManage, true, result.savedViews?.length === 0, false);\n const manageClasses = (manageItem.state.disabled ? 'is-disabled' : '') + ' ' + (manageItem.isChecked ? 'is-checked' : '');\n menuResponse += this.createMenuResponse(spec, AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_CLEAR, manageClasses, manageItem);\n }\n observer.next(menuResponse);\n observer.complete();\n });\n });\n }\n\n private buildToolbarRelatedActionMenuEntry(\n spec: LMFormSpec | LMListSpec | LMPageSpec,\n actionReference: LMBusActionReference,\n actionSpec: LMActionSpec,\n title: string\n ): string {\n const markup =\n `
          • \n ${title}\n
          • `;\n return markup;\n }\n\n // NOTE refactored below on 7/1/2020 by ppatton - remove once it's all tested and working.\n // public buildFirstLevelMoreMenu(buttons: Array,showDrillAround: boolean): string {\n // const initialResponse = '';\n // for (let index = 0; buttons.length > index; index++) {\n // const menuItem = buttons[ index ];\n // if (menuItem.state.visible) {\n // const label = menuItem.actionReference.label ? menuItem.actionReference.label : menuItem.actionReference.tooltip;\n // if (menuItem.menu) {\n // if (this.submenuHasVisibleItems(menuItem.menu)) {\n // if (menuItem.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON && !showDrillAround) {\n // continue;\n // }\n // const actionRef = this.stringifyJson(menuItem.actionReference);\n // initialResponse +=\n // `
          • \n // ${label}\n //
              \n //
            • `;\n // }\n // } else {\n // const classes = menuItem.state.disabled ? 'is-disabled' : '';\n // const actionRef = this.stringifyJson(menuItem.actionReference);\n //\n // if (menuItem.actionReference.type === AppConstants.CSS_MENU_SEPARATOR) {\n // // to add a header title after the separator, add
            • Button Header Here
            • here\n // initialResponse += `
            • `;\n // } else {\n // initialResponse += `\n //
            • \n // ${label}\n //
            • `;\n // }\n // }\n // }\n // }\n // return initialResponse;\n // }\n\n public buildFirstLevelMoreMenu(\n spec: LMFormSpec | LMListSpec | LMPageSpec,\n buttons: Array,\n showDrillAround: boolean\n ): string {\n let firstLevelMoreMenuMarkup = '';\n buttons.filter(button => this.includeInFirstLevelMoreMenu(button, showDrillAround)).forEach(button => {\n firstLevelMoreMenuMarkup += this.buildFirstLevelMoreMenuItem(spec, button);\n });\n return firstLevelMoreMenuMarkup;\n }\n\n private includeInFirstLevelMoreMenu(button: LMToolbarButton, showDrillAround: boolean): boolean {\n // --------------------------------------------------------\n // if it's not visible then don't include the li markup\n // --------------------------------------------------------\n if (!button.state.visible) {\n return false;\n }\n\n if (button.menu) {\n // --------------------------------------------------------\n // if the submenu has no visible menu items then don't\n // include the submenu item markup\n // --------------------------------------------------------\n if (!this.submenuHasVisibleItems(button.menu)) {\n return false;\n }\n\n // --------------------------------------------------------\n // if showDrillAround is false then don't include the\n // DrillAround submenu item markup\n // --------------------------------------------------------\n if (button.actionReference.id === AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON && !showDrillAround) {\n return false;\n }\n }\n\n return true;\n }\n\n private buildFirstLevelMoreMenuItem(spec: LMFormSpec | LMListSpec | LMPageSpec, button: LMToolbarButton): string {\n if (button.menu) {\n return this.buildSubMenuItemLiFromButton(spec, button);\n }\n\n if (button.actionReference.type === AppConstants.CSS_MENU_SEPARATOR) {\n // to add a header title after the separator, add
            • Button Header Here
            • here\n return `
            • `;\n }\n\n return this.buildMenuItemLiFromButton(spec, button);\n }\n\n private buildMenuItemLiFromButton(spec: LMFormSpec | LMListSpec | LMPageSpec, button: LMToolbarButton): string {\n const label = button.actionReference.label ? button.actionReference.label : button.actionReference.tooltip;\n const classes = (button.state.disabled ? 'is-disabled' : '') + ' ' + (button.isChecked ? 'is-checked' : '');\n const actionRef = this.stringifyJson(button.actionReference);\n\n const markup =\n `
            • \n ${label}\n
            • `;\n return markup;\n\n }\n\n private buildSubMenuItemLiFromButton(spec: LMFormSpec | LMListSpec | LMPageSpec, button: LMToolbarButton): string {\n const label = button.actionReference.label ? button.actionReference.label : button.actionReference.tooltip;\n const actionRef = this.stringifyJson(button.actionReference);\n const markup =\n `
            • \n ${label}\n\n \n
                \n
              • `;\n return markup;\n }\n\n private createMenuResponse(spec: LMFormSpec | LMListSpec | LMPageSpec, id: string, classes: string, menuItem: LMToolbarButton): string {\n const actionRef = this.stringifyJson(menuItem.actionReference);\n const markup =\n `
              • \n ${menuItem.actionReference.label}\n
              • `;\n return markup;\n }\n\n private submenuHasVisibleItems(menu: Array): boolean {\n let hasVisibleItem = false;\n for (const button of menu) {\n if (button.state.visible) {\n hasVisibleItem = true;\n break;\n }\n }\n return hasVisibleItem;\n }\n\n private stringifyJson(actionReference: any) {\n const actionReferenceClone = JSON.parse(JSON.stringify(actionReference));\n if (actionReferenceClone.label && actionReferenceClone.label.search(/'/g) > -1) {\n // html encode single quotes as they screw up when placed into a element.dataset.\n actionReferenceClone.label = actionReferenceClone.label.replace(/'/g, (substring, ...args) => ''');\n }\n\n return JSON.stringify(actionReferenceClone);\n }\n\n protected buildToolbarButtonId(spec: LMFormSpec | LMListSpec | LMPageSpec, actionReference: LMBusActionReference): string {\n if (actionReference.elementId) {\n // if using elementId it should already be prefixed.\n return actionReference.elementId;\n }\n\n return this.getButtonIdPrefix(spec) + '_' + actionReference.id;\n }\n\n protected buildToolbarButtonAutomationId(spec: LMFormSpec | LMListSpec | LMPageSpec, actionReference: LMBusActionReference): string {\n return this.getButtonAutomationIdPrefix(spec) + '-' + actionReference.automationId;\n }\n\n private getButtonAutomationIdPrefix(spec: LMListSpec | LMFormSpec) {\n if (!spec) {\n return '';\n }\n\n if ((spec as LMListSpec).busListSpec) {\n return (spec as LMListSpec).busListSpec.automationId;\n }\n\n if ((spec as LMFormSpec).busFormSpec) {\n return (spec as LMFormSpec).busFormSpec.name;\n }\n\n if ((spec as LMPageSpec).pageSpec) {\n return (spec as LMPageSpec).pageSpec.name;\n }\n\n return '';\n }\n\n private getButtonIdPrefix(spec: LMListSpec | LMFormSpec) {\n if (!spec) {\n return '';\n }\n\n if ((spec as LMListSpec).busListSpec) {\n return (spec as LMListSpec).busListSpec.id;\n }\n\n if ((spec as LMFormSpec).busFormSpec) {\n return (spec as LMFormSpec).busFormSpec.name;\n }\n\n if ((spec as LMPageSpec).pageSpec) {\n return (spec as LMPageSpec).pageSpec.name;\n }\n\n return '';\n }\n\n private menuIdV1(id: string): string {\n return this.lmToolbarServiceAdapter.lmContextService.testVersion() === AppConstants.TESTVERSION_V1 ? id : '';\n }\n\n private menuIdV2(id: string): string {\n return this.lmToolbarServiceAdapter.lmContextService.testVersion() >= AppConstants.TESTVERSION_V2 ? id + '_menuitem' : '';\n }\n\n private getActionSpecs(spec: LMFormSpec | LMListSpec | LMPageSpec): Array {\n if (!spec) {\n return [];\n }\n if ((spec as LMListSpec).busListSpec) {\n return (spec as LMListSpec).busClassSpec.actions;\n }\n if ((spec as LMFormSpec).busFormSpec) {\n return (spec as LMFormSpec).busClassSpec.actions;\n }\n return [];\n }\n\n private updateActionIcon(spec: LMFormSpec | LMListSpec | LMPageSpec, actionReference: LMBusActionReference) {\n try {\n if (actionReference.type === 'action' && !actionReference.icon && !actionReference.label) {\n const actionSpecArray: Array = this.getActionSpecs(spec);\n if (!actionSpecArray || actionSpecArray.length === 0) {\n return;\n }\n const actionSpec: LMActionSpec = actionSpecArray[actionReference.index];\n if (!actionSpec || !actionSpec.type) {\n return;\n }\n switch (actionSpec.type) {\n case 'CREATE':\n actionReference.icon = 'create';\n break;\n case 'UPDATE':\n actionReference.icon = 'open';\n break;\n case 'DELETE':\n actionReference.icon = 'delete';\n break;\n case 'FUNCTION':\n case 'SET':\n break;\n }\n }\n } catch(error) {\n console.log(`setDefaultHoverText issue: ${error}`);\n }\n }\n\n private setDefaultHoverText(spec: LMFormSpec | LMListSpec | LMPageSpec, actionReference: LMBusActionReference, toolbarButton: LMToolbarButton) {\n try {\n switch (actionReference.type) {\n case 'standard':\n // if the button is icon only (doesn't have a label), it needs a tooltip so it shows up correctly in overflow and\n // context menus. If a hover wasn't defined in the LPL, grab the tooltip from the standard toolbar actions.\n Object.keys(this.getStandardToolbarActions())\n .filter((key) => this.getStandardToolbarActions()[ key ].id === actionReference.id)\n .forEach((key) => toolbarButton.actionReference.tooltip = this.getStandardToolbarActions()[ key ].tooltip);\n break;\n case 'action':\n const actionSpecArray: Array = this.getActionSpecs(spec);\n if (!actionSpecArray || actionSpecArray.length === 0) {\n break;\n }\n const actionSpec: LMActionSpec = actionSpecArray[actionReference.index];\n if (!actionSpec || !actionSpec.label) {\n break;\n }\n toolbarButton.actionReference.tooltip = actionSpec.label;\n break;\n }\n } catch (error) {\n console.log(`setDefaultHoverText issue: ${error}`);\n }\n }\n}\n\nexport interface RelatedActionResponse {\n actionSpec: LMActionSpec;\n dataViewSet: LMDataViewSet;\n}\n\nexport interface LMToolbarMoreButtonMenuParams {\n isContextMenu: boolean;\n showDrillAround: boolean;\n drillParams?: DrillPointsParams;\n personalizeParams?: PersonalizeParams;\n relatedReportParams?: RelatedReportParams;\n userListViewParams?: UserListViewMenuParams;\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n OnDestroy,\n QueryList,\n ViewChild,\n ViewChildren,\n Renderer2,\n} from '@angular/core';\nimport {\n SohoBusyIndicatorDirective,\n SohoButtonComponent,\n SohoMenuButtonComponent,\n SohoToolbarFlexComponent,\n SohoToolbarFlexMoreButtonComponent\n} from 'ids-enterprise-ng';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMDynamicToolbarService, RelatedMenuItem, RelatedMenuItemResponse } from './lm-dynamic-toolbar.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMBusyIndicatorService } from '@services/lm-busyindicator.service';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\nimport * as _ from 'lodash';\n\nimport { LMConfigurationService } from '@services/lm-configuration.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMBrowserUtilService } from '@utils/lm-browser-util.service';\n\n@Component({\n selector: 'lm-toolbar',\n providers: [ LMDynamicToolbarService ],\n templateUrl: './lm-toolbar.component.html',\n styleUrls: [ 'lm-toolbar.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LMToolbarComponent implements AfterViewInit, AfterViewChecked, OnDestroy {\n @HostBinding('style.display') public isBlock = 'block'; // get display() { return 'block'; }\n @HostBinding('class.isMobileDevice') isMobileDevice = false;\n @HostBinding('id') public toolbarId: string;\n\n @HostBinding('attr.data-automation-id') get dataAutomationId() {\n return `lm-${this.automationId}-toolbar`;\n }\n\n @HostListener('window:resize') onResize() {\n this.setMaxTitleWidth();\n\n if (window.innerWidth < Soho.breakpoints.slim) {\n this.maxVisibleButtons = 2;\n }\n }\n\n @ViewChild(SohoToolbarFlexComponent) sohoFlexToolbar: SohoToolbarFlexComponent;\n @ViewChild(SohoToolbarFlexMoreButtonComponent, { read: ElementRef }) sohoToolbarFlexButtonSet: ElementRef;\n @ViewChild(SohoBusyIndicatorDirective) sohoBusyIndicator: SohoBusyIndicatorDirective;\n @ViewChildren('relatedMenu') relatedActionMenus: QueryList;\n @ViewChildren(SohoButtonComponent, { read: ElementRef }) htmlButtons: QueryList;\n @ViewChildren(SohoMenuButtonComponent, { read: ElementRef }) htmlMenuButtons: QueryList;\n\n @Input() public set automationId(automationId: string) {\n this.m_automationId = automationId;\n this.toolbarAttributes = [ { name: 'data-automation-id', value: `lm-${this.automationId}` } ];\n }\n public get automationId(): string {\n return this.m_automationId;\n }\n\n @Input() set toolbarIdPrefix(toolbarIdPrefix: string) {\n /**\n * for some reason _toolbar_toolbar got placed on teh the toolbar id in version1.\n * todo: ppatton remove this once v1 is no longer supported\n */\n this.toolbarId = toolbarIdPrefix + (this.testVersion1 ? '_toolbar_toolbar' : '_toolbar');\n\n this.toolbarTitleId = this.inHeader && this.testVersion1 ? 'page-title' : this.toolbarId + '_title';\n\n /**\n * MoreButtonId is only valid and set for testVersion2.\n * In v1 and Id is set on the element above it.\n */\n this.toolbarMoreButtonId = this.testVersion1 ? '' : toolbarIdPrefix + '_toolbar_morebutton';\n }\n\n // // @Input() public toolbarAutomationIdPrefix;\n // public _toolbarAutomationIdPrefix: string;\n // @Input() set toolbarAutomationIdPrefix(id: string) {\n // this._toolbarAutomationIdPrefix = id;\n // }\n // get toolbarAutomationIdPrefix(): string {\n // return this._toolbarAutomationIdPrefix;\n // }\n\n // ----------------------------------------------------------------------\n // inHeader input\n // ----------------------------------------------------------------------\n @Input()\n set inHeader(inHeader: boolean) {\n this.m_inHeader = inHeader;\n }\n get inHeader(): boolean {\n return this.m_inHeader;\n }\n\n @Input()\n set asOfDate(asOfDate: string) {\n if (asOfDate) {\n this._asOfDate = asOfDate;\n\n this.asOfDateMode = true;\n const dateDisplay = this.lmFormatUtilService.yyyymmddToDisplay(this._asOfDate);\n\n this.asOfDateTitle = Soho.Locale.translate('CreateReportAsOfDateLabel') + ': ' + dateDisplay;\n this.clearAsOfDateTooltip = Soho.Locale.translate('ClearAsOfDateLabel');\n } else {\n this._asOfDate = asOfDate;\n this.asOfDateMode = false;\n this.asOfDateTitle = '';\n this.clearAsOfDateTooltip = '';\n }\n }\n\n // ----------------------------------------------------------------------\n // searchField input\n // ----------------------------------------------------------------------\n @Input()\n set searchField(searchField: LMToolbarSearchField) {\n if (this.m_searchField !== searchField) {\n this.m_searchField = searchField;\n this.markForCheck();\n }\n }\n get searchField(): LMToolbarSearchField {\n return this.m_searchField;\n }\n\n // ----------------------------------------------------------------------\n // sectionTitle input\n // todo name to pageTitle to it matches the class needed in the html.\n // ----------------------------------------------------------------------\n @Input() set sectionTitle(sectionTitle: string) {\n if (this.m_sectionTitle !== sectionTitle) {\n this.m_sectionTitle = sectionTitle;\n this.updateMaxTitleWidth();\n this.markForCheck();\n }\n }\n get sectionTitle(): string {\n return this.m_sectionTitle;\n }\n\n // todo vonnyw no longer used, not sure what the asofdate set stuff is in here.\n // does this need to be set somewhere else?\n // // ----------------------------------------------------------------------\n // // pageTitle input\n // // ----------------------------------------------------------------------\n // @Input() set pageTitle(pageTitle: string) {\n // if (this.m_pageTitle !== pageTitle) {\n // this.m_pageTitle = pageTitle;\n //\n // if (this._asOfDate) {\n // const dateDisplay = this.lmFormatUtilService.yyyymmddToDisplay(this._asOfDate);\n // this.asOfDateTitle = Soho.Locale.translate('CreateReportAsOfDateLabel') + ': ' + dateDisplay;\n // this.clearAsOfDateTooltip = Soho.Locale.translate('ClearAsOfDateLabel');\n // }\n //\n // this.updateMaxTitleWidth();\n // this.markForCheck();\n // }\n // }\n // get pageTitle(): string {\n // return this.m_pageTitle;\n // }\n\n // ----------------------------------------------------------------------\n // maxVisibleButtons input\n // ----------------------------------------------------------------------\n @Input()\n set maxVisibleButtons(maxVisibleButtons: number) {\n if (this.m_maxVisibleButtons !== maxVisibleButtons) {\n this.m_maxVisibleButtons = maxVisibleButtons + (!!this.m_searchField ? 1 : 0);\n this.markForCheck();\n }\n }\n get maxVisibleButtons(): number {\n if (this.m_maxVisibleButtons !== null && this.m_maxVisibleButtons !== undefined) {\n return this.m_maxVisibleButtons;\n }\n\n return 1; // for more button\n }\n\n // ----------------------------------------------------------------------\n // hideOverflowMenuButton input\n // ----------------------------------------------------------------------\n @Input()\n set hideOverflowMenuButton(hide: boolean) {\n if (this.m_hideOverflowMenuButton !== hide) {\n this.m_hideOverflowMenuButton = hide;\n this.markForCheck();\n }\n }\n get hideOverflowMenuButton(): boolean {\n return this.m_hideOverflowMenuButton;\n }\n\n // ----------------------------------------------------------------------\n // showListDetailBackButton input\n // ----------------------------------------------------------------------\n @Input()\n set showListDetailBackButton(val: boolean) {\n this.m_showListDetailBackButton = val;\n }\n get showListDetailBackButton(): boolean {\n return this.m_showListDetailBackButton;\n }\n\n // ----------------------------------------------------------------------\n // hideToolbarTitles input\n // ----------------------------------------------------------------------\n @Input()\n set hideToolbarTitles(hide: boolean) {\n if (this.m_hideToolbarTitles !== hide) {\n this.m_hideToolbarTitles = hide;\n this.markForCheck();\n }\n }\n get hideToolbarTitles(): boolean {\n return this.m_hideToolbarTitles;\n }\n\n // ----------------------------------------------------------------------\n // hideToolbarButtons input\n // ----------------------------------------------------------------------\n @Input()\n set hideToolbarButtons(hide: boolean) {\n if (this.m_hideToolbarButtons !== hide) {\n this.m_hideToolbarButtons = hide;\n this.markForCheck();\n }\n }\n get hideToolbarButtons(): boolean {\n return this.m_hideToolbarButtons;\n }\n\n // ----------------------------------------------------------------------\n // disabled input\n // ----------------------------------------------------------------------\n /**\n * Whether to disable all the buttons in the toolbar or not.\n * @type {boolean}\n */\n @Input()\n set disabled(disabled: boolean) {\n this.m_disabled = disabled;\n }\n get disabled(): boolean {\n return this.m_disabled;\n }\n\n // ----------------------------------------------------------------------\n // buttons input\n // ----------------------------------------------------------------------\n @Input()\n set buttons(buttons: Array) {\n if (buttons) {\n this.m_flexButtons = buttons;\n this.m_flexButtonSetButtons = buttons.filter(button => !button.isMoreMenuItem);\n this.m_flexMoreMenuButtons = buttons.filter(button => button.isMoreMenuItem);\n this.hideOverflowMenuButton = this.m_flexMoreMenuButtons.length < 1;\n this.doUpdate = true;\n } else {\n this.hideOverflowMenuButton = true;\n }\n }\n\n get buttons(): Array {\n return this.m_buttons;\n }\n\n get flexButtons(): Array {\n return this.m_flexButtons;\n }\n\n get flexMoreButtons(): Array {\n return this.m_flexMoreMenuButtons;\n }\n\n get flexButtonSetButtons(): Array {\n return this.m_flexButtonSetButtons;\n }\n\n goBack = false;\n @Input() set showGoBack(goBack: boolean) {\n this.goBack = goBack;\n this.markForCheck();\n }\n\n @Input() moreMenuSettings: SohoPopupMenuOptions;\n\n @Output() toolbarBackButtonEvent = new EventEmitter();\n @Output() appMenuTriggerEvent = new EventEmitter();\n @Output() toolbarButtonEvent = new EventEmitter();\n @Output() toolbarSearchEvent = new EventEmitter();\n @Output() toolbarSearchClearedEvent = new EventEmitter();\n @Output() asOfDateChangedEvent: EventEmitter = new EventEmitter();\n @Output() asOfDateClearedEvent: EventEmitter = new EventEmitter();\n\n maximizeTitle = false;\n\n private m_inHeader: boolean;\n private m_sectionTitle: string;\n private m_pageTitle: string;\n private m_hideOverflowMenuButton = false;\n private m_showListDetailBackButton = false;\n private m_hideToolbarTitles = false;\n private m_hideToolbarButtons = false;\n private m_buttons: Array = null;\n private m_searchField: LMToolbarSearchField = null;\n private m_disabled = false;\n private m_maxVisibleButtons = null;\n private m_moreMenuButtons: Array;\n private m_automationId: string;\n\n\n private m_flexButtons: Array = null;\n private m_flexButtonSetButtons: Array = null;\n private m_flexMoreMenuButtons: Array = null;\n\n readonly separator: string = AppConstants.CSS_MENU_SEPARATOR;\n public resizeContainers = true;\n public useFlexToolbar = false;\n public disableToolbar = false;\n public toolbarTitleId: string;\n public toolbarMoreButtonId: string;\n public toolbarAttributes: SohoAttributesArray = [];\n\n public asOfDateTitle: string;\n public asOfDateMode: boolean;\n public clearAsOfDateTooltip: string;\n private _asOfDate: string;\n\n /**\n * Whether or not to call updated() on the soho component during\n * the next afterViewChecked lifecycle event.\n */\n public doUpdate = false;\n\n /**\n * Whether or not to call setMaxTitleWith\n */\n private m_updateMaxTitleWidth = false;\n\n public JSON = JSON;\n private subscriptionArray: Array = [];\n private buttonsObserver: MutationObserver;\n\n public hideNavBar = false;\n private testVersion: LMTestVersion;\n public testVersion1: boolean;\n public toggleNavigationString: string;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private renderer2: Renderer2,\n private lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmDynamicToolbarService: LMDynamicToolbarService,\n private lmBusyIndicatorService: LMBusyIndicatorService,\n private lmBrowserUtilService: LMBrowserUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmConfigurationService: LMConfigurationService\n ) {\n // need in the constructor so it's available for @Input() setters.\n this.testVersion = this.lmContextService.testVersion();\n this.testVersion1 = this.testVersion === AppConstants.TESTVERSION_V1;\n this.toggleNavigationString = Soho.Locale.translate('ToggleNavigation');\n }\n\n ngAfterViewInit() {\n this.relatedActionMenus.changes.subscribe(item => {\n this.relatedActionMenus.forEach(relatedActionMenu => relatedActionMenu.ajaxBeforeOpenFunction = this.onBeforeRelatedActionsOpen);\n });\n // Observe for soho-toolbar-button-set childList mutations\n this.buttonsObserver = new MutationObserver(() => this.toolbarButtonsChanges());\n\n if (this.sohoToolbarFlexButtonSet) {\n this.buttonsObserver.observe(this.sohoToolbarFlexButtonSet.nativeElement, { childList: true });\n }\n\n // Set CSS class in template if mobile\n this.isMobileDevice = this.lmContextService.isMobileDevice();\n this.hideNavBar = this.lmContextService.isHideMenuBar();\n\n this.testVersion = this.lmContextService.testVersion();\n\n setTimeout(() => this.updateMaxTitleWidth());\n }\n\n ngAfterViewChecked(): void {\n if (!this.sohoFlexToolbar) {\n return;\n }\n\n if (this.doUpdate) {\n this.doUpdate = false;\n this.sohoFlexToolbar.updated();\n\n // ensure that all angular added ng-star-inserted classes are removed\n this.htmlButtons.forEach((htmlButton: ElementRef) => {\n this.renderer2.removeClass(htmlButton.nativeElement, 'ng-star-inserted');\n });\n this.htmlMenuButtons.forEach((htmlButton: ElementRef) => {\n this.renderer2.removeClass(htmlButton.nativeElement, 'ng-star-inserted');\n });\n }\n\n if (this.m_updateMaxTitleWidth) {\n this.m_updateMaxTitleWidth = false;\n setTimeout(() => this.setMaxTitleWidth());\n }\n }\n\n ngOnDestroy() {\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n this.onBeforeRelatedActionsOpen = null;\n this.buttonsObserver.disconnect();\n }\n\n public forceUpdate() {\n this.doUpdate = false;\n this.markForCheck();\n }\n\n private toolbarButtonsChanges() {\n if (!this.sohoFlexToolbar || !this.doUpdate || !this.sohoToolbarFlexButtonSet) {\n return;\n }\n\n const buttonSetChildren = this.sohoToolbarFlexButtonSet.nativeElement.children as HTMLElement[];\n const buttonsLength = Array.from(buttonSetChildren).filter(child => child.nodeName === 'BUTTON').length;\n\n // Check if DOM buttons are already in sync with model\n const visibleButtonsLength = this.flexButtons.filter(button => button.state.visible).length;\n\n if (buttonsLength !== visibleButtonsLength) {\n return;\n }\n\n this.sohoFlexToolbar.updated();\n this.doUpdate = false;\n }\n\n get moreMenuButtons(): Array {\n return this.m_moreMenuButtons;\n }\n\n get menuToolTip(): string {\n if (this.lmBrowserUtilService.isMAC) {\n return Soho.Locale.translate('ToggleMenu') + ' - ' + Soho.Locale.translate('CommandShiftK');\n } else {\n return Soho.Locale.translate('ToggleMenu') + ' - ' + Soho.Locale.translate('CtrlShiftK');\n }\n }\n\n get isMingleInbox(): boolean {\n return this.lmContextService.inMingleInbox();\n }\n\n // need to still have an empty soho-toolbar-flex-more-button for the case where there are no options/drill around\n // for the toolbar, but there are multiple buttons that could be pushed into the overflow menu from the button set\n // For example:\n // - If the toolbar is just the refresh button, then we don't need to see the overflow. In this case the flexMoreButtons\n // is undefined, so need the safety in the check\n // - On the mingle inbox toolbars, there aren't options/drill around in the more menu. So we need to make sure there\n // is an empty soho-toolbar-flex-more-button to overflow into\n // - If we have more than one visible button, but no overflowed more buttons (i.e. options and drill), then we need\n // an empty soho-toolbar-flex-more-button for those buttons to overflow into when in mobile/responsive\n get useEmptyMoreButton(): boolean {\n return this.isMingleInbox || ((this.flexMoreButtons && this.flexMoreButtons.length === 0) && (this.flexButtons && this.flexButtons.length > 1));\n }\n\n public trackButton(index, button: LMToolbarButton): string {\n if (button.customToolbarButtonInfo) {\n return button.customToolbarButtonInfo.id;\n }\n\n return button.actionReference ? button.actionReference.id : null;\n }\n\n public isDefaultButton(button: LMToolbarButton): boolean {\n if (button === undefined) {\n return false;\n }\n\n if (button.customToolbarButtonInfo) {\n return false;\n }\n\n const isNotMenu = !button.menu;\n const isNotRelated = button.actionReference.type !== 'related';\n const isVisible = button.state.visible;\n // const isNotALink = !button.isDisplayAsLink;\n // const isNotButtonWithIconUrl = button.iconUrl === undefined;\n\n return isNotMenu && isNotRelated && isVisible; // && isNotALink && isNotButtonWithIconUrl;\n }\n\n public isRelatedMenuButton(button: LMToolbarButton): boolean {\n if (button === undefined) {\n return false;\n }\n\n return button.actionReference.type === 'related' && button.state.visible;\n }\n\n public displayRelatedButtonPopupMenu(button: LMToolbarButton): boolean {\n return !button.hideRelatedButtonPopupMenu;\n }\n\n public isMenuButton(button: LMToolbarButton): boolean {\n if (button === undefined) {\n return false;\n }\n\n return button.menu && button.state.visible;\n }\n\n public isCustomButton(button: LMToolbarButton): boolean {\n if (button === undefined) {\n return false;\n }\n\n return !!button.customToolbarButtonInfo;\n }\n\n public isCustomMenuButton(button: LMToolbarButton): boolean {\n if (button === undefined) {\n return false;\n }\n\n return !!button.customToolbarButtonInfo.menu;\n }\n\n public onAppMenuTrigger(event: MouseEvent) {\n if (this.goBack) {\n this.toolbarBackButtonEvent.emit();\n event.stopImmediatePropagation();\n } else {\n this.appMenuTriggerEvent.emit(event);\n }\n }\n\n public setToolbarDisabled(state: boolean) {\n this.disableToolbar = state;\n this.changeDetector.markForCheck();\n }\n\n public onToolbarButtonEvent(e: SohoToolbarSelectedEvent, isAppMenu = false) {\n if (e.item[0].id === 'toolbar-search-field') {\n // ignore button events coming from search field\n return;\n }\n\n // use the busy indicator for a short period to stop processing additional clicks\n // on toolbar buttons; template sets the timeToComplete\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n const element: HTMLElement = e.event.currentTarget as HTMLElement;\n const isSubMenu = element.classList.contains('submenu');\n const noDataSet = _.isEmpty(e.item[0].dataset);\n\n // Return if toolbar or submenu\n if (isSubMenu || noDataSet) {\n this.lmLoggerService.warn('Sub menu was clicked or there was no dataset, exiting');\n return;\n }\n\n let actionReference: LMBusActionReference;\n let actionSpec: LMActionSpec;\n\n if (e.item[0].dataset.actionReference) {\n actionReference = JSON.parse(e.item[0].dataset.actionReference);\n }\n\n if (e.item[0].dataset.actionSpec) {\n actionSpec = JSON.parse(e.item[0].dataset.actionSpec);\n }\n\n if (e.item[0].dataset.customToolbarButtonInfo) {\n const customToolbarButtonInfo = JSON.parse(e.item[0].dataset.customToolbarButtonInfo);\n this.toolbarButtonEvent.emit({\n customToolbarButtonInfo,\n event: e.event\n });\n } else {\n this.toolbarButtonEvent.emit({\n actionSpec,\n actionReference,\n event: e.event\n });\n }\n }\n\n onFlexItemSelected(e) {\n // use the busy indicator for a short period to stop processing additional clicks\n // on toolbar buttons; template sets the timeToComplete\n this.lmBusyIndicatorService.showBusyIndicator(this.sohoBusyIndicator);\n\n let element: HTMLElement;\n\n if (e.item.overflowed && e.item.actionButtonLink) {\n element = $(e.item.actionButtonLink).data('originalButton');\n } else if (e.item.selectedAnchor) {\n element = e.item.selectedAnchor[0] as HTMLElement;\n } else {\n element = e.item.element as HTMLElement;\n }\n\n // Overflowed button is a menu button, use the selected anchor\n if (e.item.overflowed && e.item.selectedAnchor && element.classList.contains('btn-menu')) {\n element = e.item.selectedAnchor[0] as HTMLElement;\n }\n\n const isSubMenu = element.classList.contains('submenu');\n const noDataSet = _.isEmpty(element.dataset);\n\n // Return if toolbar or submenu\n if (isSubMenu || noDataSet) {\n this.lmLoggerService.warn('Sub menu was clicked or there was no dataset, exiting');\n return;\n }\n\n let actionReference: LMBusActionReference;\n let actionSpec: LMActionSpec;\n\n if (element.dataset.actionReference) {\n actionReference = JSON.parse(element.dataset.actionReference);\n }\n\n if (element.dataset.actionSpec) {\n actionSpec = JSON.parse(element.dataset.actionSpec);\n }\n\n if (element.dataset.customToolbarButtonInfo) {\n const customToolbarButtonInfo = JSON.parse(element.dataset.customToolbarButtonInfo);\n this.toolbarButtonEvent.emit({\n customToolbarButtonInfo,\n event: e.event\n });\n } else {\n this.toolbarButtonEvent.emit({\n actionSpec,\n actionReference,\n event: e.event\n });\n }\n }\n\n private buildUserListViewEntry(actionRef: LMBusActionReference, disabled = false) {\n if (actionRef.type === this.separator) {\n return `
              • `;\n }\n\n const menuItem = `${actionRef.label}`;\n // Following code does not work. The class is-indented is outside class attribute on its own.\n // let className = '';\n // if (actionRef.isSubmenu) {\n // className = (actionRef.isChecked) ? 'submenu is-indented' : 'submenu';\n // } else {\n // className = (actionRef.isChecked) ? 'is-checked' : '';\n // }\n //\n\n // return actionRef.isSubmenu ?\n // `
              • ${menuItem}
                • `:\n // `
                • ${menuItem}
                • `;\n\n const className = (actionRef.isChecked) ? 'is-checked' : '';\n return actionRef.isSubmenu ? ( actionRef.isChecked\n ? `
                • ${menuItem}
                  • `\n : `
                  • ${menuItem}
                    • ` )\n : `
                    • ${menuItem}
                    • `;\n }\n\n private buildUserListViewMenu(actionRef: LMBusActionReference, response: AjaxBeforeOpenResponseFunction) {\n this.lmConfigurationService.fetchUserListViews(actionRef.userListViewUrl, actionRef.lk).subscribe((result: LMUserListViewResponse) => {\n // Build menu of saved searches\n const userListViewActionRef = this.lmDynamicToolbarService.getStandardActionMenuItems().userListView;\n let menuContent = result.savedViews.reduce((content: string, userListView: LMUserListViewItem, index: number, array: LMUserListViewItem[]) => {\n const actionReference = {\n ...userListViewActionRef,\n label: userListView.name,\n userListViewItem: userListView,\n searchState: JSON.parse(userListView.searchState),\n isChecked: userListView.userListView === actionRef.appliedUserListView\n } as LMBusActionReference;\n\n return content + this.buildUserListViewEntry(actionReference);\n }, '');\n\n if (actionRef.isSubmenu) {\n return response(menuContent);\n }\n\n const idxAppliedUserListView = result.savedViews.findIndex(uv => uv.userListView === actionRef.appliedUserListView);\n if (result.hasMore) {\n menuContent += this.buildUserListViewEntry({\n ...this.lmDynamicToolbarService.getStandardToolbarActions().userListViewMoreMenu,\n userListViewUrl: actionRef.userListViewUrl,\n appliedUserListView: actionRef.appliedUserListView,\n disableSave: actionRef.disableSave,\n lk: result.lk,\n isSubmenu: true,\n isChecked: idxAppliedUserListView !== -1\n });\n }\n\n // Add separator and save buttons\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardSeparatorMenuItem());\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardActionMenuItems().userListViewSave, actionRef.disableSave);\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardActionMenuItems().userListViewSaveAs, actionRef.disableSave);\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardSeparatorMenuItem());\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardActionMenuItems().userListViewClear, actionRef.appliedUserListView === undefined);\n menuContent += this.buildUserListViewEntry(this.lmDynamicToolbarService.getStandardActionMenuItems().userListViewManage, result.savedViews?.length === 0);\n\n response(menuContent);\n });\n }\n\n /**\n * This method is called when you load an async toolbar menu outside of the more button menu\n * @param response Callback function to return the html string of menu elements\n * @param options any type for now as defined in ep-ng, to be updated when that changes. Right now it is of type:\n * {\n * element: jQuery element of the source toolbar menu button that is triggered to open\n * contextElement?: jQuery element of the ul for the submenu (only available when isSubmenu=true)\n * isSubmenu?: boolean\n * }\n *\n * @returns\n */\n public onBeforeRelatedActionsOpen = (response: AjaxBeforeOpenResponseFunction, options: any) => {\n // This must always be defined\n if (!options?.element) {\n return;\n }\n\n const src = options.element[0] as HTMLElement;\n const srcId = src.id; // copy to var so the html elements id doesn't get changed when rdoing a replace on src.id.\n const id = this.testVersion === 1 ? srcId : srcId.replace('_toolbar_button', '');\n const relatedMenuButton: LMToolbarButton = this.flexButtons.find(button => button.id === id);\n\n if (!!src.dataset) {\n // coming into the method from clicking a toolbar button with a menu (that's not in the overflow menu)\n let actionRef = JSON.parse(src.dataset.actionReference) as LMBusActionReference;\n\n // UserListView Menu & UserListView More Submenu\n if (AppConstants.STANDARD_TOOLBAR_USERLISTVIEW_MENU === actionRef.id) {\n if (options.isSubmenu) {\n let submenuElem = options.contextElement[0].previousSibling as HTMLElement;\n if (!submenuElem) {\n submenuElem = options.contextElement[0].parentElement.previousSibling;\n }\n actionRef = JSON.parse(submenuElem.dataset.actionReference) as LMBusActionReference;\n }\n return this.buildUserListViewMenu(actionRef, response);\n }\n\n if (actionRef.relActionUrl) {\n const relActions = this.lmDynamicToolbarService.getRelatedActionMenuItems(actionRef.relActionUrl)\n .subscribe((relMenuItemResponse: RelatedMenuItemResponse) => {\n // let i = 0;\n let content = '';\n const actionSpec: LMActionSpec = relMenuItemResponse.actionSpec;\n const actionSpecString = JSON.stringify(actionSpec);\n if (relMenuItemResponse.relatedMenuItems.length === 0) {\n response(`
                    • ${Soho.Locale.translate('NoItemsAvailable')}
                    • `);\n } else if (relMenuItemResponse.relatedMenuItems.length === 1) {\n relatedMenuButton.hideRelatedButtonPopupMenu = true;\n this.toolbarButtonEvent.emit({\n event: undefined,\n actionReference : {\n id: actionSpec.name,\n type: 'related',\n index: actionSpec.index,\n label: actionSpec.label,\n requestAction: actionSpec.requestAction,\n resourceId: relMenuItemResponse.relatedMenuItems[0].resourceId\n },\n actionSpec\n });\n } else {\n relatedMenuButton.hideRelatedButtonPopupMenu = false;\n relMenuItemResponse.relatedMenuItems.forEach((item, index) => {\n // Build Action Reference\n const menuElementId = JSON.stringify(item.resourceId);\n const actionReference: LMBusActionReference = {\n id: actionSpec.name + '_popup' + index,\n type: 'related',\n index: actionSpec.index,\n label: actionSpec.label,\n requestAction: actionSpec.requestAction,\n resourceId: item.resourceId\n };\n const actionReferenceString = JSON.stringify(actionReference);\n content += this.buildToolbarMenuEntry(actionReferenceString, actionSpecString, item.text);\n });\n response(content);\n }\n this.subscriptionArray.push(relActions);\n });\n }\n } else {\n const request = event.srcElement;\n // coming into the method from hovering over a toolbar more menu entry with a menu\n const relatedActionsResponse: {actionSpec: LMActionSpec, dataViewSet: LMDataViewSet} = JSON.parse(request.response);\n let i = 0;\n let content = '';\n const relMenuItems: RelatedMenuItem[] = [];\n const actionSpec: LMActionSpec = relatedActionsResponse.actionSpec;\n const actionSpecString = JSON.stringify(actionSpec);\n const dataViewSet = relatedActionsResponse.dataViewSet;\n dataViewSet.data.forEach(dataView => {\n relMenuItems[ i++ ] = { text: dataView.representativeText, resourceId: dataView.resourceId };\n });\n relMenuItems.forEach(item => {\n // Build Action Reference\n const actionReference: LMBusActionReference = {\n id: actionSpec.name + '_popup' + (i++), type: 'related',\n index: actionSpec.index, label: actionSpec.label, requestAction: actionSpec.requestAction,\n resourceId: item.resourceId\n };\n const actionReferenceString = JSON.stringify(actionReference);\n content += this.buildToolbarMenuEntry(actionReferenceString, actionSpecString, item.text);\n });\n response(content);\n }\n };\n\n private buildToolbarMenuEntry(actionReferenceString: string, actionSpecString: string, title: string): string {\n return `\n
                    • \n ${title}\n
                    • `;\n }\n\n public fireSearchEvent(event) {\n if (!this.searchField.value) {\n // if value is blank then fire clearSearchEvent event\n this.fireClearSearchEvent(event);\n } else {\n const toolbarSearchEvent: LMToolbarSearchEvent = {\n event,\n searchField: this.searchField\n };\n\n this.toolbarSearchEvent.emit(toolbarSearchEvent);\n }\n }\n\n public fireClearSearchEvent(event) {\n const toolbarSearchEvent: LMToolbarSearchEvent = {\n event,\n searchField: this.searchField\n };\n this.toolbarSearchClearedEvent.emit(toolbarSearchEvent);\n }\n\n /**\n * This is a way to force an afterViewChecked call, This allows\n * a call to updated on the soho toolbar which will rebuild it's\n * state based on the new markup.\n *\n * todo ppatton since only called from @Input()s and that already causes\n * change detection, and so the afterViewChecked should get called. so there\n * may be no need to call changeDetector.markForCheck()\n */\n private markForCheck() {\n if (this.doUpdate) {\n return;\n }\n this.doUpdate = true;\n\n // ... make sure the change detector kicks in, otherwise if the inputs\n // were change programmatically the component may not be eligible for\n // updating.\n this.changeDetector.markForCheck();\n }\n\n public clearAsOfDate(event: Event) {\n this.asOfDateClearedEvent.emit();\n }\n\n stringifyJson(actionReference: LMBusActionReference) {\n const actionReferenceClone = JSON.parse(JSON.stringify(actionReference));\n if (actionReferenceClone.label && actionReferenceClone.label.search(/'/g) > -1) {\n // html encode single quotes as they screw up when placed into a element.dataset.\n actionReferenceClone.label = actionReferenceClone.label.replace(/'/g, (substring, ...args) => ''');\n }\n\n return JSON.stringify(actionReferenceClone);\n }\n\n private updateMaxTitleWidth() {\n this.m_updateMaxTitleWidth = true;\n this.changeDetector.markForCheck();\n }\n\n private setMaxTitleWidth() {\n if (!this.elementRef) {\n return; // safety\n }\n\n const toolbarElement: HTMLElement = this.elementRef.nativeElement;\n const flexToolbarElement = toolbarElement.querySelector('soho-toolbar-flex');\n if (!flexToolbarElement) {\n return;\n }\n const toolbarRightPadding = parseInt(this.getComputedStyle(flexToolbarElement, 'padding-right'), 10);\n\n const spanElement = toolbarElement.querySelector('.toolbar-section.title span');\n if (!spanElement) {\n return;\n }\n\n let toolbarButtonSetWidth = 0;\n const toolbarButtonset = toolbarElement.querySelector('.toolbar-section.buttonset');\n if (toolbarButtonset) {\n if (this.hideOverflowMenuButton) {\n toolbarButtonSetWidth = toolbarButtonset.offsetWidth;\n } else {\n const buttonSetLeftPadding: string = this.getComputedStyle(toolbarButtonset, 'padding-left');\n const buttonSetRightPadding: string = this.getComputedStyle(toolbarButtonset, 'padding-right');\n toolbarButtonSetWidth = parseInt(buttonSetLeftPadding, 10) + parseInt(buttonSetRightPadding, 10);\n }\n }\n\n const moreButtonDiv = toolbarElement.querySelector('.toolbar-section.more');\n\n const isRTL = Soho.Locale.currentLanguage.direction === 'right-to-left';\n\n const toolbarWidth = toolbarElement.offsetWidth;\n const leftWidth = isRTL ? (toolbarWidth - spanElement.offsetWidth - spanElement.offsetLeft) : spanElement.offsetLeft;\n const rightWidth = (moreButtonDiv ? moreButtonDiv.offsetWidth : 0) + toolbarRightPadding;\n\n const maxTitleWidth = toolbarWidth - (leftWidth + toolbarButtonSetWidth + rightWidth);\n spanElement.style.maxWidth = maxTitleWidth + 'px';\n }\n\n private getComputedStyle(element: Element, style: string): any {\n return window.getComputedStyle(element, null).getPropertyValue(style);\n }\n\n // public menuButtonId(id: string): string {\n // return id + (this.testVersion >= AppConstants.TESTVERSION_V2 ? '_toolbar_menubutton' : '');\n // }\n\n public elementId(id: string): string {\n return id + (this.testVersion >= AppConstants.TESTVERSION_V2 ? '_toolbar_button' : '');\n }\n\n public menuIdV1(id: string): string {\n return this.testVersion === AppConstants.TESTVERSION_V1 ? id : '';\n }\n\n public menuIdV2(id: string): string {\n return this.testVersion >= AppConstants.TESTVERSION_V2 ? id + '_toolbar_menuitem' : '';\n }\n}\n","\n\n\n \n \n {{asOfDateTitle}}{{asOfDateTitle}}\n \n\n\n\n \n\n \n \n \n \n \n \n \n \n \n \n {{toggleNavigationString}}\n \n \n \n \n

                      \n \n {{sectionTitle}}\n \n

                      \n
                      \n
                      \n\n \n \n\n \n \n \n
                      \n \n
                      \n
                      \n
                      \n\n \n

                      \n {{sectionTitle}}\n

                      \n
                      \n\n
                      \n\n
                      \n \n \n \n \n \n
                      \n \n \n\n \n\n \n\n \n\n\n \n \n \n \n\n \n {{b?.customToolbarButtonInfo?.text}}\n {{b?.customToolbarButtonInfo?.tooltip}}\n \n \n\n
                      \n
                        \n \n \n \n {{menuItem?.customToolbarButtonInfo?.text}}\n \n \n
                      \n
                      \n
                      \n\n
                      \n \n \n \n \n \n\n \n \n {{b?.actionReference?.label}}\n {{b?.actionReference?.tooltip}}\n \n \n\n
                      \n \n
                      \n
                      \n\n \n \n\n {{b?.actionReference?.label}}\n {{b?.actionReference?.tooltip}}\n \n \n
                        \n
                        \n
                        \n
                        \n
                        \n \n \n \n \n 0\">\n\n \n \n \n \n \n\n","export * from './lm-twelve-column-grid.component';\nexport * from './lm-twelve-column-panel-card.component';\nexport * from './lm-twelve-column-panel-form.component';\nexport * from './lm-twelve-column-panel-form-template.component';\nexport * from './lm-twelve-column-panel-list.component';\nexport * from './lm-twelve-column-panel-url.component';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMListCardService } from '@list/services/lm-list-card.service';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMWorker } from 'app/types/lm-worker';\nimport { forkJoin, Observable, Subscription } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\nimport { LMRefreshRequest } from '@app/components';\nimport { LMTwelveColumnPanelBaseComponent } from './lm-twelve-column-panel-base.component';\nimport { LMTwelveColumnPanelListComponent } from './lm-twelve-column-panel-list.component';\nimport { LMConditionUtilService } from '@app/utils';\n\nexport class LMTwelveColumnGridPanelsSaveWorker extends LMWorker {\n private panels: LMTwelveColumnPanelBaseComponent[];\n\n constructor(panels: LMTwelveColumnPanelBaseComponent[]) {\n super();\n\n this.panels = panels;\n }\n\n protected has(i: number): boolean {\n return (i < this.panels.length);\n }\n\n protected get(i: number): LMTwelveColumnPanelBaseComponent {\n return this.panels[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const panel = this.panels[ i ];\n if (panel && panel.isModified()) {\n panel.save(observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n\n@Component({\n selector: 'lm-twelve-column-grid',\n templateUrl: './lm-twelve-column-grid.component.html',\n styleUrls: [ './lm-twelve-column-grid.component.scss' ],\n providers: [ LMFormatterService, LMListCardService ]\n})\nexport class LMTwelveColumnGridComponent implements AfterViewInit, OnDestroy {\n\n /**\n * The formUrlInfo of the main form that uses this twelve column grid.\n * This will not be used for lists with dashboard/detail sections.\n * Can likely be removed once the new spec-url refactor is complete\n * and solely in use.\n */\n @Input() formUrlInfo: LMFormUrlInfo;\n\n @Input() set dashboardPanels(panels: Array) { // used by list and form for detail sections and form tabs.\n this.m_cards = panels;\n }\n\n get dashboardPanels(): Array {\n return this.m_cards.filter(panel => panel.isVisible && !panel.hidden && panel.isValid);\n }\n\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() set fromDataView(fromDataView: LMDataView) { // optional if used in a page panel\n this.m_fromDataView = fromDataView;\n this.calculateRows();\n }\n\n get fromDataView(): LMDataView {\n return this.m_fromDataView;\n }\n\n @Input() set messageRuleView(messageRuleView: LMDataView) {\n this.m_messageRuleView = messageRuleView;\n }\n\n get messageRuleView(): LMDataView {\n return this.m_messageRuleView;\n }\n\n @Input() set panelVisibilityUpdateTimeStamp(timeStamp: number) {\n if (timeStamp !== this.m_panelVisibilityUpdateTimeStamp) {\n this.m_panelVisibilityUpdateTimeStamp = timeStamp;\n this.calculateRows();\n }\n }\n\n @Input() displayedOnPagePanel: boolean;\n\n @Output() contentModified = new EventEmitter();\n @Output() uiLinkEvent = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n @Output() dashboardContentDisplayed = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n @ViewChildren(LMTwelveColumnPanelBaseComponent) lmCardComponentList: QueryList;\n @ViewChildren('card') lmCards: QueryList;\n\n @HostBinding('class.full-width') get isFullWidth() { return true; };\n\n public rows: Array> = [];\n\n private m_messageRuleView: LMDataView;\n private m_fromDataView: LMDataView;\n private m_cards: Array;\n private m_panelVisibilityUpdateTimeStamp: number;\n private displayedCards = 0;\n private modelStatusChangesSubscription: Subscription;\n\n constructor(private elementRef: ElementRef, private lmConditionUtilService: LMConditionUtilService) {}\n\n ngAfterViewInit() {\n if (this.dashboardPanels) {\n this.calculateRows();\n if (this.model) {\n // In composite form, since visible/valid when rules can be changed from other values on the form, need to\n // subscribe to values changing and recalculate the rows\n this.modelStatusChangesSubscription = this.lmConditionUtilService.evaluateConditions.subscribe(() => {\n this.calculateRows();\n });\n }\n }\n }\n\n ngOnDestroy() {\n if (this.modelStatusChangesSubscription) {\n this.modelStatusChangesSubscription.unsubscribe();\n }\n }\n\n isModified(): boolean {\n return this.lmCards.some(dashboardPanel => dashboardPanel.isModified());\n }\n\n private includeInRefresh(cardComponent: LMTwelveColumnPanelBaseComponent, request?: LMRefreshRequest): boolean {\n if (cardComponent instanceof LMTwelveColumnPanelListComponent) {\n const dashBoardList = cardComponent;\n return dashBoardList.lmListComponent.listId !== request?.originatingSourceId;\n } else {\n return true;\n }\n }\n\n refresh(request?: LMRefreshRequest): Observable {\n return new Observable(observer => {\n const refreshCalls: Observable[] = this.lmCards.toArray()\n .filter(dashboardComponent => this.includeInRefresh(dashboardComponent, request))\n .map((dashboardComponent: LMTwelveColumnPanelBaseComponent) => dashboardComponent.refresh());\n\n // eslint-disable-next-line no-unused-vars\n forkJoin(refreshCalls).subscribe(value => {\n observer.next(true);\n observer.complete();\n });\n });\n }\n\n runSaveAction(): Observable {\n const dashboardPanels: LMTwelveColumnPanelBaseComponent[] = this.lmCards.toArray();\n\n return new Observable(observer => {\n this.runSavePanels(dashboardPanels).subscribe(\n // eslint-disable-next-line no-unused-vars\n (continueOn: boolean) => {\n observer.next(true);\n observer.complete();\n },\n // eslint-disable-next-line no-unused-vars\n (err => {\n observer.next(false);\n observer.complete();\n }));\n });\n }\n\n saveDashboardViewState() {\n this.lmCardComponentList.forEach(dashboardComponent => dashboardComponent.savePanelState());\n }\n\n clearDashboardViewState() {\n this.lmCardComponentList.forEach(dashboardComponent => dashboardComponent.clearPanelState());\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n onUILinkEvent(event) {\n this.uiLinkEvent.emit(event);\n }\n\n onFieldEvent(event: LMFieldEvent) {\n this.fieldEvent.emit(event);\n }\n\n onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n onComponentDisplayed() {\n this.displayedCards = this.displayedCards + 1;\n if (this.displayedCards === this.dashboardPanels.length) {\n this.dashboardContentDisplayed.emit();\n }\n }\n\n runSavePanels(dashboardPanels: LMTwelveColumnPanelBaseComponent[]): Observable {\n const saveWorker: LMTwelveColumnGridPanelsSaveWorker = new LMTwelveColumnGridPanelsSaveWorker(dashboardPanels);\n return saveWorker.start();\n }\n\n public getPanelHeight(): number {\n if (this.elementRef) {\n return this.elementRef.nativeElement.offsetHeight;\n }\n return 0;\n }\n\n // Need to split into rows of at most 12 spanning column\n private calculateRows(): void {\n let width = 0;\n let rowPanels: Array = [];\n this.rows = [];\n this.dashboardPanels.forEach((panel: LandmarkPanel, index: number) => {\n // if the panel spans 12 (takes full width), push the already created row and then the new panel onto the\n // rows array\n if (panel.spanningColumns === 12) {\n if (rowPanels.length > 0) {\n this.rows.push(rowPanels);\n }\n this.rows.push([ panel ]);\n width = 0;\n rowPanels = [];\n } else {\n // check to see what the total spanning width would be. Push the row if the width would be greater than 12.\n // if not, push the panel on to the row\n const tempWidth = width + panel.spanningColumns;\n if (tempWidth < 13) {\n width += panel.spanningColumns;\n rowPanels.push(panel);\n } else {\n this.rows.push(rowPanels);\n width = panel.spanningColumns;\n rowPanels = [];\n rowPanels.push(panel);\n }\n\n // when on the last panel, push the row in the rows object\n if (index === this.dashboardPanels.length - 1) {\n this.rows.push(rowPanels);\n }\n }\n });\n }\n}\n","\n
                        \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
                        \n
                        \n","import { Directive, Input, QueryList, ViewChildren } from '@angular/core';\nimport { Observable, Observer, of } from 'rxjs';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LandmarkPanel, LMRefreshRequest } from '@app/components';\n\n@Directive()\nexport abstract class LMTwelveColumnPanelBaseComponent {\n\n @Input() set fromDataView(dataView: LMDataView) {};\n\n @ViewChildren (LMTwelveColumnPanelBaseComponent) lmTwelveColumnPanelComponentList: QueryList;\n\n public cardClasses = '';\n\n constructor(protected lmThemeService: LMThemeService) {}\n\n isModified(): boolean {\n return false;\n }\n\n // eslint-disable-next-line no-unused-vars\n public refresh(request?: LMRefreshRequest): Observable {\n return of(true);\n }\n\n save(callBack: Observer) {\n callBack.next(true);\n callBack.complete();\n }\n\n abstract savePanelState(): void;\n abstract clearPanelState(): void;\n\n protected _setContentClasses(panel: LandmarkPanel) {\n this.cardClasses = 'card columns ';\n switch(panel.spanningColumns) {\n case 1:\n this.cardClasses += 'one';\n break;\n case 2:\n this.cardClasses += 'two';\n break;\n case 3:\n this.cardClasses += 'three';\n break;\n case 4:\n this.cardClasses += 'four';\n break;\n case 5:\n this.cardClasses += 'five';\n break;\n case 6:\n this.cardClasses += 'six';\n break;\n case 7:\n this.cardClasses += 'seven';\n break;\n case 8:\n this.cardClasses += 'eight';\n break;\n case 9:\n this.cardClasses += 'nine';\n break;\n case 10:\n this.cardClasses += 'ten';\n break;\n case 11:\n this.cardClasses += 'eleven';\n break;\n case 12:\n default:\n this.cardClasses += 'twelve';\n break;\n }\n }\n}\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { lmCardViewFormatter } from '@list/formatters/lm-card-view.formatter';\nimport { LMFormatterService } from '@list/formatters/lm-formatter.service';\nimport { LMListCardService } from '@list/services/lm-list-card.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUrlUtilService } from '@services/utils';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { LMTwelveColumnPanelBaseComponent } from './lm-twelve-column-panel-base.component';\n\n@Component({\n selector: 'lm-twelve-column-panel-card',\n templateUrl: './lm-twelve-column-panel-card.component.html',\n})\n\nexport class LMTwelveColumnPanelCardComponent extends LMTwelveColumnPanelBaseComponent implements OnInit {\n @HostBinding() public id;\n\n @Input() panel: LandmarkPanel;\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView) {\n this._dataView = dataView;\n this.build();\n };\n\n @Output() uiLinkEvent = new EventEmitter();\n\n public columnInfo: string;\n public overNavigationLink: string;\n public hasOverviewNavigation: boolean;\n public displayLinkAsText: boolean;\n\n private _dataView: LMDataView;\n public isInAccessibilityMode: boolean;\n\n constructor(\n private lmFormatterService: LMFormatterService,\n private lmListCardService: LMListCardService,\n private lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n savePanelState(): void {}\n\n clearPanelState(): void {}\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.build();\n\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n\n if (this.panel.overviewNavigation) {\n this.hasOverviewNavigation = true;\n if (this.panel.overviewNavigation.label) {\n this.displayLinkAsText = true;\n }\n }\n }\n\n build() {\n if (this.panel && this._dataView) {\n this.columnInfo = this.LMCardViewFormatter(0, 0, 0, { displayField: this.panel.displayFields[ 0 ] }, this._dataView, null);\n if (this.panel.overviewNavigation && this.panel.overviewNavigation.label) {\n this.overViewNavigationLabel();\n }\n this._setContentClasses(this.panel);\n }\n }\n\n overViewNavigationLabel() {\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(this.panel.overviewNavigation.label, dataView);\n }\n\n // eslint-disable-next-line max-len\n LMCardViewFormatter = (row: number, cell: number, value: any, columnDef: ListGridColumn, dataView: LMDataView, dataGrid: SohoDataGridStatic): string => lmCardViewFormatter.format(this.lmFormatterService, this.lmListCardService, this.lmUrlUtilService, row, cell, value, columnDef, dataView, dataGrid, 'lm-dashboard-card-container');\n\n onNavigationClick(event, displayField?: LMListDisplayField) {\n let df: LMListDisplayField;\n\n if (displayField === undefined) {\n df = {\n columnId: '',\n fieldId: '',\n type: '',\n navigation: this.panel.overviewNavigation.name\n };\n } else {\n df = displayField;\n }\n\n const uiLink: LMUILinkEvent = {\n columnDef: { displayField: df },\n dataView: this._dataView,\n event,\n options: { fromDashboard: true }\n };\n\n this.uiLinkEvent.emit(uiLink);\n }\n\n onWidgetContentClick(event) {\n if (event && event.target.nodeName === 'A' && event.target.dataset.displayfield !== undefined) {\n this.onNavigationClick(event, JSON.parse(event.target.dataset.displayfield));\n }\n }\n}\n","
                        \n\n
                        \n

                        \n {{panel.title}}\n

                        \n\n \n
                        \n\n
                        \n
                        \n","import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport * as urltemplate from 'url-template';\nimport { LMTextEvent } from '@field/text';\nimport { LMButtonType, LMGlobalUtilService } from '@utils/index';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { DocumentResource } from '@resources/document.resource';\nimport { LMFormContentTemplateComponent } from '@form/lm-form-content-template.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMTwelveColumnPanelBaseComponent } from './lm-twelve-column-panel-base.component';\n\n@Component({\n selector: 'lm-twelve-column-panel-form-template',\n templateUrl: './lm-twelve-column-panel-form-template.component.html'\n})\n\nexport class LMTwelveColumnPanelFormTemplateComponent extends LMTwelveColumnPanelBaseComponent {\n @ViewChild('LMFormContentTemplateComponent') lmFormTemplateComponent: LMFormContentTemplateComponent;\n\n @Output() componentDisplayed = new EventEmitter();\n\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() messageRuleView: LMDataView;\n\n @Input() set panel(panel) {\n this._panel = panel;\n this.build();\n };\n\n get panel(): LandmarkPanel {\n return this._panel;\n }\n\n @Input() set fromDataView(dataView) {\n this._dataView = dataView;\n this.build();\n };\n\n get fromDataView() {\n return this._dataView;\n }\n\n public formSpec: LMFormSpec;\n public initDataView: LMDataView = null;\n private _dataView: LMDataView;\n private _panel: LandmarkPanel;\n\n public formUrlInfo: LMFormUrlInfo;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n\n constructor(\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmNavigationService: LMNavigationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n protected lmThemeService: LMThemeService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService\n ) {\n super(lmThemeService);\n }\n\n savePanelState(): void { }\n\n clearPanelState(): void { }\n\n public onNavigationClick(): void {\n const navName = this.panel.overviewNavigation ? this.panel.overviewNavigation.name : this.panel.busFormPanel.overviewNavigation.name;\n this.runOverviewNavigation(navName);\n }\n\n onFieldEvent(event: LMFieldEvent): void {\n if ('TextLinkEvent' === event.eventType) {\n const linkEvent: LMTextEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n } else if (linkEvent.layoutObject.type === LMButtonType.NAVIGATION) {\n this.runNavigation(linkEvent.layoutObject.navigation, linkEvent.layoutObject.showAsPdf);\n } else if (linkEvent.layoutObject.type === LMButtonType.VIEWDOCUMENT) {\n this.openDocumentResource(linkEvent.layoutObject.resourceId);\n }\n }\n }\n\n build() {\n if (this._panel && this._dataView) {\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this._panel.formSpec);\n\n if (this._panel.overviewNavigation || (this._panel.busFormPanel && this._panel.busFormPanel.overviewNavigation)) {\n this.hasOverviewNavigation = true;\n if ((this._panel.overviewNavigation && this._panel.overviewNavigation.label) || (this._panel.busFormPanel.overviewNavigation && this._panel.busFormPanel.overviewNavigation.label)) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n this._setContentClasses(this.panel);\n }\n }\n\n overViewNavigationLabel() {\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this._panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n }\n\n onFormRendered() {\n this.componentDisplayed.emit({ panel: this.panel });\n }\n\n private runNavigation(navigation: string, showAsPdf: boolean) {\n const dataView = this.fromDataView;\n\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: dataView.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf });\n }\n\n private runOverviewNavigation(navigationName: string): void {\n const dataView = this.fromDataView;\n\n const compiledUrlTemplate = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n\n private buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n const dataView = this.fromDataView;\n\n const option: string = (link.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(link.httpUrl, dataView);\n\n if (url) {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n }\n\n private openDocumentResource(resourceId: string): void {\n const dataView = this.fromDataView;\n const documentResource = new DocumentResource({ resourceId, dataView }, '');\n const url: string = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n this.lmGlobalUtilService.navigate(url, null, 'external');\n }\n}\n","
                        \n
                        \n \n {{panel.title}}\n \n\n \n
                        \n\n
                        \n \n
                        \n\n
                        \n","import {\n AfterViewChecked,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n HostBinding\n} from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport * as urltemplate from 'url-template';\nimport { LMTextEvent } from '@field/text';\nimport { AppConstants, LMButtonType, LMGlobalUtilService } from '@utils/index';\nimport { LMNavigationService } from '@navigation/lm-navigation.service';\nimport { DocumentResource } from '@resources/document.resource';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { KeyedResource } from '@app/resources';\nimport { LMTwelveColumnPanelBaseComponent } from './lm-twelve-column-panel-base.component';\n\n@Component({\n selector: 'lm-twelve-column-panel-form',\n templateUrl: './lm-twelve-column-panel-form.component.html'\n})\n\nexport class LMTwelveColumnPanelFormComponent extends LMTwelveColumnPanelBaseComponent implements AfterViewChecked, OnInit {\n @HostBinding('attr.id') public id;\n\n @ViewChild(forwardRef(() => 'LMFormComponent')) lmFormComponent; // : LMFormComponent;\n\n @Output() componentDisplayed = new EventEmitter();\n @Output() fieldEvent = new EventEmitter();\n\n @Input() formUrlInfo: LMFormUrlInfo;\n @Input() panel: LandmarkPanel;\n @Input() model: LMModel; // used by composite forms when displaying panels as dashboard panes\n @Input() specFields: LMSpecFields; // used by composite forms when displaying panels as dashboard panes\n @Input() placeHolder: ViewContainerRef; // used by composite forms when displaying panels as dashboard panes\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView: LMDataView) {\n this._fromDataView = dataView;\n this._fromDataViewChanged = true;\n };\n\n get fromDataView() {\n return this._fromDataView;\n }\n\n private _fromDataView: LMDataView;\n private _fromDataViewChanged: boolean;\n\n public initDataView: LMDataView = null;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n public isInAccessibilityMode: boolean;\n\n constructor(\n private lmUrlUtilService: LMUrlUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmNavigationService: LMNavigationService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUniqueIdService: LMUniqueIdService,\n protected lmThemeService: LMThemeService,\n protected lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n\n if (this.panel.type === 'menuPanel') {\n const menuPanelFormId = this.buildMenuPanelFormId();\n this.panel.formSpec = {\n formElementId: menuPanelFormId,\n busFormSpec: this.buildBusFormSpec(this.panel),\n busClassSpec: this.buildBusClassSpec(),\n resourceId: menuPanelFormId\n };\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.panel.formSpec);\n this.initDataView = this.fromDataView;\n } else if (this.panel.formSpec.dependentForm || this.panel.formSpec.independentForm) {\n // ------------------------------------------------------------------------------\n // if panel.formSpec is dependent then override main forms formUrlInfo that is\n // passed into this component.\n // ------------------------------------------------------------------------------\n this.formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromFormSpec(this.panel.formSpec);\n }\n\n // --------------------------------------------------------------------------------\n // use the formUrlInfo object passed in. this.formUrlInfo is the main form\n // formUrlInfo object as should be used for form panels that have a dashboard-view\n // with this lm-dashboard-panel-form.\n // Exception to this are menu panels (only allowed on pages), dependent\n // (aka related) panels, and independent form panels.\n // --------------------------------------------------------------------------------\n if (!this.formUrlInfo) {\n console.error('formUrlInfo is null for this lm-dashboard-panel-form');\n }\n\n this.build();\n }\n\n ngAfterViewChecked() {\n if (this._fromDataViewChanged) {\n this._fromDataViewChanged = false;\n this.build();\n }\n }\n\n savePanelState(): void {\n if (this.lmFormComponent) {\n this.lmFormComponent.saveComponentState(true);\n }\n }\n\n clearPanelState(): void {\n if (this.lmFormComponent) {\n this.lmFormComponent.clearComponentState(true);\n }\n }\n\n onNavigationClick(): void {\n if (this.lmFormComponent) {\n const navName = this.panel.overviewNavigation ? this.panel.overviewNavigation.name : this.panel.busFormPanel.overviewNavigation.name;\n this.runOverviewNavigation(navName);\n }\n }\n\n onFieldEvent(event: LMFieldEvent): void {\n if ('TextLinkEvent' === event.eventType) {\n const linkEvent: LMTextEvent = event as LMTextEvent;\n\n if (linkEvent.layoutObject.hasHttpUrl || linkEvent.layoutObject.linkNavigation) {\n this.buildFormTextLinkNavigation(linkEvent.layoutObject);\n } else if (linkEvent.layoutObject.type === LMButtonType.NAVIGATION) {\n this.runNavigation(linkEvent.layoutObject.navigation, linkEvent.layoutObject.showAsPdf);\n } else if (linkEvent.layoutObject.type === LMButtonType.VIEWDOCUMENT) {\n this.openDocumentResource(linkEvent.layoutObject.resourceId);\n } else if (linkEvent.layoutObject.type === LMButtonType.REGISTRATION) {\n this.lmGlobalUtilService.navigateByUrl(linkEvent.layoutObject.registerLink);\n } else if (linkEvent.layoutObject.type === LMButtonType.SIGNIN) {\n this.lmGlobalUtilService.navigate(linkEvent.layoutObject.signInLink);\n } else if (linkEvent.layoutObject.type === LMButtonType.SIGNOUT) {\n this.lmGlobalUtilService.navigate(linkEvent.layoutObject.signOutLink);\n }\n } else {\n this.fieldEvent.emit(event);\n }\n }\n\n build() {\n if (this.panel\n && this._fromDataView\n && (this.panel.overviewNavigation || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation))) {\n\n this.hasOverviewNavigation = true;\n if ((this.panel.overviewNavigation && this.panel.overviewNavigation.label)\n || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation && this.panel.busFormPanel.overviewNavigation.label)\n ) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n if (this.panel) {\n this._setContentClasses(this.panel);\n }\n }\n\n overViewNavigationLabel() {\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this.panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n }\n\n onFormRendered() {\n this.componentDisplayed.emit({ panel: this.panel });\n }\n\n private runNavigation(navigation: string, showAsPdf: boolean) {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const compiledTemplateNavUrl = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const navigationUrl = compiledTemplateNavUrl.expand({\n resourceId: dataView.resourceId,\n navigationName: navigation\n });\n this.lmNavigationService.runNavigation(navigationUrl, undefined, { showAsPdf });\n }\n\n private runOverviewNavigation(navigationName: string): void {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.formUrlInfo.navigationUrl);\n const url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n\n this.lmGlobalUtilService.navigateByUrl(url);\n\n }\n\n private buildFormTextLinkNavigation(link: LMButtonLayout) {\n if (link.httpUrl) {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n\n const option: string = (link.openExternal) ? 'external' : '';\n const url: string = this.lmFormatUtilService.formatMessageRule(link.httpUrl, dataView);\n\n if (url) {\n // When getting a http url/linkback that returns a navigation, we need to handle\n // by calling runNavigation instead of navigate. This will prevent the navigation\n // url from replacing the current lmclient route.\n // see LMCLIENT-35609.\n let resource: KeyedResource;\n try {\n //getRouteResource will throw an error if the url cannot be parsed.\n resource = this.lmUrlUtilService.getRouteResource(url);\n } catch (e) {\n //noop\n }\n // copied from lm-navigation.component\n if (resource?.resourceType === 'navigation') {\n this.lmNavigationService.runNavigation(url, undefined, { openNewTab: link.openExternal });\n } else {\n this.lmGlobalUtilService.navigate(url, null, option);\n }\n }\n }\n }\n\n private openDocumentResource(resourceId: string): void {\n let dataView: LMDataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmFormComponent.getDataView();\n }\n const documentResource = new DocumentResource({\n resourceId,\n dataView\n }, '');\n const url: string = this.lmUrlUtilService.buildUrl({ resource: documentResource });\n this.lmGlobalUtilService.navigate(url, null, 'external');\n }\n\n buildBusFormSpec(args): LMBusFormSpec {\n\n const busFormLayoutSpec: LMBusFormLayoutSpec = {\n layout: args.layout\n };\n\n const messageRule: LMMessageRule = {\n resourceValue: '',\n };\n\n const busFormSpec: LMBusFormSpec = {\n busFormLayoutSpec,\n name: '',\n fields: {},\n title: messageRule,\n formType: 'Menu',\n effectiveDateField: {},\n effectiveDateFieldId: '',\n reasonCodeFieldId: '',\n actionCommentFieldId: '',\n effectiveThroughFieldId: '',\n correctionCommentFieldId: '',\n openActionRestricted: false,\n implementsDashBoardView: true,\n };\n return busFormSpec;\n }\n\n buildBusClassSpec(): LMBusClassSpec {\n\n const busClassSpec: LMBusClassSpec = {\n actions: [],\n actionSpec: {},\n implAuditing: false,\n implEffectiveDated: false,\n isBusClass: false,\n isBusTask: false,\n name: 'menuPanel',\n implementsOrgChartView: false,\n };\n return busClassSpec;\n }\n\n private buildMenuPanelFormId() {\n return this.lmUniqueIdService.uniqueId([ this.panel.id, 'MenuPanel' ]);\n }\n}\n","
                        \n\n
                        \n

                        \n {{panel.title}}\n

                        \n \n
                        \n\n
                        \n \n \n \n \n \n \n \n \n \n \n \n \n \n
                        \n\n
                        \n \n \n
                        \n
                        \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, HostBinding } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMListComponent } from '@list/lm-list.component';\nimport { LMActionService } from '@services/lm-action.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { Observable, Observer, of } from 'rxjs';\nimport { LMPanelTransactionEvent } from '@form/services/lm-form-panel.service';\n\nimport * as urltemplate from 'url-template';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMContextService, LMUrlInfoBuilderService } from '@services/index';\nimport { LMRefreshRequest } from '@app/components';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { LMTwelveColumnPanelBaseComponent } from '@components/twelvecolumngrid/lm-twelve-column-panel-base.component';\n\n@Component({\n selector: 'lm-twelve-column-panel-list',\n templateUrl: './lm-twelve-column-panel-list.component.html'\n})\nexport class LMTwelveColumnPanelListComponent extends LMTwelveColumnPanelBaseComponent implements OnInit {\n @HostBinding('attr.id') public id;\n\n @ViewChild('LMListComponent', { static: true }) lmListComponent: LMListComponent;\n\n @Input() panel: LandmarkPanel;\n @Input() messageRuleView: LMDataView;\n\n @Input() set fromDataView(dataView) {\n this._showCreateAction = false;\n this._dataView = dataView;\n this.build();\n };\n\n get fromDataView(): LMDataView {\n return this._dataView;\n }\n\n @Output() componentDisplayed = new EventEmitter();\n @Output() contentModified = new EventEmitter();\n @Output() sendContextMessageEvent = new EventEmitter();\n @Output() panelTransactionEvent = new EventEmitter();\n\n private _defaultCreateAction: LMActionSpec;\n private _showCreateAction = false;\n private _dataView: LMDataView;\n\n public listUrlInfo: LMListUrlInfo;\n public createActionLabel: string;\n public overNavigationLink: string;\n public hasOverviewNavigation = false;\n public displayLinkAsText = false;\n public showPagerInDashboard = false;\n public contentClasses = 'widget-content';\n public testVersion1: boolean;\n public isInAccessibilityMode: boolean;\n public cardClasses = 'columns';\n\n constructor(\n private lmActionService: LMActionService,\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n protected lmThemeService: LMThemeService,\n private lmUrlUtilBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.panel.listSpec.busListSpec.showAsSimpleList = true;\n this.panel.listSpec.busListSpec.selection = 'single';\n this.panel.listSpec.listType = 'dashboard';\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n\n if (this.panel.displayChart) {\n this.panel.listSpec.busListSpec.defaultChartName = this.panel.displayChart;\n }\n\n this.listUrlInfo = this.lmUrlUtilBuilderService.getListUrlInfoFromListSpec(this.panel.listSpec);\n\n if (this.createAction) {\n this._showCreateAction = true;\n }\n\n this.build();\n }\n\n savePanelState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.saveComponentState(true);\n }\n }\n\n clearPanelState(): void {\n if (this.lmListComponent) {\n this.lmListComponent.clearComponentState(true);\n }\n }\n\n isModified(): boolean {\n if (this.lmListComponent) {\n return this.lmListComponent.isModified();\n }\n return false;\n }\n\n public refresh(request?: LMRefreshRequest): Observable {\n if (this.lmListComponent) {\n return this.lmListComponent.refresh(request);\n } else {\n return of(true);\n }\n }\n\n save(callBack: Observer) {\n if (this.lmListComponent && this.lmListComponent.isModified()) {\n this.lmListComponent.runSaveAction(AppConstants.STANDARD_SAVE, callBack);\n } else {\n callBack.next(true);\n callBack.complete();\n }\n }\n\n public get createAction() {\n return this._defaultCreateAction;\n }\n\n public get showCreateAction() {\n return this._showCreateAction;\n }\n\n build() {\n if (this.panel) {\n if (this.panel.overviewNavigation || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation)) {\n this.hasOverviewNavigation = true;\n if ((this.panel.overviewNavigation && this.panel.overviewNavigation.label)\n || (this.panel.busFormPanel && this.panel.busFormPanel.overviewNavigation && this.panel.busFormPanel.overviewNavigation.label)\n ) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n this._setContentClasses(this.panel);\n }\n }\n\n overViewNavigationLabel() {\n // if (this.fromDataView) { // Assuming the dashboard panels in pages have no variables in message rule.\n const message = !!this.panel.overviewNavigation ? this.panel.overviewNavigation.label : this.panel.busFormPanel.overviewNavigation.label;\n const dataView = this.fromDataView ? this.fromDataView : this.messageRuleView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(message, dataView);\n // }\n }\n\n onListDisplayed() {\n this.showPagerInDashboard = this.lmListComponent.showPagingBarInDashboardPanel();\n\n // this.hasListView = (this.lmListComponent.isCardViewOnly && this.lmListComponent.isDashBoardContent);\n // this.hasDataGrid = (!this.lmListComponent.isCardViewOnly && this.lmListComponent.isDashBoardContent);\n\n // todo sjw ppatton - This was in a time out since it would run before the chart component was rendered causing\n // todo sjw ppatton - an error in the console. Has that part now been fixed?\n const dataViewSet: LMDataViewSet = this.lmListComponent.getDataViewSet();\n if (dataViewSet) {\n if (this.lmListComponent.listSpec &&\n this.lmListComponent.listSpec.busListSpec &&\n !this.lmListComponent.listSpec.busListSpec.implementsCubeView) {\n\n const actions = this.lmListComponent.listSpec.busClassSpec.actions;\n const actionIndexes = dataViewSet.actionIndexes;\n this._defaultCreateAction = this.lmActionService.getDefaultCreateAction(actions, actionIndexes);\n\n if (this._defaultCreateAction) {\n this.createActionLabel = this._defaultCreateAction.label;\n this._showCreateAction = true;\n } else {\n this._showCreateAction = false;\n }\n }\n this.componentDisplayed.emit({ panel: this.panel });\n }\n }\n\n onContentModified(event: any) {\n this.contentModified.emit(event);\n }\n\n public onSendContextMessageEvent(event: any) {\n this.sendContextMessageEvent.emit(event);\n }\n\n public onPanelTransactionEvent(event: LMPanelTransactionEvent) {\n this.panelTransactionEvent.emit(event);\n }\n\n onCreateClicked() {\n this.lmListComponent.runCreateAction(this._defaultCreateAction);\n }\n\n // List navigation doesn't seem to be implemented yet?\n public onNavigationClick() {\n const navigation: LMOverviewNavigation = this.panel.overviewNavigation ? this.panel.overviewNavigation : this.panel.busFormPanel.overviewNavigation;\n this.runNavigation(navigation.name);\n }\n\n private runNavigation(navigationName: string): void {\n let dataView;\n if (this.fromDataView) {\n dataView = this.fromDataView;\n } else {\n dataView = this.lmListComponent.getDataViewSet().header;\n }\n\n const compiledUrlTemplate = urltemplate.parse(this.listUrlInfo.navigationUrl);\n let url = compiledUrlTemplate.expand({ resourceId: dataView.resourceId, navigationName });\n\n if (this.lmListComponent.listSpec &&\n this.lmListComponent.listSpec.busListSpec &&\n this.lmListComponent.listSpec.busListSpec.implementsCubeView) {\n\n let delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n if (this.panel.overviewNavigation.overrideDimensionTree.length > 0) {\n url = url + delimiter + 'dimensionsOverride=' + this.panel.overviewNavigation.overrideDimensionTree.join(',');\n delimiter = '&';\n }\n if (this.panel.displayChart) {\n url = url + delimiter + 'chartName=' + this.panel.displayChart;\n }\n }\n\n this.lmGlobalUtilService.navigateByUrl(url);\n }\n}\n","\n\n\n\n
                        \n {{panel.title}}\n\n
                        \n \n {{overNavigationLink}}\n \n
                        \n
                        \n\n
                        \n \n
                        \n
                        \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, HostBinding } from '@angular/core';\nimport { LandmarkPanel } from '@form/lm-form.model';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMFormService } from '@form/services/lm-form.service';\nimport { LMFormManualRepService } from '@form/lm-form-manual-rep.service';\nimport { Observer } from 'rxjs';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMGlobalPersonalizationService } from '@app/states';\nimport { LMTwelveColumnPanelBaseComponent } from './lm-twelve-column-panel-base.component';\n\n@Component({\n selector: 'lm-twelve-column-panel-url',\n template: `\n
                        \n
                        \n {{title}}\n \n
                        \n\n
                        \n \n
                        \n
                        `\n ,\n providers: [ LMFormService, LMFormManualRepService ]\n})\nexport class LMTwelveColumnPanelUrlComponent extends LMTwelveColumnPanelBaseComponent implements OnInit {\n @HostBinding('attr.id') public id;\n\n @ViewChild('LMHtmlUrlDoc') htmlDocComponent: LMHtmlUrlDocComponent;\n\n @Input() panel: LandmarkPanel;\n @Input() set messageRuleView(messageRuleView: LMDataView) {\n this._messageDataView = messageRuleView;\n this.setUrl();\n }\n\n @Input() set fromDataView(fromDataView: LMDataView) {\n this._fromDataView = fromDataView;\n this.setUrl();\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n @Output() uiLinkEvent = new EventEmitter();\n @Output() landmarkCustomReady = new EventEmitter();\n\n public url: string = undefined;\n public title: string = undefined;\n public overNavigationLink: string;\n public hasOverviewNavigation: boolean;\n public displayLinkAsText: boolean;\n public testVersion1: boolean;\n public isInAccessibilityMode: boolean;\n\n private _messageDataView: LMDataView = null;\n private _fromDataView: LMDataView = null;\n\n constructor(\n private lmContextService: LMContextService,\n private lmFormatUtilService: LMFormatUtilService,\n protected lmThemeService: LMThemeService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {\n super(lmThemeService);\n }\n\n ngOnInit() {\n this.isInAccessibilityMode = this.lmGlobalPersonalizationService.getAccessibilityMode();\n this.testVersion1 = this.lmContextService.testVersion() === AppConstants.TESTVERSION_V1;\n\n this.id = this.panel.id + AppConstants.ELEMENT_ID_SUFFIX_DASHBOARDPANEL;\n this.title = this.panel.title;\n\n this.setUrl();\n\n if (this.panel) {\n this._setContentClasses(this.panel);\n }\n\n if (this.panel.overviewNavigation) {\n this.hasOverviewNavigation = true;\n if (this.panel.overviewNavigation.label) {\n this.displayLinkAsText = true;\n this.overViewNavigationLabel();\n }\n }\n }\n\n overViewNavigationLabel() {\n const dataView = this.fromDataView ? this._fromDataView : this._messageDataView;\n this.overNavigationLink = this.lmFormatUtilService.formatMessageRule(this.panel.overviewNavigation.label, dataView);\n }\n\n onNavigationClick(event: any): void {\n const displayField: LMListDisplayField = {\n columnId: '',\n fieldId: '',\n type: '',\n navigation: this.panel.overviewNavigation.name\n };\n const uiLink: LMUILinkEvent = {\n columnDef: { displayField },\n dataView: this._fromDataView,\n event,\n options: { fromDashboard: true }\n };\n\n this.uiLinkEvent.emit(uiLink);\n }\n\n onLandmarkCustomReady(event: any) {\n if (this.htmlDocComponent) {\n this.htmlDocComponent.setDataView(this._fromDataView);\n }\n }\n\n setUrl() {\n if (this.panel) {\n // We need to make sure we have data before calling the formatMessageRule method if we have values to set in a message rule.\n // We only set the url that triggers the template to render if we have both variables and data.\n const dataView = this._fromDataView ? this._fromDataView : this._messageDataView;\n // if ((typeof this.panel.url === 'string')\n // || (typeof this.panel.url !== 'string' && !this.panel.url.variables)\n // || (typeof this.panel.url !== 'string' && this.panel.url.variables.length === 0)\n // || (typeof this.panel.url !== 'string' && this.panel.url.variables.length > 0 && dataView)\n // ) {\n this.url = this.lmFormatUtilService.formatMessageRule(this.panel.url, dataView);\n // }\n }\n }\n\n onHtmlUrlDisplayed(event: any) {\n\n }\n\n savePanelState(): void {\n // NOOP\n }\n\n clearPanelState(): void {\n // NOOP\n }\n\n saveDetailSectionState() {\n // noop\n }\n\n clearDetailSectionState() {\n // noop\n }\n\n save(callBack: Observer) {\n // nothing to save\n callBack.next(true);\n callBack.complete();\n }\n}\n","export * from './lm-visiblewhen.directive';\n","import { ChangeDetectorRef, Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMModel } from '@form/model/lm-model';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMModelChangedEvent } from '@form/model';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\nimport { LMFormService } from '@form/services/lm-form.service';\n\n@Directive({\n selector: '[visiblewhen]' // tslint:disable-line\n})\nexport class LMVisibleWhenDirective implements OnDestroy, OnInit {\n @Input() layoutObject: LMFormLayoutField;\n @Input() specFields: LMSpecFields;\n @Input() model: LMModel;\n @Input() parent: string;\n @Input() isTable: boolean;\n\n private hasView = false;\n private instanceId: string;\n private subscriptionArray: Array = [];\n\n constructor(\n private lmLoggerService: LMLoggerService,\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private lmConditionUtilService: LMConditionUtilService,\n private changeDetectorRef: ChangeDetectorRef,\n private lmFormService: LMFormService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n }\n\n ngOnInit() {\n if (!this.layoutObject) {\n return;\n }\n\n this.evaluateTemplateConditions();\n\n if (this.layoutObject.visibility) {\n // if there is a visibilty property then listen form model changes so we can\n // update whether it should be displayed in the dom or not.\n this.subscriptionArray.push(\n this.model.modelChanged.subscribe((modelChangedEvent: LMModelChangedEvent) => {\n this.evaluateTemplateConditions();\n })\n );\n\n this.subscriptionArray.push(\n this.lmConditionUtilService.evaluateConditions.subscribe( (status: boolean) => {\n this.evaluateTemplateConditions();\n })\n );\n }\n }\n\n ngOnDestroy() {\n // clean up subscriptions\n this.subscriptionArray.forEach(subscription => subscription.unsubscribe());\n }\n\n private evaluateTemplateConditions() {\n // if no visibility then we still need to display initially.\n // todo: is there a way to not have this directive at all when there is no layoutObject.visiblity\n const valid = this.layoutObject.visibility ? this.lmConditionUtilService.isValid(this.layoutObject.visibility, this.model) : true;\n\n if (!this.isTable) {\n if (!this.hasView && valid) {\n // if true, add to dom\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.lmFormService.visibleWhenEvent(this.viewContainer.element);\n // this.lmLoggerService.time('LMVisibleWhen evaluateTemplateConditions() markForCheck() ' + this.layoutObject.id + ' ' + this.instanceId);\n // DETECT CHANGES now markForCheck()\n this.changeDetectorRef.markForCheck();\n // this.lmLoggerService.timeEndCheck('LMVisibleWhen evaluateTemplateConditions() markForCheck() ' + this.layoutObject.id + ' ' + this.instanceId, 200);\n this.hasView = true;\n\n } else if (this.hasView && !valid) {\n // if false, remove from dom\n this.viewContainer.clear();\n this.lmFormService.visibleWhenEvent(this.viewContainer.element);\n this.hasView = false;\n }\n }\n\n if (this.isTable) {\n if (!this.hasView && valid) {\n if (this.viewContainer.element.nativeElement\n && this.viewContainer.element.nativeElement.previousElementSibling\n && this.viewContainer.element.nativeElement.previousElementSibling.nodeName === 'TD'\n ) {\n this.viewContainer.element.nativeElement.previousElementSibling.style.visibility = 'visible';\n }\n\n if (this.viewContainer.length === 0) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.changeDetectorRef.markForCheck();\n }\n\n this.hasView = true;\n\n } else if (this.hasView && !valid) {\n if (this.viewContainer.element.nativeElement\n && this.viewContainer.element.nativeElement.previousElementSibling\n && this.viewContainer.element.nativeElement.previousElementSibling.nodeName === 'TD'\n ) {\n this.viewContainer.element.nativeElement.previousElementSibling.style.visibility = 'hidden';\n }\n\n this.hasView = false;\n }\n }\n }\n}\n","import { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot } from '@angular/router';\nimport { SaveRequired } from '@base/lm-base';\nimport { LMHtmlPageComponent } from '@html/lm-html-page.component';\nimport { LMGlobalUtilService } from './utils';\nimport { Location } from '@angular/common';\nimport { LMUrlUtilService } from '@services/utils';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class DeactivateGuard implements CanDeactivate {\n\n constructor(\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUrlUtilService: LMUrlUtilService,\n private location: Location,\n ) {}\n\n canDeactivate(component: SaveRequired, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot) {\n if (component) {\n if (component instanceof LMHtmlPageComponent) {\n const htmlPageComp: LMHtmlPageComponent = component;\n // if we get here we know the the route is //html/url?\n\n if (!htmlPageComp.htmlDocComponent) {\n return true;\n }\n const currentUrl: string = htmlPageComp.htmlDocComponent.getLoadedUrl();\n const possibleNextUrl: string = nextState.url;\n\n const currentUrlPath: string = currentUrl.indexOf('?') >= 0 ? currentUrl.substring(0, (currentUrl.indexOf('?'))) : currentUrl;\n const possibleNextUrlPath: string = possibleNextUrl.indexOf('?') >= 0 ? possibleNextUrl.substring(0, possibleNextUrl.indexOf('?')) : '';\n\n const currentUrlParams: string = currentUrl.indexOf('?') >= 0 ? currentUrl.substring((currentUrl.indexOf('?') + 1)) : currentUrl;\n const possibleNextUrlParams: string = possibleNextUrl.indexOf('?') >= 0 ? possibleNextUrl.substring((possibleNextUrl.indexOf('?') + 1)) : '';\n\n // let htmlPageComp: LMHtmlPageComponent = component;\n // let oldUrl = htmlPageComp.autoLoadUrl;\n // // let currentRouteUrl = htmlPageComp.getCurrentRouterUrl();\n // let currentHost = window.location.host;\n // let currentProtocol = window.location.protocol;\n // let currentUrl = currentProtocol + '//' + currentHost.toLowerCase() + currentRouteUrl;\n //\n if (currentUrlPath === possibleNextUrlPath) {\n // ok now we know we are going to try to load the LMHtmlPageComponent because the paths match.\n // Also - We dont want to keep firing the same event if the params are the same.\n\n // only load when params are changed\n let possibleNextUrlParamsArray: Array = possibleNextUrlParams.split('&');\n possibleNextUrlParamsArray = this.lmUrlUtilService.stripCSKs(possibleNextUrlParamsArray);\n\n setTimeout(() => {\n htmlPageComp.htmlDocComponent.setLoadedUrl(possibleNextUrl);\n htmlPageComp.htmlDocComponent.fireSameUrlRequested(possibleNextUrl);\n });\n return false;\n }\n }\n\n return component.allowPageNavigation();\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n// TODO: this service should be migrated to ep-ng\n@Injectable()\nexport class BreakpointChangeService {\n private changes$: Observable\n\n constructor(private ngZone: NgZone) {\n this.changes$ = fromEvent<[Event, BreakpointChangeEvent]>(jQuery('body'), 'breakpoint-change')\n .pipe(map(([event, changeEvent]) => ngZone.run(() => changeEvent)));\n }\n\n /**\n * Watches for breakpoint changes and returns true if\n * current view is equal to or below phone size\n * @return true if phone and below\n */\n public get isPhoneView$(): Observable {\n return this.changes$.pipe(\n map((change: BreakpointChangeEvent) => change.current),\n startWith(Soho.breakpoints.current()),\n map(view => view === 'phone' || view === 'phonedown'),\n distinctUntilChanged()\n );\n }\n\n /**\n * Watches for breakpoint changes and returns true if\n * current view is greater than phone size\n * @return true if size is above phone\n */\n public get isAbovePhoneView$(): Observable {\n return this.isPhoneView$.pipe(\n map(isPhoneView => !isPhoneView)\n );\n }\n}\n\ninterface BreakpointChangeEvent {\n previous: string;\n current: string;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LMDrawerComponent } from './lm-drawer/lm-drawer.component';\nimport { LMDrawerSideComponent } from './lm-drawer-side/lm-drawer-side.component';\nimport { LMDrawerContentComponent } from './lm-drawer-content/lm-drawer-content.component';\nimport { LMDrawerSideCollapsedComponent } from './lm-drawer-side-collapsed/lm-drawer-side-collapsed.component';\nimport { BreakpointChangeService } from './breakpoint-change.service';\n\n@NgModule({\n declarations: [\n LMDrawerComponent,\n LMDrawerSideComponent,\n LMDrawerContentComponent,\n LMDrawerSideCollapsedComponent,\n ],\n providers: [ BreakpointChangeService ],\n imports: [ CommonModule ],\n exports: [\n LMDrawerComponent,\n LMDrawerSideComponent,\n LMDrawerContentComponent,\n LMDrawerSideCollapsedComponent,\n ]\n})\nexport class DrawerModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lm-drawer-content',\n template: '',\n styleUrls: ['./lm-drawer-content.component.scss']\n})\nexport class LMDrawerContentComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lm-drawer-side-collapsed',\n template: '',\n styleUrls: ['./lm-drawer-side-collapsed.component.scss']\n})\nexport class LMDrawerSideCollapsedComponent {\n @Input() collapsed = false;\n}\n","import { Component, HostBinding, HostListener, Input } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'lm-drawer-side',\n template: '',\n animations: [\n trigger('toggleSide', [\n state('collapsed', style({ width: '0' })),\n state('expanded', style({ width: '*' })),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.17, 0.04, 0.03, 0.94)'))\n ])\n ]\n})\nexport class LMDrawerSideComponent {\n @Input() collapsed = false;\n\n @HostBinding('@toggleSide') get sideState(): 'collapsed' | 'expanded' {\n return this.collapsed ? 'collapsed' : 'expanded';\n }\n\n @HostListener('@toggleSide.start') toggleSideStart() {\n if (!this.collapsed) {\n this.collapsedDone = false;\n }\n }\n\n @HostListener('@toggleSide.done') toggleSideDone() {\n if (this.collapsed) {\n this.collapsedDone = true;\n }\n }\n\n @HostBinding('class.hidden') collapsedDone = false;\n}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n Input,\n HostBinding\n} from '@angular/core';\n\nimport { LMDrawerContentComponent } from '@drawer/lm-drawer-content/lm-drawer-content.component';\nimport { LMDrawerSideComponent } from '@drawer/lm-drawer-side/lm-drawer-side.component';\n\n@Component({\n selector: 'lm-drawer',\n template: '',\n styleUrls: ['./lm-drawer.component.scss']\n})\nexport class LMDrawerComponent implements AfterViewInit {\n\n @ContentChild(LMDrawerSideComponent) side: LMDrawerSideComponent;\n @ContentChild(LMDrawerContentComponent) content: LMDrawerContentComponent;\n\n @Input() showDetails = false;\n @Input() showDetailsOnSide = false;\n @Input() additionalClasses: string[];\n\n @HostBinding('class') get classes(): string {\n let classNames: string[] = [];\n\n if (this.showDetails) {\n // enterprise's _list-detail.scss that\n // shows detail area in responsive view\n classNames.push('show-detail');\n }\n\n if (this.showDetailsOnSide) {\n // enterprise's _layouts.scss for sidebar & content\n classNames.push('two-column fixed-mm');\n }\n\n if (this.additionalClasses.length) {\n classNames = [...classNames, ...this.additionalClasses];\n }\n\n return classNames.length ? classNames.join(' ') : '';\n }\n\n ngAfterViewInit() {\n // Mandatory child components:\n if (!this.side) {\n throw 'LMDrawerSideComponent not found'\n }\n\n if (!this.content) {\n throw 'LMDrawerContentComponent not found'\n }\n }\n}\n","import {\n HttpClient,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ElementRef, Injectable, OnInit } from '@angular/core';\nimport { LMContextService, LMRouteComponentService, LMUrlInfoBuilderService, LMUrlUtilService } from './services';\nimport { AppConstants, LMGlobalUtilService } from './utils';\nimport { LMBaseComponent } from '@base/lm-base.component';\nimport { LMHttpIntercepterService } from '@services/lm-http-intercepter.service';\nexport const getApiPath = (isDevMode: boolean, devApiPath: string): string =>\n isDevMode\n ? devApiPath\n : `${window.location.protocol}//${window.location.host}${window.location.pathname}api`;\n/**\n * HttpErrorInterceptor intercepts HTTP error response and show a message to the users\n */\n\n@Injectable()\nexport class UserWebRequestHttpInterceptor implements HttpInterceptor, OnInit {\n\n private componentInfo: LMComponentInfo;\n\n constructor(\n private httpClient: HttpClient,\n public activatedRoute: ActivatedRoute,\n public router: Router,\n public lmRouteComponentService: LMRouteComponentService,\n public lmHttpIntercepterService: LMHttpIntercepterService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {\n }\n\n ngOnInit() {\n // let b = this.lmRouteComponentService;\n }\n // tslint:disable-next-line\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const context = this.lmContextService.getContext();\n // dont intercept the calls unless the UserPageHit flag is set. Using that for now. It can split later if that becomes required\n if (!(context && context.enableUserPageHit)) {\n return next.handle(req);\n }\n\n let webReportHeaders = req.headers;\n const comp = this.lmRouteComponentService.getRouteComponent() as LMBaseComponent;\n let elementRef: ElementRef;\n\n if (comp) {\n elementRef = comp[ 'elementRef' ] ? comp[ 'elementRef' ] : undefined;\n\n if (elementRef != null && this.lmHttpIntercepterService && comp.getUserWebRequestId().length === 0) {\n const id = elementRef.nativeElement.nodeName + '-' + this.lmHttpIntercepterService.getUserWebRequestId();\n comp.setUserWebRequestId(id);\n }\n\n this.componentInfo = comp.getComponentInfo();\n }\n const hasCompInfo = (comp && comp !== null && this.componentInfo) ? true : false;\n const hasCompConfigInfo = (comp && comp !== null && this.componentInfo && this.componentInfo.configInfo) ? true : false;\n const compConfigInfo = hasCompConfigInfo ? this.componentInfo.configInfo : undefined;\n\n // now ass info to the component info have to\n // .make sure the url has a busClassName of the builder service will blow\n let processUrl: string = req.url;\n let tenantUrl = '';\n const splitUrl = processUrl.split('//');\n let tenant: string;\n let envType: string;\n if (splitUrl.length >= 2) {\n processUrl = splitUrl[ 1 ].substring((splitUrl[ 1 ].indexOf('/') + 1));\n tenantUrl = splitUrl[ 1 ].split('/')[ 0 ].split(':')[ 0 ];\n const tenantPieces = tenantUrl.split('.')[ 0 ].split('-');\n if (tenantPieces.length >= 3) {\n tenant = tenantPieces[ 1 ];\n envType = tenantPieces[ 2 ];\n } else {\n tenant = processUrl.split('/')[ 0 ];\n envType = 'single tenant';\n }\n }\n\n const resourceType = this.lmUrlUtilService.getResourceTypeFromUrl(req.url);\n // Dont gather info for app call\n if (resourceType === AppConstants.RESOURCETYPE_APPS) {\n return next.handle(req);\n }\n // Dont gather info for telegref or unreacount calls\n if (resourceType === AppConstants.RESOURCETYPE_BANNER && (processUrl.indexOf('telegraf') >= 0 || processUrl.indexOf('unreadCount') >= 0)) {\n return next.handle(req);\n }\n // we will construct a simple componentInfo if the url is home or menu because the currently loaded component does not apply to this call.\n if (resourceType === AppConstants.RESOURCETYPE_HOME || resourceType === AppConstants.RESOURCETYPE_MENU) {\n this.componentInfo = {\n name: resourceType,\n componentType: undefined,\n userWebRequestId: hasCompInfo && comp.getUserWebRequestId().length > 0 ? comp.getUserWebRequestId() : '',\n type: resourceType,\n displayType: hasCompInfo ? this.componentInfo.displayType : undefined,\n status: new Array(),\n configInfo: hasCompConfigInfo ? compConfigInfo : undefined,\n developer: context ? this.lmContextService.isDeveloper() : undefined,\n tenant,\n envType,\n module: hasCompInfo ? this.componentInfo.module : undefined,\n message: hasCompInfo ? this.componentInfo.message : undefined,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n };\n } else {\n const lmBaseUrlInfo: LMBaseUrlInfo = this.lmUrlInfoBuilderService.getBaseUrlInfoFromHttpUrl(req.url);\n\n this.componentInfo = {\n componentType: undefined,\n userWebRequestId: hasCompInfo && comp.getUserWebRequestId().length > 0 ? comp.getUserWebRequestId() : '',\n name: lmBaseUrlInfo.resource.uiResourceName,\n formName: lmBaseUrlInfo.resource.uiResourceName,\n busClassName: lmBaseUrlInfo.resource.busClassName,\n type: lmBaseUrlInfo.resource.resourceType,\n displayType: hasCompInfo ? this.componentInfo.displayType : undefined,\n status: new Array(),\n configInfo: hasCompConfigInfo ? compConfigInfo : undefined,\n fromListResourceId: lmBaseUrlInfo.fromListResource ? lmBaseUrlInfo.fromListResource.generateResourceId(false) : undefined,\n panelNavigation: hasCompInfo ? this.componentInfo.panelNavigation : undefined,\n developer: context ? this.lmContextService.isDeveloper() : undefined,\n sourceResourceType: lmBaseUrlInfo.sourceResource ? lmBaseUrlInfo.sourceResource.resourceType : undefined,\n sourceResourceId: lmBaseUrlInfo.sourceResource ? lmBaseUrlInfo.sourceResource.generateResourceId(false) : undefined,\n tenant,\n envType,\n module: hasCompInfo ? this.componentInfo.module : undefined,\n message: hasCompInfo ? this.componentInfo.message : undefined,\n hasConfigAccess: this.lmContextService.hasConfigAccess(),\n };\n }\n const requestInfo = this.lmGlobalUtilService.getUrlRequestInfoJson(this.componentInfo, -1, true);\n const standardRequestFormatInfo = this.formatJsonForOutput(requestInfo);\n const requestInfoJson = JSON.stringify(standardRequestFormatInfo);\n webReportHeaders = webReportHeaders.append('UserWebRequest', requestInfoJson);\n\n const clonedRequest = req.clone({ headers: webReportHeaders});\n return next.handle(clonedRequest);\n\n return next.handle(req);\n }\n\n private formatJsonForOutput(telegrafProperties: TelegrafProperties) {\n\n const output = {\n Actor: telegrafProperties.actorUniqueId,\n BusinessClass: telegrafProperties.businessClass,\n BusViewName: telegrafProperties.uiView,\n AccountId: telegrafProperties.accountId,\n WebApp: telegrafProperties.webApp,\n UserWebRequestId: telegrafProperties.userWebRequestId,\n Product: telegrafProperties.application ? telegrafProperties.application.toLowerCase() : undefined,\n TenantTypeConfig: telegrafProperties.environmentType ? telegrafProperties.environmentType.toLowerCase() : undefined,\n URLParams: telegrafProperties.urlParams,\n UserAgent: telegrafProperties.userAgent,\n URL: telegrafProperties.url,\n BusViewType: telegrafProperties.uiViewType,\n // clientIp: ,\n ISOLocale: telegrafProperties.isoLocale,\n DisplayType: telegrafProperties.displayType,\n IsConfiguration: telegrafProperties.isConfigured,\n IsPersonalization: telegrafProperties.isPersonalized,\n UserFolder: telegrafProperties.userFolder,\n TenantName: telegrafProperties.tenant ? telegrafProperties.tenant.toLowerCase() : undefined,\n TenantType: telegrafProperties.envType ? telegrafProperties.envType.toLowerCase() : undefined,\n Module: telegrafProperties.module,\n Message: telegrafProperties.message,\n }\n\n return output;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LMLookupBasicComponent } from '@field/lookup';\nimport { TranslatePipe } from '@app/pipes';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { SohoComponentsModule } from 'ids-enterprise-ng';\n\n@NgModule({\n declarations: [\n LMLookupBasicComponent,\n TranslatePipe\n ],\n imports: [FormsModule, CommonModule, SohoComponentsModule],\n exports: [\n LMLookupBasicComponent,\n TranslatePipe\n ],\n})\nexport class LMCommonModule {}\n","import {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy\n} from '@angular/router';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMRouteReuseStrategy extends RouteReuseStrategy {\n /**\n * Determines if this route (and its subtree) should be detached to be reused later\n */\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n /**\n * Stores the detached route\n */\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\n }\n\n /**\n * Determines if this route (and its subtree) should be reattached\n */\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n /**\n * Retrieves the previously stored route\n */\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\n return null;\n }\n\n /**\n * Determines if a route should be reused\n */\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n return false;\n // return future.routeConfig === curr.routeConfig;\n\n // tslint:disable\n // See this link for a custom reuse strategy that takes the url into account and not just the route specification\n // https://github.com/manfredsteyer/angular-2-reuse-strategy-sample/blob/6ac43c7e96cd507dd8dcc4a7a89b760aba6c1844/app/shared/router/custom-reuse-strategy.ts\n // tslint:enable\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'capitalize' })\n\nexport class CapitalizePipe implements PipeTransform {\n transform(value: string, args?: Array): any {\n return value.toLowerCase().replace(/([^ -])([^ -]*)/gi, function(v, v1, v2) {\n return v1.toUpperCase() + v2;\n });\n }\n}\n","export * from './capitalize.pipe';\nexport * from './keys.pipe';\nexport * from './safeUrl.pipe';\nexport * from './translate.pipe';\nexport * from './lm-boolean-as-text.pipe';\nexport * from './lm-boolean-as-switch-tooltip.pipe';\nexport * from './lm-state-as-text.pipe';\nexport * from './lm-format-message.pipe';\nexport * from './lm-format-label.pipe';\nexport * from './lm-rich-text.pipe';\nexport * from './lm-model-field-to-display.pipe'\nexport * from './lm-model-field-is-blank.pipe'\nexport * from './lm-field-operator.pipe'\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'keys' })\n\nexport class KeysPipe implements PipeTransform {\n transform(value: any) {\n const keys: Array = [];\n\n for (const key in value) {\n if (value.hasOwnProperty((key))) {\n keys.push({ key, value: value[ key ] });\n }\n }\n\n return keys;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils';\n\n@Pipe({\n name: 'booleanAsSwitchTooltip'\n})\nexport class LMBooleanAsSwitchTooltipPipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) { }\n\n // used to display a tooltip for a checkbox display as switch when the control is readOnly\n transform(triggerValue: boolean, value: string, isReadOnly: boolean): string {\n if (isReadOnly) {\n return this.lmFormatUtilService.booleanToDisplay(value);\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils';\n\n@Pipe({\n name: 'booleanAsText'\n})\nexport class LMBooleanAsTextPipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) { }\n\n transform(triggerValue: boolean, value): string {\n return this.lmFormatUtilService.booleanToDisplay(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMListUtilService } from '@list/services/lm-list-util.service';\nimport { LMModelField } from '@form/model';\n\n@Pipe({\n name: 'toFieldOperator'\n})\nexport class LMFieldOperatorPipe implements PipeTransform {\n\n constructor(private lmListUtilService: LMListUtilService) {}\n\n /**\n * transforms landmark field filter format to soho field filter format\n * @param modelField LMModelField\n * @param defaultValue LMFilterFieldOperator\n * @return SohoFieldFilterOperator\n */\n transform(triggerValue: boolean, modelField: LMModelField, defaultValue?: LMFilterFieldOperator): SohoFieldFilterOperator {\n let value = modelField?.filterType ? modelField.filterType : null;\n\n if (!!modelField?.filterCriteria) {\n value = modelField.filterCriteria.operator;\n }\n // set with default value or 'equals'\n if (!value) {\n value = defaultValue ? defaultValue : 'equals';\n }\n return this.lmListUtilService.getSohoOperator(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '../services/utils';\nimport { LMModel } from '../components/form/model';\n\n@Pipe({\n name: 'formatLabelRule'\n})\nexport class LMFormatLabelPipe implements PipeTransform {\n constructor(private lmFormatUtilService: LMFormatUtilService) {\n }\n\n transform(value, layoutField: LMFormLayoutField, messageRule: LMMessageRule | string, data: LMModel | LMDataView, specFields?: LMSpecFields): string {\n return messageRule && !layoutField.labelSuppressed ? this.lmFormatUtilService.formatMessageRule(messageRule, data, specFields) : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils';\nimport { LMModel } from '@form/model';\n\n@Pipe({\n name: 'formatMessageRule'\n})\nexport class LMFormatMessagePipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) {}\n\n transform(value, returnOriginal: boolean, messageRule: LMMessageRule | string, data: LMModel | LMDataView, specFields?: LMSpecFields): string {\n if (messageRule) {\n return this.lmFormatUtilService.formatMessageRule(messageRule, data, specFields);\n }\n\n if (returnOriginal) {\n return value;\n }\n\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFieldUtilService } from '@services/utils';\n\n@Pipe({\n name: 'isBlankValue'\n})\nexport class LMModelFieldIsBlankPipe implements PipeTransform {\n\n constructor(private lmFieldUtilService: LMFieldUtilService) {\n }\n\n transform(modelFieldValue, specField: LMSpecField): boolean {\n return this.lmFieldUtilService.isBlank(specField.type, modelFieldValue);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFieldUtilService, LMFormatUtilService } from '@services/utils';\nimport { AppConstants, LMTransformOptions } from '@utils/index';\n\n@Pipe({\n name: 'toDisplayValue'\n})\nexport class LMModelFieldToDisplayPipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService,\n private lmFieldUtilService: LMFieldUtilService,) {\n }\n\n transform(modelFieldValue, specField: LMSpecField, options?: LMTransformOptions): string {\n if (specField === null || specField === undefined) {\n return modelFieldValue;\n }\n\n if (options?.doNotTransform) {\n // This is set for cube search form fields to allow ontological values to be appended to the actual value.\n // Mostly the numeric key field dimension is the one that will take the value as is, since it will not be a\n // numeric value after the ontological values are appended.\n if (specField && specField.type === AppConstants.NUMERIC && this.lmFieldUtilService.isBlank(specField.type, modelFieldValue)) {\n return '';\n }\n return modelFieldValue;\n }\n\n if (options?.allowMultiSelections) {\n if (Array.isArray(modelFieldValue)) {\n return modelFieldValue.map((valueMember) => this.lmFormatUtilService.toDisplayValueWithSpec(valueMember, specField, options)).join(AppConstants.MULTI_SEARCH_TERM_DELIMITER);\n }\n }\n\n const value = this.lmFormatUtilService.toDisplayValueWithSpec(modelFieldValue, specField, options);\n\n if (specField.type === AppConstants.ALPHAUPPER) {\n return value.toString().toUpperCase();\n }\n\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'richText'\n})\nexport class LMRichTextPipe implements PipeTransform {\n\n constructor(protected _sanitizer: DomSanitizer) {\n\n }\n\n public transform(triggerValue: boolean, value: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(value.replace(/ /g, ' '));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '../services/utils/index';\n\n@Pipe({\n name: 'stateAsText'\n})\nexport class LMStateAsTextPipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) { }\n\n transform(modelFieldValue, states: Array, displayAsTag = false): string {\n const value = this.lmFormatUtilService.stateLabelToText(states, modelFieldValue);\n\n // if display as tag, then empty values must be returned as an empty string so the :empty pseudo element works correctly\n if (displayAsTag) {\n // tslint:disable-next-line:triple-equals > using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero, etc\n if (value === ' ' || value == '0') {\n return '';\n }\n }\n\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n\n constructor(protected _sanitizer: DomSanitizer) {\n\n }\n\n public transform(value: string, type: String = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html': return this._sanitizer.bypassSecurityTrustHtml(value);\n case 'style': return this._sanitizer.bypassSecurityTrustStyle(value);\n case 'script': return this._sanitizer.bypassSecurityTrustScript(value);\n case 'url': return this._sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value);\n default: throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service'\n\n@Pipe({\n name: 'translate'\n})\nexport class TranslatePipe implements PipeTransform {\n\n constructor(private lmFormatUtilService: LMFormatUtilService) {}\n\n transform(value: string, options?: any): string {\n const translatedText = Soho.Locale.translate(value);\n return options ? this.lmFormatUtilService.formatMessage(translatedText, options) : translatedText;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class ActionResource extends KeyedResource {\n private actionNameImpl: string;\n\n constructor(args: any) {\n super(args, args.actionName);\n\n const self: any = this;\n\n self.resourceType = 'action';\n self.actionNameImpl = this.uiResourceName;\n }\n\n public get actionName() {\n return this.actionNameImpl;\n }\n}\n","import { Resource } from './resource';\n\nexport class BIDrillResource extends Resource {\n constructor(args: any) {\n super('bidrill', args.resourceId);\n }\n\n public generateResourceId(encode: boolean): string {\n return encode ? encodeURIComponent(this.resourceId) : this.resourceId;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class DocumentResource extends KeyedResource {\n private fieldNameImpl: string;\n\n constructor(args: any, pageName: string) {\n super(args, args.fieldName);\n\n const self: any = this;\n\n self.resourceType = 'document';\n self.fieldNameImpl = this.uiResourceName;\n }\n\n public get fieldName() {\n return this.fieldNameImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class DrillResource extends KeyedResource {\n private drillNameImpl: string;\n\n constructor(args: any) {\n super(args, args.drillName);\n\n this.resourceType = 'drill';\n this.drillNameImpl = this.uiResourceName;\n }\n\n public get drillName() {\n return this.drillNameImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class FormResource extends KeyedResource {\n private formNameImpl: string;\n private panelNameImpl: string;\n\n constructor(args: any) {\n super(args, args.formName);\n\n const self: any = this;\n\n self.resourceType = 'form';\n\n if (self.uiResourceName) {\n const result = self.uiResourceName.split('.');\n self.formNameImpl = result[ 0 ];\n if (result.length > 1) {\n self.panelNameImpl = result[ 1 ];\n }\n }\n }\n\n public get formName() {\n return this.formNameImpl;\n }\n\n public get panelName() {\n return this.panelNameImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class ImageResource extends KeyedResource {\n private imageFieldIdImpl: string;\n\n constructor(args: any) {\n super(args, args.imageFieldId);\n\n const self: any = this;\n\n self.resourceType = 'image';\n self.imageFieldIdImpl = this.uiResourceName;\n }\n\n public get imageFieldId() {\n return this.imageFieldIdImpl;\n }\n}\n","export * from './action.resource'\nexport * from './document.resource';\nexport * from './drill.resource';\nexport * from './form.resource';\nexport * from './image.resource';\nexport * from './keyed.resource';\nexport * from './list.resource';\nexport * from './menu.resource';\nexport * from './navigation.resource';\nexport * from './page.resource';\nexport * from './relation.resource';\nexport * from './resource';\nexport * from './select.resource';\nexport * from './sub-panel.resource';\n","import { AppConstants } from '@utils/app.constants';\nimport { Resource } from '@resources/resource';\n\nexport class KeyedResource extends Resource {\n private m_busClassName: string;\n private m_viewKeyName: string;\n private m_keyValueArray: any; // todo: type me\n private m_contextValueArray: any[];\n private m_staticContextValueArray: any[];\n private m_staticContextValueMap: Object;\n private m_keyAttributesArray: any[];\n private m_keyAttributesMap: Object;\n private m_uiResourceName: string;\n\n constructor(args?: any, uiResourceName?: string) {\n super(args.resourceType, args.resourceId);\n\n this.m_busClassName = args.busClassName || null;\n this.m_viewKeyName = args.viewKeyName || null;\n this.m_keyValueArray = args.keyValueArray || [];\n this.m_contextValueArray = args.contextValueArray || [];\n this.m_staticContextValueArray = args.staticContextValueArray || [];\n this.m_staticContextValueMap = {};\n this.m_keyAttributesArray = args.keyAttributesArray || [];\n this.m_keyAttributesMap = {};\n this.m_uiResourceName = uiResourceName;\n\n let buildResourceId = !this.resourceId;\n\n if (this.resourceId) {\n this.parseResourceId();\n\n // -------------------------------------------------------------\n // if resource is has field names in the keys then treat it\n // as a template and replace the name with values from the\n // dataView.\n // -------------------------------------------------------------\n if (args.dataView) {\n this.m_keyValueArray = this.keyNamesToKeyValues(this.m_keyValueArray, args.dataView);\n buildResourceId = true;\n }\n\n if (args.viewKeyName) {\n this.m_viewKeyName = args.viewKeyName;\n buildResourceId = true;\n }\n\n if (args.keyValueArray) {\n this.m_keyValueArray = args.keyValueArray;\n buildResourceId = true;\n }\n\n // -------------------------------------------------------------\n // This can be set in conjunction with a resourceId to obtian\n // a new Resource. For example a viewKeyResourceId + a\n // actionName.\n // -------------------------------------------------------------\n if (uiResourceName) {\n this.m_uiResourceName = uiResourceName;\n buildResourceId = true;\n }\n\n if (args.contextValueArray) {\n this.m_contextValueArray = args.contextValueArray;\n buildResourceId = true;\n }\n\n if (args.staticContextValueArray) {\n this.m_staticContextValueArray = args.staticContextValueArray;\n buildResourceId = true;\n }\n\n if (args.keyAttributesArray) {\n this.m_keyAttributesArray = args.keyAttributesArray;\n buildResourceId = true;\n }\n }\n\n // -------------------------------------------------------------\n // if resourceId && uiResourceName then build the resourceId\n // again so that the 2 will be merged. This is required\n // for the case where a resourceId is a viewKey resourceId\n // and will be used in conjunction with a uiResourceName\n // (like a formName, listName, actionName, etc...).\n // -------------------------------------------------------------\n if (buildResourceId) {\n this.buildResourceId();\n }\n }\n\n public get busClassName() {\n return this.m_busClassName;\n }\n\n public get uiResourceName() {\n return this.m_uiResourceName;\n }\n\n public get contextValueArray() {\n return this.m_contextValueArray;\n }\n\n public get staticContextValueArray() {\n return this.m_staticContextValueArray;\n }\n\n public get keyValueArray() {\n return this.m_keyValueArray;\n }\n\n public get dataResourceId(): string {\n return this.buildDataResourceId();\n }\n\n private buildDataResourceId(): string {\n const fullResourceId = this.resourceId;\n const index = fullResourceId.lastIndexOf('.' + this.m_uiResourceName);\n if (index === -1) {\n return fullResourceId;\n }\n\n return fullResourceId.substring(0, index);\n }\n\n // tslint:disable-next-line:no-unused-variable - method name not found\n private setContextValuesFromTemplate(contextFieldsArr: Array, searchFields: any, header: any) {\n const keyValueArray: Array = [];\n\n for (let i = 0; i < contextFieldsArr.length; i++) {\n const keyField = header.fields[ contextFieldsArr[ i ] ];\n\n if (!keyField) {\n keyValueArray.push(null);\n } else if (keyField && keyField.type === 'group') {\n const delim = keyField.delimiter || '';\n let val = '';\n\n for (let j = 0; j < keyField.members.length; j++) {\n const mem = keyField.members[ j ];\n if (!searchFields[ mem ]) {\n continue;\n }\n\n val = val + searchFields[ mem ];\n\n if (j !== keyField.members.length - 1) {\n val = val + delim;\n }\n }\n\n if (val !== '') {\n keyValueArray.push(null);\n }\n } else {\n if (searchFields[ contextFieldsArr[ i ] ] && searchFields[ contextFieldsArr[ i ] ].value) {\n keyValueArray.push(searchFields[ contextFieldsArr[ i ] ].value);\n }\n }\n\n }\n\n return keyValueArray;\n }\n\n private keyNamesToKeyValues(keyNameArray: Array, dataView: any) {\n const keyValueArray: Array = [];\n\n if (!keyNameArray) {\n return keyNameArray;\n }\n\n for (let i = 0; i < keyNameArray.length; i++) {\n if (dataView.cubeInfo) {\n if (keyNameArray[i].indexOf(':Date') > -1) {\n keyValueArray.push(dataView.cubeInfo.periodDate);\n } else {\n const keyName = 'frc.' + keyNameArray[i];\n keyValueArray.push((dataView.cubeInfo.hasOwnProperty(keyName)) ? dataView.cubeInfo[keyName] : null);\n }\n } else {\n const keyField = dataView.fields[ keyNameArray[ i ] ];\n if (keyField) {\n keyValueArray.push(keyField.value);\n } else {\n keyValueArray.push(null);\n }\n }\n }\n\n return keyValueArray;\n }\n\n private parseResourceId() {\n let fromIndex = 0;\n\n fromIndex = this.parseBusClassName(fromIndex);\n fromIndex = this.parseViewKeyName(fromIndex);\n fromIndex = this.parseKeyValues(fromIndex);\n\n if (fromIndex < this.resourceId.length) {\n if (this.resourceId.charAt(fromIndex) === '.') {\n fromIndex++;\n }\n\n if (fromIndex < this.resourceId.length) {\n this.m_uiResourceName = this.resourceId.substring(fromIndex);\n }\n }\n }\n\n private parseBusClassName(fromIndex: number) {\n let index = this.resourceId.indexOf('(', fromIndex);\n\n if (index > -1) {\n const busViewName = this.resourceId.substring(0, index);\n const bracketIndex = busViewName.indexOf('[', fromIndex);\n\n if (bracketIndex > -1) {\n this.m_busClassName = this.resourceId.substring(0, bracketIndex);\n return bracketIndex;\n } else {\n this.m_busClassName = busViewName;\n return index;\n }\n }\n\n index = this.resourceId.indexOf(AppConstants.RESOURCE_SPEC_DELIMITER, fromIndex);\n if (index > -1) {\n const busViewName = this.resourceId.substring(0, index);\n const bracketIndex = busViewName.indexOf('[', fromIndex);\n\n if (bracketIndex > -1) {\n this.m_busClassName = this.resourceId.substring(0, bracketIndex);\n return bracketIndex;\n } else {\n this.m_busClassName = busViewName;\n return index;\n }\n } else {\n this.m_busClassName = this.resourceId;\n return this.resourceId.length;\n }\n }\n\n private parseViewKeyName(fromIndex: number) {\n if (fromIndex >= this.resourceId.length) {\n return fromIndex;\n }\n\n if (this.resourceId.charAt(fromIndex) !== '[') {\n return fromIndex;\n }\n\n const beginIndex = fromIndex;\n\n /*\n * Cannot have a viewKeyName w/o a keyValueArray so look for ']('\n * as the end of the viewKeyName string.\n */\n const endIndex = this.resourceId.indexOf(']', beginIndex + 1);\n if (endIndex === -1) {\n\n return fromIndex;\n }\n\n this.m_viewKeyName = this.resourceId.substring(beginIndex + 1, endIndex);\n return endIndex + 1;\n\n // var beginIndex = this.resourceId.indexOf('[', fromIndex);\n // if (beginIndex == -1)\n // \treturn fromIndex;\n //\n // var endIndex = this.resourceId.indexOf(']', beginIndex + 1);\n //\n // if (endIndex == -1)\n // \treturn fromIndex;\n //\n // this.viewKeyName = this.resourceId.substring(beginIndex + 1, endIndex);\n // return endIndex + 1;\n }\n\n // private encodeFirstAndLastViewKeys(key)\n // {\n // if (key == undefined)\n // return key;\n //\n // var res = key.split('(');\n // var openParenIndex = key.indexOf('(');\n // if (openParenIndex === -1)\n // return openParenIndex;\n //\n // var closeParenIndex = key.lastIndexOf(')');\n // if (closeParenIndex == -1)\n // throw 'Invalid resource id - open paren requires a close paren';\n //\n // var keyString = key.substring(openParenIndex + 1, closeParenIndex);\n //\n // var keyArr = [];\n // keyArr = keyString.split(',');\n //\n // for(var z = 0; z < keyArr.length; z++)\n // {\n // if(keyArr[z].indexOf('|') > -1)\n // {\n // keyArr[z] = '{' + keyArr[z] + '}';\n // }\n // }\n //\n // return res[0] + '(' + keyArr.join(',') + ')';\n // }\n\n private parseKeyValues(fromIndex: number) {\n const openParenIndex = this.resourceId.indexOf('(', fromIndex);\n\n if (openParenIndex === -1) {\n return fromIndex;\n }\n\n // let closeParenIndex = this.resourceId.lastIndexOf(')');\n const aaIndex = this.resourceId.indexOf('.actor.agent(', fromIndex);\n const closeParenIndex = aaIndex > -1 ? this.resourceId.lastIndexOf(')', aaIndex) : this.resourceId.lastIndexOf(')');\n if (closeParenIndex === -1) {\n throw 'Invalid resource id - open paren requires a close paren';\n }\n\n const keyString = this.resourceId.substring(openParenIndex + 1, closeParenIndex);\n\n const keyValueList: Array = [];\n const businessClassContextValueList: Array = [];\n const staticContextValueList: Array = [];\n let beginIndex = 0; let beginEscape = -1;\n const keyStringLength = keyString.length;\n let currentValueList = keyValueList;\n\n for (let i = 0, len = keyStringLength; i < len; i++) {\n const currentChar = keyString.charAt(i);\n\n if (currentChar === '{' && beginEscape === -1) {\n beginEscape = i;\n continue;\n }\n\n if (currentChar === '}' && beginEscape > -1) {\n currentValueList.push(keyString.substring(beginEscape + 1, i));\n\n // Do not skip the next iteration since the current value list may or may not change. Consider the following examples\n // GeneralLedgerChartAccount(SCB,{2_PPE,NET}:_cv_,_cv_MAIN_2,_cv_,_cv_false,_cv_,_cv_TEST,_cv_false,_cv_false,null)\n // GeneralLedgerChartAccount(SCB,{2_PPE,NET},NEXTKEY:_cv_,_cv_MAIN_2,_cv_,_cv_false,_cv_,_cv_TEST,_cv_false,_cv_false,null)\n // CandidateTagCode(7004,{[S,M,L,XL] SIZE})\n // GeneralLedgerChartAccount(SCB,{2_PPE,NET},NEXTKEY:_cv_,_cv_MAIN_2,_cv_,_cv_false,_cv_,_cv_TEST,_cv_false,_cv_false,{nu,ll})\n // i++; // Commented the increment statement. Akila (LMCLIENT-21602)\n beginEscape = -1;\n beginIndex = (i + 1 < keyStringLength) ? (i + 2) : (i + 1);\n continue;\n }\n\n if (beginEscape === -1) {\n if (currentChar === ',' || currentChar === ':' || currentChar === '|') {\n // Again consider GeneralLedgerChartAccount(SCB,{2_PPE,NET}:_cv_,_cv_MAIN_2,_cv_,_cv_false,_cv_,_cv_TEST,_cv_false,_cv_false,null)\n // beginIndex is 16 and i is 15. Do nothing here. This will help switch the current list to business class context keys.\n // Consider GeneralLedgerChartAccount(SCB,2_FIXEDASSET:null,MAIN_2,,null,null,TEST,null,null,null)\n // With <= in the below condition, I will be able to push the empty value in bus class context keys (2 consecutive commas)\n if (beginIndex <= i) {\n currentValueList.push(keyString.substring(beginIndex, i));\n beginIndex = i + 1;\n }\n }\n\n if (currentChar === ':') {\n // ------------------------------------------------------------------\n // if colon delimiter then switch to the business class context\n // field value list.\n // ------------------------------------------------------------------\n currentValueList = businessClassContextValueList;\n }\n\n if (currentChar === '|') {\n // Get the static context keys after '|' delimiter'\n currentValueList = staticContextValueList;\n }\n }\n }\n\n if (beginIndex <= keyStringLength) {\n currentValueList.push(keyString.substring(beginIndex, keyStringLength));\n }\n\n // this.keys = keyString.split(RESOURCE_KEY_DELIMETER);\n this.m_keyValueArray = keyValueList;\n this.m_contextValueArray = businessClassContextValueList;\n // this.m_staticContextValueArray = staticContextValueList;\n\n // for (let j = 0, len: number = staticContextValueList.length; j < len; j++) {\n // let scfString = staticContextValueList[ j ];\n // let index = scfString.indexOf('=');\n // this.m_staticContextValueMap[ scfString.substring(0, index) ] = scfString.substring(index + 1);\n // }\n if (staticContextValueList.length > 0) {\n for (let j = 0, len: number = staticContextValueList.length; j < len; j++) {\n const entry: string = staticContextValueList[ j ];\n const index = entry.indexOf('=');\n if (entry.startsWith('attr_prd_')) {\n this.m_keyAttributesArray.push(entry);\n this.m_keyAttributesMap[ entry.substring('attr_prd_'.length, index) ] = entry.substring(index + 1);\n } else {\n this.m_staticContextValueArray.push(entry);\n this.m_staticContextValueMap[ entry.substring(0, index) ] = entry.substring(index + 1);\n }\n }\n }\n\n\n return closeParenIndex + 1;\n }\n\n public generateResourceId(encode: boolean): string {\n return this._buildResourceId(encode);\n }\n\n private buildResourceId() {\n this.resourceId = this._buildResourceId(true);\n }\n\n private encodeValue(value: any, staticContextKey = false) {\n let escape = false; let encodedValue = '';\n\n if (typeof value !== 'string') {\n return value;\n }\n\n if ((value.indexOf(',') > -1\n || value.indexOf(':') > -1\n || value.indexOf('|') > -1)\n && !staticContextKey) {\n escape = true;\n }\n\n if (escape) {\n encodedValue += encodeURIComponent('{');\n }\n\n // encodeURIComponent is missing some things so do those after. - Phillip 11/20/2014\n // not sure about parens, but single quote needs encoding forsure...\n // http://jira.lawson.com/browse/LMCLIENT-6982\n encodedValue += encodeURIComponent(value).replace(/[!'()*]/g, function(c) {\n return '%' + c.charCodeAt(0).toString(16);\n });\n\n if (escape) {\n encodedValue += encodeURIComponent('}');\n }\n\n return encodedValue;\n }\n\n private _buildResourceId(encode: boolean): string {\n if (this.resourceType === AppConstants.RESOURCETYPE_BIDRILL) {\n // Do not attempt to build BIDRILL resource id. It does not fit the pattern.\n return encode ? encodeURIComponent(this.resourceId) : this.resourceId;\n }\n let resourceId: string = null;\n\n if (!this.m_busClassName) {\n throw Error('busClassName is required');\n }\n\n resourceId = this.m_busClassName;\n\n if (this.m_viewKeyName) {\n resourceId += (encode)\n ? encodeURIComponent('[') + this.m_viewKeyName + encodeURIComponent(']')\n : '[' + this.m_viewKeyName + ']';\n }\n\n if (this.m_keyValueArray.length > 0\n || this.m_contextValueArray.length > 0\n || this.m_staticContextValueArray.length > 0\n || this.m_keyAttributesArray.length > 0) {\n resourceId += '('; // encodeURIComponent skips '(', so leave this alone. lmUrlUtilService will encode parens after it encodes plus in Angular. Not a problem in 3.5\n\n if (this.m_keyValueArray.length > 0) {\n if (encode) {\n for (let i = 0, length = this.m_keyValueArray.length; i < length; i++) {\n resourceId += (i > 0 ? encodeURIComponent(',') : '') + this.encodeValue(this.m_keyValueArray[ i ]);\n }\n } else {\n resourceId += this.m_keyValueArray;\n }\n }\n\n if (this.m_contextValueArray.length > 0) {\n resourceId += (encode) ? encodeURIComponent(':') : ':';\n\n if (encode) {\n // resourceId += this.m_contextValueArray.reduce((result: string, value: string) =>\n // result += encodeURIComponent(',') + this.encodeValue(value));\n\n for (let i = 0, length = this.m_contextValueArray.length; i < length; i++) {\n resourceId += (i > 0 ? encodeURIComponent(',') : '') + this.encodeValue(this.m_contextValueArray[ i ]);\n }\n } else {\n resourceId += this.m_contextValueArray;\n }\n }\n\n if (this.m_staticContextValueArray.length > 0 || this.m_keyAttributesArray.length > 0) {\n resourceId += (encode) ? encodeURIComponent('|') : '|';\n // let staticContextValueList: Array = [];\n // let j = 0;\n //\n // for (let fieldId in this.m_staticContextValueMap) {\n // const value = this.m_staticContextValueMap[ fieldId ];\n // if (encode) {\n // if (value.indexOf(',') > -1 || value.indexOf(':') > -1 || value.indexOf('|') > -1) {\n // staticContextValueList[ j++ ] = encodeURIComponent('{') + fieldId + encodeURIComponent('=')\n // + this.encodeValue(this.m_staticContextValueMap[ fieldId ], true) + encodeURIComponent('}') ;\n // } else {\n // staticContextValueList[ j++ ] = fieldId + encodeURIComponent('=') + this.encodeValue(this.m_staticContextValueMap[ fieldId ], true);\n // }\n // } else {\n // staticContextValueList[ j++ ] = fieldId + '=' + value;\n // }\n // }\n\n if (this.m_staticContextValueArray.length > 0) {\n const staticContextValueList = this.buildStaticContextOrKeyAttributeArray('', encode, this.m_staticContextValueMap);\n resourceId += staticContextValueList;\n }\n\n if (this.m_keyAttributesArray.length > 0) {\n const keyAttributesList = this.buildStaticContextOrKeyAttributeArray('attr_prd_', encode, this.m_keyAttributesMap);\n resourceId += keyAttributesList;\n }\n }\n\n resourceId += ')'; // encodeURIComponent skips ')', so leave this alone. lmUrlUtilService will encode parens after it encodes plus in Angular. Not a problem in 3.5\n }\n\n if (this.uiResourceName) {\n resourceId += '.' + this.uiResourceName;\n }\n\n return resourceId;\n }\n\n private buildStaticContextOrKeyAttributeArray(prefix: string, encode: boolean, inputMap: Object): Array {\n const outputList: Array = [];\n let j = 0;\n for (const fieldId in inputMap) {\n const value = inputMap[ fieldId ];\n if (encode) {\n if (value.indexOf(',') > -1 || value.indexOf(':') > -1 || value.indexOf('|') > -1) {\n outputList[ j++ ] = encodeURIComponent('{') + prefix + fieldId + encodeURIComponent('=')\n + this.encodeValue(inputMap[ fieldId ], true) + encodeURIComponent('}') ;\n } else {\n outputList[ j++ ] = prefix + fieldId + encodeURIComponent('=') + this.encodeValue(inputMap[ fieldId ], true);\n }\n } else {\n outputList[ j++ ] = prefix + fieldId + '=' + value;\n }\n }\n return outputList;\n }\n\n // private buildStaticContextOrKeyAttributeArray2(prefix: string, encode: boolean, inputMap: Object): Array {\n // const outputList: Array = Object.keys(inputMap).map(fieldId => {\n // const value = inputMap[ fieldId ];\n // if (!encode) {\n // return prefix + fieldId + '=' + value;\n // }\n //\n // if (value.indexOf(',') > -1\n // || value.indexOf(':') > -1\n // || value.indexOf('|') > -1\n // ) {\n // return encodeURIComponent('{') + prefix + fieldId + encodeURIComponent('=')\n // + this.encodeValue(inputMap[ fieldId ], true) + encodeURIComponent('}') ;\n // }\n //\n // return prefix + fieldId + encodeURIComponent('=') + this.encodeValue(inputMap[ fieldId ], true);\n // });\n //\n // return outputList;\n // }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class ListResource extends KeyedResource {\n private listNameImpl: string;\n private chartNameImpl: string;\n\n constructor(args: any) {\n super(args, args.listName);\n\n this.resourceType = 'list';\n\n if (this.uiResourceName) {\n const result = this.uiResourceName.split('.');\n this.listNameImpl = result[ 0 ];\n\n if (result.length > 1) {\n this.chartNameImpl = result[ 1 ];\n }\n }\n }\n\n public get listName() {\n return this.listNameImpl;\n }\n\n public get chartName() {\n return this.chartNameImpl;\n }\n}\n","import { Resource } from './resource';\n\nexport class MenuResource extends Resource {\n private menuNameImpl: string;\n\n constructor(args: any) {\n super();\n\n const self: any = this;\n\n self.resourceType = 'menu';\n if (args.menuName) {\n self.resourceId = args.menuName;\n self.menuNameImpl = args.menuName;\n } else {\n self.resourceId = args.resourceId;\n self.menuNameImpl = args.resourceId;\n }\n }\n\n public get menuName() {\n return this.menuNameImpl;\n }\n\n public generateResourceId(encode: boolean): string {\n return this.resourceId;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class NavigationResource extends KeyedResource {\n private navigationNameImpl: string;\n\n constructor(args: any) {\n super(args, args.actionName);\n const self: any = this;\n self.resourceType = 'navigation';\n self.navigationNameImpl = this.uiResourceName;\n }\n\n public get navigationName() {\n return this.navigationNameImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class PageResource extends KeyedResource {\n private pageNameImpl: string;\n\n constructor(args: any, pageName?: string) {\n super(args);\n const self: any = this;\n self.resourceType = 'page';\n self.pageNameImpl = pageName || this.uiResourceName;\n }\n\n public get pageName() {\n return this.pageNameImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class RelationResource extends KeyedResource {\n private relationNameImpl: string;\n\n constructor(args: any, relationName: string = undefined) {\n super(args, args.relationName);\n const self: any = this;\n self.resourceType = 'relation';\n self.relationNameImpl = this.uiResourceName;\n }\n\n public get relationName() {\n return this.relationNameImpl;\n }\n}\n","export abstract class Resource {\n private m_resourceId: string;\n private m_resourceType: string;\n\n constructor(resourceType: string = undefined, resourceId: string = undefined) {\n this.m_resourceType = resourceType;\n try {\n this.m_resourceId = this.isResourceIdEncoded(resourceId) ? decodeURIComponent(resourceId) : resourceId;\n } catch (e) {\n this.m_resourceId = resourceId || null;\n }\n }\n\n private isResourceIdEncoded(resourceId: string): boolean {\n if (resourceId) {\n const regEx = /(%2c|%2C|%3a|%3A|%7c|%7C|%5b|%5B|%5d|%5D|%28|%29)/g;\n let matches = resourceId.match(regEx);\n if (matches && matches.length > 0) {\n // If resource if has one of the delimiter ',' or '|' or ':' or view key name\n return true;\n }\n\n matches = resourceId.match(/(%)/g);\n if (matches && matches.length > 0) {\n // Only one key in the resource id.\n // If we have a resourceId like TaxCode(%10) and it is not encoded, the decode will alter the value.\n // If it is encoded we will have TaxCode(%2510).\n // The challenge is to check if the string is encoded.\n return true;\n }\n }\n\n return false;\n }\n\n public get resourceId(): string {\n return this.m_resourceId;\n }\n\n public get resourceType(): string {\n return this.m_resourceType;\n }\n\n public set resourceId(resourceId: string) {\n this.m_resourceId = resourceId;\n }\n\n public set resourceType(resourceType: string) {\n this.m_resourceType = resourceType;\n }\n\n public abstract generateResourceId(encode: boolean): string;\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class SelectResource extends KeyedResource {\n private fieldIdImpl: string;\n\n constructor(args: any) {\n super(args, args.fieldId);\n\n const self: any = this;\n\n self.resourceType = 'select';\n self.fieldIdImpl = this.uiResourceName;\n }\n\n public get fieldId() {\n return this.fieldIdImpl;\n }\n}\n","import { KeyedResource } from './keyed.resource';\n\nexport class SubPanelResource extends KeyedResource {\n constructor(args: any) {\n super(args, args.actionName);\n const self: any = this;\n self.resourceType = 'subpanel';\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lm-file-upload-progress',\n templateUrl: './lm-file-upload-progress.component.html',\n styleUrls: ['./lm-file-upload-progress.component.scss']\n})\nexport class LMFileUploadProgressComponent {\n public progressPrecent = '0%';\n public progressValue = 0;\n\n @Input() set progress(value: number) {\n this.progressValue = value;\n this.progressPrecent = `${value}%`;\n }\n}\n","

                        {{ 'PercentComplete' | translate:progressPrecent }}

                        \n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { catchError, filter, flatMap, last, map, tap } from 'rxjs/operators';\nimport { SohoModalDialogService } from 'ids-enterprise-ng';\n\nimport { LMModelMultiPartFields } from '@form/model/lm-model';\nimport { LMFileUploadProgressComponent } from './lm-file-upload-progress.component';\nimport { LMBusyIndicatorService } from '../lm-busyindicator.service';\n\n@Injectable()\nexport class LMFileUploadService {\n private EXTRA_JSON_DATA = 'extraJSONData';\n\n constructor(private http: HttpClient, private sohoModalDialogService: SohoModalDialogService, private lmBusyIndicatorService: LMBusyIndicatorService) {}\n\n public rotateOrFlip(ctx: CanvasRenderingContext2D, orientation: number, orientationOption: string, width: number, height: number) {\n // rotate or flip according to orientation\n switch (orientation) {\n case 0:\n if (orientationOption && orientationOption === 'portrait') {\n this.translatePortrait(ctx, width, height);\n } else if (orientationOption && orientationOption === 'landscape') {\n ctx.translate(height / 3.53, width / 3.53);\n }\n break;\n case 2:\n this.translatePortrait(ctx, width, height);\n this.flip(ctx);\n break;\n case 4:\n this.translatePortrait(ctx, width, height);\n this.flip(ctx);\n this.rotate180(ctx);\n break;\n case 3:\n this.translatePortrait(ctx, width, height);\n this.rotate180(ctx);\n break;\n case 5:\n this.translateLandscape(ctx, width, height);\n this.flip(ctx);\n this.rotate90(ctx, 'clockwise');\n break;\n case 6:\n if (orientationOption && orientationOption === 'portrait') {\n this.translatePortrait(ctx, width, height);\n this.rotate90(ctx, 'clockwise');\n ctx.scale(height / width, width / height);\n } else {\n this.translateLandscape(ctx, width, height);\n this.rotate90(ctx, 'clockwise');\n }\n break;\n case 7:\n this.translateLandscape(ctx, width, height);\n this.flip(ctx);\n this.rotate90(ctx, 'counterclockwise');\n break;\n case 8:\n this.translateLandscape(ctx, width, height);\n this.rotate90(ctx, 'counterclockwise');\n break;\n default: break;\n }\n }\n\n private flip(context) {\n context.scale(-1, 1);\n };\n\n private rotate90(context, where) {\n const degrees = where === 'clockwise' ? 90 : -90;\n context.rotate(degrees * Math.PI / 180);\n };\n\n private rotate180(context) {\n context.rotate(Math.PI);\n };\n\n private translatePortrait(context, width, height) {\n context.translate(width / 2, height / 2);\n };\n\n private translateLandscape(context, width, height) {\n context.translate(height / 2, width / 2);\n };\n\n // Utility function to convert a canvas to a BLOB\n public dataURLToBlob(dataURL: string): Blob {\n const BASE64_MARKER = ';base64,';\n let parts: string[] = [];\n let contentType: string = null;\n let raw: string = null;\n\n if (dataURL.indexOf(BASE64_MARKER) === -1) {\n parts = dataURL.split(',');\n contentType = parts[0].split(':')[1];\n raw = parts[1];\n return new Blob([raw], {type: contentType});\n }\n parts = dataURL.split(BASE64_MARKER);\n contentType = parts[0].split(':')[1];\n raw = window.atob(parts[1]);\n const rawLength: number = raw.length;\n const uInt8Array: Uint8Array = new Uint8Array(rawLength);\n for (let i = 0; i < rawLength; ++i) {\n uInt8Array[i] = raw.charCodeAt(i);\n }\n return new Blob([uInt8Array], {type: contentType});\n };\n\n public makeTemplateFileRequest(panelId: string, formName: string, url: string, filesList: Array, data: any): Observable {\n const templateFormName = panelId + '_' + formName + '_';\n const formData: FormData = new FormData();\n\n filesList.forEach((value: LMModelMultiPartFields, index: number) => {\n this.buildFormData(templateFormName + index, formData, value);\n });\n\n return this.executeRequest(url, formData, data);\n }\n\n public makeFileRequest(formName: string, url: string, files: LMModelMultiPartFields, data: any): Observable {\n const formData: FormData = new FormData();\n this.buildFormData(formName, formData, files);\n return this.executeRequest(url, formData, data);\n }\n\n private executeRequest(url: string, formData: FormData, data: any): Observable {\n const dialogAfterOpen = new Subject();\n const dialog = this.sohoModalDialogService.modal(LMFileUploadProgressComponent);\n\n dialog.title(Soho.Locale.translate('FileUploadProgress'));\n dialog.noRefocus(true);\n dialog.afterOpen(() => {\n dialogAfterOpen.next();\n dialogAfterOpen.complete();\n });\n\n formData.append(this.EXTRA_JSON_DATA, JSON.stringify(data));\n const headers = new HttpHeaders();\n\n dialog.open();\n return dialogAfterOpen.pipe(\n // start file upload along with entire form data\n flatMap(() => this.http.post(url, formData, { headers, reportProgress: true, observe: 'events' })),\n filter((event: HttpEvent) => [ HttpEventType.UploadProgress, HttpEventType.Response ].includes(event.type)),\n // compute and set % of file uploaded:\n tap((event: HttpEvent) => {\n if (event.type === HttpEventType.UploadProgress) {\n const percent = Math.round(100 * event.loaded / event.total);\n if (dialog.componentDialog) {\n dialog.componentDialog.progress = percent;\n }\n // close modal as soon as 100% uploaded\n if (percent >= 100 ) {\n dialog.close();\n this.lmBusyIndicatorService.showBusyIndicator();\n }\n }\n }),\n // last emitted value is the http response\n last((event: HttpEvent) => event.type === HttpEventType.Response),\n map((event: HttpResponse) => event.body),\n // close modal then propagate error\n catchError(error => {\n dialog.close();\n this.lmBusyIndicatorService.showBusyIndicator();\n return throwError(error);\n })\n );\n }\n\n private buildFormData(formName: string, formData: FormData, files: LMModelMultiPartFields) {\n const keys: Array = Object.keys(files);\n\n keys.forEach((fieldName) => {\n const file: File | Blob = files[ fieldName ];\n formData.append(formName + '_' + fieldName, file);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpXsrfTokenExtractor\n} from '@angular/common/http';\n\n@Injectable()\nexport class HttpCSRFInterceptorService implements HttpInterceptor {\n\n constructor(private tokenExtractor: HttpXsrfTokenExtractor) {\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n let requestToForward = request;\n\n if (request.method === 'POST') {\n const token = this.tokenExtractor.getToken() as string;\n if (token !== null) {\n requestToForward = request.clone({ setHeaders: { 'SSO.CSRF': token } });\n }\n }\n\n return next.handle(requestToForward);\n }\n}\n","/**\n * Wrapper for Angular Http module to handle Infor SSO response formats.\n * The service will redirect the user to login page if the server responds with one of the following status :\n * - TIMEDOUTLOGIN - The user session has timed out and requires a relogin to continue with server interaction\n * - LOGIN - The user is not logged in.\n * - LOGOUTSUCCESSFUL - The user has logged out from the current session. Any further action requires a relogin\n * - LOGINFAILED - Failed to authenticate user for various reasons : invalid credentials, server not responding etc...\n * - REDIRECTING - The user will be redirected to another authenticating service for performing authentication\n *\n * The security server might also respond with request to login explicity using the following assertions\n * - TIMEOUTASSERT - The user session has timed out, need to re-authenticate the user\n * - LOGINASSERT - The user is not logged in\n * - LOGINREQD - The current action requires the user to authenticate\n */\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse, HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpParams, HttpRequest,\n HttpResponse, HttpResponseBase\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nexport abstract class SSORequest {\n public static ACTION = {\n TIMEOUTASSERT: 'TIMEOUTASSERT',\n LOGINASSERT: 'LOGINASSERT',\n REGCOMPLETE: 'REGCOMPLETE',\n LOGINREQUIRED: 'LOGINREQD'\n };\n public static STATUS = {\n TIMEDOUTLOGIN: 'TIMEDOUTLOGIN',\n LOGIN: 'LOGIN',\n LOGOUTSUCCESSFUL: 'LOGOUTSUCCESSFUL',\n LOGINFAILED: 'LOGINFAILED',\n REDIRECTING: 'REDIRECTING'\n };\n public static HEADER = {\n REDIRECTURL: 'SSO_REDIRECTURL',\n STATUS: 'SSO_STATUS',\n CLIENTTYPE: '_ssoClientType',\n INVALIDREQUEST: 'INVALIDREQUEST',\n UNAUTHORIZEDACCESS: 'UNAUTHORIZEDACCESS',\n ADMINMESSAGE: 'ADMINMESSAGE'\n };\n public static QUERYPARAMETER = {\n ORIGINAL_URL: '_ssoOrigUrl',\n ACTION: '_action'\n };\n}\n\n@Injectable()\nexport class HttpSSOService implements HttpInterceptor {\n private static MODULE_NAME = 'HttpSSOService';\n private static PATH_SSOSERVLET = '/SSOServlet?';\n private static PATH_SSO_HTML = '/sso.html';\n private static MIME_TEXT_XML = 'text/xml';\n\n constructor() {\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n\n const me = this;\n let headers: HttpHeaders = null;\n if (request instanceof HttpRequest) {\n headers = request.headers;\n // me.debugLog('Request URL ${request.url}', 'request');\n } else {\n headers = new HttpHeaders();\n // me.debugLog('Request URL ${request}', 'request');\n }\n\n request = request.clone({\n setHeaders: {\n _ssoClientType: 'MSXML'\n }\n });\n return next.handle(request).pipe(tap((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n this.validateResponse(event);\n }\n }, (err: any) => {\n if (err instanceof HttpErrorResponse) {\n this.handleXHRErrors(err);\n }\n }));\n }\n\n private validateResponse = (response: HttpResponseBase) => {\n const me = this;\n if (response) {\n me.validateRequest(response);\n\n if (me.loginRequired(response)) {\n me.doLogin(response);\n }\n }\n }\n\n private handleXHRErrors = (response: HttpErrorResponse) => {\n const me = this;\n // give the HTTP Request a chance to perform SSO validation and redirect to login page if required\n if (response.error.error instanceof SyntaxError) {\n me.validateResponse(response);\n }\n }\n\n private loginRequired(response: HttpResponseBase) {\n const me = this;\n let isRequired = false;\n let httpHeaders: HttpHeaders;\n\n if (response != null) {\n httpHeaders = response.headers;\n if (httpHeaders != null) {\n let ssoStatus = httpHeaders.get(SSORequest.HEADER.STATUS);\n\n if (ssoStatus !== null) {\n ssoStatus = ssoStatus.toUpperCase();\n switch (ssoStatus) {\n case SSORequest.STATUS.TIMEDOUTLOGIN:\n case SSORequest.STATUS.LOGIN:\n case SSORequest.STATUS.LOGOUTSUCCESSFUL:\n case SSORequest.STATUS.LOGINFAILED:\n isRequired = true;\n break;\n case SSORequest.STATUS.REDIRECTING: {\n isRequired = this.loginRequiredOnRedirect(response);\n }\n }\n } else {\n // check the response for SSO Xml\n isRequired = this.parseSSOResponse(response);\n }\n }\n }\n if (isRequired) {\n me.debugLog('Session is not valid or expired. Requires user to login.', 'loginRequired');\n }\n return isRequired;\n }\n\n // verify if the server redirect request is sent by the security server\n private loginRequiredOnRedirect(response: HttpResponseBase): boolean {\n const me = this;\n let isRequired = false;\n const httpHeaders: HttpHeaders = response.headers;\n\n if (httpHeaders != null) {\n const redirectURL = httpHeaders.get(SSORequest.HEADER.REDIRECTURL);\n if (redirectURL) {\n if (redirectURL.indexOf(HttpSSOService.PATH_SSO_HTML) > 0) {\n isRequired = false;\n } else if (redirectURL.indexOf(HttpSSOService.PATH_SSOSERVLET) > 0) {\n const actionValue = this.getUrlParameterValue(redirectURL, SSORequest.QUERYPARAMETER.ACTION);\n switch (actionValue) {\n case SSORequest.ACTION.TIMEOUTASSERT:\n case SSORequest.ACTION.LOGINASSERT:\n case SSORequest.ACTION.REGCOMPLETE:\n case SSORequest.ACTION.LOGINREQUIRED: {\n isRequired = true;\n break;\n }\n }\n }\n }\n\n if (isRequired) {\n me.debugLog('Session is not valid or expired. User will be redirected to login page.', 'loginRequiredOnRedirect');\n }\n return isRequired;\n }\n }\n\n // Check if the request sent to the server was valid\n // if the request was invalid, the server will add appropriate headers to signify the same\n private validateRequest(response: HttpResponseBase): boolean {\n const me = this;\n const isValid = true;\n const httpHeaders: HttpHeaders = response.headers;\n\n if (httpHeaders.has(SSORequest.HEADER.INVALIDREQUEST) || httpHeaders.has(SSORequest.HEADER.UNAUTHORIZEDACCESS)) {\n me.debugLog('The AJAX request is invalid.', 'validateRequest');\n\n if (httpHeaders.has(SSORequest.HEADER.INVALIDREQUEST)) {\n me.debugLog('The AJAX request is invalid.', 'validateRequest');\n throwError(new Error('Invalid HTTP Request'));\n } else if (httpHeaders.has(SSORequest.HEADER.UNAUTHORIZEDACCESS)) {\n me.debugLog('The user is unauthorized to perform the AJAX request.', 'validateRequest');\n throwError(new Error('Unauthorized HTTP Request'));\n }\n\n return isValid;\n }\n }\n\n // parse the sso xml document returned by the server to verify if we need to redirect\n private parseSSOResponse(response: HttpResponseBase): boolean {\n const me = this;\n let isRequired = false;\n\n const xPathSSOStatus = '//SSO/SSO_STATUS/text()';\n const ssoStatus = me.getNodeValue(response, xPathSSOStatus);\n isRequired = (ssoStatus && ssoStatus.toUpperCase() === SSORequest.STATUS.REDIRECTING) ? true : false;\n return isRequired;\n }\n\n private doLogin(response: HttpResponseBase) {\n const me = this;\n try {\n me.debugLog('Redirecting user to login page.', 'doLogin');\n\n // get the current page url to redirect to when the user login completes successfully\n const loc = window.location;\n // ssoOrigUrl = encodeURIComponent(ssoOrigUrl);\n\n let ssoOrigUrl = loc.href;\n ssoOrigUrl = encodeURIComponent(ssoOrigUrl);\n\n me.debugLog('SSO Original URL where the user would be redirected after successful login : ' + ssoOrigUrl, 'doLogin');\n // Find the url that should be used for modal window\n // let redirectURL = httpHeaders.get(SSORequest.HEADER.REDIRECTURL);\n const redirectURL = me.getRedirectURL(response);\n\n // Update the redirect url ssoOrigUrl parameter to redirect to the current root page instead of the ajax request url\n const src = this.updateQueryString(redirectURL, SSORequest.QUERYPARAMETER.ORIGINAL_URL, ssoOrigUrl);\n // open the login page in the parent window itself; do not use iframe to thwart click jacking offence\n // loc.assign(src);\n me.assign(src);\n } catch (e) {\n /*console.log('HTTPSSOService.doLogin: error occured during ajax request handling');\n console.log('[Error] : ' + e);\n console.log(e);*/\n\n me.debugLog('An error occured while trying to redirect user to login page', 'doLogin');\n me.debugLog('[Error] : ' + e, 'doLogin');\n }\n }\n\n private getUrlParameterValue(url: string, queryParamName: string) {\n const me = this;\n const queryParams: HttpParams = me.getURLQueryParams(url);\n return queryParams.get(queryParamName);\n }\n\n // Add or set a parameter with name 'paramName' to the value 'paramValue' in the returned url string\n private updateQueryString(url: string, paramName: string, paramValue: string) {\n const me = this;\n const queryParams: HttpParams = me.getURLQueryParams(url);\n let hostUrl: string = url;\n\n if (url.indexOf('?') > 0) {\n hostUrl = url.substring(0, url.indexOf('?'));\n }\n\n // need to contstruct a new HttpParams object as it is immutable\n const httpParamOptions: {[param: string]: string} = {};\n queryParams.keys().forEach(key => {\n if (key === paramName) {\n httpParamOptions[paramName] = paramValue;\n } else {\n httpParamOptions[key] = queryParams.get(key);\n }\n });\n const httpParams = new HttpParams({fromObject: httpParamOptions});\n return hostUrl + '?' + this.combineQueryParams(httpParams);\n }\n\n private getURLQueryParams(url: string): HttpParams {\n let urlSearchParams: HttpParams = new HttpParams();\n let queryString: string;\n\n if (url.indexOf('?') > 0) {\n queryString = url.substring(url.indexOf('?') + 1);\n urlSearchParams = new HttpParams({fromString: queryString});\n }\n return urlSearchParams;\n }\n\n private combineQueryParams(queryParams: HttpParams) {\n const paramsList = [];\n\n for (const key of queryParams.keys()) {\n paramsList.push(key + '=' + queryParams.get(key));\n }\n\n return paramsList.join('&');\n };\n\n private getRedirectURL(response: HttpResponseBase): string {\n const me = this;\n let redirectUrl = '';\n const httpHeaders: HttpHeaders = response.headers;\n\n if (httpHeaders.has(SSORequest.HEADER.REDIRECTURL)) {\n redirectUrl = httpHeaders.get(SSORequest.HEADER.REDIRECTURL);\n } else {\n const xPathSSORedirectUrl = '//SSO/SSO_REDIRECTURL/text()';\n redirectUrl = me.getNodeValue(response, xPathSSORedirectUrl);\n }\n\n if (!redirectUrl) {\n // unable to redirect user to a valid login page\n me.debugLog('Redirect URL for login is not specified in the HTTP response.', 'getRedirectURL');\n throwError(new Error('Redirect URL for login is not specified in the HTTP response.'));\n }\n return redirectUrl;\n }\n\n private getXmlDoc(response: HttpResponseBase): Document {\n const me = this;\n let xmlDoc: Document = null;\n\n const responseBody: string = response.toString();\n if (responseBody != null && responseBody.length > 0) {\n try {\n const domParser: DOMParser = new DOMParser();\n\n // ng7, ts3.1.6 ng build complaining about arg type mismatch?!?\n xmlDoc = domParser.parseFromString(responseBody, 'text/xml'); // HttpSSOService.MIME_TEXT_XML\n } catch (e) {\n me.debugLog(e, 'getXmlDoc');\n }\n }\n return xmlDoc;\n }\n\n private getNodeValue(response: HttpResponseBase, nodeXPath: string): string {\n const me = this;\n let nodeValue = '';\n\n const xmlDoc: Document = me.getXmlDoc(response);\n if (xmlDoc) {\n try {\n const xmlNode = xmlDoc.evaluate(nodeXPath, xmlDoc, null, XPathResult.STRING_TYPE, null);\n if (xmlNode) {\n nodeValue = xmlNode.stringValue;\n }\n } catch (e) {\n me.debugLog(e, 'getNodeValue');\n }\n }\n return nodeValue;\n }\n\n // debug log helper function,\n private debugLog(message: string, functionName?: string) {\n console.log('[${' + HttpSSOService.MODULE_NAME + '} - ${' + functionName + '}] ${' + message + '}');\n }\n\n private assign(src: string) {\n window.location.assign(src);\n }\n}\n","// ------------------------------------------------------------------\n// for some reason when placing lm-transaction.service in this\n// barrel angular is unable to find this class at run time, when\n// constructing the lm-form-transaction.service. No clue why!?!?\n// ------------------------------------------------------------------\n// ***** The runtime Error looks like this in the console. *****\n// lm-form-transaction.service.ts:7 Uncaught TypeError: Object prototype may only be an Object or null: undefined\n// at setPrototypeOf ()\n// at __extends (lm-form-transaction.service.ts:7)\n// ...\n// ------------------------------------------------------------------\n// export * from './lm-transaction.service';\nexport * from './utils';\nexport * from './http.sso.service';\nexport * from './lm-action.service';\nexport * from './lm-busyindicator.service';\nexport * from './lm-compound-field.service';\nexport * from './lm-componentinfo.service';\nexport * from './lm-context.service';\nexport * from './lm-harness.service';\nexport * from './lm-data.service';\nexport * from './lm-drill.service';\nexport * from './file-upload/lm-fileupload.service';\nexport * from './lm-global-persistence.service';\nexport * from './lm-logger.service';\nexport * from './lm-personalization-persistence.service';\nexport * from './lm-spec.service';\nexport * from './lm-state-persistence.service';\nexport * from './lm-web-app-access.service';\nexport * from './lm-roamingUIProfile.service';\nexport * from './lm-route-component.service';\nexport * from './lm-relatedreport.service';\nexport * from './lm-url-info-builder.service';\nexport * from './lm-state-helper.service';\nexport * from './lm-ctrl-shift-click.service';\nexport * from './lm-configuration.service';\nexport * from './lm-keyboard-shortcut.service';\n","import { Injectable } from '@angular/core';\nimport { AppConstants, LMActionRequestSaveMode } from '@utils/index';\nimport { LMFileUploadService } from './file-upload/lm-fileupload.service';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { LMLoggerService } from './lm-logger.service';\nimport { LMGlobalUtilService } from '@utils/lm-global-util.service';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMContextService } from './lm-context.service';\nimport { LMFormSpecUtilService } from '@form/services';\nimport { LMCaptchaControlService } from '@field/captchacontrol/lm-captcha-control.service';\n\nexport interface LMBuildActionRequestForDataViewListArgs {\n dataViewLists: LMDataView[];\n actionSpec?: LMActionSpec;\n pfAction?: LMProcessFlowAction;\n validateOnly?: boolean;\n validatePanelName?: string;\n scheduleView?: LMDataView;\n pfActionRequestMode?: LMActionRequestSaveMode;\n validateKeysOnly?: boolean;\n}\n\n@Injectable()\nexport class LMActionService {\n\n constructor(\n private http: HttpClient,\n\n private messageService: SohoMessageService,\n\n private lmContextService: LMContextService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmFileUploadService: LMFileUploadService,\n private lmFormSpecUtilService: LMFormSpecUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmLoggerService: LMLoggerService,\n private lmCaptchaControlService: LMCaptchaControlService\n ) {}\n\n public isRecordLevelStandardAction(standardActionName: string) {\n switch (standardActionName) {\n case AppConstants.STANDARD_TOOLBAR_OPEN:\n case AppConstants.STANDARD_TOOLBAR_SAVECLOSE:\n case AppConstants.STANDARD_TOOLBAR_NAVIGATION:\n case AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON:\n return true;\n\n case AppConstants.STANDARD_SAVE:\n case AppConstants.STANDARD_TOOLBAR_SAVENEW:\n case AppConstants.STANDARD_TOOLBAR_EXPORTPDF:\n case AppConstants.STANDARD_TOOLBAR_EXPORTCSV:\n case AppConstants.STANDARD_TOOLBAR_SEARCH:\n case AppConstants.STANDARD_TOOLBAR_REFRESH:\n case AppConstants.STANDARD_TOOLBAR_VIEWACTION:\n case AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON:\n case AppConstants.STANDARD_TOOLBAR_HELPERLIST:\n case AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON:\n return false;\n }\n return false;\n }\n\n public isValidAction(\n actionSpec: LMActionSpec,\n actionsSpecArray: Array,\n validActionIndexes: Array,\n actionType?: LMActionSpecType,\n excludeParameterActions = true,\n isForm?: boolean\n ): boolean {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return false;\n }\n const validActionSpecs = this.getActions(actionsSpecArray, validActionIndexes, actionType, excludeParameterActions, isForm);\n return this._isValidAction(actionSpec, validActionSpecs);\n }\n\n private _isValidAction(actionSpec: LMActionSpec, validActionSpecs: Array): boolean {\n for (let i = 0; i < validActionSpecs.length; i++) {\n if (validActionSpecs[ i ].type === actionSpec.type\n && validActionSpecs[ i ].name === actionSpec.name) {\n return true;\n }\n }\n\n return false;\n }\n\n public getActions(\n actions: Array,\n actionIndexes: Array,\n actionType: string = undefined,\n excludeParameterActions?: boolean,\n isForm?: boolean,\n excludeRequestAction?: boolean\n ): Array {\n\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n\n if (excludeParameterActions === undefined) {\n excludeParameterActions = false;\n }\n\n if (isForm === undefined) {\n isForm = false;\n }\n\n if (excludeRequestAction === undefined) {\n excludeRequestAction = false;\n }\n\n const validActions: Array = [];\n\n if (!actions || !actionIndexes) {\n return validActions;\n }\n\n for (let i = 0; i < actionIndexes.length; i++) {\n const index = actionIndexes[ i ];\n const actionSpec = actions[ index ];\n\n if (!actionSpec) {\n continue;\n }\n\n if (actionType && actionSpec.type !== actionType) {\n continue;\n }\n\n if (excludeParameterActions\n && actionSpec.hasParameters) {\n continue;\n }\n\n if (isForm && actionSpec.type === AppConstants.ACTION_TYPE_UPDATE && !actionSpec.requestAction) {\n continue;\n }\n\n if (excludeRequestAction && actionSpec.type === AppConstants.ACTION_TYPE_UPDATE && actionSpec.requestAction) {\n continue;\n }\n\n validActions.push(actionSpec);\n }\n\n return validActions;\n }\n\n // todo akila, type pfAction please\n public buildActionRequestForDataView(\n dataView: LMDataView,\n actionSpec: LMActionSpec,\n pfAction?: LMProcessFlowAction,\n validateOnly?: boolean,\n validatePanelName?: string,\n scheduleView?: LMDataView,\n pfActionRequestMode?: LMActionRequestSaveMode,\n validateKeysOnly?: boolean,\n cubePeriodKey?: string,\n cubePeriodView?: string,\n ): LMActionRequest {\n\n if (scheduleView && Object.keys(scheduleView).length) {\n dataView.scheduleView = scheduleView;\n }\n\n const actionRequest: LMActionRequest = {\n dataView,\n confirmedMessageIds: [],\n };\n\n if (actionSpec) {\n actionRequest.actionSpec = actionSpec;\n }\n\n if (pfAction) {\n actionRequest.pfAction = pfAction;\n }\n\n if (validateOnly) {\n actionRequest.validateOnly = true;\n actionRequest.validatePanelName = validatePanelName ? validatePanelName : '';\n }\n\n if (validateKeysOnly) {\n actionRequest.validateKeysOnly = true;\n actionRequest.validatePanelName = validatePanelName ? validatePanelName : '';\n }\n\n if (pfActionRequestMode) {\n actionRequest.pfActionRequestMode = pfActionRequestMode;\n }\n\n if (cubePeriodKey) {\n actionRequest.cubePeriodKey = cubePeriodKey;\n }\n\n if (cubePeriodView) {\n actionRequest.cubePeriodKey = cubePeriodView;\n }\n return actionRequest;\n }\n\n public buildActionRequestForSaveList(dataViewLists: Array, lmListSpec: LMListSpec, newSequenceField: string, cubePeriodKey?: string, cubePeriodView?: string): LMActionRequest[] {\n const result: LMActionRequest[] = [];\n\n if (newSequenceField) {\n this.lmFieldUtilService.sort(dataViewLists, newSequenceField, lmListSpec.busListSpec.displayFields);\n }\n\n for (let i = 0; i < dataViewLists.length; i++) {\n const targetDataView = lmListSpec.isTemplateList ? dataViewLists[ i ].dataView : dataViewLists[ i ];\n const busClassActions = lmListSpec.busClassSpec.actions;\n let actionSpec: LMActionSpec;\n\n if (lmListSpec.isTemplateList) {\n if (targetDataView.isAlreadyDefined) {\n actionSpec = this.getDefaultUpdateAction(busClassActions, targetDataView.actionIndexes, true, true);\n } else {\n actionSpec = this.getDefaultCreateAction(busClassActions, targetDataView.actionIndexes);\n }\n } else {\n actionSpec = this.getDefaultUpdateAction(busClassActions, targetDataView.actionIndexes, true, true);\n }\n\n if (!targetDataView.isNewRow && (actionSpec == null || actionSpec.hasParameters)) {\n // inline create pattern\n continue;\n }\n\n if (targetDataView.isNewRow) {\n actionSpec = this.getDefaultCreateAction(busClassActions, targetDataView.actionIndexes);\n }\n\n const dataViewObj = this.buildActionRequestForDataView(targetDataView, actionSpec, null, undefined, undefined, undefined,\n undefined, undefined, cubePeriodKey, cubePeriodView);\n result.push(dataViewObj);\n }\n\n return result;\n }\n\n public buildActionRequestForSaveForm(dataViewLists: Array, lmFormSpec: LMFormSpec): LMActionRequest[] {\n const result: LMActionRequest[] = [];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dataViewLists.length; i++) {\n const targetDataView = lmFormSpec.isTemplateForm ? dataViewLists[ i ].dataView : dataViewLists[ i ];\n const busClassActions = lmFormSpec.busClassSpec.actions;\n let actionSpec: LMActionSpec;\n\n if (lmFormSpec.isTemplateForm) {\n if (targetDataView.isAlreadyDefined) {\n actionSpec = this.getDefaultUpdateAction(busClassActions, targetDataView.actionIndexes);\n } else {\n actionSpec = this.getDefaultCreateAction(busClassActions, targetDataView.actionIndexes);\n }\n } else {\n actionSpec = this.getDefaultUpdateAction(busClassActions, targetDataView.actionIndexes);\n }\n\n const dataViewObj = this.buildActionRequestForDataView(targetDataView, actionSpec, null);\n result.push(dataViewObj);\n }\n\n return result;\n }\n\n public buildActionRequestForDataViewList(args: LMBuildActionRequestForDataViewListArgs): LMActionRequest[] {\n const result: LMActionRequest[] = [];\n args.dataViewLists.forEach((dataViewList)=> {\n const actionRequest: LMActionRequest = this.buildActionRequestForDataView(dataViewList, args.actionSpec,\n args.pfAction, args.validateOnly, args.validatePanelName, args.scheduleView, args.pfActionRequestMode, args.validateKeysOnly);\n result.push(actionRequest);\n });\n\n return result;\n }\n\n /**\n * Returns an actionRequest array object that can be used to\n * call other this.functions that take actionRequest.\n */\n // todo type these arguments\n public buildActionRequestForDataViewSet(\n dataViewSet: LMDataViewSet,\n rows: any,\n actionSpec: LMActionSpec,\n pfAction: LMProcessFlowAction = undefined,\n isTemplate: any = false,\n scheduleDataView: LMDataView = undefined\n ): Array {\n let i: number;\n let actionRequest: any;\n const actionRequestArr: Array = [];\n let dataView: LMDataView;\n\n for (i = 0; i < rows.length; i++) {\n if (isTemplate) {\n dataView = dataViewSet.data[ rows[ i ].idx ].dataView;\n } else {\n dataView = dataViewSet.data[ rows[ i ].idx ];\n }\n\n // This code was added for LMCLIENT-11631 but it caused LMCLIENT-12454.\n // This line is not correct as the values should have already been encoded\n // and encoding an entire resourceId could cause and is causing major problems\n // as our escaping mechanism (curly brackets) is placed around the entire\n // resourceId and placed back in the dataViews resourceId.\n // ---\n // DO NOT CALL _encodeValue on anything, all encoding should be completed\n // by the server or in the KeyedResource constructor - Phillip 1/12/2016\n // dataView.resourceId = KeyedResource.prototype._encodeValue(dataView.resourceId);\n\n if (actionSpec !== undefined && actionSpec !== null) {\n // not sure about why all this is here... Phillip 7/10/17\n if (actionSpec.reasonCodeRequired) {\n dataView.fields._reason_code = dataView.fields._reason_code || null;\n }\n\n if (actionSpec.reasonCodeRequired || actionSpec.actionCommentRequired) {\n dataView.fields._action_comment = dataView.fields._action_comment || null;\n }\n\n if (actionSpec.effectiveDateRequired) {\n dataView.fields._effective_date = dataView.fields._effective_date || null;\n }\n }\n\n if (scheduleDataView !== undefined && scheduleDataView !== null) {\n dataView.scheduleView = scheduleDataView;\n }\n\n actionRequest = {\n dataView\n };\n\n if (actionSpec !== undefined && actionSpec !== null) {\n actionRequest.actionSpec = actionSpec;\n }\n\n if (pfAction !== undefined && pfAction !== null) {\n actionRequest.pfAction = pfAction;\n }\n\n actionRequestArr.push(actionRequest);\n }\n\n return actionRequestArr;\n }\n\n // --------------------------------------------------------------------------------\n // Run the action\n // --------------------------------------------------------------------------------\n public makeExecute(args: any): Observable {\n // let actionResource = args.actionResource;\n // let fromResource = args.fromResource;\n const actionRequestArray = args.actionRequestArray;\n const parameterView = args.parameterView;\n const isProcessFlowAction = args.isProcessFlowAction;\n const isCompareAction = args.isCompareAction;\n const templateForms = args.templateForms;\n const multiPartFields = args.multiPartFields;\n const templateMultiPartFields = args.templateMultiPartFields; // TODO lets look at always passing in array of MultiPartFields\n const url = args.url;\n const busFormSpec = args.busFormSpec;\n // let callback = args.callback;\n\n // let busClassName = args.busClassName;\n // let actionName = isProcessFlowAction ? \"_processflow\" : isCompareAction ? \"_executeCompare\" : \"_execute\";\n\n let params: any = {};\n\n if (args.navigationContext) {\n params = Object.assign({}, this.lmGlobalUtilService.getNavContextKeys(args.navigationContext));\n }\n\n // params.executionType = isProcessFlowAction ? '_processflow' : isCompareAction ? '_executeCompare' : '_execute';\n // let url = this.urlUtilService.buildUrl({\n // resource: actionResource,\n // contextResource: fromResource,\n // params: params\n // });\n\n const data: any = {\n actionRequestArray\n };\n\n if (args.parameterView) {\n data.paramView = parameterView;\n }\n\n if (args.isMatrixForm) {\n data.isMatrix = true;\n }\n\n const multiPartPost = false;\n let updateAction = false;\n\n let httpMethod = 'POST'; // TODO Philip this is not being used -- should it be removed\n if (data.actionRequestArray[ 0 ].actionSpec !== undefined) {\n if (data.actionRequestArray[ 0 ].actionSpec.type === AppConstants.ACTION_TYPE_CREATE\n || data.actionRequestArray[ 0 ].actionSpec.type === AppConstants.ACTION_TYPE_UPDATE\n || data.actionRequestArray[ 0 ].actionSpec.type === AppConstants.ACTION_TYPE_FUNCTION) {\n updateAction = true;\n }\n\n if (this.lmCaptchaControlService.getCaptchaValue() !== undefined) {\n data.actionRequestArray[0]['captchaValue'] = this.lmCaptchaControlService.getCaptchaValue();\n }\n\n // jetty doesn't handle PUT or DELETE, need to look into implementing in landmarks jetty handler.\n switch (data.actionRequestArray[ 0 ].actionSpec.type) {\n case AppConstants.ACTION_TYPE_CREATE:\n case AppConstants.ACTION_TYPE_IMPORT:\n case AppConstants.ACTION_TYPE_SET:\n case AppConstants.ACTION_TYPE_TEMPLATEFORM_SAVE:\n case AppConstants.ACTION_TYPE_AUDIT_OVERRIDE:\n httpMethod = 'POST';\n break;\n\n case AppConstants.ACTION_TYPE_UPDATE:\n case AppConstants.ACTION_TYPE_FUNCTION:\n case AppConstants.ACTION_TYPE_AUDIT_UPDATE:\n case AppConstants.ACTION_TYPE_CHANGE_EFFECTIVEDATE:\n httpMethod = 'PUT';\n break;\n\n case AppConstants.ACTION_TYPE_DELETE:\n case AppConstants.ACTION_TYPE_AUDIT_DELETE:\n httpMethod = 'DELETE';\n break;\n\n default:\n throw 'invalid action type: ' + data.actionRequestArray[ 0 ].actionSpec.type;\n }\n }\n\n const formName = busFormSpec ? busFormSpec.name : '';\n\n this.lmLoggerService.time({ id: 'makeExecuteAction' });\n\n if (multiPartFields) {\n const keys: Array = Object.keys(multiPartFields);\n if (keys.length > 0) {\n return this.lmFileUploadService.makeFileRequest(formName, url, multiPartFields, data);\n }\n }\n\n if (templateMultiPartFields) {\n const hasMultiPartFields = false;\n for (let i = 0, len = templateMultiPartFields.length; i < len; i++) {\n const keys: Array = Object.keys(templateMultiPartFields[i]);\n if (keys.length > 0) {\n const panelId = args.actionRequestArray[0].displayPanelId;\n return this.lmFileUploadService.makeTemplateFileRequest(panelId, formName, url, templateMultiPartFields, data);\n }\n }\n }\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return > this.http.post(url, JSON.stringify(data), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n // TODO: need to use LoggerService\n if(error && error.headers && error.headers.has('SSO_REDIRECTURL') && error.headers.get('SSO_REDIRECTURL').indexOf('action=LOGINREQD') >= 0) {\n return throwError({ status: AppConstants.STATUS_SSO_REDIRECTING, message: 'Redirecting' });\n } else {\n console.log(error);\n return throwError(error || 'Server error');\n }\n }\n\n /**\n * todo ppwatton move these functions that dont' have any dependencies to a new service -\n * lm-spec-util.service.ts to be so it can be used w/o the problems of circular dependencies.\n * NOTE: this function is also defined in lm-url-util.service.ts due to a circular dependency.\n */\n public getActionByName(actions: Array, actionName: string): LMActionSpec {\n return actions.find(findActionSpec => findActionSpec.name === actionName);\n }\n\n public getActionIndexesByType(actions: Array, actionType: string): Array {\n return actions.filter(findActionSpec => findActionSpec.type === actionType);\n }\n\n public getCreateActions(actions: Array, validActionIndexes: Array): Array {\n return this.getActions(actions, validActionIndexes, AppConstants.ACTION_TYPE_CREATE);\n }\n\n getDefaultCreateAction(actions: Array, actionIndexes: Array): LMActionSpec {\n const createActionSpecs: Array = this.getActions(actions, actionIndexes, AppConstants.ACTION_TYPE_CREATE);\n if (createActionSpecs.length > 0) {\n return createActionSpecs[0];\n }\n return null;\n }\n\n public getDefaultUpdateAction(\n actions: Array,\n actionIndexes: Array,\n excludeParameterActions?: boolean,\n excludeRequestAction?: boolean\n ): LMActionSpec {\n\n if (excludeParameterActions === undefined) {\n excludeParameterActions = false;\n }\n\n if (excludeRequestAction === undefined) {\n excludeRequestAction = false;\n }\n\n const result: any = this.getActions(actions, actionIndexes, AppConstants.ACTION_TYPE_UPDATE, excludeParameterActions,\n false, excludeRequestAction);\n\n if (result.length > 0) {\n return result[ 0 ];\n }\n\n return null;\n }\n\n public isValidUpdateActionForForm(actionSpec: LMActionSpec, actionSpecArray: Array, dataView: LMDataView) {\n const validActionSpecs: Array = [];\n\n if (!actionSpecArray || !dataView.actionIndexes) {\n return false;\n }\n\n for (let i = 0, len = dataView.actionIndexes.length; i < len; i++) {\n const index = dataView.actionIndexes[ i ];\n\n if (actionSpecArray[ index ].type !== AppConstants.ACTION_TYPE_UPDATE) {\n continue;\n }\n\n if (actionSpecArray[ index ].requestAction) {\n continue;\n }\n\n validActionSpecs.push(actionSpecArray[ index ]);\n }\n\n return this._isValidAction(actionSpec, validActionSpecs);\n }\n\n public getImportActions(actions: Array, validActionIndexes: Array): Array {\n return this.getActions(actions, validActionIndexes, AppConstants.ACTION_TYPE_IMPORT);\n }\n\n public getListDeleteAction(actions: Array, dataViewSet: LMDataViewSet, rows: Array): LMActionSpec {\n const deleteActions = this.getValidListDeleteActions(actions, dataViewSet, rows);\n if (deleteActions.length > 0) {\n return deleteActions[ 0 ];\n }\n\n return undefined;\n }\n\n /**\n *\n * @param actions\n * @param dataViewSet\n * @param rows\n * @returns\n */\n public getValidListDeleteActions(actions: Array, dataViewSet: LMDataViewSet, rows: Array): Array {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n\n return this.getValidActionsForList(actions, dataViewSet, rows, AppConstants.ACTION_TYPE_DELETE);\n }\n\n public hasStandardDelete(deleteActionSpec: Array): boolean {\n return deleteActionSpec.some(action => action.type === 'DELETE' && !action.hasParameters && !action.hasActionForm);\n }\n\n public getFormDeleteAction(actions: Array, dataView: LMDataView): LMActionSpec {\n const deleteActions = this.getValidFormDeleteActions(actions, dataView);\n if (deleteActions.length > 0) {\n return deleteActions[0];\n }\n return undefined;\n }\n\n /**\n *\n * @param actions\n * @param dataView\n * @returns\n */\n public getValidFormDeleteActions(actions: Array, dataView: LMDataView): Array {\n return this.getValidActionForForm(actions, dataView, AppConstants.ACTION_TYPE_DELETE);\n }\n\n /**\n * @deprecated why is this needed? Use getUpdateAction instead.\n * @param actions\n * @param dataViewSet\n * @param rows\n * @returns\n */\n public getValidListUpdateActions(actions: Array, dataViewSet: LMDataViewSet, rows: Array): Array {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return undefined;\n }\n\n return this.getValidActionsForList(actions, dataViewSet, rows, AppConstants.ACTION_TYPE_UPDATE);\n }\n\n /**\n * @param actions\n * @param dataViewSet\n * @returns\n */\n public getValidListImportActions(actions: Array, dataViewSet: LMDataViewSet): Array {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n return this.getValidActionForForm(actions, dataViewSet.header, AppConstants.ACTION_TYPE_IMPORT);\n }\n\n /**\n *\n * @param actions\n * @param dataView\n * @returns\n */\n public getValidFormUpdateActions(actions: Array, dataView: LMDataView): Array {\n return this.getValidActionForForm(actions, dataView, AppConstants.ACTION_TYPE_UPDATE);\n }\n\n /**\n *\n * @param actions\n * @param dataViewSet\n * @param rows\n * @returns\n */\n public getValidListInstanceActions(actions: Array, dataViewSet: LMDataViewSet, rows: Array): Array {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n\n return this.getValidActionsForList(actions, dataViewSet, rows, AppConstants.ACTION_TYPE_FUNCTION);\n }\n\n /**\n *\n * @param actions\n * @param dataView\n * @returns\n */\n public getValidFormInstanceActions(actions: Array, dataView: LMDataView): Array {\n return this.getValidActionForForm(actions, dataView, AppConstants.ACTION_TYPE_FUNCTION);\n }\n\n /**\n *\n * @param actions\n * @param dataViewSet\n * @param rows\n * @returns\n */\n public getValidListSetActions(actions: Array, dataViewSet: LMDataViewSet): Array {\n return this.getValidActionForForm(actions, dataViewSet?.header, AppConstants.ACTION_TYPE_SET);\n }\n\n /**\n *\n * @param actions\n * @param dataView\n * @returns\n */\n public getValidFormSetActions(actions: Array, dataView: LMDataView): Array {\n return this.getValidActionForForm(actions, dataView, AppConstants.ACTION_TYPE_SET);\n }\n\n /**\n *\n * @param actions\n * @param dataView\n * @param actionType\n * @returns\n */\n private getValidActionForForm(actions: Array, dataView: LMDataView, actionType: string): Array {\n let validActions: Array = [];\n const actionIndexes = dataView?.actionIndexes;\n validActions = this.getActions(actions, actionIndexes, actionType);\n\n if (validActions.length === 0) {\n return [];\n }\n\n if (validActions.length > 0) {\n return validActions;\n }\n }\n\n public hasNonRestrictedAction(actions: Array, actionType: LMActionSpecType): boolean {\n return actions.some(action => action.type === actionType);\n }\n\n /**\n *\n * @param actions\n * @param dataViewSet\n * @param rows\n * @param type\n * @returns\n */\n private getValidActionsForList(\n actions: Array,\n dataViewSet: LMDataViewSet,\n rows: Array,\n type: string\n ): Array {\n let validActionsForType: Array = [];\n let validRowActions: Array;\n let isValidAction: boolean;\n const validActionForType: Array = [];\n let actionIndexes: Array;\n\n if (!dataViewSet) {\n this.lmLoggerService.warn('getValidAction is being passed an undefined dataViewSet.');\n return [];\n }\n\n if (!rows\n || rows.length === 0\n || (rows.length === 1 && rows[ 0 ] === -1)) {\n this.lmLoggerService.warn('getValidAction is being passed a dataViewSet with no selected records.');\n return [];\n }\n\n if (dataViewSet.data[ rows[ 0 ] ] === undefined) {\n this.lmLoggerService.warn('getValidAction is being passed a dataViewSet without data at the rows[0].idx.');\n return [];\n }\n\n const isTemplateList = dataViewSet.data[ rows[ 0 ] ].dataView ? true : false;\n const isTemplateDeleteActionType = AppConstants.ACTION_TYPE_DELETE === type && isTemplateList;\n // eslint-disable-next-line prefer-const\n actionIndexes = isTemplateList ? dataViewSet.data[ rows[ 0 ] ].dataView.actionIndexes : dataViewSet.data[ rows[ 0 ] ].actionIndexes;\n\n if (isTemplateDeleteActionType && !dataViewSet.data[ rows[ 0 ] ].dataView.isAlreadyDefined) {\n validActionsForType = [];\n } else {\n validActionsForType = this.getActions(actions, actionIndexes, type);\n }\n\n if (validActionsForType.length === 0) {\n return [];\n }\n\n if (rows.length === 1) {\n return validActionsForType;\n }\n\n // --------------------------------------------------------\n // run through all the valid actions of the first dataView\n // for each other dataView that is selected.\n // --------------------------------------------------------\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < validActionsForType.length; i++) {\n // Remove disable multiple instance selection actions from the valid actions list\n isValidAction = validActionsForType[ i ].disableMultipleInstanceSelection ? false : true;\n\n if (isValidAction) {\n for (let j = 1; j < rows.length; j++) { // already checked the first dataView\n const dataView = dataViewSet.data[ rows[ j ] ];\n if (dataView !== undefined) {\n const targetDataView = isTemplateList ? dataView.dataView : dataView;\n if (isTemplateDeleteActionType && !targetDataView.isAlreadyDefined) {\n validRowActions = [];\n } else {\n validRowActions = this.getActions(actions, targetDataView.actionIndexes);\n }\n\n let k = 0;\n for (; k < validRowActions.length; k++) {\n if (validRowActions[ k ].type === validActionsForType[ i ].type\n && validRowActions[ k ].name === validActionsForType[ i ].name) {\n break;\n }\n }\n\n // --------------------------------------------------------\n // if this row doesn't have the compareAction then set\n // the isValidAction to false and break out of this loop.\n // --------------------------------------------------------\n if (k === validRowActions.length) {\n isValidAction = false;\n break;\n }\n }\n }\n\n // --------------------------------------------------------\n // if you get through all the actions and isValidAction\n // is still true then all rows should have that action available.\n // So go ahead and add it to the validActionsList.\n // --------------------------------------------------------\n if (isValidAction) {\n validActionForType.push(validActionsForType[ i ]);\n }\n }\n }\n\n return validActionForType;\n }\n public getValidProcessFlowActions(selectedRows: LMDataView[]): LMProcessFlowAction[] {\n if (this.lmContextService.hasAsOfDateInPast()) {\n return [];\n }\n if (selectedRows.length > 0) {\n if (selectedRows.length === 1) {\n return selectedRows[0].processFlowActions;\n }\n let allCommonPFActions = [];\n let commonPFActions = selectedRows[0].processFlowActions;\n for (let i = 1; i < selectedRows.length; i++) {\n const dataView = selectedRows[i];\n if (!dataView.processFlowActions || dataView.processFlowActions.length === 0) {\n return [];\n }\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let j = 0; j < commonPFActions.length; j++) {\n const pfAction = dataView.processFlowActions.find((a) =>\n (a.name === commonPFActions[j].name\n && a.processName === commonPFActions[j].processName\n && a.activityName === commonPFActions[j].activityName));\n if (pfAction) {\n allCommonPFActions.push(pfAction);\n }\n }\n\n if (allCommonPFActions.length === 0) {\n return [];\n } else {\n commonPFActions = [ ...allCommonPFActions ];\n allCommonPFActions = [];\n }\n }\n return commonPFActions;\n }\n return [];\n }\n\n // public methods\n public getTargetAction(params: {\n formSpec: LMFormSpec,\n dataView: LMDataView,\n actionName?: string\n }): LMActionSpec {\n const dataView: LMDataView = params.dataView;\n const formSpec: LMFormSpec = params.formSpec;\n let actionName: string = params.actionName;\n\n if (!formSpec.busClassSpec) {\n // page context forms do not have a business class\n // they are defined inline\n return null;\n }\n\n if (!actionName) {\n actionName = dataView.action;\n }\n\n let actionSpec: LMActionSpec = null;\n\n if (this.lmFormSpecUtilService.isBusinessTask(formSpec)) {\n actionSpec = formSpec.busClassSpec.actionSpec;\n } else {\n if (actionName && formSpec.busClassSpec.actions) {\n actionSpec = this.getActionByName(formSpec.busClassSpec.actions, actionName);\n }\n\n if (!actionSpec) {\n actionSpec = this.getDefaultUpdateAction(formSpec.busClassSpec.actions, dataView.actionIndexes, true);\n }\n }\n\n return actionSpec;\n }\n}\n\nexport interface LMActionRequest {\n dataView?: LMDataView;\n actionSpec?: LMActionSpec;\n confirmedMessageIds?: string[];\n pfAction?: LMProcessFlowAction;\n validateOnly?: boolean;\n validatePanelName?: string;\n unmodifiedConfirmation?: boolean;\n // for template form save\n templateDataViewSet?: LMDataViewSet,\n subPanelResourceId?: string;\n displayWhenIndex?: number;\n displayPanelId?: string;\n // Create action request (save mode)\n pfActionRequestMode?: LMActionRequestSaveMode;\n\n // for job parameters\n validateKeysOnly?: boolean;\n // For cube save\n cubePeriodKey?: string;\n cubePeriodView?: string;\n}\n","/**\n * Created by stanleyw on 1/30/2018.\n */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMLoggerService } from './lm-logger.service';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class LMAuditLogService {\n\n // This service should not include any state.\n\n constructor( private http: HttpClient,\n private lmUrlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService) {\n }\n\n getAuditLogData(url: string): Observable {\n const params: LMUrlParams = {pageop: 'load'};\n return this.page(this.lmUrlUtilService.updateUrlParams(url, params));\n }\n\n /**\n *\n * @param url\n * @returns\n */\n private page(url: string): Observable {\n return this.http.get(url).pipe(\n map((response: any) => {\n if (response.status !== AppConstants.STATUS_COMPLETED) {\n throw new Error(response.status || 'Server error');\n }\n return response.auditData;\n }),\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { SohoBusyIndicatorDirective, } from 'ids-enterprise-ng';\nimport { AppComponent } from '@app/app.component';\n\n@Injectable()\nexport class LMBusyIndicatorService {\n private m_appComponent: AppComponent;\n\n public set appComponent(appComponent: AppComponent) {\n this.m_appComponent = appComponent;\n }\n\n public showBusyIndicator(sohoBusyIndicator?: SohoBusyIndicatorDirective): void {\n if (this.isGlobalBusyIndicatorOpen()) {\n return;\n }\n\n if (!sohoBusyIndicator) {\n this.m_appComponent.sohoBusyIndicator.open();\n } else if (!sohoBusyIndicator.isActive()){\n sohoBusyIndicator.open();\n }\n }\n\n public hideBusyIndicator(sohoBusyIndicator?: SohoBusyIndicatorDirective): void {\n\n if (this.isGlobalBusyIndicatorOpen()) {\n this.m_appComponent.sohoBusyIndicator.close(false);\n }\n\n if (sohoBusyIndicator?.isActive()) {\n sohoBusyIndicator.close(false);\n }\n }\n\n private isGlobalBusyIndicatorOpen(): boolean {\n return this.m_appComponent.sohoBusyIndicator.isActive();\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\nimport { ComponentType, SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { LMComponentInfoComponent } from '@components/componentInfo';\nimport { AppConstants, LMDialogButtonKey } from '@utils/index';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { CurrentTarget, LMCtrlShiftClickEvent } from '@base/index';\nimport { LMContextService } from './lm-context.service';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class LMComponentInfoService {\n\n protected dialog: SohoModalDialogRef;\n private buttons: SohoModalButton[];\n public compInfoDialogOpen = false;\n public additionalInfo: LMCompInfoAdditionalInfo = {};\n\n constructor(\n protected sohoModalDialogService: SohoModalDialogService,\n protected lmUniqueIdService: LMUniqueIdService,\n private lmContextService: LMContextService,\n private router: Router,\n ) {}\n\n public displayComponentInfo(event: LMCtrlShiftClickEvent, placeHolder: ViewContainerRef, compInfo: LMComponentInfo): void {\n\n if ((!((event.ctrlKey || event.metaKey) && event.shiftKey)) && !event.isPage && !this.getCardviewSpec()) {\n return;\n }\n\n compInfo.panelSpec = this.getPanelSpec();\n compInfo.contextFormSpec = this.getContextFormSpec();\n compInfo.cardviewSpec = this.getCardviewSpec();\n\n const compType = this.getComponentTypeFromEvent(event);\n\n // let placeHolder = this.getComponentPlaceHolder();\n // let compInfo: ComponentInfo = this.getComponentInfo();\n\n // if (!(compInfo.componentType === 'FIELD' && compInfo.specField === 'NONSPECFIELD')\n // && (((compInfo.componentType === 'FORM' && compType.indexOf('FORM') < 0\n // && compInfo.componentType !== compType)) {\n // return;\n // }\n\n const dialogId = 'ComponentInfo';\n this.buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([dialogId, LMDialogButtonKey.CLOSE]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close();\n },\n }\n ];\n\n this.displayDialog(placeHolder, LMComponentInfoComponent, this.buttons, compInfo, Soho.Locale.translate('ComponentInfo'));\n this.clearAdditionalInfo();\n }\n\n private displayDialog(\n placeHolder: ViewContainerRef, component: ComponentType, buttons: any, info: any, title: string): void {\n if (placeHolder && !this.compInfoDialogOpen) {\n this.compInfoDialogOpen = true;\n this.dialog = this.sohoModalDialogService\n .modal(component, placeHolder, {fullsize: 'responsive'})\n .buttons(buttons)\n .title(title)\n .apply((c) => {\n c.info = info;\n })\n .open();\n // As a safety we will reset the flag after a dialog is opened and a couple of seconds have expired getting it ready for the next time.\n setTimeout(() => this.compInfoDialogOpen = false, 2000);\n this.dialog.afterClose(result => {\n this.compInfoDialogOpen = false;\n });\n }\n }\n\n public getComponentTypeFromEvent(event: LMCtrlShiftClickEvent): string {\n if (event.srcEventElement && this.closest(event.srcEventElement.firstChild, 'lm-html-url-doc')) {\n return 'HTMLDOC';\n }\n if (this.closest(event.currentTarget, 'lm-field') || this.hasClass(event.currentTarget, 'fieldset-title')) {\n return 'FIELD';\n }\n if (this.closest(event.currentTarget, 'lm-form-panel-form')) {\n return 'FORM_PANEL';\n }\n if (this.closest(event.currentTarget, 'lm-list')) {\n return 'LIST';\n }\n if (this.closest(event.currentTarget, 'lm-form')) {\n return 'FORM';\n }\n if (this.closest(event.currentTarget, 'lm-banner-menu')) {\n return 'MENU';\n }\n const currentTarget: CurrentTarget = event.currentTarget as CurrentTarget;\n if (currentTarget && currentTarget.nodeName && currentTarget.nodeName === 'LM-BANNER-HEADER') { // tslint:disable-line\n let type = '';\n try {\n // tslint:disable\n type = 'form'; // this.router.currentUrlTree.root.children.primary.segments[2].path;\n // tslint:enable\n } catch (e) {}\n if (type === AppConstants.RESOURCETYPE_LIST) {\n return 'LIST';\n }\n if (type === AppConstants.RESOURCETYPE_PAGE) {\n return 'PAGE';\n }\n if (type === AppConstants.RESOURCETYPE_FORM) {\n return 'FORM';\n }\n }\n if (event.isPage) {\n return 'PAGE';\n }\n\n return null;\n }\n\n public closeDialog() {\n this.dialog.close();\n }\n\n public hasClass(element, className) {\n if (!element || element == null) {\n return false;\n }\n\n if (element.classList) {\n return element.classList.contains(className);\n } else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n }\n\n public hasConfigAccess() {\n return this.lmContextService.hasConfigAccess();\n }\n\n public closest(element, selector) {\n let matchesFn;\n\n // find vendor prefix\n [ 'matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector' ].some(function(fn) {\n if (typeof document.body[ fn ] === 'function') {\n matchesFn = fn;\n return true;\n }\n return false;\n });\n\n let parent;\n\n // traverse parents\n while (element) {\n parent = element.parentElement;\n if (parent && parent[ matchesFn ](selector)) {\n return parent;\n }\n element = parent;\n }\n }\n\n public buildCtrlShiftClickEvent(event: MouseEvent, additionInfo?: LMCompInfoAdditionalInfo): LMCtrlShiftClickEvent {\n const ctrlShiftClickEvent: LMCtrlShiftClickEvent = new LMCtrlShiftClickEvent(event.type);\n ctrlShiftClickEvent.originalEvent = event;\n ctrlShiftClickEvent.metaKey = event.metaKey;\n ctrlShiftClickEvent.ctrlKey = event.ctrlKey;\n ctrlShiftClickEvent.shiftKey = event.shiftKey;\n ctrlShiftClickEvent.additionInfo = additionInfo;\n\n return ctrlShiftClickEvent;\n }\n\n public clearAdditionalInfo() {\n this.additionalInfo.panelSpec = undefined;\n this.additionalInfo.contextFormSpec = undefined;\n this.additionalInfo.cardviewSpec = undefined;\n }\n\n public setPanelSpec(panelSpec: LMCompositePanelSpec) {\n this.additionalInfo.panelSpec = panelSpec;\n }\n\n public getPanelSpec(): LMCompositePanelSpec {\n return this.additionalInfo.panelSpec;\n }\n\n public setContextFormSpec(contextFormSpec: LMBusFormSpec) {\n this.additionalInfo.contextFormSpec = contextFormSpec;\n }\n\n public getContextFormSpec(): LMBusFormSpec {\n return this.additionalInfo.contextFormSpec;\n }\n\n public setCardviewSpec(cardviewSpec: LMListDisplayField) {\n this.additionalInfo.cardviewSpec = cardviewSpec;\n }\n\n public getCardviewSpec(): LMListDisplayField {\n return this.additionalInfo.cardviewSpec;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\nimport {\n LMFieldUtilService,\n LMFormatUtilService,\n} from './utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LMCompoundFieldService {\n\n constructor(\n private lmFieldUtilService: LMFieldUtilService,\n private lmFormatUtilService: LMFormatUtilService\n ) { }\n\n // ported from landmarkGroupField.js\n public flattenLayout(layout: LMFormLayout | Array): LMFormLayoutElements {\n const subFields: Array = [];\n const layoutObj = (layout.hasOwnProperty('sections'))\n ? (layout as LMFormLayout).sections as Array\n : layout as Array;\n\n layoutObj.forEach((section: LMFormLayoutSection) => {\n if (section.columns) {\n this.flattenColumnsForGroupField(section, subFields);\n\n } else if (section.paragraph) {\n this.flattenParagraphForGroupField(section.paragraph, subFields);\n\n } else if (section.field) {\n subFields.push({ field: section.field });\n\n } else {\n // do nothing\n }\n });\n\n return { elements: subFields };\n }\n\n // Form version is parseGroupFieldMemberValue. Analogous changes\n // must be made to both, until one method is developed.\n public setGroupFieldMemberValue(dataView: LMDataView, dvField: LMField): void {\n this._setGroupFieldMemberValue(dataView, dvField, dvField.value);\n }\n\n // private methods\n private _setGroupFieldMemberValue(dataView: LMDataView, dvField: LMField, compactValue: any): string {\n const delimiter = dvField.delimiter || '';\n const members = dvField.members;\n let memberField;\n\n for (let i = 0, length = members.length; i < length; i++) {\n if (compactValue.length === 0) {\n // Clear the remaining members\n for (let j = i; j < length; j++) {\n memberField = dataView.fields[members[j]];\n memberField.value = this.lmFieldUtilService.toBlankValue();\n }\n break;\n }\n\n memberField = dataView.fields[dvField.members[i]];\n\n if (this.lmFormatUtilService.isCompoundField(memberField)) {\n // TODO - is this necessary?\n compactValue = this._setGroupFieldMemberValue(dataView, memberField, compactValue);\n } else {\n if (delimiter.length > 0) {\n const index = compactValue.indexOf(delimiter);\n const newValue = ((index === -1) ? compactValue : compactValue.substr(0, index));\n\n memberField.value = newValue;\n compactValue = (index === -1) ? '' : compactValue.substr(index + 1);\n } else {\n const newValue = (compactValue.substr(0, memberField.size));\n\n memberField.value = newValue;\n compactValue = compactValue.substr(memberField.size);\n }\n }\n }\n\n return compactValue;\n }\n\n private flattenColumnsForGroupField(section: LMFormLayoutSection, subFields: Array) {\n // for 4.0, columns are always an array\n section.columns.forEach((column) => {\n column.elements.forEach((element) => {\n this.addGroupFieldSubField(element, subFields);\n })\n });\n }\n\n private flattenParagraphForGroupField(paragraph: LMFormLayoutParagraph, subFields: Array) {\n paragraph.elements.forEach((element) => {\n this.addGroupFieldSubField(element, subFields);\n })\n }\n\n private addGroupFieldSubField(element: LMFormLayoutElements, subFields: Array) {\n if (element.field) {\n subFields.push({ field: element.field });\n }\n }\n\n public computeCompactFieldValue(dataView: LMDataView, fieldId: string, specFields?: LMSpecFields): string {\n const dvField: LMField = dataView.fields[ fieldId ];\n return this._computeCompactFieldValue(dataView, dvField, true, specFields);\n }\n\n // NOTE: method is recursive\n private _computeCompactFieldValue(dataView: LMDataView, dvField: LMField, checkBlank: boolean, specFields?: LMSpecFields): string {\n let delimiter = dvField.delimiter || '';\n let returnValue = '';\n let addDelimiter = false;\n let allFieldsBlank = true;\n\n dvField.members.forEach((item, index, ary) => {\n const memberField: LMField = dataView.fields[ item ];\n const type = memberField.type || '';\n\n if (addDelimiter) {\n returnValue += delimiter;\n }\n\n if (type === 'array' || type === 'group') {\n delimiter = memberField.delimiter || '';\n addDelimiter = (delimiter.length > 0);\n\n memberField.value = this._computeCompactFieldValue(dataView, memberField, false, specFields);\n\n allFieldsBlank = (allFieldsBlank && memberField.value.length === 0);\n returnValue += memberField.value;\n\n } else {\n const value = memberField.value;\n\n if (specFields && specFields.hasOwnProperty(item)) {\n const specField: LMSpecField = specFields[ item ];\n\n if (specField.type === AppConstants.BINARYDOCUMENT) {\n // TODO: issue: check if linkValue is still used for 4.0\n // value = memberField.linkValue;\n }\n\n allFieldsBlank = (allFieldsBlank && this.lmFieldUtilService.isBlank(specField.type, value));\n }\n\n if (delimiter.length === 0) {\n returnValue += this.getFieldPaddedValue(memberField);\n\n } else {\n addDelimiter = true;\n returnValue += _.trim(value.toString());\n }\n }\n });\n\n if (specFields && allFieldsBlank && checkBlank) {\n return '';\n }\n\n // trim trailing delimiters\n let newLength = returnValue.length;\n const delimLength = delimiter.length;\n\n for (; newLength > 0 && delimLength > 0 ; newLength -= delimLength) {\n if (delimiter !== (returnValue.substring(newLength - delimLength, newLength))) {\n break;\n }\n }\n\n returnValue = returnValue.substr(0, newLength);\n return returnValue;\n }\n\n private getFieldPaddedValue(dvField: LMField): string {\n let value = dvField.value.toString();\n const length = value.length;\n\n if (length < dvField.size) {\n for (let index = length; index < dvField.size; index++) {\n value += ' ';\n }\n\n } else {\n value = value.substr(0, dvField.size);\n }\n\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs/internal/Observable';\nimport * as urltemplate from 'url-template';\nimport { catchError } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport { LMLoggerService } from './lm-logger.service';\nimport { LMUrlUtilService } from './utils';\nimport {\n LMFieldPickerRequest,\n LMFieldPickerResponse,\n LMFieldPickerSearchComparator,\n LMFieldPickerView\n} from '@modal/field-picker/lm-field-picker';\nimport { ListRequestType } from '@app/utils';\n\n@Injectable()\nexport class LMConfigurationService {\n\n constructor(private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService) {\n }\n\n public getPersonalization(personalizeUrl: any, userFolder: string): Observable {\n personalizeUrl = this.lmUrlUtilService.updateUrlParams(personalizeUrl, { userfolder: userFolder });\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n return > this.http.get(personalizeUrl, { headers });\n }\n\n public searchField(searchTerm: string, url: string, busClassName: string, mode: LMFieldPickerView): Observable {\n let comparator: LMFieldPickerSearchComparator = 'contains';\n if (searchTerm?.indexOf('.') !== -1) {\n const structure = searchTerm.split('.');\n const lastStructure = structure[structure.length -1];\n comparator = lastStructure.length < 3 ? 'startsWith' : 'contains';\n } else {\n comparator = searchTerm?.length < 3 ? 'startsWith' : 'contains';\n }\n\n console.log('nameComparator:' + comparator);\n\n\n const formRequest: LMFieldPickerRequest = {\n requestType: ListRequestType.FieldSpecForBusClass,\n businessClass: busClassName,\n view: mode,\n searchOptions: {\n nameValue: searchTerm,\n nameComparator: comparator\n },\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(url);\n\n url = compiledUrlTemplate.expand({ resourceId: busClassName });\n\n return > this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public computeIsValid(url: string, busClassName: string, field: LMPersonalizationColumn): Observable {\n const formRequest: any = {\n requestType: 'validateCompute',\n param1: busClassName,\n param2: field.name,\n param3: field.compute,\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n const compiledUrlTemplate = urltemplate.parse(url);\n\n url = compiledUrlTemplate.expand({ resourceId: busClassName });\n\n return > this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public conditionIsValid(value: string, url: string, busClassName: string): Observable {\n const formRequest: any = {\n requestType: 'validateCondition',\n param1: busClassName,\n param2: value\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return >this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public runPersonalizeAction(url: string, requestParams?: any): Observable {\n return > this.http.post(url, JSON.stringify(requestParams)).pipe(catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public createReport(url: string, dataView: LMReportPersonalizationDataView, displayFields: any[],\n userFolder?: string, cubeInfo?: LMDVSetCubeInfo, viewReport?: boolean): Observable {\n return this.createReportAndPersonalize(url, dataView, displayFields, userFolder, cubeInfo, viewReport);\n }\n\n private createReportAndPersonalize(url: string, dataView: LMReportPersonalizationDataView, displayFields: any[],\n userFolder?: string, cubeInfo?: LMDVSetCubeInfo, viewReport?: boolean): Observable {\n const formRequest: LMReportFormRequest = {\n requestType: 'createReportAndPersonalize',\n param1: displayFields,\n param2: cubeInfo,\n reportDataView: dataView,\n viewReport\n };\n\n url = this.lmUrlUtilService.updateUrlParams(url, { userfolder: userFolder });\n return this.makeFormRequest(url, formRequest);\n }\n\n public personalize(url: string, busClassName: string, dataView: LMReportPersonalizationDataView, displayFields: any[], userFolder: string, cubeInfo?: LMDVSetCubeInfo): Observable {\n const formRequest: LMPersonalizeFormRequest = {\n requestType: 'saveListPersonalization',\n param1: displayFields,\n param2: dataView,\n param3: cubeInfo\n };\n\n url = this.lmUrlUtilService.updateUrlParams(url, { userfolder: userFolder });\n return this.makeFormRequest(url, formRequest);\n }\n\n private makeFormRequest(url: string, formRequest: LMReportFormRequest | LMPersonalizeFormRequest): Observable {\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return >this.http.post(url, JSON.stringify(formRequest), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n\n public fetchUserListViews(url: string, lk?: string): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json;charset=utf-8' });\n const body = { lk, requestType: 'fetchUserListViews' };\n\n return this.http.post(url, JSON.stringify(body), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public saveUserListView(url: string, dataView: LMDataView): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json;charset=utf-8' });\n const body = { dataView, requestType: 'saveUserListView' };\n\n return this.http.post(url, JSON.stringify(body), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public getDefaultUserListView(url: string): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json;charset=utf-8' });\n const body = { requestType: 'defaultUserListView' };\n\n return this.http.post(url, JSON.stringify(body), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n}\n\nexport interface PersonalizeParams {\n sourceResourceUrl: string;\n}\n","/**\n * Created by ppatton on 12/21/2016.\n */\nimport { Injectable } from '@angular/core';\nimport { AppConstants } from '@utils/app.constants';\n\n@Injectable()\nexport class LMContextService {\n private context: LMContext;\n private webAppSpecs: LMWebAppSpec[];\n private _clearPageState = false;\n\n constructor() {\n }\n\n getContext(): LMContext {\n return this.context;\n }\n\n setContext(context: LMContext) {\n this.context = context;\n }\n\n updateUrlPdlOrDa(urlPdlOrDa: string) {\n this.context.urlPdlOrDa = urlPdlOrDa;\n }\n\n updateWebApp(webAppSpec: LMWebAppSpec) {\n this.context.webApp = webAppSpec.webAppName;\n this.context.webAppTitle = webAppSpec.webAppTitle;\n LandmarkContext.webApp = webAppSpec.webAppName;\n LandmarkContext.webAppTitle = webAppSpec.webAppTitle;\n }\n\n hasAsOfDateInPast(): boolean {\n return (this.context && this.context.asOfDate && this.context.asOfDateInPast);\n }\n\n getAsOfDate(): string {\n return this.context.asOfDate;\n }\n\n setAsOfDate(date: string) {\n this.context.asOfDate = date;\n if (!this.context.contextSessionKeys) {\n this.context.contextSessionKeys = {};\n }\n this.context.contextSessionKeys[ AppConstants.PARAM_CSK_ASOFDATE ] = date;\n }\n\n clearAsOfDate() {\n this.context.asOfDate = '';\n delete this.context.contextSessionKeys[ AppConstants.PARAM_CSK_ASOFDATE ];\n }\n\n getAsOfDateInPast(): boolean {\n return this.context.asOfDateInPast;\n }\n\n setAsOfDateInPast(asOfDateInPast: boolean) {\n this.context.asOfDateInPast = asOfDateInPast;\n }\n\n getShowDeletedRecords(): boolean {\n return this.context.showdeletedrecords;\n }\n\n setShowDeletedRecords(show: boolean) {\n this.context.showdeletedrecords = show;\n if (!this.context.contextSessionKeys) {\n this.context.contextSessionKeys = {};\n }\n if (show) {\n this.context.contextSessionKeys[ AppConstants.PARAM_CSK_SHOWDELETEDRECORDS ] = show;\n } else {\n delete this.context.contextSessionKeys[ AppConstants.PARAM_CSK_SHOWDELETEDRECORDS ];\n }\n }\n\n getActorId(): string {\n return this.context.actorId;\n }\n\n getActorUniqueId(): string {\n return this.context.actorUniqueId;\n }\n\n getUIType(): LMUIType {\n return this.context.uiType;\n }\n\n hasConfigAccess(): boolean {\n const webApps = this.getAccessibleWebApps();\n if (!webApps) {\n return false;\n }\n const configArray: LMWebAppSpec[] = webApps.filter(webapp => {\n if (webapp.webAppName === 'ConfigurationConsole') {\n return webapp;\n }\n });\n\n return configArray.length > 0;\n }\n\n isMobileDevice(): boolean {\n return this.getUIType() === 'SMARTPHONE' || this.getUIType() === 'TABLET';\n }\n\n get configStamp(): number {\n return this.context.configStamp;\n }\n\n get uiLoadingIndicatorTimeout(): number {\n if (this.context.uiLoadingIndicatorTimeout > 0) {\n // value times 1000 to get milliseconds\n return (this.context.uiLoadingIndicatorTimeout * 1000);\n }\n\n return this.context.uiLoadingIndicatorTimeout;\n }\n\n get uiPagingRequestWaitTime(): number {\n if (this.context.uiPagingRequestWaitTime > 0) {\n // value times 1000 to get milliseconds\n return (this.context.uiPagingRequestWaitTime * 1000);\n }\n\n return this.context.uiPagingRequestWaitTime;\n }\n\n get isUiPagingRequestWaitTimeEnabled(): boolean {\n return this.context.uiPagingRequestWaitTime > 0;\n }\n\n userDefinedStatesPageSizeAndIndicator(): boolean {\n return this.context.userDefinedStatePageSizeAndFilter;\n }\n\n userDefinedStatesDefaultPageSize(): number {\n return this.context.userDefinedStateDefaultPageSize;\n }\n\n casualMode(): boolean {\n if (this.context && this.context.contextSessionKeys) {\n return (this.context.contextSessionKeys[ 'csk.casualMode' ] === 'true');\n }\n\n return false;\n }\n\n isDeveloper(): boolean {\n return this.context.developer;\n }\n\n /**\n * Whether or not to display the context for a mingle\n * widget.\n * @returns {boolean}\n */\n\n inMingleWidget(): boolean {\n return this.context.inMingleWidget;\n }\n\n insideInforGo(): boolean {\n return this.context.insideInforGo;\n }\n\n inMingleInbox(): boolean {\n if (this.inMingle()) {\n return !!(this.context.contextSessionKeys && this.context.contextSessionKeys['csk.mi']);\n }\n return false;\n }\n\n isXiFull(): boolean {\n return this.context.uiHarness === 'xifull';\n }\n\n isXiHarness(): boolean {\n return this.context.uiHarness === 'xiharness';\n }\n\n is3xHarness(): boolean {\n return this.context.uiHarness === '3xharness';\n }\n\n isSharePageAnalyticsEnabled(): boolean {\n return !!(this.context && this.context.sharePageAnalytics && this.context.sharePageAnalytics.length > 0);\n }\n\n isMonocleEnabled(): boolean {\n\n // add multi tenant only for monocle\n return (this.context && this.context.enableUserPageHit && this.isSharePageAnalyticsEnabled());\n }\n\n getCompactnessMode(): LMCompactnessMode {\n if (this.context && this.context.compactnessMode) {\n return this.context.compactnessMode;\n }\n\n return 'compact';\n }\n\n testVersion(): LMTestVersion {\n if (this.context && this.context.testVersion) {\n return this.context.testVersion;\n }\n\n return 1;\n }\n\n isHideMenuBar(): boolean {\n if (this.context && this.context.contextSessionKeys) {\n return (this.context.contextSessionKeys[ 'csk.hidemenubar' ] === 'true');\n }\n\n return false;\n }\n\n isHideTitlebar(): boolean {\n if (this.context && this.context.contextSessionKeys) {\n return (this.context.contextSessionKeys[ 'csk.hidetitlebar' ] === 'true');\n }\n\n return false;\n }\n\n useLazyLoadForm(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.uselazyloadform' ]) {\n return (this.context.contextSessionKeys[ 'csk.uselazyloadform' ] === 'true');\n }\n\n return true;\n }\n\n allowAnonymousAccess(): boolean {\n return this.context.allowAnonymousAccess;\n }\n\n isAnonymousUser(): boolean {\n return this.context.isAnonymousUser;\n }\n\n getLog(): number {\n if (this.context && this.context.contextSessionKeys) {\n const key = this.context.contextSessionKeys[ 'csk.log' ];\n const value = Number(key);\n\n if (isNaN(value)) {\n return 0;\n }\n\n if (value >= 1 && value <= 4) {\n return value;\n }\n }\n\n return 0;\n }\n\n getLogToClient(): boolean {\n if (this.context && this.context.contextSessionKeys) {\n const key = this.context.contextSessionKeys[ 'csk.logtoclient' ];\n const value = (key === 'true');\n return key ? value : false;\n }\n\n return false;\n }\n\n setAccessibleWebApps(webApps: LMWebAppSpec[]) {\n this.webAppSpecs = webApps;\n }\n\n getAccessibleWebApps(): LMWebAppSpec[] {\n return this.webAppSpecs;\n }\n\n getCurrentWebAppSpec(): LMWebAppSpec {\n if (this.context.webApp === 'web') {\n const webWebAppSpec: LMWebAppSpec = {\n webAppUrl: '',\n webAppName: 'web',\n webAppIconUrl: '',\n webAppDescription: '',\n webAppTitle: 'Web',\n navigationMenuUrl: '',\n showUsing: 'SoHo_Xi',\n menu: false\n };\n return webWebAppSpec;\n }\n\n const result: LMWebAppSpec[] = this.webAppSpecs.filter(webAppSpec => webAppSpec.webAppName === this.context.webApp);\n if (result.length !== 1) {\n throw 'cannot find webAppSpec for ' + this.context.webApp;\n }\n return result[ 0 ];\n }\n\n inMingle(): boolean {\n return this.getLogicalId().length > 0;\n }\n\n getLogicalId(): string {\n return (this.context && this.context.logicalId ? this.context.logicalId : '');\n }\n\n getWebpartScreenId(): string {\n return (this.context && this.context.webpartScreenId ? this.context.webpartScreenId : '');\n }\n\n getUrlPdlOrDa() {\n return (this.context && this.context.urlPdlOrDa ? this.context.urlPdlOrDa : '');\n }\n\n getWebApp() {\n return (this.context && this.context.webApp ? this.context.webApp : '');\n }\n\n getToastMessagePosition(): LMToastPosition {\n return (this.context?.uiToastMessagePosition ? this.context.uiToastMessagePosition : 'BLANK');\n }\n\n getToastMessageDuration(): LMToastDuration {\n return (this.context?.uiToastMessageDuration ? this.context.uiToastMessageDuration : 'BLANK');\n }\n\n /**\n * Placing here for a lack of a better spot. This is set in the banner when\n * navigating to a screen. That screen will have it's page state cleared.\n * Page state should only be used when going back and forward with the\n * browser button or through standard screen navigation.\n * @returns\n */\n getClearPageState(): boolean {\n return this.context ? this.context.clearPageState : this._clearPageState;\n }\n\n setClearNextPageState(clearPageState: boolean): void {\n this._clearPageState = clearPageState;\n if (this.context) {\n this.context.clearPageState = this._clearPageState;\n }\n }\n\n is3_5Content(appDisplay: string) {\n // default or 3_5 are for 3X as the default is 3x\n let content3_5 = this.getCurrentWebAppSpec().showUsing !== 'SoHo_Xi';\n let forceXi = 'false';\n if (this.context && this.context.contextSessionKeys) {\n forceXi = this.context.contextSessionKeys[ 'csk.showusingxi' ];\n }\n // First check to see if xi should be forced then if the app personalization is set to something override what is set in webapp\n if ((this.context && this.context.uiHarness === 'xifull') || forceXi === 'true') {\n content3_5 = false;\n } else if (appDisplay === '3_5') {\n content3_5 = true;\n } else if (appDisplay === '4_0' || appDisplay === 'override') {\n content3_5 = false;\n }\n\n return content3_5;\n }\n\n public useNewSpecUrls(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.newspecurl' ]) {\n return (this.context.contextSessionKeys[ 'csk.newspecurl' ] === 'true');\n }\n\n return (this.context && this.context.useNewSpecUrls);\n }\n\n disablePageState(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.disablepagestate' ]) {\n return (this.context.contextSessionKeys[ 'csk.disablepagestate' ] === 'true');\n }\n\n return false;\n }\n\n isGenProductLine(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys['csk.gen']) {\n return this.context.contextSessionKeys['csk.gen'] === 'true';\n }\n return false;\n }\n\n useSingleSelectList(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.usesingleselectlist' ]) {\n return (this.context.contextSessionKeys[ 'csk.usesingleselectlist' ] === 'true');\n }\n\n return (this.context?.useSingleSelectList);\n }\n\n enableMultipleSearchTerms(): boolean {\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.enablemultiplesearchterms' ]) {\n return (this.context.contextSessionKeys[ 'csk.enablemultiplesearchterms' ] === 'true');\n }\n\n return this.context?.enableMultipleSearchTerms;\n }\n\n useMultiSelectKeyField(): boolean {\n if (this.useSingleSelectList()) {\n if (this.enableMultipleSearchTerms()) {\n return true;\n }\n\n // also allow for csk.usemultiselectkeyfield since this older csk was communicated\n if (this.context && this.context.contextSessionKeys && this.context.contextSessionKeys[ 'csk.usemultiselectkeyfield' ]) {\n return (this.context.contextSessionKeys[ 'csk.usemultiselectkeyfield' ] === 'true');\n }\n }\n\n return false;\n }\n\n enablePageSpecRefactor(): boolean {\n if (this.context) {\n\n if (this.context.contextSessionKeys\n && this.context.contextSessionKeys[ 'csk.pagespec-refactor' ]\n && this.context.contextSessionKeys[ 'csk.pagespec-refactor' ] === 'false') {\n return false;\n }\n\n if (this.context.pagespec_refactor !== undefined && this.context.pagespec_refactor === false) {\n return false;\n }\n }\n return true;\n }\n\n isStepUpAuthetication(): boolean {\n if (this.context && this.context.stepUpAuthentication !== undefined && this.context.stepUpAuthentication) {\n // This flag is only for one time consumption.\n this.resetStepUpAuthentication();\n return true;\n }\n return false;\n }\n\n isApplicationMenuV2() {\n if (this.isMobileDevice() && this.context.uiMenuVersion === undefined) {\n if (this.context.allowAnonymousAccess) {\n return this.context.uiExternalMenuVersion === 'v2';\n }\n\n return true;\n }\n\n if (this.context.allowAnonymousAccess) {\n return this.context.uiExternalMenuVersion === 'v2';\n }\n\n return this.context.uiMenuVersion === 'v2';\n }\n\n isApplicationMenuV1() {\n if (this.isMobileDevice() && this.context.uiMenuVersion === undefined) {\n if (this.context.allowAnonymousAccess) {\n return this.context.uiExternalMenuVersion !== 'v2';\n }\n\n return false;\n }\n\n if (this.context.allowAnonymousAccess) {\n return this.context.uiExternalMenuVersion !== 'v2';\n }\n\n return this.context.uiMenuVersion !== 'v2';\n }\n\n private resetStepUpAuthentication() {\n this.context.stepUpAuthentication = false;\n }\n\n hasAccessibilityModeParameter(): boolean {\n return this.context?.contextSessionKeys?.['csk.accessibility'] !== undefined;\n }\n\n getAccessibilityModeParameterValue(): boolean {\n return this.context?.contextSessionKeys?.['csk.accessibility'] === 'true';\n }\n\n isConfigFeatureEnabled(featureName: string): boolean {\n return this.context.configuredFeatures.indexOf(featureName) !== -1;\n }\n\n getFilterBarModeSetInCsk(): string {\n return this.context?.contextSessionKeys?.[ 'csk.filterbarmode' ];\n }\n\n isFilterBarOnPowerMode(): boolean {\n if (this.context?.allowAnonymousAccess) {\n return this.context?.uiExternalAppFilterBarMode === 'power';\n }\n\n return this.context?.uiAppFilterBarMode === 'power';\n }\n\n public disableTreeFilterFix(): boolean {\n return this.context?.disableTreeFilterFix;\n }\n\n showUserListView(): boolean {\n // Using configuration parameter UIEnableSavedViews\n // return this.context?.contextSessionKeys?.['csk.savedSearch'] === 'true'\n const enableSavedSearch = this.context?.enableSavedSearch || false;\n return enableSavedSearch && !this.isAnonymousUser() && !this.casualMode();\n }\n\n public menuSearchOpenIndex(): string {\n return this.context?.menuSearchOpenIndex;\n }\n\n public pdfPollEnabled(): boolean {\n return this.context?.contextSessionKeys?.[ 'csk.pollforpdf'];\n }\n}\n","/**\n * Created by stanleyw on 11/17/2020.\n */\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMCtrlShiftClickService {\n\n public additionalInfo: LMCompInfoAdditionalInfo = {};\n\n constructor() {}\n\n public setPanelSpec(panelSpec: LMCompositePanelSpec) {\n this.additionalInfo.panelSpec = panelSpec;\n }\n\n public getPanelSpec(): LMCompositePanelSpec {\n return this.additionalInfo.panelSpec;\n }\n\n public setContextFormSpec(contextFormSpec: LMBusFormSpec) {\n this.additionalInfo.contextFormSpec = contextFormSpec;\n }\n\n public getContextFormSpec(): LMBusFormSpec {\n return this.additionalInfo.contextFormSpec;\n }\n\n public setCardviewSpec(cardviewSpec: LMListDisplayField) {\n this.additionalInfo.cardviewSpec = cardviewSpec;\n }\n\n public getCardviewSpec(): LMListDisplayField {\n return this.additionalInfo.cardviewSpec;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { LMLoggerService } from './lm-logger.service';\n\n@Injectable()\nexport class LMDataService {\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService\n ) {}\n\n public getRecord(url: string): Observable {\n // console.log('refresh record: ' + url.substring(0, url.indexOf('?')));\n return this.http.get(url).pipe(\n // TODO: keep catchError for now, in the future lmLoggerService.error\n // may do more than just console.error e.g. send errors back to the server\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n })\n );\n }\n\n public getTemplateRecords(url: string): Observable {\n return > this.http.get(url).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public getSubPanelRecords(url: string): Observable {\n return > this.http.get(url).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n\n public getPageData(url: string): Observable {\n return > this.http.get(url).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { LMLoggerService } from './lm-logger.service';\nimport { DrillResource } from '@resources/drill.resource';\nimport { LMUrlUtilService } from './utils';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMFormRequest, LMModel } from '@form/index';\nimport { FormRequestType } from '@app/utils';\nimport * as urltemplate from 'url-template';\n\n@Injectable()\nexport class LMDrillService {\n constructor(\n private http: HttpClient,\n private _logger: LMLoggerService,\n private urlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService) {\n }\n\n public getDrillPoints(drillPointsParams: DrillPointsParams): Observable {\n if (drillPointsParams.dataView === undefined) {\n return;\n }\n\n const drillResource = new DrillResource({ resourceId: drillPointsParams.dataView.resourceId, drillName: '_drillpoints_' });\n const url = this.urlUtilService.buildUrl({ resource: drillResource });\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return > this.http.get(url, {headers}).pipe(\n catchError(error => this._handleError(error)));\n }\n\n public getFieldDrillPoints(drillPointsParams: DrillPointsParams): Observable {\n if (drillPointsParams.model === undefined) {\n return;\n }\n\n const compiledFormRequestUrl = urltemplate.parse(drillPointsParams.model.formUrlInfo.formRequestUrl);\n const url = compiledFormRequestUrl.expand({ resourceId: drillPointsParams.model.formResourceId });\n\n const formRequest: LMFormRequest = {\n requestType: FormRequestType.DrillPoints,\n dataView: drillPointsParams.model.getData(),\n drillName: '_drillPoints_',\n fieldId: drillPointsParams.fieldId\n };\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return > this.http.post(url, JSON.stringify(formRequest), {headers}).pipe(\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n\nexport interface DrillPointsParams {\n dataView?: LMDataView;\n model?: LMModel;\n fieldId?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { LMUrlUtilService } from './utils';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { LMLoggerService } from './lm-logger.service';\nimport { AppConstants } from '@utils/app.constants';\n\n@Injectable()\nexport class LMGlobalPersistenceService implements LMPersistenceServiceBase {\n\n private headers: HttpHeaders;\n private instanceId: string;\n\n constructor(\n private http: HttpClient,\n private urlUtilService: LMUrlUtilService,\n private lmLoggerService: LMLoggerService\n ) {\n this.instanceId = this.lmLoggerService.instanceId;\n this.headers = new HttpHeaders();\n this.headers.append('Content-Type', 'application/json;charset=utf-8');\n }\n\n getItem(key: string): LMStorageModelBase {\n return { };\n }\n\n /**\n * Saves to global storage on the server\n * @param key\n * @param payload\n */\n saveItem(key: string, payload: LMStorageModelBase): void {\n this.makeRequest(key, 'save', payload).subscribe((response) => {\n this.lmLoggerService.log([this, this.instanceId, 'saveItem()', key]);\n\n if (response.serverLog) {\n this.lmLoggerService.serverLog(response.serverLog);\n }\n\n if (response.status === AppConstants.STATUS_COMPLETED) {\n // no-op\n\n } else {\n this.lmLoggerService.error([ this, 'saveItem()', response.exception ]);\n }\n });\n }\n\n deleteItem(key: string): void {\n // no-op; server processes delete\n }\n\n private makeRequest(key: string, type: string, payload: LMStorageModelBase): Observable {\n let url = this.urlUtilService.getBaseUrl() + '/globalstorage/';\n url = this.urlUtilService.propagateSessionKeys(url, '?');\n\n const requestData = {\n requestType: type,\n data: payload,\n key,\n };\n\n return > this.http.post(url, JSON.stringify(requestData), { headers: this.headers, }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","/**\n * Created by stanleyw on 1/24/2018.\n */\nimport { Injectable } from '@angular/core';\nimport { LMContextService } from './lm-context.service';\n\n@Injectable()\nexport class LMHarnessService {\n\n constructor(\n private lmContextService: LMContextService,\n ) {\n this.getHarness();\n }\n\n isXiFull(): boolean {\n return (this.getHarness() === 'xifull');\n }\n\n isXiHarness(): boolean {\n return (this.getHarness() === 'xiharness');\n }\n\n is3xHarness(): boolean {\n return (this.getHarness() === '3xharness');\n }\n\n private getHarness(): string {\n const context: LMContext = this.lmContextService.getContext();\n const xiHarness: boolean = context.uiHarness === 'xiharness';\n const harness3x: boolean = context.uiHarness === '3xharness';\n const cskNg: boolean = context.contextSessionKeys !== undefined && context.contextSessionKeys[ 'csk.ng' ] ? context.contextSessionKeys[ 'csk.ng' ] : false;\n\n let retHarness = 'xiharness';\n\n if (cskNg) {\n retHarness = 'xiharness';\n } else if (xiHarness || harness3x) {\n retHarness = context.uiHarness;\n } else {\n retHarness = 'xiharness';\n }\n\n return retHarness;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { throwError } from 'rxjs';\n\nimport { LMLoggerService } from './lm-logger.service';\nimport { LMManualRepresentationComponent } from '@field/index';\n\n@Injectable()\nexport class LMHtmlUrlDocService {\n\n public identifier = 0;\n private framesRef: LMHtmlUrlDocRef = {};\n\n constructor(\n private lmLoggerService: LMLoggerService,\n ) {}\n\n public createFrameIdentifier(): string {\n const frameId = 'frameId' + this.identifier++;\n this.framesRef[frameId] = {};\n return frameId;\n }\n\n public getFrameRefs(): LMHtmlUrlDocRef {\n return this.framesRef;\n }\n\n public setManualFields(indentifier: string, manualRepFields: {}, manRepComp: LMManualRepresentationComponent) {\n this.framesRef[indentifier] = {manualRepFields: manualRepFields, compRef: manRepComp};\n }\n\n public getFrameData(identifier: string): LMHtmlUrlDocData {\n return this.framesRef[identifier];\n }\n\n private handleError(error: Response) {\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n\n public getManualRefCompRefs(): LMManualRepresentationComponent[] {\n const keys: string[] = Object.keys(this.framesRef);\n let returnCompRef = [];\n for (let key of keys) {\n const ref = this.framesRef[ key ];\n returnCompRef.push(ref.compRef);\n }\n return returnCompRef;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { UserWebRequestHttpInterceptor } from '@app/http.intercepter';\nimport { HttpEvent } from '@angular/common/http';\n\n@Injectable()\nexport class LMHttpIntercepterService {\n\n private serviceRequestHttpInterceptor: UserWebRequestHttpInterceptor = null;\n private returnObservable: Observable> = new Observable>();\n\n private componentIndex = 0;\n private lmContext: LMContext;\n constructor() {}\n\n public dataStream: ReplaySubject = new ReplaySubject();\n\n public dataStream$(): Observable {\n return this.dataStream.asObservable();\n }\n\n // public dataStream$Observer: Subscriber>;\n\n public run(data: any): any {\n const thing = this.dataStream.next(data);\n this.lmContext = data as LMContext;\n }\n\n public getUserWebRequestId() {\n const actorUniquId = this.lmContext.actorUniqueId;\n return actorUniquId + '-' + this.componentIndex++;\n }\n\n public registerItercepters(userWebRequestHttpInterceptor: UserWebRequestHttpInterceptor) {\n this.serviceRequestHttpInterceptor = userWebRequestHttpInterceptor;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMBrowserUtilService } from '@utils/lm-browser-util.service';\n\nexport enum LMKeyType {\n SAVE = 'Save',\n REFRESH = 'Refresh',\n PREVIOUS = 'Previous',\n NEXT = 'Next',\n MENU = 'MenuToggle',\n DEFINE = 'Define',\n OPEN = 'Open',\n FIELDOPTION = 'FieldOption'\n}\n\n@Injectable()\nexport class LMKeyboardShortcutService {\n\n constructor(\n private lmBrowserUtilService: LMBrowserUtilService\n ) {\n // no op\n }\n\n public onKeyDown(event: any): LMKeyType | null {\n // event.metaKey is mac command key\n\n // keyCode 75 = k or K\n if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === 75) {\n if (this.lmBrowserUtilService.isEdge) {\n event.preventDefault();\n }\n return LMKeyType.MENU;\n }\n\n // keyCode 37 = LeftArrow or Left\n if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === 37) {\n return LMKeyType.PREVIOUS;\n }\n\n // keyCode 39 = RightArrow or Right\n if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === 39) {\n return LMKeyType.NEXT;\n }\n\n // keyCode 83 = s or S\n if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === 83) {\n if (this.lmBrowserUtilService.isEdge || this.lmBrowserUtilService.isSafari) {\n event.preventDefault();\n }\n return LMKeyType.SAVE;\n }\n\n // keyCode 116 = F5\n if ((this.lmBrowserUtilService.isMAC && event.keyCode === 116)\n || (event.ctrlKey && event.shiftKey && event.keyCode === 116)) {\n return LMKeyType.REFRESH;\n }\n\n // keyCode 117 = F6\n if ((this.lmBrowserUtilService.isMAC && event.keyCode === 117)\n || (event.ctrlKey && event.shiftKey && event.keyCode === 117)) {\n return LMKeyType.DEFINE;\n }\n\n // keyCode 79 = O or o\n if ((event.ctrlKey || event.metaKey) && event.altKey && (event.keyCode === 79)) {\n return LMKeyType.OPEN;\n }\n\n //keyCode 118 = F7\n if ((this.lmBrowserUtilService.isMAC && event.keyCode === 118)\n || (event.ctrlKey && event.shiftKey && event.keyCode === 118)) {\n return LMKeyType.FIELDOPTION;\n }\n\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport * as UrlTemplate from 'url-template';\n\n/**\n * Initialise the locale service BEFORE the root application component is\n * loaded. Simply add the module to the root module, and the initialiser\n * will be automatically added.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LMLocaleInitializerService {\n private _localeData: any;\n private defaultLocale = 'en-US';\n private bannerUrl: string;\n private culturesPath: string;\n\n /**\n * Constructor.\n *\n * @param locale the locale being displayed.\n * @param baseHref the base url of the web app\n */\n constructor(\n private http: HttpClient) {\n this.culturesPath = CulturesPath;\n this.bannerUrl = this.getBannerUrl(bannerSpecUrl);\n\n const delimiter = this.bannerUrl.indexOf('?') > -1 ? '&' : '?';\n this.bannerUrl += delimiter + 'requestType=localeData';\n }\n\n public getBannerUrl(url: string) {\n const urlCompiledTemplate = UrlTemplate.parse(url);\n return urlCompiledTemplate.expand({\n urlPdlOrDa: LandmarkContext.urlPdlOrDa,\n webApp: LandmarkContext.webApp\n });\n }\n\n /**\n * Initializes the locale for this web application.\n */\n async initialize(): Promise {\n this._localeData = null;\n\n Soho.Locale.culturesPath = this.culturesPath;\n\n return new Promise((resolve, reject) => {\n this.http\n .get(this.bannerUrl)\n .toPromise()\n .then((data: any) => {\n this._localeData = data;\n const locale = this.getLocale(data);\n\n Soho.Locale.set(locale)\n .done(() => {\n // transform browserMessages into format for Soho.Locale\n const messages: { [ key: string ]: { id: string, value: string } } = {};\n data.browserMessages.forEach((message: { messageId: string, messageValue: string }) => {\n messages[ message.messageId ] = {\n id: message.messageId,\n value: message.messageValue\n };\n });\n\n const output = 'Locale set successfully';\n let errorMsg = '';\n\n try {\n Soho.Locale.extendTranslations(Soho.Locale.currentLanguage.name, messages);\n } catch (e) {\n errorMsg = 'Unable to extend translations to Soho.Locale';\n console.error(errorMsg + ' ' + locale);\n console.error(e);\n }\n\n resolve(true);\n console.log([ output + ((errorMsg.length > 0) ? ' - ' + errorMsg : ''), locale ]);\n })\n .fail(() => {\n console.log([ 'Locale set failed', locale ]);\n\n if (locale !== this.defaultLocale) {\n console.log([ 'Loading default locale', this.defaultLocale ]);\n\n Soho.Locale.set(this.defaultLocale)\n .done(() => {\n resolve(true);\n console.log([ 'Default Locale set successfully', this.defaultLocale ]);\n })\n .fail(() => {\n reject(true);\n console.log([ 'Default Locale set failed', this.defaultLocale ]);\n });\n }\n });\n })\n .catch((error: any) => {\n console.error(error.message, [error.details, error.status]);\n reject(true);\n });\n });\n }\n\n private getLocale(data): string {\n let locale = null;\n\n if (this.hasIsoLocale) {\n locale = LandmarkContext.contextSessionKeys[ 'csk.IsoLocale' ];\n } else if (data && data.hasOwnProperty('locale')) {\n locale = data.locale;\n }\n\n if (!locale) {\n locale = this.defaultLocale;\n }\n\n // maintain backwards compatibility with 3.5 (csk.IsoLocale=xx_ZZ)\n locale = locale.replace('_', '-');\n return locale;\n }\n\n private get hasIsoLocale(): boolean {\n return !!(LandmarkContext &&\n LandmarkContext.contextSessionKeys &&\n LandmarkContext.contextSessionKeys[ 'csk.IsoLocale' ]\n );\n }\n}\n\nexport function LMLocaleInitializerFactory(service: LMLocaleInitializerService) {\n return (() => service.initialize());\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from './lm-context.service';\nimport * as urltemplate from 'url-template';\nimport { catchError } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class LMLoggerService {\n private indentLevel = 0;\n private isIndented = true;\n private timeCounters: any = {};\n private _instanceId = 0;\n\n private loggerTimeInfoMap = new Map();\n\n constructor(\n private http: HttpClient,\n private lmContextService: LMContextService\n ) {\n }\n\n // todo Place this code into a new service that has no other dependencies\n // other than httpClient and simple utility methods w/o other depencencies.\n // ---\n // this code exists here and in lm-url-info-builder.service.ts but it cannot\n // call this function here due to a circular reference error.\n public logToServerConsole(logText: string): void {\n const urlCompiledTemplate = urltemplate.parse(bannerSpecUrl);\n const bannerUrl = urlCompiledTemplate.expand({\n urlPdlOrDa: this.lmContextService.getContext().urlPdlOrDa,\n webApp: this.lmContextService.getContext().webApp\n });\n\n const postContent: any = { requestType: 'logToServerConsole', logText };\n this.http.post(bannerUrl, postContent).pipe(\n catchError(error => throwError(error || 'Server error'))).subscribe();\n }\n\n // outputs server logs to client; requires csk.log > 0\n private get cskLogToClient(): boolean {\n return this.lmContextService.getLogToClient();\n }\n\n /**\n * see LoggerTraceLevel in Logger.java\n * @type {number}\n * 0 = no logging; same as not having the csk\n * 1 = log(), warn()\n * 2 = time(), timeEnd(), timeEndCheck() in addition to above\n * 3 = error(), stack() in addition to above\n * 4 = trace() in addition to above\n */\n public get cskLog(): number {\n return this.lmContextService.getLog();\n }\n\n private get isSharePageAnalyticsEnabled(): boolean {\n return this.lmContextService.isSharePageAnalyticsEnabled();\n }\n\n private get isMonocleEnabled(): boolean {\n return this.lmContextService.isMonocleEnabled();\n }\n\n public get instanceId(): string {\n return (this.cskLog > 0 || this.isSharePageAnalyticsEnabled || this.isMonocleEnabled)\n ? 'id-' + this._instanceId++\n : '';\n }\n\n public error(value?: any) {\n try {\n if (console && this.cskLog > 2) {\n console.error(this.indent('ERROR: '), value);\n }\n } catch (e) {\n }\n }\n\n public log(value?: any) {\n try {\n if (console && this.cskLog > 0) {\n console.log(this.indent(' LOG: '), value);\n }\n } catch (e) {\n }\n }\n\n public serverLog(value?: any) {\n try {\n if (console && this.cskLogToClient && this.cskLog > 0) {\n console.groupCollapsed('SERVERLOG');\n this.log(value);\n console.groupEnd();\n }\n } catch (e) {\n }\n }\n\n public trace(value?: any) {\n try {\n if (console && this.cskLog > 3) {\n console.groupCollapsed('TRACE');\n // eslint-disable-next-line no-console\n console.trace(this.indent('TRACE: '), value);\n console.groupEnd();\n }\n } catch (e) {}\n }\n\n public warn(value?: any) {\n try {\n if (console && this.cskLog > 0) {\n if (console.warn) {\n console.warn(this.indent(' WARN: '), value);\n } else {\n console.log(this.indent(' WARN: '), value);\n }\n }\n } catch (e) {\n }\n }\n\n public time(loggerTimeInfo: LMLoggerTimeInfo) {\n if (!loggerTimeInfo) {\n throw 'LMLoggerService time() loggerTimeInfo is a required parameter';\n }\n\n if (console && this.cskLog > 1 || this.isSharePageAnalyticsEnabled || this.isMonocleEnabled) {\n this.loggerTimeInfoMap.set(loggerTimeInfo.id, loggerTimeInfo);\n this.setTime('s', loggerTimeInfo.id);\n this.indentLevel++;\n }\n }\n\n public timeEnd(id: string, value?: any): number {\n if (!id) {\n throw 'LMLoggerService timeEnd() id is a required parameter';\n }\n\n if (console && this.cskLog > 1 || this.isSharePageAnalyticsEnabled || this.isMonocleEnabled) {\n this.indentLevel--;\n\n if (this.indentLevel < 0) {\n this.indentLevel = 0;\n }\n\n return this.setTime('e', id, value);\n }\n }\n\n public timeEndCheck(id: string, maximum: number, value?: any) {\n if (!id) {\n throw 'LMLoggerService timeEndCheck() id is a required parameter';\n }\n\n if (maximum < 1) {\n throw 'LMLoggerService timeEndCheck() maximum must be greater than or equal to one';\n }\n\n if (console && this.cskLog > 1) {\n this.indentLevel--;\n\n if (this.indentLevel < 0) {\n this.indentLevel = 0;\n }\n\n const timeEnd = this.setTime('e', id, value);\n\n if (timeEnd >= maximum) {\n this.error([id, 'process took longer than maximum', timeEnd + ' >= ' + maximum]);\n }\n }\n }\n\n private setTime(type: string, id: string, value?: any): number {\n // provides consistent calculations regardless of browser as the\n // browser calculation is different than doing it ourselves\n if (type === 's') {\n const time = window.performance.now();\n const key = 'KEY' + id.toString();\n\n if (this.timeCounters[ key ]) {\n return;\n }\n\n this.logTime('START', id);\n this.timeCounters[ key ] = time;\n\n } else if (type === 'e') {\n const key = 'KEY' + id.toString();\n const timeCounter = this.timeCounters[ key ];\n\n if (timeCounter) {\n const time = window.performance.now();\n const diff = time - timeCounter;\n const green = '\\x1b[32m';\n const cyan = '\\x1b[36m';\n const yellow = '\\x1b[33m';\n const red = '\\x1b[31m';\n const loggerTimeInfo: LMLoggerTimeInfo = this.loggerTimeInfoMap.get(id);\n let msg: string;\n\n if (loggerTimeInfo) {\n msg = `${loggerTimeInfo.description ? loggerTimeInfo.description : loggerTimeInfo.id}`;\n\n if (loggerTimeInfo.fieldType !== undefined) {\n if (diff < 5) {\n msg = `${green} ${msg}`;\n }\n\n if (diff > 5 && diff < 10) {\n msg= `${cyan} ${msg}`;\n }\n\n if (diff >= 10 && diff < 15) {\n msg = `${yellow} ${msg}`;\n }\n\n if (diff >= 15) {\n msg = `${red} ${msg}`;\n }\n } else {\n if (diff < 10) {\n msg = `${green} ${msg}`;\n }\n\n if (diff >= 10 && diff < 100) {\n msg= `${cyan} ${msg}`;\n }\n\n if (diff >= 100 && diff < 500) {\n msg = `${yellow} ${msg}`;\n }\n\n if (diff > 500) {\n msg = `${red} ${msg}`;\n }\n }\n\n loggerTimeInfo.time = `${diff}ms`;\n } else {\n msg = id + ': ' + diff + 'ms';\n }\n\n this.logTime('', msg, value, loggerTimeInfo);\n\n delete this.timeCounters[ key ];\n return diff;\n }\n }\n }\n\n private logTime(prefix: string, value: string, timeEndValue?: any, loggerTimeInfo?: LMLoggerTimeInfo) {\n if (console && this.cskLog > 1) {\n try {\n if (prefix === 'START') {\n value = this.indent(prefix + ': ' + value);\n console.log(value, timeEndValue || '');\n }\n\n if (loggerTimeInfo) {\n console.groupCollapsed(this.indent(` END:${value}`));\n console.table(loggerTimeInfo);\n console.groupEnd();\n }\n\n } catch (e) {}\n }\n }\n\n private indent(value?: any) {\n if (this.isIndented) {\n return '\\t'.repeat(this.indentLevel) + value;\n }\n\n return value;\n }\n}\n","/**\n * Created by ppatton on 12/21/2016.\n */\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMPersonalizationPersistenceService {\n getPersonalization(key: string): object {\n const cache = lscache.get(key);\n if (!cache || typeof cache !== 'object') {\n return {}; // safety\n }\n return cache;\n }\n\n /**\n * Save to local storage.\n * @param key - any unique string value\n * @param payload - must be a json object.\n */\n persistPersonalization(key: string, payload: any): void {\n lscache.set(key, payload);\n }\n\n removePersonalization(key: string): void {\n lscache.remove(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs/internal/Observable';\n\n@Injectable()\nexport class LMRelatedReportService {\n\n constructor(private http: HttpClient) {\n }\n\n public getRelatedReports(relatedReportUrl: any): Observable {\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n return this.http.get(relatedReportUrl, { headers });\n }\n\n}\n\nexport interface RelatedReportParams {\n sourceResourceUrl: string;\n listTitle: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { LMContextService } from './lm-context.service';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LMUrlUtilService } from './utils';\n\nexport enum RoamingUIProfileResult {\n COMPLETED = 'COMPLETED',\n}\n\n@Injectable()\nexport class LMRoamingUIProfileService {\n\n constructor(\n private http: HttpClient,\n private lmUrlUtilService: LMUrlUtilService,\n private lmContextService: LMContextService\n ) {\n // no op\n }\n\n public setMenuV2Viewed(): Observable {\n const context = this.lmContextService.getContext();\n const webProfile = context.roamingUIProfile ? context.roamingUIProfile : {};\n webProfile.menuV2GuideViewed = true;\n\n return this.updateRoamingUIProfile(webProfile);\n }\n\n public setPreferredWebApp(preferredWebApp: string): Observable {\n const context = this.lmContextService.getContext();\n const webProfile = context.roamingUIProfile ? context.roamingUIProfile : {};\n\n if (webProfile.landingPageDefault && webProfile.landingPageDefault[0]) {\n webProfile.landingPageDefault[0].webApp = preferredWebApp;\n webProfile.landingPageDefault[0].myPage = '';\n } else {\n const prop: LandingPageDefault = {\n webApp: preferredWebApp,\n myPage: ''\n }\n webProfile.landingPageDefault = [prop];\n }\n\n return this.updateRoamingUIProfile(webProfile);\n }\n\n private updateRoamingUIProfile(webProfile: LMRoamingUIProfile) : Observable {\n let url = this.lmUrlUtilService.getBaseUrl();\n url += '/banner/web';\n url = this.lmUrlUtilService.propagateSessionKeys(url, '?');\n\n const newWebProfile: LMRoamingUIProfile = {};\n newWebProfile.landingPageDefault = webProfile.landingPageDefault;\n newWebProfile.menuV2GuideViewed = webProfile.menuV2GuideViewed;\n\n const data = {\n requestType : 'updateRoamingUIProfile',\n webProfile : newWebProfile\n };\n\n return this.executeRequest(url, data);\n }\n\n private executeRequest(url: string, data: any): Observable {\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n return > this.http.post(url, JSON.stringify(data), { headers }).pipe(\n catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n return throwError(error || 'Server error');\n }\n}\n\nexport interface RoamingUIProfileResponse {\n status: string;\n message?: string;\n}\n","/**\n * Created by swolyniec on 6/22/2017.\n */\n\nimport { Injectable, Component } from '@angular/core';\nimport { LMHtmlUrlDocComponent } from '@html/lm-html-url-doc.component';\n\n@Injectable()\nexport class LMRouteComponentService {\n private currentComponent: Component = null;\n private currentHtmlUrlDocComponent: LMHtmlUrlDocComponent = null;\n\n constructor() {\n }\n\n getRouteComponent(): Component {\n return this.currentComponent;\n }\n\n setRouteComponent(currentComponent: Component) {\n this.currentComponent = currentComponent;\n }\n\n getHtmlUrlDocComponent(): LMHtmlUrlDocComponent {\n return this.currentHtmlUrlDocComponent;\n }\n\n setHtmlUrlDocComponent(currentComponent: LMHtmlUrlDocComponent) {\n this.currentHtmlUrlDocComponent = currentComponent;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LMLoggerService } from './lm-logger.service';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { WidgetSize } from 'ids-enterprise-ng';\nimport { AppConstants } from '@utils/app.constants';\nimport { LMContextService } from './lm-context.service';\nimport { LMUrlInfoBuilderService } from './lm-url-info-builder.service';\nimport { LMUrlUtilService } from './utils';\n\n@Injectable()\nexport class LMSpecService {\n constructor(\n private http: HttpClient,\n private lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {}\n\n /**\n * Return the bannerSpec for the given url.\n * @returns {Observable}\n */\n public getBannerSpec(url: string): Observable {\n const specUrl = this.buildSpecUrl(url);\n return > this.http.get(specUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Return the bannerSpec for the given url.\n * @returns {Observable}\n */\n public getApplicationMenuSpec(url: string): Observable {\n const specUrl = this.buildSpecUrl(url);\n return > this.http.get(specUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Return the navigationSpec for the given url.\n * @returns {Observable}\n */\n public getActionSpec(url: string): Observable {\n const actionUrl = this.buildSpecUrl(url);\n return > this.http.get(actionUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Return the navigationSpec for the given url.\n * @returns {Observable}\n */\n public getNavigationSpec(url: string): Observable {\n const navUrl = this.buildSpecUrl(url);\n return > this.http.get(navUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Return the drillSpec for the given url.\n * @returns\n */\n public getDrillSpec(url: string): Observable {\n const specUrl = this.buildSpecUrl(url);\n return > this.http.get(specUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Returns captcha spec\n * @param url\n * @returns {Observable}\n */\n public getCaptchaSpec(url: string): Observable {\n const specUrl = this.buildSpecUrl(url);\n return > this.http.get(specUrl).pipe(catchError(error => this.handleError(error)));\n }\n\n /**\n * Return the pageUrlInfo and pageSpec for the given page url.\n * @returns\n */\n public getPageSpec(url: string): Observable {\n return new Observable(observer => {\n\n url = this.lmUrlUtilService.updateUrlParams(url, this.lmUrlUtilService.addDataContextUrlParams({ }));\n const pageUrlInfo = this.lmUrlInfoBuilderService.getPageUrlInfoFromHttpUrl(url);\n\n this.http.get(pageUrlInfo.specUrl).subscribe(\n pageSpecResponse => {\n\n if ((pageSpecResponse as LMSystemException)\n && ((pageSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (pageSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(pageSpecResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n const pageSpec = pageSpecResponse as LMPageSpec;\n if (pageSpec.serverLog) {\n this.lmLoggerService.serverLog(pageSpec.serverLog);\n }\n this.lmUrlInfoBuilderService.fillOutPageUrls(pageUrlInfo, pageSpec);\n observer.next({ pageUrlInfo, pageSpec } as LMPageSpecResponse);\n observer.complete();\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n });\n\n }\n\n /**\n * Return the listUrlInfo and listSpec for the given url.\n * @returns\n */\n public getListSpec(url: string): Observable {\n return new Observable(observer => {\n url = this.lmUrlUtilService.updateUrlParams(url, this.lmUrlUtilService.addDataContextUrlParams({ }));\n const listUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromHttpUrl(url);\n\n this.http.get(listUrlInfo.specUrl).subscribe(\n listSpecResponse => {\n\n if ((listSpecResponse as LMSystemException)\n && ((listSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (listSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(listSpecResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n const listSpec = listSpecResponse as LMListSpec;\n if (listSpec.serverLog) {\n this.lmLoggerService.serverLog(listSpec.serverLog);\n }\n this.lmUrlInfoBuilderService.fillOutListUrls(listUrlInfo, listSpec);\n observer.next({ listUrlInfo, listSpec } as LMListSpecResponse);\n observer.complete();\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n });\n }\n\n /**\n * Return the formUrlInfo and formSpec for the given url.\n * @returns\n */\n public getFormSpec(url: string): Observable {\n return new Observable(observer => {\n\n url = this.lmUrlUtilService.updateUrlParams(url, this.lmUrlUtilService.addDataContextUrlParams({ }));\n const formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromHttpUrl(url);\n\n this.http.get(formUrlInfo.specUrl).subscribe(\n formSpecResponse => {\n\n if ((formSpecResponse as LMSystemException)\n && ((formSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (formSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(formSpecResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n const formSpec = formSpecResponse as LMFormSpec;\n if (formSpec.serverLog) {\n this.lmLoggerService.serverLog(formSpec.serverLog);\n }\n this.lmUrlInfoBuilderService.fillOutFormUrls(formUrlInfo, formSpec);\n observer.next({ formUrlInfo, formSpec });\n observer.complete();\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n });\n }\n\n // private _getFormSpec(specUrl: string): Observable {\n // return this.http.get(specUrl).pipe(catchError(error => this.handleError(error)));\n // }\n\n /**\n * Gets the form execution url from a actionSpec.actionUrl. The form\n * execution url is needed to perform instance, delete, etc... actions.\n * @param actionUrl - The actionSpec url resolve against a dataView resourceId\n * @returns The redirect structure with the form transaction url\n */\n public getFormTransactionUrl(actionUrl: string): Observable {\n return this.getRedirectUrl(actionUrl);\n }\n\n public getFormSpecFromRedirectActionUrl(actionUrl: string): Observable {\n return new Observable(observer => {\n this.getRedirectUrl(actionUrl).subscribe(\n redirectResponse => {\n if (((redirectResponse as LMSystemException) as LMSystemException)\n && ((redirectResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (redirectResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(redirectResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n // todo spec-url-refactor\n const formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromHttpUrl(redirectResponse.redirectUrl);\n const resourceId = formUrlInfo.resource.dataResourceId; // used to create the initial data url\n const action = formUrlInfo.action;\n\n this.http.get(formUrlInfo.specUrl).subscribe(\n formSpecResponse => {\n\n if ((formSpecResponse as LMSystemException)\n && ((formSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (formSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(formSpecResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n const formSpec = formSpecResponse as LMFormSpec;\n this.lmUrlInfoBuilderService.fillOutFormUrls(formUrlInfo, formSpec);\n observer.next({ formUrlInfo, formSpec, resourceId, action });\n observer.complete();\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n });\n }\n\n /**\n * Used by menu definitions on page definitions.\n * @param actionUrl\n * @param url - pass in dialogUrl to get the form spec.\n * @returns\n */\n public getFormSpecFromDialogActionUrl(url: string): Observable {\n return new Observable(observer => {\n\n url = this.lmUrlUtilService.updateUrlParams(url, this.lmUrlUtilService.addDataContextUrlParams({ }));\n const formUrlInfo = this.lmUrlInfoBuilderService.getFormUrlInfoFromHttpUrl(url);\n\n this.http.get(formUrlInfo.specUrl).subscribe(\n formSpecResponse => {\n // TODO: instead of returning LMSystemException, why don't we handle the error here and now?\n // everyone that will be receiving it will do the same anyway\n if ((formSpecResponse as LMSystemException)\n && ((formSpecResponse as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (formSpecResponse as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n observer.next(formSpecResponse as LMSystemException);\n observer.complete();\n return;\n }\n\n const formSpec = formSpecResponse as LMFormSpec;\n this.lmUrlInfoBuilderService.fillOutFormUrls(formUrlInfo, formSpec);\n observer.next({ formUrlInfo, formSpec });\n observer.complete();\n },\n error => {\n this.handleError(error);\n observer.error(error);\n observer.complete();\n });\n });\n }\n\n public getRedirectUrl(url: string): Observable { // todo ppatton type the Observable response\n\n // url = this.lmUrlUtilService.updateUrlParams(url, this.lmUrlUtilService.addDataContextUrlParams({ }));\n if (!this.lmContextService.useNewSpecUrls()) {\n let urlParams: LMUrlParams = { 'csk.asofdate': this.lmContextService.getAsOfDate() };\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n urlParams = { 'csk.showdeletedrecords': this.lmContextService.getShowDeletedRecords() };\n url = this.lmUrlUtilService.updateUrlParams(url, urlParams);\n }\n\n return this.http.get(url).pipe(\n catchError(error => {\n this.lmLoggerService.error(error);\n return throwError(error || 'Server error');\n }));\n\n // todo spec-url-refactor ben pwpatton any idea why this code fails a test in lm-spec.service.spec\n // and the code above does not? See\n // return this.http.get(url).pipe(catchError(error => this.handleError(error)));\n }\n\n private handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.trace(error);\n return throwError(error || 'Server error');\n }\n\n private buildSpecUrl(url: string): string {\n let urlParams = { output: 'spec' } as LMUrlParams;\n urlParams = this.lmUrlUtilService.addDataContextUrlParams(urlParams);\n return this.lmUrlUtilService.updateUrlParams(url, urlParams);\n }\n\n // todo ppatton move me to a more generic \"util\" service.\n // consider new lm-spec-util.service.ts for generice spec utilities that don't\n // belong in form-spec-util or list-spec-util services.\n public toWidgetSizeToType(size: number): WidgetSize {\n switch (size) {\n case 4: return 'quad';\n case 3: return 'triple';\n case 2: return 'double';\n }\n return 'single';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from './lm-context.service';\nimport {\n LMFormStateKeyParams,\n LMFormStateService,\n LMListStateKeyParams,\n LMListStateService,\n LMPageStateKeyParams,\n LMPageStateService } from '@states/services';\n\nimport { FormResource } from '@resources/form.resource';\nimport { LMUrlInfoBuilderService } from './lm-url-info-builder.service';\n\n@Injectable()\nexport class LMStateHelperService {\n\n constructor(\n private lmContextService: LMContextService,\n private lmFormStateService: LMFormStateService,\n private lmPageStateService: LMPageStateService,\n private lmListStateService: LMListStateService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n ) {}\n\n public buildFormStateKeyParams(routeResourceId: string, formSpec: LMFormSpec): LMFormStateKeyParams {\n const params = new LMFormStateKeyParams();\n\n params.actorId = this.lmContextService.getActorId()\n params.asOfDate = this.lmContextService.getAsOfDate();\n params.dataArea = this.lmContextService.getUrlPdlOrDa();\n params.routeResourceId = routeResourceId;\n\n const formResource: FormResource = new FormResource({\n busClassName: formSpec.busClassSpec ? formSpec.busClassSpec.name : 'pageContextForm',\n formName: formSpec.busFormSpec.name\n });\n params.resourceId = formResource.resourceId;\n\n return params;\n }\n\n public buildPageStateKeyParams(routeResourceId: string, pageSpec: LMPageSpec, pagePanelId: string): LMPageStateKeyParams {\n const params = new LMPageStateKeyParams();\n\n params.actorId = this.lmContextService.getActorId()\n params.asOfDate = this.lmContextService.getAsOfDate();\n params.dataArea = this.lmContextService.getUrlPdlOrDa();\n params.routeResourceId = routeResourceId;\n\n params.pagePanelId = pagePanelId;\n\n return params;\n }\n\n public buildListStateKeyParams(routeResourceId: string, listUrlInfo: LMListUrlInfo, listSpec: LMListSpec): LMListStateKeyParams {\n const params = new LMListStateKeyParams();\n\n params.actorId = this.lmContextService.getActorId();\n params.asOfDate = this.lmContextService.getAsOfDate();\n params.dataArea = this.lmContextService.getUrlPdlOrDa();\n params.routeResourceId = routeResourceId;\n\n params.prefix = listSpec.busListSpec.id;\n params.resourceId = listUrlInfo.resource ? listUrlInfo.resource.resourceId : undefined;\n params.userFolder = listSpec.userFolder;\n\n if (listUrlInfo.sourceResource) {\n // ---------------------------------------------------------------------------------------\n // for navigating to a list using a rel. Need to use the sourceResourceId to keep\n // the stateKey unique.\n // ---------------------------------------------------------------------------------------\n // example:\n // - Recruiter > Today > Anne Polk > Click View All on New Candidates dashboard panel >\n // click back > select Sarah Taylor > Click View All on New Candidates dashboard panel >\n // notice you are seeing Anne Polks new cnadidates and not Sarah Taylors. This is because\n // the state.currentUrl for Ann Polks was being used due to the state key not being\n // unique enough.\n // ---------------------------------------------------------------------------------------\n params.contextResourceId = listUrlInfo.sourceResource.resourceId;\n }\n\n return params;\n }\n\n public clearFormComponentState(routeResourceId: string, formSpec: LMFormSpec, includeSubComponents: boolean) {\n this.lmFormStateService.deleteFormState(this.buildFormStateKeyParams(routeResourceId, formSpec));\n\n if (includeSubComponents) {\n this.clearFormSubComponents(routeResourceId, formSpec);\n }\n }\n\n public clearPageComponentState(routeResourceId: string, pageSpec: LMPageSpec, prefix: string, includeSubComponents: boolean): void {\n this.lmPageStateService.deletePageState(this.buildPageStateKeyParams(routeResourceId, pageSpec, prefix));\n\n if (includeSubComponents) {\n this.clearPageSubComponents(routeResourceId, pageSpec);\n }\n }\n\n public clearListComponentState(routeResourceId: string, listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, includeSubComponents: boolean): void {\n this.lmListStateService.deleteListState(this.buildListStateKeyParams(routeResourceId, listUrlInfo, listSpec));\n\n if (includeSubComponents) {\n this.clearListSubComponentsState(routeResourceId, listSpec);\n }\n }\n\n private clearFormSubComponents(routeResourceId: string, formSpec: LMFormSpec): void {\n if (!formSpec.busFormSpec.panels) {\n return;\n }\n\n formSpec.busFormSpec.panels.forEach(formPanelSpec => this.clearFormSubComponent(routeResourceId, formPanelSpec));\n }\n\n private clearFormSubComponent(routeResourceId: string, formPanelSpec: LMCompositePanelSpec) {\n switch (formPanelSpec.panelType) {\n case 'formlist':\n if (formPanelSpec) {\n const urlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(formPanelSpec.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, urlInfo, formPanelSpec.listSpec, true);\n }\n return;\n\n case 'dashboard':\n formPanelSpec.panels.forEach(dashboardPanelSpec => this.clearFormSubComponent(routeResourceId, dashboardPanelSpec));\n return;\n\n case 'multilist':\n this.clearMultiListComponentState(routeResourceId, formPanelSpec.lists);\n return;\n }\n }\n\n private clearPageSubComponents(routeResourceId: string, pageSpec: LMPageSpec): void {\n if (pageSpec.pageSpec.panels) {\n for (let i = 0; i < pageSpec.pageSpec.panels.length; i++) {\n const pagePanelSpec = pageSpec.pageSpec.panels[i];\n this.clearPagePanelComponentState(routeResourceId, pagePanelSpec);\n }\n }\n }\n\n private clearListSubComponentsState(routeResourceId: string, listSpec: LMListSpec): void {\n if (listSpec.busListSpec.detailSections) {\n this.clearBusDetailSectionState(routeResourceId, listSpec.busListSpec.detailSections);\n }\n }\n\n private clearPagePanelComponentState(routeResourceId: string, pagePanelSpec: LMPagePanelSpec): void {\n if ('Panel' === pagePanelSpec.panelType && pagePanelSpec.pane) {\n if ('ListPanel' === pagePanelSpec.pane.paneType && pagePanelSpec.pane.listSpec) {\n const urlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(pagePanelSpec.pane.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, urlInfo, pagePanelSpec.pane.listSpec, true);\n }\n return;\n }\n\n if ('MultiPanePanel' === pagePanelSpec.panelType && pagePanelSpec.panes) {\n this.clearMultiPaneComponentState(routeResourceId, pagePanelSpec.panes);\n return;\n }\n\n if ('DashBoardPanel' === pagePanelSpec.panelType && pagePanelSpec.panes) {\n this.clearPageDashboardPanelComponentState(routeResourceId, pagePanelSpec.panes);\n return;\n }\n }\n\n private clearMultiPaneComponentState(routeResourceId: string, multiPagePaneSpecList: Array): void {\n for (let i = 0; i < multiPagePaneSpecList.length; i++) {\n const multiPagePaneSpec = multiPagePaneSpecList[i];\n if (multiPagePaneSpec.pane && 'ListPanel' === multiPagePaneSpec.pane.paneType && multiPagePaneSpec.pane.listSpec) {\n const urlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(multiPagePaneSpec.pane.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, urlInfo, multiPagePaneSpec.pane.listSpec, true);\n }\n }\n }\n private clearPageDashboardPanelComponentState(routeResourceId: string, dashboardPanelSpecs: Array): void {\n dashboardPanelSpecs.forEach(dashboardPanelSpec => {\n if (dashboardPanelSpec.listSpec) {\n const urlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(dashboardPanelSpec.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, urlInfo, dashboardPanelSpec.listSpec, false);\n }\n })\n }\n\n private clearBusDetailSectionState(routeResourceId: string, detailSectionList: Array): void {\n detailSectionList.forEach(detailSection => {\n switch (detailSection.type) {\n case 'list':\n const urlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(detailSection.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, urlInfo, detailSection.listSpec, true);\n return;\n\n case 'dashboard':\n this.clearBusDetailSectionState(routeResourceId, detailSection.detailSections);\n return;\n\n case 'multilist':\n this.clearMultiListComponentState(routeResourceId, detailSection.sections);\n return;\n }\n });\n }\n\n private clearMultiListComponentState(routeResourceId: string, multiListSpecs: Array) {\n multiListSpecs.forEach(multiListSpec => {\n if (multiListSpec.type === 'list') {\n const multiListUrlInfo = this.lmUrlInfoBuilderService.getListUrlInfoFromListSpec(multiListSpec.listSpec, { comparePathAndSourceResourceOnly: true });\n this.clearListComponentState(routeResourceId, multiListUrlInfo, multiListSpec.listSpec, false)\n }\n });\n }\n}\n","/**\n * Created by ppatton on 12/21/2016.\n */\nimport { Injectable } from '@angular/core';\n\n@Injectable()\n\nexport class LMStatePersistenceService {\n getState(key: string): object {\n const cache = sscache.get(key); // return sscache.get(key) || {};\n if (!cache || typeof cache !== 'object') {\n return {}; // safety\n }\n return cache;\n }\n\n /**\n * Save to session storage.\n * @param key - any unique string value\n * @param payload - must be a json object.\n */\n persistState(key: string, payload: object): void {\n sscache.set(key, payload);\n }\n\n removeState(key: string): void {\n sscache.remove(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from './lm-context.service';\nimport { KeyedResource, Resource } from '@resources/index';\nimport { LMUrlUtilService } from './utils';\nimport * as _ from 'lodash';\nimport { BIDrillResource } from '@resources/bidrill.resource';\nimport { catchError } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport * as urltemplate from 'url-template';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConstants } from '@utils/app.constants';\n\n@Injectable()\nexport class LMUrlInfoBuilderService {\n private static ServerLogVersionId = 'LMCLIENT UI ALERT: 2022.11';\n private static PrefixString = 'SPECURL DIFF';\n\n constructor(\n private http: HttpClient,\n private lmContextService: LMContextService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {}\n\n public getPageUrlInfoFromHttpUrl(httpUrl: string): LMPageUrlInfo {\n return this.getBaseUrlInfoFromHttpUrl(httpUrl) as LMPageUrlInfo;\n }\n\n public getListUrlInfoFromHttpUrl(httpUrl: string): LMListUrlInfo {\n return this.getBaseUrlInfoFromHttpUrl(httpUrl) as LMFormUrlInfo;\n }\n\n public getListUrlInfoFromListSpec(listSpec: LMListSpec, options?: LMListUrlInfoOptions): LMListUrlInfo {\n return this.getBaseUrlInfoFromListSpec(listSpec, options) as LMListUrlInfo;\n }\n\n public getFormUrlInfoFromHttpUrl(httpUrl: string): LMFormUrlInfo {\n return this.getBaseUrlInfoFromHttpUrl(httpUrl) as LMFormUrlInfo;\n }\n\n public getFormUrlInfoFromFormSpec(formSpec: LMFormSpec, options?: LMFormUrlInfoOptions): LMFormUrlInfo {\n return this.getBaseUrlInfoFromFormSpec(formSpec, options) as LMFormUrlInfo;\n }\n\n public fillOutPageUrls(pageUrlInfo: LMPageUrlInfo, pageSpec: LMPageSpec): void {\n pageUrlInfo.contextSessionKeys = { ...pageSpec.contextSessionKeys };\n pageUrlInfo.initialDataUrl = this.lmUrlUtilService.buildPageInitialDataUrl(pageUrlInfo, pageSpec);\n }\n\n public fillOutListUrls(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec, options?: LMListUrlInfoOptions): void {\n // crucial for mingle drill back message that contain extra valid csks, especially for csk.gen.\n // todo: need to include nc. value as well. Maybe rename this to extraParams.\n listUrlInfo.contextSessionKeys = { ...listSpec.contextSessionKeys };\n\n if (!this.lmContextService.useNewSpecUrls()) {\n this.compareSpecPart(listUrlInfo, 'resourceId', listSpec.resourceId, listUrlInfo.resource.resourceId);\n\n if (listUrlInfo.sourceResource || listSpec.sourceResourceType) {\n this.compareSpecPart(listUrlInfo, 'sourceResourceType', listSpec.sourceResourceType, listUrlInfo?.sourceResource?.resourceType);\n this.compareSpecPart(listUrlInfo, 'sourceResourceId', listSpec.sourceResourceId, listUrlInfo?.sourceResource?.resourceId);\n }\n }\n\n listUrlInfo.initialDataUrl = this.lmUrlUtilService.buildListInitialDataUrl(listUrlInfo, listSpec, options);\n listUrlInfo.transactionUrl = this.lmUrlUtilService.buildListTransactionUrl(listUrlInfo, listSpec);\n listUrlInfo.viewAuditLogRedirectUrl = this.lmUrlUtilService.buildViewAuditLogRedirectUrl(listUrlInfo);\n listUrlInfo.navigationUrl = this.lmUrlUtilService.buildNavigationUrl(listUrlInfo);\n\n if (listSpec.busListSpec.implementsTreeView && !listSpec.busListSpec.implementsCubeView) {\n listUrlInfo.childrenUrl = this.lmUrlUtilService.buildHierarchyChildrenUrl(listUrlInfo);\n if (listSpec.busListSpec.implementsOrgChartView) {\n listUrlInfo.centeredUrl = this.lmUrlUtilService.buildHierarchyCenteredUrl(listUrlInfo);\n }\n }\n\n listUrlInfo.actionRedirectUrl = this.lmUrlUtilService.buildActionRedirectUrl(listUrlInfo, listSpec.isTemplateList);\n listUrlInfo.openActionRedirectUrl = this.lmUrlUtilService.buildActionRedirectUrl(listUrlInfo, listSpec.isTemplateList);\n listUrlInfo.reportPersonalizationUrl = this.lmUrlUtilService.buildReportPersonalizationUrl(listUrlInfo);\n listUrlInfo.listPersonalizationUrl = this.lmUrlUtilService.buildListPersonalizationUrl(listUrlInfo, listSpec);\n listUrlInfo.fieldSearchUrl = this.lmUrlUtilService.buildFieldSearchUrl(listUrlInfo);\n listUrlInfo.relatedReportSourceUrl = this.lmUrlUtilService.buildRelatedReportSourceUrl(listUrlInfo);\n listUrlInfo.actorGroupSelectUrl = this.lmUrlUtilService.buildActorGroupSelectUrl(listUrlInfo);\n listUrlInfo.roleSelectUrl = this.lmUrlUtilService.buildRoleSelectUrl(listUrlInfo);\n listUrlInfo.roleGroupSelectUrl = this.lmUrlUtilService.buildRoleGroupSelectUrl(listUrlInfo);\n\n // this.buildSortUrls(listUrlInfo, listSpec);\n\n // Append Cube parameters for cube drill\n if (listUrlInfo.url && listUrlInfo.url.searchParams.has('cubeDrill')) {\n if (this.lmContextService.useNewSpecUrls()) {\n listUrlInfo.cubeParams = this.getCubeParams(listUrlInfo.url);\n } else {\n listUrlInfo.cubeParams = (listSpec as any).cubeOptions.cubeParams;\n }\n }\n\n if (!this.lmContextService.useNewSpecUrls()) {\n this.compareSpecUrls(listUrlInfo, `initialDataUrl`, (listSpec as any).initialDataUrl, listUrlInfo.initialDataUrl, options);\n if (listSpec.listType !== 'filterlist') {\n this.compareSpecUrls(listUrlInfo, `transactionUrl`, (listSpec as any).transactionUrl, listUrlInfo.transactionUrl, options);\n this.compareSpecUrls(listUrlInfo, `viewAuditLogRedirectUrl`, (listSpec as any).viewAuditLogRedirectUrl, listUrlInfo.viewAuditLogRedirectUrl, options);\n this.compareSpecUrls(listUrlInfo, `navigationUrl`, (listSpec as any).navigationUrl, listUrlInfo.navigationUrl, options);\n this.compareSpecUrls(listUrlInfo, `childrenUrl`, (listSpec as any).childrenUrl, listUrlInfo.childrenUrl, options);\n this.compareSpecUrls(listUrlInfo, `centeredUrl`, (listSpec as any).centeredUrl, listUrlInfo.centeredUrl, options);\n this.compareSpecUrls(listUrlInfo, `actionRedirectUrl`, (listSpec as any).actionRedirectUrl, listUrlInfo.actionRedirectUrl, options);\n // todo openActionRedirectUrl is identical to actionRedirectUrl - remove this.\n this.compareSpecUrls(listUrlInfo, `openActionRedirectUrl`, (listSpec as any).openActionRedirectUrl, listUrlInfo.openActionRedirectUrl, options);\n this.compareSpecUrls(listUrlInfo, `reportPersonalizationUrl`, (listSpec as any).reportPersonalizationUrl, listUrlInfo.reportPersonalizationUrl, options);\n this.compareSpecUrls(listUrlInfo, `listPersonalizationUrl`, (listSpec as any).listPersonalizationUrl, listUrlInfo.listPersonalizationUrl, options);\n this.compareSpecUrls(listUrlInfo, `fieldSearchUrl`, (listSpec as any).fieldSearchUrl, listUrlInfo.fieldSearchUrl, options);\n this.compareSpecUrls(listUrlInfo, `actorGroupSelectUrl`, (listSpec as any).actorGroupSelectUrl, listUrlInfo.actorGroupSelectUrl, options);\n this.compareSpecUrls(listUrlInfo, `relatedReportSourceUrl`, (listSpec as any).relatedReportSourceUrl, listUrlInfo.relatedReportSourceUrl, options);\n }\n\n listUrlInfo.initialDataUrl = (listSpec as any).initialDataUrl;\n listUrlInfo.transactionUrl = (listSpec as any).transactionUrl;\n listUrlInfo.viewAuditLogRedirectUrl = (listSpec as any).viewAuditLogRedirectUrl;\n listUrlInfo.navigationUrl = (listSpec as any).navigationUrl;\n listUrlInfo.childrenUrl = (listSpec as any).childrenUrl;\n listUrlInfo.centeredUrl = (listSpec as any).centeredUrl;\n listUrlInfo.actionRedirectUrl = (listSpec as any).actionRedirectUrl;\n listUrlInfo.openActionRedirectUrl = (listSpec as any).openActionRedirectUrl;\n listUrlInfo.reportPersonalizationUrl = (listSpec as any).reportPersonalizationUrl;\n listUrlInfo.listPersonalizationUrl = (listSpec as any).listPersonalizationUrl;\n listUrlInfo.fieldSearchUrl = (listSpec as any).fieldSearchUrl;\n listUrlInfo.actorGroupSelectUrl = (listSpec as any).actorGroupSelectUrl;\n listUrlInfo.relatedReportSourceUrl = (listSpec as any).relatedReportSourceUrl;\n }\n }\n\n public fillOutFormUrls(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, formUrlOptions?: LMFormUrlInfoOptions): void {\n // crucial for mingle drill back message that contain extra valid csks, especially for csk.gen.\n // todo: need to include nc. value as well. Maybe rename this to extraParams.\n formUrlInfo.contextSessionKeys = { ...formSpec.contextSessionKeys };\n\n // todo spec-url-refactor not sure about how to handle buildUrls for these types.\n // should probably handle in the build url functions themselves?!?\n // type LMFormType = 'Action' | 'Chart' | 'Composite' | 'Matrix' | 'Menu' | 'NotAForm' |\n // 'PageContext' | 'Standard' | 'Search' | 'Summary' | 'Wizard';\n if (formSpec.busFormSpec.formType === 'Menu') {\n return;\n }\n\n if (!this.lmContextService.useNewSpecUrls()) {\n this.compareSpecPart(formUrlInfo, 'resourceId', (formSpec as any).resourceId, formUrlInfo.resource.resourceId);\n this.compareSpecPart(formUrlInfo, 'action', (formSpec as any).action, formUrlInfo.action);\n\n if (formUrlInfo.sourceResource || (formSpec as any).sourceResourceType) {\n this.compareSpecPart(formUrlInfo, 'sourceResourceType', (formSpec as any).sourceResourceType, formUrlInfo.sourceResource ? formUrlInfo.sourceResource.resourceType : undefined);\n this.compareSpecPart(formUrlInfo, 'sourceResourceId', (formSpec as any).sourceResourceId, formUrlInfo.sourceResource ? formUrlInfo.sourceResource.resourceId : undefined);\n }\n }\n\n const buildTransactionUrlOnly = formUrlOptions && formUrlOptions.fillOutTransactionUrlOnly;\n\n let buildInitialDataUrl = true;\n if (buildTransactionUrlOnly || (formUrlOptions && formUrlOptions.isCompoundFieldForm)) {\n buildInitialDataUrl = false;\n }\n\n if (buildInitialDataUrl) {\n formUrlInfo.initialDataUrl = this.lmUrlUtilService.buildFormInitialDataUrl(formUrlInfo, formSpec);\n }\n\n // ---------------------------------------------------------------\n // form requests only have transaction url so don't try and build\n // all the others if this urlInfo is for a formRequest\n // ---------------------------------------------------------------\n formUrlInfo.transactionUrl = this.lmUrlUtilService.buildFormTransactionUrl(formUrlInfo, formSpec);\n\n if (!buildTransactionUrlOnly) {\n formUrlInfo.matrixCellTransactionUrl = this.lmUrlUtilService.buildMatrixCellTransactionUrl(formUrlInfo, formSpec);\n formUrlInfo.matrixColumnTransactionUrl = this.lmUrlUtilService.buildMatrixColumnTransactionUrl(formUrlInfo, formSpec);\n formUrlInfo.formInvokeCreateUrl = this.lmUrlUtilService.buildFormInvokeCreateUrl(formUrlInfo);\n formUrlInfo.actionRedirectUrl = this.lmUrlUtilService.buildActionRedirectUrl(formUrlInfo);\n formUrlInfo.navigationUrl = this.lmUrlUtilService.buildNavigationUrl(formUrlInfo);\n formUrlInfo.relActionUrl = this.lmUrlUtilService.buildFormRelationActionUrl(formUrlInfo);\n formUrlInfo.formRequestUrl = this.lmUrlUtilService.buildFormRequestUrl(formUrlInfo);\n formUrlInfo.viewAuditLogRedirectUrl = this.lmUrlUtilService.buildViewAuditLogRedirectUrl(formUrlInfo);\n formUrlInfo.previewActionUrl = this.lmUrlUtilService.buildPreviewActionUrl(formUrlInfo);\n }\n\n if (!this.lmContextService.useNewSpecUrls()) {\n if (buildInitialDataUrl) {\n // ---------------------------------------------------------------\n // if not building initialDataUrl on client then don't compare\n // against one delivered from server.\n // ---------------------------------------------------------------\n this.compareSpecUrls(formUrlInfo, 'initialDataUrl', (formSpec as any).initialDataUrl, formUrlInfo.initialDataUrl, formUrlOptions);\n formUrlInfo.initialDataUrl = (formSpec as any).initialDataUrl;\n }\n\n this.compareSpecUrls(formUrlInfo, 'transactionUrl', (formSpec as any).transactionUrl, formUrlInfo.transactionUrl, formUrlOptions);\n formUrlInfo.transactionUrl = (formSpec as any).transactionUrl;\n\n if (!buildTransactionUrlOnly) {\n this.compareSpecUrls(formUrlInfo, 'matrixCellTransactionUrl', (formSpec as any).matrixCellTransactionUrl, formUrlInfo.matrixCellTransactionUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'matrixColumnTransactionUrl', (formSpec as any).matrixColumnTransactionUrl, formUrlInfo.matrixColumnTransactionUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'formInvokeCreateUrl', (formSpec as any).formInvokeCreateUrl, formUrlInfo.formInvokeCreateUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'actionRedirectUrl', (formSpec as any).actionRedirectUrl, formUrlInfo.actionRedirectUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'navigationUrl', (formSpec as any).navigationUrl, formUrlInfo.navigationUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'relActionUrl', (formSpec as any).relActionUrl, formUrlInfo.relActionUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'formRequestUrl', (formSpec as any).formRequestUrl, formUrlInfo.formRequestUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'viewAuditLogRedirectUrl', (formSpec as any).viewAuditLogRedirectUrl, formUrlInfo.viewAuditLogRedirectUrl, formUrlOptions);\n this.compareSpecUrls(formUrlInfo, 'previewActionUrl', (formSpec as any).previewActionUrl, formUrlInfo.previewActionUrl, formUrlOptions);\n\n formUrlInfo.matrixCellTransactionUrl = (formSpec as any).matrixCellTransactionUrl;\n formUrlInfo.matrixColumnTransactionUrl = (formSpec as any).matrixColumnTransactionUrl;\n formUrlInfo.formInvokeCreateUrl = (formSpec as any).formInvokeCreateUrl;\n formUrlInfo.actionRedirectUrl = (formSpec as any).actionRedirectUrl;\n formUrlInfo.navigationUrl = (formSpec as any).navigationUrl;\n formUrlInfo.relActionUrl = (formSpec as any).relActionUrl;\n formUrlInfo.formRequestUrl = (formSpec as any).formRequestUrl;\n formUrlInfo.viewAuditLogRedirectUrl = (formSpec as any).viewAuditLogRedirectUrl;\n formUrlInfo.previewActionUrl = (formSpec as any).previewActionUrl;\n }\n\n formUrlInfo.navigationContext = (formSpec as any).navigationContext;\n formUrlInfo.fromInbox = (formSpec as any).fromInbox;\n formUrlInfo.processFlow = (formSpec as any).processFlow;\n }\n }\n\n public getBaseUrlInfoFromHttpUrl(httpUrl: string, urlInfoOptions?: LMUrlInfoOptions): LMBaseUrlInfo {\n\n if (!window.location.origin) {\n // -----------------------------------------------------------------------------\n // Remove this once we stop supporting IE11\n // -----------------------------------------------------------------------------\n (window.location as any).origin = window.location.protocol + '//'\n + window.location.hostname\n + (window.location.port ? ':' + window.location.port : '');\n }\n\n const url: URL = this.lmUrlUtilService.buildURLFromHref(httpUrl);\n const basePath = this.buildBasePathFromURL(url);\n // not sure why we would ever use buildBasePathFromLocation. The url passed in\n // is the correct one to get teh basePath from.\n const isGenUrl: boolean = this.lmUrlUtilService.isGenUrlUsingURL(url);\n // const basePath = isGenUrl ? this.buildBasePathFromURL(url) : this.buildBasePathFromLocation();\n const resource = this.getResource(url.pathname, isGenUrl);\n const sourceResource = this.getSourceResource(url.searchParams);\n\n let fromListResource: KeyedResource;\n if (sourceResource) {\n fromListResource = this.getResourceFromParams(url.searchParams, 'fromlist');\n }\n\n const listResource = this.getResourceFromParams(url.searchParams, 'list');\n const action = url.searchParams.get('action') || undefined;\n\n const navigationContext = this.getNavigationContextFromParams(url);\n const fromInbox = url.searchParams.get('fromInbox') === 'true';\n const processFlow = url.searchParams.get('processFlow') === 'true';\n\n let specUrl: string;\n if (this.lmContextService.useNewSpecUrls()) {\n specUrl = this.getSpecUrl(url, basePath, resource, action, urlInfoOptions);\n } else {\n specUrl = url.href.split('#')[0];\n specUrl = this.lmUrlUtilService.updateUrlParams(specUrl, { output: 'spec' });\n }\n\n const urlInfo: LMBaseUrlInfo = {\n url,\n basePath,\n specUrl,\n resource,\n sourceResource,\n listResource,\n fromListResource,\n action,\n navigationContext,\n fromInbox,\n processFlow,\n };\n return urlInfo;\n }\n\n private getBaseUrlInfoFromListSpec(listSpec: LMListSpec, options?: LMListUrlInfoOptions): LMBaseUrlInfo {\n const basePath = this.buildBasePathFromLocation();\n const resource = new KeyedResource({ resourceType: 'list', resourceId: listSpec.resourceId });\n\n let sourceResource;\n if (options?.pagePaneSpec?.relationResourceId) {\n sourceResource = new KeyedResource({ resourceType: 'relation', resourceId: options.pagePaneSpec.relationResourceId });\n } else if (listSpec.sourceResourceType && listSpec.sourceResourceId) {\n sourceResource = new KeyedResource({ resourceType: listSpec.sourceResourceType, resourceId: listSpec.sourceResourceId });\n }\n\n const urlInfo: LMBaseUrlInfo = { basePath, resource, sourceResource };\n this.fillOutListUrls(urlInfo, listSpec, options);\n return urlInfo;\n }\n\n private getBaseUrlInfoFromFormSpec(formSpec: LMFormSpec, options?: LMFormUrlInfoOptions): LMBaseUrlInfo {\n const basePath = this.buildBasePathFromLocation();\n const resource = new KeyedResource({ resourceType: 'form', resourceId: formSpec.resourceId });\n\n // const action = options ? && options.formPanelActionIs ? '{actionName}' : undefined;\n let action;\n if (options) {\n if (options.formPanelActionIs) {\n action = '{actionName}';\n } else if (options.fillOutTransactionUrlOnly) {\n action = formSpec.action; // todo spec-url-refactor may need to undeprecate this just for the form-request.service scenario\n }\n }\n\n let sourceResource;\n if (formSpec.sourceResourceType && formSpec.sourceResourceType) {\n sourceResource = new KeyedResource({ resourceType: formSpec.sourceResourceType, resourceId: formSpec.sourceResourceId });\n }\n\n const urlInfo: LMBaseUrlInfo = { basePath, resource, sourceResource, action };\n if (options && options.skipFilloutUrls) {\n return urlInfo;\n }\n\n if (formSpec.isImplicit) {\n // --------------------------------------------------------------------------------\n // isImplicit is used for formSpecs that are built on the fly on the client side.\n // the do not contain urls so don't fill out urls here.\n // --------------------------------------------------------------------------------\n return urlInfo;\n }\n\n this.fillOutFormUrls(urlInfo, formSpec, options);\n return urlInfo;\n }\n\n private getSpecUrl(url: URL, basePath: string, resource: KeyedResource, action: string, urlInfoOptions?: LMUrlInfoOptions): string {\n // -----------------------------------------------------------------------\n // build the resource object to use in removing the keys section.\n // -----------------------------------------------------------------------\n const specResourceId = resource.busClassName + (resource.uiResourceName ? '.' + resource.uiResourceName : '');\n\n // -----------------------------------------------------------------------\n // now we can build our spec url path.\n // -----------------------------------------------------------------------\n let specUrl = basePath + '/' + resource.resourceType + '/' + specResourceId;\n const urlParams: LMUrlParams = { output: 'spec', action };\n\n if (urlInfoOptions && urlInfoOptions.includeNavResourceIsSpecUrl) {\n if (this.getSourceResourceType(url.searchParams) === AppConstants.RESOURCETYPE_NAVIGATION) {\n urlParams[AppConstants.RESOURCETYPE_NAVIGATION] = url.searchParams.get(AppConstants.RESOURCETYPE_NAVIGATION);\n }\n }\n\n // ----------------------------------------------------------------------------------------------\n // User folder will return a different spec so include it in the spec url.\n // ----------------------------------------------------------------------------------------------\n if (url && url.searchParams.has('userfolder')) {\n urlParams.userfolder = url.searchParams.get('userfolder') || undefined;\n }\n\n // ----------------------------------------------------------------------------------------------\n // Not really used on server, just here so that the spec url in unique by financeEnterpriseGroup\n // for the purpose of url/response caching of jsonSpecs for both Conditional GETs and \"edge caching\".\n // EXPLANATION: For FEGs the server will return different CodeBlock specs.\n // ----------------------------------------------------------------------------------------------\n urlParams._feg = this.lmContextService.getContext().financeEnterpriseGroup;\n\n // ----------------------------------------------------------------------------------------------\n // must include any csks that will return different specs, for now adding all csks from\n // global context so we don't break anything.\n // todo look to include only those csks that coudl return a different spec.\n // ----------------------------------------------------------------------------------------------\n const globalContextCsks = this.lmContextService.getContext().contextSessionKeys;\n Object.keys(globalContextCsks).forEach(key => urlParams[key] = globalContextCsks[key]);\n\n // ------------------------------------------------------------------------------\n // for mingle drillback and custom code urls have to propogate their urls csks\n // so we don't break backward compatibility.\n //\n // todo: The goal is to disallow csks from drillback and custom code urls but\n // we cannot at the moment due to the risk of breaking customers.\n // ------------------------------------------------------------------------------\n const urlCsks: Params = this.lmUrlUtilService.getPrefixedParams(url.href, 'csk.');\n Object.keys(urlCsks).map(key => urlParams[key] = urlCsks[key]);\n\n specUrl = this.lmUrlUtilService.updateUrlParams(specUrl, urlParams);\n return specUrl;\n }\n\n private getResource(path: string, isGenUrl: boolean): KeyedResource {\n const resourceType = this.lmUrlUtilService.getUrlPathValue(path, AppConstants.URLSEG_RESOURCE_TYPE_INDEX, isGenUrl);\n const resourceId = this.lmUrlUtilService.getUrlPathValue(path, AppConstants.URLSEG_RESOURCE_ID_INDEX, isGenUrl);\n const resource: KeyedResource = new KeyedResource({ resourceType, resourceId });\n return resource;\n }\n\n /**\n * Get an object of the source resourceType and id strings by searching in the url params.\n * @param an object of resourceType and resourceId\n */\n private getSourceResource(urlParams: URLSearchParams): Resource {\n const resourceType = this.getSourceResourceType(urlParams);\n if (resourceType === null) {\n return null;\n }\n\n const resourceId = urlParams.get(resourceType);\n if (resourceType === 'bidrill') {\n return new BIDrillResource( { resourceId });\n }\n return new KeyedResource({ resourceType, resourceId });\n }\n\n private getResourceFromParams(urlParams: URLSearchParams, resourceType: string): KeyedResource {\n const resourceId = urlParams.get(resourceType);\n if (!resourceId) {\n return null;\n }\n\n return new KeyedResource({ resourceType, resourceId });\n }\n\n /**\n * Get the source resource type by looking specifically for navigation, drill, and\n * relation in the url params keys.\n * @param urlParams\n */\n private getSourceResourceType(urlParams: URLSearchParams): string {\n if (urlParams.has(AppConstants.RESOURCETYPE_BIDRILL)) {\n return AppConstants.RESOURCETYPE_BIDRILL;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_DRILL)) {\n return AppConstants.RESOURCETYPE_DRILL;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_FORMINVOKE)) {\n return AppConstants.RESOURCETYPE_FORMINVOKE;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_LIST)) {\n return AppConstants.RESOURCETYPE_LIST;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_MENU)) {\n return AppConstants.RESOURCETYPE_MENU;\n\n }\n if (urlParams.has(AppConstants.RESOURCETYPE_NAVIGATION)) {\n return AppConstants.RESOURCETYPE_NAVIGATION;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_RELATION)) {\n return AppConstants.RESOURCETYPE_RELATION;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_SELECT)) {\n return AppConstants.RESOURCETYPE_SELECT;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_PAGEMENU)) {\n return AppConstants.RESOURCETYPE_PAGEMENU;\n }\n\n if (urlParams.has(AppConstants.RESOURCETYPE_PAGEPANEL)) {\n return AppConstants.RESOURCETYPE_PAGEPANEL;\n }\n\n return null;\n }\n\n private buildBasePathFromURL(url: URL): string {\n const isGenUrl: boolean = this.lmUrlUtilService.isGenUrlUsingURL(url);\n const webApp = this.lmUrlUtilService.getUrlPathValue(url.pathname, AppConstants.URLSEG_WEBAPP_INDEX, isGenUrl);\n if (isGenUrl || this.lmContextService.isGenProductLine()) {\n return '/' + webApp;\n }\n\n const dataArea = this.lmUrlUtilService.getUrlPathValue(url.pathname, AppConstants.URLSEG_PDL_OR_DA_INDEX, isGenUrl);\n return '/' + dataArea + '/' + webApp;\n }\n\n private buildBasePathFromLocation(): string {\n // need to get base path from location since the global context isn't always changed when running\n // a url. For example when searching for something in the app menu and clicking a menu item from\n // another web app.\n const isGenUrl: boolean = this.lmUrlUtilService.isGenUrlUsingWindowLocation();\n\n const webApp = this.lmUrlUtilService.getUrlPathValue(window.location.pathname, AppConstants.URLSEG_WEBAPP_INDEX, isGenUrl);\n if (isGenUrl || this.lmContextService.isGenProductLine()) {\n return '/' + webApp;\n }\n\n const dataArea = this.lmUrlUtilService.getUrlPathValue(window.location.pathname, AppConstants.URLSEG_PDL_OR_DA_INDEX, isGenUrl);\n return '/' + dataArea + '/' + webApp;\n }\n\n private getNavigationContextFromParams(url: URL): LMNavContextKeys {\n const navigationContext: LMNavContextKeys = {};\n url.searchParams.forEach((value, key) => {\n if (!key.startsWith('nc.')) {\n return;\n }\n navigationContext[key] = value;\n });\n\n return navigationContext;\n }\n\n private getCubeParams(url: URL): LMCubeUrlParams {\n const cubeParams: LMCubeUrlParams = {};\n cubeParams.cubeDrill = true;\n cubeParams.isFactRowElement = url.searchParams.get('isFactRowElement') === 'true';\n cubeParams.cubeMediator = url.searchParams.get('cubeMediator');\n cubeParams.cubeNm = url.searchParams.get('cubeNm');\n cubeParams.cubeFld = url.searchParams.get('cubeFld');\n\n if (url.searchParams.has('addtlFilter')) {\n cubeParams.addtlFilter = url.searchParams.get('addtlFilter');\n }\n if (url.searchParams.has('reportingBasis')) {\n cubeParams.reportingBasis = url.searchParams.get('reportingBasis');\n }\n if (url.searchParams.has('periodKey')) {\n cubeParams.periodKey = url.searchParams.get('periodKey');\n }\n if (url.searchParams.has('periodView')) {\n cubeParams.periodView = url.searchParams.get('periodView');\n }\n if (url.searchParams.has('pvPeriodIdx')) {\n cubeParams.pvPeriodIdx = parseInt(url.searchParams.get('pvPeriodIdx'), 10);\n }\n\n for (let i = 0; ; i++) {\n const dimId = url.searchParams.get('topDimId_' + i) || undefined;\n if (dimId === undefined) {\n break;\n }\n const dimVal = url.searchParams.get('topDimVal_' + i);\n if (i === 0) {\n cubeParams.topNodeDims = [];\n }\n cubeParams.topNodeDims.push({ topDimId: dimId, topDimVal: dimVal });\n }\n\n for (let i = 0; ; i++) {\n const topcFldId = url.searchParams.get('topcFldId_' + i) || undefined;\n if (topcFldId === undefined) {\n break;\n }\n const topcFldVal = url.searchParams.get('topcFldVal_' + i);\n if (i === 0) {\n cubeParams.topContextFields = [];\n }\n cubeParams.topContextFields.push({ topcFldId, topcFldVal });\n }\n\n for (let i = 0; ; i++) {\n const dimId = url.searchParams.get('dimId_' + i) || undefined;\n if (dimId === undefined) {\n break;\n }\n const dimVal = url.searchParams.get('dimVal_' + i);\n const dimFixed = url.searchParams.get('dimFixed_' + i);\n const dimTotal = url.searchParams.get('dimTotal_' + i);\n const dimType = url.searchParams.get('dimType_' + i);\n if (i === 0) {\n cubeParams.dimensions = [];\n }\n cubeParams.dimensions.push({ dimId, dimVal, dimFixed, dimTotal, dimType });\n }\n\n for (let i = 0; ; i++) {\n const dimId = url.searchParams.get('ctxDimId_' + i) || undefined;\n if (dimId === undefined) {\n break;\n }\n const dimVal = url.searchParams.get('ctxDimVal_' + i);\n const dimFixed = url.searchParams.get('ctxDimFixed_' + i);\n const dimTotal = url.searchParams.get('ctxDimTotal_' + i);\n const dimType = url.searchParams.get('ctxDimType_' + i);\n if (i === 0) {\n cubeParams.ctxDimensions = [];\n }\n cubeParams.ctxDimensions.push({ ctxDimId: dimId, ctxDimVal: dimVal, ctxDimFixed: dimFixed, ctxDimTotal: dimTotal, ctxDimType: dimType });\n }\n\n for (let i = 0; ; i++) {\n const dimId = url.searchParams.get('fltrDimId_' + i) || undefined;\n if (dimId === undefined) {\n break;\n }\n const dimVal = url.searchParams.get('fltrDimVal_' + i);\n const dimFixed = url.searchParams.get('fltrDimFixed_' + i);\n const dimTotal = url.searchParams.get('fltrDimTotal_' + i);\n const dimType = url.searchParams.get('fltrDimType_' + i);\n if (i === 0) {\n cubeParams.fltrDimensions = [];\n }\n cubeParams.fltrDimensions.push({ fltrDimId: dimId, fltrDimVal: dimVal, fltrDimFixed: dimFixed, fltrDimTotal: dimTotal, fltrDimType: dimType });\n }\n\n return cubeParams;\n }\n\n public compareSpecUrls(baseUrlInfo: LMBaseUrlInfo, name: string, serverHref: string, clientHref: string, compareOptions?: LMCompareUrlOptions) {\n try {\n if (!serverHref && !clientHref) {\n return; // no op if they are both empty.\n }\n\n const clientUrl = this.lmUrlUtilService.buildURLFromHref(clientHref);\n const serverUrl = this.lmUrlUtilService.buildURLFromHref(serverHref);\n\n const diffs: string[][] = [];\n if (serverUrl && clientUrl) {\n this.comparePathname(diffs, clientUrl.pathname, serverUrl.pathname);\n this.compareUrlParams(diffs, baseUrlInfo, clientUrl, serverUrl, compareOptions);\n } else {\n diffs.push([\n `clientUrl: ${clientHref}`,\n `serverUrl: ${serverHref}`\n ]);\n }\n\n if (diffs.length > 0) {\n this.processCompareDiffs(name, diffs, baseUrlInfo, clientUrl, serverUrl);\n }\n\n } catch (error) {\n const errorStringArrray = [\n `${LMUrlInfoBuilderService.ServerLogVersionId}: ${LMUrlInfoBuilderService.PrefixString}: Exception in compareSpecUrls: ${name} - ${error.stack}}`,\n `browserHref: ${window.location.href}`,\n `clientUrl ${clientHref}`,\n `serverUrl ${serverHref}`,\n `urlInfo: ${JSON.stringify(this.baseUrlData(baseUrlInfo))}`\n ];\n\n console.error(errorStringArrray.join('\\n'));\n this.logToServerConsole(errorStringArrray.join(', '));\n }\n }\n\n private paramsAreEqual(paramName: string, clientParams: string[], serverParams: string[]) {\n if (clientParams.length !== serverParams.length) {\n return false;\n }\n\n let sortedClientParams: string[] = clientParams.sort();\n const sortedServerParams: string[] = serverParams.sort();\n\n if (paramName === 'fld') {\n sortedClientParams = sortedClientParams.map((clientParam: string, index: number) => {\n const serverParam = sortedServerParams[index];\n\n if (clientParam === serverParam\n || clientParam.indexOf('_col_') < 0) {\n return clientParam;\n }\n\n const newClientParam = clientParam.replace('_col_', '_prd_');\n if (newClientParam === serverParam) {\n return newClientParam;\n }\n\n return clientParam;\n });\n }\n\n return _.isEqual(sortedClientParams, sortedServerParams);\n }\n\n private compareSpecPart(baseUrlInfo: LMBaseUrlInfo, partName: string, serverThing: string, clientThing: string): boolean {\n if (!serverThing && !serverThing) {\n return true; // so undefined and null will equate\n }\n\n let result;\n if (serverThing && clientThing) {\n result = serverThing.toLowerCase() === clientThing.toLowerCase();\n } else {\n result = serverThing === clientThing;\n }\n\n if (result) {\n return true;\n }\n\n const errorStringArray: string[] = [\n `${LMUrlInfoBuilderService.ServerLogVersionId}: ${LMUrlInfoBuilderService.PrefixString}: Found differences in Spec vs UrlInfo: ${partName}`,\n `browserHref: ${window.location.href}`,\n `server ${partName}: ${serverThing}`,\n `client ${partName}: ${clientThing}`,\n `urlInfo: ${JSON.stringify(this.baseUrlData(baseUrlInfo))}`\n ];\n\n console.error(errorStringArray.join('\\n'));\n this.logToServerConsole(errorStringArray.join(', '));\n return false;\n }\n\n // private buildSortUrls(listUrlInfo: LMListUrlInfo, listSpec: LMListSpec) {\n // if (!listSpec.busListSpec.displayFields || listSpec.busListSpec.displayFields.length === 0) {\n // return;\n // }\n //\n // listSpec.busListSpec.displayFields.forEach(displayField => {\n // if (displayField.cardViewSortOrders && displayField.cardViewSortOrders.length > 0) {\n // displayField.cardViewSortOrders.forEach(cardViewSortOrder => {\n // const sortUrl = this.lmUrlUtilService.buildSortUrl(listUrlInfo, listSpec, cardViewSortOrder.sortOrderName, cardViewSortOrder.isAscending);\n //\n // if (this.lmContextService.useNewSpecUrls()) {\n // cardViewSortOrder.sortUrl = sortUrl;\n // } else if (this.lmContextService.compareSpecUrls()) {\n // this.compareSpecUrls(displayField.fieldId + '.cardViewSortOrder', cardViewSortOrder.sortUrl, sortUrl);\n // }\n // });\n //\n // } else if (displayField.sortOrderName) {\n // const sortUrl = this.lmUrlUtilService.buildSortUrl(listUrlInfo, listSpec, displayField.sortOrderName, displayField.isAscending);\n //\n // if (this.lmContextService.useNewSpecUrls()) {\n // displayField.sortUrl = sortUrl;\n // } else if (this.lmContextService.compareSpecUrls()) {\n // this.compareSpecUrls(displayField.fieldId + '.sortUrl', displayField.sortUrl, sortUrl);\n // }\n // }\n // });\n // }\n\n private logToServerConsole(logObject: string): void {\n const urlCompiledTemplate = urltemplate.parse(bannerSpecUrl);\n const bannerUrl = urlCompiledTemplate.expand({\n urlPdlOrDa: this.lmContextService.getContext().urlPdlOrDa,\n webApp: this.lmContextService.getContext().webApp\n });\n\n const postContent: any = { requestType: 'logToServerConsole', log: logObject };\n this.http.post(bannerUrl, postContent).pipe(\n catchError(error => throwError(error || 'Server error'))).subscribe();\n }\n\n private baseUrlData(fullUrlInfo: LMBaseUrlInfo): any {\n const baseUrlData = {\n basePath: fullUrlInfo.basePath,\n // url: fullUrlInfo.url,\n resource: fullUrlInfo.resource ? fullUrlInfo.resource.resourceId : '',\n sourceResource: fullUrlInfo.sourceResource ? fullUrlInfo.sourceResource.resourceId : '',\n listResource: fullUrlInfo.listResource ? fullUrlInfo.listResource.resourceId : '',\n fromListResource: fullUrlInfo.fromListResource ? fullUrlInfo.fromListResource.resourceId : '',\n action: fullUrlInfo.action,\n navigationContext: fullUrlInfo.navigationContext,\n fromInbox: fullUrlInfo.fromInbox,\n processFlow: fullUrlInfo.processFlow,\n };\n\n return baseUrlData;\n }\n\n private formatDiffs(diffs: string[][]): string {\n try {\n const diffString: string[] = diffs.map(diff => `[\"${diff[0]}\",\"${diff[1]}\"]`);\n return diffString.join(',');\n } catch (e) {\n return 'failed formatting diff';\n }\n }\n\n private comparePathname(\n diffs: string[][],\n clientPathname: string,\n serverPathname: string\n ) {\n if (clientPathname !== serverPathname) {\n diffs.push([\n `clientUrl pathname: ${clientPathname}`,\n `serverUrl pathname: ${serverPathname}`,\n ]);\n }\n }\n\n private static paramsToIgnore = [\n // 'csk.ng',\n // 'csk.cli',\n // 'csk.showusingxi',\n // 'csk.ng3x',\n // 'csk.displayType',\n // 'csk.IsoLocale',\n // 'csk.JobBoard',\n // 'csk.HROrganization',\n ];\n\n private compareUrlParams(\n diffs: string[][],\n baseUrlInfo: LMBaseUrlInfo,\n clientUrl: URL,\n serverUrl: URL,\n compareOptions: LMCompareUrlOptions\n ): void {\n const clientUrlParamKeys: string[] = [];\n const serverUrlParamKeys: string[] = [];\n\n if (compareOptions && compareOptions.comparePathAndSourceResourceOnly) {\n if (baseUrlInfo.sourceResource) {\n clientUrlParamKeys.push(baseUrlInfo.sourceResource.resourceType);\n }\n } else {\n clientUrl.searchParams.forEach((value, key) => {\n if (LMUrlInfoBuilderService.paramsToIgnore.find(pti => pti === key)) {\n return;\n }\n\n clientUrlParamKeys.push(key);\n });\n\n serverUrl.searchParams.forEach((value, key) => {\n if (LMUrlInfoBuilderService.paramsToIgnore.find(pti => pti === key)) {\n return;\n }\n\n serverUrlParamKeys.push(key);\n });\n }\n\n const allUrlParamKeys = new Set([ ... clientUrlParamKeys, ... serverUrlParamKeys ]);\n allUrlParamKeys.forEach(key => {\n const clientParams: string[] = clientUrl.searchParams.getAll(key);\n const serverParams: string[] = serverUrl.searchParams.getAll(key);\n if (!this.paramsAreEqual(key, clientParams, serverParams)) {\n diffs.push([\n `clientUrlParam: ${key}=${clientParams}`,\n `serverUrlParam: ${key}=${serverParams}`\n ]);\n }\n });\n }\n\n private processCompareDiffs(name: string, diffs: string[][], baseUrlInfo: LMBaseUrlInfo, clientUrl: URL, serverUrl: URL): void {\n if (diffs.length === 0) {\n return;\n }\n\n const errorStringArray: string[] = [\n `${LMUrlInfoBuilderService.ServerLogVersionId}: ${LMUrlInfoBuilderService.PrefixString}: Found differences in url: ${name}`,\n `diffs: ${JSON.stringify(diffs)}`,\n `browserHref: ${window.location.href}`,\n `clientUrl: ${clientUrl}`,\n `serverUrl: ${serverUrl}`,\n `urlInfo: ${JSON.stringify(this.baseUrlData(baseUrlInfo))}`\n ];\n\n console.error(errorStringArray.join('\\n'));\n this.logToServerConsole(errorStringArray.join(', '));\n }\n\n public processDrillbackAndCustomCodeUrl(url: string, name: string): string {\n // if it's a drill back url the logical id is already set in the mingle plugin.\n url = this.lmUrlUtilService.removeParams(url, [ 'csk.LogicalId' ]);\n\n this.logUnexpectedUrlParams(url, name);\n url = this.removeBadDrillbackParams(url);\n return url;\n }\n\n /**\n * These params are not allowed to change the mingle plugin context.\n * These params are also not allowed to change the standard client context\n * when using the the custom code callback.\n */\n private static badDrillBackParams = [\n 'csk.ng3x',\n 'csk.ng',\n 'csk.cli',\n 'csk.3x',\n 'csk.developer',\n 'csk.showusingxi',\n 'csk.hidetitlebar',\n 'csk.hidemenubar',\n 'csk.displayType',\n ];\n // 'csk.IsoLocale',\n // 'csk.inforThemeName',\n // 'csk.disableuiconfigs',\n\n // todo talk with Laura Henkey about their needs for csk.IsoLocale.\n // todo: Laura Kenkey suggest talking with Lynn Rivard and Barbie Sokol\n // about how mingle drillbacks might be using these.\n // 'csk.JobBoard',\n // 'csk.HROrganization',\n\n private static validDrillBackParams = [\n 'csk.gen',\n ];\n\n /**\n * This method removes \"bad\" or unsupported mingle and custom code\n * drill back params.\n */\n private removeBadDrillbackParams(url: string): string {\n // --------------------------------------------------------------------------------\n // removing bad params from the drillback url will stop compareSpec from\n // failing when comparing client-build-urls and server-built-urls.\n // it will also stop the csks from getting into the extra spec.contextSessionKeys\n // object, built on the server, and make sure they don't get used in any url.\n // --------------------------------------------------------------------------------\n // todo holding off removed params from mingle drillbacks until we know\n // that no customer is relying on them.\n // return this.lmUrlUtilService.removeParams(url, LMUrlInfoBuilderService.badDrillBackParams);\n return url;\n }\n\n private logUnexpectedUrlParams(url: string, type: string): void {\n try {\n const cskParamsNotInContext = this.lmUrlUtilService.getCskParamsNotInContext(url, LMUrlInfoBuilderService.validDrillBackParams);\n if (_.isEmpty(cskParamsNotInContext)) {\n return;\n }\n\n const entries: string[] = [\n `${LMUrlInfoBuilderService.ServerLogVersionId}: ${type} URL ERROR: Found csks not in global ui context`,\n `csks-not-in-context: ${JSON.stringify(cskParamsNotInContext)}`,\n `${type}-url: ${url}`,\n ];\n\n console.error(entries.join('\\n'));\n this.logToServerConsole(entries.join(', '));\n\n } catch (error) {\n const errorString = `${LMUrlInfoBuilderService.ServerLogVersionId}: ${type} URL ERROR: Exception in logUnexpectedUrlParams: ${error.stack}}`;\n const entries: string[] = [ errorString ];\n console.error(errorString);\n this.logToServerConsole(errorString);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\n\nimport { LMLoggerService } from './lm-logger.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\n\n@Injectable()\nexport class LMAccessibleWebAppService {\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {}\n\n public getAccessibleApps(): Observable {\n const url = this.lmUrlUtilService.getAccessibleWebAppsUrl();\n const userTimeZone = this.lmUrlUtilService.getHeaderForUserTimeZone();\n\n return this.http.get(url, userTimeZone).pipe(\n map((response: any) => response as LMWebAppSpec[]),\n catchError(error => this.handleError(error))\n );\n }\n\n public getAccessDenied(): Observable {\n const url = this.lmUrlUtilService.getAccessDeniedUrl();\n\n return this.http.get(url).pipe(\n catchError(error => this.handleError(error))\n );\n }\n\n private handleError(error: Response) {\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport class HttpParamEncoderService implements HttpParameterCodec {\n\n encodeKey(key: string): string {\n return this.customEncoding(key);\n }\n\n encodeValue(value: string): string {\n return this.customEncoding(value);\n }\n\n decodeKey(key: string): string {\n return decodeURIComponent(key);\n }\n\n decodeValue(value: string): string {\n return decodeURIComponent(value);\n }\n\n private customEncoding(value: string): string {\n return encodeURIComponent(value)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/gi, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%3D/gi, '=')\n .replace(/%3F/gi, '?')\n .replace(/%2F/gi, '/');\n }\n}\n","export * from './lm-error-util.service';\nexport * from './lm-field-util.service';\nexport * from './lm-format-util.service';\nexport * from './lm-modal.service';\nexport * from './lm-url-util.service';\n","import { Injectable, SecurityContext, ViewContainerRef } from '@angular/core';\nimport { SohoMessageService, SohoModalDialogRef, SohoModalDialogService } from 'ids-enterprise-ng';\nimport { AppConstants, LMDialogButtonKey } from '@utils/index';\nimport { LMUniqueIdService } from '@utils/lm-unique-id.service';\nimport { LMViewExceptionDetailsComponent } from '@error/lm-view-exception-details.component';\nimport { AccessDeniedErrorComponent } from '@error/lm-access-denied-error.component';\nimport { Subject } from 'rxjs';\nimport { LMContextService } from '../lm-context.service';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Injectable()\nexport class LMErrorUtilService {\n\n public accessDeniedError$: Subject;\n private dialog: SohoModalDialogRef;\n private buttons: Array;\n\n constructor(\n private sohoMessageService: SohoMessageService,\n private sohoModalDialogService: SohoModalDialogService,\n private lmUniqueIdService: LMUniqueIdService,\n private lmContextService: LMContextService,\n private domSanitizer: DomSanitizer\n ) {\n this.accessDeniedError$ = new Subject();\n }\n\n public handleError(message: string, details?: string, status?: string, statusText?: string): void {\n const error: LMError = { message, status, details, title: statusText };\n\n if (status && status === AppConstants.VIEW_EXCEPTION) {\n this.handleViewException(error);\n } else {\n this.handleUnexpectedError(error);\n }\n }\n\n public handleViewException(error: LMError, placeholder?: ViewContainerRef): void {\n const dialogId = 'Error';\n this.buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n }\n },\n ];\n error.message = this.domSanitizer.sanitize(SecurityContext.HTML, error.message);\n\n if (!error.details) {\n const title = error.title ? error.title : Soho.Locale.translate(dialogId);\n\n // TODO fix up localization\n this.sohoMessageService\n .error()\n .title(title)\n .message(error.message)\n .buttons(this.buttons)\n .open();\n } else {\n this.dialog = this.sohoModalDialogService\n .modal(LMViewExceptionDetailsComponent, placeholder, { fullsize: 'responsive' })\n .buttons(this.buttons)\n .cssClass('lm-modal-no-header')\n .title('')\n .apply((c) => {\n c.error = error;\n })\n .open();\n }\n }\n\n private handleOtherUnexpectedError(error: LMError): void {\n const dialogId = 'SystemError';\n this.buttons = [\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.CLOSE ]),\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n }\n },\n ];\n let message = error.message;\n if (error.details) {\n message = error.message + '

                        ' + error.details;\n }\n // If response status is set to internal error, JSON error object is available in response body.\n // Instead set the response status to OK. The body need not be parsed.\n /*else if (error._body) {\n let messageBody = JSON.parse(error._body);\n message = messageBody.message + ((messageBody.details) ? '
                        ' + messageBody.details : '')\n }*/\n\n // LMCLIENT-30469: changed to match 3.5\n const title = Soho.Locale.translate('UnexpectedErrorOccured');\n // if (error.title) {\n // title = error.title;\n // }\n\n // TODO fix up localization\n this.sohoMessageService\n .error()\n .title(title)\n .message(message)\n .buttons(this.buttons)\n .open();\n }\n\n public handleUnexpectedError(error: any, placeholder?: ViewContainerRef): void {\n // this.lmLoggerService.trace(error);\n if (error.status === 403) {\n // Access Denied exception. Emit event to show the error.\n this.showAccessDeniedError(error.error, placeholder);\n } else {\n const error2: LMError = {\n message: error.message,\n status: error.status,\n title: error.title,\n details: error.details ? error.details : error.stack\n };\n this.handleOtherUnexpectedError(error2);\n }\n }\n\n public showAccessDeniedError(error: any, placeholder?: ViewContainerRef) {\n let dlgComponent: AccessDeniedErrorComponent;\n const dialogId = (this.lmContextService.inMingleInbox()) ? 'ChooseAnApp' : 'AccessDenied';\n this.dialog = this.sohoModalDialogService\n .modal(AccessDeniedErrorComponent, placeholder, { fullsize: 'responsive' })\n .buttons([\n {\n id: this.lmUniqueIdService.uniqueId([ dialogId, LMDialogButtonKey.SIGNOUT ]),\n text: Soho.Locale.translate(LMDialogButtonKey.SIGNOUT),\n click: () => {\n window.location.href = dlgComponent.signOutUrl;\n }\n }\n ])\n .title(Soho.Locale.translate(dialogId))\n .apply((accessDenied: AccessDeniedErrorComponent) => {\n dlgComponent = accessDenied;\n })\n .open();\n\n const accessDeniedError = this.accessDeniedError$.subscribe((appClicked: boolean) => {\n if (appClicked) {\n this.dialog.close();\n this.accessDeniedError$.complete();\n // this._loadMenu(this.lmUrlUtilService.getBannerSpecUrl());\n }\n });\n\n // this.subscriptionArray.push(accessDeniedError);\n }\n}\n//\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { AppConstants } from '@utils/app.constants';\nimport { ListResource } from '@resources/list.resource';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMUrlUtilService } from './lm-url-util.service';\nimport { FormRequestType } from '@utils/app.constants';\nimport * as _ from 'lodash';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n\n@Injectable()\nexport class LMFieldUtilService {\n\n constructor(\n private http: HttpClient,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n ) {}\n\n /*\n * Sorts a JSONArray filled with JSONObjects.\n */\n public sort(array: Array, comparatorFld: string, displayFields: Array) {\n let comparatorFldPresent = false;\n for (let i = 0; i < displayFields.length; i++) {\n if (displayFields[ i ].fieldId === comparatorFld) {\n comparatorFldPresent = true;\n break;\n }\n }\n\n if (!comparatorFldPresent) {\n return;\n }\n\n array.sort(sortByProperty(comparatorFld));\n\n function sortByProperty(property) {\n 'use strict';\n return function(a, b) {\n return a.fields[ property ].value - b.fields[ property ].value;\n };\n }\n }\n\n public isBlank(type: string, value: any): boolean {\n if (type) {\n type = type.toUpperCase();\n }\n\n // TODO: Should be simplied to first handle the types that allow a zero value and then everything else\n\n if (type === AppConstants.ALPHA\n || type === AppConstants.ALPHALOWER\n || type === AppConstants.ALPHARIGHT\n || type === AppConstants.ALPHAUPPER\n || type === AppConstants.BINARYDOCUMENT\n || type === AppConstants.BCD\n || type === AppConstants.MMDD\n || type === AppConstants.NUMERIC\n || type === AppConstants.PERCENT\n || type === AppConstants.TEXT\n || type === AppConstants.TIME\n || type === AppConstants.TIMESTAMP\n || type === AppConstants.YYYY\n || type === AppConstants.YYYYMM\n || type === AppConstants.YYYYMMDD) {\n\n // alpha types don't check for zero\n const isAlpha = (type === AppConstants.ALPHA\n || type === AppConstants.ALPHALOWER\n || type === AppConstants.ALPHARIGHT\n || type === AppConstants.ALPHAUPPER\n || type === AppConstants.BINARYDOCUMENT\n || type === AppConstants.TEXT);\n\n // if blank or zero, then return true\n if (value === undefined\n || value === null\n || _.trim(value) === ''\n || (!isAlpha && !isNaN(parseFloat(value)) && parseFloat(value) === 0)) {\n return true;\n }\n } else if (type === AppConstants.BOOLEAN\n || type === AppConstants.UNIQUEID) {\n if (value === undefined\n || value === null\n || _.trim(value) === '') {\n return true;\n }\n }\n\n return false;\n };\n\n public toBlankValue = function(type?: string): any {\n if (type === AppConstants.YYYYMMDD\n || type === AppConstants.YYYYMM\n || type === AppConstants.MMDD\n || type === AppConstants.YYYY\n || type === AppConstants.TIME\n || type === AppConstants.TIMESTAMP\n || type === AppConstants.NUMERIC\n || type === AppConstants.BCD\n || type === AppConstants.PERCENT) {\n return 0;\n }\n return '';\n };\n\n /**\n * params\n * {\n * \t\tfieldId - the encoded field id of the field that is initiating the initial value request.\n * \t\tdataView - the dataview for the record where the initial value is to be executed against.\n * }\n */\n public getUserDefinedStates(args: any) {\n this.formRequest(Object.assign({}, args, { requestType: 'userDefinedStates' }));\n }\n\n // public getFieldHistory(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"fieldHistory\"}));\n // }\n //\n // public getFieldPendingChanges(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"fieldPendingChanges\"}));\n // }\n //\n // public getBusClassNames(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"busClassNames\"}));\n // }\n //\n // public getListNamesForBusClass(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"listNamesForBusClass\"}));\n // }\n //\n // public getListNamesAndViewsForBusClass(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"listNamesAndViewsForBusClass\"}));\n // }\n //\n // public getConditionNamesForBusClass(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"conditionNamesForBusClass\"}));\n // }\n //\n // public validateCondition(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"validateCondition\"}));\n // }\n //\n // public validateField(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"validateField\"}));\n // }\n //\n // public drillPoints(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"drillPoints\"}));\n // }\n //\n // public schedulePdf(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"schedulePdf\"}));\n // }\n //\n // public createReport(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"createReport\"}));\n // }\n //\n // public saveListPersonalization(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"saveListPersonalization\"}));\n // }\n //\n // public deleteListPersonalization(args)\n // {\n // this.formRequest(Object.assign({}, args, { requestType: \"deleteListPersonalization\"}));\n // }\n\n public formRequest(args: any) {\n this.makeFormRequest(args)\n .subscribe(\n (result: any) => {\n let status: string = AppConstants.STATUS_COMPLETED;\n\n if (result.status === AppConstants.VIEW_EXCEPTION\n || result.status === AppConstants.STATUS_SYSTEM_ERROR) {\n status = result.status;\n }\n\n if (args.callback && typeof args.callback === 'function') {\n args.callback(status, result);\n }\n },\n error => {\n if (args.callback && typeof args.callback === 'function') {\n args.callback(AppConstants.STATUS_SYSTEM_ERROR, error);\n }\n }\n );\n }\n\n public decodeFieldName(fieldName: string): string {\n fieldName = fieldName.replace(new RegExp('_op_', 'g'), '(');\n fieldName = fieldName.replace(new RegExp('_cp_', 'g'), ')');\n\n fieldName = fieldName.replace(new RegExp('_ob_', 'g'), '{');\n fieldName = fieldName.replace(new RegExp('_co_', 'g'), '}');\n\n fieldName = fieldName.replace(new RegExp('_ohb_', 'g'), '[');\n fieldName = fieldName.replace(new RegExp('_chb_', 'g'), ']');\n\n fieldName = fieldName.replace(new RegExp('_lab_', 'g'), '<');\n fieldName = fieldName.replace(new RegExp('_rab_', 'g'), '>');\n\n fieldName = fieldName.replace(new RegExp('_add_', 'g'), '+');\n fieldName = fieldName.replace(new RegExp('_div_', 'g'), '/');\n fieldName = fieldName.replace(new RegExp('_hat_', 'g'), '^');\n fieldName = fieldName.replace(new RegExp('_pct_', 'g'), '%');\n fieldName = fieldName.replace(new RegExp('_spc_', 'g'), ' ');\n fieldName = fieldName.replace(new RegExp('_col_', 'g'), ':');\n fieldName = fieldName.replace(new RegExp('_prd_', 'g'), '.');\n fieldName = fieldName.replace(new RegExp('_apo_', 'g'), '\\'');\n fieldName = fieldName.replace(new RegExp('_sc_', 'g'), '');\n fieldName = fieldName.replace(new RegExp('_quot_', 'g'), '\"');\n\n return fieldName;\n }\n /**\n *\t\trequestType : (string)\n *\t\tfieldId : (string)\n *\t\tdataView : (object)\n *\t\taction : (string)\n *\t\tparam1 : (string)\n *\t\tparam2 : (string)\n *\t\tparam3 : (string)\n *\n * For pdf schedule only\n *\n *\t\torientation : (string)\n *\t\tprintOption : (string)\n *\t\tsearch : (string)\n *\t\tselectedRows : (string)\n *\t\tmaxLevels : (string)\n *\t\tscheduleView : (object)\n *\t}\n */\n private makeFormRequest(args: any): Observable {\n const resource = args.resource;\n const reportDataView = args.reportDataView;\n const userFolderId = args.userFolderId;\n let url: string;\n let scheduleView: any;\n\n if (!args.resource) {\n throw 'The resource argument must be either a ListResource or FormResource.';\n }\n\n if (args.requestType === FormRequestType.SchedulePdf) {\n const fromResource: any = args.fromResource;\n const dataViewSet: any = args.dataViewSet; // todo set type\n const orientation: any = args.orientation;\n const displaySearchCriteria: any = args.search;\n const printOption: any = args.printOption;\n scheduleView = args.scheduleView;\n const selectedRows: any = args.selectedRows;\n const maxLevels: number = args.maxLevels;\n\n const params: any = {\n output: 'pdf',\n orientation,\n printOption,\n searchForm: displaySearchCriteria,\n filter: undefined,\n sortOrderName: undefined,\n isAscending: undefined\n };\n\n if (maxLevels !== undefined) {\n params[ maxLevels ] = maxLevels;\n }\n\n if (dataViewSet !== undefined) {\n if (dataViewSet.filter) {\n params.filter = dataViewSet.filter;\n }\n\n if (dataViewSet.sortOrderName) {\n params.sortOrderName = dataViewSet.sortOrderName;\n }\n\n if (dataViewSet.isAscending) {\n params.isAscending = dataViewSet.isAscending;\n }\n }\n\n if (fromResource) {\n params[ fromResource.resourceType ] = fromResource.resourceId;\n }\n\n if (printOption === AppConstants.PDF_SELECTED_WITH_DETAILS_ACTION && selectedRows.length > 0) {\n const newListResource = new ListResource(\n {\n resourceId: dataViewSet.data[ selectedRows[ 0 ] ].resourceId,\n listName: resource.listName\n });\n url = this.lmUrlUtilService.buildUrl({ resource: newListResource, params });\n } else {\n url = this.lmUrlUtilService.buildUrl({ resource, params });\n }\n } else if (args.requestType === 'createReport') {\n const fromResource = args.fromResource;\n const dataViewSet = args.dataViewSet;\n\n const params: any = {\n filter: undefined,\n sortOrderName: undefined,\n isAscending: undefined\n };\n\n if (dataViewSet !== undefined) {\n if (dataViewSet.filter) {\n params.filter = dataViewSet.filter;\n }\n\n if (dataViewSet.sortOrderName) {\n params.sortOrderName = dataViewSet.sortOrderName;\n }\n\n if (dataViewSet.isAscending) {\n params.isAscending = dataViewSet.isAscending;\n }\n }\n\n if (fromResource) {\n params[ fromResource.resourceType ] = fromResource.resourceId;\n }\n\n url = this.lmUrlUtilService.buildUrl({ resource, params });\n } else {\n if (userFolderId) {\n url = this.lmUrlUtilService.buildUrl({ resource, userFolderId });\n } else {\n url = this.lmUrlUtilService.buildUrl({ resource });\n }\n }\n\n const formRequest: any = {\n requestType: args.requestType,\n fieldId: args.fieldId,\n dataView: args.dataView,\n action: args.action,\n param1: args.param1,\n param2: args.param2,\n param3: args.param3,\n drillName: undefined,\n scheduleView: undefined,\n reportDataView: undefined,\n viewReport: undefined\n };\n if (args.drillName) {\n formRequest.drillName = args.drillName;\n }\n\n if (args.requestType === 'schedulePdf' && scheduleView !== undefined) {\n formRequest.scheduleView = scheduleView;\n }\n\n if (args.requestType === 'createReport') {\n formRequest.reportDataView = reportDataView;\n if (args.viewReport) {\n formRequest.viewReport = args.viewReport;\n }\n }\n\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'application/json;charset=utf-8');\n\n // TODO: need to pass this on the http call\n // let async = args.async === false ? false : true;\n\n return > this.http.post(url, JSON.stringify(formRequest), { headers })\n .pipe(catchError(error => this._handleError(error)));\n }\n\n private _handleError(error: Response) {\n // in a real world app, we may send the error to some remote logging infrastructure\n // instead of just logging it to the console\n this.lmLoggerService.log(error);\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConstants, LMTimeStampDirective, LMTransformOptions } from '@utils/index';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFieldUtilService } from './lm-field-util.service';\nimport { LMLocaleUtilService } from '@utils/lm-locale-util.service';\nimport { LMModel, LMModelField } from '@form/model/';\nimport * as _ from 'lodash';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { LMUrlUtilService } from './lm-url-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { DateTime, Duration, FixedOffsetZone, LocaleOptions } from 'luxon';\n\n@Injectable()\nexport class LMFormatUtilService {\n // see DateYMD.java\n public readonly minDate: any = new Date(1799, 11, 31, 23, 59, 59, 999); // December 31, 1799 23:59:59.999\n public readonly maxDate: any = new Date(2200, 0, 1, 0, 0, 0, 0);\t// January 1, 2200 0:0:0.0\n\n public ratingOptions: Array = [ {\n id: '_one-star',\n label: this.formatMessage(Soho.Locale.translate('RatingOptionLabel'), [ 1, 5 ]),\n class: '',\n href: ''\n }, {\n id: '_two-star',\n label: this.formatMessage(Soho.Locale.translate('RatingOptionLabel'), [ 2, 5 ]),\n class: '',\n href: ''\n }, {\n id: '_three-star',\n label: this.formatMessage(Soho.Locale.translate('RatingOptionLabel'), [ 3, 5 ]),\n class: '',\n href: ''\n }, {\n id: '_four-star',\n label: this.formatMessage(Soho.Locale.translate('RatingOptionLabel'), [ 4, 5 ]),\n class: '',\n href: ''\n }, {\n id: '_five-star',\n label: this.formatMessage(Soho.Locale.translate('RatingOptionLabel'), [ 5, 5 ]),\n class: '',\n href: ''\n } ];\n private readonly rangeDisplaySeparator = ' - ';\n\n constructor(\n public _logger: LMLoggerService,\n private domSanitizer: DomSanitizer,\n public lmFieldUtilService: LMFieldUtilService,\n public lmLocaleUtilService: LMLocaleUtilService,\n public lmUrlUtilService: LMUrlUtilService,\n public lmContextService: LMContextService,\n ) { }\n\n public convertNewLine(params: any) {\n // params = value\n const value = params.value;\n return value.replace(/\\n/g, '
                        ');\n }\n\n public convertSoftHyphen(value: string) {\n return value ? value.replace('\\u00AD', '-') : value;\n }\n\n public isCompoundField(dvField: LMField, isMultiSelect?: boolean) {\n isMultiSelect = isMultiSelect || false;\n return !isMultiSelect && dvField.hasOwnProperty('type') && (dvField.type === 'group' || dvField.type === 'array');\n }\n\n public isDate(date: Date) {\n if (!date || (date && date.toString().toLowerCase() === 'invalid date')) {\n return false;\n }\n\n return true;\n }\n\n // This method handles the single and multi select cases\n public stateLabelToText(states: Array, valueParam: boolean | string | Array): string {\n if (states && states.length > 0) {\n const value: string | Array = (typeof valueParam === 'boolean')\n ? valueParam.toString()\n : valueParam;\n\n return states.filter((state) => {\n if (Array.isArray(value)) {\n if (value.includes(state.value)) {\n return state;\n }\n } else {\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n if (value == state.value) {\n return state;\n }\n }\n }).map((state) => state.label).join(', ');\n }\n\n return '';\n }\n\n // Form Field Transformation Rules\n\n // Rule for BCD for dataView value\n private bcdDataRule(value: number, options: any): string {\n\n // change non-numeric to zero\n if (isNaN(value)) {\n value = 0;\n }\n\n return Soho.Locale.formatNumber(value, options);\n }\n\n // Rule for BCD for display value\n private bcdDisplayRule(value: number | string, options: any, type: string, displayZero?: boolean): string {\n\n // change non-numeric to zero\n // isNaN can take a string even though the typedef says it can only take a number.\n if (isNaN(value as any)) {\n value = 0;\n }\n\n if (displayZero) {\n return Soho.Locale.formatNumber(value, options);\n }\n\n // display blank if value is zero\n return (this.lmFieldUtilService.isBlank(type, value))\n ? ''\n : Soho.Locale.formatNumber(value, options);\n }\n\n // Rule for Date, Time, DateTime for dataView value\n private dateTimeDataRule(date: Date, toPattern: string, defaultValue: string, sohoParseDateOptions?: SohoLocaleParseDateOptions): string {\n // if not a valid date, return the default value\n if (!this.isDate(date)) {\n return defaultValue;\n }\n\n // TODO: need typings updated for Soho.Locale; use Soho.Locale.isIslamic() for the ternary below\n const formatDateAttribs: any = {\n pattern: toPattern,\n locale: this.lmLocaleUtilService.name,\n calendarName: this.lmLocaleUtilService.calendarName,\n toGregorian: (this.isIslamic(sohoParseDateOptions)) ? true : undefined\n };\n\n // TODO: this is part of supporting gregorian and umalqura (hijri) on the same form and is currently not used\n // need to re-evaluate this; commenting for now\n // if (sohoParseDateOptions && sohoParseDateOptions.locale) {\n // formatDateAttribs.locale = sohoParseDateOptions.locale;\n // }\n\n // otherwise, return the appropriate Landmark format\n return Soho.Locale.formatDate(date, formatDateAttribs);\n }\n\n // Rule for Date, Time, DateTime for display value\n private dateTimeDisplayRule(date: Date | string, value: any, toPattern: string, defaultValue: string, type: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions) {\n\n // if not a valid date, return an empty string if value is default value\n // otherwise, return the invalid date and let validation rule display the error\n if (!this.isDate(date as Date)) {\n return (value === defaultValue)\n ? ''\n : value;\n }\n\n // display blank if value is zero\n if (this.lmFieldUtilService.isBlank(type, value)) {\n return '';\n }\n\n // TODO: need typings updated for Soho.Locale; use Soho.Locale.isIslamic() for the ternary below\n const formatDateAttribs: any = {\n pattern: toPattern,\n fromGregorian: (this.isIslamic(sohoParseDateOptions)) ? true : undefined\n };\n\n // TODO: this is part of supporting gregorian and umalqura (hijri) on the same form and is currently not used\n // need to re-evaluate this; commenting for now\n // if (sohoParseDateOptions && sohoParseDateOptions.locale) {\n // formatDateAttribs.locale = sohoParseDateOptions.locale;\n // }\n\n return Soho.Locale.formatDate(date, formatDateAttribs);\n }\n\n // Rule for NUMERIC for dataView value\n private numericDataRule(value: number, options: any): number {\n\n // change non-numeric to zero\n if (isNaN(value)) {\n value = 0;\n }\n\n return value;\n }\n\n // Rule for NUMERIC for display value\n private numericDisplayRule(value: number | string, options: any, type: string, displayZero?: boolean): string {\n\n // value maybe a string when it exceeds the maximum integer value for a number\n // change non-numeric to zero\n if (typeof value !== 'string' && isNaN(value)) {\n value = 0;\n }\n\n if (displayZero) {\n return Soho.Locale.formatNumber(value, options);\n }\n\n // display blank if value is zero\n return (this.lmFieldUtilService.isBlank(type, value))\n ? ''\n : Soho.Locale.formatNumber(value, options);\n }\n\n // Rule for PERCENT for dataView value\n private percentDataRule(value: number | any, hasStateValues: boolean, options: any): string {\n\n // PERCENT as a state: remove the percent sign and return the value without formatting\n if (hasStateValues) {\n const re = new RegExp('\\\\' + Soho.Locale.numbers().percentSign, 'g');\n value = value.toString().replace(re, '');\n\n return value;\n }\n\n if (isNaN(value)) {\n value = 0;\n } else {\n value = value / 100;\n }\n\n return Soho.Locale.formatNumber(value, options);\n }\n\n // Rule for PERCENT for display value\n private percentDisplayRule(\n value: number | any,\n hasStateValues: boolean,\n options: any,\n type: string,\n displayZero: boolean\n ): string {\n\n // PERCENT as a state: keep value, do not change non-numeric to zero\n if (!hasStateValues) {\n if (isNaN(value)) {\n value = 0;\n }\n }\n\n if (!displayZero && this.lmFieldUtilService.isBlank(type, value)) {\n return '';\n }\n\n return Soho.Locale.formatNumber(value, options);\n }\n\n // Form Field Transformations\n\n /**\n * Transforms localized data into Landmark data\n * @param value\n * @param type\n * @param transformOptions - optional\n * @returns\n */\n public toDataValue(value: any, type: string, transformOptions?: LMTransformOptions): any {\n if (type === AppConstants.YYYYMMDD) {\n return this.yyyymmddToData(value, transformOptions);\n\n } else if (type === AppConstants.YYYYMM) {\n return this.yyyymmToData(value, transformOptions);\n\n } else if (type === AppConstants.MMDD) {\n return this.mmddToData(value, transformOptions);\n\n } else if (type === AppConstants.YYYY) {\n return this.yyyyToData(value, transformOptions);\n\n } else if (type === AppConstants.TIME) {\n return this.timeToData(value, transformOptions);\n\n } else if (type === AppConstants.TIMESTAMP) {\n return this.timestampToData(value, transformOptions);\n\n } else if (type === AppConstants.NUMERIC) {\n return this.numericToData(value, transformOptions);\n\n } else if (type === AppConstants.BCD) {\n return this.bcdToData(value, transformOptions);\n\n } else if (type === AppConstants.PERCENT) {\n return this.percentToData(value, transformOptions);\n\n } else if (type === AppConstants.ALPHA || type === AppConstants.ALPHALOWER\n || type === AppConstants.ALPHAUPPER || type === AppConstants.ALPHARIGHT) {\n return this.convertSoftHyphen(value);\n }\n\n return value;\n }\n\n public toDisplayValueWithSpec(value: any, specField: LMSpecField, options?: LMTransformOptions): any {\n const transformOptions = options || {};\n if (specField.type === AppConstants.BOOLEAN) {\n return this.booleanToData(value);\n\n } else {\n // NOTE: EXCEPTION - state field values are not transformed in the model; they need to use the data value\n // because the value on each member/option also uses the data value; cast to a String to allow strict equality\n if (specField.stateValues || specField.hasUserDefinedStates) {\n return String(value);\n\n } else if (transformOptions.isCompoundField) {\n return value;\n\n } else {\n if (specField.decSize && (options === undefined || !options.hasOwnProperty('decSize'))) {\n transformOptions.decSize = specField.decSize;\n }\n }\n }\n return this.toDisplayValue(value, specField.type, transformOptions);\n }\n\n /**\n * Transforms Landmark data into localized data\n * @param value\n * @param type\n * @param transformOptions - optional\n * @returns\n */\n public toDisplayValue(value: any, type: string, transformOptions?: LMTransformOptions): any {\n // The Angular field templates will take care of sanitizing the value.\n // Hoping we do not need it here.\n // value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n\n if (type === AppConstants.YYYYMMDD) {\n return this.yyyymmddToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.YYYYMM) {\n return this.yyyymmToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.MMDD) {\n return this.mmddToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.YYYY) {\n return this.yyyyToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.TIME) {\n return this.timeToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.TIMESTAMP) {\n return this.timestampToDisplay(value, transformOptions);\n\n } else if (type === AppConstants.NUMERIC) {\n if (transformOptions?.allowMultiSelections && Array.isArray(value)) {\n return value.map((val) => this.numericToDisplay(val, transformOptions)).join(AppConstants.MULTI_SEARCH_TERM_DELIMITER + ' ');\n } else {\n return this.numericToDisplay(value, transformOptions);\n }\n\n } else if (type === AppConstants.BCD) {\n if (transformOptions?.allowMultiSelections && Array.isArray(value)) {\n return value.map((val) => this.bcdToDisplay(val, transformOptions)).join(AppConstants.MULTI_SEARCH_TERM_DELIMITER + ' ');\n } else {\n return this.bcdToDisplay(value, transformOptions);\n }\n\n } else if (type === AppConstants.PERCENT) {\n if (transformOptions?.allowMultiSelections && Array.isArray(value)) {\n return value.map((val) => this.percentToDisplay(val, transformOptions)).join(AppConstants.MULTI_SEARCH_TERM_DELIMITER + ' ');\n } else {\n return this.percentToDisplay(value, transformOptions);\n }\n } else if (type === AppConstants.BOOLEAN) {\n return this.booleanToDisplay(value);\n }\n\n // For type ALPHA*, return empty string if value is evaluated as blank else return original value.\n return this.lmFieldUtilService.isBlank(type, value) ? '' : value;\n }\n\n // transform a BCD from the current locale format to the Landmark format\n public bcdToData(value: any, transformOptions?: LMTransformOptions): string {\n const decSize: number = (transformOptions && transformOptions.decSize) || 0;\n const precision: number = (transformOptions && transformOptions.precision) || 0;\n\n // MUST use Soho.Locale.parseNumber() as value is in the Locale format\n const bcd: number = Soho.Locale.parseNumber(value);\n\n // always use the smallest value\n const fractionDigits: number = (precision < decSize)\n ? precision\n : decSize;\n\n const options: any = {\n style: 'decimal',\n round: true,\n group: this.lmLocaleUtilService.group,\n decimal: this.lmLocaleUtilService.decimal,\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits\n };\n\n const returnValue: string = this.bcdDataRule(bcd, options);\n // this._logger.log(['bcdToData', 'decSize=' + decSize, 'precision=' + precision, value, bcd, returnValue]);\n return returnValue;\n }\n\n // transform a BCD from the Landmark format to the current locale format\n public bcdToDisplay(value: string, transformOptions?: LMTransformOptions): string {\n const decSize: number = (transformOptions && transformOptions.decSize) || 0;\n const precision: number = (transformOptions && transformOptions.precision) || 0;\n let displayZero: boolean = (transformOptions && transformOptions.displayZero) || false;\n const showPercentSymbol: boolean = (transformOptions && transformOptions.showPercentSymbol) || false;\n const currencySymbolIs: string = (transformOptions && transformOptions.currencySymbolIs) || '';\n\n // always use the smallest value\n const fractionDigits: number = (precision < decSize)\n ? precision\n : decSize;\n\n const options: any = {\n style: 'decimal',\n round: true,\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits,\n parseNumber: false\n };\n\n // allow multi is only set for search forms, allow 0 to display\n if (transformOptions?.allowMultiSelections && value !== '') {\n displayZero = true;\n }\n\n let returnValue: string = this.bcdDisplayRule(value, options, AppConstants.BCD, displayZero);\n // this._logger.log(['bcdToDisplay', 'decSize=' + decSize, 'precision=' + precision, bcd, value, returnValue]);\n\n returnValue = this.displayAmountRelative(returnValue, transformOptions);\n returnValue = this.displayNegativeParens(returnValue, transformOptions);\n\n if (showPercentSymbol && returnValue !== '') {\n const percentSign = !Soho.Locale.currentLocale.data.numbers ? AppConstants.PERCENT_SIGN : Soho.Locale.currentLocale.data.numbers.percentSign;\n let percentFormat = !Soho.Locale.currentLocale.data.numbers ? AppConstants.PERCENT_FORMAT : Soho.Locale.currentLocale.data.numbers.percentFormat;\n percentFormat = percentFormat.replace('¤', percentSign);\n returnValue = percentFormat.replace('###', returnValue);\n }\n\n if (currencySymbolIs !== '' && returnValue !== '') {\n returnValue = currencySymbolIs + returnValue;\n }\n\n return returnValue;\n }\n\n public bcdToFilterDisplay(value: string, transformOptions?: LMTransformOptions): string {\n return this.bcdToDisplay(value, transformOptions);\n }\n\n // transform a NUMERIC from the current locale format to the Landmark format\n public numericToData(value: any, transformOptions?: LMTransformOptions): number {\n // MUST use Soho.Locale.parseNumber() as value is in the Locale format\n const numeric: number = (typeof value === 'number')\n ? value\n : Soho.Locale.parseNumber(value.toString());\n\n const options: any = {\n style: 'integer',\n group: '' // empty string means do not format with thousands character\n };\n\n const returnValue: number = this.numericDataRule(numeric, options);\n // this._logger.log(['numericToData', value, numeric, returnValue]);\n return returnValue;\n }\n\n // transform a NUMERIC from the Landmark format to the current locale format\n public numericToDisplay(value: any, transformOptions?: LMTransformOptions): string {\n let displayZero: boolean = (transformOptions && transformOptions.displayZero) || false;\n const displayThousandsCharacter: boolean = (transformOptions && transformOptions.displayThousandsCharacter) || false;\n let numeric;\n\n // Does the value exceed the maximum integer value for a number?\n if (!isNaN(value) && Math.abs(value) > Number.MAX_SAFE_INTEGER) {\n numeric = value;\n } else {\n // need to use parseInt() here as value is in Landmark format (en-US)\n // if Soho.Locale.parseNumber() is used and the Locale is not en-US, then Soho.Locale.parseNumber() would return\n // an incorrect value if the decimal and group separators are different than en-US\n numeric = parseInt(value, 10); // DO NOT USE > Soho.Locale.parseNumber(value);\n }\n\n const options: any = {\n style: 'integer'\n };\n\n if (!displayThousandsCharacter) {\n options.group = ''; // empty string means do not format with thousands character\n }\n\n // allow multi is only set on search forms, so allow 0\n if (transformOptions?.allowMultiSelections && value !== '') {\n displayZero = true;\n }\n\n let returnValue: string = this.numericDisplayRule(numeric, options, AppConstants.NUMERIC, displayZero);\n // this._logger.log(['numericToDisplay', value, numeric, returnValue]);\n\n returnValue = this.displayAmountRelative(returnValue, transformOptions);\n returnValue = this.displayNegativeParens(returnValue, transformOptions);\n\n return returnValue;\n }\n\n // transform a PERCENT from the current locale format to the Landmark format\n public percentToData(value: any, transformOptions?: LMTransformOptions): string {\n const decSize: number = (transformOptions && transformOptions.decSize) || 0;\n const hasStateValues: boolean = (transformOptions && transformOptions.hasStateValues) || false;\n\n // MUST use Soho.Locale.parseNumber() as value is in the Locale format\n const percent: number | any = (hasStateValues) ? value : Soho.Locale.parseNumber(value);\n\n // always use decSize for dataView\n const fractionDigits: number = decSize;\n\n const options: any = {\n style: 'decimal',\n round: true,\n group: this.lmLocaleUtilService.group,\n decimal: this.lmLocaleUtilService.decimal,\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits\n };\n\n const returnValue: string = this.percentDataRule(percent, hasStateValues, options);\n // this._logger.log(['percentToData', 'decSize=' + decSize, value, percent, returnValue]);\n return returnValue;\n }\n\n // transform a PERCENT from the Landmark format to the current locale format\n public percentToDisplay(value: string, transformOptions?: LMTransformOptions): string {\n const precision: number = (transformOptions && transformOptions.precision) || 0;\n const hasStateValues: boolean = (transformOptions && transformOptions.hasStateValues) || false;\n let displayZero: boolean = (transformOptions && transformOptions.displayZero) || false;\n\n // need to use parseFloat() here as value is in Landmark format (en-US)\n // if Soho.Locale.parseNumber() is used and the Locale is not en-US, then Soho.Locale.parseNumber() would return\n // an incorrect value if the decimal and group separators are different than en-US\n const percent: number | any = (hasStateValues) ? value : parseFloat(value); // DO NOT USE > Soho.Locale.parseNumber(value);\n\n // always use precision for display\n const fractionDigits: number = (precision >= 2)\n ? precision - 2\n : precision;\n\n const options: any = {\n style: 'percent',\n round: true,\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits\n };\n\n // allow multi is only set on search forms, so allow zero when it is set\n if (transformOptions?.allowMultiSelections && value !== '') {\n displayZero = true;\n }\n\n let returnValue: string = this.percentDisplayRule(percent, hasStateValues, options, AppConstants.PERCENT, displayZero);\n // this._logger.log(['percentToDisplay', 'precision=' + precision, value, percent, returnValue]);\n\n returnValue = this.displayNegativeParens(returnValue, transformOptions);\n\n return returnValue;\n }\n\n public percentToFilterDisplay(value: string, transformOptions?: LMTransformOptions): string {\n const percentValue = this.percentToDisplay(value, transformOptions);\n return percentValue.replace(Soho.Locale.numbers().percentSign, '');\n }\n\n // transform a MMDD from the current locale format to the Landmark format\n public mmddToData(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.MMDD.defaultValue;\n const toPattern: string = this.lmLocaleUtilService.calendar.MMDD.pattern;\n const fromPattern: string = Soho.Locale.calendar().dateFormat.month;\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToData(value, fromPattern, toPattern, defaultValue);\n\n } else {\n const date: Date = Soho.Locale.parseDate(value, fromPattern, false);\n returnValue = this.dateTimeDataRule(date, toPattern, defaultValue);\n }\n\n // this._logger.log(['mmddToData', value, returnValue]);\n return returnValue;\n }\n\n // transform a MMDD from the Landmark format to the current locale format\n public mmddToDisplay(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.MMDD.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.MMDD.pattern;\n const toPattern: string = Soho.Locale.calendar().dateFormat.month;\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.MMDD);\n\n } else {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n returnValue = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.MMDD);\n }\n\n // this._logger.log(['mmddToDisplay', value, returnValue]);\n return returnValue;\n }\n\n // transform a TIME from the current locale format to the Landmark format\n public timeToData(value, transformOptions?: LMTransformOptions): string {\n const defaultValue: string = this.lmLocaleUtilService.calendar.TIME.defaultValue;\n const toPattern: string = this.lmLocaleUtilService.calendar.TIME.pattern;\n let fromPattern: string = Soho.Locale.calendar().dateFormat.timestamp;\n\n if (transformOptions && transformOptions.hasOwnProperty('timeStampDirective')) {\n if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES) {\n fromPattern = Soho.Locale.calendar().timeFormat;\n }\n }\n\n const date: Date = Soho.Locale.parseDate(value, fromPattern, false);\n const returnValue: string = this.dateTimeDataRule(date, toPattern, defaultValue);\n\n // this._logger.log(['timeToData', value, returnValue]);\n return returnValue;\n }\n\n // transform a TIME from the Landmark format to the current locale format\n public timeToDisplay(value, transformOptions?: LMTransformOptions): string {\n const defaultValue: string = this.lmLocaleUtilService.calendar.TIME.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.TIME.pattern;\n let toPattern: string = Soho.Locale.calendar().dateFormat.timestamp;\n\n if (transformOptions && transformOptions.hasOwnProperty('timeStampDirective')) {\n if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES) {\n toPattern = Soho.Locale.calendar().timeFormat;\n }\n }\n\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n const returnValue: string = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.TIME);\n\n // this._logger.log(['timeToDisplay', value, returnValue]);\n return returnValue;\n }\n\n // transform a TIMESTAMP from the current locale format to the Landmark format\n public timestampToData(value, transformOptions?: LMTransformOptions): string {\n const defaultValue: string = this.lmLocaleUtilService.calendar.TIMESTAMP.defaultValue;\n let fromPattern = Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp;\n const toPattern: string = this.lmLocaleUtilService.calendar.TIMESTAMP.pattern;\n let transformTime = false;\n let returnValue: string;\n\n if (transformOptions && transformOptions.hasOwnProperty('timeStampDirective')) {\n if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE) {\n fromPattern = Soho.Locale.calendar().dateFormat.short;\n\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES) {\n fromPattern = Soho.Locale.calendar().timeFormat;\n transformTime = true;\n\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_TIME) {\n fromPattern = Soho.Locale.calendar().dateFormat.timestamp;\n transformTime = true;\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES) {\n fromPattern = Soho.Locale.calendar().dateFormat.datetime;\n transformTime = true;\n }\n }\n\n // TODO: need to evaluate the locale and calendarName properties in LMTransformOptions\n const sohoParseDateOptions: SohoLocaleParseDateOptions = this.buildSohoParseDateOptions(toPattern, fromPattern, transformOptions);\n sohoParseDateOptions.locale = this.lmLocaleUtilService.name;\n sohoParseDateOptions.calendarName = this.lmLocaleUtilService.calendarName;\n\n let date: Date = Soho.Locale.parseDate(value, sohoParseDateOptions, false);\n\n if (transformOptions?.timeZone) {\n date = this.timeZoneDateToGMTDate(date, transformOptions.timeZone, transformOptions?.disableDST);\n }\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n returnValue = this.handleRangeTimestampToData(value, fromPattern, toPattern, defaultValue, sohoParseDateOptions, transformTime, transformOptions);\n } else {\n returnValue = this.timestampDataRule(date, fromPattern, toPattern, defaultValue, sohoParseDateOptions, transformTime, transformOptions);\n }\n\n if (this.isIslamic(sohoParseDateOptions)) {\n // need to transform the umalqura value into en-US\n // example:\n // 20200701090000 becomes > 9:00:00 1441/11/10 for display in umalqura\n // if that is changed to today, 07/17/2020:\n // the display value becomes > 9:13:26 1441/11/26\n // so the let date variable above becomes > Fri Nov 26 1441 09:13:26 GMT-0550 (Central Standard Time)\n // we need to take that date and format it into\n // en-US gregorian using the same pattern > 2020/07/17 9:13:26 AM\n // and then parse the date to get a date object > Fri Jul 17 2020 09:13:26 GMT-0500 (Central Daylight Time)\n // which we can use for our manipulation of the date to get a Landmark formatted date value\n const convertedDate = this.dateTimeDataRule(date, fromPattern, defaultValue, sohoParseDateOptions);\n date = Soho.Locale.parseDate(convertedDate, sohoParseDateOptions, false);\n }\n\n // this._logger.log(['timestampToData', value, returnValue]);\n return returnValue;\n }\n\n private timeZoneDateToGMTDate(date: Date, timeZone: string, disableDST?: boolean): Date {\n if (!date) {\n return;\n }\n\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const hour = date.getHours();\n const minute = date.getMinutes();\n const second = date.getSeconds();\n\n let dateTime = DateTime.fromObject({ year, month, day, hour, minute, second });\n const dateTimeWithTimeZone = DateTime.fromObject({ year, month, day, hour, minute, second }, { zone: timeZone });\n const dateTimeLocal = DateTime.fromObject({ year, month, day, hour, minute, second }, { zone: 'local' });\n\n let standardOffset = 0;\n let nonDSTOffset = 0;\n const offsetLocal = dateTimeLocal.offset;\n\n if (disableDST) {\n nonDSTOffset = this.getStandardOffset(dateTimeWithTimeZone);\n dateTime = dateTime.minus({ minutes: nonDSTOffset }).plus({ minutes: offsetLocal });\n } else {\n standardOffset = dateTimeWithTimeZone.offset;\n dateTime = dateTime.minus({ minutes: standardOffset }).plus({ minutes: offsetLocal });\n }\n\n return dateTime.toJSDate();\n }\n\n private timestampDataRule(date: Date, fromPattern: string, toPattern: string, defaultValue: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions, transformTime?: boolean, transformOptions?: LMTransformOptions): string {\n\n if (!this.isDate(date)) {\n return defaultValue;\n }\n\n if (transformTime && transformOptions.hasOwnProperty('timeStampDataValue')) {\n let adjustDate: Date;\n\n if (transformOptions.timeStampDataValue === this.lmLocaleUtilService.calendar.TIMESTAMP.defaultValue) {\n // need current year, month, day to add the time parts\n adjustDate = new Date();\n\n } else {\n // parse the timeStampDataValue and convert from UTC to local\n const year: number = parseInt(transformOptions.timeStampDataValue.substr(0, 4), 10);\n const month: number = parseInt(transformOptions.timeStampDataValue.substr(4, 2), 10) - 1;\n const day: number = parseInt(transformOptions.timeStampDataValue.substr(6, 2), 10);\n const hr: number = parseInt(transformOptions.timeStampDataValue.substr(8, 2), 10);\n const mn: number = parseInt(transformOptions.timeStampDataValue.substr(10, 2), 10);\n const sc: number = parseInt(transformOptions.timeStampDataValue.substr(12, 2), 10);\n\n // need timeStampDataValue year, month, day to add the time parts\n adjustDate = new Date(Date.UTC(year, month, day, hr, mn, sc));\n }\n\n // set the hours, minutes, seconds on to the adjusted date\n adjustDate.setHours(date.getHours());\n adjustDate.setMinutes(date.getMinutes());\n adjustDate.setSeconds(date.getSeconds());\n\n date = adjustDate;\n }\n\n // would be great to not to have the time or seconds entered. HTMLClient handles these cases for a timestamp search\n // if (!date) {\n // // try to parse just date - make it GMT midnight\n // date = Soho.Locale.parseDate(value, Soho.Locale.calendar().dateFormat.short, false);\n // return (!this.isDate(date))\n // ? this.lmLocaleUtilService.calendar.TIMESTAMP.defaultValue\n // : ('0' + date.getUTCFullYear()).slice(-4)\n // + ('0' + (date.getUTCMonth() + 1)).slice(-2)\n // + ('0' + date.getUTCDate()).slice(-2)\n // + '00'\n // + '00'\n // + '00'\n // + '00';\n // }\n\n // this.dateTimeDataRule is not used for TIMESTAMP as the value is formatted because it needs to be in UTC format\n const returnValue = ('0' + date.getUTCFullYear()).slice(-4)\n + ('0' + (date.getUTCMonth() + 1)).slice(-2)\n + ('0' + date.getUTCDate()).slice(-2)\n + ('0' + date.getUTCHours()).slice(-2)\n + ('0' + date.getUTCMinutes()).slice(-2)\n + ('0' + date.getUTCSeconds()).slice(-2)\n + '00';\n return returnValue;\n }\n\n private handleRangeTimestampToData(value: string, fromPattern: string, toPattern: string, defaultValue: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions, transformTime?: boolean, transformOptions?: LMTransformOptions): string {\n\n const returnValue = value.split(this.rangeDisplaySeparator)\n .map((dateValue) => {\n const date: Date = Soho.Locale.parseDate(dateValue, sohoParseDateOptions, false);\n return this.timestampDataRule(date, fromPattern, toPattern, defaultValue, sohoParseDateOptions, transformTime, transformOptions);\n })\n .join(this.rangeDisplaySeparator);\n\n return returnValue;\n }\n\n private handleRangeTimestampToDisplay(value: string, fromPattern: string, toPattern: string, defaultValue: string, type: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions): string {\n\n const returnValue = value.split(this.rangeDisplaySeparator)\n .map((dateValue) => {\n const year: number = parseInt(dateValue.substr(0, 4), 10);\n const month: number = parseInt(dateValue.substr(4, 2), 10) - 1;\n const day: number = parseInt(dateValue.substr(6, 2), 10);\n const hr: number = parseInt(dateValue.substr(8, 2), 10);\n const mn: number = parseInt(dateValue.substr(10, 2), 10);\n const sc: number = parseInt(dateValue.substr(12, 2), 10);\n\n const date: Date = new Date(Date.UTC(year, month, day, hr, mn, sc));\n return this.dateTimeDisplayRule(date, dateValue, toPattern, defaultValue, type, sohoParseDateOptions);\n })\n .join(this.rangeDisplaySeparator);\n\n return returnValue;\n }\n\n // transform a TIMESTAMP from the Landmark format to the current locale format\n public timestampToDisplay(value, transformOptions?: LMTransformOptions): string {\n const defaultValue: string = this.lmLocaleUtilService.calendar.TIMESTAMP.defaultValue;\n let fromPattern: string = this.lmLocaleUtilService.calendar.TIMESTAMP.pattern;\n let returnValue: string;\n\n const year: number = parseInt(value.substr(0, 4), 10);\n const month: number = parseInt(value.substr(4, 2), 10) - 1;\n const day: number = parseInt(value.substr(6, 2), 10);\n const hr: number = parseInt(value.substr(8, 2), 10);\n const mn: number = parseInt(value.substr(10, 2), 10);\n const sc: number = parseInt(value.substr(12, 2), 10);\n\n let toPattern: string = Soho.Locale.calendar().dateFormat.short + ' ' + Soho.Locale.calendar().dateFormat.timestamp;\n\n if (transformOptions && transformOptions.hasOwnProperty('timeStampDirective')) {\n if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE) {\n toPattern = Soho.Locale.calendar().dateFormat.short;\n\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_HOURS_AND_MINUTES) {\n toPattern = Soho.Locale.calendar().timeFormat;\n\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_TIME) {\n toPattern = Soho.Locale.calendar().dateFormat.timestamp;\n } else if (transformOptions.timeStampDirective === LMTimeStampDirective.DISPLAY_DATE_AND_HOURS_AND_MINUTES) {\n toPattern = Soho.Locale.calendar().dateFormat.datetime;\n }\n }\n\n const sohoParseDateOptions: SohoLocaleParseDateOptions = this.buildSohoParseDateOptions(fromPattern, toPattern, transformOptions);\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n fromPattern = `${fromPattern}${this.rangeDisplaySeparator}${fromPattern}`;\n returnValue = this.handleRangeTimestampToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.TIMESTAMP, sohoParseDateOptions);\n } else {\n let dateTime: DateTime;\n let date = DateTime.utc(year, month+1, day, hr, mn, sc);\n let standardOffset = 0;\n let nonDSTOffset = 0;\n\n // DateTime can't handle invalid parameters\n if (!date.isValid) {\n return '';\n }\n\n const dateTimeLocal = DateTime.fromObject({ year, month: month+1, day, hour: hr, minute: mn, second: sc }, { zone: 'local' });\n date = date.minus({ minutes: dateTimeLocal.offset });\n\n if (transformOptions?.timeZone) {\n const dateTimeWithTimeZone = DateTime.fromObject({ year, month: month+1, day, hour: hr, minute: mn, second: sc }, { zone: transformOptions.timeZone });\n nonDSTOffset = this.getStandardOffset(dateTimeWithTimeZone);\n standardOffset = dateTimeWithTimeZone.offset;\n dateTime = dateTimeWithTimeZone;\n } else {\n nonDSTOffset = this.getStandardOffset(dateTimeLocal);\n standardOffset = dateTimeLocal.offset;\n dateTime = dateTimeLocal;\n }\n\n if (transformOptions?.disableDST) {\n date = date.plus({ minutes: nonDSTOffset });\n } else {\n date = date.plus({ minutes: standardOffset });\n }\n\n returnValue = this.dateTimeDisplayRule(date.toISO(), value, toPattern, defaultValue, AppConstants.TIMESTAMP, sohoParseDateOptions);\n\n if (transformOptions?.displayWithTimeZone) {\n if (returnValue) {\n returnValue += ` ${this.getOffsetName(dateTime, 'short', transformOptions?.disableDST)}`;\n }\n }\n }\n // this._logger.log(['timestampToDisplay', value, returnValue]);\n\n return returnValue;\n }\n\n /** gbugauisan\n * function to get the non-dst offset of a specified timezone\n * @param dateTime\n * @returns {number} the standard non-dst offset\n */\n public getStandardOffset(dateTime: DateTime) {\n if (dateTime.isInDST) {\n do {\n dateTime = dateTime.plus( { month: 2 } );\n }\n while(dateTime.isInDST);\n }\n\n return dateTime.offset;\n }\n\n public getOffsetName(dateTime: DateTime, format: 'long'|'short' = 'short', disableDST: boolean = false) {\n if (disableDST) {\n if (dateTime.isInDST) {\n do {\n dateTime = dateTime.plus( { month: 2 } );\n }\n while(dateTime.isInDST);\n }\n }\n return format === 'short' ? dateTime.offsetNameShort : dateTime.offsetNameLong;\n }\n\n // transform a YYYY from the current locale format to the Landmark format\n public yyyyToData(value, optitransformOptionsons?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYY.defaultValue;\n const toPattern: string = this.lmLocaleUtilService.calendar.YYYY.pattern;\n const fromPattern = 'yyyy';\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToData(value, fromPattern, toPattern, defaultValue);\n\n } else {\n const date: Date = Soho.Locale.parseDate(value, fromPattern, false);\n returnValue = this.dateTimeDataRule(date, toPattern, defaultValue);\n }\n\n // this._logger.log(['yyyyToData', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYY from the Landmark format to the current locale format\n public yyyyToDisplay(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYY.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.YYYY.pattern;\n const toPattern = 'yyyy';\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.YYYY);\n\n } else {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n returnValue = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.YYYY);\n }\n\n // this._logger.log(['yyyyToDisplay', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYYMM from the current locale format to the Landmark format\n public yyyymmToData(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYYMM.defaultValue;\n const toPattern: string = this.lmLocaleUtilService.calendar.YYYYMM.pattern;\n const fromPattern: string = Soho.Locale.calendar().dateFormat.year;\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToData(value, fromPattern, toPattern, defaultValue);\n\n } else {\n const date: Date = Soho.Locale.parseDate(value, fromPattern, false);\n returnValue = this.dateTimeDataRule(date, toPattern, defaultValue);\n }\n\n // this._logger.log(['yyyymmToData', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYYMM from the Landmark format to the current locale format\n public yyyymmToDisplay(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYYMM.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.YYYYMM.pattern;\n const toPattern: string = Soho.Locale.calendar().dateFormat.year;\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.YYYYMM);\n\n } else {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n returnValue = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.YYYYMM);\n }\n\n // this._logger.log(['yyyymmToDisplay', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYYMMDD from the current locale format to the Landmark format\n public yyyymmddToData(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYYMMDD.defaultValue;\n const toPattern: string = this.lmLocaleUtilService.calendar.YYYYMMDD.pattern;\n const fromPattern: string = Soho.Locale.calendar().dateFormat.short;\n const sohoParseDateOptions: SohoLocaleParseDateOptions = this.buildSohoParseDateOptions(toPattern, fromPattern, transformOptions);\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToData(value, fromPattern, toPattern, defaultValue, sohoParseDateOptions);\n\n } else {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n returnValue = this.dateTimeDataRule(date, toPattern, defaultValue, sohoParseDateOptions);\n }\n\n // this._logger.log(['yyyymmddToData', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYYMMDD from the Landmark format to the current locale format\n public yyyymmddToDisplay(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYYMMDD.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.YYYYMMDD.pattern;\n const toPattern: string = Soho.Locale.calendar().dateFormat.short;\n const sohoParseDateOptions: SohoLocaleParseDateOptions = this.buildSohoParseDateOptions(fromPattern, toPattern, transformOptions);\n\n if (value && value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.YYYYMMDD, sohoParseDateOptions);\n\n } else {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n returnValue = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.YYYYMMDD, sohoParseDateOptions);\n }\n\n // this._logger.log(['yyyymmddToDisplay', value, returnValue]);\n return returnValue;\n }\n\n // transform a YYYYMMDD from the Landmark format to the current locale format\n public yyyymmddhhmmssToDisplay(value, transformOptions?: LMTransformOptions): string {\n let returnValue: string;\n const defaultValue: string = this.lmLocaleUtilService.calendar.YYYYMMDD.defaultValue;\n const fromPattern: string = this.lmLocaleUtilService.calendar.TIMESTAMP.pattern;\n const toPattern = 'yyyy-MM-ddTHH:mm:ss.SSS';\n const sohoParseDateOptions: SohoLocaleParseDateOptions = this.buildSohoParseDateOptions(fromPattern, toPattern, transformOptions);\n\n if (value.indexOf(this.rangeDisplaySeparator) >= 0) {\n // date is a range\n returnValue = this.handleRangeDateToDisplay(value, fromPattern, toPattern, defaultValue, AppConstants.YYYYMMDD, sohoParseDateOptions);\n\n } else {\n // TODO: need to evaluate if landmarkParseDateOptions are needed here\n // const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n // const date: Date = Soho.Locale.parseDate(value, landmarkParseDateOptions, false);\n const date: Date = Soho.Locale.parseDate(value, fromPattern, false);\n returnValue = this.dateTimeDisplayRule(date, value, toPattern, defaultValue, AppConstants.YYYYMMDD, sohoParseDateOptions);\n }\n\n // this._logger.log(['yyyymmddToDisplay', value, returnValue]);\n return returnValue;\n }\n\n private isIslamic(transformOptions?: LMTransformOptions): boolean {\n if (transformOptions && transformOptions.calendarName) {\n return (transformOptions.calendarName === 'islamic-umalqura');\n }\n\n return (Soho.Locale.calendar().name === 'islamic-umalqura');\n }\n\n // these are the options used internally in Soho.Locale.parseDate() when it is called from Soho.Locale.formatDate()\n private buildSohoParseDateOptions(toPattern?: string, fromPattern?: string, transformOptions?: LMTransformOptions): SohoLocaleParseDateOptions {\n const sohoParseDateOptions: SohoLocaleParseDateOptions = {};\n\n if (toPattern) {\n sohoParseDateOptions.pattern = toPattern;\n }\n\n if (fromPattern) {\n sohoParseDateOptions.dateFormat = fromPattern;\n }\n\n // TODO: this is part of supporting gregorian and umalqura (hijri) on the same form and is currently not used\n // need to re-evaluate this; commenting for now\n // if (transformOptions && transformOptions.locale) {\n // sohoParseDateOptions.locale = transformOptions.locale;\n // }\n\n if (transformOptions && transformOptions.calendarName) {\n sohoParseDateOptions.calendarName = transformOptions.calendarName;\n }\n\n return sohoParseDateOptions;\n }\n\n // these are the options used in the ...ToDisplay() methods when we call Soho.Locale.parseDate() directly\n private buildLandmarkParseDateOptions(fromPattern: string) {\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = {\n dateFormat: fromPattern,\n locale: this.lmLocaleUtilService.name,\n calendarName: this.lmLocaleUtilService.calendarName\n };\n\n return landmarkParseDateOptions;\n }\n\n private handleRangeDateToData(value: string, fromPattern: string, toPattern: string, defaultValue: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions): string {\n\n const returnValue = value.split(this.rangeDisplaySeparator)\n .map((dateValue) => {\n const date: Date = Soho.Locale.parseDate(dateValue, fromPattern, false);\n return this.dateTimeDataRule(date, toPattern, defaultValue, sohoParseDateOptions);\n })\n .join(this.rangeDisplaySeparator);\n\n return returnValue;\n }\n\n private handleRangeDateToDisplay(value: string, fromPattern: string, toPattern: string, defaultValue: string, type: string,\n sohoParseDateOptions?: SohoLocaleParseDateOptions): string {\n\n const landmarkParseDateOptions: SohoLocaleParseDateOptions = this.buildLandmarkParseDateOptions(fromPattern);\n const returnValue = value.split(this.rangeDisplaySeparator)\n .map((dateValue) => {\n const date: Date = Soho.Locale.parseDate(dateValue, landmarkParseDateOptions, false);\n return this.dateTimeDisplayRule(date, dateValue, toPattern, defaultValue, type, sohoParseDateOptions);\n })\n .join(this.rangeDisplaySeparator);\n\n return returnValue;\n }\n\n // List Cell Transformations\n\n // transform a BOOLEAN from the current locale format to the Landmark format\n public booleanToData(value: any): boolean {\n if (value === 'true' || value === true || value === 'Yes') {\n return true;\n\n } else if (value === 'false' || value === false || value === 'No') {\n return false;\n }\n\n return false;\n }\n\n // transform a BOOLEAN from the Landmark format to the current locale format\n public booleanToDisplay(value: any): string {\n if (value === 'true' || value === true) {\n return Soho.Locale.translate('Yes');\n\n } else if (value === 'false' || value === false) {\n return Soho.Locale.translate('No');\n }\n\n return value;\n }\n\n // need to format the zero value for BCD and PERCENT types as they need to match\n // the dataView field value for the track dirty processing to work correctly.\n // see also ViewBuilderBase.java > fieldAttributeToJsonObject()\n // and JSONConverter.java > fieldStateArrayForFieldValueNg()\n // and lm-dropdown.component.ts\n // using precision here as that is the property available for a state\n public fieldStateFormatZeroValue(type: string, precision?: number): string {\n let zeroValue;\n let transformOptions: LMTransformOptions;\n\n if (type === AppConstants.NUMERIC) {\n zeroValue = this.toDataValue('0', type).toString();\n\n } else if (type === AppConstants.BCD) {\n transformOptions = {\n decSize: precision,\n precision\n };\n zeroValue = this.toDataValue('0', type, transformOptions).toString();\n\n } else if (type === AppConstants.PERCENT) {\n transformOptions = {\n decSize: precision\n };\n zeroValue = this.toDataValue('0', type, transformOptions).toString();\n }\n\n return zeroValue;\n }\n\n public fieldStatesToOptionsArray(states: LMStateValue[], addBlankEntry: boolean, zeroOrBlankValue?: string, isUserDefinedStates?: boolean) {\n const optionsArr = [];\n let hasBlankValue = false;\n let label = '';\n\n if (states) {\n for (let i = 0, len = states.length; i < len; i++) {\n const state = states[ i ];\n\n if (state.label.length === 0 || state.label === ' ') {\n label = '';\n } else {\n label = state.label;\n }\n if (isUserDefinedStates) {\n hasBlankValue = false;\n }\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n else if (state.value === '' || state.value == 0) {\n hasBlankValue = true;\n }\n\n optionsArr.push({\n value: String(state.value),\n label\n });\n }\n }\n\n if (addBlankEntry) {\n // create blank entry\n if (!hasBlankValue) {\n const item = {\n value: (zeroOrBlankValue === undefined) ? '' : zeroOrBlankValue,\n label: ' '\n };\n\n optionsArr.splice(0, 0, item);\n }\n }\n\n return optionsArr;\n }\n\n public fieldStatesToMultiOptionsArray(states: Array, selectedValues: Array): Array {\n const stateValues: Array = [];\n\n if (!Array.isArray(selectedValues)) {\n selectedValues = [ selectedValues ];\n }\n\n for (let index = 0, len = states.length; index < len; index++) {\n const state = states[ index ];\n const label = state.label;\n const isSelected = (selectedValues.includes(state.value)) ? true : undefined;\n\n stateValues.push({\n value: String(state.value),\n label,\n selected: isSelected\n });\n }\n\n return stateValues;\n }\n\n // Used with Soho.Locale.translate when the message has variables\n public formatMessage(message: string, variables: any) {\n let text = message;\n let vars = variables;\n\n if (!Array.isArray(vars)) {\n vars = [ vars ];\n }\n\n for (let index = 0; index < vars.length; index++) {\n text = this.replaceMessageRule({ text, value: vars[ index ], index });\n }\n // The text need not be sanitized since this routine is called by Soho.Locale.translate. This may not have user input variables.\n return text;\n }\n\n // public formatMessageRule(messageRule:MessageRule, dataView:DataView, specFields?:{[key:string]:SpecField});\n // public formatMessageRule(messageRule:string, dataView:DataView, specFields?:{[key:string]:SpecField});\n\n public formatMessageRule(messageRule: any, data?: LMDataView | LMModel, specFields?: LMSpecFields | Array, sanitize = true): string {\n if (typeof messageRule === 'string') {\n // sanitize is not called as the messageRule is from the spec and not user input\n return messageRule as string;\n }\n\n if (messageRule.variables === undefined) {\n // sanitize is not called as the messageRule is from the spec and not user input\n return messageRule.resourceValue;\n }\n\n let text: string = messageRule.resourceValue;\n const isModel: boolean = (data instanceof LMModel);\n\n for (let index = 0, len = messageRule.variables.length; index < len; index++) {\n let fieldData: any = null;\n let field: LMField | LMModelField;\n let value: string | number;\n let fieldId: string = messageRule.variables[ index ].fieldId;\n\n if (messageRule.variables[ index ].type === 'numberLabel' && data && isModel) {\n value = (data as LMModel).numberLabel;\n } else if (messageRule.variables[ index ].type === 'field' && data) {\n field = (isModel)\n ? (data as LMModel).getField(fieldId) as LMModelField\n : (data as LMDataView).fields[ fieldId ] as LMField;\n\n if (!field) {\n if (!isModel) {\n const dataView = (data as LMDataView);\n if (dataView && dataView.cubeInfo && dataView.cubeInfo.titleFields) {\n field = dataView.cubeInfo.titleFields[ fieldId ];\n if (!field) {\n continue;\n }\n } else {\n continue;\n }\n } else {\n continue; // safety\n }\n }\n\n // LMCLIENT-6889: If the field has a label then use the label to be replaced in the message instead of value.\n value = (field.label)\n ? field.label\n : (isModel)\n ? (field as LMModelField).getData()\n : field.value;\n // Only the dataview or model value is santized. The rest of the message rule is from spec.\n // LMCLIENT-25675 SOHO code sanitizes the title span. The entities were getting html encoded twice.\n // Commenting it out here.\n // value = (sanitize) ? this.domSanitizer.sanitize(SecurityContext.HTML, value) : value;\n\n fieldData = {\n fieldId,\n field,\n specField: (specFields) ? specFields[ fieldId ] : null\n };\n } else if (messageRule.variables[ index ].type === 'value') {\n value = messageRule.variables[ index ].value;\n } else if (messageRule.variables[ index ].type === 'context') {\n const contextName = messageRule.variables[ index ].value;\n if (contextName === 'context_prd_actor') {\n value = this.lmContextService.getActorId();\n } else if (contextName === 'context_prd_dataarea_prd_container') {\n value = this.lmContextService.getUrlPdlOrDa();\n } else {\n value = data?.contextProperties[ contextName ];\n }\n }\n\n // if (fieldData && fieldData.specField && fieldData.specField !== null && fieldData.specField.isStaticStateField) {\n if (fieldData?.specField?.isStaticStateField) {\n const params = {\n value: field.value,\n stateValues: fieldData.specField.states\n };\n text = this.findStateItem(params).label;\n } else if (value !== undefined) {\n text = this.replaceMessageRule({ text, value, index, fieldData });\n }\n }\n\n return text;\n }\n\n public replaceMessageRule(params: any) {\n // params = text, value, index, fieldData\n let text = params.text;\n const value = params.value;\n const index = params.index;\n const fieldData = params.fieldData || null;\n\n // MessageFormat information > http://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html\n\n // TODO: //maf message rules can be nested, so there is an issue here with expression\n // looking for {0, or {0}\n const find = new RegExp('\\\\{' + index + ',|\\\\{' + index + '\\\\}', 'g');\n const result = text.match(find);\n if (result) {\n const len = result.length;\n\n for (let item = 0; item < len; item++) {\n const startPos = text.indexOf(result[ item ]);\n const endPos = text.indexOf('}', startPos);\n\n if (startPos < 0 || endPos < 0) {\n continue;\n }\n\n const rule = text.substr(startPos + 1, (endPos - startPos) - 1);\n // TODO: //maf message rules can be nested, so there is an issue here with expression\n const re = new RegExp('\\\\{' + rule + '\\\\}', 'g');\n const formattedValue = this.formatValue({ value, rule, fieldData });\n text = text.replace(re, formattedValue);\n }\n }\n\n return text;\n }\n\n private formatValue(params: any) {\n // params = value, rule, fieldData\n const value = params.value;\n const rule = params.rule;\n const fieldData = params.fieldData;\n\n let type: string = null;\n let style: any = null;\n const aryParts = rule.split(',');\n // TODO: technical debt: could be an issue if embedded commas are in a SubformatPattern\n\n if (aryParts.length === 1) {\n return this.getValue({ value, fieldData });\n }\n\n type = aryParts[ 1 ];\n\n if (aryParts.length === 3) {\n style = aryParts[ 2 ];\n }\n\n switch (type) {\n case 'number':\n return this.formatNumber({ value, style, fieldData });\n\n case 'date':\n return this.formatDate({ value, style, fieldData });\n\n case 'time':\n return this.formatTime({ value, style, fieldData });\n\n case 'choice':\n return this.formatChoice({ value, style, fieldData });\n }\n\n // safety\n return this.getValue({ value, fieldData });\n }\n\n private getValue(params: any) {\n // params = value, fieldData\n const value = params.value;\n const fieldData = params.fieldData;\n\n if (fieldData && fieldData.specField && fieldData.specField.stateValues) {\n // let item = this.findStateItem({ value: value, specField: fieldData.specField });\n const item = this.findStateItem({ value, stateValues: fieldData.specField.stateValues });\n if (item) {\n return item.label;\n }\n }\n\n /*\n * NOTE: the other half of this issue is in JsonConverter.\n *\n * LMCLIENT-4777 - List column showing months in 1-12 instead of Jan - Dec\n * Since we had to place the static state values for an ArrayField in the dataView this code is required\n * to get the state for the value of the field. We really want to have this as specFields going forward\n * as that would be symmetrical with how forms work.\n */\n if (fieldData && fieldData.field && fieldData.field.stateValues) {\n // let item = this.findStateItem({ value: value, field: fieldData.field });\n const item = this.findStateItem({ value, stateValues: fieldData.field.stateValues });\n if (item) {\n return item.label;\n }\n }\n\n return value;\n }\n\n public findStateItem(params: any) {\n // params = value, specField\n const value = params.value;\n const stateValues = params.stateValues;\n // let field = params.specField;\n\n if (stateValues) {\n for (let index = 0, len = stateValues.length; index < len; index++) {\n const item = stateValues[ index ];\n // using non-strict equality to evaluate 0, '0', 0.00, '0.00' as zero\n // eslint-disable-next-line eqeqeq\n if (value == item.value) {\n return item;\n }\n }\n }\n return null;\n }\n\n private formatNumber(params: any) {\n // params = value, style, fieldData\n // style = none, integer, currency, percent, SubFormatPattern\n const value = params.value;\n const style = params.style;\n const fieldData = params.fieldData;\n\n // TODO: technical debt: need to process SubformatPattern\n // TODO: //maf seeing '#' as style rather than percent, currency, or integer\n\n // precision comes from dataView | model\n const precision = (fieldData.field && fieldData.field.precision)\n ? fieldData.field.precision\n : undefined;\n\n // decSize comes from specField\n const decSize = (fieldData.specField && fieldData.specField.decSize)\n ? fieldData.specField.decSize\n : undefined;\n\n let displayValue: string;\n\n // exception case where numeric would NOT be displayed as blank\n // TODO: restructure if block?\n if (style) {\n if (style === 'percent') {\n const transformOptions: LMTransformOptions = {\n precision,\n displayZero: true\n };\n displayValue = this.percentToDisplay(String(value), transformOptions);\n\n } else if (style === 'currency') {\n const transformOptions: LMTransformOptions = {\n precision,\n decSize,\n displayZero: true\n };\n displayValue = this.bcdToDisplay(String(value), transformOptions);\n\n } else {\n const transformOptions: LMTransformOptions = {\n displayZero: true\n };\n displayValue = this.numericToDisplay(value, transformOptions);\n }\n } else {\n if (precision === undefined) {\n const transformOptions: LMTransformOptions = {\n displayZero: true\n };\n displayValue = this.numericToDisplay(value, transformOptions);\n\n } else {\n const transformOptions: LMTransformOptions = {\n precision,\n decSize,\n displayZero: true\n };\n displayValue = this.bcdToDisplay(String(value), transformOptions);\n }\n }\n\n return displayValue;\n }\n\n private formatDate(params: any) {\n // params = value, style, fieldData\n // style = none, short, medium, long, full, SubFormatPattern\n // fieldData and specField are not guaranteed\n const value = params.value;\n const style = params.style;\n\n // set initial values\n let pattern = style;\n let specType = AppConstants.YYYYMMDD;\n let defaultValue = this.lmLocaleUtilService.calendar.YYYYMMDD.defaultValue;\n\n // reset initial values based on incoming style\n switch (style) {\n case 'short': // completely numeric, such as 12/13/1952\n pattern = Soho.Locale.calendar().dateFormat.short;\n break;\n\n case 'medium': // longer, such as Jan 12, 1952\n pattern = Soho.Locale.calendar().dateFormat.medium;\n break;\n\n case 'long': // longer, such as January 12, 1952 or 3:30:32pm\n pattern = Soho.Locale.calendar().dateFormat.long;\n break;\n\n case 'full': // completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST.\n pattern = Soho.Locale.calendar().dateFormat.full;\n break;\n\n case 'MMMM d': // anniversary\n pattern = Soho.Locale.calendar().dateFormat.month;\n defaultValue = this.lmLocaleUtilService.calendar.MMDD.defaultValue;\n specType = AppConstants.MMDD;\n break;\n\n case 'MMMM yyyy': // period\n pattern = Soho.Locale.calendar().dateFormat.year;\n defaultValue = this.lmLocaleUtilService.calendar.YYYYMM.defaultValue;\n specType = AppConstants.YYYYMM;\n break;\n\n case 'yyyy': // year - use literal value as format not defined in Locale\n pattern = 'yyyy';\n defaultValue = this.lmLocaleUtilService.calendar.YYYY.defaultValue;\n specType = AppConstants.YYYY;\n break;\n }\n\n if (value === 'current') {\n return this.dateTimeDisplayRule(new Date(), value, pattern, defaultValue, specType);\n }\n\n if (this.lmFieldUtilService.isBlank(specType, value)) {\n return '';\n }\n\n // TODO: technical debt: need to process SubformatPattern\n let yyyy; let mm; let dd; let hr; let mn; let sc;\n const isDateTime = (value.length === 16);\n\n if (value.length === 8 || isDateTime) {\n // 8 => date; 16 => datetime\n yyyy = parseInt(value.substr(0, 4), 10);\n mm = parseInt(value.substr(4, 2), 10);\n dd = parseInt(value.substr(6, 2), 10);\n\n if (isDateTime) {\n hr = value.substr(8, 2);\n mn = value.substr(10, 2);\n sc = value.substr(12, 2);\n }\n\n } else if (value.length === 6) {\n // period\n yyyy = parseInt(value.substr(0, 4), 10);\n mm = parseInt(value.substr(4, 2), 10);\n dd = 1;\n\n } else if (value.length === 4) {\n // anniversary or year\n mm = parseInt(value.substr(0, 2), 10);\n\n if (!_.inRange(mm, 1, 13)) {\n // is year\n yyyy = value;\n mm = 1;\n dd = 1;\n\n } else {\n // find closest leap year to get valid leap day (2/29) - soho does this for Soho.Locale.parseDate()\n yyyy = this.closestLeap();\n dd = parseInt(value.substr(2, 2), 10);\n }\n }\n\n const dt = (isDateTime)\n ? new Date(Date.UTC(yyyy, mm - 1, dd, hr, mn, sc))\n : new Date(yyyy, mm - 1, dd);\n\n if (!this.isDate(dt)) {\n return '';\n }\n\n return this.dateTimeDisplayRule(dt, value, pattern, defaultValue, specType);\n }\n\n // copied and modified from sohoxi locale.js\n private isLeap = y => ((y % 4 === 0) && (y % 100 !== 0)) || (y % 400 === 0);\n private closestLeap = (y?: number) => {\n let closestLeapYear = typeof y === 'number' && !isNaN(y) ? y : (new Date()).getFullYear();\n for (let i2 = 0; i2 < 4; i2++) {\n if (this.isLeap(closestLeapYear)) {\n break;\n }\n closestLeapYear--;\n }\n return closestLeapYear;\n };\n\n private formatTime(params: any) {\n // params = value, style, fieldData\n // style = none, short, medium, long, full, SubFormatPattern\n // fieldData and specField are not guaranteed\n const value = params.value;\n const style = params.style;\n\n let specType;\n const pattern = (style === 'long' || style === 'full')\n ? Soho.Locale.calendar().dateFormat.timestamp\n : Soho.Locale.calendar().timeFormat;\n\n if (value === 'current') {\n return this.dateTimeDisplayRule(new Date(), value, pattern,\n this.lmLocaleUtilService.calendar.TIME.defaultValue, AppConstants.TIME);\n }\n\n // TODO: technical debt: need to process SubformatPattern\n const isDateTime = (value.length === 16);\n\n // eg 2016111719421600\n const yyyy = (isDateTime) ? value.substr(0, 4) : '';\n const mm = (isDateTime) ? value.substring(4, 6) : '';\n const dd = (isDateTime) ? value.substring(6, 8) : '';\n\n // if a datetime, then start at 8; otherwise a time so start at zero\n const start = (isDateTime) ? 8 : 0;\n const hr = value.substr(start, 2);\n const mn = value.substr(start + 2, 2);\n const sc = value.substr(start + 4, 2);\n\n const dt = new Date();\n dt.setHours(hr, mn, sc);\n\n if (!this.isDate(dt)) {\n return '';\n }\n\n if (isDateTime) {\n return this.dateTimeDisplayRule(new Date(Date.UTC(yyyy, mm - 1, dd, hr, mn, sc)), value, pattern,\n this.lmLocaleUtilService.calendar.TIME.defaultValue, AppConstants.TIME);\n }\n\n return this.dateTimeDisplayRule(dt, value, pattern,\n this.lmLocaleUtilService.calendar.TIME.defaultValue, AppConstants.TIME);\n }\n\n private formatChoice(params: any) {\n // params = value, style, fieldData\n // style > SubFormatPattern\n const value = params.value;\n const style = params.style;\n const fieldData = params.fieldData;\n\n // TODO: technical debt: need to process choice and SubformatPattern\n const msg = (fieldData) ? '; fieldId=' + fieldData.fieldId : '';\n this._logger.log('Encountered message rule with choice type; value=' + value + '; style=' + style + msg);\n return value;\n }\n\n public toImageUrlValue(value: any, lines?: string, perspective?: string): SafeUrl {\n let imageUrl: SafeUrl = null;\n\n if (value === '') {\n value = '../lib/landmark/images/missing-picture-96px.png';\n return this.domSanitizer.bypassSecurityTrustUrl(value);\n }\n\n if (value !== undefined) {\n\n // only supporting the full perspective; remove size parameter and add perspective parameter\n if (perspective && perspective === 'full') {\n value = this.lmUrlUtilService.removeParam(value, 'size');\n value = this.lmUrlUtilService.addParamToUrl(value, 'perspective', perspective);\n }\n\n // lines can be used with the size parameter or the perspective parameter\n if (lines) {\n value = this.lmUrlUtilService.addParamToUrl(value, 'lines', lines);\n }\n\n // add all the csk values\n value = this.lmUrlUtilService.updateContextSessionKeyParams(value);\n imageUrl = this.domSanitizer.bypassSecurityTrustUrl(value);\n }\n\n return imageUrl;\n }\n\n public stringToElement(markupString: any): Element {\n const parser = new DOMParser();\n const html = parser.parseFromString(markupString, 'text/html');\n return html.body.firstElementChild;\n }\n\n /**\n * Determines how the rating control should display and returns the formatted array\n *\n * @param value - number value that determines how many stars are filled\n * @param id - string id to be used to determine the id for each option\n * @returns Array - array to be used in the template to display the control\n */\n public formatStarRatingOptions(value: number, id: string): Array {\n const options = this.uniqueStarRatings();\n\n if (value === undefined) {\n // safety\n value = 0;\n }\n\n if (value <= .2) {\n // zero stars\n this.fillOrClearAllStars(false, options, id);\n } else if (.2 < value && value < 0.8) {\n // half star\n this.fillStars(0, true, options, id);\n } else if (.8 <= value && value <= 1.2) {\n // one star\n this.fillStars(1, false, options, id);\n } else if (1.2 < value && value < 1.8) {\n // one and a half stars\n this.fillStars(1, true, options, id);\n } else if (1.8 <= value && value <= 2.2) {\n // two stars\n this.fillStars(2, false, options, id);\n } else if (2.2 < value && value < 2.8) {\n // two and a half stars\n this.fillStars(2, true, options, id);\n } else if (2.8 <= value && value <= 3.2) {\n // three stars\n this.fillStars(3, false, options, id);\n } else if (3.2 < value && value < 3.8) {\n // three and half stars\n this.fillStars(3, true, options, id);\n } else if (3.8 <= value && value <= 4.2) {\n // four stars\n this.fillStars(4, false, options, id);\n } else if (4.2 < value && value < 4.8) {\n // four and half stars\n this.fillStars(4, true, options, id);\n } else if (4.8 <= value) {\n // five stars\n this.fillOrClearAllStars(true, options, id);\n }\n\n return options;\n }\n\n /**\n * Set all stars options to either fill or empty\n *\n * @param fillStars - boolean on if the stars should be filled or empty\n * @param options - the array of options to modify\n * @param id - id to append to the start of the ids in the options array\n * @private\n */\n private fillOrClearAllStars(fillStars: boolean, options: Array, id: string) {\n const starClass = fillStars ? 'is-filled' : '';\n const href = fillStars ? '#icon-star-filled' : '#icon-star-outlined';\n options.forEach(option => {\n option.class = starClass;\n option.href = href;\n option.id = id + option.id;\n });\n }\n\n /**\n * Sets the star options to be filled, empty or half.\n *\n * @param starFillNumber - number of stars to fill in\n * @param andAHalf - boolean if there is a half more star that should be filled in (so 3.5 stars).\n * @param options - the options array to modify the values for\n * @param id - the id to append to the option id\n * @private\n */\n private fillStars(starFillNumber: number, andAHalf: boolean, options: Array, id: string): void {\n // Since the starFillNumber corresponds to the actual star clicked, and javascript indexes from 0\n // the indexes less than the star number should be filled and the indexes greater than and equal\n // to the starFillNumber should be empty.\n // Then if there should be a half star, that half will be the index of the starFillNumber as long\n // as this doesn't exceed 5\n options.forEach((option: LMStarRatingOption, index: number) => {\n option.id = id + option.id;\n\n if (index < starFillNumber) {\n option.class = 'is-filled';\n option.href = '#icon-star-filled';\n } else if (andAHalf && starFillNumber < 5 && starFillNumber === index) {\n option.class = 'is-half';\n option.href = '#icon-star-half';\n } else {\n option.class = 'lm-is-outline';\n option.href = '#icon-star-outlined';\n }\n });\n }\n\n private displayNegativeParens(value: string, transformOptions: LMTransformOptions): string {\n if (transformOptions && transformOptions.displayNegativeParens) {\n const minusSign: string = Soho.Locale.numbers().minusSign;\n const isLTRNegative: boolean = value.charAt(0) === minusSign || false;\n const isRTLNegative: boolean = value.charAt(value.length - 1) === minusSign || false;\n\n if (isLTRNegative) {\n value = [ '(', value.substring(1, value.length), ')' ].join('');\n } else if (isRTLNegative) {\n value = [ '(', value.substring(-1, value.length - 1), ')' ].join('');\n }\n }\n\n return value;\n }\n\n private displayAmountRelative(value: string, transformOptions: LMTransformOptions): string {\n if (transformOptions && transformOptions.displayInThousands) {\n value = String(Math.round(Soho.Locale.parseNumber(value) / 1000));\n } else if (transformOptions && transformOptions.displayInMillions) {\n value = String(Math.round(Soho.Locale.parseNumber(value) / 1000000));\n }\n\n return value;\n }\n\n private uniqueStarRatings(): Array {\n return JSON.parse(JSON.stringify(this.ratingOptions));\n }\n\n private getTimeZoneShortName(timezone: string): string {\n const options = {\n year: 'numeric',\n hourCycle: 'h24',\n timeZoneName: 'short'\n } as Intl.DateTimeFormatOptions;\n\n if (timezone) {\n options.timeZone = timezone;\n }\n\n const dateTimeArray = new Intl.DateTimeFormat(Soho.Locale.currentLocale.name, options).format(new Date()).split(' ');\n // there are locales that has 3 elements where the last element is the time zone\n // i.e. fi = '2022 klo UTC+10', bg = '2022 г., Гринуич+10', th = พ.ศ. 2565 GMT+10\n let timeZoneShortName = dateTimeArray?.[2] || dateTimeArray?.[1];\n\n // for locales such as vi-VN that has an interchanged format\n // i.e. vi = 'GMT+10, 2022'\n if (Number(timeZoneShortName) === new Date().getFullYear()) {\n timeZoneShortName = (dateTimeArray?.[0] || '').substring(0, (dateTimeArray?.[0] || '').length-1);\n }\n\n return timeZoneShortName || '';\n }\n\n public getCurrencySymbol(currencySymbolInfo: LMCurrencySymbolInfo, dataView: LMDataView): string {\n let currencySymbol;\n\n if (currencySymbolInfo.isRelatedField) {\n const field = dataView.fields[ currencySymbolInfo.currencySymbol ];\n if (field != null) {\n currencySymbol = field.value;\n }\n } else {\n currencySymbol = currencySymbolInfo.currencySymbol;\n }\n\n return currencySymbol;\n }\n\n public getMultipleFilterFieldValue(value: string, type: string, decSize?: number, precision?: number, allowZero?: boolean): LMMultipleFilterFieldValue {\n let formattedFilterValue;\n let transformOptions: LMTransformOptions;\n\n const dblQuotedTermsExp = new RegExp('(?:\\\\B\"[^\"]*)\\\\' + AppConstants.MULTI_SEARCH_TERM_DELIMITER + '(?:[^\"]*\"\\\\B)', 'g');\n const dblQuotedTerms = value.match(dblQuotedTermsExp);\n\n const unQuotedTermsExp = new RegExp('(?:\\\\B\"[^\"]*)\\\\' + AppConstants.MULTI_SEARCH_TERM_DELIMITER + '(?:[^\"]*\"[,]*\\\\B)', 'g');\n const unQuotedTerms = value.replace(unQuotedTermsExp, '').trim();\n\n const unQuotedTermsAry = unQuotedTerms.length > 0\n ? unQuotedTerms.split(AppConstants.MULTI_SEARCH_TERM_DELIMITER).filter(term => term.trim().length > 0)\n : [];\n\n\n // make sure blank values are filtered out for non numeric, bcd, percent fields\n const valuesArray = unQuotedTermsAry.filter((memberValue) => {\n if (allowZero) {\n return memberValue;\n } else {\n return !this.lmFieldUtilService.isBlank(type, memberValue);\n }\n });\n\n\n let combinedValues = !dblQuotedTerms ? valuesArray : dblQuotedTerms.concat(valuesArray);\n\n if (type === AppConstants.BCD\n || type === AppConstants.PERCENT) {\n transformOptions = {\n decSize,\n precision\n };\n\n // since BCD field, make sure the correct decSize and precision for display\n if (type === AppConstants.BCD) {\n combinedValues = combinedValues.map(itemValue => {\n transformOptions.allowMultiSelections = true;\n return this.toDataValue(itemValue, type, transformOptions);\n });\n }\n\n formattedFilterValue = combinedValues.map(itemValue => {\n // TODO since \" is no longer used for BCD/PERCENT (since , isn't the multivalue delimiter), do we need this line?\n itemValue = itemValue.replace(/\"/g, '');\n return this.toDataValue(itemValue, type, transformOptions);\n });\n } else {\n formattedFilterValue = combinedValues.map(itemValue =>\n this.toDataValue(itemValue, type, transformOptions));\n }\n\n const enteredFilterValue = combinedValues;\n\n return { formattedFilterValue, enteredFilterValue };\n }\n}\n","import { Injectable, ComponentRef } from '@angular/core';\n\n@Injectable()\nexport class LMModalService {\n private componentRef: ComponentRef;\n\n constructor() {}\n\n /**\n * @deprecated\n * Component resolver has been removed in Angular 2.0 final\n * TODO: Need to revisit modal\n */\n public responseModal(component: any, input: any): Promise {\n const self: LMModalService = this;\n\n return new Promise(function(resolve, reject) {\n // Destroy existing component\n // before constructing a new one\n if (self.componentRef) {\n self.componentRef.destroy();\n }\n\n // self.componentResolver.resolveComponent(component).then((factory) =>\n // {\n // let el = document.createElement('response-required-modal-component');\n // let body = document.getElementsByTagName('body')[0];\n //\n // body.appendChild(el);\n // el.setAttribute('id', 'responseModal');\n //\n // self.componentRef = factory.create(self.injector, null, '#responseModal');\n //\n // let instance = self.componentRef.instance;\n //\n // // Set Input\n // instance.modalSpec = input;\n //\n // // Set Output\n // instance.callback.subscribe(function (event:any)\n // {\n // resolve(event)\n // });\n //\n // // Load component\n // (self.applicationRef)._loadComponent(self.componentRef);\n // });\n });\n }\n\n /**\n * @deprecated\n * Component resolver has been removed in Angular 2.0 final\n * TODO: Need to revisit modal\n */\n public confirmationModal(component: any, input: any): Promise {\n const self: LMModalService = this;\n\n return new Promise(function(resolve, reject) {\n // Destroy existing component\n // before constructing a new one\n if (self.componentRef) {\n self.componentRef.destroy();\n }\n\n // self.componentResolver.resolveComponent(component).then((factory) =>\n // {\n // let el = document.createElement('confirmation-modal-component');\n // let body = document.getElementsByTagName('body')[0];\n //\n // body.appendChild(el);\n // el.setAttribute('id', 'confirmationModal');\n //\n // self.componentRef = factory.create(self.injector, null, '#confirmationModal');\n //\n // let instance = self.componentRef.instance;\n //\n // // Set Input\n // instance.modalSpec = input;\n //\n // // Set Output\n // instance.callback.subscribe(function (event:any)\n // {\n // resolve(event)\n // });\n //\n // // Load component\n // (self.applicationRef)._loadComponent(self.componentRef);\n // });\n });\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from '../lm-context.service';\nimport {\n ActionResource,\n FormResource,\n Resource,\n KeyedResource,\n} from '@resources/index';\n\nimport * as urltemplate from 'url-template';\nimport * as _ from 'lodash';\nimport { SohoMessageService } from 'ids-enterprise-ng';\nimport { AppConstants, LMBrowserUtilService, LMDialogButtonKey } from '@utils/index';\n\nexport interface URLOptions {\n resource: Resource;\n contextResource?: Resource;\n params?: any;\n userFolderId?: string;\n webApp?: string;\n}\n\nexport interface NameValueMap {\n [key: string]: string\n}\n\n@Injectable()\nexport class LMUrlUtilService {\n\n private accessibleWebAppsUrlTemplate: string;\n private bannerSpecUrlTemplate: string;\n private signOutUrlTemplate: string;\n\n constructor(\n private sohoMessageService: SohoMessageService,\n private lmBrowserUtil: LMBrowserUtilService,\n private lmContextService: LMContextService\n ) {}\n\n getUrlParam(url: string, param: string): any | null {\n if (url) {\n url = this.removeHash(url);\n\n const searchString = param + '=';\n const beginIndex = url.indexOf(searchString);\n if (beginIndex > -1) {\n let endIndex = url.indexOf('&', beginIndex);\n if (endIndex === -1) {\n endIndex = url.length;\n }\n return url.substring(beginIndex + searchString.length, endIndex);\n }\n }\n\n return null;\n }\n\n /**\n * useful to remove the hash and all chars to it's right on the url.\n * @param url\n * @private\n */\n private removeHash(url: string): string {\n // perhaps overkill but being super safe here to avoid javascript errors\n if (!url || url.indexOf('#') === -1) {\n return url;\n }\n\n return url.split('#')[0];\n }\n\n public getUrlPath(url: string): string {\n const findPos = url.indexOf('?');\n if (findPos >= 0) {\n return url.substring(0, findPos);\n }\n return url;\n }\n\n updateContextSessionKeyParams(url: string): string {\n const urlParams: LMUrlParams = {};\n const context = this.lmContextService.getContext();\n\n if (!context.contextSessionKeys || jQuery.isEmptyObject(context.contextSessionKeys)) {\n return url;\n }\n\n Object.keys(context.contextSessionKeys).forEach(key => {\n urlParams[ key ] = encodeURIComponent(context.contextSessionKeys[ key ]);\n });\n\n return this.updateUrlParams(url, urlParams);\n }\n\n /**\n * Helper method to update, add, or remove a parameter in a url\n *\n * @param url The url to find and replace a parameter value\n * @param urlParams The urlParams to replace\n * @returns A new url with the updated params.\n */\n updateUrlParams(url: string, urlParams: LMUrlParams): string {\n\n if (!urlParams) {\n return url;\n }\n\n const keys: Array = Object.keys(urlParams);\n for (let i = 0, len = keys.length; i < len; i++) {\n const key = keys[ i ];\n const value = urlParams[ key ];\n let expression: RegExp;\n let removeParam = false;\n\n switch (typeof urlParams[ key ]) {\n case 'number':\n // match number value, negative numbers are valid so match '-' char as well\n expression = new RegExp(key + '=[-0-9]*');\n break;\n\n case 'boolean':\n // use parens to match a full string. use | to delimate between different strings.\n // for example: (true|false) says match the entire string of true or false.\n expression = new RegExp(key + '=(true|false)');\n break;\n\n case 'string':\n if (value.trim().length === 0) {\n removeParam = true;\n break;\n }\n\n /**\n * Match any character between the key= and the '&' or end-of-string.\n * -----------------------------------------------------------------------------------------------------------\n * Explanation - https://regex101.com/r/qyRGGn/2\n * -----------------------------------------------------------------------------------------------------------\n * / pageop=.+?(?=[&\\z]) / g\n * pageop= matches the characters pageop= literally (case sensitive)\n *\n * - Match a single character not present in the list below\n * [^&?]*\n * ^ starts the match after the key + '=' sign.\n * * Quantifier — Matches between zero and unlimited times, as many times as possible,\n * giving back as needed (greedy)\n * &? matches a single character in the list &? (case sensitive)\n * - Global pattern flags\n * g modifier: global. All matches (don't return after first match)\n * -----------------------------------------------------------------------------------------------------------\n */\n expression = new RegExp(key + '=[^&?]*');\n break;\n\n case 'object': // in case null is used\n case 'undefined': // in case value is undefined\n if (!value) {\n removeParam = true;\n }\n break;\n\n default:\n continue;\n }\n\n if (removeParam) {\n url = this.removeParam(url, key);\n } else if (url.match(expression)) {\n // if expression is matched then replace with the new value.\n url = url.replace(expression, key + '=' + value);\n } else {\n // if expression is not found then append the key value pair to the url\n const delimiter: string = url.indexOf('?') === -1 ? '?' : '&';\n url += delimiter + key + '=' + value;\n }\n }\n\n return url;\n }\n\n // buildRelatedUrl(urlTemplate: string, fromResourceId: string): string {\n // const compiledUrlTemplate = urltemplate.parse(urlTemplate);\n // return compiledUrlTemplate.expand({ resourceId: fromResourceId });\n // }\n //\n // buildRelatedUrl(initialRelatedData: LMInitialRelatedData, fromDataView: LMDataView, url?: string) {\n // let fromResource: KeyedResource = this.buildContextResourceId(initialRelatedData, fromDataView);\n // let baseUrl = url || initialRelatedData.baseUrl;\n // return baseUrl + '&' + fromResource.resourceType + '=' + fromResource.resourceId;\n // }\n //\n // /**\n // * Builds a context resource object for a given dataView.\n // * todo: update to handler multiple contextResources listed in listSpec.initialRelatedData object.\n // * @param listSpec The list spec of the related list containing the sourceResourceId and sourceResourceType\n // * @param fromDataView The dataView to be used to resolve the context resourceId template.\n // * @returns {KeyedResource} A keyed resource resolved against the dataview.\n // */\n // buildContextResourceId(initialRelatedData: LMInitialRelatedData, fromDataView: LMDataView): KeyedResource {\n // let viewKeyResource = new KeyedResource({ resourceId: fromDataView.resourceId });\n // let fromResource = new KeyedResource({\n // resourceId: initialRelatedData.contextResources[0].resourceId,\n // resourceType: initialRelatedData.contextResources[0].resourceType,\n // contextValueArray: viewKeyResource.contextValueArray,\n // dataView: fromDataView\n // });\n //\n // return fromResource;\n // }\n\n public getUrlParams(url: string): Params {\n const urlParams: Params = {};\n let urlParamStr = '';\n\n if (url) {\n url = this.removeHash(url);\n const paramPos = url.indexOf('?');\n if (paramPos >= 0) {\n urlParamStr = url.substring(paramPos + 1);\n }\n\n const paramArray = urlParamStr.split('&');\n paramArray.map((param: string) => {\n const keyValue = param.split('=');\n urlParams[ keyValue[ 0 ] ] = keyValue[ 1 ];\n });\n }\n return urlParams;\n }\n\n public objectToCubeQueryString(params?: any): string {\n if (!params || _.isEmpty(params) || !_.isPlainObject(params)) {\n return null;\n }\n const queryString1 = Object.keys(params)\n .filter(k => !(Array.isArray(params[ k ]) || _.isPlainObject(params[ k ])))\n .map((l) => encodeURIComponent(l) + '=' + encodeURIComponent(params[ l ]))\n .join('&');\n\n // Array of Array of objects.\n const queryString2 = Object.keys(params)\n .filter(k => Array.isArray(params[ k ]))\n .map(l => params[ l ])\n .map(m => m.map((n, index) => Object.keys(n)\n .map(o => encodeURIComponent(o) + '_' + index + '=' + encodeURIComponent(n[ o ]))\n .join('&'))\n .join('&'))\n .join('&');\n\n return queryString1 + '&' + queryString2;\n }\n\n public cubeOverridesToQueryString(cubeOverrides: LMCubeOverrides, delimiter = '&'): string {\n let params = '';\n const dimOverrides = this.objectToQueryString(cubeOverrides.dimensionOverrides);\n if (dimOverrides !== null) {\n params += delimiter + dimOverrides;\n delimiter = '&';\n }\n\n if (cubeOverrides.reportingBasis) {\n params += delimiter + 'reportingBasis=' + cubeOverrides.reportingBasis;\n delimiter = '&';\n }\n\n if (cubeOverrides.topDimensions?.length) {\n const topDimensions = this.objectToCubeQueryString({ topDimensions: cubeOverrides.topDimensions });\n if (topDimensions !== null) {\n params += topDimensions;\n delimiter = '&';\n }\n }\n\n if (cubeOverrides.fltrDimensions?.length) {\n const fltrDimensions = this.objectToCubeQueryString({ fltrDimensions: cubeOverrides.fltrDimensions });\n if (fltrDimensions !== null) {\n params += fltrDimensions;\n delimiter = '&';\n }\n }\n\n if (cubeOverrides.topContextFields?.length) {\n const topContextFields = this.objectToCubeQueryString({ topContextFields: cubeOverrides.topContextFields });\n if (topContextFields !== null) {\n params += topContextFields;\n delimiter = '&';\n }\n }\n\n const periodOverrides = this.objectToQueryString(cubeOverrides.periodOverrides);\n if (periodOverrides !== null) {\n params += delimiter + periodOverrides;\n delimiter = '&';\n }\n\n if (cubeOverrides.periodView) {\n params += delimiter + 'periodView=' + cubeOverrides.periodView;\n delimiter = '&';\n }\n\n if (cubeOverrides.pivotView) {\n params += delimiter + 'pivot=' + cubeOverrides.pivotView;\n delimiter = '&';\n }\n\n if (cubeOverrides.columnView) {\n params += delimiter + 'colView=' + cubeOverrides.columnView;\n delimiter = '&';\n }\n return params;\n }\n\n public addParamToUrl(url: string, paramIn: string, valueIn: string): string {\n if (url.indexOf(paramIn) >= 0) {\n const urlParams: LMUrlParams = {};\n urlParams[paramIn] = valueIn;\n\n return this.updateUrlParams(url, urlParams);\n } else {\n return this.appendToQueryString(url, paramIn + '=' + valueIn);\n }\n }\n\n public appendToQueryString(url: string, parameter: string): string {\n const delimiter = (url.indexOf('?') > -1) ? '&' : '?';\n return url + delimiter + parameter;\n }\n\n public objectToQueryString(params?: any): string {\n if (!params || _.isEmpty(params) || !_.isPlainObject(params)) {\n return null;\n }\n\n // todo spec-url-refactor is encoding the key really required?\n // see usage where navigationContext is passed in called.\n return Object.keys(params)\n .map((k) => encodeURIComponent(k) + '=' + encodeURIComponent(params[ k ]))\n .join('&');\n }\n\n public buildFormTransactionUrlOptions(resourceId: string): URLOptions {\n const params: any = { action: '_execute' };\n const resource: FormResource = new FormResource(\n {\n resourceType: 'form',\n resourceId\n });\n\n const options: URLOptions = {\n resource,\n params,\n };\n\n return options;\n }\n\n public buildFormActionRedirectUrlOptions(dataView: LMDataView, actionSpec: LMActionSpec): URLOptions {\n // Resource is Action Resource and action controller urls requires output = spec at the end\n const params: any = { form: dataView.resourceId, output: 'spec' };\n const resource: ActionResource = new ActionResource(\n {\n resourceType: 'action',\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n\n const options: URLOptions = {\n resource,\n params,\n };\n\n return options;\n }\n\n public buildUrl(urlOptions: URLOptions) {\n const resource = urlOptions.resource;\n const contextResource = urlOptions.contextResource;\n const params = urlOptions.params;\n const userFolderId = urlOptions.userFolderId;\n const webapp = urlOptions.webApp;\n\n // encodeURI wansn't encoding '+' plus signs, so use encodeURIComponent instead\n // http://jira.lawson.com/browse/LMCLIENT-3878\n let url = this.buildBaseUrl(webapp) + '/' + resource.resourceType + '/' + resource.generateResourceId(true);\n let delimiter = '?';\n\n if (contextResource) {\n url += delimiter + contextResource.resourceType + '=' + contextResource.generateResourceId(true);\n delimiter = '&';\n }\n\n if (userFolderId) {\n url += delimiter + 'userfolder=' + userFolderId;\n delimiter = '&';\n }\n\n if (params && !_.isEmpty(params) && _.isPlainObject(params)) {\n url += delimiter + this.objectToQueryString(params);\n delimiter = '&';\n }\n\n url = this.updateContextSessionKeyParams(url);\n\n const context = this.lmContextService.getContext();\n if (context.proxy) {\n url += delimiter + '_u=' + context.proxy;\n }\n\n return this.encodeParens(url);\n }\n\n public fieldsToUrlParams(harnessFields: LMHarnessInterfaceFields, paramPrefix: string): string {\n let strParams = '';\n if (harnessFields) {\n Object.keys(harnessFields).map((fieldId) => {\n strParams += '&' + paramPrefix + '.' + fieldId + '=' + harnessFields[fieldId].value;\n });\n }\n\n return strParams;\n }\n\n public propagateSessionKeys(url: string, delimiter: string): string {\n const context = this.lmContextService.getContext();\n if (context.contextSessionKeys && Object.keys(context.contextSessionKeys).length !== 0) {\n const urlParams = this.getParams(url);\n Object.keys(context.contextSessionKeys).forEach((key) => {\n if (!urlParams.hasOwnProperty(key)) {\n url += delimiter + key + '=' + encodeURIComponent(context.contextSessionKeys[ key ]);\n delimiter = '&';\n }\n });\n }\n return url;\n }\n\n /**\n * todo maria, we really don't want to have to encode parens. Angular, however, is failing unless we do.\n * Encodes parens due to angular being unable to handle them.\n * @param url\n * @returns\n */\n public encodeParens(url: string) {\n return url\n .replace(/\\(/g, '%28')\n .replace(/\\)/g, '%29');\n }\n\n public encodePlus(url: string): string {\n let queryStringIndex = url.indexOf('?');\n if (queryStringIndex === -1) {\n queryStringIndex = url.length;\n }\n\n const uri = url.substring(0, queryStringIndex);\n const openParenIndex = uri.indexOf('(');\n const closeParenIndex = uri.lastIndexOf(')');\n if (openParenIndex === -1 || closeParenIndex === -1 || openParenIndex > queryStringIndex) {\n return url;\n }\n\n const resource = uri.substring(openParenIndex + 1, closeParenIndex).replace(/\\+/g, '%20');\n return url.substr(0, openParenIndex + 1) + resource + url.substr(closeParenIndex);\n }\n\n public encodeHtmlEntity(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n }\n\n public getBaseUrl(relativeUrl?: boolean): string {\n return this.buildBaseUrl(undefined, relativeUrl);\n }\n public buildBaseUrl(altWebapp: string, relativeUrl?: boolean): string {\n const context = this.lmContextService.getContext();\n\n if (context) {\n const urlPdlOrDa = context.urlPdlOrDa;\n const webApp = altWebapp ? altWebapp : context.webApp;\n const isGen = this.lmContextService.isGenProductLine();\n\n if (webApp && (urlPdlOrDa || isGen)) {\n if (isGen) {\n if (relativeUrl) {\n return '/' + webApp;\n } else {\n return location.protocol + '//' + location.host + '/' + webApp;\n }\n } else {\n if (relativeUrl) {\n return '/' + urlPdlOrDa + '/' + webApp;\n } else {\n return location.protocol + '//' + location.host + '/' + urlPdlOrDa + '/' + webApp;\n }\n }\n }\n }\n\n // todo pwpatton this should never happen.\n console.log('ERROR: LMUrlUtilService:getBaseUrl(): url should never be relative, please refactor calling code');\n return '..';\n }\n\n /**\n * Examples:\n * { modifier: 'contains', fieldId: 'JobPostingSearchRel_col_KeywordSearch', value: 'St. Paul' }\n * fc.JobPostingSearchRel_col_KeywordSearch=contains(St.+Paul)\n *\n * @param searchCriteria\n * @returns\n */\n public filterFieldCriteriaToUrlParams(filterCriteriaArray: Array, prefix: string): string | undefined {\n const urlParamArray = filterCriteriaArray.map((filterFieldCriteria: LMFilterFieldCriteria) =>\n this.filterFieldCriteriaToUrlParam(filterFieldCriteria, filterFieldCriteria.isBusClassContextField ? 'bcf' : prefix));\n\n if (!urlParamArray || urlParamArray.length === 0) {\n return undefined;\n }\n\n return urlParamArray.join('&');\n\n // let urlParamString: string = undefined;\n // Observable\n // .from(filterCriteriaArray)\n // .map((filterFieldCriteria: LMFilterFieldCriteria) =>\n // this.filterFieldCriteriaToUrlParam(filterFieldCriteria, filterFieldCriteria.isBusClassContextField ? 'bcf' : prefix))\n // .toArray()\n // .subscribe((paramList: Array) =>\n // urlParamString = paramList.join('&'))\n // .unsubscribe();\n //\n // return urlParamString;\n }\n\n /**\n * Returns LMFilterFieldCriteria as an array of NameValueMaps\n * @param filterCriteriaArray\n * @param prefix\n */\n public filterFieldCriteriaToNameValueMap(filterCriteriaArray: LMFilterFieldCriteria[], prefix: string): NameValueMap[] {\n return filterCriteriaArray.map((filterFieldCriteria: LMFilterFieldCriteria) =>\n this.filterFieldCriteriaToUrlParam(filterFieldCriteria, filterFieldCriteria.isBusClassContextField ? 'bcf' : prefix, true) as NameValueMap);\n }\n\n private filterFieldCriteriaToUrlParam(filterFieldCriteria: LMFilterFieldCriteria, prefix: string, objectMap = false): string | NameValueMap {\n if (Array.isArray(filterFieldCriteria.value)) {\n let filterQueryString = '';\n\n if (filterFieldCriteria.value.length === 0) {\n if (filterFieldCriteria?.operator === 'isEmpty' ||\n filterFieldCriteria?.operator === 'isNotEmpty') {\n filterQueryString = `${filterFieldCriteria.operator}()`;\n } else {\n return '';\n }\n }\n\n for (let i = 0; filterFieldCriteria.value.length > i; i++) {\n if (filterFieldCriteria.operator !== undefined) {\n filterQueryString += filterFieldCriteria.operator;\n }\n filterQueryString += (filterFieldCriteria.value[i] === '') ? '(blank)' : '(' + filterFieldCriteria.value[i] + ')';\n if (i + 1 === filterFieldCriteria.value.length) {\n break;\n }\n filterQueryString += filterFieldCriteria.operator.startsWith('doesNot') ? '&&' : '||';\n }\n\n return this.getFilterCriteriaMap(`${prefix}.${filterFieldCriteria.fieldId}`, filterQueryString, objectMap);\n }\n\n if (filterFieldCriteria.operator !== undefined) {\n return this.getFilterCriteriaMap(`${prefix}.${filterFieldCriteria.fieldId}`, `${filterFieldCriteria.operator}(${filterFieldCriteria.value})`, objectMap);\n } else {\n return this.getFilterCriteriaMap(`${prefix}.${filterFieldCriteria.fieldId}`, filterFieldCriteria.value, objectMap);\n }\n }\n\n private getFilterCriteriaMap(name: string, value: string, objectMap = false): string | NameValueMap {\n // need to double escape a double-quote\n value = value.replace(/\\\"/g, '\\\\\\\"');\n\n // When objectMap is true, the value is NOT URL encoded since Angular encodes the HTTPParams in HTTP Get.\n if (objectMap) {\n const map = {};\n map[name] = value;\n return map;\n }\n\n // This value is added to the URL String and not passed as HTTPParams in HTTP Get. So it has to be encoded.\n return `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n }\n\n public get getDataArea(): string {\n return this.lmContextService.getContext().dataArea;\n }\n\n public get getWebApp(): string {\n return this.lmContextService.getContext().webApp;\n }\n\n setAccessibleWebAppsUrlTemplate(url: string) {\n this.accessibleWebAppsUrlTemplate = url;\n }\n\n setBannerSpecUrlTemplate(url: string) {\n this.bannerSpecUrlTemplate = url;\n }\n\n public getAccessibleWebAppsUrl() {\n // if (this.lmContextService.allowAnonymousAccess()) {\n return this.resolveUrlTemplateAgainstContext(accessibleWebAppsUrl, this.getWebApp);\n // }\n // return this.resolveUrlTemplateAgainstContext(accessibleWebAppsUrl, 'web');\n }\n\n public getAccessDeniedUrl() {\n let url = this.getAccessibleWebAppsUrl();\n url += url.indexOf('?') > -1 ? '&' : '?';\n url += 'signout=true';\n\n return this.resolveUrlTemplateAgainstContext(url, this.getWebApp);\n }\n\n public getBannerSpecUrl(requestType?: string) {\n let bannerUrl = this.resolveUrlTemplateAgainstContext(bannerSpecUrl);\n bannerUrl = this.removeParams(bannerUrl, [ AppConstants.PARAM_CSK_ASOFDATE, AppConstants.PARAM_CSK_SHOWDELETEDRECORDS ]);\n bannerUrl = this.updateUrlParams(bannerUrl, this.addDataContextUrlParams({ }));\n\n if (requestType) {\n bannerUrl += (bannerUrl.indexOf('?') > -1 ? '&' : '?') + 'requestType=logToServerConsole';\n }\n\n return bannerUrl;\n }\n\n public getCaptchaSpecUrl() {\n return `${this.getBaseUrl()}/banner/home?output=spec&requestType=captcha`;\n }\n\n public get signOutUrl() {\n return this.signOutUrlTemplate;\n }\n\n public set signOutUrl(url: string) {\n this.signOutUrlTemplate = url;\n }\n\n private resolveUrlTemplateAgainstContext(url: string, webApp?: string) {\n const context = this.lmContextService.getContext();\n const urlCompiledTemplate = urltemplate.parse(url);\n return urlCompiledTemplate.expand({ urlPdlOrDa: context.urlPdlOrDa, webApp: webApp || context.webApp });\n }\n\n buildSelectDataViewPagingRequest(selectRequestData: SelectRequestData): SelectPagingRequest {\n if (!selectRequestData) {\n return undefined;\n }\n\n const requestData: SelectPagingRequest = {\n requestType: 'selectPaging',\n viewType: selectRequestData.viewType,\n viewName: selectRequestData.viewName,\n dataView: selectRequestData.dataView,\n };\n if (selectRequestData.displayTopNodeAndChildren !== undefined) {\n requestData.displayTopNodeAndChildren = selectRequestData.displayTopNodeAndChildren;\n }\n if (selectRequestData.useTopNodeFilter !== undefined) {\n requestData.useTopNodeFilter = selectRequestData.useTopNodeFilter;\n }\n if (selectRequestData.structureTopNodeFilter !== undefined) {\n requestData.structureTopNodeFilter = selectRequestData.structureTopNodeFilter;\n }\n if (selectRequestData.actionName) {\n requestData.actionName = selectRequestData.actionName;\n }\n if (selectRequestData.pfActionName) {\n requestData.pfActionName = selectRequestData.pfActionName;\n }\n if (selectRequestData.navigationContext) {\n requestData.navigationContext = selectRequestData.navigationContext;\n }\n\n return requestData;\n }\n\n /**\n * Remove the origin from the url to make it a full relative path.\n * For Example:\n * http://localhost:8001/hcm/EmployeeSelfService/home?csk.ng=true\n * - will convert to -\n * /hcm/EmployeeSelfService/home?csk.ng=true\n *\n * @param redirectUrl\n * @returns\n */\n toRelativeUrl(url: string, encodeParens = false, encodePlus = false): string {\n let relativeUrl: string;\n const origin = window.location.origin ? window.location.origin : '';\n\n if (url.toLowerCase().startsWith(origin.toLowerCase())) {\n relativeUrl = url.substring(origin.length);\n } else {\n relativeUrl = url;\n }\n\n if (encodePlus) {\n relativeUrl = this.encodePlus(relativeUrl);\n }\n\n if (encodeParens) {\n relativeUrl = this.encodeParens(relativeUrl);\n }\n\n return relativeUrl;\n }\n\n public toFullUrl(url: string): string {\n const protocol = url.substring(0, 4);\n if (protocol === 'http') {\n return url;\n }\n\n // ----------------------------------------------------------\n // is the url a relative url?\n // ----------------------------------------------------------\n const urlPdlOrDa = this.lmContextService.getUrlPdlOrDa();\n return window.location.protocol + '//' + window.location.host + '/' + urlPdlOrDa + url;\n }\n\n /**\n * Open a file url with a unique number so a new tab opens each time\n * regardless of whether it's the same url or not.\n *\n * @param url location of the file\n */\n public openFile(url: string): void {\n const pdfWindow = this.openExternalUrl(url);\n }\n\n /**\n * See http://stackoverflow.com/questions/7501424/set-title-in-the-window-popup for more details\n *\n * @param pdfWindow\n * @param url\n * @param title\n */\n private checkPdf(pdfWindow, url, title): void {\n if (pdfWindow.document) {\n pdfWindow.document.write(\n '' +\n '' + title + '' +\n '' +\n ''\n );\n } else {\n // if not loaded yet\n setTimeout(() => {\n this.checkPdf(pdfWindow, url, title);\n }, 10); // check in another 10ms\n }\n }\n\n // todo ppatton claudenbach this one doesn't seem to work.\n // private checkPdf(pdfWindow, title): void {\n // if (pdfWindow.document) {\n // pdfWindow.document.title = title;\n // } else {\n // setTimeout(() => { this.checkPdf(pdfWindow, title); }, 10); // check in another 10ms\n // }\n // }\n\n public stripDefaultPort(url: string) {\n url = url.replace(':80/', '/');\n return url.replace(':443/', '/');\n }\n\n // Only to be used in IE\n public stripDefaultPortFromHost(url: string) {\n url = url.replace(':80', '');\n return url.replace(':443', '');\n }\n\n // ----------------------------------------------------------------------\n // todo this should be moved to another service so that we don't need\n // to inject SohoMessageService in the depencencies\n // ----------------------------------------------------------------------\n public openExternalUrl(url: string): void {\n url = this.encodePlus(url);\n url = this.encodeParens(url);\n\n if (this.lmBrowserUtil.isMobile) {\n if (this.lmContextService.insideInforGo()) {\n // InforGo requires a full url when navigating to an internal page or external page\n // check for missing host / port and appened if needed.\n const protocol = url.substring(0, 4);\n if (protocol.toLowerCase() !== 'http') {\n url = window.location.protocol + '//' + window.location.host + url;\n }\n\n // check for same domain\n // if the domain is the same then open url in InforGo webview\n // else open in their mobile_openLinkInExternalBrowser\n const origin = window.location.origin ? window.location.origin : '';\n\n if (url.toLowerCase().startsWith(origin.toLowerCase())) {\n window.open(url, '_blank');\n } else {\n // need to find a way to get this into lm-context-util.service.ts\n const data = { link: url };\n infor.companyon.client.sendMessage('mobile_openLinkInExternalBrowser', data);\n }\n } else {\n const popup_window = window.open(url);\n try {\n popup_window.focus();\n } catch (e) {\n const buttons = [\n {\n id: null,\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n click: (e, modal) => {\n modal.close();\n }\n }\n ];\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('PopupBlocker'))\n .title('')\n .buttons(buttons)\n .open();\n return;\n }\n }\n } else {\n window.open(url, '_blank');\n }\n }\n\n public getParams(url: string): any {\n const nameValuePairs = {};\n if (url) {\n url = this.removeHash(url);\n const paramStart: number = url.indexOf('?');\n if (paramStart < 0) {\n return [];\n }\n const paramsStr = url.substring(paramStart + 1);\n const params = paramsStr.split('&');\n\n params.forEach((param) => {\n const paramPairs = param.split('=');\n nameValuePairs[paramPairs[ 0 ]] = paramPairs[ 1 ];\n });\n }\n return nameValuePairs;\n }\n\n public remove3XParams(url: string): string {\n url = this.removeParam(url, 'csk.3x');\n url = this.removeParam(url, 'csk.hidemenubar');\n url = this.removeParam(url, 'csk.hidetitlebar');\n return url;\n }\n\n public remove3XParam(url: string): string {\n url = this.removeParam(url, 'csk.3x');\n return url;\n }\n\n /**\n * Removes csk params from the url that are not in the LMGlobal Context object.\n */\n public removeCsksNotInGlobalContext(url: string): string {\n const context = this.lmContextService.getContext();\n\n const keys = [\n 'csk.ng',\n 'csk.cli',\n 'csk.showusingxi',\n 'csk.ng3x',\n 'csk.displayType',\n ];\n\n keys.filter(key =>\n // filter for csk params that aren't in LMContext\n !context.contextSessionKeys || !context.contextSessionKeys[ key ])\n .forEach(key =>\n // remove those params from the url\n url = this.removeParam(url, key));\n\n return url;\n\n // const cskParamsNotInContext = this.getCskParamsNotInContext(url);\n //\n // Object.keys(cskParamsNotInContext)\n // .forEach(key => cskParamsNotInContext[key] = null);\n //\n // const newUrl = this.updateUrlParams(url, cskParamsNotInContext);\n // return newUrl;\n }\n\n /**\n * Look for each csk in the url that is not in the global context and return it.\n * Params in the paramsToIgnore param are not included in the returned object.\n */\n public getCskParamsNotInContext(url: string, paramsToIgnore: string[]): Params {\n const context = this.lmContextService.getContext();\n const cskParams = this.getPrefixedParams(url, 'csk.');\n const cskParamsNotInContext: Params = {};\n\n Object.keys(cskParams)\n // if key is not in contextSessionKeys\n .filter(key => !context.contextSessionKeys || !context.contextSessionKeys[ key ])\n // if key is not in ignore list\n .filter(key => !paramsToIgnore || !paramsToIgnore.includes(key))\n // then add it to list of csk params not in context\n .forEach(key => cskParamsNotInContext[key] = cskParams[key]);\n\n return cskParamsNotInContext;\n }\n\n public stripCSKs(paramArray: Array): Array {\n return paramArray.filter(k => !k.startsWith('csk.'));\n }\n\n public hasParam(url: string, param: string): boolean {\n return this.getUrlParam(url, param) !== null;\n }\n\n /**\n * removes mulitple params from the url.\n */\n public removeParams(url: string, params: string[]): string {\n params.forEach(param => url = this.removeParam(url, param));\n return url;\n }\n\n /**\n * removes a param from the url.\n */\n public removeParam(url: string, paramIn: string): string {\n const paramStart: number = url.indexOf('?');\n if (paramStart < 0) {\n return url;\n }\n\n const paramsStr = url.substring(paramStart + 1);\n const params = paramsStr.split('&');\n const goodParams = new Array();\n\n params.filter((param) => {\n const paramPairs = param.split('=');\n if (paramPairs[ 0 ] !== paramIn) {\n goodParams.push(param);\n }\n });\n\n return url.substring(0, paramStart) + (goodParams.length > 0 ? '?' + goodParams.join('&') : '');\n\n // todo ppatton Refactor this function to be simpler; like below\n // Building a URL, with buildURLFromHref, encodes it's internal href.\n // Will that be an issue for the result we return?\n // const urlObject = this.buildURLFromHref(url);\n // if (!urlObject.searchParams.has(paramIn)) {\n // return url;\n // }\n //\n // urlObject.searchParams.delete(paramIn);\n // return urlObject.href;\n }\n\n public removeFilterCriteria(url: string): string {\n const paramStart: number = url.indexOf('?');\n\n if (paramStart < 0) {\n return url;\n }\n\n const paramsStr = url.substring(paramStart + 1);\n const params = paramsStr.split('&');\n const goodParams = new Array();\n\n params.filter((param) => {\n const paramPairs = param.split('=');\n if (paramPairs[0].indexOf('fc.') !== 0) {\n goodParams.push(param);\n }\n });\n\n return url.substring(0, paramStart) + (goodParams.length > 0 ? '?' + goodParams.join('&') : '');\n }\n\n public replaceUrlParams(url: string, newUrlParams: LMUrlParams, addCsks = true): string {\n let newUrl = url.substr(0, url.indexOf('?'));\n let delimiter = '?';\n if (Object.keys(newUrlParams).length > 0) {\n newUrl = newUrl + delimiter + this.objectToQueryString(newUrlParams);\n delimiter = '&';\n }\n if (addCsks) {\n newUrl = this.propagateSessionKeys(newUrl, delimiter);\n }\n return newUrl;\n }\n\n public getWebAppNameFromUrl(url: string): string {\n const newURL = this.buildURLFromHref(url);\n const isGenWebApp = this.isGenUrlUsingURL(newURL);\n return this.getUrlPathValue(newURL.pathname, AppConstants.URLSEG_WEBAPP_INDEX, isGenWebApp);\n }\n\n public getHeaderForUserTimeZone(): any {\n try {\n const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n if (userTimeZone) {\n return { headers: { 'user.timezone.id': userTimeZone } };\n }\n\n const rightNow = new Date();\n const stdTime = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);\n const dstTime = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);\n\n const offset: string = (-(stdTime.getTimezoneOffset() / 60)).toString();\n const dstOffset: string = (-(dstTime.getTimezoneOffset() / 60)).toString();\n return { headers:\n { 'user.timezone.offset': offset,\n 'user.timezone.dst': dstOffset } };\n } catch (e) {\n // fail safe\n return {};\n }\n }\n\n /**\n * Return the bannerSpec for the given url.\n * @returns\n */\n public getUserContextUrl(): string {\n let bannerUrl = this.getBannerSpecUrl();\n const delimiter = bannerUrl.indexOf('?') > -1 ? '&' : '?';\n bannerUrl += delimiter + 'requestType=userContext';\n\n return bannerUrl;\n }\n\n public getPrefixedParams(url: string, prefix: string): Params {\n const urlParams = this.getUrlParams(url);\n const urlParamsWithPrefix = {} as Params;\n\n Object.keys(urlParams)\n .filter(key => key.startsWith(prefix))\n .map(key => urlParamsWithPrefix[key] = urlParams[key]);\n\n return urlParamsWithPrefix;\n }\n\n /**\n * @deprecated use getPrefixedParams instead. it's definitely faster.\n */\n private getPrefixedParamsFromSearchParams(searchParams: URLSearchParams, prefix: string): Params {\n const params: Params = {};\n\n searchParams.forEach((value, key) => {\n if (key.startsWith(prefix)) {\n params[key] = value;\n }\n });\n\n return params;\n }\n\n // todo ppatton no usages found - remove me at some point - 9/17/2020\n // public paramsToFilterCriteria(queryParams: Params): LMFilterFieldCriteria[] {\n // const filterCriteria: LMFilterFieldCriteria[] =\n // Object.keys(queryParams)\n // // todo not sure we need flc prefixes in this filter. - Phillip\n // .filter(key => key.startsWith('fc.') || key.startsWith('flc.') || key.startsWith('bcf.'))\n // .map(key => this.buildFilterCriteria(key, queryParams[key]));\n //\n // return filterCriteria;\n // }\n\n private buildFilterCriteria(key: string, val: string): LMFilterFieldCriteria {\n /**\n * [^.]+$\n * Match a single character not present in the string [^.]+\n * + Quantifier - Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)\n * . matches the character . literally (case sensitive)\n */\n const fieldId = key.match('[^.]+$')[0];\n\n /**\n * ^[^\\(]+\n * ^ asserts position at start of the string\n * Match a single character not present in the string [^\\(]+\n * + Quantifier - Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)\n * \\( matches the character ( literally (case sensitive)\n */\n const operator = val.match('^[^\\(]+')[0] as LMFilterFieldOperator;\n\n /**\n * \\(([^)]+)\\)\n * \\( matches the character ( literally (case sensitive)\n * 1st Capturing Group ([^)]+)\n * Match a single character not present in the list below [^)]+\n * + Quantifier - Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)\n * ) matches the character ) literally (case sensitive)\n * \\) matches the character ) literally (case sensitive)\n */\n const value = val.match('\\\\(([^)]+)\\\\)')[1];\n\n return { operator, fieldId, value };\n }\n\n public isAbsoluteUrl(httpUrl: string): boolean {\n /**\n * (?:^[a-z][a-z0-9+.-]*:|\\/\\/)\n * Non-capturing group (?:^[a-z][a-z0-9+.-]*:|\\/\\/)\n * 1st Alternative ^[a-z][a-z0-9+.-]*:\n * ^ asserts position at start of a line\n * Match a single character present in the list below [a-z]\n * a-z a single character in the range between a (index 97) and z (index 122) (case insensitive)\n * Match a single character present in the list below [a-z0-9+.-]*\n * Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)\n * a-z a single character in the range between a (index 97) and z (index 122) (case insensitive)\n * 0-9 a single character in the range between 0 (index 48) and 9 (index 57) (case insensitive)\n * +.- matches a single character in the list +.- (case insensitive)\n * : matches the character : literally (case insensitive)\n * 2nd Alternative \\/\\/\n * \\/ matches the character / literally (case insensitive)\n * \\/ matches the character / literally (case insensitive)\n *\n * https://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative\n * Test with https://regex101.com/r/nR2yL6/3\n * todo Proper solution fails. I'm not sure what I'm doing wrong with this regex.\n * return !!httpUrl.match('?:^[a-z][a-z0-9+.-]*:|\\/\\/)/gm');\n */\n // alternative considered to be lacking.\n return (httpUrl.indexOf('://') > 0 || httpUrl.indexOf('//') === 0);\n }\n\n /**\n * Return the bannerSpec for the given url.\n * @returns\n */\n public getTelegrafUrl(): string {\n let telegrafUrl = this.getBannerSpecUrl();\n const delimiter = telegrafUrl.indexOf('?') > -1 ? '&' : '?';\n telegrafUrl += delimiter + 'requestType=telegraf';\n\n return telegrafUrl;\n }\n\n // -------------------------------------------------------------------------\n // todo ppatton these build function should really be moved into their own\n // service and not be considered part of the standard url utitilities.\n // -------------------------------------------------------------------------\n public buildListInitialDataUrl(urlInfo: LMListUrlInfo, listSpec: LMListSpec, options?: LMListUrlInfoOptions): string {\n const urlParams: LMUrlParams = { pageop: 'load', pagesize: listSpec.pageSize };\n let urlParamsToBeEncoded: LMUrlParams = {};\n\n if (listSpec.dependentList) {\n // if building a related url sourceResourceType/id must exist\n urlParams.dependentList = true;\n const keyedResource = urlInfo.sourceResource as KeyedResource;\n urlParams[urlInfo.sourceResource.resourceType] = '{resourceId}.' + keyedResource.uiResourceName;\n\n } else if (urlInfo.sourceResource) {\n urlParams[urlInfo.sourceResource.resourceType] = (urlInfo.sourceResource as Resource).generateResourceId(true);\n\n if (urlInfo.url && urlInfo.sourceResource.resourceType === 'select') {\n const selectLinkParam = urlInfo.url.searchParams.get('selectlink');\n if (selectLinkParam) {\n urlParamsToBeEncoded.selectlink = selectLinkParam;\n }\n }\n }\n\n if (listSpec.pageSize !== -1 && listSpec.busListSpec.defaultSortOrder) {\n urlParams.sortOrderName = listSpec.busListSpec.defaultSortOrder.sortOrderName;\n urlParams.isAscending = listSpec.busListSpec.defaultSortOrder.isAscending;\n }\n\n if (urlInfo.url) {\n const lplFilter: string = urlInfo.url.searchParams.get('filter');\n if (lplFilter) {\n urlParamsToBeEncoded.filter = lplFilter;\n }\n\n // const filterCriteriaParams: Params = this.getPrefixedParams(urlInfo.url.href, 'fc');\n const filterCriteriaParams: Params = this.getPrefixedParamsFromSearchParams(urlInfo.url.searchParams, 'fc');\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...filterCriteriaParams };\n\n // const filterListCriteriaParams: Params = this.getPrefixedParams(urlInfo.url.href, 'flc');\n const filterListCriteriaParams: Params = this.getPrefixedParamsFromSearchParams(urlInfo.url.searchParams, 'flc');\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...filterListCriteriaParams };\n\n const userFolder: string = listSpec.userFolder; // urlInfo.url.searchParams.get('userfolder');\n if (userFolder) {\n urlParamsToBeEncoded.userfolder = userFolder;\n }\n\n // Drills from aggregation charts\n if (urlInfo.url.searchParams.has('aggDrill')) {\n urlParams.aggDrill = true;\n urlParamsToBeEncoded.savedFilter = urlInfo.url.searchParams.get('savedFilter');\n }\n // ------------------------------------------------------------------\n // in case the url is a list url with a pagepanel url param.\n // for example when control shift clicking from a page panel list.\n // ------------------------------------------------------------------\n // if (!options || !options.pagePaneSpec && !listSpec.busListSpec.implementsCubeView) {\n // const pagePanel: string = urlInfo.url.searchParams.get('pagepanel');\n // if (urlParams.pagepanel && pagePanel) {\n // urlParams.pagepanel = pagePanel;\n // }\n // }\n\n // ------------------------------------------------------------------\n // in case the url is a list url with fld url params.\n // for example when control shift clicking from a filter list.\n // ------------------------------------------------------------------\n if (!options?.additionalFieldIds) {\n const additionalFields: string[] = urlInfo.url.searchParams.getAll('fld');\n if (additionalFields?.length) {\n urlParams.fld = additionalFields;\n }\n }\n }\n\n /**\n * Needed for filter lists. See usage in lm-detail-section-list.component.ts\n */\n if (options?.additionalFieldIds?.length > 0) {\n urlParams.fld = options.additionalFieldIds;\n }\n\n if (urlInfo.fromListResource) {\n urlParams.fromlist = (urlInfo.fromListResource as KeyedResource).generateResourceId(true);\n }\n\n // todo : SpecUrlRefactorError_08262020 - building csk from global context only but mingle drillback\n // urls (done from mingle widgets) sometime add other csks using them as an API (like csk.IsoLocale=fr).\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...this.lmContextService.getContext().contextSessionKeys };\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n if (options?.pagePaneSpec && !listSpec.busListSpec.implementsCubeView) {\n if (options.pagePaneSpec.pane && options.pagePaneSpec.pane.pagePanelResourceId) {\n urlParams.pagepanel = options.pagePaneSpec.pane.pagePanelResourceId;\n } else if (options.pagePaneSpec.pagePanelResourceId) {\n urlParams.pagepanel = options.pagePaneSpec.pagePanelResourceId;\n }\n }\n\n if (listSpec.isTemplateList) {\n urlParams.isTemplateList = true;\n }\n\n return LMUrlUtilService.buildUrl2(\n urlInfo.basePath,\n urlInfo.resource.resourceType,\n urlInfo.resource.generateResourceId(true),\n urlParamsToBeEncoded,\n urlParams);\n }\n\n public buildPageInitialDataUrl(urlInfo: LMPageUrlInfo, formSpec: LMPageSpec): string {\n let urlParams: LMUrlParams = { pageop: 'load', pagesize: 1 };\n let urlParamsToBeEncoded: LMUrlParams = {};\n\n const formResourceType = urlInfo.resource.resourceType;\n const formResourceId = urlInfo.resource.resourceId;\n\n if (urlInfo.sourceResource) {\n urlParamsToBeEncoded[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n }\n\n if (urlInfo.navigationContext) {\n urlParams = { ...urlParams, ...urlInfo.navigationContext };\n }\n\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...this.lmContextService.getContext().contextSessionKeys };\n\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, formResourceType, formResourceId, urlParamsToBeEncoded, urlParams);\n\n }\n\n public buildFormInitialDataUrl(urlInfo: LMFormUrlInfo, formSpec: LMFormSpec): string {\n if (formSpec.busFormSpec.formType === 'Matrix') {\n return this._buildMatrixFormLoadDataUrl(urlInfo, formSpec);\n }\n\n if (formSpec.templateTargetResourceId) {\n return this._buildTemplateFormLoadDataUrl(urlInfo);\n }\n\n return this._buildFormInitialDataUrl(urlInfo, formSpec);\n }\n\n /**\n * todo: spec-url-refactor this is just a subset of _buildFormInitialDataUrl, why not combine them?!\n */\n private _buildMatrixFormLoadDataUrl(urlInfo: LMFormUrlInfo, formSpec: LMFormSpec): string {\n const urlParams: LMUrlParams = { pageop: 'load', pagesize: 1 };\n let urlParamsToBeEncoded: LMUrlParams = {};\n\n const formResourceType = urlInfo.resource.resourceType;\n const resourceName = urlInfo.resource.uiResourceName;\n const formResourceId = '{resourceId}' + (resourceName ? '.' + resourceName : '');\n\n if (urlInfo.sourceResource) {\n urlParamsToBeEncoded[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n\n // Do not add fromlist to dependent form. From list is used for pagination in the main form and not in dependent form\n if (!formSpec.dependentForm && !formSpec.independentForm && urlInfo.fromListResource) {\n if (urlInfo.sourceResource.resourceType === 'navigation'\n || urlInfo.sourceResource.resourceType === 'relation'\n || urlInfo.sourceResource.resourceType === 'drill') {\n urlParamsToBeEncoded['fromlist'] = urlInfo.fromListResource.resourceId;\n }\n }\n }\n\n if (urlInfo.url) {\n const matrixColums: string[] = urlInfo.url.searchParams.getAll('item');\n if (matrixColums && matrixColums.length > 0) {\n urlParamsToBeEncoded.item = matrixColums;\n }\n }\n\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...this.lmContextService.getContext().contextSessionKeys };\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, formResourceType, formResourceId, urlParamsToBeEncoded, urlParams);\n }\n\n private _buildTemplateFormLoadDataUrl(urlInfo: LMFormUrlInfo): string {\n const urlParams: LMUrlParams = { pageop: 'TEMPLATE' };\n let urlParamsToBeEncoded: LMUrlParams = {};\n\n const formResourceType = urlInfo.resource.resourceType;\n const resourceName = urlInfo.resource.uiResourceName;\n const formResourceId = '{resourceId}' + (resourceName ? '.' + resourceName : '');\n\n if (urlInfo.sourceResource) {\n urlParamsToBeEncoded[ urlInfo.sourceResource.resourceType ] = '{sourceResourceId}';\n }\n\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...this.lmContextService.getContext().contextSessionKeys };\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, formResourceType, formResourceId, urlParamsToBeEncoded, urlParams);\n }\n\n private _buildFormInitialDataUrl(urlInfo: LMFormUrlInfo, formSpec: LMFormSpec): string {\n let urlParams: LMUrlParams = { pageop: 'load', pagesize: 1 };\n let urlParamsToBeEncoded: LMUrlParams = {};\n\n const formResourceType = urlInfo.resource.resourceType;\n const resourceName = urlInfo.resource.uiResourceName;\n const formResourceId = '{resourceId}' + (resourceName ? '.' + resourceName : '');\n\n // 1. Add Action template for form urls\n if (urlInfo.action) {\n if (urlInfo.action === '{actionName}') {\n // if action is just a template string then propagate action template string\n urlParams.action = urlInfo.action;\n } else {\n // if action is not a template string then it's an action name. Add a\n // template string for it only if it's an action in the busClassSpec.actions.\n const actionSpec = this.getActionByName(formSpec.busClassSpec.actions, urlInfo.action);\n if (actionSpec) {\n urlParams.action = '{actionName}';\n }\n }\n }\n\n // 2. Add the source resource Id\n if (urlInfo.sourceResource) {\n urlParamsToBeEncoded[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n\n // Do not add fromlist to dependent form. From list is used for pagination in the main form and not in dependent form\n if (!formSpec.dependentForm && !formSpec.independentForm && urlInfo.fromListResource) {\n if (urlInfo.sourceResource.resourceType === 'navigation'\n || urlInfo.sourceResource.resourceType === 'relation'\n || urlInfo.sourceResource.resourceType === 'drill') {\n urlParamsToBeEncoded['fromlist'] = urlInfo.fromListResource.resourceId;\n }\n }\n }\n\n // Remove source resource of type navigation for Independent form since the main\n // composite form already has all the required keys.\n if (formSpec.independentForm && urlInfo.sourceResource && urlInfo.sourceResource.resourceType === 'navigation') {\n delete urlParamsToBeEncoded.navigation;\n }\n\n if (formSpec.dependentForm) {\n // Eg. List detail section through a relation. From Resource Id (list row selection)\n // will be used to build the relation resource Id.\n urlParams.dependentForm = true;\n\n // if building a related url sourceResourceType/id must exist.\n // place in nonEncodedParamMap so buildUrl doens't encode the curly braces.\n if (urlInfo.sourceResource) {\n let fromResourceIdTemplate;\n\n if (urlInfo.sourceResource.resourceType === 'biDrill') {\n fromResourceIdTemplate = '{sourceResourceId}';\n } else {\n const keyedResource = urlInfo.sourceResource as KeyedResource;\n fromResourceIdTemplate = '{sourceResourceId}.' + keyedResource.uiResourceName;\n }\n urlParams[urlInfo.sourceResource.resourceType] = fromResourceIdTemplate;\n\n // todo: spec-url-refactor no need as the setting this above will override the current property value.\n // // Remove the source resource type parameter added above since we need a templated\n // // resource id in this case. The list record selection will provide the from resource id.\n delete urlParamsToBeEncoded[urlInfo.sourceResource.resourceType];\n }\n }\n\n if (urlInfo.url) {\n // 3. Add the pagination parameters. DataViewSet is not available, so replicate what is available in the request\n AppConstants.LM_FORM_URL_PAGING_PARAMS\n .filter(param => urlInfo.url.searchParams.has(param))\n .forEach(param => urlParamsToBeEncoded[ param ] = urlInfo.url.searchParams.get(param));\n\n // 3.1 Add more pagination parameters related to dependent keys from request\n // urlInfo.url.searchParams.forEach((value, key) => {\n // if (key.startsWith('lk.') || key.startsWith('fk.') || key.startsWith('pk.')) {\n // urlParamsToBeEncoded[ key ] = value;\n // }\n // });\n // urlInfo.url.href is USVString type and the params are already encoded.\n const fkDepKeys: Params = this.getPrefixedParams(urlInfo.url.href, 'fk.');\n urlParams = { ...urlParams, ...fkDepKeys };\n const lkDepKeys: Params = this.getPrefixedParams(urlInfo.url.href, 'lk.');\n urlParams = { ...urlParams, ...lkDepKeys };\n const pkDepKeys: Params = this.getPrefixedParams(urlInfo.url.href, 'pk.');\n urlParams = { ...urlParams, ...pkDepKeys };\n\n // 4. Add Filter criteria\n const filter: string | null = urlInfo.url.searchParams.get('filter');\n if (filter && filter.length > 0) {\n urlParamsToBeEncoded.filter = filter;\n }\n\n const filterCriteriaParams: Params = this.getPrefixedParamsFromSearchParams(urlInfo.url.searchParams, 'fc');\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...filterCriteriaParams };\n\n const filterListCriteriaParams: Params = this.getPrefixedParamsFromSearchParams(urlInfo.url.searchParams, 'flc');\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...filterListCriteriaParams };\n\n // Is this needed for form initial load url?\n const additionalFields: string[] = urlInfo.url.searchParams.getAll('fld');\n if (additionalFields) {\n urlParams.fld = additionalFields;\n }\n\n // 5. Matrix Form\n const matrixColums: string[] = urlInfo.url.searchParams.getAll('item');\n if (matrixColums && matrixColums.length > 0) {\n urlParamsToBeEncoded.item = matrixColums;\n }\n }\n\n // 6. Add ncs\n if (urlInfo.navigationContext) {\n urlParams = { ...urlParams, ...urlInfo.navigationContext };\n }\n\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...this.lmContextService.getContext().contextSessionKeys };\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n if (formSpec.fromTemplateList) {\n urlParams.fromTemplateList = true;\n }\n\n // build the new data url\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, formResourceType, formResourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildMatrixCellTransactionUrl(urlInfo: LMFormUrlInfo, formSpec: LMFormSpec): string {\n if (formSpec.busFormSpec.formType !== 'Matrix') {\n return null;\n }\n const matrixCellResource = new KeyedResource({ resourceType: 'form', resourceId: formSpec.matrixCellResource });\n const urlParams: LMUrlParams = { action: '_execute' };\n return this.buildTemplateUrl(urlInfo, matrixCellResource, null, urlParams);\n }\n\n public buildMatrixColumnTransactionUrl(urlInfo: LMFormUrlInfo, formSpec: LMFormSpec): string {\n if (formSpec.busFormSpec.formType !== 'Matrix') {\n return null;\n }\n\n const matrixColumnResource = new KeyedResource({ resourceType: 'form', resourceId: formSpec.matrixColumnResource });\n const urlParams: LMUrlParams = { action: '_execute' };\n return this.buildTemplateUrl(urlInfo, matrixColumnResource, null, urlParams);\n }\n\n public buildFormInvokeCreateUrl(urlInfo: LMFormUrlInfo): string {\n if (!urlInfo.sourceResource || urlInfo.sourceResource.resourceType !== AppConstants.RESOURCETYPE_FORMINVOKE) {\n return null;\n }\n\n let urlParamsToBeEncoded: LMUrlParams = { action: '_execute', ...this.lmContextService.getContext().contextSessionKeys };\n urlParamsToBeEncoded[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n // build the new data url\n return LMUrlUtilService.buildUrl2(\n urlInfo.basePath,\n urlInfo.resource.resourceType,\n urlInfo.resource.generateResourceId(true),\n // urlInfo.resource.resourceId,\n urlParamsToBeEncoded);\n }\n\n public buildSubPanelDataUrl(urlInfo: LMFormUrlInfo, panelName: string): string {\n const urlParams: LMUrlParams = { pageop: 'subpanels' };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n const resourceId = '{resourceId}.' + urlInfo.resource.uiResourceName + '.' + panelName;\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, urlInfo.resource.resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildListTransactionUrl(urlInfo: LMBaseUrlInfo, listSpec: LMListSpec): string {\n const urlParamsToBeEncoded: LMUrlParams = {};\n\n if (urlInfo.url) {\n const userFolder: string = listSpec.userFolder; // urlInfo.url.searchParams.get('userfolder');\n if (userFolder) {\n urlParamsToBeEncoded.userfolder = userFolder;\n }\n }\n\n return this.buildTemplateUrl(urlInfo, urlInfo.resource as KeyedResource, null, { action: '_execute' }, false, urlParamsToBeEncoded);\n }\n\n public buildFormTransactionUrl(urlInfo: LMBaseUrlInfo, formSpec?: LMFormSpec): string {\n if (formSpec.independentFormResourceId) {\n const independentFormResource = new KeyedResource({ resourceType: 'form', resourceId: formSpec.independentFormResourceId });\n return this.buildTemplateUrl(urlInfo, independentFormResource, urlInfo.sourceResource as KeyedResource, { action: '_execute' }, false);\n }\n\n const urlParamsToBeEncoded: LMUrlParams = {};\n if (urlInfo.fromListResource) {\n urlParamsToBeEncoded['fromlist'] = urlInfo.fromListResource.resourceId;\n }\n return this.buildTemplateUrl(urlInfo, urlInfo.resource as KeyedResource, urlInfo.sourceResource as KeyedResource, { action: '_execute' }, formSpec.dependentForm, urlParamsToBeEncoded);\n }\n\n /**\n * Build a template url for view audit log redirects.\n * @param urlInfo\n * @return A template url to use when building actionRedirectUrls.\n */\n public buildViewAuditLogRedirectUrl(urlInfo: LMBaseUrlInfo): string {\n const resourceType: LMResourceType = 'audit';\n const resourceId = '{resourceId}.{actionName}';\n const contextResourceId = '{contextResourceId}' + (urlInfo.resource.uiResourceName ? '.' + urlInfo.resource.uiResourceName : '');\n\n const urlParams: LMUrlParams = {};\n urlParams[urlInfo.resource.resourceType] = contextResourceId;\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n // -----------------------------------------------------------------------------------\n // workaround for now... until we understand these things:\n // - how to handle csk.gen using the url path length isntead of having a csk.gen\n // - where the extra csks from mingle and custom url callback are coming from\n // and mitigate them.\n // -----------------------------------------------------------------------------------\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildPreviewActionUrl(urlInfo: LMBaseUrlInfo): string {\n\n const urlParams: LMUrlParams = { filter: '{filter}' };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'list', '{resourceId}.{listName}', urlParamsToBeEncoded, urlParams);\n }\n\n public buildNavigationUrl(urlInfo: LMBaseUrlInfo) {\n const resourceType: LMResourceType = 'navigation';\n const resourceId = '{resourceId}.{navigationName}';\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n // if (urlInfo.sourceResource != null\n // && (urlInfo.sourceResource.resourceType === 'relation'\n // || urlInfo.sourceResource.resourceType === 'navigation'\n // || urlInfo.sourceResource.resourceType === 'drill')) {\n // // typically for paging when navigating to a form.\n // urlParams[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n // }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded);\n }\n\n public buildFormRelationActionUrl(urlInfo: LMBaseUrlInfo): string {\n const urlParams = { action: '{actionName}' };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'form', '{resourceId}.{formName}', urlParamsToBeEncoded, urlParams);\n }\n\n public buildFormRequestUrl(urlInfo: LMBaseUrlInfo): string {\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'form', '{resourceId}', urlParamsToBeEncoded);\n }\n\n public buildHierarchyChildrenUrl(urlInfo: LMBaseUrlInfo): string {\n return this.buildTemplateUrl(urlInfo, urlInfo.resource as KeyedResource, null, { pageop: 'children' }, false);\n }\n\n public buildHierarchyCenteredUrl(urlInfo: LMBaseUrlInfo): string {\n return this.buildTemplateUrl(urlInfo, urlInfo.resource as KeyedResource, null, { pageop: 'centered' }, false);\n }\n\n public buildActionRedirectUrl(urlInfo: LMBaseUrlInfo, isTemplateList?: boolean): string {\n const urlParams: LMUrlParams = { output: 'spec' };\n\n const contextResourceId = '{contextResourceId}' + (urlInfo.resource.uiResourceName ? '.' + urlInfo.resource.uiResourceName : '');\n urlParams[urlInfo.resource.resourceType] = contextResourceId;\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n if (urlInfo.sourceResource && urlInfo.sourceResource.resourceType === 'list') {\n urlParamsToBeEncoded[urlInfo.sourceResource.resourceType] = urlInfo.sourceResource.resourceId;\n }\n\n if (isTemplateList) {\n urlParams.isTemplateList = true;\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'action', '{resourceId}.{actionName}', urlParamsToBeEncoded, urlParams);\n }\n\n public buildReportPersonalizationUrl(urlInfo: LMListUrlInfo): string {\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n const resourceId = (urlInfo.resource as KeyedResource).generateResourceId(true);\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'config', resourceId, urlParamsToBeEncoded);\n }\n\n public buildListPersonalizationUrl(urlInfo: LMListUrlInfo, listSpec: LMListSpec): string {\n const urlParams: LMUrlParams = {};\n urlParams['resources'] = 'ListPersonalization.html';\n\n if (listSpec.userFolder) {\n urlParams.userfolder = listSpec.userFolder;\n }\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n const isGenUrl: boolean = this.isGenUrlUsingWindowLocation();\n const webAppName = this.getUrlPathValue(window.location.pathname, AppConstants.URLSEG_WEBAPP_INDEX, isGenUrl);\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'static', webAppName, urlParamsToBeEncoded, urlParams);\n }\n\n public buildFieldSearchUrl(urlInfo: LMListUrlInfo): string {\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'search', '{resourceId}', urlParamsToBeEncoded);\n }\n\n public buildActorGroupSelectUrl(urlInfo: LMListUrlInfo) {\n const resourceType: LMResourceType = 'list';\n const resourceId = 'ActorGroup.ActorGroupHierarchyList';\n const urlParams: LMUrlParams = {\n type: 'select',\n output: 'spec',\n select: 'ActorGroup.ActorGroup',\n };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildRoleSelectUrl(urlInfo: LMListUrlInfo) {\n const resourceType: LMResourceType = 'list';\n const resourceId = 'Role.RoleList';\n const urlParams: LMUrlParams = {\n type: 'select',\n output: 'spec',\n select: 'Role.Role',\n };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n public buildRoleGroupSelectUrl(urlInfo: LMListUrlInfo) {\n const resourceType: LMResourceType = 'list';\n const resourceId = 'RoleGroup.RoleGroupList';\n const urlParams: LMUrlParams = {\n type: 'select',\n output: 'spec',\n select: 'RoleGroup.RoleGroup',\n };\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildRelatedReportSourceUrl(urlInfo: LMListUrlInfo) {\n const resourceType: LMResourceType = 'report';\n const resourceId = (urlInfo.resource as KeyedResource).generateResourceId(true);\n\n let urlParamsToBeEncoded: LMUrlParams = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n const urlParams: LMUrlParams = {};\n if (urlInfo.url) {\n const userFolder = urlInfo.url.searchParams.get('userfolder');\n if (userFolder) {\n urlParams.userfolder = userFolder;\n }\n }\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, urlParamsToBeEncoded, urlParams);\n }\n\n // public buildSortUrl(urlInfo: LMListUrlInfo, listSpec: LMListSpec, sortOrderName: string, isAscending: boolean): string {\n // const resourceType: LMResourceType = 'list';\n // const resourceId = (urlInfo.resource as KeyedResource).generateResourceId(true);\n //\n // let urlParams: LMUrlParams = {\n // pageop: 'sort',\n // pagesize: listSpec.pageSize,\n // ...this.lmContextService.getContext().contextSessionKeys\n // };\n //\n // if (listSpec.pageSize !== AppConstants.INFINITE_PAGESIZE) {\n // urlParams.sortOrderName = sortOrderName;\n // urlParams.isAscending = isAscending;\n // }\n //\n // return LMUrlUtilService.buildUrl2(urlInfo.basePath, resourceType, resourceId, undefined, urlParams);\n // }\n\n /**\n * Used by View builder base to generate action reference for toolbar menu items.\n */\n // public buildRelatedMenuActionUrl(urlInfo: LMBaseUrlInfo, actionReference: LMBusActionReference): string {\n // if (!actionReference.relation) {\n // return null; // todo throw exception instead?\n // }\n //\n // const actionResource: ActionResource = new ActionResource({\n // busClassName: actionReference.relBusClass,\n // action: actionReference.name\n // });\n //\n // const urlParams: LMUrlParams = {\n // output: 'spec',\n // relation: '{resourceId}.' + actionReference.relation,\n // };\n //\n // let urlParamsToBeEncoded = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n //\n // // -----------------------------------------------------------------------------------\n // // workaround for now... until we understand these things:\n // // - how to handle csk.gen using the url path length isntead of having a csk.gen\n // // - where the extra csks from mingle and custom url callback are coming from\n // // and mitigate them.\n // // -----------------------------------------------------------------------------------\n // if (urlInfo.contextSessionKeys) {\n // urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n // }\n //\n // return LMUrlUtilService.buildUrl2(urlInfo.basePath, actionResource.resourceType, actionResource.resourceId, urlParamsToBeEncoded, urlParams);\n // }\n\n public buildSelectListUrl(urlInfo: LMBaseUrlInfo, selectListInfo: LMSelectListInfo): string {\n const urlParams: LMUrlParams = { output: 'spec', type: 'select', };\n urlParams[selectListInfo.selectResourceType] = selectListInfo.selectResourceId;\n if (selectListInfo.selectLink) {\n urlParams['selectlink'] = selectListInfo.selectLink;\n }\n\n let urlParamsToBeEncoded = { ...this.lmContextService.getContext().contextSessionKeys } as LMUrlParams;\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncoded = { ...urlParamsToBeEncoded, ...urlInfo.contextSessionKeys };\n }\n\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, 'list', selectListInfo.selectListResourceId, urlParamsToBeEncoded, urlParams);\n }\n\n public buildTemplateUrl(\n urlInfo: LMBaseUrlInfo,\n resource: KeyedResource,\n sourceResource?: KeyedResource,\n urlParams?: LMUrlParams,\n isDependentForm?: boolean,\n urlParamsToBeEncode?: LMUrlParams\n ): string {\n if (!urlParams) {\n urlParams = {};\n }\n\n if (!urlParamsToBeEncode) {\n urlParamsToBeEncode = {};\n }\n\n if (sourceResource != null && sourceResource.resourceType !== AppConstants.RESOURCETYPE_FORMINVOKE) {\n // ------------------------------------------------------------------------------------------------\n // Exclude the sourceResourceId url param when it's a form invoke. Form invoke source resourceid\n // is only good for the formInvokeCreateUrl when creating a record navigated to via a formInvoke\n // ------------------------------------------------------------------------------------------------\n if (isDependentForm) {\n // In the case of dependent form like detail section form, the source resource Id will depend on the list selection.\n const sourceResourceId = '{sourceResourceId}' + (sourceResource.uiResourceName ? '.' + sourceResource.uiResourceName : '');\n urlParams[sourceResource.resourceType] = sourceResourceId;\n } else {\n urlParams[sourceResource.resourceType] = encodeURIComponent(sourceResource.resourceId);\n }\n }\n\n // ------------------------------------------------------------------------------------------------\n // propagate context session keys (csks).\n // ------------------------------------------------------------------------------------------------\n urlParamsToBeEncode = { ...urlParamsToBeEncode, ...this.lmContextService.getContext().contextSessionKeys };\n if (urlInfo.contextSessionKeys) {\n urlParamsToBeEncode = { ...urlParamsToBeEncode, ...urlInfo.contextSessionKeys };\n }\n\n // urlParamMap.putAll(UrlUtils.buildContextSessionKeysHashMap(info.codec, info.contextSessionKeyMap));\n\n // ------------------------------------------------------------------------------------------------\n // build the resourceId template.\n // ------------------------------------------------------------------------------------------------\n const templateResourceId: string = '{resourceId}' + (resource.uiResourceName ? '.' + resource.uiResourceName : '');\n\n // ------------------------------------------------------------------------------------------------\n // build the new data url\n // ------------------------------------------------------------------------------------------------\n return LMUrlUtilService.buildUrl2(urlInfo.basePath, resource.resourceType, templateResourceId, urlParamsToBeEncode, urlParams);\n }\n\n /**\n * @param basePath - the url up until, but not including, the resourceType (list, form, page, etc...)\n * @param resourceType - the resourceType of the resource to buildthe url path\n * @param resourceId - the resourceId used to build the url path\n * @param urlParamsToEncode?? pass in map object here if you want encoding - useful for browser address urls\n * @param urlParams?? pass in map object here if you don't want url encoding - better for ajax urls so they are more human readable\n * @return the url\n */\n public static buildUrl2(\n basePath: string,\n resourceType: string,\n resourceId: string,\n urlParamsToEncode?: LMUrlParams,\n urlParams?: LMUrlParams\n ): string {\n let url: string = basePath + '/' + resourceType + '/' + resourceId;\n let delimiter = '?';\n\n if (urlParamsToEncode != null && !_.isEmpty(urlParamsToEncode)) {\n url += delimiter + Object.entries(urlParamsToEncode).map(pair => LMUrlUtilService.toUrlParam(pair, true)).join('&');\n delimiter = '&';\n }\n\n if (urlParams != null && !_.isEmpty(urlParams)) {\n url += delimiter + Object.entries(urlParams).map(pair => LMUrlUtilService.toUrlParam(pair)).join('&');\n delimiter = '&';\n }\n\n return url;\n }\n\n public buildUserListViewFetchUrl(urlInfo: LMBaseUrlInfo, listSpec: LMListSpec) {\n const urlParamsToBeEncoded = { ...this.lmContextService.getContext().contextSessionKeys } as any;\n\n if (listSpec.userFolder) {\n urlParamsToBeEncoded.userfolder = listSpec.userFolder;\n }\n\n return LMUrlUtilService.buildUrl2(\n urlInfo.basePath,\n 'config',\n urlInfo.resource.resourceId,\n urlParamsToBeEncoded\n );\n }\n\n public static toUrlParam(pair: [ string, (string | string[]) ], encode?: boolean): string {\n if (pair.length !== 2) {\n // eslint-disable-next-line no-throw-literal\n throw 'toUrlParam: invalid args: expected array of [ string, (string | string[]) ] but got ' + pair;\n }\n\n const key = pair[0];\n if (pair[1] instanceof Array) {\n return (pair[1] as string[]).map(value2 =>\n LMUrlUtilService.toUrlParam([ key, value2 ], encode)).join('&');\n }\n\n const value = encode ? encodeURIComponent(pair[1]) : pair[1];\n return key + '=' + value;\n }\n\n /**\n * todo ppwatton move these functions that don't have any dependencies to a new service (name it\n * lm-spec-util.service.ts) to be so it can be used w/o the problems of circular dependencies.\n * NOTE: this function is also defined in lm-action.service.ts due to a circular dependency.\n */\n public getActionByName(actions: Array, actionName: string): LMActionSpec {\n if (!actions || !actionName) {\n return null;\n }\n return actions.find(findActionSpec => findActionSpec.name === actionName);\n }\n\n public isPageUrl(href: string): boolean {\n return this.getResourceTypeFromUrl(href) === AppConstants.RESOURCETYPE_PAGE;\n }\n\n public getResourceTypeFromUrl(href: string): string {\n const isClientUrlAbsolute = this.isAbsoluteUrl(href);\n const url: URL = new URL(href, !isClientUrlAbsolute ? window.location.origin : undefined);\n const isGenUrl: boolean = this.isGenUrlUsingURL(url);\n return this.getUrlPathValue(url.pathname, AppConstants.URLSEG_RESOURCE_TYPE_INDEX, isGenUrl);\n }\n\n public getUrlPathArray(urlPath: string): string[] {\n const pathArray: string[] = urlPath.split('/');\n if (pathArray[0].trim().length === 0) {\n // first char of / causes empty first element. remove empty first element.\n pathArray.shift();\n }\n return pathArray;\n }\n\n /**\n * @param urlPath\n * @param index - valid args:\n * AppConstants.URLSEG_PDL_OR_DA_INDEX,\n * AppConstants.URLSEG_WEBAPP_INDEX,\n * AppConstants.URLSEG_RESOURCE_TYPE_INDEX\n * AppConstants.URLSEG_RESOURCE_ID_INDEX\n * @param isGenUrl\n */\n public getUrlPathValue(urlPath: string, index: any, isGenUrl?: boolean) {\n const pathArray: string[] = this.getUrlPathArray(urlPath);\n\n // if (isGenUrl || this.lmContextService.isGenProductLine()) {\n if (isGenUrl) {\n return pathArray[index - 1];\n }\n\n return pathArray[index];\n }\n\n public isGenUrlUsingURL(url: URL): boolean {\n if (!url) {\n return false;\n }\n const genParam: string = url.searchParams.get('csk.gen');\n // tslint:disable-line:triple-equals - want to be forgiving of case\n // eslint-disable-next-line eqeqeq\n return genParam == 'true';\n }\n\n public isGenUrlUsingHref(url: string): boolean {\n if (!url) {\n return false;\n }\n\n const paramValue = this.getUrlParam(url, 'csk.gen');\n if (!paramValue || paramValue.trim().length === 0) {\n return false;\n }\n\n // tslint:disable-line:triple-equals - want to be forgiving of case\n // eslint-disable-next-line eqeqeq\n return paramValue == 'true';\n }\n\n public isGenUrlUsingWindowLocation(): boolean {\n const genParam: string = this.getUrlParam(window.location.href, 'csk.gen');\n // tslint:disable-line:triple-equals - want to be forgiving of case\n // eslint-disable-next-line eqeqeq\n return genParam == 'true';\n }\n\n public allCsksMatchContext(currentPageUrl: string): boolean {\n const cskParams: Params = this.getPrefixedParams(currentPageUrl, 'csk.');\n const urlCskArray: string[] = Object.keys(cskParams).map(key => `${key}=${cskParams[key]}`);\n\n const contextSessionKeys = this.lmContextService.getContext()?.contextSessionKeys || {};\n const ctxCskArray: string[] = Object.keys(contextSessionKeys).map(key => `${key}=${contextSessionKeys[key]}`);\n\n return urlCskArray.sort().join() === ctxCskArray.sort().join();\n }\n\n public buildURLFromHref(url: string): URL {\n if (!url) {\n return null;\n }\n\n const isUrlAbsolute = this.isAbsoluteUrl(url);\n return new URL(url, !isUrlAbsolute ? window.location.origin : undefined);\n }\n\n // private buildNavigationContextParams(navigationContext: LMNavContextKeys) {\n // const params: Params = {};\n //\n // Object.keys(navigationContext).forEach(key => {\n // if (key.startsWith('nc.')) {\n // params[key] = navigationContext[key];\n // }\n // });\n //\n // return params;\n // }\n\n public getMatrixDateFilterUrl(formUrlInfo: LMFormUrlInfo, resourceId: string, date: string, dateFilterFieldId: string): string {\n const dateFilterFieldParam = this.getDateFilterFieldParam(date, dateFilterFieldId);\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl.split('?')[0]);\n const sourceResource = formUrlInfo.sourceResource.resourceId;\n const sourceResourceType = formUrlInfo.sourceResource.resourceType;\n const url = urlCompiledTemplate.expand({ resourceId });\n\n\n return `${url}?pageop=filter&${sourceResourceType}=${sourceResource}&dateFilterField=${dateFilterFieldParam}`;\n }\n\n private getDateFilterFieldParam(date: string, dateFilterFieldId: string): string {\n const dateParts = date.split('/');\n const year = dateParts[1];\n const month = dateParts[0].length === 1 ? `0${dateParts[0]}` : dateParts[0];\n\n const numberOfDays = new Date(Number(year), Number(month), 0).getDate();\n const startDate = `${year}${month}01`;\n const endDate = `${year}${month}${numberOfDays}`;\n\n return `%28${dateFilterFieldId}%20%3E%3D%20%22${startDate}%22%20and%20${dateFilterFieldId}%20%3C%3D%20%22${endDate}%22%29`;\n }\n\n /**\n * Gets a resource object representing the current route url.\n */\n public getRouteResource(url?: string): KeyedResource {\n\n let resourceType;\n let resourceId;\n if (url) {\n const isGenUrl = this.isGenUrlUsingHref(url);\n const urlObject = new URL(url);\n resourceType = this.getUrlPathValue(urlObject.pathname, AppConstants.URLSEG_RESOURCE_TYPE_INDEX, isGenUrl);\n resourceId = this.getUrlPathValue(urlObject.pathname, AppConstants.URLSEG_RESOURCE_ID_INDEX, isGenUrl);\n } else {\n const isGenUrl = this.lmContextService.isGenProductLine();\n resourceType = this.getUrlPathValue(window.location.pathname, AppConstants.URLSEG_RESOURCE_TYPE_INDEX, isGenUrl);\n resourceId = this.getUrlPathValue(window.location.pathname, AppConstants.URLSEG_RESOURCE_ID_INDEX, isGenUrl);\n }\n const resource: KeyedResource = new KeyedResource({ resourceType, resourceId });\n return resource;\n }\n\n public copyCubeParamsForDetailSection(listUrlInfo: LMListUrlInfo, fromDataView: LMDataView): LMListUrlInfo {\n if (fromDataView && fromDataView.cubeInfo) {\n listUrlInfo.cubeParams = {};\n listUrlInfo.cubeParams.cubeMediator = fromDataView.cubeInfo.cubeMediator;\n listUrlInfo.cubeParams.dimFieldIndex = fromDataView.cubeInfo.dimFieldIndex;\n listUrlInfo.cubeParams.isFactRowElement = fromDataView.cubeInfo.isFactRowElement;\n listUrlInfo.cubeParams.dimensions = fromDataView.cubeInfo.dimensions;\n if (fromDataView.cubeInfo.ctxDimensions) {\n listUrlInfo.cubeParams.ctxDimensions = fromDataView.cubeInfo.ctxDimensions;\n }\n if (fromDataView.cubeInfo.fltrDimensions) {\n listUrlInfo.cubeParams.fltrDimensions = fromDataView.cubeInfo.fltrDimensions;\n }\n\n if (fromDataView.cubeInfo.extraInfo) {\n if (fromDataView.cubeInfo.extraInfo.periodView) {\n listUrlInfo.cubeParams.periodView = fromDataView.cubeInfo.extraInfo.periodView;\n listUrlInfo.cubeParams.pvPeriodIdx = fromDataView.cubeInfo.extraInfo.pvPeriodIdx;\n }\n listUrlInfo.cubeParams.cubeNm = fromDataView.cubeInfo.extraInfo.cubeNm;\n listUrlInfo.cubeParams.periodKey = fromDataView.cubeInfo.extraInfo.periodKey;\n listUrlInfo.cubeParams.reportingBasis = fromDataView.cubeInfo.extraInfo.reportingBasis;\n listUrlInfo.cubeParams.topNodeDims = fromDataView.cubeInfo.extraInfo.topNodeDims;\n listUrlInfo.cubeParams.topContextFields = fromDataView.cubeInfo.extraInfo.topContextFields;\n }\n }\n return listUrlInfo;\n }\n\n public hasSameParamValue(currentPageUrl: string, initialDataUrl: string, paramName: string): boolean {\n const currentPageFilter = this.getUrlParam(currentPageUrl, paramName);\n const initialDataUrlFilter = this.getUrlParam(initialDataUrl, paramName);\n\n return (currentPageFilter === initialDataUrlFilter);\n }\n\n public buildSavePersonalizationUrl(urlInfo: LMBaseUrlInfo, listSpec: LMListSpec) {\n const urlParamsToBeEncoded = { ...this.lmContextService.getContext().contextSessionKeys };\n\n if (listSpec.userFolder) {\n urlParamsToBeEncoded.userfolder = listSpec.userFolder;\n }\n\n return LMUrlUtilService.buildUrl2(\n urlInfo.basePath,\n urlInfo.resource.resourceType,\n urlInfo.resource.resourceId,\n urlParamsToBeEncoded\n );\n }\n\n public addDataContextUrlParams(urlParams: LMUrlParams): LMUrlParams {\n if (!this.lmContextService.useNewSpecUrls()) {\n urlParams[AppConstants.PARAM_CSK_ASOFDATE] = this.lmContextService.getAsOfDate();\n\n if (this.lmContextService.getShowDeletedRecords()) {\n urlParams[AppConstants.PARAM_CSK_SHOWDELETEDRECORDS] = true;\n }\n }\n\n return urlParams;\n }\n}\n","export * from './models';\nexport * from './services';\n","export * from './lm-global-personalization.model';\nexport * from './lm-global-state.model';\nexport * from './lm-global-storage.model';\nexport * from './lm-form-personalization.model';\nexport * from './lm-form-state.model';\nexport * from './lm-page-personalization.model';\n","/**\n * Created by ppatton on 12/15/2016.\n */\n\nexport interface LMFormPersonalization {\n // Server side store\n tilePanelOrder?: any;\n pageSize?: number;\n activePage?: any;\n}\n","/**\n * Created by ppatton on 12/15/2016.\n */\n\nexport interface LMFormState {\n /**\n * The currently selected tab index for a composite/steppattern/wizard form.\n */\n selectedPanelIndex?: number;\n selectedSubPanelIndex?: number;\n furthestPanelIndex?: number;\n furthestSubPanelIndex?: number;\n\n /**\n * @deprecated use new form-content-composite layout when using context forms.\n * form should scroll as a single page and not have panels that scroll\n * (other than a multi list lists or dashboard panel lists/form/etc...).\n * todo dboehm refactor this out of matrix so we can remove this.\n */\n contextFormExpanded?: boolean | undefined;\n}\n","/**\n * Created by ppatton on 12/15/2016.\n */\n\nexport interface LMPagePersonalization {\n // Server side store\n tilePanelOrder?: any;\n pageSize?: number;\n activePage?: any;\n}\n","export * from './lm-global-personalization.service';\nexport * from './lm-global-state.service';\nexport * from './lm-global-storage.service';\nexport * from './lm-form-personalization.service';\nexport * from './lm-form-state.service';\nexport * from './lm-list-personalization.service';\nexport * from './lm-list-state.service';\nexport * from './lm-page-personalization.service';\nexport * from './lm-page-state.service';\n// export * from '../../services/lm-state-helper.service';\n","import { Injectable } from '@angular/core';\nimport { LMFormPersonalization } from '@states/models';\nimport { LMPersonalizationPersistenceService } from '@services/lm-personalization-persistence.service';\n\n@Injectable()\nexport class LMFormPersonalizationService {\n constructor(private lmSessionStorageService: LMPersonalizationPersistenceService) {\n }\n\n public getFormPersonalization(formPersonalizationKeyParams: LMFormPersonalizationKeyParams): LMFormPersonalization {\n return this.lmSessionStorageService.getPersonalization(formPersonalizationKeyParams.key);\n }\n\n public saveFormPersonalization(formPersonalizationKeyParams: LMFormPersonalizationKeyParams, formPersonalizationItem: LMFormPersonalization) {\n this.lmSessionStorageService.persistPersonalization(formPersonalizationKeyParams.key, formPersonalizationItem);\n }\n\n public deletePersonalization(formPersonalizationKeyParams: LMFormPersonalizationKeyParams): void {\n this.lmSessionStorageService.removePersonalization(formPersonalizationKeyParams.key);\n }\n}\n\nexport class LMFormPersonalizationKeyParams {\n storageKey: string;\n resourceId: string;\n contextResourceId?: string;\n\n private _key = '';\n\n get key() {\n if (!this._key) {\n this.buildKey();\n }\n return this._key;\n }\n\n private buildKey(): void {\n this._key = this.storageKey;\n this._key = this._key.replace('{resourceId}', this.resourceId);\n this._key = this._key.replace('{contextResourceId}', this.contextResourceId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMFormState } from '@states/models';\nimport { LMStatePersistenceService } from '@services/lm-state-persistence.service';\n\n@Injectable()\nexport class LMFormStateService {\n constructor(private lmStatePersistenceService: LMStatePersistenceService) {\n }\n\n public getFormState(formStateKeyParams: LMFormStateKeyParams): LMFormState {\n return this.lmStatePersistenceService.getState(formStateKeyParams.key);\n }\n\n public saveFormState(formStateKeyParams: LMFormStateKeyParams, formStateItem: LMFormState): void {\n this.lmStatePersistenceService.persistState(formStateKeyParams.key, formStateItem);\n }\n\n public deleteFormState(formStateKeyParams: LMFormStateKeyParams): void {\n this.lmStatePersistenceService.removeState(formStateKeyParams.key);\n }\n}\n\nexport class LMFormStateKeyParams {\n actorId?: string;\n asOfDate?: string;\n dataArea: string;\n routeResourceId: string;\n resourceId: string;\n\n private _key = '';\n\n get key() {\n if (!this._key) {\n this.buildKey();\n }\n return this._key;\n }\n\n private buildKey(): void {\n const stringArray = new Array();\n\n if (this.actorId) {\n stringArray.push(this.actorId);\n }\n if (this.asOfDate) {\n stringArray.push(this.asOfDate);\n }\n\n stringArray.push(this.dataArea);\n stringArray.push(this.routeResourceId);\n\n if (this.resourceId !== this.routeResourceId) {\n // must be a formPanel\n stringArray.push(this.resourceId);\n }\n\n this._key = stringArray.join('_');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMGlobalPersonalization } from '@states/models/lm-global-personalization.model';\nimport { LMPersonalizationPersistenceService } from '@services/lm-personalization-persistence.service';\n\nclass LMGlobalPersonalizationKeyParams {\n public actorId?: string;\n\n getKey(): string {\n return this.actorId + '_banner';\n }\n}\n\n@Injectable()\nexport class LMGlobalPersonalizationService {\n private personalizationKey: string;\n\n constructor(\n private lmContextService: LMContextService,\n private lmPersonalizationPersistenceService: LMPersonalizationPersistenceService,\n ) {\n }\n\n private get key(): string {\n if (!this.personalizationKey) {\n const personalizationKeyParams = new LMGlobalPersonalizationKeyParams();\n personalizationKeyParams.actorId = this.lmContextService.getActorId();\n this.personalizationKey = personalizationKeyParams.getKey();\n }\n return this.personalizationKey;\n }\n\n public getGlobalPersonalization(): LMGlobalPersonalization {\n return this.lmPersonalizationPersistenceService.getPersonalization(this.key);\n }\n\n public saveGlobalPersonalization(personalizationItem: LMGlobalPersonalization) {\n this.lmPersonalizationPersistenceService.persistPersonalization(this.key, personalizationItem);\n }\n\n public deleteGlobalPersonalization(): void {\n return this.lmPersonalizationPersistenceService.removePersonalization(this.key);\n }\n\n public getAccessibilityMode(): boolean {\n if (this.lmContextService.hasAccessibilityModeParameter()) {\n return this.lmContextService.getAccessibilityModeParameterValue();\n } else {\n return this.getGlobalPersonalization().accessibilityMode;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMGlobalState } from '@states/models/lm-global-state.model';\nimport { LMStatePersistenceService } from '@services/lm-state-persistence.service';\n\nclass LMGlobalStateKeyParams {\n actorId?: string;\n\n getKey(): string {\n return this.actorId + '_banner';\n }\n}\n\n@Injectable()\nexport class LMGlobalStateService {\n private stateKey: string;\n\n constructor(\n private lmContextService: LMContextService,\n private lmStatePersistenceService: LMStatePersistenceService\n ) {}\n\n private get key(): string {\n if (!this.stateKey) {\n const stateKeyParams = new LMGlobalStateKeyParams();\n stateKeyParams.actorId = this.lmContextService.getActorId();\n this.stateKey = stateKeyParams.getKey();\n }\n return this.stateKey;\n }\n\n public getGlobalState(): LMGlobalState {\n return this.lmStatePersistenceService.getState(this.key);\n }\n\n public saveGlobalState(globalStateItem: LMGlobalState): void {\n this.lmStatePersistenceService.persistState(this.key, globalStateItem);\n }\n\n public deleteGlobalState(): void {\n this.lmStatePersistenceService.removeState(this.key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMGlobalPersistenceService } from '@services/lm-global-persistence.service';\n\n@Injectable()\nexport class LMGlobalStorageService implements LMStorageServiceBase {\n\n constructor(private persistenceService: LMGlobalPersistenceService) {\n }\n\n public getItem(keyParams: LMKeyParamsBase): LMStorageModelBase {\n return this.persistenceService.getItem(keyParams.key);\n }\n\n public saveItem(keyParams: LMKeyParamsBase, payload: LMStorageModelBase): void {\n this.persistenceService.saveItem(keyParams.key, payload);\n }\n\n public deleteItem(keyParams: LMKeyParamsBase): void {\n this.persistenceService.deleteItem(keyParams.key);\n }\n}\n\nexport class LMGlobalStorageKeyParams implements LMKeyParamsBase {\n storageKey: string;\n resourceId: string;\n contextResourceId?: string;\n\n private _key = '';\n\n get key() {\n if (!this._key) {\n this.buildKey();\n }\n return this._key;\n }\n\n private buildKey(): void {\n this._key = this.storageKey;\n this._key = this._key.replace('{resourceId}', this.resourceId);\n this._key = this._key.replace('{contextResourceId}', this.contextResourceId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMPersonalizationPersistenceService } from '@services/lm-personalization-persistence.service';\n\n@Injectable()\nexport class LMListPersonalizationService {\n constructor(private lmPersonalizationPersistenceService: LMPersonalizationPersistenceService) {}\n\n public getListPersonalization(listPersonalizationKeyParams: LMListPersonalizationKeyParams): LMListPersonalization {\n return this.lmPersonalizationPersistenceService.getPersonalization(listPersonalizationKeyParams.getKey());\n }\n\n public saveListPersonalization(listPersonalizationKeyParams: LMListPersonalizationKeyParams, listPersonalizationItem: LMListPersonalization): void {\n this.lmPersonalizationPersistenceService.persistPersonalization(listPersonalizationKeyParams.getKey(), listPersonalizationItem);\n }\n\n public deleteListPersonalization(listPersonalizationKeyParams: LMListPersonalizationKeyParams): void {\n this.lmPersonalizationPersistenceService.removePersonalization(listPersonalizationKeyParams.getKey());\n }\n}\n\nexport class LMListPersonalizationKeyParams {\n prefix?: string;\n resourceId: string;\n dataArea: string;\n actorId?: string;\n contextResourceId?: string;\n\n private key = '';\n\n getKey() {\n if (!this.key) {\n this.buildKey();\n }\n return this.key;\n }\n\n private buildKey(): void {\n if (this.prefix) {\n this.key += this.prefix + '_';\n }\n\n this.key += this.dataArea + '_' + this.resourceId.replace('.', '_');\n\n if (this.contextResourceId) {\n this.key += '_' + this.contextResourceId.replace('.', '_');\n }\n\n if (this.actorId) {\n this.key += '_' + this.actorId;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMStatePersistenceService } from '@services/lm-state-persistence.service';\n\n@Injectable()\nexport class LMListStateService {\n constructor(private lmStatePersistenceService: LMStatePersistenceService) {}\n\n /**\n * Retrieve the list state for the given LMListStateKeyParams object.\n */\n public getListState(listStateKeyParams: LMListStateKeyParams): LMListState {\n return this.lmStatePersistenceService.getState(listStateKeyParams.getKey()) as LMListState;\n }\n\n /**\n * Persist the list state for the given LMListStateKeyParams object.\n */\n public saveListState(listStateKeyParams: LMListStateKeyParams, listStateItem: LMListState): void {\n this.lmStatePersistenceService.persistState(listStateKeyParams.getKey(), listStateItem);\n }\n\n public deleteListState(listStateKeyParams: LMListStateKeyParams): void {\n return this.lmStatePersistenceService.removeState(listStateKeyParams.getKey());\n }\n}\n\nexport class LMListStateKeyParams {\n actorId?: string;\n asOfDate?: string;\n dataArea: string;\n routeResourceId: string;\n resourceId: string;\n contextResourceId?: string;\n prefix?: string;\n userFolder?: string;\n\n private key = '';\n\n getKey() {\n if (!this.key) {\n this.buildKey();\n }\n return this.key;\n }\n\n private buildKey(): void {\n const stringArray = new Array();\n\n if (this.actorId) {\n stringArray.push(this.actorId);\n }\n if (this.asOfDate) {\n stringArray.push(this.asOfDate);\n }\n\n stringArray.push(this.dataArea);\n stringArray.push(this.routeResourceId);\n\n if (this.resourceId !== this.routeResourceId) {\n // must be a listPanel\n stringArray.push(this.resourceId);\n }\n\n if (this.contextResourceId) {\n stringArray.push(this.contextResourceId);\n }\n\n if (this.userFolder) {\n stringArray.push(this.userFolder);\n }\n\n this.key = stringArray.join('_');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMPagePersonalization } from '@states/models/lm-page-personalization.model';\nimport { LMPersonalizationPersistenceService } from '@services/lm-personalization-persistence.service';\n\n@Injectable()\nexport class LMPagePersonalizationService {\n constructor(private lmSessionStorageService: LMPersonalizationPersistenceService) {}\n\n public getPagePersonalization(pagePersonalizationKeyParams: LMPagePersonalizationKeyParams): LMPagePersonalization {\n return this.lmSessionStorageService.getPersonalization(pagePersonalizationKeyParams.getKey());\n }\n\n public savePagePersonalization(pagePersonalizationKeyParams: LMPagePersonalizationKeyParams, pagePersonalizationItem: LMPagePersonalization) {\n this.lmSessionStorageService.persistPersonalization(pagePersonalizationKeyParams.getKey(), pagePersonalizationItem);\n }\n\n public deletePagePersonalization(pagePersonalizationKeyParams: LMPagePersonalizationKeyParams): void {\n this.lmSessionStorageService.removePersonalization(pagePersonalizationKeyParams.getKey());\n }\n}\n\nexport class LMPagePersonalizationKeyParams {\n prefix?: string;\n resourceId: string;\n dataArea: string;\n actorId?: string;\n contextResourceId?: string;\n\n private key = '';\n\n getKey() {\n if (!this.key) {\n this.buildKey();\n }\n return this.key;\n }\n\n private buildKey(): void {\n if (this.prefix) {\n this.key += this.prefix + '_';\n }\n\n this.key += this.dataArea + '_' + this.resourceId.replace('.', '_');\n\n if (this.contextResourceId) {\n this.key += '_' + this.contextResourceId.replace('.', '_');\n }\n\n if (this.actorId) {\n this.key += '_' + this.actorId;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMStatePersistenceService } from '@services/lm-state-persistence.service';\n\n@Injectable()\nexport class LMPageStateService {\n constructor(private lmStatePersistenceService: LMStatePersistenceService) {}\n\n public getPageState(pageStateKeyParams: LMPageStateKeyParams): LMPageState {\n return this.lmStatePersistenceService.getState(pageStateKeyParams.getKey()) as LMPageState;\n }\n\n public savePageState(pageStateKeyParams: LMPageStateKeyParams, pageStateItem: LMPageState): void {\n this.lmStatePersistenceService.persistState(pageStateKeyParams.getKey(), pageStateItem);\n }\n\n public deletePageState(pageStateKeyParams: LMPageStateKeyParams): void {\n this.lmStatePersistenceService.removeState(pageStateKeyParams.getKey());\n }\n}\n\nexport class LMPageStateKeyParams {\n actorId?: string;\n asOfDate?: string;\n dataArea: string;\n routeResourceId: string;\n pagePanelId?: string;\n\n private key = '';\n\n getKey() {\n if (!this.key) {\n this.buildKey();\n }\n return this.key;\n }\n\n private buildKey(): void {\n const stringArray = new Array();\n\n if (this.actorId) {\n stringArray.push(this.actorId);\n }\n if (this.asOfDate) {\n stringArray.push(this.asOfDate);\n }\n\n stringArray.push(this.dataArea);\n // page is only a top level component therefore do not need a resourceId\n stringArray.push(this.routeResourceId);\n stringArray.push(this.pagePanelId);\n\n this.key = stringArray.join('_');\n }\n}\n","export * from './lm-transaction.service';\nexport * from './lm-transaction-state';\n","\nimport { AppConstants } from '@utils/app.constants';\nimport { LMActionRequest } from '@services/lm-action.service';\nimport { LMModelMultiPartFields } from '@form/model/lm-model';\n\nexport class LMTransactionState {\n\n private _url: string;\n\n public isFinished: boolean;\n public isCanceled: boolean;\n public isError: boolean;\n public isSSORedirecting: boolean;\n public dataViewIndex = 0;\n public response: any;\n public actionFormDialogSaved: boolean;\n public postRegUrl: string;\n public busFormSpec: LMBusFormSpec;\n public multiPartFields: LMModelMultiPartFields;\n public templateMultiPartFields: LMModelMultiPartFields[];\n public parameterView: LMDataView;\n public isMatrixForm = false;\n\n public cancelledRTConfirmations: string[] = [];\n public transactionRequestList: LMActionRequest[]; // original request payload\n public pendingTransactionRequestList: LMActionRequest[]; // requests that need to be sent to server\n public completedTransactionList: LMActionResult[] = []; // requests that have completed\n\n constructor(url: string) {\n this._url = url;\n }\n\n get url(): string {\n return this._url;\n }\n\n get hasPendingTransactions(): boolean {\n return this.pendingTransactionRequestList.length > 0;\n }\n\n public setRequestPayload(transactionRequestList: LMActionRequest[]) {\n this.transactionRequestList = transactionRequestList;\n this.pendingTransactionRequestList = [];\n this.dataViewIndex = 0;\n }\n\n public getPendingDataViews(): LMDataView[] {\n const list: LMDataView[] = [];\n for (let i = 0; i < this.transactionRequestList.length; i++) {\n list.push(this.transactionRequestList[ i ].dataView);\n }\n return list;\n }\n\n public resetTransactionRequest() {\n this.transactionRequestList = this.pendingTransactionRequestList;\n this.pendingTransactionRequestList = [];\n this.dataViewIndex = 0;\n }\n\n public cancel() {\n if (!this.isFinished) {\n this.isFinished = true;\n this.isCanceled = true;\n }\n }\n\n public finish() {\n if (!this.isFinished) {\n this.isFinished = true;\n }\n }\n\n public error(error: any) {\n if (!this.isFinished) {\n this.response = error;\n if (error?.status && error.status === 400 && error.error?.details && error.error.details.indexOf('malicious script') >= -1 ) {\n // The error object of a security exception is tucked into the HTTPResponse object itself as error.error. Extracting it out here\n // so all the transaction message handlers do not have to change in form or list or menu.\n this.response = error.error;\n }\n this.isFinished = true;\n this.isError = true;\n this.isSSORedirecting = this.response.status === AppConstants.STATUS_SSO_REDIRECTING;\n }\n }\n\n public queueRequest(request: LMActionRequest) {\n this.pendingTransactionRequestList.push(request);\n }\n\n public completeResult(result: LMActionResult) {\n this.completedTransactionList.push(result);\n }\n\n public addCancelledRTConfirmation(result: LMActionResult) {\n this.cancelledRTConfirmations.push(result.message);\n this.completeResult(result);\n }\n\n public hasCancelledRTConfirmationMessage(message: string): boolean {\n return this.cancelledRTConfirmations.filter(m => m === message).length > 0;\n }\n\n public hasCancelledRTConfirmationResults(): boolean {\n return this.cancelledRTConfirmations.length > 0;\n }\n\n public isSuccess(): boolean {\n if (this.isError || this.isCanceled) {\n return false;\n }\n\n for (let i = 0, l = this.completedTransactionList.length; i < l; i++) {\n const request = this.completedTransactionList[ i ];\n if (AppConstants.STATUS_COMPLETED !== request.status) {\n return false;\n }\n }\n return true;\n }\n\n public getTransactionResult(): LMActionResult {\n if (this.completedTransactionList.length > 0) {\n return this.completedTransactionList[ 0 ];\n }\n return null;\n }\n\n public allRequestsFailedForSameReason(): boolean {\n const firstMessage = this.getTransactionResult().message;\n\n for (let i = 0, l = this.completedTransactionList.length; i < l; i++) {\n const request = this.completedTransactionList[i];\n\n if (AppConstants.VIEW_EXCEPTION !== request.status) {\n return false;\n }\n\n if (firstMessage !== request.message) {\n return false;\n }\n }\n return true;\n }\n\n public allRequestsSuccessfulForSameReason(): boolean {\n const firstMessage = this.getTransactionResult().message;\n for (let i = 0, l = this.completedTransactionList.length; i < l; i++) {\n const request = this.completedTransactionList[i];\n\n if (AppConstants.STATUS_COMPLETED !== request.status) {\n return false;\n }\n if (firstMessage !== request.message) {\n return false;\n }\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, filter, flatMap, map, tap } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport * as _ from 'lodash';\n\nimport { AppConstants } from '@utils/app.constants';\nimport { LMActionService, LMActionRequest } from '@services/lm-action.service';\nimport {\n ConfirmationDialogResult,\n LMConfirmationMessageService\n} from '@modal/lm-confirmation-message.service';\nimport { LMFormatUtilService } from '@services/utils/lm-format-util.service';\nimport { LMLoggerService } from '@services/lm-logger.service';\nimport { LMFieldUtilService } from '@services/utils/lm-field-util.service';\nimport { LMSpecService } from '@services/lm-spec.service';\nimport {\n LMResponseRequiredService,\n ResponseRequiredDialogResult,\n ResponseRequiredResult\n} from '@modal/lm-response-required.service';\nimport {\n LMActionFormDialogService,\n LMActionFormDialogResult,\n LMActionFormDialogResultCode\n} from '@modal/lm-action-form-dialog.service';\nimport { LMFormContext } from '@form/services/lm-form-action-util.service';\nimport { LMErrorUtilService } from '@services/utils/lm-error-util.service';\nimport { LMScheduleDialogService } from '@modal/print-dialog/schedule/lm-schedule-dialog.service';\nimport { LMUrlUtilService } from '@services/utils/lm-url-util.service';\nimport { LMConditionUtilService } from '@utils/lm-condition-util.service';\nimport { LMContextService } from '@services/lm-context.service';\nimport { LMUrlInfoBuilderService } from '@services/lm-url-info-builder.service';\nimport { LMTransactionState } from './lm-transaction-state';\n\n@Injectable()\nexport class LMTransactionService {\n private turnOnOKToAllResponseRequired = false;\n\n constructor(\n private lmActionFormDialogService: LMActionFormDialogService,\n private lmActionService: LMActionService,\n private lmConditionUtilService: LMConditionUtilService,\n private lmConfirmationMessageService: LMConfirmationMessageService,\n private lmContextService: LMContextService,\n private lmErrorUtilService: LMErrorUtilService,\n private lmFieldUtilService: LMFieldUtilService,\n private lmFormatUtilService: LMFormatUtilService,\n private lmLoggerService: LMLoggerService,\n private lmResponseRequiredService: LMResponseRequiredService,\n private lmScheduleDialogService: LMScheduleDialogService,\n private lmSpecService: LMSpecService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmUrlUtilService: LMUrlUtilService\n ) {}\n\n /**\n * Determines if opening a schedule dialog is necessary or not\n * then returns a schedule dataview accordingly\n * @param actionSpec the action spec\n * @param busClassName the busclass name\n * @return the schedule dataview\n */\n public getScheduleView(actionSpec: LMActionSpec, busClassName: string): Observable {\n // Open schedule dialog if it is not an action form and action needs to run in background\n const hasFormDialog = actionSpec.hasParameters || actionSpec.hasActionForm;\n return (!hasFormDialog && actionSpec.willRunAsynchronous) ?\n this.lmScheduleDialogService.openScheduleDialog(busClassName, actionSpec.name) :\n of({});\n }\n\n /**\n * Helper function intended to be used with rxjs' tap() operator that will\n * throw a custom error to signify that previous transaction is cancelled\n * therefore skipping all operator functions that follows\n * @param proceed the boolean return value it's going to receive\n */\n public isCancelled(proceed: boolean) {\n if (!proceed) {\n throw 'cancelled';\n }\n }\n\n /**\n * Helper function intended to be used with rxjs' catchError() operator that will\n * catch cancelled errors thrown by isCancelled and exit with a false value instead\n * @param error any error that may occur within the observable stream\n * @return returns false if 'cancelled' error is caught\n */\n public checkCancelled(error: any): Observable {\n if (error === 'cancelled') {\n return of(false);\n }\n // let other kinds of error fall through\n throw error;\n }\n\n public runCheckConfirmationRequired(actionSpec: LMActionSpec, state: LMTransactionState): Observable {\n const required = actionSpec && (actionSpec.confirmation || actionSpec.type === AppConstants.ACTION_TYPE_DELETE);\n if (!required) {\n return of(true);\n }\n const dataView = state.transactionRequestList ? state.transactionRequestList[0].dataView : null;\n\n // confirmation message\n const message = (actionSpec.confirmation) ?\n this.lmFormatUtilService.formatMessageRule(actionSpec.confirmation, dataView) :\n this.lmFormatUtilService.formatMessage(Soho.Locale.translate('ConfirmDelete'), actionSpec.label);\n\n // alert message appended to title\n let alertMessage = null;\n if (state.transactionRequestList && state.transactionRequestList.length > 1) {\n const count = state.transactionRequestList.length;\n const phrase = (actionSpec.type === AppConstants.ACTION_TYPE_DELETE) ?\n 'DeleteConfirmationAlertMessage' :\n 'ActionConfirmationAlertMessage';\n alertMessage = this.lmFormatUtilService.formatMessage(Soho.Locale.translate(phrase), count);\n }\n\n // TODO need to add the confirmation alert message if more that one dataview is selected!\n return this.lmConfirmationMessageService.promptConfirmationMessage({ message, alertMessage }).pipe(\n map((result: ConfirmationDialogResult) => {\n if (result === ConfirmationDialogResult.CONFIRMATION_OK) {\n this.lmLoggerService.log([ 'Message confirmed: ', message ]);\n return true;\n }\n this.lmLoggerService.log([ 'Message not confirmed: ', message ]);\n state.cancel();\n return false;\n })\n );\n }\n\n public runCheckFormInputRequired(\n actionRedirectURL: string,\n actionSpec: LMActionSpec,\n transactionState: LMTransactionState,\n contextDataView?: LMDataView,\n actionFieldMap?: LMActionFieldMap,\n dragdropTargetView?: LMDataView\n ): Observable {\n const required = actionSpec && (actionSpec.hasParameters || actionSpec.hasActionForm);\n if (!required) {\n return of(true);\n }\n\n this.lmLoggerService.time({\n id: 'TotalActionForm',\n description: 'TOTAL ACTION FORM',\n className: 'LMTransactionService',\n timingStart: 'LMTransactionService -> runCheckFormInputRequired()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n\n return this.lmSpecService.getFormSpecFromRedirectActionUrl(actionRedirectURL).pipe(\n flatMap((response: LMActionFormUrlResponse | LMSystemException) => {\n\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR\n || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n const paramView = {} as LMDataView;\n return of({ response, paramView });\n }\n\n const actionFormUrlResponse = response as LMActionFormUrlResponse;\n const formUrlInfo = actionFormUrlResponse.formUrlInfo;\n const resourceId = actionFormUrlResponse.resourceId;\n const actionName = actionFormUrlResponse.action;\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const url = urlCompiledTemplate.expand({ resourceId, actionName });\n\n return this.lmActionFormDialogService.getActionFormDialogDataView(url).pipe(\n map((paramView: LMDataView) => ({ response, paramView }))\n );\n }),\n flatMap(({ response, paramView }) => {\n // Exception Occurs\n const exception: LMSystemException = (Object.keys(paramView).length === 0)\n ? (response as LMSystemException)\n : (paramView.status !== AppConstants.STATUS_COMPLETED) ? (paramView as LMSystemException) : undefined;\n\n if (exception) {\n this.lmLoggerService.error(exception);\n // oomponents and not the service will handle the errors. Send the error back in the transaction state.\n // this.lmErrorUtilService.handleError(exception.message, exception.details, exception.status, exception.statusText);\n transactionState.error(exception);\n return of(false);\n }\n\n const actionFormUrlResponse = response as LMActionFormUrlResponse;\n const formUrlInfo = actionFormUrlResponse.formUrlInfo;\n const formSpec = actionFormUrlResponse.formSpec;\n\n let allParamsSet;\n if (contextDataView) {\n paramView = this.populateParamView(paramView, contextDataView, formSpec, false, actionFieldMap);\n allParamsSet = this.allParamsSet(paramView.fields, formSpec.busFormSpec.fields, actionFieldMap);\n } else if (dragdropTargetView) {\n paramView = this.populateFromDragDropView(paramView, dragdropTargetView, formSpec, false, actionFieldMap);\n allParamsSet = this.allParamsSet(paramView.fields, formSpec.busFormSpec.fields);\n } else if (actionSpec.hasActionForm && !actionSpec.hasParameters) {\n allParamsSet = (\n actionSpec.type !== AppConstants.ACTION_TYPE_CREATE &&\n actionSpec.type !== AppConstants.ACTION_TYPE_IMPORT &&\n actionSpec.type !== AppConstants.ACTION_TYPE_UPDATE &&\n !this.lmResponseRequiredService.isResponseRequired(actionSpec)\n );\n }\n\n if (!allParamsSet) {\n return this.runActionFormDialog(formUrlInfo, formSpec, actionSpec, paramView, transactionState, true);\n }\n\n return this.executeRunActionForm({ formSpec, formUrlInfo }, actionSpec, paramView, transactionState);\n })\n );\n }\n\n private runActionFormDialog(\n formUrlInfo: LMFormUrlInfo,\n formSpec: LMFormSpec,\n actionSpec: LMActionSpec,\n paramView: LMDataView,\n transactionState: LMTransactionState,\n loadTimerStarted?: boolean,\n ): Observable {\n return this.lmActionFormDialogService\n .runActionFormDialog(formUrlInfo, formSpec, actionSpec, paramView, transactionState, null, loadTimerStarted)\n .pipe(map((actionFormDialogResult: LMActionFormDialogResult) => {\n const result = actionFormDialogResult.result;\n if (result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_CANCEL) {\n transactionState.cancel();\n return false;\n }\n\n if (result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n // Transaction state is already updated in form component aftre successful save.\n return false;\n }\n return true;\n }));\n }\n\n private executeRunActionForm(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n paramView: LMDataView,\n transactionState: LMTransactionState\n ): Observable {\n return this.runActionForm(formContext, actionSpec, paramView, transactionState.getPendingDataViews()).pipe(\n map((formTransactionState: LMTransactionState) => {\n if (formTransactionState.isCanceled) {\n transactionState.cancel();\n return false;\n }\n\n if (formTransactionState.isFinished) {\n const completedList = formTransactionState.completedTransactionList;\n completedList.forEach((completed) => transactionState.completeResult(completed));\n\n const cancelled = formTransactionState.cancelledRTConfirmations;\n if (cancelled.length) {\n transactionState.cancelledRTConfirmations.push(...cancelled);\n }\n transactionState.finish();\n return false;\n }\n return true;\n })\n );\n }\n\n public runActionForm(\n formContext: LMFormContext,\n actionSpec: LMActionSpec,\n parameterView: LMDataView,\n dataViewList: LMDataView[]\n ): Observable {\n const formSpec = formContext.formSpec;\n const busClassSpec = formSpec.busClassSpec;\n const busFormSpec = formSpec.busFormSpec;\n const url = this.createFormTransactionUrl(formContext, actionSpec, parameterView);\n const transactionState = new LMTransactionState(url);\n const scheduleView$ = this.getScheduleView(actionSpec, busClassSpec.name);\n\n const proceed$ = scheduleView$.pipe(\n filter(scheduleView => (scheduleView !== undefined)),\n // Prepare transactionRequests\n map((scheduleDV: LMDataView) => {\n // for multiple record selection\n if (dataViewList.length > 1) {\n // derive scheduleView from parameterView when available\n if (!Object.keys(scheduleDV).length && parameterView.scheduleView) {\n scheduleDV = parameterView.scheduleView;\n }\n transactionState.parameterView = parameterView;\n return this.lmActionService.buildActionRequestForDataViewList({\n dataViewLists: dataViewList,\n actionSpec,\n scheduleView: scheduleDV,\n pfActionRequestMode: formContext.actionRequestMode\n });\n }\n\n return [this.lmActionService.buildActionRequestForDataView(parameterView, actionSpec, null, null, null, scheduleDV, formContext.actionRequestMode)];\n }),\n // Prepare transactionState\n map((transactionRequests: LMActionRequest[]) => {\n transactionState.setRequestPayload(transactionRequests);\n transactionState.busFormSpec = busFormSpec;\n if (formContext.formModel) {\n transactionState.multiPartFields = formContext.formModel.multiPartFields;\n }\n return transactionState;\n }),\n flatMap(() => this.runCheckResponseRequired(transactionState, busClassSpec, busFormSpec)),\n tap(this.isCancelled),\n flatMap(() => this.runCheckConfirmationRequired(actionSpec, transactionState)),\n tap(this.isCancelled),\n catchError(this.checkCancelled)\n );\n\n return proceed$.pipe(\n flatMap((proceed: boolean) => {\n if (proceed) {\n return this.executeAction(transactionState);\n }\n\n transactionState.cancel();\n return of(transactionState);\n })\n );\n }\n\n public createFormTransactionUrl(formContext: LMFormContext, actionSpec: LMActionSpec, dataView: LMDataView, sourceResourceId?: string) {\n const newFormTransactionUrl = this.createNewFormTransactionUrl(formContext, actionSpec, dataView, sourceResourceId);\n\n let formTransactionUrl;\n if (this.lmContextService.useNewSpecUrls()) {\n formTransactionUrl = newFormTransactionUrl;\n } else {\n const oldTransactionUrl = this.createOldFormTransactionUrl(formContext.formUrlInfo, formContext.formSpec, actionSpec, dataView, sourceResourceId);\n\n this.lmUrlInfoBuilderService.compareSpecUrls(\n formContext.formUrlInfo,\n formContext.formSpec.busFormSpec.name + 'LMTransactionService.createFormTransactionUrl',\n oldTransactionUrl,\n newFormTransactionUrl,\n );\n formTransactionUrl = oldTransactionUrl;\n }\n\n return formTransactionUrl;\n }\n\n /**\n * @deprecated spec-url-refactor can remove once refactor is complete.\n */\n private createOldFormTransactionUrl(formUrlInfo: LMFormUrlInfo, formSpec: LMFormSpec, actionSpec: LMActionSpec, dataView: LMDataView, sourceResourceId?: string) {\n // DPB This needs to be tested\n if (formUrlInfo?.sourceResource?.resourceType === AppConstants.RESOURCETYPE_FORMINVOKE && actionSpec.type === 'CREATE') {\n return formUrlInfo.formInvokeCreateUrl;\n }\n\n const transactionUrlTemplate = urltemplate.parse(formUrlInfo.transactionUrl);\n let url;\n if (formSpec.dependentForm) {\n url = transactionUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name,\n sourceResourceId\n });\n } else {\n url = transactionUrlTemplate.expand({\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n });\n }\n\n if (formUrlInfo.navigationContext && Object.keys(formUrlInfo.navigationContext).length > 0) {\n const delimiter = url.indexOf('?') === -1 ? '?' : '&';\n url += delimiter + this.lmUrlUtilService.objectToQueryString(formUrlInfo.navigationContext);\n }\n return url;\n }\n\n private createNewFormTransactionUrl(formContext: LMFormContext, actionSpec: LMActionSpec, dataView: LMDataView, sourceResourceId?: string) {\n // DPB This needs to be tested\n if (formContext.formUrlInfo.sourceResource\n && formContext.formUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_FORMINVOKE\n && actionSpec.type === 'CREATE') {\n return formContext.formUrlInfo.formInvokeCreateUrl;\n }\n\n const transactionUrlTemplate = urltemplate.parse(formContext.formUrlInfo.transactionUrl);\n const params = {\n resourceId: dataView.resourceId,\n actionName: actionSpec.name\n };\n\n if (formContext.formSpec.dependentForm) {\n params['sourceResourceId'] = sourceResourceId;\n }\n\n let url = transactionUrlTemplate.expand(params);\n if (formContext.formUrlInfo.navigationContext && Object.keys(formContext.formUrlInfo.navigationContext).length > 0) {\n const delimiter = url.indexOf('?') === -1 ? '?' : '&';\n url += delimiter + this.lmUrlUtilService.objectToQueryString(formContext.formUrlInfo.navigationContext);\n }\n\n return url;\n }\n\n private populateFromDragDropView(paramView: LMDataView, dragdropTargetView: LMDataView, formSpec: LMFormSpec, override: boolean, actionFieldMap?: LMActionFieldMap): LMDataView {\n /*\n Object.assign is a shallow clone, it is NOT cloning the objects in the field collection.\n I'm leaving this because the Action Form's model ends up updating this field collection which then\n updates all the fields the pending transaction dataViews. Risk is that if the form model changes\n a non parameter field such as a context key or symbolic key.\n */\n const dvFields = Object.assign({}, paramView.fields);\n\n const keys: Array = Object.keys(dvFields);\n\n for (let index = 0, len = keys.length; index < len; index++) {\n const key = keys[ index ];\n this.processParamFieldValue(key, dvFields, dragdropTargetView, formSpec, override, actionFieldMap, true);\n }\n paramView.fields = dvFields;\n\n this.isValidSection(paramView, dragdropTargetView, formSpec);\n return paramView;\n }\n\n private populateParamView(paramView: LMDataView, contextDataView: LMDataView, formSpec: LMFormSpec, override: boolean, actionFieldMap?: LMActionFieldMap): LMDataView {\n const dataView = { ...paramView };\n dataView.id = contextDataView.id; // this is necessary so list can update the row\n\n const keys: Array = Object.keys(dataView.fields);\n for (let index = 0, len = keys.length; index < len; index++) {\n const key = keys[index];\n this.processParamFieldValue(key, dataView.fields, contextDataView, formSpec, override, actionFieldMap, false);\n }\n\n return dataView;\n }\n\n private processParamFieldValue(key: string, dvFields: LMFields, contextDataView: LMDataView, formSpec: LMFormSpec, override: boolean, actionFieldMap: LMActionFieldMap, dragAndDrop: boolean) {\n const dvField = dvFields[ key ];\n let isBlank = true;\n let prefix = '';\n\n if (dvField.members) {\n for (let i = 0, len = dvField.members.length; i < len; i++) {\n const memberId = dvField.members[ i ];\n this.processParamFieldValue(memberId, dvFields, contextDataView, formSpec, override, actionFieldMap, dragAndDrop);\n }\n } else {\n let contextFieldId = key;\n\n const indexPrd = key.indexOf('_prd_');\n if (indexPrd > -1) {\n const indexOp = key.startsWith('_op_');\n contextFieldId = key.substring(indexPrd + 5);\n if (indexOp) {\n contextFieldId = '_op_' + contextFieldId;\n }\n prefix = key.substring(0, indexPrd);\n }\n\n let contextField;\n if (actionFieldMap && actionFieldMap[ contextFieldId ]) {\n const fieldMapId = actionFieldMap[ contextFieldId ];\n if (contextDataView.fields[ fieldMapId ]) {\n contextField = contextDataView.fields[ fieldMapId ];\n }\n // LMCLIENT-36804: If drag and drop and part of field mapping, override field.\n // Prior to this change, we had an issue of not being able to override\n // Boolean fields (only) AND a related field of the invoked field.\n if (dragAndDrop) {\n override = true;\n }\n } else if (actionFieldMap && prefix.length > 0 && actionFieldMap[ prefix ]) {\n const fieldMapPrefix = actionFieldMap[ prefix ];\n const fieldMapId = fieldMapPrefix + '_prd_' + contextFieldId;\n if (contextDataView.fields[ fieldMapId ]) {\n contextField = contextDataView.fields[ fieldMapId ];\n } else if (dragAndDrop && contextDataView.fields[ contextFieldId ]) { // actionFieldMap is required for drag and drop but they aren't necessarily used for prefix mapping\n contextField = contextDataView.fields[contextFieldId];\n }\n } else if (contextDataView.fields[ key ]) {\n contextField = contextDataView.fields[ key ];\n } else if (contextDataView.fields[ contextFieldId ]) {\n contextField = contextDataView.fields[ contextFieldId ];\n }\n\n if (contextField !== undefined) {\n const specField = formSpec.busFormSpec.fields[ key ];\n\n if (specField !== undefined) {\n isBlank = this.lmFieldUtilService.isBlank(specField.type, dvField.value);\n } else {\n isBlank = (dvField.value === undefined\n || dvField.value === null\n || _.trim(dvField.value as string) === '');\n }\n\n if (override || isBlank) {\n const field = Object.assign({}, dvField);\n field.value = contextField.value;\n dvFields[ key ] = field;\n }\n }\n }\n }\n\n private isValidSection(paramView: LMDataView, contextDataView: LMDataView, formSpec: LMFormSpec) {\n const busFormLayout = formSpec.busFormSpec.busFormLayoutSpec.layout;\n busFormLayout.sections.forEach((layoutSection: LMFormLayoutSection) => {\n const valid = layoutSection && layoutSection.visibility ? this.lmConditionUtilService.isValid(layoutSection.visibility, paramView) : true;\n if (layoutSection.columns) {\n layoutSection.columns.forEach((column: LMFormLayoutColumn) => {\n this.isValidLayoutElement(column.elements, paramView, contextDataView, formSpec, valid);\n });\n } else if (layoutSection.paragraph) {\n this.isValidLayoutElement(layoutSection.paragraph.elements, paramView, contextDataView, formSpec, valid);\n } else if (layoutSection.field) {\n this.markInvalidFields(layoutSection, paramView, contextDataView, formSpec, valid);\n }\n });\n }\n\n private isValidLayoutElement(elements: LMFormLayoutElement[], paramView: LMDataView, contextDataView: LMDataView, formSpec: LMFormSpec, valid: boolean) {\n elements.forEach((element: LMFormLayoutElement) => {\n if (element.paragraph) {\n this.isValidLayoutElement(element.paragraph.elements, paramView, contextDataView, formSpec, valid);\n } else if (element.field) {\n this.markInvalidFields(element, paramView, contextDataView, formSpec, valid);\n }\n });\n }\n\n private markInvalidFields(element: LMFormLayoutElement, paramView: LMDataView, contextDataView: LMDataView, formSpec: LMFormSpec, valid) {\n const elementValid = element.field && element.field.visibility ? this.lmConditionUtilService.isValid(element.field.visibility, paramView) : true;\n const specField = formSpec.busFormSpec.fields[ element.field.bindId ];\n const field = paramView.fields[element.field.bindId];\n\n // if there is a valid occurrence, invalid should be false. undefined value is equal to true\n if ((!valid || !elementValid) && field) {\n specField.inValid = specField.inValid === undefined ? true : specField.inValid;\n } else {\n specField.inValid = false;\n }\n }\n\n private allParamsSet(fields: LMFields, specFields: LMSpecFields, actionFieldMap?: LMActionFieldMap): boolean {\n const keys: Array = Object.keys(fields);\n let allParamsSet = true;\n\n if (actionFieldMap) {\n return true;\n }\n\n for (let index = 0, len = keys.length; index < len; index++) {\n const key = keys[ index ];\n const dvField = fields [ key ];\n const specField = specFields[ key ];\n\n let validField = true;\n if (specField === undefined) {\n validField = false;\n } else {\n validField = specField !== undefined && (specField.inValid === undefined || (specField.inValid !== undefined && !specField.inValid));\n }\n\n if (validField && dvField.mutable && this.lmFieldUtilService.isBlank(specField.type, dvField.value)) {\n allParamsSet = false;\n }\n }\n\n return allParamsSet;\n }\n\n public runCheckResponseRequiredPF(\n transactionState: LMTransactionState,\n pfAction: LMProcessFlowAction,\n busClassSpec: LMBusClassSpec,\n navigationContextForm?: LMNavContextKeys,\n busFormSpec?: LMBusFormSpec\n ): Observable {\n return this.checkResponseRequiredPF(transactionState, 0, pfAction, busClassSpec, navigationContextForm, busFormSpec);\n }\n\n private checkResponseRequiredPF(\n transactionState: LMTransactionState,\n dataViewIndex: number,\n pfAction: LMProcessFlowAction,\n busClassSpec: LMBusClassSpec,\n navigationContextForm?: LMNavContextKeys,\n busFormSpec?: LMBusFormSpec\n ): Observable {\n const requestList = transactionState.transactionRequestList;\n const isLastRequest = (dataViewIndex === requestList.length - 1);\n const actionRequest = requestList[ dataViewIndex ];\n const dataView = actionRequest.dataView;\n\n if (!this.lmResponseRequiredService.isResponseRequiredPF(pfAction)) {\n return of(true);\n }\n\n // call the service to ensure that dataView complies to all the required responses\n const okToAll = !isLastRequest && this.turnOnOKToAllResponseRequired;\n\n // Navigation context is used in reason code select\n // Form has the navigation context in the formSpec.\n // Whereas, if one or more workunits in a list are approved, get the navigation context for each record.\n let navigationContext: LMNavContextKeys = {};\n if (navigationContextForm) {\n navigationContext = navigationContextForm;\n } else if (dataView) {\n if (dataView.fields['PfiWorkunit']) {\n navigationContext['nc.PfiWorkunit'] = dataView.fields['PfiWorkunit'].value.toString();\n }\n if (dataView.fields['PfiActivity']) {\n navigationContext['nc.PfiActivity'] = dataView.fields['PfiActivity'].value.toString();\n }\n if (dataView.fields['PfiTask_prd_TaskName']) {\n navigationContext['nc.PfiTask.TaskName'] = dataView.fields['PfiTask_prd_TaskName'].value.toString();\n }\n if (dataView.fields['PfiTask_prd_TaskType']) {\n navigationContext['nc.PfiTask.TaskType'] = dataView.fields['PfiTask_prd_TaskType'].value.toString();\n }\n if (dataView.fields['PfiQueueAssignment']) {\n navigationContext['nc.PfiQueueAssignment'] = dataView.fields['PfiQueueAssignment'].value.toString();\n }\n }\n\n return this.lmResponseRequiredService.promptResponseRequiredDialogPF({\n pfAction,\n navigationContext,\n dataView,\n busFormSpec,\n busClassSpec,\n okToAll\n }).pipe(\n flatMap((response: ResponseRequiredResult) => {\n this.lmLoggerService.log(response.result);\n\n if (response.result === ResponseRequiredDialogResult.RESPONSE_CANCEL) {\n transactionState.cancel();\n return of(false);\n }\n\n const responseRequiredStatus = (!this.turnOnOKToAllResponseRequired) ?\n ResponseRequiredDialogResult.RESPONSE_OKTOALL :\n response.result;\n\n // clone of the target dataView + all the Response Required fields\n const respReqDataView = response.model.getData();\n this.applyRequiredFieldsPF(requestList[ dataViewIndex ].dataView, response.specFields, respReqDataView, pfAction);\n\n if (isLastRequest) {\n // continue the transaction the user has all required responses entered\n return of(true);\n }\n\n if (responseRequiredStatus === ResponseRequiredDialogResult.RESPONSE_OKTOALL) {\n ++dataViewIndex;\n for (let i = dataViewIndex; i < requestList.length; i++) {\n this.applyRequiredFieldsPF(requestList[ i ].dataView, response.specFields, respReqDataView, pfAction);\n }\n return of(true);\n }\n\n return this.checkResponseRequiredPF(transactionState, ++dataViewIndex, pfAction, busClassSpec, navigationContextForm, busFormSpec);\n })\n );\n }\n\n public runCheckResponseRequired(\n transactionState: LMTransactionState,\n busClassSpec: LMBusClassSpec,\n busFormSpec?: LMBusFormSpec\n ): Observable {\n return this.checkResponseRequired(transactionState, 0, busClassSpec, busFormSpec);\n }\n\n private checkResponseRequired(\n transactionState: LMTransactionState,\n dataViewIndex: number,\n busClassSpec: LMBusClassSpec,\n busFormSpec?: LMBusFormSpec\n ): Observable {\n const requestList = transactionState.transactionRequestList;\n const isLastRequest = (dataViewIndex === requestList.length - 1);\n const actionRequest = requestList[ dataViewIndex ];\n const dataView = actionRequest.dataView;\n const actionSpec = actionRequest.actionSpec;\n\n if (!this.lmResponseRequiredService.isResponseRequired(actionSpec, busFormSpec, dataView)) {\n return of(true);\n }\n\n // ensure that dataView complies to all the required responses\n const okToAll = !isLastRequest && this.turnOnOKToAllResponseRequired;\n return this.lmResponseRequiredService.promptResponseRequiredDialog({\n actionSpec,\n dataView,\n busFormSpec,\n busClassSpec,\n okToAll\n }).pipe(\n flatMap((response: ResponseRequiredResult) => {\n this.lmLoggerService.log(response.result);\n\n if (response.result === ResponseRequiredDialogResult.RESPONSE_CANCEL) {\n transactionState.cancel();\n return of(false);\n }\n\n const responseRequiredStatus = (!this.turnOnOKToAllResponseRequired) ?\n ResponseRequiredDialogResult.RESPONSE_OKTOALL :\n response.result;\n\n // clone of the target dataView + all the Response Required fields\n const respReqDataView = response.model.getData();\n this.applyRequiredFields(requestList[ dataViewIndex ].dataView, response.specFields, respReqDataView);\n\n if (isLastRequest) {\n // continue the transaction if the user has all required responses entered\n return of(true);\n }\n\n if (responseRequiredStatus === ResponseRequiredDialogResult.RESPONSE_OKTOALL) {\n ++dataViewIndex;\n for (let i = dataViewIndex; i < requestList.length; i++) {\n this.applyRequiredFields(requestList[ i ].dataView, response.specFields, respReqDataView);\n }\n return of(true);\n }\n\n return this.checkResponseRequired(transactionState, ++dataViewIndex, busClassSpec, busFormSpec);\n })\n );\n }\n\n private applyRequiredFields(dataView: LMDataView, specFields: LMSpecFields, respReqDataView: LMDataView): LMDataView {\n const keys = Object.keys(specFields);\n for (let i = 0, len = keys.length; i < len; i++) {\n const fieldId: string = keys[ i ];\n const respReqField: LMField = respReqDataView.fields[ fieldId ];\n const field: LMField = dataView.fields[ fieldId ];\n\n if (field) {\n field.value = respReqField.value;\n } else {\n dataView.fields[ fieldId ] = respReqField;\n }\n }\n return dataView;\n }\n\n private applyRequiredFieldsPF(dataView: LMDataView, specFields: LMSpecFields, respReqDataView: LMDataView, pfAction: LMProcessFlowAction): LMDataView {\n const processFlowAction = dataView.processFlowActions.find(pfActionLocal => pfActionLocal.name === pfAction.name);\n\n const keys: Array = Object.keys(specFields);\n for (let i = 0, len = keys.length; i < len; i++) {\n const fieldId: string = keys[ i ];\n const respReqField: LMField = respReqDataView.fields[ fieldId ];\n if (fieldId.indexOf('_reason_code_pf') > -1) {\n processFlowAction.actionReason = respReqField.value.toString();\n }\n if (fieldId.indexOf('_action_comment_pf') > -1) {\n processFlowAction.reasonComment = respReqField.value.toString();\n }\n }\n return dataView;\n }\n\n public executeAction(transactionState: LMTransactionState): Observable {\n return this.lmActionService.makeExecute({\n actionRequestArray: transactionState.transactionRequestList,\n busFormSpec: transactionState.busFormSpec,\n parameterView: transactionState.parameterView,\n multiPartFields: transactionState.multiPartFields,\n templateMultiPartFields: transactionState.templateMultiPartFields,\n url: transactionState.url,\n isMatrixForm: transactionState.isMatrixForm\n }).pipe(\n flatMap((response) => {\n // got a single Transaction Result which indicates an exception occurred\n // before the engine even tried to run the transactions\n if (response.status) {\n throw response;\n }\n\n transactionState.response = response;\n return this.handleResponse(transactionState);\n }),\n flatMap((handledTransactionState: LMTransactionState) => {\n if (handledTransactionState.hasPendingTransactions) {\n handledTransactionState.resetTransactionRequest();\n return this.executeAction(handledTransactionState);\n }\n\n handledTransactionState.finish();\n return of(handledTransactionState);\n }),\n catchError((error) => {\n transactionState.error(error);\n return of(transactionState);\n })\n );\n }\n\n private handleResponse(transactionState: LMTransactionState): Observable {\n const response = transactionState.response;\n\n if (response.postReg && response.postRegUrl) {\n // TODO this commented code need to go into forms and list\n // params.formModel.markAsPristine();\n // let postRegUrl: string = this.lmUrlUtilService.toRelativeUrl(result.postRegUrl);\n // window.location.href = postRegUrl\n\n transactionState.postRegUrl = response.postRegUrl;\n transactionState.finish();\n return of(transactionState);\n } else {\n return this.processTransactionResult(transactionState, response);\n }\n }\n\n private processTransactionResult(transactionState: LMTransactionState, resultList: LMActionResult[]): Observable {\n\n if (transactionState.dataViewIndex < resultList.length) {\n const result: LMActionResult = resultList[ transactionState.dataViewIndex ];\n const request: LMActionRequest = transactionState.transactionRequestList[ transactionState.dataViewIndex ];\n\n if (this.isRuntimeConfirmationRequired(transactionState, result, request)) {\n return this.handleRuntimeConfirmation(transactionState, resultList, result, request);\n }\n\n // if the status is confirmation required, then the use must have already confirmed the confirmation\n // therefore we need to keey the transaction pending\n if (AppConstants.CONFIRMATION_REQUIRED !== result.status) {\n transactionState.completeResult(result);\n }\n transactionState.dataViewIndex++;\n return this.processTransactionResult(transactionState, resultList);\n }\n\n return of(transactionState);\n }\n\n private isRuntimeConfirmationRequired(transactionState: LMTransactionState, result: LMActionResult, request: LMActionRequest): boolean {\n if (AppConstants.UNMODIFIED_CONFIRMATION_REQUIRED === result.status) {\n return true;\n }\n\n if (AppConstants.CONFIRMATION_REQUIRED === result.status) {\n if (transactionState.hasCancelledRTConfirmationMessage(result.messageId)) {\n transactionState.completeResult(result);\n return false;\n }\n return request.confirmedMessageIds ? request.confirmedMessageIds.indexOf(result.messageId) === -1 : true;\n }\n\n return false;\n }\n\n // This is where confirmation exceptions are handled\n private handleRuntimeConfirmation(\n transactionState: LMTransactionState,\n resultList: LMActionResult[],\n result: LMActionResult,\n request: LMActionRequest\n ): Observable {\n const unmodified = AppConstants.UNMODIFIED_CONFIRMATION_REQUIRED === result.status;\n const okToAll = !unmodified && (transactionState.dataViewIndex < resultList.length - 1);\n const message = result.message;\n\n return this.lmConfirmationMessageService.promptConfirmationMessage({ message, okToAll }).pipe(\n flatMap((confirmation: ConfirmationDialogResult) => {\n switch (confirmation) {\n case ConfirmationDialogResult.CONFIRMATION_OK:\n request = this.updateConfirmationMessage(result, request);\n transactionState.queueRequest(request);\n break;\n\n case ConfirmationDialogResult.CONFIRMATION_OKTOALL:\n transactionState = this.updateAllConfirmationMessages(transactionState, resultList);\n break;\n\n case ConfirmationDialogResult.CONFIRMATION_CANCEL:\n transactionState.addCancelledRTConfirmation(result);\n break;\n }\n // process the next result\n transactionState.dataViewIndex++;\n return this.processTransactionResult(transactionState, resultList);\n })\n );\n }\n\n private updateConfirmationMessage(result: LMActionResult, request: LMActionRequest): LMActionRequest {\n if (AppConstants.UNMODIFIED_CONFIRMATION_REQUIRED === result.status) {\n request.unmodifiedConfirmation = true;\n } else {\n request.confirmedMessageIds = request.confirmedMessageIds || [];\n request.confirmedMessageIds.push(result.messageId);\n }\n\n return request;\n }\n\n private updateAllConfirmationMessages(transactionState: LMTransactionState, resultList: LMActionResult[]): LMTransactionState {\n transactionState.transactionRequestList.forEach((request: LMActionRequest, index: number) => {\n const result = resultList[index];\n if (AppConstants.CONFIRMATION_REQUIRED !== result.status) {\n transactionState.completeResult(result);\n } else {\n transactionState.queueRequest(this.updateConfirmationMessage(result, request));\n }\n });\n return transactionState;\n }\n\n public processStepUpAuthActionResult(transactionState: LMTransactionState, result: LMActionResult, request: LMActionRequest): Observable {\n if (result.status === AppConstants.CONFIRMATION_REQUIRED) {\n if (this.isRuntimeConfirmationRequired(transactionState, result, request)) {\n return this.handleRuntimeConfirmation(transactionState, [ result ], result, request).pipe(\n flatMap((handledTransactionState: LMTransactionState) => {\n if (handledTransactionState.hasPendingTransactions) {\n handledTransactionState.resetTransactionRequest();\n return this.executeAction(handledTransactionState);\n }\n\n handledTransactionState.finish();\n return of(handledTransactionState);\n }),\n catchError((error) => {\n transactionState.error(error);\n return of(transactionState);\n })\n );\n }\n } else {\n return of(transactionState);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LMTransactionService } from './lm-transaction.service';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ],\n providers: [\n LMTransactionService\n ]\n})\nexport class TransactionModule { }\n","import { Observable, Observer } from 'rxjs';\n\nexport abstract class LMWorker {\n\n protected abstract has(i: number): boolean\n protected abstract run(i: number): Observable\n protected abstract get(i: number): any\n\n public start(): Observable {\n return new Observable(startCallback => {\n this._iterate(0, startCallback);\n });\n }\n\n private _iterate(i: number, startCallback: Observer) {\n if (this.has(i)) {\n this.run(i).subscribe((continueOn: boolean) => {\n if (!continueOn) {\n startCallback.error(this.get(i)); // pass back the object that failed\n startCallback.complete();\n } else {\n i++;\n this._iterate(i, startCallback);\n }\n });\n } else {\n startCallback.next(true);\n startCallback.complete();\n }\n }\n}\n","export class AppConstants {\n\n // Toast Result Attribute Values\n public static TRA_ACTION_COMPLETED = 'ActionCompleted';\n public static TRA_ACTION_FAILED = 'ActionFailed';\n public static TRA_ACTION_CANCELED = 'ActionCancelled';\n public static TRA_ACTION_PARTIALLY_COMPLETED = 'ActionPartiallyCompleted';\n\n public static UNMODIFIED_CONFIRMATION_REQUIRED = 'UNMODIFIED_CONFIRMATION_REQUIRED';\n\n public static PAGE_SIZES = [ 5, 10, 20, 50, 100, 200 ];\n\n public static PANEL_TYPE_PANEL = 'Panel';\n public static PANEL_TYPE_MULTI_PANE_PANEL = 'MultiPanePanel';\n public static PANEL_TYPE_HTTP_URL = 'HttpUrlPanel';\n public static PANEL_TYPE_LIST_PANEL = 'ListPanel';\n\n public static URLSEG_PDL_OR_DA_INDEX = 0;\n public static URLSEG_WEBAPP_INDEX = 1;\n public static URLSEG_RESOURCE_TYPE_INDEX = 2;\n public static URLSEG_RESOURCE_ID_INDEX = 3;\n\n public static ELEMENT_ID_SUFFIX_DASHBOARDPANEL = '_dashboardpanel';\n\n public static ELEMENT_ID_SUFFIX_DETAIL_SECTION_TABSET = '_tabs';\n public static ELEMENT_ID_SUFFIX_DETAIL_SECTION_TAB = '_tab';\n\n public static ELEMENT_ID_SUFFIX_FORM_PANEL_TABSET = '_tabs';\n public static ELEMENT_ID_SUFFIX_FORM_PANEL_TAB = '_tab';\n\n public static ELEMENT_ID_SUFFIX_STEP_PANEL_TABSET = '_tabs';\n public static ELEMENT_ID_SUFFIX_STEP_PANEL_TAB = '_tab';\n\n public static TRUE = true;\n public static FALSE = false;\n\n // Page Pane Layout types;\n public static PANE_LAYOUT_TYPE = 1;\n\n public static ALPHA = 'ALPHA';\n public static ALPHALOWER = 'ALPHALOWER';\n public static ALPHARIGHT = 'ALPHARIGHT';\n public static ALPHAUPPER = 'ALPHAUPPER';\n public static BCD = 'BCD';\n public static BINARY = 'BINARY';\n public static BINARYDOCUMENT = 'BINARYDOCUMENT';\n public static BINARYOBJECT = 'BINARYOBJECT';\n public static BOOLEAN = 'BOOLEAN';\n public static CARDVIEW = 'CARDVIEW';\n public static CHECKCONTROL = 'CHECKCONTROL';\n public static CURRENCY = 'CURRENCY';\n public static FORMBUTTON = 'FORMBUTTON';\n public static FORMCHECKBOX = 'FORMCHECKBOX';\n public static FORMREFERENCE = 'FORMREFERENCE';\n public static FORMTEXT = 'FORMTEXT';\n public static IMAGE = 'IMAGE';\n public static LISTREFERENCE = 'LISTREFERENCE';\n public static MMDD = 'MMDD';\n public static NAVIGATION = 'NAVIGATION';\n public static NOREPRESENTATION = 'NOREPRESENTATION';\n public static NUMERIC = 'NUMERIC';\n public static PERCENT = 'PERCENT';\n public static PERCENT_SIGN = '%';\n public static PERCENT_FORMAT = '### %';\n public static SUBFORM = 'SUBFORM';\n public static TEXT = 'TEXT';\n public static TEXTAREA = 'TEXTAREA';\n public static TIME = 'TIME';\n public static TIMESTAMP = 'TIMESTAMP';\n public static UNIQUEID = 'UNIQUEID';\n public static VERSIONID = 'VERSIONID';\n public static YYYY = 'YYYY';\n public static YYYYMM = 'YYYYMM';\n public static YYYYMMDD = 'YYYYMMDD';\n\n public static STATUS_COMPLETED = 'COMPLETED';\n public static STATUS_SYSTEM_ERROR = 'SYSTEM_EXCEPTION';\n public static STATUS_UNAUTHORIZED = 'UNAUTHORIZED';\n public static STATUS_SSO_REDIRECTING = 'REDIRECTING';\n public static VIEW_EXCEPTION = 'VIEW_EXCEPTION';\n public static INTERNAL_ERROR = 'INTERNAL_ERROR';\n public static FILE_UPLOAD_EXCEPTION = 'FILE_UPLOAD_EXCEPTION';\n public static CONFIRMATION_REQUIRED = 'CONFIRMATION_REQUIRED';\n public static STATUS_INPROGRESS = 'INPROGRESS';\n\n public static CALL_POST_CONFIRMATION = 'Call_Post_Confirmation';\n public static ALL_PARAMS_SET = 'ALL_PARAMS_SET';\n public static PARAM_FROMLIST = 'fromlist';\n public static NOOP = 'NOOP';\n\n // -----------------------------------------------------------------\n // todo Need constants for all csks and corrosponding definition\n // in LMUrlParams in lm-global.d.ts\n // -----------------------------------------------------------------\n public static PARAM_CSK_ASOFDATE = 'csk.asofdate';\n public static PARAM_CSK_SHOWDELETEDRECORDS = 'csk.showdeletedrecords';\n\n // field bind id suffixes\n public static FIELD_STATE_SUFFIX = 'States';\n public static STATUS_YES = 'YES';\n public static STATUS_NO = 'NO';\n public static STATUS_OK = 'OK';\n public static STATUS_OK_TO_ALL = 'OKToAll';\n public static STATUS_CANCEL = 'CANCEL';\n\n public static ACTION_OPEN = '_open';\n\n public static ACTION_TYPE_UPDATE = 'UPDATE';\n public static ACTION_TYPE_DELETE = 'DELETE';\n public static ACTION_TYPE_CREATE = 'CREATE';\n public static ACTION_TYPE_CREATE_WITHIN = 'CREATE_WITHIN';\n public static ACTION_TYPE_FUNCTION = 'FUNCTION';\n public static ACTION_TYPE_SET = 'SET';\n public static ACTION_TYPE_IMPORT = 'IMPORT';\n\n public static ACTION_TYPE_AUDIT_OVERRIDE = 'AUDIT_OVERRIDE';\n public static ACTION_TYPE_AUDIT_UPDATE = 'AUDIT_UPDATE';\n public static ACTION_TYPE_CHANGE_EFFECTIVEDATE = 'CHANGE_EFFECTIVEDATE';\n public static ACTION_TYPE_AUDIT_DELETE = 'AUDIT_DELETE';\n public static ACTION_TYPE_TEMPLATEFORM_SAVE = 'TEMPLATEFORM_SAVE';\n public static ACTION_TYPE_COPY_ROW = 'COPY_ROW';\n\n public static ACTIONSPEC_TEMPLATEFORM_SAVE: any = {\n name: '_saveTemplateForm',\n type: AppConstants.ACTION_TYPE_TEMPLATEFORM_SAVE\n };\n\n public static ACTIONREDIRECT_TYPE_ACTION = 'ACTION';\n public static ACTIONREDIRECT_TYPE_URL = 'URL';\n public static ACTIONREDIRECT_TYPE_VIEW = 'VIEW';\n public static ACTIONREDIRECT_TYPE_FOLDER = 'FOLDER';\n public static ACTIONREDIRECT_TYPE_PAGE = 'PAGE';\n public static ACTIONREDIRECT_TYPE_LIST = 'LIST';\n public static ACTIONREDIRECT_TYPE_NAVIGATION = 'NAVIGATION';\n public static ACTIONREDIRECT_TYPE_NEWWEBAPP = 'NEWWEBAPP';\n public static ACTIONREDIRECT_TYPE_WATCH = 'WATCH';\n\n public static BUTTON_TYPE_ACTION = 'action';\n public static BUTTON_TYPE_STANDARD_ACTION = 'standard';\n public static BUTTON_TYPE_NAVIGATION = 'navigation';\n public static BUTTON_TYPE_RELATED = 'related';\n public static BUTTON_TYPE_HTTPURL = 'httpurl';\n public static BUTTON_TYPE_FORMINVOKE = 'forminvoke';\n public static BUTTON_TYPE_FORMTEXT = 'formtext';\n public static BUTTON_TYPE_PROCESSFLOW = 'processflow';\n public static BUTTON_TYPE_LIST_REFERENCE = 'listReference';\n public static BUTTON_TYPE_SUBFORM = 'subform';\n public static BUTTON_TYPE_HELPERLIST = 'helperList';\n public static BUTTON_TYPE_FORMBUTTON = 'FORMBUTTON';\n public static BUTTON_TYPE_SHOWEDITOR = 'showeditor';\n public static BUTTON_TYPE_VIEWDOCUMENT = 'viewdocument';\n public static BUTTON_TYPE_EXPORTDOCUMENT = 'exportdocument';\n public static BUTTON_TYPE_CHART = 'chart';\n public static BUTTON_TYPE_CUBE = 'cube';\n public static BUTTON_TYPE_CALENDAR = 'calendar';\n public static BUTTON_TYPE_REGISTRATION = 'registration';\n public static BUTTON_TYPE_SIGNIN = 'signin';\n public static BUTTON_TYPE_SIGNOUT = 'signout';\n public static BUTTON_TYPE_PERSONALIZE = 'personalize';\n\n // public static LISTTYPE_DEFAULT = 'default';\n // public static LISTTYPE_SELECT = 'select';\n // public static LISTTYPE_HELPER = 'helper';\n // public static LISTTYPE_DASHBOARD = 'dashboard';\n // public static LISTTYPE_FORMLIST = 'formlist';\n // public static LISTTYPE_MULTILIST = 'multilist';\n // public static LISTTYPE_MULTIPANE = 'multipane';\n // public static LISTTYPE_DETAILSECTION = 'detailsectionlist';\n // public static LISTTYPE_POPOVER = 'popover';\n // public static LISTTYPE_CUBEVIEW = 'cubeview';\n\n // List view types\n public static LISTVIEWTYPE_GRID: 'gridList' = 'gridList';\n public static LISTVIEWTYPE_LISTVIEW: 'listView' = 'listView';\n public static LISTVIEWTYPE_HIERARCHY: 'hierarchy' = 'hierarchy';\n public static LISTVIEWTYPE_CALENDAR: 'calendar' = 'calendar';\n public static LISTVIEWTYPE_CHART: 'chart' = 'chart';\n public static LISTVIEWTYPE_IMAGELIST: 'imageList' = 'imageList';\n public static LISTVIEWTYPE_LIST: 'list' = 'list';\n public static LISTVIEWTYPE_TREE: 'tree' = 'tree';\n public static LISTVIEWTYPE_FILTERLIST: 'filterList' = 'filterList';\n public static LISTVIEWTYPE_GALLERY: 'gallery' = 'gallery';\n\n // List Details view types\n public static LISTVIEWTYPE_DETAIL_LIST = 'list';\n public static LISTVIEWTYPE_DETAIL_CARDVIEW = 'cardview';\n public static LISTVIEWTYPE_DETAIL_STANDARDFORM = 'standardform';\n public static LISTVIEWTYPE_DETAIL_INSTANCECOUNTCHART = 'instancecountchart';\n public static LISTVIEWTYPE_DETAIL_URL = 'url';\n\n // List column alignment\n public static ALIGN_LEFT = 'left';\n public static ALIGN_RIGHT = 'right';\n public static ALIGN_CENTER = 'center';\n\n // Chart\n public static MULTILIST_CHART_HEIGHT = 450; // this should probably be in css somewhere.- Phillip\n public static CHART_FORM_TYPE = 'formchart';\n public static CHART_MAX_PIE_SLICES = 7;\n public static CHART_SWITCH_TO_LIST_TYPE = 'list';\n\n // Form Modes\n public static MODE_CREATE = 'create';\n public static MODE_OPEN = 'open';\n public static MODE_ACTION = 'action';\n\n // Tab Types\n public static TABTYPE_TABS = 'tabs';\n public static TABTYPE_STEP = 'step';\n public static TABTYPE_WIZARD = 'wizard';\n\n // Form sub-types (shares the dataview)\n public static FORMSUBTYPE_RESPONSEREQD = 'ResponseReqd';\n public static FORMSUBTYPE_COMPOUNDFLDFLAT = 'CompoundFldFlat';\n public static FORMSUBTYPE_COMPOUNDFLD = 'CompoundFld';\n\n // Does not share the dataview, but if the form type is Search, then set the subtype for cube lists.\n public static FORMSUBTYPE_CUBESEARCHFORM = 'CubeSearchForm';\n /*\n * Keep these in sync with the constants in FormViewBuilder\n */\n // form panel types\n public static FORM_PANELTYPE_FORMLIST = 'formlist';\n public static FORM_PANELTYPE_FORM = 'form';\n public static FORM_PANELTYPE_MULTILIST = 'multilist';\n public static FORM_PANELTYPE_TEMPLATEFORM = 'templateform';\n public static FORM_PANELTYPE_INDEPENDENTFORM = 'independentform';\n public static FORM_PANELTYPE_TEMPLATEFORMLIST = 'templateformlist';\n public static FORM_PANELTYPE_ACTIONIS = 'actionis';\n public static FORM_PANELTYPE_RELATEDFORM = 'relatedform';\n public static FORM_PANELTYPE_CHART = 'Chart';\n public static FORM_PANELTYPE_INSTANCECHART = 'instancechart';\n public static FORM_PANELTYPE_URL = 'url';\n\n // form panel transaction types\n public static FORM_PANEL_TRANSACTION_COMMIT_TYPE = 'commit';\n public static FORM_PANEL_TRANSACTION_VALIDATION_TYPE = 'validation';\n public static FORM_PANEL_TRANSACTION_NONE_TYPE = 'none';\n\n // form context menu actions\n public static FORM_CONTEXTMENUACTION_SHOWCOMPACTFORM = 'CompactForm';\n public static FORM_CONTEXTMENUACTION_SHOWDRILLAROUND = 'DrillAround';\n public static FORM_CONTEXTMENUACTION_SHOWFIELDHISTORY = 'ShowFieldHistory';\n public static FORM_CONTEXTMENUACTION_SHOWPENDINGCHANGES = 'ShowPendingChanges';\n public static FORM_CONTEXTMENUACTION_SHOWTRANSLATIONS = 'ShowTranslations';\n public static FORM_CONTEXTMENUACTION_TEXTVARIABLES = 'TextVariables';\n public static FORM_CONTEXTMENUACTION_DEFINE = 'Define';\n public static FORM_CONTEXTMENUACTION_TRANSLATE = 'Translate';\n public static FORM_CONTEXTMENUACTION_SELECT = 'Select';\n public static FORM_CONTEXTMENUACTION_SCAN = 'Scan';\n\n public static RESOURCE_SPEC_DELIMITER = '.';\n public static RESOURCE_KEY_DELIMITER = ',';\n public static RESOURCE_KEY_SECTION_DELIMITER = ': ';\n public static TEXT_VAR_START_DELIMITER = '{';\n public static TEXT_VAR_END_DELIMITER = '}';\n\n // standard toolbar types\n public static STANDARD_TOOLBAR_OPEN = 'StandardOpen';\n public static STANDARD_SAVE = 'StandardSave';\n public static STANDARD_TOOLBAR_SAVENEW = 'StandardSaveAndNew';\n public static STANDARD_TOOLBAR_SAVECLOSE = 'StandardSaveAndClose';\n public static STANDARD_TOOLBAR_SAVEASDRAFT = 'StandardSaveAsDraft';\n public static STANDARD_TOOLBAR_EXPORTPDF = 'StandardExportToPDF';\n public static STANDARD_TOOLBAR_EXPORTCSV = 'StandardExportToCSV';\n public static STANDARD_TOOLBAR_CREATEREPORT = 'StandardCreateReport';\n public static STANDARD_TOOLBAR_RELATEDREPORT = 'StandardRelatedReport';\n public static STANDARD_TOOLBAR_RELATEDREPORT_MORE = 'StandardRelatedReportMore';\n public static STANDARD_TOOLBAR_PERSONALIZE = 'StandardPersonalize';\n public static STANDARD_TOOLBAR_SEARCH = 'StandardSearch';\n public static STANDARD_TOOLBAR_RUNFILTER = 'RunFilter';\n public static STANDARD_TOOLBAR_CLEARFILTER = 'ClearFilter';\n public static STANDARD_TOOLBAR_PRINTTOFILE = 'StandardPrintToFile';\n public static STANDARD_TOOLBAR_REFRESH = 'StandardRefresh';\n public static STANDARD_TOOLBAR_SORT = 'StandardSort';\n public static STANDARD_TOOLBAR_SORT_ORDER_ASCENDING = 'StandardSortOrderMenuAscending';\n public static STANDARD_TOOLBAR_SORT_ORDER_DESCENDING = 'StandardSortOrderMenuDescending';\n public static STANDARD_TOOLBAR_SORT_ORDER_MENUITEM = 'StandardSortOrderMenuItem';\n public static STANDARD_TOOLBAR_VIEWACTION = 'StandardViewAction';\n public static STANDARD_TOOLBAR_HELPERLIST = 'StandardHelperList';\n public static STANDARD_TOOLBAR_NAVIGATION = 'StandardNavigation';\n public static STANDARD_TOOLBAR_VIEWAUDIT = 'StandardViewAudit';\n public static STANDARD_TOOLBAR_VIEWFULLAUDIT = 'StandardViewFullAudit';\n public static STANDARD_TOOLBAR_DETAILFIELDS = 'StandardDetailFields';\n public static STANDARD_TOOLBAR_NEXTRECORD = 'StandardNextRecord';\n public static STANDARD_TOOLBAR_PREVRECORD = 'StandardPreviousRecord';\n public static STANDARD_TOOLBAR_CREATEMENU_BUTTON = 'StandardCreateMenuButton';\n public static STANDARD_TOOLBAR_ACTIONSMENU_BUTTON = 'StandardActionsMenuButton';\n public static STANDARD_TOOLBAR_OPTIONSMENU_BUTTON = 'StandardOptionsMenuButton';\n public static STANDARD_TOOLBAR_RELATEDMENU_BUTTON = 'StandardDrillAroundMenuButton';\n public static STANDARD_TOOLBAR_CHARTMENU_BUTTON = 'StandardChartsMenuButton';\n public static STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON = 'StandardAllActionsMenuButton';\n public static STANDARD_TOOLBAR_EDITMODE = 'StandardEditMode';\n public static STANDARD_TOOLBAR_HELPERLISTMENU_BUTTON = 'StandardHelperListMenuButton';\n public static STANDARD_TOOLBAR_INLINECREATE = 'StandardInlineCreate';\n public static STANDARD_TOOLBAR_CREATEWITHIN = 'StandardCreateWithin';\n public static STANDARD_TOOLBAR_CREATE = 'StandardCreate';\n public static STANDARD_TOOLBAR_COPYROW = 'StandardCopyRow';\n public static STANDARD_TOOLBAR_UPDATE = 'StandardUpdate';\n public static STANDARD_TOOLBAR_DELETE = 'StandardDelete';\n public static STANDARD_TOOLBAR_CREATEMENU_MENU = 'StandardCreateMenuButtonMenu';\n public static STANDARD_TOOLBAR_RELATEDMENU_MENU = 'StandardRelatedMenu';\n public static STANDARD_TOOLBAR_OPTIONSMENU_MENU = 'StandardOptionsMenu';\n public static STANDARD_TOOLBAR_ACTIONSMENU_MENU = 'StandardActionsMenu';\n public static STANDARD_TOOLBAR_ALLACTIONSMENU_MENU = 'StandardAllActionsMenu';\n public static STANDARD_TOOLBAR_CHARTMENU_MENU = 'StandardChartsMenu';\n public static STANDARD_TOOLBAR_AUDITCOMPARE = 'StandardAuditCompare';\n public static STANDARD_TOOLBAR_MATRIXSHOWDETAIL = 'StandardMatrixShowDetail';\n public static STANDARD_TOOLBAR_MATRIXHIDEDETAIL = 'StandardMatrixHideDetail';\n public static STANDARD_TOOLBAR_PFCOMPARE = 'StandardPFCompare';\n public static STANDARD_TOOLBAR_SCHEDULE = 'StandardSchedule';\n public static STANDARD_TOOLBAR_USERLISTVIEW_MENU = 'StandardUserListViewMenuButton';\n public static STANDARD_TOOLBAR_USERLISTVIEW_MORE_MENU = 'StandardUserListViewMoreMenuButton'\n public static STANDARD_TOOLBAR_USERLISTVIEW_SAVE = 'StandardUserListViewSaveButton';\n public static STANDARD_TOOLBAR_USERLISTVIEW_SAVEAS = 'StandardUserListViewSaveAsButton';\n public static STANDARD_TOOLBAR_USERLISTVIEW_CLEAR = 'StandardUserListViewClearButton';\n public static STANDARD_TOOLBAR_USERLISTVIEW_MANAGE = 'StandardUserListViewManageButton';\n public static STANDARD_TOOLBAR_USERLISTVIEW = 'StandardUserListView';\n public static STANDARD_TOOLBAR_SAVEDSEARCHES = 'StandardSavedSearches'\n\n\n public static STANDARD_TOOLBAR_TYPES = [\n AppConstants.STANDARD_TOOLBAR_OPEN,\n AppConstants.STANDARD_SAVE,\n AppConstants.STANDARD_TOOLBAR_SAVENEW,\n AppConstants.STANDARD_TOOLBAR_SAVECLOSE,\n AppConstants.STANDARD_TOOLBAR_SAVEASDRAFT,\n AppConstants.STANDARD_TOOLBAR_EXPORTPDF,\n AppConstants.STANDARD_TOOLBAR_EXPORTCSV,\n AppConstants.STANDARD_TOOLBAR_CREATEREPORT,\n AppConstants.STANDARD_TOOLBAR_SEARCH,\n AppConstants.STANDARD_TOOLBAR_REFRESH,\n AppConstants.STANDARD_TOOLBAR_VIEWACTION,\n AppConstants.STANDARD_TOOLBAR_HELPERLIST,\n AppConstants.STANDARD_TOOLBAR_NAVIGATION,\n AppConstants.STANDARD_TOOLBAR_VIEWAUDIT,\n AppConstants.STANDARD_TOOLBAR_VIEWFULLAUDIT,\n AppConstants.STANDARD_TOOLBAR_DETAILFIELDS,\n AppConstants.STANDARD_TOOLBAR_NEXTRECORD,\n AppConstants.STANDARD_TOOLBAR_PREVRECORD,\n AppConstants.STANDARD_TOOLBAR_CREATEMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_RELATEDMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_CHARTMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_BUTTON,\n AppConstants.STANDARD_TOOLBAR_INLINECREATE,\n AppConstants.STANDARD_TOOLBAR_CREATE,\n AppConstants.STANDARD_TOOLBAR_UPDATE,\n AppConstants.STANDARD_TOOLBAR_DELETE,\n AppConstants.STANDARD_TOOLBAR_CREATEMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_RELATEDMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_OPTIONSMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_ACTIONSMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_ALLACTIONSMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_CHARTMENU_MENU,\n AppConstants.STANDARD_TOOLBAR_AUDITCOMPARE,\n AppConstants.STANDARD_TOOLBAR_PFCOMPARE\n ];\n\n public static CUBE_TOOLBAR_DIMENSIONS = 'CubeToolbarDimensions';\n public static CUBE_TOOLBAR_SET_CH_DIMENSIONS = 'CubeToolbarSetCHDimensions';\n public static CUBE_TOOLBAR_SET_FILTER_DIMENSIONS = 'CubeToolbarSetFilterDimensions'\n public static CUBE_TOOLBAR_DRILLDOWN_DIMENSIONS = 'CubeToolbarDrillDownDimensions';\n public static CUBE_TOOLBAR_PIVOTVIEWS = 'CubeToolbarPivotViews';\n public static CUBE_TOOLBAR_COLUMNVIEWS = 'CubeToolbarColumnViews';\n public static CUBE_TOOLBAR_PERIODOVERRIDE = 'CubeToolbarPeriodOverride';\n public static CUBE_TOOLBAR_PERIODVIEW = 'CubeToolbarPeriodView';\n public static CUBE_TOOLBAR_CHARTS = 'CubeToolbarCharts';\n public static CUBE_TOOLBAR_OPTIONS = 'CubeToolbarOptions';\n public static CUBE_TOOLBAR_OPTIONS_CUBESTATUS = 'CubeToolbarOptionsCubeStatus';\n public static CUBE_TOOLBAR_PERIODVIEWPERIODS = 'CubeToolbarPeriodViewPeriods';\n\n public static DATAVIEW_REPRESENTATIVE_TEXT_PROPERTY = 'representativeText';\n\n public static actionName = '_execute';\n\n // condition types for landmark.condition.isValid\n public static CONDITIONTYPE_ENTERED = 'entered';\n public static CONDITIONTYPE_FIELD = 'field';\n public static CONDITIONTYPE_VALUE = 'value';\n public static CONDITIONTYPE_STATE = 'state';\n public static CONDITIONTYPE_CONTEXT = 'context';\n public static CONDITIONTYPE_DISPLAY = 'display';\n public static DRILL_AROUND_LABEL = 'Drill Around' + String.fromCharCode(174);\n\n // Configurable Features\n public static FEATURE_ConfigurableFeatures = 'ConfigurableFeatures';\n public static FEATURE_ExportToCSV = 'ExportToCSV';\n public static FEATURE_ExportToPDF = 'ExportToPDF';\n public static FEATURE_CreateReport = 'CreateReport';\n public static FEATURE_CreateFolder = 'CreateFolder';\n public static FEATURE_CreateWatch = 'CreateWatch';\n public static FEATURE_DataMenu = 'DataMenu';\n public static FEATURE_SecurityConfiguration = 'SecurityConfiguration';\n public static FEATURE_Configuration = 'Configuration';\n public static FEATURE_Personalization = 'Personalization';\n public static FEATURE_LimitedListPersonalization = 'LimitedListPersonalization';\n public static FEATURE_LimitedFormPersonalization = 'LimitedFormPersonalization';\n public static FEATURE_LandingPagePersonalization = 'LandingPagePersonalization';\n public static FEATURE_AsOfDate = 'AsOfDate';\n public static FEATURE_ShowInbasketWorkFlowActions = 'ShowInbasketWorkFlowActions';\n public static FEATURE_ShowAllScheduleActions = 'ShowAllScheduleActions';\n public static FEATURE_UseAllActorGroups = 'UseAllActorGroups';\n public static FEATURE_SpreadSheetDesigner = 'SpreadSheetDesigner';\n public static FEATURE_SpreadSheetDesignerUpdate = 'SpreadSheetDesignerUpdate';\n public static FEATURE_UserContextMenu = 'UserContextMenu';\n public static FEATURE_ChangePreferredApplicationStartPage = 'ChangePreferredApplicationStartPage';\n public static FEATURE_ShowDeletedRecords = 'ShowDeletedRecords';\n\n // resource types\n public static RESOURCETYPE_ACTION = 'action';\n public static RESOURCETYPE_LIST = 'list';\n public static RESOURCETYPE_TREE = 'tree';\n public static RESOURCETYPE_HIERARCHY = 'hierarchy';\n public static RESOURCETYPE_FORM = 'form';\n public static RESOURCETYPE_NAVIGATION = 'navigation';\n public static RESOURCETYPE_SUBPANEL = 'subpanel';\n public static RESOURCETYPE_PAGE = 'page';\n public static RESOURCETYPE_DOCUMENT = 'document';\n public static RESOURCETYPE_RELATION = 'relation';\n public static RESOURCETYPE_DRILL = 'drill';\n public static RESOURCETYPE_SELECT = 'select';\n public static RESOURCETYPE_SEARCH = 'search';\n public static RESOURCETYPE_MENU = 'menu';\n public static RESOURCETYPE_IMAGE = 'image';\n public static RESOURCETYPE_HOME = 'home';\n public static RESOURCETYPE_BANNER = 'banner';\n public static RESOURCETYPE_APPS = 'apps';\n public static RESOURCETYPE_HTML = 'html';\n public static RESOURCETYPE_FORMINVOKE = 'forminvoke';\n public static RESOURCETYPE_BIDRILL = 'bidrill';\n public static RESOURCETYPE_PAGEMENU = 'pagemenu';\n public static RESOURCETYPE_PAGEPANEL = 'pagepanel';\n\n // 1 day - 1440 minutes\n public static PAGE_STATE_EXPIRATION_IN_MINUTES = 1440;\n\n public static INFINITE_PAGESIZE = -1;\n\n // pdf type\n public static REGULAR_LIST_PDF = 'listPdf';\n public static LIST_WITH_DETAILS_PDF = 'listWithDetailsPdf';\n public static TREE_LIST_PDF = 'treeListPdf';\n public static TREE_LIST_WITH_DETAILS_PDF = 'treeListWithDetailsPdf';\n public static REGULAR_FORM_PDF = 'regularFormPdf';\n public static COMPOSITE_FORM_PDF = 'compositeFormPdf';\n public static PAGE_PDF = 'pagePdf';\n\n // pdf print option\n public static PDF_ACTION = 40;\n public static PDF_WITH_DETAILS_ACTION = 41;\n public static PDF_SELECTED_WITH_DETAILS_ACTION = 42;\n public static PDF_EXPANDED_ACTION = 43;\n public static PDF_EXPANDED_WITH_DETAILS_ACTION = 44;\n public static PDF_SELECTED_TAB_ACTION = 45;\n public static PDF_ALL_TABS_ACTION = 46;\n public static PDF_VIEW_ACTION = 47;\n public static PDF_SPECIFIED_ACTION = 48;\n public static PDF_SPECIFIED_WITH_DETAILS_ACTION = 49;\n\n public static CONDITION_AND = ' and ';\n public static CONDITION_OR = ' or ';\n\n // row index of the inline create row\n public static INLINE_CREATE_ROW = 0;\n\n // delimiter for multiple search term values\n public static MULTI_SEARCH_TERM_DELIMITER = ';';\n\n public static DEFAULT_LINE_HEIGHT = 20;\n\n // display value for percent of total that are not yet calculated\n public static PERCENT_OF_TOTAL_INDETERMINATE_VALUE = '###';\n\n // css class names for controls\n public static CSS_MENU_SEPARATOR = 'separator';\n\n public static CLASS_BANNER_ENABLETABS = 'has-tabs';\n\n public static DATA_SOHO_TABS = 'tabs';\n\n public static STEP_PROCESS_UNVISITED_ICON = 'empty-circle';\n public static STEP_PROCESS_INPROCESS_ICON = 'half-empty-circle'; // half-empty-circle in-progress\n public static STEP_PROCESS_COMPLETE_ICON = 'success';\n public static STEP_PROCESS_ERROR_ICON = 'error';\n\n public static TESTVERSION_V1 = 1;\n public static TESTVERSION_V2 = 2;\n public static TESTVERSION_V3 = 3;\n\n public static OperatorMap: OperatorMapping[] = [\n { lmOperator: 'equals', sohoOperator: 'equals' },\n { lmOperator: 'doesNotEqual', sohoOperator: 'does-not-equal' },\n { lmOperator: 'contains', sohoOperator: 'contains' },\n { lmOperator: 'doesNotContain', sohoOperator: 'does-not-contain' },\n { lmOperator: 'isEmpty', sohoOperator: 'is-empty' },\n { lmOperator: 'isNotEmpty', sohoOperator: 'is-not-empty' },\n { lmOperator: 'lessThan', sohoOperator: 'less-than' },\n { lmOperator: 'lessThanOrEquals', sohoOperator: 'less-equals' },\n { lmOperator: 'greaterThan', sohoOperator: 'greater-than' },\n { lmOperator: 'greaterThanOrEquals', sohoOperator: 'greater-equals' },\n { lmOperator: 'endsWith', sohoOperator: 'end-with' },\n { lmOperator: 'doesNotEndWith', sohoOperator: 'does-not-end-with' },\n { lmOperator: 'startsWith', sohoOperator: 'start-with' },\n { lmOperator: 'doesNotStartWith', sohoOperator: 'does-not-start-with' },\n { lmOperator: 'selected', sohoOperator: 'selected' },\n { lmOperator: 'notSelected', sohoOperator: 'not-selected' },\n { lmOperator: 'inRange', sohoOperator: 'in-range' },\n { lmOperator: 'all', sohoOperator: 'selected-notselected' }\n ];\n\n public static LM_FORM_URL_PAGING_PARAMS: LMFormUrlPagingParamType[] = [\n 'hasNext', 'hasPrevious', 'firstDisabled', 'lastDisabled',\n 'nextDisabled', 'previousDisabled', 'isAscending', 'sortOrderName', 'fk', 'lk', 'pk',\n ];\n}\n\nexport enum LMTimeStampDirective {\n DISPLAY_DATE = 1,\n DISPLAY_TIME,\n DISPLAY_HOURS_AND_MINUTES,\n DISPLAY_DATE_AND_HOURS_AND_MINUTES\n}\n\nexport interface LMTransformOptions {\n decSize?: number;\n precision?: number;\n noSymbol?: boolean; // true - do not display percent sign\n displayZero?: boolean; // true - display zero for a number\n displayThousandsCharacter?: boolean; // true - display group separator for a number\n hasStateValues?: boolean;\n isCompoundField?: boolean;\n // date time properties\n timeStampDirective?: LMTimeStampDirective; // for TimeStamp and Time types\n timeStampDataValue?: string; // current TimeStamp data value for displayHoursAndMinutesOnly and displayTimeOnly\n isRange?: boolean;\n locale?: string;\n calendarName?: string;\n timeZone?: string;\n displayWithTimeZone?: boolean;\n\n displayInThousands?: boolean; // for List BCD display only\n displayInMillions?: boolean; // for List BCD display only\n displayNegativeParens?: boolean | string; // for List BCD|PERCENT|NUMERIC display only\n disableDST?: boolean;\n allowMultiSelections?: boolean;\n showPercentSymbol?: boolean;\n currencySymbolIs?: string;\n doNotTransform?: boolean;\n}\n\nexport enum FormRequestType {\n BusClassOntology = 'busClassOntology',\n RelatedBusClassNames = 'relatedBusClassNames',\n BusClassNames = 'busClassNames',\n ConditionNamesForBusClass = 'conditionNamesForBusClass',\n CreateReport = 'createReport',\n DataViewDataFormInfo = 'dataViewDataFormInfo',\n DataViewDataFieldValue = 'dataViewDataFieldValue',\n DeleteListPersonalization = 'deleteListPersonalization',\n DrillPoints = 'drillPoints',\n FieldHistory = 'fieldHistory',\n FieldPendingChanges = 'fieldPendingChanges',\n FieldTranslations = 'fieldTranslations',\n FormInvoke = 'formInvoke',\n DefineFormUrl = 'defineFormUrl',\n InitialValue = 'initialValue',\n RequestFields = 'requestFields',\n ListNamesAndViewsForBusClass = 'listNamesAndViewsForBusClass',\n ListNamesForBusClass = 'listNamesForBusClass',\n RelatedSelectValues = 'relatedSelectValues',\n SaveListPersonalization = 'saveListPersonalization',\n SchedulePdf = 'schedulePdf',\n SelectPaging = 'SelectPaging',\n UserDefinedStates = 'userDefinedStates',\n ValidateCondition = 'validateCondition',\n ValidateField = 'validateField',\n RefreshSubPanelList = 'refreshSubPanelList',\n CubeDimensionMapping = 'cubeDimensionMapping',\n CubeGetTopNodesForContext = 'cubeGetTopNodesForContext',\n CubeRelDimensionMapping = 'cubeRelDimensionMapping',\n CubeRelationLPL = 'cubeRelationLpl',\n CubeRelGetSelectValue = 'cubeRelGetSelectValue',\n CubeRelGetMeasures = 'cubeRelGetMeasures',\n CubeRelTestMeasure = 'cubeRelTestMeasure',\n CubeRelValidateLPL = 'cubeRelValidateLPL',\n FieldValues = 'fieldValues',\n}\n\nexport enum ListRequestType {\n FieldSpecForBusClass = 'fieldSpecForBusClass',\n}\n\n// keys used in dialogs for dialog button text translation and for dialog button id\nexport enum LMDialogButtonKey {\n APPLY = 'Apply',\n CANCEL = 'Cancel',\n CLEAR = 'Clear',\n CLOSE = 'Close',\n COMPARE = 'Compare',\n CREATEANDVIEWREPORT = 'CreateAndViewReport',\n CREATEREPORT = 'CreateReport',\n DISCARDCHANGES = 'DiscardChanges',\n DISMISS = 'Dismiss',\n EXPORT = 'Export',\n LEAVE = 'Leave',\n OK = 'Ok',\n OKTOALL = 'OKToAll',\n PRINT = 'Print',\n RESET = 'Reset',\n RUNINBACKGROUND = 'RunInBackground',\n SAVE = 'Save',\n SAVEASDRAFT = 'SaveAsDraft',\n SCHEDULE = 'Schedule',\n SIGNOUT = 'SignOut',\n STAY = 'Stay',\n SUBMIT = 'Submit',\n YES = 'Yes',\n NO = 'No',\n DONEEDITING = 'DoneEditing'\n}\nexport interface LMFormInvokeUrlPostContent {\n requestType: FormRequestType;\n formInvokeName: string;\n dataView: LMDataView;\n}\n\nexport interface LMFormInvokeUrlResponse {\n actionSpec: LMActionSpec;\n redirectUrl: string;\n message?: string;\n status?: string;\n details?: string;\n}\n\n// export type LMListType = _LMListType;\n\n// export LMListType = _LMListType;\n\n// export enum LMListType {\n// DEFAULT = 'default',\n// SELECT = 'select',\n// HELPER = 'helper',\n// DASHBOARD = 'dashboard',\n// FORMLIST = 'formlist',\n// MULTILIST = 'multilist',\n// MULTIPANE = 'multipane',\n// DETAILSECTION = 'detailsectionlist',\n// POPOVER = 'popover',\n// CUBEVIEW = 'cubeview',\n// }\n\nexport enum LMButtonType {\n ACTION = 'action',\n STANDARD_ACTION = 'standard',\n NAVIGATION = 'navigation',\n RELATED = 'related',\n HTTPURL = 'httpurl',\n FORMINVOKE = 'forminvoke',\n PROCESSFLOW = 'processflow',\n LIST_REFERENCE = 'listReference',\n SUBFORM = 'subform',\n HELPERLIST = 'helperList',\n FORMBUTTON = 'FormButton',\n SHOWEDITOR = 'showeditor',\n VIEWDOCUMENT = 'viewdocument',\n EXPORTDOCUMENT = 'exportdocument',\n CHART = 'chart',\n REGISTRATION= 'registration',\n SIGNIN = 'signin',\n SIGNOUT = 'signout'\n}\n\nexport enum LMFormType {\n SEARCH = 'Search',\n STANDARD = 'Standard',\n COMPOSITE = 'Composite',\n CHART = 'Chart',\n MENU = 'Menu',\n MATRIX = 'Matrix',\n ACTION = 'Action',\n PAGE_CONTEXT = 'PageContext'\n}\n\n// Defined in IActionRequest.java\nexport enum LMActionRequestStatus {\n NOTINPROCESS = '1',\n INPROCESS = '2',\n REJECTED = '8',\n COMPLETE = '9'\n}\n\nexport enum LMActionRequestSaveMode {\n DRAFT = 'draft',\n SUBMIT = 'submit'\n}\n\nexport enum FilterBuilderDialogResult {\n CONFIRMATION_CANCEL = 0,\n CONFIRMATION_OVERWRITE,\n CONFIRMATION_APPEND\n}\n\nexport enum LMToolbarActionTypeEnum {\n 'ACTION' = 'action',\n 'CALENDAR' = 'calendar',\n 'CHART' = 'chart',\n 'LIST' = 'list',\n 'HIERARCHY' = 'hierarchy',\n 'TREE' = 'tree',\n 'HELPER_LIST' = 'helperList',\n 'NAVIGATION' = 'navigation',\n 'PROCESS_FLOW' = 'processflow',\n 'PERSONALIZE' = 'personalize',\n 'RELATED' = 'related',\n 'CUBE' = 'cube',\n 'SEPARATOR' = 'separator',\n 'STANDARD' = 'standard',\n 'NOOP' = 'noop',\n 'SAVE_SEARCH' = 'savesearch',\n 'FORM_BUTTON' = 'FORMBUTTON'\n}\n","/**\n * @module\n * @description\n * Starting point to import all public util APIs.\n */\n\n// Utils\nexport * from './app.constants';\nexport * from './lm-browser-util.service';\nexport * from './lm-common-util.service';\nexport * from './lm-condition-util.service';\nexport * from './lm-context-util.service';\nexport * from './lm-global-util.service';\nexport * from './lm-locale-util.service';\nexport * from './lm-multi-list-save-worker';\nexport * from './lm-unique-id.service';\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMBrowserUtilService {\n// browsers\n public isIE = false;\n public isIE11 = false;\n public isEdge = false;\n public isSafari = false;\n public isChrome = false;\n public isFirefox = false;\n public isOpera = false;\n\n public version = parseInt(navigator.appVersion, 10);\n public fullVersion = parseFloat(navigator.appVersion).toString();\n public language = 'en-us';\n public name = '';\n\n // platforms\n public isMAC = false;\n public isWIN = false;\n public isLinux = false;\n\n public osVersion = 0;\n public isXP = false;\n\n // mobility\n public isMobile = false;\t// use combination of browsers and/or platforms to further determine mobile platform\n\n public verOffset: number;\n public index: number;\n public ua: string = navigator.userAgent;\n public platform: string;\n\n // 64-bit IE\n public isWin64: boolean;\n\n // mobile attributes; see ControllerBase.java > MOBILE_SPECIFIC_SUBSTRING\n private aryMobileAttr = ['iPhone', 'Android', 'MIDP', 'Opera Mobi', 'Opera Mini', 'BlackBerry', 'HP iPAQ', 'IEMobile',\n 'MSIEMobile', 'Windows Phone', 'HTC', 'LG', 'MOT', 'Nokia', 'Symbian', 'Fennec', 'Maemo', 'Tear', 'Midori',\n 'armv', 'Windows CE', 'WindowsCE', 'Smartphone', '240x320', '176x220', '320x320', '160x160', 'webOS', 'Palm',\n 'Sagem', 'Samsung', 'SGH', 'SIE', 'SonyEricsson', 'MMP', 'UCWEB'];\n\n constructor( ) {\n this.initialize();\n }\n\n private initialize() {\n if ((this.verOffset = this.ua.indexOf('MSIE')) !== -1) {\n // the true version is after 'MSIE' in userAgent\n this.isIE = true;\n this.isIE11 = true;\n this.name = 'Microsoft Internet Explorer';\n this.fullVersion = this.ua.substring(this.verOffset + 5);\n\n } else if (this.ua.indexOf('Trident') !== -1) {\n // the true version is after 'rv:' in userAgent\n this.isIE = true;\n this.isIE11 = true;\n this.name = 'Microsoft Internet Explorer';\n this.verOffset = this.ua.indexOf('rv');\n this.fullVersion = this.ua.substring(this.verOffset + 3);\n\n } else if ((this.verOffset = this.ua.indexOf('Edge')) !== -1 || (this.verOffset = this.ua.indexOf('Edg')) !== -1) {\n this.isIE = true;\n this.isEdge = true;\n this.name = 'Microsoft Internet Explorer';\n this.fullVersion = this.ua.substring(this.ua.indexOf('Edge') + 5);\n\n } else if (this.ua.indexOf('Opera') !== -1) {\n // the true version is after 'Version/'\n this.isOpera = true;\n this.name = 'Opera';\n this.verOffset = this.ua.indexOf('Version');\n this.fullVersion = this.ua.substring(this.verOffset + 8);\n\n } else if ((this.verOffset = this.ua.indexOf('Chrome')) !== -1) {\n // the true version is after 'Chrome'\n this.isChrome = true;\n this.name = 'Chrome';\n this.fullVersion = this.ua.substring(this.verOffset + 7);\n\n } else if (this.ua.indexOf('Safari') !== -1) {\n // the true version is after 'Version/'\n this.isSafari = true;\n this.name = 'Safari';\n this.verOffset = this.ua.indexOf('Version');\n this.fullVersion = this.ua.substring(this.verOffset + 8);\n\n } else if ((this.verOffset = this.ua.indexOf('Firefox')) !== -1) {\n // the true version is after 'Firefox'\n this.isFirefox = true;\n this.name = 'Firefox';\n this.fullVersion = this.ua.substring(this.verOffset + 8);\n }\n\n // trim the fullVersion string at semicolon/space if present\n if ((this.index = this.fullVersion.indexOf(';')) !== -1) {\n this.fullVersion = this.fullVersion.substring(0, this.index);\n }\n\n if ((this.index = this.fullVersion.indexOf(' ')) !== -1) {\n this.fullVersion = this.fullVersion.substring(0, this.index);\n }\n\n if ((this.index = this.fullVersion.indexOf(')')) !== -1) {\n this.fullVersion = this.fullVersion.substring(0, this.index);\n }\n\n this.version = parseInt(this.fullVersion.toString(), 10);\n\n if (isNaN(this.version)) {\n this.fullVersion = parseFloat(navigator.appVersion).toString();\n this.version = parseInt(navigator.appVersion, 10);\n }\n\n // language\n // this.language = ((this.isIE) ? navigator.userLanguage : navigator.language).toLowerCase();\n\n // platforms\n if (this.ua.indexOf('Windows') >= 0) {\n this.isWIN = true;\n const idx = this.ua.indexOf('Windows NT ');\n\n if (idx !== -1) {\n this.osVersion = parseFloat(this.ua.substring(idx + 11));\n\n if (this.osVersion >= 5.1) {\n this.isXP = true;\n }\n }\n } else if (this.ua.indexOf('Mac') >= 0) {\n this.isMAC = true;\n\n } else if (this.ua.indexOf('Linux') >= 0) {\n this.isLinux = true;\n }\n\n // mobility\n const uaLower = this.ua.toLowerCase();\n this.isMobile = !!this.aryMobileAttr.find(mobItem => uaLower.indexOf(mobItem.toLowerCase()) >= 0);\n\n this.platform = (this.isMAC) ? 'Macintosh' :\n (this.isWIN) ? 'Windows' :\n (this.isLinux) ? 'Linux' : 'unknown';\n\n // 64-bit IE\n this.isWin64 = (this.ua.indexOf('Win64') >= 0);\n }\n\n public get isValid(): boolean {\n if (this.isMobile) {\n return true;\n\n } else if (this.isIE && this.version >= 9) {\n return true;\n\n } else if (this.isFirefox && this.version >= 8) {\n return true;\n\n } else if (this.isSafari && this.version >= 5) {\n return true;\n\n } else if (this.isChrome) {\n return true;\n }\n\n return false;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { LMModel } from '../components/form/model/lm-model';\nimport { LMModelField } from '../components/form/model/lm-model-field';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LMCommonUtilService {\n private lplColor: Array = [ 'black', 'blue', 'brown', 'gray', 'green', 'jade', 'magenta', 'maroon', 'orange', 'red', 'yellow' ];\n\n constructor() { }\n\n // converts LPL color to UX color\n public convertColor(params: any) {\n // params = color\n const color: string = params.color;\n\n // validate color; < 0 means not found\n if (this.lplColor.indexOf(color) < 0) {\n return null;\n }\n\n switch (color) {\n case 'black':\n return 'graphite10';\n\n // no brown color in soho\n case 'brown':\n return 'graphite05';\n\n case 'gray':\n return 'graphite03';\n\n case 'green':\n return 'emerald07';\n\n case 'jade':\n return 'emerald03';\n\n case 'magenta':\n return 'ruby03';\n\n case 'maroon':\n return 'ruby05';\n\n case 'orange':\n return 'amber07';\n\n case 'red':\n return 'ruby07';\n\n case 'yellow':\n return 'amber03';\n\n // falls through to return\n // tslint allow fall through\n /* tslint:disable */\n case 'blue':\n default:\n return 'azure07';\n /* tslint:enable */\n }\n }\n\n // converts UX color to state for use with LMProgress\n public convertColorToState(params: any) {\n // params > color\n const color = params.color.toLowerCase();\n\n // green\n if (color.indexOf('emerald') > -1) {\n return 'good';\n }\n\n // red\n // uses error-color so error icon does not display\n if (color.indexOf('ruby') > -1) {\n return 'error-color';\n }\n\n // yellow\n if (color.indexOf('amber') > -1) {\n return 'alert-yellow';\n }\n\n // blue\n return 'primary';\n }\n\n // converts UX alert color to SohoAlertTypes\n public convertAlertColorToAlertType(alertColor: string) {\n\n switch (alertColor) {\n case 'redAlert':\n return 'error';\n\n case 'yellowAlert':\n return 'alert';\n\n case 'greenAlert':\n return 'success';\n\n // falls through to return\n // tslint allow fall through\n // tslint:disable\n case 'blueAlert':\n default:\n return 'info';\n // tslint:enable\n\n case 'iconAlert':\n return 'icon';\n }\n }\n\n /**\n * Processes the range object returning the color\n * @param ranges\n * @param value\n * @param data\n * @returns\n */\n public getRangeColor(ranges: LMRanges, value: number, data: LMDataView | LMModel): string {\n\n // private function to getRangeColor()\n // tslint:disable-next-line:no-shadowed-variable\n const checkRangeValue = (value: any, data: LMDataView | LMModel) => {\n // parseFloat is ok here as values are in Landmark format\n const defaultValue = 0;\n\n if (value === null || value === undefined) {\n return defaultValue;\n }\n\n if (!isNaN(parseFloat(value))) {\n return parseFloat(value);\n }\n\n if (!data) {\n return defaultValue;\n }\n\n const isModel: boolean = (data instanceof LMModel);\n\n if (isModel) {\n const dataField: LMModelField = (data as LMModel).getField(value);\n if (!dataField) {\n return defaultValue;\n }\n\n return parseFloat(dataField.getData());\n }\n\n if (!(data as LMDataView).fields.hasOwnProperty(value)) {\n return defaultValue;\n }\n\n return parseFloat((data as LMDataView).fields[ value ].value.toString());\n };\n\n let color = '';\n\n if (ranges) {\n color = Object.keys(ranges).filter((item, index, ary) => {\n const start = checkRangeValue(ranges [ item ][ 'start' ], data);\n const end = checkRangeValue(ranges[ item ][ 'end' ], data);\n\n // val, start, and end should all be numeric at this point\n if (value >= start && value <= end) {\n return item;\n }\n }).map((item, index, ary) => this.convertColor({ color: item })).join('');\n }\n\n if (color === '') {\n color = this.convertColor({ color: 'blue' });\n }\n\n return this.convertColorToState({ color });\n }\n\n public getBindIdsFromFormSpec(formSpec: LMFormSpec, specFields?: LMSpecFields): Array {\n const layout = JSON.stringify(formSpec)\n .split('\"busFormLayoutSpec\":')\n .filter((item, index, ary) => {\n if (index > 0) {\n return item;\n }\n })\n .join('');\n\n let bindIds = this._getBindIds(layout);\n bindIds = this._applySpecFields(bindIds, specFields);\n return _.uniq(bindIds);\n }\n\n public getBindIdsFromLayout(layout: LMFormLayout, specFields?: LMSpecFields): Array {\n let bindIds = this._getBindIds(JSON.stringify(layout));\n bindIds = this._applySpecFields(bindIds, specFields);\n return _.uniq(bindIds);\n }\n\n private _getBindIds(layout: string): Array {\n return layout\n .split('\"bindId\":\"')\n .filter((item, index, ary) => {\n if (index > 0) {\n return item;\n }\n })\n .map((item, index, ary) => item.substr(0, item.indexOf('\"')));\n }\n\n public clearCodeBlockDataViewFields(formSpec: LMFormSpec, layout: LMFormLayout, dataView: LMDataView) {\n const busFormSpec = formSpec.busFormSpec;\n const fieldIds: string[] = this.getBindIdsFromLayout(layout, busFormSpec.fields);\n\n // Set the dataView field value to blank\n fieldIds.forEach(fieldId => {\n this.clearCodeBlockDataViewField(fieldId, dataView);\n });\n }\n\n private clearCodeBlockDataViewField(fieldId: string, dataView: LMDataView) {\n if (dataView && dataView.fields) {\n if (!!dataView.fields[ fieldId ]) {\n dataView.fields[ fieldId ].value = '';\n\n // iterate member fields to clear the value and if available, the stateValues property\n if (dataView.fields[ fieldId ].members) {\n dataView.fields[ fieldId ].members.forEach( key => {\n dataView.fields[ key ].value = '';\n\n if (dataView.fields[ key ].stateValues) {\n dataView.fields[ key ].stateValues = undefined;\n }\n });\n }\n }\n }\n }\n\n private _applySpecFields(bindIds: Array, specFields?: LMSpecFields): Array {\n let fieldIds: Array = [];\n\n // if specFields are passed, then will add fields from the compact format layout\n if (specFields) {\n bindIds.forEach( (fieldId) => {\n if (specFields[fieldId] && specFields[fieldId].compactFormat && specFields[fieldId].layout) {\n // one of the fields is a compound group; add compact format layout fields to the array\n const memberFieldIds = this._getBindIds(JSON.stringify(specFields[fieldId].layout));\n fieldIds = [...fieldIds, ...memberFieldIds];\n }\n });\n }\n\n return [...bindIds, ...fieldIds];\n }\n\n // Need to pass in element from a nativeElement\n public scrollIntoView(element: HTMLElement) {\n const scrollableParent = this.getScrollableParent(element.parentElement);\n if (scrollableParent) {\n if (this.isOutOfView(element, scrollableParent)) {\n scrollableParent.scrollTop = element.offsetTop;\n }\n }\n }\n\n // Gets the next scrollable parent ancestor\n private getScrollableParent(element: HTMLElement): HTMLElement {\n if (!element) {\n return null;\n }\n\n const overflowY = window.getComputedStyle(element).overflowY;\n const isScrollable = !(overflowY.includes('hidden') || overflowY.includes('visible'));\n if (isScrollable && element.scrollHeight > element.clientHeight) {\n return element;\n }\n return this.getScrollableParent(element.parentElement);\n }\n\n private isOutOfView(element: HTMLElement, scrollableParent: HTMLElement) {\n if (element.offsetTop < 0) {\n return true;\n }\n\n if (element.offsetTop + element.offsetHeight > scrollableParent.offsetHeight) {\n return true;\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMModel } from '../components/form/model/lm-model';\nimport { LMModelField } from '../components/form/model/lm-model-field';\nimport { AppConstants } from './app.constants';\nimport { LMFieldUtilService } from '../services/utils/lm-field-util.service';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class LMConditionUtilService {\n private _evaluateConditions$ = new Subject();\n\n public get evaluateConditions(): Subject {\n return this._evaluateConditions$;\n }\n\n constructor(private lmFieldUtilService: LMFieldUtilService\n /*private _logger: LoggerService,\n private fieldUtil: FieldUtilService*/) {}\n\n public isValid(conditions: LMCondition[]|boolean, data: LMDataView | LMModel): boolean {\n let isValid: boolean;\n if (!conditions) {\n isValid = true;\n } else if (!data) {\n isValid = false;\n } else {\n if (!Array.isArray(conditions)) {\n conditions = [ conditions ] as LMCondition[];\n }\n const len = conditions.length;\n let totalTrue = 0;\n for (const condition of conditions) {\n const args = this.createArgs(condition, data);\n totalTrue += this.isConditionValid(args) ? 1 : 0;\n }\n isValid = (len === 0) ? true : (totalTrue === len);\n }\n\n return isValid;\n }\n\n private createArgs(condition: LMCondition, data: LMDataView | LMModel): any {\n let fieldValue = null;\n const specType = null;\n if (condition.type === AppConstants.CONDITIONTYPE_DISPLAY) {\n if (condition.negated !== undefined) {\n fieldValue = condition.negated ? !condition.value : condition.value;\n } else {\n fieldValue = condition.value;\n }\n } else if (condition.type === AppConstants.CONDITIONTYPE_CONTEXT && data.contextProperties) {\n fieldValue = data.contextProperties[ condition.name ];\n } else if (condition.fieldId) {\n let field: LMField | LMModelField;\n const isModel: boolean = (data instanceof LMModel);\n // if (isModel) {\n // let modelField = (data as LMModel).getField(condition.fieldId);\n // fieldValue = modelField ? modelField.getData() : null; // defensive code\n // } else {\n // if ((data as LMDataView).fields.hasOwnProperty(condition.fieldId)) {\n // fieldValue = (data as LMDataView).fields[ condition.fieldId ].value;\n // }\n // }\n field = (isModel)\n ? (data as LMModel).getField(condition.fieldId) as LMField\n : (data as LMDataView).fields[condition.fieldId] as LMModelField;\n\n if (field) {\n fieldValue = field.value;\n } else {\n // nice to log this unexpected condition.\n }\n\n // DPB why was this changed? talk to cheryl\n // field = (isModel)\n // ? (data as LMModel).getField(condition.fieldId) as LMField\n // : (data as LMDataView).fields[ condition.fieldId ] as LMModelField;\n // fieldValue = field.value;\n }\n // else fieldValue is undefined\n\n return { condition, fieldValue };\n }\n\n private isConditionValid(args) {\n const condition: LMCondition = args.condition;\n const fieldValue = args.fieldValue;\n\n let conditionValue;\n switch (condition.type) {\n case AppConstants.CONDITIONTYPE_ENTERED:\n conditionValue = !this.lmFieldUtilService.isBlank(condition.fieldType, fieldValue);\n break;\n case AppConstants.CONDITIONTYPE_FIELD:\n conditionValue = (/^(true|1|yes|y|on)$/i).test(fieldValue);\n break;\n case AppConstants.CONDITIONTYPE_VALUE:\n conditionValue = (/^(true|1|yes|y|on)$/i).test(condition.value.toString());\n break;\n case AppConstants.CONDITIONTYPE_STATE:\n // tslint:disable-next-line:triple-equals > List does not have spectype and sometimes a number is compared against a string.\n conditionValue = (fieldValue == condition.value);\n break;\n case AppConstants.CONDITIONTYPE_CONTEXT:\n case AppConstants.CONDITIONTYPE_DISPLAY:\n conditionValue = (/^(true|1|yes|y|on)$/i).test(fieldValue);\n break;\n default:\n conditionValue = true;\n }\n if (condition.negated !== undefined && condition.negated === true) {\n return !conditionValue;\n } else {\n return conditionValue;\n }\n }\n\n public isNavigationInvalid(layoutObject: LMButtonLayout, data: LMModel) {\n const navigation = layoutObject.navigation || layoutObject.linkNavigation;\n\n if (!data.navigations || data.navigations.length === 0) {\n return true;\n }\n\n return data.navigations.indexOf(navigation) === -1;\n }\n\n public displayAsTag(displayField: LMListDisplayField, dataView: LMDataView, fieldValue?: string): boolean {\n if (!displayField.displayAsTag || !fieldValue || fieldValue.trim().length === 0) {\n return false;\n }\n\n if (!displayField.tagStyle || displayField.tagStyle.length === 0) {\n return true;\n }\n\n // -------------------------------------------------------------\n // if all tag styles contain a condition and none are true\n // then don't display the tag.\n // -------------------------------------------------------------\n // if there is at least one tag style w/o a condition then displayAsTag is true\n if (displayField.tagStyle.filter(tagStyle => !tagStyle.condition).length > 0) {\n return true;\n }\n\n // if a condition is true then return the displayAsTag is true; else false\n return displayField.tagStyle.some(tagStyle => this.isValid([tagStyle.condition], dataView));\n }\n}\n","import {\n forwardRef,\n Inject,\n Injectable,\n NgZone,\n ViewContainerRef,\n Injector\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { SohoToastService } from 'ids-enterprise-ng';\nimport * as _ from 'lodash';\nimport * as urltemplate from 'url-template';\n\nimport { AppConstants } from './app.constants';\nimport { LMGlobalPersonalization } from '../states/models';\nimport { LMGlobalPersonalizationService } from '../states/services';\nimport { LMGlobalUtilService } from './lm-global-util.service';\nimport { LMActionFormDialogService, LMActionFormDialogResult, LMActionFormDialogResultCode } from '../components/modal/lm-action-form-dialog.service';\nimport {\n LMContextService,\n LMErrorUtilService,\n LMLoggerService,\n LMSpecService,\n LMUrlInfoBuilderService,\n LMUrlUtilService\n} from '../services';\nimport { LMNavigationService } from '@app/components';\n\n@Injectable()\nexport class LMContextUtilService {\n\n private isEnabled = false;\n private sentAppInitComplete = false;\n private logicalId: string;\n private webpartScreenId: string;\n private title: string;\n private lastBusinessContextMessage: any;\n private dialogPlaceholder: ViewContainerRef;\n private lmActionFormDialogService: LMActionFormDialogService;\n\n private bodReferenceFields = {\n DocumentID: { required: true, bodName: 'documentId', setName: 'DocumentID' },\n AccountingEntity: { required: false, bodName: 'accountingEntity', setName: 'AccountingEntity' },\n Location: { required: false, bodName: 'location', setName: 'Location' },\n Revision: { required: false, bodName: 'revisionId', setName: 'Revision' }\n };\n\n constructor(\n protected lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmGlobalUtilService: LMGlobalUtilService,\n private lmSpecService: LMSpecService,\n private titleService: Title,\n private sohoToastService: SohoToastService,\n @Inject(forwardRef(() => LMErrorUtilService)) private lmErrorUtilService, // LMErrorUtilService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private injector: Injector,\n private ngZone: NgZone\n ) {\n\n this.webpartScreenId = this.lmContextService.getWebpartScreenId();\n this.logicalId = this.lmContextService.getLogicalId();\n\n this.isEnabled = (this.logicalId !== null && this.logicalId.length > 0);\n if (this.isEnabled) {\n this.webpartScreenId = (this.webpartScreenId) ? this.webpartScreenId : this.logicalId.split('.')[ 1 ];\n this.logicalId = _.unescape(this.logicalId);\n this.lmLoggerService.log(['LMContextUtilService', 'registeredMessageHandlers']);\n this.registerMessageHandlers();\n }\n }\n\n public registerMessageHandlers() {\n const drillbackIdentifier = 'drillbackURL=';\n\n // remove any existing favorite handler\n infor.companyon.client.unRegisterMessageHandler('showFavoriteContext');\n\n // register a bookmark (favorite or shortcut) handler\n infor.companyon.client.registerMessageHandler('showFavoriteContext', (data: any) => {\n this.processFavoriteContext(data);\n });\n\n // remove any existing drillback handler\n infor.companyon.client.unRegisterMessageHandler('applicationDrillback');\n\n // register a drillback handler\n infor.companyon.client.registerMessageHandler('applicationDrillback', (data: any) => {\n this.lmLoggerService.log(['LMContextUtilService', 'applicationDrillback', data]);\n\n const index = data.applicationDrillback.indexOf(drillbackIdentifier);\n const url = data.applicationDrillback.substring(index + drillbackIdentifier.length);\n\n // is url a BI Drillback - LandmarkBIDrillback URL param from Infor Application View > ViewId \"LandmarkBIDrillback\"\n if (data.applicationDrillback.indexOf('LandmarkBIDrillback') > -1) {\n this.processLandmarkBIDrillback(data)\n return;\n }\n\n if (data.applicationDrillback.indexOf('ProcessLinkDrillback') > -1) {\n this.processLinkDrillbackRequest(decodeURIComponent(url));\n return;\n }\n\n if (data.applicationDrillback.indexOf('RequestActionDrillback') > -1) {\n this.actionDrillbackRequest(decodeURIComponent(url));\n return;\n }\n\n if (index === -1 || url === null || url === '') {\n this.lmLoggerService.log(['LMContextUtilService', 'registerMessageHandler', 'drillbackURL was empty or not provided']);\n return;\n }\n\n this.processStandardDrillbackRequest(url);\n });\n }\n\n public clearAll() {\n if (!this.isEnabled) {\n return;\n }\n\n infor.companyon.client.sendMessage('clearAllContext', {});\n }\n\n public disableShortcut() {\n if (!this.isEnabled) {\n return;\n }\n\n const data = {\n name: '',\n description: '',\n absoluteURL: 'false',\n shortcutContext: ''\n };\n\n this.publishShortcut(data);\n }\n\n public enableShortcut(params: any) {\n // params: name, description, shortcutContext, absoluteURL\n if (!this.isEnabled) {\n return;\n }\n\n setTimeout(() => {\n this.clearAll();\n\n if (params.absoluteURL === undefined || params.absoluteURL === null) {\n params.absoluteURL = 'false';\n }\n\n this.publishShortcut(params);\n }, 1);\n }\n\n private createStandardShortcutParams(): any {\n this.title = this.titleService.getTitle();\n const shortcutUrl = (infor.companyon.client.getValueQuerystring('LogicalId') === null)\n ? window.location.href + '&LogicalId=' + this.logicalId\n : window.location.href;\n const params = {\n name: this.title,\n description: '',\n absoluteURL: 'false',\n shortcutContext: shortcutUrl\n };\n\n return params\n }\n\n public enableStandardShortcut() {\n if (!this.isEnabled) {\n return;\n }\n\n if (!this.sentAppInitComplete) {\n this.sentAppInitComplete = true;\n this.lmLoggerService.log(['LMContextUtilService', 'appInitComplete']);\n infor.companyon.client.sendMessage('appInitComplete', window.name);\n }\n\n this.lmLoggerService.time({ id: 'LMContextUtilService.enableStandardShortcut()' });\n\n const params = this.createStandardShortcutParams();\n this.enableShortcut(params);\n this.lmLoggerService.timeEnd('LMContextUtilService.enableStandardShortcut()');\n\n }\n\n public sendDrillbackMessage(url: string) {\n if (this.isEnabled && this.lmContextService.inMingleWidget()) {\n const drillbackUrl = '?LogicalId=' + _.escape(this.logicalId) + '&drillbackURL=' + encodeURIComponent(url);\n this.publishDrillbackMessage(drillbackUrl);\n }\n }\n\n private getCustomHTML() {\n return '

                        Use this to clear the selected Index textbox

                        ttGooglett';\n }\n\n public getLocation(href) {\n const l = document.createElement('a');\n l.href = href;\n return l;\n }\n\n public sendContextMessages(params: any) {\n // params: screenId, messageText, entities, standard\n if (!this.isEnabled) {\n return;\n }\n\n setTimeout(() => {\n this.lmLoggerService.time({ id: 'LMContextUtilService.sendContextMessages()' });\n\n if (this.title !== this.titleService.getTitle()) {\n this.title = this.titleService.getTitle();\n this.publishShortcut(this.createStandardShortcutParams())\n }\n\n for (const name in params.standard) {\n if (params.standard.hasOwnProperty(name)) {\n this.publishStandardContext(name, params.standard[ name ]);\n }\n }\n\n if (params.entities.length > 0) {\n const changeNoun = params.entities[0].bodReference ? true : false;\n const noun = changeNoun ? params.entities[0].bodReference.noun : '';\n if (!params.noDrillbackUrl) {\n for (let i = 0, entityLen = params.entities.length; i < entityLen; i++) {\n const entity = params.entities[ i ];\n entity.drillbackURL = '?LogicalId=' + _.escape(this.logicalId) + '&drillbackURL=' + encodeURIComponent(window.location.href);\n }\n }\n\n const data: any = {\n screenId: this.webpartScreenId + '_' + params.screenId,\n logicalId: this.logicalId,\n originatingTime: new Date().getTime(),\n entities: params.entities,\n };\n\n if (params.messageText.length > 0) {\n data.messageText = params.messageText;\n }\n\n if (!params.doNotPersistMessage) {\n this.lastBusinessContextMessage = data;\n }\n this.publishBusinessContext(data);\n }\n\n this.lmLoggerService.timeEnd('LMContextUtilService.sendContextMessages()');\n });\n }\n\n public sendMessagesForConfigHome(params: any) {\n // params: dataArea, businessClass\n const dataArea: string = params.dataArea || 'home';\n const businessClass: string = params.businessClass || '';\n const resourceType = AppConstants.RESOURCETYPE_HOME;\n\n this.enableStandardShortcut();\n\n const entities = [{\n entityType: dataArea,\n id1: this.titleService.getTitle()\n }];\n\n this.sendContextMessages({\n screenId: resourceType + '_' + businessClass,\n messageText: Soho.Locale.translate('Sharing') + ' ' + this.titleService.getTitle() + ' ',\n entities,\n });\n }\n\n public sendMessagesForHtmlPage(params: any) {\n // params: dataArea, webApp\n if (!this.isEnabled) {\n return;\n }\n\n const dataArea: string = params.dataArea || 'html';\n const webApp: string = params.webApp || '';\n const resourceType = AppConstants.RESOURCETYPE_HTML;\n\n this.enableStandardShortcut();\n this.clearAll();\n\n const entities = [{\n entityType: dataArea,\n id1: this.titleService.getTitle()\n }];\n\n this.sendContextMessages({\n screenId: resourceType + '_' + webApp + '_' + this.titleService.getTitle(),\n messageText: Soho.Locale.translate('Sharing') + ' ' + this.titleService.getTitle() + ' ',\n entities,\n });\n }\n\n public mergeContextMessages(params: any) {\n // params: sourceMsgs, newMsgs\n const sourceMsgs = params.sourceMsgs;\n const addMsgs = params.addMsgs;\n\n if (!sourceMsgs.entities || !addMsgs || !addMsgs.entities) {\n return sourceMsgs;\n }\n\n sourceMsgs.entities = sourceMsgs.entities.concat(addMsgs.entities);\n return sourceMsgs;\n }\n\n public setDrillbackDialogElement(dialogElementRef: ViewContainerRef, lmActionFormDialogService: LMActionFormDialogService) {\n this.dialogPlaceholder = dialogElementRef;\n this.lmActionFormDialogService = lmActionFormDialogService;\n }\n\n public buildContextMessages(params: any): Observable {\n const busFormName: string = params.busFormName || '';\n const busClassName: string = params.busClassName || '';\n const widgetEventPrefix: string = params.widgetEventPrefix;\n const dataObj: any = params.dataObj;\n const rows: any = params.rows || null;\n const activeRow: any = (params.activeRow !== undefined) ? params.activeRow : null;\n const busContextMessages: any = params.busContextMessages || null;\n const busContextInvocations: any = params.busContextInvocations || null;\n const bodReferenceFields = this.bodReferenceFields;\n\n let noun = '';\n const aryStandard: any = {};\n let aryEntities: Array = new Array();\n return new Observable(observer => {\n\n if (!this.isEnabled) {\n observer.next({ status: AppConstants.STATUS_CANCEL });\n observer.complete();\n return;\n }\n\n setTimeout(() => {\n this.lmLoggerService.time({ id: 'LMContextUtilService.buildContextMessages()' });\n\n if (busContextInvocations && busContextMessages) {\n for (let i = 0, invocationLen = busContextInvocations.length; i < invocationLen; i++) {\n const invocation: any = busContextInvocations[ i ];\n const message: any = busContextMessages[ invocation.name ];\n\n if (!message) {\n continue;\n }\n\n const data: any = buildContextMessage(message);\n\n if (message.businessEntity === 'inforBusinessContext') {\n aryEntities = aryEntities.concat(data.entity);\n } else {\n aryStandard[ message.businessEntity ] = data;\n }\n }\n }\n\n // An empty list sends the default business context message\n if (widgetEventPrefix === AppConstants.RESOURCETYPE_LIST && dataObj && (dataObj.data === undefined || dataObj.data.length === 0)) {\n aryEntities = new Array();\n }\n\n if (aryEntities.length === 0) {\n const entity: any = {\n entityType: this.lmContextService.getUrlPdlOrDa(),\n id1: this.titleService.getTitle()\n };\n aryEntities.push(entity);\n }\n\n addBodReferenceToEntities();\n\n const retObj = {\n entities: aryEntities,\n standard: aryStandard,\n messageText: Soho.Locale.translate('Sharing') + ' ' + this.titleService.getTitle() + ' ',\n screenId: widgetEventPrefix + '_' + busClassName + (busFormName.length > 0 ? '_' + busFormName : ''),\n status: AppConstants.STATUS_COMPLETED\n };\n\n observer.next(retObj);\n observer.complete();\n\n this.lmLoggerService.timeEnd('LMContextUtilService.buildContextMessages()');\n });\n });\n\n // --------------------------------------------------\n // private methods\n // --------------------------------------------------\n function buildContextMessage(message: any) {\n const data: any = {};\n\n for (const key in message) {\n if (key === 'businessEntity') {\n continue;\n }\n\n const val = message[ key ];\n if (Array.isArray(val)) {\n if (key === 'properties') {\n const properties = processProperties(val, activeRow);\n Object.assign(data, properties);\n } else {\n const group = processGroupProperties(val, key, message.businessEntity);\n data[ key ] = group;\n }\n } else {\n data[ key ] = val;\n }\n }\n\n return data;\n }\n\n function processGroupProperties(group: any, groupName: string, businessEntity: string) {\n const aryGroup = new Array();\n const useSelectedRows = processMessageForSelectedRows(groupName, businessEntity);\n\n if (useSelectedRows) {\n const item = group[ 0 ];\n for (let i = 0, rowsLen = rows.length; i < rowsLen; i++) {\n aryGroup.push(processProperties(item, rows[ i ]));\n }\n } else {\n for (let i = 0, groupLen = group.length; i < groupLen; i++) {\n const item = group[ i ];\n aryGroup.push(processProperties(item, activeRow));\n }\n }\n\n return aryGroup;\n }\n\n function processProperties(properties: any, row: any) {\n const data: any = {};\n\n for (let i = 0, propertyLen = properties.length; i < propertyLen; i++) {\n const item: any = properties[ i ];\n let value = '';\n\n if (item.type === 'text') {\n value = item.value;\n } else if (item.type === 'field') {\n value = getFieldValue(item.fieldId, row);\n }\n\n if (item.property === 'bod reference.noun') {\n noun = value;\n } else {\n data[ item.property ] = value;\n }\n }\n\n return data;\n }\n\n function processMessageForSelectedRows(groupName: string, businessEntity: string) {\n if (!rows || rows.length === 1) {\n return false;\n }\n\n return ((businessEntity === 'multipleAddress' && groupName === 'Addresses')\n || (businessEntity === 'packageInformation' && groupName === 'TrackingNumbers'));\n }\n\n function getField(fieldId: string, r: any): LMField {\n const row: any = (r !== undefined) ? r : null;\n let field: any = null;\n\n if (dataObj && dataObj.fields) {\n if (dataObj.fields.hasOwnProperty(fieldId)) {\n field = dataObj.fields[ fieldId ];\n }\n } else if (dataObj && dataObj.data && row != null && dataObj.data.length > row) {\n if (dataObj.data[ row ].fields.hasOwnProperty(fieldId)) {\n field = dataObj.data[ row ].fields[ fieldId ];\n }\n }\n\n return field;\n }\n\n function getFieldValue(fieldId: string, r: any) {\n const row = (r !== undefined) ? r : null;\n let value = '';\n\n if (dataObj && dataObj.fields) {\n if (dataObj.fields.hasOwnProperty(fieldId)) {\n value = dataObj.fields[ fieldId ].value;\n }\n } else if (dataObj && dataObj.data && row !== null && dataObj.data.length > row) {\n if (dataObj.data[ row ].fields.hasOwnProperty(fieldId)) {\n value = dataObj.data[ row ].fields[ fieldId ].value;\n }\n }\n\n return value;\n }\n\n function addBodReferenceToEntities() {\n const bodFieldId = busClassName + '_BODId';\n const bodId = getFieldValue(bodFieldId, activeRow);\n if (bodId.length === 0) {\n return;\n }\n\n const bodReference: any = {};\n const bodField: LMField = getField(bodFieldId, activeRow);\n\n bodField.members.map(memberId => ({\n reference: memberId.substring(memberId.lastIndexOf('_') + 1),\n memberValue: getFieldValue(memberId, activeRow)\n }))\n .filter(referenceObject => bodReferenceFields[ referenceObject.reference ])\n .forEach(referenceObject => {\n const bodName: any = bodReferenceFields[ referenceObject.reference ].bodName;\n bodReference[ bodName ] = referenceObject.memberValue;\n });\n\n if (noun.length === 0) {\n if (aryEntities.length > 0) {\n if (aryEntities[ 0 ].hasOwnProperty('entityType')) {\n const entityType = aryEntities[ 0 ].entityType;\n noun = entityType.replace(/^Infor/, '');\n }\n }\n\n if (noun.length === 0) {\n noun = busFormName;\n }\n }\n bodReference[ 'noun' ] = noun;\n\n for (let i = 0, entityLen = aryEntities.length; i < entityLen; i++) {\n aryEntities[ i ].bodReference = bodReference;\n }\n }\n }\n\n private processFavoriteContext(data: any): void {\n this.lmLoggerService.log(['LMContextUtilService', 'showFavoriteContext', data]);\n\n if (data === null) {\n return;\n }\n let url = data.favoriteContext;\n if (url.indexOf('http%3A%2F%2F') === 0 || url.indexOf('https%3A%2F%2F') === 0) {\n // The url appears to be encoded. Apparently Mingle 11 encodes url using encodeURIComponent before sending the message.\n // But mingle 12 does not encode the URL.(LMCLIENT-33716)\n // So decode only when it is required to avoid errors like LMCLIENT-28847. In this ticket, the key field has '&'\n // and decoding the whole url will decode the key fields too.\n // lodash unescape was mistakenly used here. It does not work like regular unescape or decodeURIComponent (Remove lodash usage LMCLIENT-33757)\n // 3.5 uses regular unescape instead of decodeURIComponent\n url = decodeURIComponent(url);\n }\n this.navigateWebAppUrl(url);\n }\n\n private processLandmarkBIDrillback(data: any): void {\n // is url a BI Drillback - LandmarkBIDrillback URL param from Infor Application View > ViewId \"LandmarkBIDrillback\"\n const urlPdlOrDa = this.lmContextService.getUrlPdlOrDa();\n const url = window.location.protocol + '//' + window.location.host + '/' + urlPdlOrDa + '/web/bidrill' + data.applicationDrillback;\n\n // do not decode LandmarkBIDrillback messages, causes issues parsing the dimension data by BIDrillController\n this.lmGlobalUtilService.navigate(url);\n }\n\n private processLinkDrillbackRequest(url: string) {\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(url, 'process-link-drillback');\n\n // this.lmUrlUtilService.updateUrlParams(url, { output: 'spec' })\n //\n // if (url !== null) {\n // url = url.replace('output=spec', '');\n // this.navigateWebAppUrl(url);\n // }\n\n if (url === null || url.indexOf('/menu/') === 0) {\n this.navigateWebAppUrl(url);\n return;\n }\n\n\n this.lmSpecService.getBannerSpec(url).subscribe(response => {\n if (!response.dialogUrl) {\n this.navigateWebAppUrl(response.redirectUrl);\n return;\n }\n const actionName = this.lmUrlUtilService.getUrlParam(url, 'action');\n if (!actionName) {\n this.lmLoggerService.log('unable to find action param in url');\n return null;\n }\n\n this.lmSpecService.getFormSpecFromDialogActionUrl(response.dialogUrl).subscribe((formUrlResponse: LMFormSpecResponse) => {\n const formUrlInfo = formUrlResponse.formUrlInfo;\n const formSpec = formUrlResponse.formSpec;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions.find(a => a.name === actionName);\n this.lmActionFormDialogService.runActionFormDialog(formUrlInfo, formSpec, actionSpec).subscribe();\n });\n });\n }\n\n private actionDrillbackRequest(url: string) {\n this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(url, 'action-drillback');\n\n url = this.lmUrlUtilService.updateUrlParams(url, { output: 'spec' });\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n\n this.lmLoggerService.time({\n id: 'TotalActionForm',\n description: 'TOTAL ACTION FORM',\n className: 'LMContextUtilService',\n timingStart: 'LMContextUtilService -> actionDrillbackRequest()',\n timingEnd: 'LMFormContentComponent -> ngAfterViewInit()'\n });\n\n this.lmSpecService.getFormSpecFromRedirectActionUrl(url).subscribe((response: LMActionFormUrlResponse | LMSystemException) => {\n if ((response as LMSystemException).status\n && ((response as LMSystemException).status === AppConstants.STATUS_SYSTEM_ERROR || (response as LMSystemException).status === AppConstants.STATUS_UNAUTHORIZED)) {\n this.lmErrorUtilService.handleError((response as LMSystemException).statusText, (response as LMSystemException).details);\n return;\n }\n\n const formUrlInfo = (response as LMActionFormUrlResponse).formUrlInfo;\n const formSpec = (response as LMActionFormUrlResponse).formSpec;\n const resourceId = (response as LMActionFormUrlResponse).resourceId;\n const action = (response as LMActionFormUrlResponse).action;\n const actionSpec: LMActionSpec = formSpec.busClassSpec.actions.find(a => a.name === action);\n\n const urlCompiledTemplate = urltemplate.parse(formUrlInfo.initialDataUrl);\n const dataUrl = urlCompiledTemplate.expand({ resourceId, actionName: action });\n this.lmActionFormDialogService.getActionFormDialogDataView(dataUrl).subscribe((responseDV: any) => {\n const formDataView: LMDataView = responseDV;\n if (formDataView.status === AppConstants.STATUS_COMPLETED) {\n this.lmActionFormDialogService\n .runActionFormDialog(formUrlInfo, formSpec, actionSpec, formDataView, null, null, true)\n .subscribe((result: LMActionFormDialogResult) => {\n // Resend the last context message to restore the screen id\n if (this.lastBusinessContextMessage) {\n this.publishBusinessContext(this.lastBusinessContextMessage);\n }\n\n if (result.result === LMActionFormDialogResultCode.ACTION_FORM_DIALOG_SAVED) {\n const actionResult = result.transactionStateResult.getTransactionResult();\n if (actionResult.status === AppConstants.STATUS_COMPLETED) {\n this.lmGlobalUtilService.displayToastMessage(actionSpec.label, actionResult.message, AppConstants.TRA_ACTION_COMPLETED);\n if (actionResult?.isCompletionNavigation && actionResult?.redirectUrl) {\n // using injector due to circular dependency with LMNavigationService\n this.injector.get(LMNavigationService).runNavigation(actionResult.redirectUrl);\n }\n }\n }\n });\n } else {\n this.lmLoggerService.error(responseDV);\n this.lmErrorUtilService.handleError(responseDV.message, responseDV.details, responseDV.status, responseDV.statusText);\n }\n });\n })\n }\n\n private processStandardDrillbackRequest(url: string): void {\n url = this.lmUrlUtilService.toFullUrl(url); // is the drillback a relative url?\n url = decodeURIComponent(url);\n url = this.lmUrlUtilService.remove3XParams(url);\n url = this.lmUrlInfoBuilderService.processDrillbackAndCustomCodeUrl(url, 'standard-drillback');\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n\n this.navigateWebAppUrl(url);\n }\n\n private navigateWebAppUrl(url: string) {\n // todo use lm-url-util.service standar url path split function\n // to get the parts.\n // for example: this.lmUrlUtilService.getWebAppNameFromUrl(url);\n let resourceType: string;\n let webAppName: string;\n const urlParts = url.split('/');\n if (urlParts.length >= 7) {\n webAppName = urlParts [ 4 ];\n resourceType = urlParts[ 5 ];\n const lastURLSection = urlParts[ 6 ].split('?');\n let resourceId = lastURLSection[ 0 ];\n resourceId = resourceId.replace('.', '_prd_');\n\n let settings: LMGlobalPersonalization = {};\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n if (!_.isEmpty(bannerPersonalization)) {\n settings = bannerPersonalization;\n }\n\n if (resourceType === 'menu') {\n settings.lastOpenedMenu = 'appmenu_' + resourceId;\n } else {\n if (!_.isEmpty(bannerPersonalization) && bannerPersonalization.lastOpenedMenu) {\n settings.lastOpenedMenu = '';\n }\n }\n this.lmGlobalPersonalizationService.saveGlobalPersonalization(settings);\n }\n\n if (resourceType && resourceType === 'land') {\n const webApp = (webAppName !== '') ? webAppName : this.lmContextService.getContext().webApp;\n url = '/' + this.lmContextService.getContext().urlPdlOrDa + '/' + webApp + '/home';\n }\n\n // todo for mingle drill backs this is already being called. consider remove one of them\n // probably the one in the mingle drill back functions.\n url = this.lmUrlUtilService.updateContextSessionKeyParams(url);\n\n // LMCLIENT-35952 must put back in Angular Zone as Ming.le is not running in the zone.\n // Change Detection was not firing for certain drillback urls.\n this.ngZone.run(() =>\n this.lmGlobalUtilService.navigateByUrl(url));\n }\n\n private publishBusinessContext(data: any) {\n this.lmLoggerService.log([ 'LMContextUtilService', 'publishBusinessContext', data ]);\n infor.companyon.client.sendMessage('inforBusinessContext', data);\n }\n\n private publishDrillbackMessage(data: any) {\n infor.companyon.client.sendPrepareDrillbackMessage(data);\n }\n\n private publishShortcut(data: any) {\n this.lmLoggerService.log([ 'LMContextUtilService', 'publishShortcut', data ]);\n infor.companyon.client.sendMessage('setShortcutContext', data);\n }\n\n private publishStandardContext(messageId: string, data: any) {\n this.lmLoggerService.log([ 'LMContextUtilService', 'publishStandardContext', data ]);\n infor.companyon.client.sendMessage(messageId, data);\n }\n\n public setMingleActivityCookie() {\n const data = {\n applicationName: this.lmContextService.getContext().webApp,\n updateCookie: true,\n };\n infor.companyon.client.sendMessage('updateUserActivityCookie', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LMUrlUtilService } from '../services/utils/lm-url-util.service';\nimport {\n LMContextService,\n LMLoggerService,\n LMPersonalizationPersistenceService,\n LMRouteComponentService,\n LMSpecService,\n LMUrlInfoBuilderService\n} from '../services';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { DocumentResource } from '../resources';\nimport { Observable, of, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport * as urltemplate from 'url-template';\nimport { AppConstants, LMDialogButtonKey } from './app.constants';\nimport { SohoMessageService, SohoToastService } from 'ids-enterprise-ng';\nimport { LMBannerNavComponent } from '../components/banner';\nimport * as _ from 'lodash';\nimport { LMGlobalPersonalization, LMGlobalPersonalizationService } from '@app/states';\n\n@Injectable()\nexport class LMGlobalUtilService {\n\n constructor(\n private router: Router,\n private http: HttpClient,\n private lmContextService: LMContextService,\n private lmLoggerService: LMLoggerService,\n private lmSpecService: LMSpecService,\n private lmUrlUtilService: LMUrlUtilService,\n private lmRouteComponentService: LMRouteComponentService,\n private sohoToastService: SohoToastService,\n private lmUrlInfoBuilderService: LMUrlInfoBuilderService,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService,\n private lmSessionStorageService: LMPersonalizationPersistenceService,\n private sohoMessageService: SohoMessageService,\n ) {}\n\n public getNavContextKeys(params: any) {\n const navContextKeys: any = {};\n for (const key in params) {\n if (typeof key === 'string'\n && key.indexOf('nc.') === 0) {\n navContextKeys[ key ] = params[ key ];\n }\n }\n return navContextKeys;\n }\n\n public navigate(url: string, params: any = null, option: any = null) {\n let openInNewTab: any;\n\n // todo/sjw xi: can remove this?\n // if (window.isSpa)\n // {\n // if (url.indexOf(\"fragment=\") < 0)\n // url = this.insertFragmentParam(url);\n //\n // this.loadContent(url, \"Need to get\", true)\n // return;\n // }\n\n if (params) {\n url = this.lmUrlUtilService.appendToQueryString(url, this.lmUrlUtilService.objectToQueryString(params));\n }\n\n if (option === 'replace') {\n window.location.replace(url);\n } else {\n openInNewTab = option === 'external' || false;\n\n try {\n if (openInNewTab) {\n this.lmUrlUtilService.openExternalUrl(url);\n } else {\n window.location.href = url;\n }\n } catch (e) {\n\n // Catch errors in IE for the onbeforeunload event;\n // Jquery fails in IE when discarding the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded.\n\n // IE throws a JS error if \"Stay on this page\" is chosen in the confirmation dialog.\n // if (this.browserUtil.isIE && e.message.length === 0 && e.description.length === 0)\n // return;\n //\n // this.dialogUtil.showErrorDialog(\"Error Opening URL\", e);\n }\n }\n }\n\n public compare(obj1: Object, obj2: Object): boolean {\n\n // Create arrays of property names\n const props1 = Object.getOwnPropertyNames(obj1);\n const props2 = Object.getOwnPropertyNames(obj2);\n\n // If number of properties is different objects are not equivalent\n if (props1.length !== props2.length) {\n return false;\n }\n\n for (let i = 0; i < props1.length; i++) {\n const propName = props1[i];\n\n // If values of same property are not equal, objects are not equivalent\n if (obj1[propName] !== obj2[propName]) {\n return false;\n }\n }\n\n // If we made it this far, objectvare considered equivalent\n return true;\n }\n\n private getHashCompareUrl(urlIn: string): string {\n if (this.lmUrlUtilService.isAbsoluteUrl(urlIn)) {\n // first check to see if it has the protocol and remove it\n urlIn = this.lmUrlUtilService.toRelativeUrl(urlIn);\n }\n return urlIn.split('#')[0];\n // const protocolStriped = (urlIn.startsWith('http://') || urlIn.startsWith('https://')) ? urlIn.substring((urlIn.indexOf('//') + 2)) : urlIn;\n // const pathUrl: string = protocolStriped.indexOf('#') >= 0 ? protocolStriped.split('#')[0] : protocolStriped;\n // return pathUrl;\n }\n\n /**\n * prepares the url and routes to it\n * @param url The url to route to.\n * todo placed here because of circular dependency issues.\n */\n public navigateByUrl(url: string, extras?: NavigationExtras): Promise {\n\n // if the path is the same and the url has a # then instead of allowing the nevigation to the url we fire an HashChangeEvent.\n const urlAndHash = url.split('#');\n if (urlAndHash.length === 2 // hash exist on url\n && this.lmUrlUtilService.isPageUrl(url)\n && this.lmUrlUtilService.isPageUrl(this.router.url)\n && this.pageCurrentAndNavigationUrlsMatch(this.router.url, url)) {\n const comp = this.lmRouteComponentService.getRouteComponent();\n if (comp['hashTagChanged']) {\n if (comp['hashTagChanged'](urlAndHash[0], urlAndHash[1])) {\n return;\n }\n }\n }\n\n if (url.indexOf('/menu/') >= 0) {\n this.lmSpecService.getBannerSpec(url).subscribe(\n response => {\n if (response.redirectUrl) {\n if (response.external) {\n this.lmUrlUtilService.openExternalUrl(response.redirectUrl);\n } else if (response.embedded) {\n\n if (url.length > 0) {\n const isHtmlFragment = response.redirectUrl.indexOf('standalone=true') < 0;\n const webapp = this.lmContextService.getContext().webApp;\n const dataArea = this.lmContextService.getContext().urlPdlOrDa;\n let autoLoadUrl = dataArea + '/' + webapp + '/html/url?autoLoadUrl=' + encodeURIComponent(response.redirectUrl);\n autoLoadUrl = this.lmUrlUtilService.updateContextSessionKeyParams(autoLoadUrl);\n this.navigateByUrl(autoLoadUrl);\n }\n } else {\n const redirectUrl = this.lmUrlUtilService.updateContextSessionKeyParams(response.redirectUrl);\n const noDefaultPortUrl = this.lmUrlUtilService.stripDefaultPort(redirectUrl);\n this.navigateByUrl(noDefaultPortUrl).then((completed?: boolean) => {\n this.lmLoggerService.log('navigationByUrl completed?: ' + completed);\n });\n }\n }\n },\n error => {\n this.lmLoggerService.log('Unable to find menu');\n });\n return;\n }\n\n let relativeUrl = this.lmUrlUtilService.toRelativeUrl(url);\n relativeUrl = this.lmUrlUtilService.encodePlus(relativeUrl);\n relativeUrl = this.lmUrlUtilService.encodeParens(relativeUrl);\n\n // ---------------------------------------------------------------------------\n // todo ppatton if navigating to a new route (form) then apply paging\n // information to the url so the form next/prev functionality works.\n // ---------------------------------------------------------------------------\n return this.router.navigateByUrl(relativeUrl, extras);\n }\n\n public syncWebappMenu(url: string, bannerNavComponent: LMBannerNavComponent) {\n const urlWebAppName = this.lmUrlUtilService.getWebAppNameFromUrl(url);\n if (urlWebAppName !== this.lmContextService.getWebApp()) {\n this.lmLoggerService.log(\n `webApp change detected: new webApp: ${urlWebAppName}, old webapp: ${this.lmContextService.getWebApp()}`);\n\n // now switch the menu to the future webapp menu if it is different than the current urls\n const webApps: LMWebAppSpec[] = this.lmContextService.getAccessibleWebApps();\n const urlWebAppSpec = webApps ? webApps.filter(webAppSpec => webAppSpec.webAppName === urlWebAppName) : [];\n if (urlWebAppSpec && urlWebAppSpec.length === 1) {\n this.updateWebappMenu(urlWebAppName, bannerNavComponent);\n }\n }\n }\n\n public updateWebappMenu(webAppName: string, bannerNavComponent: LMBannerNavComponent) {\n const accessableWebApps = this.lmContextService.getAccessibleWebApps();\n const urlWebAppSpec: LMWebAppSpec[] = accessableWebApps ? accessableWebApps.filter(webAppSpec => webAppSpec.webAppName === webAppName) : [];\n if (urlWebAppSpec.length === 1) {\n this.lmContextService.updateWebApp(urlWebAppSpec[0]);\n if (bannerNavComponent) {\n bannerNavComponent.getBannerPersonalization();\n bannerNavComponent._loadMenu(this.lmUrlUtilService.getBannerSpecUrl(), true);\n }\n }\n }\n\n public updateClientStatsTelegraf(info: LMComponentInfo, loadTime: number): Observable {\n if (!this.lmContextService.isMonocleEnabled()) {\n return of();\n }\n\n const telegrafProperties: LMTelegrafProperties = this.getUrlRequestInfoJson(info, loadTime, true);\n return this.sendClientStatsTelegraf(telegrafProperties, false);\n }\n\n // use this to send information to Telegraf\n public sendClientStatsTelegraf(telegrafProperties: LMTelegrafProperties, custom: boolean, name?: string): Observable {\n\n this.lmLoggerService.log([ this, this.lmLoggerService.instanceId, 'updateClientStatsTelegraf' ]);\n telegrafProperties['custom'] = custom;\n telegrafProperties['customName'] = name;\n\n const postContent: any = {\n requestType: 'telegraf',\n telegrafProperties\n };\n\n return this.http.post(this.lmUrlUtilService.getTelegrafUrl(), postContent).pipe(\n catchError(error => throwError(error || 'Server error')));\n }\n\n public getUrlRequestInfoJson(info: LMComponentInfo, loadTime: number, configFlags?: boolean): TelegrafProperties {\n const context: LMContext = this.lmContextService.getContext();\n const sharePageAnalyticParts: string[] = context ? context.sharePageAnalytics.split('_') : [];\n const accountId: string = sharePageAnalyticParts.length > 0 ? sharePageAnalyticParts[ 0 ] : '';\n const application: string = sharePageAnalyticParts.length > 1 ? sharePageAnalyticParts[ 1 ] : 'Improper_sharePageAnalytic';\n const environmentType: string = sharePageAnalyticParts.length > 2 ? sharePageAnalyticParts[ 2 ] : 'Improper_sharePageAnalytic';\n // let telegrafUrl = this.lmUrlUtilService.getTelegrafUrl();\n const urlSplit = this.router.url.split('?');\n\n const telegrafProperties: TelegrafProperties = {\n accountId,\n actorUniqueId: context ? context.actorUniqueId : '',\n webApp: context ? context.webApp : '',\n userWebRequestId: info ? info.userWebRequestId : '',\n application,\n environmentType,\n isoLocale: Soho.Locale.currentLocale.name,\n // url: urlSplit[0], Removed per Andrew 8/11/2021\n urlParams: urlSplit.length > 1 ? this.filterAllowableParams(this.router.url) : '', // this.activatedRoute.params,\n userAgent: navigator.userAgent,\n businessClass: info ? info.busClassName : '',\n uiView: info ? info.name : '',\n uiViewType: info ? info.componentType : this.getUIType(urlSplit[0]),\n displayType: info ? info.displayType : '',\n tenant: info ? info.tenant : '',\n envType: info ? info.envType : '',\n module: info ? info.module : '',\n message: info ? info.message : '',\n };\n\n if (configFlags) {\n telegrafProperties['loadTime'] = loadTime ? loadTime : -1;\n telegrafProperties['developer'] = info ? info.developer : false;\n telegrafProperties['isConfigured'] = info && info.configInfo ? info.configInfo.configuration : false;\n telegrafProperties['isPersonalized'] = info && info.configInfo ? info.configInfo.personalization : false;\n telegrafProperties['userFolder'] = info && info.configInfo ? info.configInfo.userlist : false;\n }\n\n return telegrafProperties;\n }\n\n private filterAllowableParams(url: string): string {\n const approvedArray: Array = [ 'action', 'csk.showusingxi', 'csk.ng', 'csk.mi', 'csk.CHP', 'csk.hidemenubar', 'csk.hidetitlebar', 'csk.developer',\n 'csk.dbsessiondebug', 'csk.gen', 'csk.3x', 'csk.mw' ];\n\n let filteredParams = '';\n const urlParams = this.lmUrlUtilService. getUrlParams(url);\n const paramArray = Object.keys(urlParams);\n const overlap = _.intersectionWith(approvedArray, paramArray, _.isEqual);\n overlap.map(key => {\n filteredParams += '&' + key + '=' + urlParams[key];\n });\n\n return filteredParams;\n }\n\n private getUIType(url: string): string {\n if (url.indexOf('/home/') > -1) {\n return 'HOME';\n } else if (url.indexOf('/page/') > -1) {\n return 'PAGE';\n }\n\n return '';\n }\n\n private pageCurrentAndNavigationUrlsMatch(currentUrl: string, navigationUrl: string): boolean {\n const fromUrl: string = this.getHashCompareUrl(currentUrl.toLowerCase());\n const toUrl: string = this.getHashCompareUrl(navigationUrl);\n const fromUrlInfo = this.lmUrlInfoBuilderService.getPageUrlInfoFromHttpUrl(fromUrl);\n const toUrlInfo = this.lmUrlInfoBuilderService.getPageUrlInfoFromHttpUrl(toUrl);\n\n // ---------------------------------------------------------------------------\n // if the resourceIds do not match then urls do not match\n // ---------------------------------------------------------------------------\n if (fromUrlInfo.resource.resourceId !== toUrlInfo.resource.resourceId) {\n return false;\n }\n\n // ---------------------------------------------------------------------------\n // if no sourceResourceIds then the urls match\n // ---------------------------------------------------------------------------\n if (!fromUrlInfo.sourceResource && !toUrlInfo.sourceResource) {\n return true;\n }\n\n // ---------------------------------------------------------------------------\n // if there are sourceResources then if they are navigation or drill the\n // resourceId must match\n // ---------------------------------------------------------------------------\n if (fromUrlInfo.sourceResource && toUrlInfo.sourceResource) {\n if (fromUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_NAVIGATION\n && toUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_NAVIGATION) {\n return fromUrlInfo.sourceResource.resourceId === toUrlInfo.sourceResource.resourceId;\n }\n\n if (fromUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_DRILL\n && toUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_DRILL) {\n return fromUrlInfo.sourceResource.resourceId === toUrlInfo.sourceResource.resourceId;\n }\n }\n\n // ---------------------------------------------------------------------------\n // if either or both have a sourceResourceTypes are 'menu' then it ok to\n // ignore that and consider this a match\n // ---------------------------------------------------------------------------\n if ((fromUrlInfo.sourceResource && fromUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_MENU)\n || (toUrlInfo.sourceResource && toUrlInfo.sourceResource.resourceType === AppConstants.RESOURCETYPE_MENU)) {\n return true;\n }\n\n return false;\n }\n\n public displayToastMessage(title: string, message: string, resultAttributeValue?: string, allowLink?: boolean) {\n const toastIDAttributes: SohoAttributesArray = [];\n toastIDAttributes.push({ name: 'data-automation-id', value: 'lm-toast-message-container' });\n if (resultAttributeValue?.trim().length > 0) {\n toastIDAttributes.push({ name: 'toast-message-result', value: resultAttributeValue.trim() });\n }\n\n const position = this.getToastMessagePosition();\n const duration = this.getToastMessageDuration();\n\n const toastOptions = {\n title,\n message,\n position,\n allowLink: allowLink || false,\n draggable: true,\n savePosition: true,\n progressBar: false,\n timeout: duration, // 30000, // for debugging\n attributes: toastIDAttributes,\n uniqueid: (this.lmContextService.getActorUniqueId() === null) ? 'message' : this.lmContextService.getActorUniqueId()\n };\n // when passing in uniqueid soho will append toast- -usersettings-position to localStorage item\n this.sohoToastService.show(toastOptions);\n }\n\n public getToastMessagePosition(): SohoToastPosition {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const configParam = this.lmContextService.getToastMessagePosition();\n let position = null;\n\n if (bannerPersonalization.toastMessagePosition && bannerPersonalization.toastMessagePosition !== 'DEFAULT') {\n position = bannerPersonalization.toastMessagePosition;\n } else if (configParam) {\n position = configParam;\n } else {\n return SohoToastService.TOP_RIGHT;\n }\n\n if (position === 'TOP_LEFT') {\n return SohoToastService.TOP_LEFT;\n } else if (position === 'TOP_RIGHT') {\n return SohoToastService.TOP_RIGHT;\n } else if (position === 'BOTTOM_LEFT') {\n return SohoToastService.BOTTOM_LEFT;\n } else if (position === 'BOTTOM_RIGHT') {\n return SohoToastService.BOTTOM_RIGHT;\n } else {\n return SohoToastService.TOP_RIGHT;\n }\n }\n\n public getToastMessageDuration(): number {\n const bannerPersonalization: LMGlobalPersonalization = this.lmGlobalPersonalizationService.getGlobalPersonalization();\n const configParam = this.lmContextService.getToastMessageDuration();\n let duration = null;\n\n if (bannerPersonalization.toastMessageDuration) {\n duration = bannerPersonalization.toastMessageDuration;\n } else if (configParam) {\n duration = configParam;\n } else {\n return 6000;\n }\n\n if (duration === 'SHORTER') {\n return 4000;\n } else if (duration === 'DEFAULT') {\n return 6000;\n } else if (duration === 'LONGER') {\n return 8000;\n } else {\n return 6000;\n }\n }\n\n public displayAsOfDateInPastMessage() {\n const dialogId = 'RunActionAsOfDate';\n this.sohoMessageService\n .message()\n .message(Soho.Locale.translate('RunActionAsOfDate'))\n .title(Soho.Locale.translate('ActionNotAllowed'))\n .buttons([\n {\n id: dialogId + '_' + LMDialogButtonKey.CLOSE,\n text: Soho.Locale.translate(LMDialogButtonKey.CLOSE),\n click: (e, modal) => {\n modal.close(true);\n }\n },\n ])\n .open();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LMLocaleUtilService {\n public readonly name = 'en-US';\t\t// en-US is default\n public readonly calendarName = 'gregorian';\n\n // landmark meta (en-US)\n public readonly decimal = '.';\n public readonly group = '';\n public readonly minusSign = '-';\n\n // calendar meta for landmark storage formats\n public readonly calendar = {\n // only YYYYMMDD and MMDD have default values of zeros; all others are empty string\n YYYYMMDD: { pattern: 'yyyyMMdd', defaultValue: '00000000' }, // Date\n TIME: { pattern: 'HHmmss', defaultValue: '' }, // Time\n MMDD: { pattern: 'MMdd', defaultValue: '0000' }, // Anniversary\n YYYYMM: { pattern: 'yyyyMM', defaultValue: '' }, // Period\n YYYY: { pattern: 'yyyy', defaultValue: '' }, // Year\n\n // pattern needs to be formatted manually with UTC\n TIMESTAMP : { pattern: 'yyyyMMddHHmmssff', defaultValue: '' } // TimeStamp\n };\n}\n","import { LMWorker } from '../types/lm-worker';\nimport { LMListComponent } from '@app/components';\nimport { Observable } from 'rxjs';\nimport { AppConstants } from '@utils/app.constants';\n\nexport class LMMultiListSaveWorker extends LMWorker {\n private readonly listComponents: LMListComponent[];\n\n constructor(listComponents: LMListComponent[]) {\n super();\n\n this.listComponents = listComponents;\n }\n\n protected has(i: number): boolean {\n return (i < this.listComponents.length);\n }\n\n protected get(i: number): LMListComponent {\n return this.listComponents[ i ];\n }\n\n protected run(i: number): Observable {\n return new Observable(observer => {\n const listComponent = this.listComponents[ i ];\n if (listComponent && listComponent.isModified()) {\n listComponent.runSaveAction(AppConstants.STANDARD_SAVE, observer);\n } else {\n observer.next(true);\n observer.complete();\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LMUniqueIdService {\n\n private idIndex = 0;\n private idPrefix = 'lm-id-';\n private ids = [];\n\n // DO NOT add other LM services due to the possibility of circular references\n constructor() {}\n\n // it is up to the caller to determine what information is required to create a unique id\n // array items are set in the order to appear in the id\n // null, undefined, or empty string items are not included in the final id\n // safety: if all items resolve to an empty string, return lm-id\n public uniqueId(items: Array): string {\n const id = items && items.filter( item => {\n if (item && _.trim(item).length > 0) {\n return true;\n }\n }).join('_');\n\n return (id && id.length > 0) ? id : (this.idPrefix + this.idIndex++);\n }\n\n public uniqueAutomationId(items: Array): string {\n const id = items && items.filter( item => {\n if (item && _.trim(item).length > 0) {\n return true;\n }\n }).join('-');\n\n return (id && id.length > 0) ? id : (this.idPrefix + this.idIndex++);\n }\n\n public getUniqueId(): string {\n const id = Math.round(Math.random() * 99999 | 0).toString();\n\n if (this.ids.includes(id)) {\n this.getUniqueId();\n }\n\n this.ids.push(id);\n return id;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { LMThemeService } from '@banner/lm-theme.service';\nimport {LMGlobalPersonalizationService} from '@app/states';\n\n@Directive({\n selector: '[lm-new-theme-hover]'\n})\nexport class LMNewThemeHoverDirective {\n @HostListener('mouseenter') onMouseEnter() {\n this.mouseEnter();\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.mouseLeave();\n }\n\n constructor(\n private lmThemeService: LMThemeService,\n private elementRef: ElementRef,\n private lmGlobalPersonalizationService: LMGlobalPersonalizationService\n ) {}\n\n private mouseEnter() {\n const newThemes = [ 'theme-new-light', 'theme-new-dark', 'theme-new-contrast'];\n if (newThemes.includes(this.lmThemeService.getCurrentThemeId()) &&\n this.lmThemeService.getCurrentColorId() !== 'default' &&\n this.lmGlobalPersonalizationService.getGlobalPersonalization().applyColorToMenu\n ) {\n this.elementRef.nativeElement.style.backgroundColor = this.lmThemeService.getCurrentColor()?.value;\n }\n }\n\n private mouseLeave() {\n this.elementRef.nativeElement.style.backgroundColor = '';\n }\n}\n","export const environment = {\n production: true\n};\n","import { ApplicationRef, enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport { enableDebugTools } from '@angular/platform-browser';\n\n// USED FOR AOT\nimport 'lscache';\nimport 'lodash';\n\n// import { enableDebugTools } from '@angular/platform-browser';\n// import { ApplicationRef } from '@angular/core';\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule).then(moduleRef => {\n const appRef = moduleRef.injector.get(ApplicationRef);\n const cmpRef = appRef.components[0];\n enableDebugTools(cmpRef);\n}).catch(err => console.error(err));\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as chord} from \"./chord\";\nexport {default as ribbon} from \"./ribbon\";\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport {cos, halfPi, sin} from \"./math\";\nimport {path} from \"d3-path\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nexport default function() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {blurX, blurY} from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours\";\nexport {default as contourDensity} from \"./density\";\n","export default function() {}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","export {default as blob} from \"./blob.js\";\nexport {default as buffer} from \"./buffer.js\";\nexport {default as dsv, csv, tsv} from \"./dsv.js\";\nexport {default as image} from \"./image.js\";\nexport {default as json} from \"./json.js\";\nexport {default as text} from \"./text.js\";\nexport {default as xml, html, svg} from \"./xml.js\";\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","export default function(x) {\n return x;\n}\n","export {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport {cos, degrees, radians, sin} from \"../math.js\";\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n alpha = 0, ca, sa, // angle\n x0 = null, y0, x1, y1, // clip extent\n kx = 1, ky = 1,\n transform = transformer({\n point: function(x, y) {\n var p = projection([x, y])\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection (p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n } \n return [x + tx, y + ty];\n }\n projection.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n projection.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n }\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export {default as randomUniform} from \"./uniform\";\nexport {default as randomNormal} from \"./normal\";\nexport {default as randomLogNormal} from \"./logNormal\";\nexport {default as randomBates} from \"./bates\";\nexport {default as randomIrwinHall} from \"./irwinHall\";\nexport {default as randomExponential} from \"./exponential\";\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","export {default as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as voronoi} from \"./voronoi\";\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function(selection, k, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}\n","export var name = \"d3\";\nexport var version = \"5.16.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"postpublish\":\"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \\\"${npm_package_version}\\\" && git tag -am \\\"${npm_package_version}\\\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"2\",\"rollup\":\"1\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"3\",\"rollup-plugin-terser\":\"5\",\"tape\":\"4\"};\nexport var dependencies = {\"d3-array\":\"1\",\"d3-axis\":\"1\",\"d3-brush\":\"1\",\"d3-chord\":\"1\",\"d3-collection\":\"1\",\"d3-color\":\"1\",\"d3-contour\":\"1\",\"d3-dispatch\":\"1\",\"d3-drag\":\"1\",\"d3-dsv\":\"1\",\"d3-ease\":\"1\",\"d3-fetch\":\"1\",\"d3-force\":\"1\",\"d3-format\":\"1\",\"d3-geo\":\"1\",\"d3-hierarchy\":\"1\",\"d3-interpolate\":\"1\",\"d3-path\":\"1\",\"d3-polygon\":\"1\",\"d3-quadtree\":\"1\",\"d3-random\":\"1\",\"d3-scale\":\"2\",\"d3-scale-chromatic\":\"1\",\"d3-selection\":\"1\",\"d3-shape\":\"1\",\"d3-time\":\"1\",\"d3-time-format\":\"2\",\"d3-timer\":\"1\",\"d3-transition\":\"1\",\"d3-voronoi\":\"1\",\"d3-zoom\":\"1\"};\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-voronoi\";\nexport * from \"d3-zoom\";\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nconst LITTLE_ENDIAN = 0x4949;\nconst BIG_ENDIAN = 0x4d4d;\n\nexport default {\n BIG_ENDIAN,\n LITTLE_ENDIAN,\n getByteOrder\n};\n\nfunction getByteOrder(dataView, tiffHeaderOffset) {\n if (dataView.getUint16(tiffHeaderOffset) === LITTLE_ENDIAN) {\n return LITTLE_ENDIAN;\n } else if (dataView.getUint16(tiffHeaderOffset) === BIG_ENDIAN) {\n return BIG_ENDIAN;\n }\n throw new Error('Illegal byte order value. Faulty image.');\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport default {\n USE_FILE: true,\n USE_PNG_FILE: true,\n USE_EXIF: true,\n USE_IPTC: true,\n USE_XMP: true,\n USE_ICC: true,\n USE_MPF: true,\n USE_THUMBNAIL: true,\n USE_TIFF: true,\n USE_JPEG: true,\n USE_PNG: true,\n USE_HEIC: true,\n USE_WEBP: true\n};\n","export default class DataView {\n constructor(buffer) {\n if (bufferTypeIsUnsupported(buffer)) {\n throw new Error('DataView: Passed buffer type is unsupported.');\n }\n\n this.buffer = buffer;\n this.byteLength = this.buffer.length;\n }\n\n getUint8(offset) {\n return this.buffer.readUInt8(offset);\n }\n\n getUint16(offset, littleEndian) {\n if (littleEndian) {\n return this.buffer.readUInt16LE(offset);\n }\n return this.buffer.readUInt16BE(offset);\n }\n\n getUint32(offset, littleEndian) {\n if (littleEndian) {\n return this.buffer.readUInt32LE(offset);\n }\n return this.buffer.readUInt32BE(offset);\n }\n\n getInt32(offset, littleEndian) {\n if (littleEndian) {\n return this.buffer.readInt32LE(offset);\n }\n return this.buffer.readInt32BE(offset);\n }\n}\n\nfunction bufferTypeIsUnsupported(buffer) {\n return typeof buffer !== 'object'\n || buffer.length === undefined\n || buffer.readUInt8 === undefined\n || buffer.readUInt16LE === undefined\n || buffer.readUInt16BE === undefined\n || buffer.readUInt32LE === undefined\n || buffer.readUInt32BE === undefined\n || buffer.readInt32LE === undefined\n || buffer.readInt32BE === undefined;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport default {\n get\n};\n\nfunction get() {\n if (typeof DOMParser !== 'undefined') {\n return DOMParser;\n }\n try {\n return __non_webpack_require__('xmldom').DOMParser; // eslint-disable-line no-undef\n } catch (error) {\n return undefined;\n }\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\n/**\n * Thrown when no Exif metadata was found for the given image.\n *\n * @param {string} message The error message.\n */\nfunction MetadataMissingError(message) {\n this.name = 'MetadataMissingError';\n this.message = message || 'No Exif data';\n this.stack = (new Error()).stack;\n}\n\nMetadataMissingError.prototype = new Error;\n\nexport default {\n MetadataMissingError,\n};\n","/**\n * ExifReader\n * http://github.com/mattiasw/exifreader\n * Copyright (C) 2011-2020 Mattias Wallander \n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n/* global Buffer, __non_webpack_require__ */\n\nimport {objectAssign} from './utils.js';\nimport DataViewWrapper from './dataview.js';\nimport Constants from './constants.js';\nimport {getStringValueFromArray} from './utils.js';\nimport {getCalculatedGpsValue} from './tag-names-utils.js';\nimport ImageHeader from './image-header.js';\nimport Tags from './tags.js';\nimport FileTags from './file-tags.js';\nimport IptcTags from './iptc-tags.js';\nimport XmpTags from './xmp-tags.js';\nimport IccTags from './icc-tags.js';\nimport PngFileTags from './png-file-tags.js';\nimport Thumbnail from './thumbnail.js';\nimport exifErrors from './errors.js';\n\nexport default {\n load,\n loadView,\n errors: exifErrors,\n};\n\nexport const errors = exifErrors;\n\nexport function load(data, options = {expanded: false}) {\n if (isFilePathOrURL(data)) {\n return loadFile(data).then((fileContents) => loadFromData(fileContents, options));\n }\n if (isBrowserFileObject(data)) {\n return loadFileObject(data).then((fileContents) => loadFromData(fileContents, options));\n }\n return loadFromData(data, options);\n}\n\nfunction isFilePathOrURL(data) {\n return typeof data === 'string';\n}\n\nfunction loadFile(filename) {\n if (typeof window !== 'undefined') {\n return browserFetchRemoteFile(filename);\n }\n\n if (/^https?:\\/\\//.test(filename)) {\n return nodeFetchRemoteFile(filename).then((buffer) => {\n return buffer;\n });\n }\n\n return loadLocalFile(filename);\n}\n\nfunction browserFetchRemoteFile(url) {\n return fetch(url).then((response) => response.arrayBuffer());\n}\n\nfunction nodeFetchRemoteFile(url) {\n return new Promise((resolve, reject) => {\n const get = requireNodeGet(url);\n get(url, (response) => {\n if ((response.statusCode >= 200) && (response.statusCode <= 299)) {\n const data = [];\n response.on('data', (chunk) => data.push(Buffer.from(chunk)));\n response.on('error', (error) => reject(error));\n response.on('end', () => resolve(Buffer.concat(data)));\n } else {\n reject(`Could not fetch file: ${response.statusCode} ${response.statusMessage}`);\n response.resume();\n }\n }).on('error', (error) => reject(error));\n });\n}\n\nfunction requireNodeGet(url) {\n if (/^https:\\/\\//.test(url)) {\n return __non_webpack_require__('https').get;\n }\n return __non_webpack_require__('http').get;\n}\n\nfunction loadLocalFile(filename) {\n return new Promise((resolve, reject) => {\n const fs = requireNodeFs();\n fs.open(filename, (error, fd) => {\n if (error) {\n reject(error);\n } else {\n fs.stat(filename, (error, stat) => {\n if (error) {\n reject(error);\n } else {\n const buffer = Buffer.alloc(stat.size);\n fs.read(fd, {buffer}, (error) => {\n if (error) {\n reject(error);\n } else {\n fs.close(fd, (error) => {\n if (error) {\n console.warn(`Could not close file ${filename}:`, error); // eslint-disable-line no-console\n }\n resolve(buffer);\n });\n }\n });\n }\n });\n }\n });\n });\n}\n\nfunction requireNodeFs() {\n try {\n return __non_webpack_require__('fs');\n } catch (error) {\n return undefined;\n }\n}\n\nfunction isBrowserFileObject(data) {\n return (typeof window !== 'undefined') && (typeof File !== 'undefined') && (data instanceof File);\n}\n\nfunction loadFileObject(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (readerEvent) => resolve(readerEvent.target.result);\n reader.onerror = () => reject(reader.error);\n reader.readAsArrayBuffer(file);\n });\n}\n\nfunction loadFromData(data, options) {\n if (isNodeBuffer(data)) {\n // File data read in Node can share the underlying buffer with other\n // data. Therefore it's safest to get a new one to avoid weird bugs.\n data = (new Uint8Array(data)).buffer;\n }\n return loadView(getDataView(data), options);\n}\n\nfunction isNodeBuffer(data) {\n try {\n return Buffer.isBuffer(data);\n } catch (error) {\n return false;\n }\n}\n\nfunction getDataView(data) {\n try {\n return new DataView(data);\n } catch (error) {\n return new DataViewWrapper(data);\n }\n}\n\nexport function loadView(dataView, options = {expanded: false}) {\n let foundMetaData = false;\n let tags = {};\n\n const {\n fileDataOffset,\n tiffHeaderOffset,\n iptcDataOffset,\n xmpChunks,\n iccChunks,\n mpfDataOffset,\n pngHeaderOffset\n } = ImageHeader.parseAppMarkers(dataView);\n\n if (Constants.USE_JPEG && Constants.USE_FILE && hasFileData(fileDataOffset)) {\n foundMetaData = true;\n const readTags = FileTags.read(dataView, fileDataOffset);\n if (options.expanded) {\n tags.file = readTags;\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n }\n\n if (Constants.USE_EXIF && hasExifData(tiffHeaderOffset)) {\n foundMetaData = true;\n const readTags = Tags.read(dataView, tiffHeaderOffset);\n if (readTags.Thumbnail) {\n tags.Thumbnail = readTags.Thumbnail;\n delete readTags.Thumbnail;\n }\n\n if (options.expanded) {\n tags.exif = readTags;\n addGpsGroup(tags);\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n\n if (Constants.USE_TIFF && Constants.USE_IPTC && readTags['IPTC-NAA'] && !hasIptcData(iptcDataOffset)) {\n const readIptcTags = IptcTags.read(readTags['IPTC-NAA'].value, 0);\n if (options.expanded) {\n tags.iptc = readIptcTags;\n } else {\n tags = objectAssign({}, tags, readIptcTags);\n }\n }\n\n if (Constants.USE_TIFF && Constants.USE_XMP && readTags['ApplicationNotes'] && !hasXmpData(xmpChunks)) {\n const readXmpTags = XmpTags.read(getStringValueFromArray(readTags['ApplicationNotes'].value));\n if (options.expanded) {\n tags.xmp = readXmpTags;\n } else {\n tags = objectAssign({}, tags, readXmpTags);\n }\n }\n\n if (Constants.USE_TIFF && Constants.USE_ICC && readTags['ICC_Profile'] && !hasIccData(iccChunks)) {\n const readIccTags = IccTags.read(\n readTags['ICC_Profile'].value,\n [{\n offset: 0,\n length: readTags['ICC_Profile'].value.length,\n chunkNumber: 1,\n chunksTotal: 1\n }]\n );\n if (options.expanded) {\n tags.icc = readIccTags;\n } else {\n tags = objectAssign({}, tags, readIccTags);\n }\n }\n }\n\n if (Constants.USE_JPEG && Constants.USE_IPTC && hasIptcData(iptcDataOffset)) {\n foundMetaData = true;\n const readTags = IptcTags.read(dataView, iptcDataOffset);\n if (options.expanded) {\n tags.iptc = readTags;\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n }\n\n if (Constants.USE_XMP && hasXmpData(xmpChunks)) {\n foundMetaData = true;\n const readTags = XmpTags.read(dataView, xmpChunks);\n if (options.expanded) {\n tags.xmp = readTags;\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n }\n\n if ((Constants.USE_JPEG || Constants.USE_WEBP) && Constants.USE_ICC && hasIccData(iccChunks)) {\n foundMetaData = true;\n const readTags = IccTags.read(dataView, iccChunks);\n if (options.expanded) {\n tags.icc = readTags;\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n }\n\n if (Constants.USE_MPF && hasMpfData(mpfDataOffset)) {\n foundMetaData = true;\n const readMpfTags = Tags.readMpf(dataView, mpfDataOffset);\n if (options.expanded) {\n tags.mpf = readMpfTags;\n } else {\n tags = objectAssign({}, tags, readMpfTags);\n }\n }\n\n if (Constants.USE_PNG && Constants.USE_PNG_FILE && hasPngFileData(pngHeaderOffset)) {\n foundMetaData = true;\n const readTags = PngFileTags.read(dataView, pngHeaderOffset);\n if (options.expanded) {\n tags.pngFile = readTags;\n } else {\n tags = objectAssign({}, tags, readTags);\n }\n }\n\n const thumbnail = (Constants.USE_JPEG || Constants.USE_WEBP)\n && Constants.USE_EXIF\n && Constants.USE_THUMBNAIL\n && Thumbnail.get(dataView, tags.Thumbnail, tiffHeaderOffset);\n if (thumbnail) {\n foundMetaData = true;\n tags.Thumbnail = thumbnail;\n } else {\n delete tags.Thumbnail;\n }\n\n if (!foundMetaData) {\n throw new exifErrors.MetadataMissingError();\n }\n\n return tags;\n}\n\nfunction hasFileData(fileDataOffset) {\n return fileDataOffset !== undefined;\n}\n\nfunction hasExifData(tiffHeaderOffset) {\n return tiffHeaderOffset !== undefined;\n}\n\nfunction addGpsGroup(tags) {\n if (tags.exif) {\n if (tags.exif.GPSLatitude && tags.exif.GPSLatitudeRef) {\n try {\n tags.gps = tags.gps || {};\n tags.gps.Latitude = getCalculatedGpsValue(tags.exif.GPSLatitude.value);\n if (tags.exif.GPSLatitudeRef.value.join('') === 'S') {\n tags.gps.Latitude = -tags.gps.Latitude;\n }\n } catch (error) {\n // Ignore.\n }\n }\n\n if (tags.exif.GPSLongitude && tags.exif.GPSLongitudeRef) {\n try {\n tags.gps = tags.gps || {};\n tags.gps.Longitude = getCalculatedGpsValue(tags.exif.GPSLongitude.value);\n if (tags.exif.GPSLongitudeRef.value.join('') === 'W') {\n tags.gps.Longitude = -tags.gps.Longitude;\n }\n } catch (error) {\n // Ignore.\n }\n }\n\n if (tags.exif.GPSAltitude && tags.exif.GPSAltitudeRef) {\n try {\n tags.gps = tags.gps || {};\n tags.gps.Altitude = tags.exif.GPSAltitude.value[0] / tags.exif.GPSAltitude.value[1];\n if (tags.exif.GPSAltitudeRef.value === 1) {\n tags.gps.Altitude = -tags.gps.Altitude;\n }\n } catch (error) {\n // Ignore.\n }\n }\n }\n}\n\nfunction hasIptcData(iptcDataOffset) {\n return iptcDataOffset !== undefined;\n}\n\nfunction hasXmpData(xmpChunks) {\n return Array.isArray(xmpChunks) && xmpChunks.length > 0;\n}\n\nfunction hasIccData(iccDataOffsets) {\n return Array.isArray(iccDataOffsets) && iccDataOffsets.length > 0;\n}\n\nfunction hasMpfData(mpfDataOffset) {\n return mpfDataOffset !== undefined;\n}\n\nfunction hasPngFileData(pngFileDataOffset) {\n return pngFileDataOffset !== undefined;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport Types from './types.js';\n\nexport default {\n read\n};\n\nfunction read(dataView, fileDataOffset) {\n const length = getLength(dataView, fileDataOffset);\n const numberOfColorComponents = getNumberOfColorComponents(dataView, fileDataOffset, length);\n return {\n 'Bits Per Sample': getDataPrecision(dataView, fileDataOffset, length),\n 'Image Height': getImageHeight(dataView, fileDataOffset, length),\n 'Image Width': getImageWidth(dataView, fileDataOffset, length),\n 'Color Components': numberOfColorComponents,\n 'Subsampling': numberOfColorComponents && getSubsampling(dataView, fileDataOffset, numberOfColorComponents.value, length)\n };\n}\n\nfunction getLength(dataView, fileDataOffset) {\n return Types.getShortAt(dataView, fileDataOffset);\n}\n\nfunction getDataPrecision(dataView, fileDataOffset, length) {\n const OFFSET = 2;\n const SIZE = 1;\n\n if (OFFSET + SIZE > length) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: '' + value\n };\n}\n\nfunction getImageHeight(dataView, fileDataOffset, length) {\n const OFFSET = 3;\n const SIZE = 2;\n\n if (OFFSET + SIZE > length) {\n return undefined;\n }\n\n const value = Types.getShortAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: `${value}px`\n };\n}\n\nfunction getImageWidth(dataView, fileDataOffset, length) {\n const OFFSET = 5;\n const SIZE = 2;\n\n if (OFFSET + SIZE > length) {\n return undefined;\n }\n\n const value = Types.getShortAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: `${value}px`\n };\n}\n\nfunction getNumberOfColorComponents(dataView, fileDataOffset, length) {\n const OFFSET = 7;\n const SIZE = 1;\n\n if (OFFSET + SIZE > length) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: '' + value\n };\n}\n\nfunction getSubsampling(dataView, fileDataOffset, numberOfColorComponents, length) {\n const OFFSET = 8;\n const SIZE = 3 * numberOfColorComponents;\n\n if (OFFSET + SIZE > length) {\n return undefined;\n }\n\n const components = [];\n\n for (let i = 0; i < numberOfColorComponents; i++) {\n const componentOffset = fileDataOffset + OFFSET + i * 3;\n components.push([\n Types.getByteAt(dataView, componentOffset),\n Types.getByteAt(dataView, componentOffset + 1),\n Types.getByteAt(dataView, componentOffset + 2)\n ]);\n }\n\n return {\n value: components,\n description: components.length > 1 ? getComponentIds(components) + getSamplingType(components) : ''\n };\n}\n\nfunction getComponentIds(components) {\n const ids = {\n 0x01: 'Y',\n 0x02: 'Cb',\n 0x03: 'Cr',\n 0x04: 'I',\n 0x05: 'Q',\n };\n\n return components.map((compontent) => ids[compontent[0]]).join('');\n}\n\nfunction getSamplingType(components) {\n const types = {\n 0x11: '4:4:4 (1 1)',\n 0x12: '4:4:0 (1 2)',\n 0x14: '4:4:1 (1 4)',\n 0x21: '4:2:2 (2 1)',\n 0x22: '4:2:0 (2 2)',\n 0x24: '4:2:1 (2 4)',\n 0x41: '4:1:1 (4 1)',\n 0x42: '4:1:0 (4 2)'\n };\n\n if (components.length === 0 || components[0][1] === undefined || types[components[0][1]] === undefined) {\n return '';\n }\n\n return types[components[0][1]];\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView} from './utils.js';\n\nexport const iccTags = {\n 'desc': {\n 'name': 'ICC Description',\n },\n 'cprt': {\n 'name': 'ICC Copyright',\n },\n 'dmdd': {\n 'name': 'ICC Device Model Description',\n },\n 'vued': {\n 'name': 'ICC Viewing Conditions Description',\n },\n 'dmnd': {\n 'name': 'ICC Device Manufacturer for Display',\n },\n 'tech': {\n 'name': 'Technology',\n },\n};\n\nexport const iccProfile = {\n 4: {\n 'name': 'Preferred CMM type',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4),\n 'description': (value) => value !== null ? toCompany(value) : '',\n },\n 8: {\n 'name': 'Profile Version',\n 'value': (dataView, offset) => {\n return (dataView.getUint8(offset)).toString(10) + '.'\n + (dataView.getUint8(offset + 1) >> 4).toString(10) + '.'\n + (dataView.getUint8(offset + 1) % 16).toString(10);\n }\n },\n 12: {\n 'name': 'Profile/Device class',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4),\n 'description': (value) => {\n switch (value.toLowerCase()) {\n case 'scnr': return 'Input Device profile';\n case 'mntr': return 'Display Device profile';\n case 'prtr': return 'Output Device profile';\n case 'link': return 'DeviceLink profile';\n case 'abst': return 'Abstract profile';\n case 'spac': return 'ColorSpace profile';\n case 'nmcl': return 'NamedColor profile';\n case 'cenc': return 'ColorEncodingSpace profile';\n case 'mid ': return 'MultiplexIdentification profile';\n case 'mlnk': return 'MultiplexLink profile';\n case 'mvis': return 'MultiplexVisualization profile';\n default: return value;\n }\n }\n },\n 16: {\n 'name': 'Color Space',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4)\n },\n 20: {\n 'name': 'Connection Space',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4)\n },\n 24: {\n 'name': 'ICC Profile Date',\n 'value': (dataView, offset) => parseDate(dataView, offset).toISOString()\n },\n 36: {\n 'name': 'ICC Signature',\n 'value': (dataView, offset) => sliceToString(dataView.buffer.slice(offset, offset + 4))\n },\n 40: {\n 'name': 'Primary Platform',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4),\n 'description': (value) => toCompany(value)\n },\n 48: {\n 'name': 'Device Manufacturer',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4),\n 'description': (value) => toCompany(value)\n },\n 52: {\n 'name': 'Device Model Number',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4)\n },\n 64: {\n 'name': 'Rendering Intent',\n 'value': (dataView, offset) => dataView.getUint32(offset),\n 'description': (value) => {\n switch (value) {\n case 0: return 'Perceptual';\n case 1: return 'Relative Colorimetric';\n case 2: return 'Saturation';\n case 3: return 'Absolute Colorimetric';\n default: return value;\n }\n }\n },\n\n 80: {\n 'name': 'Profile Creator',\n 'value': (dataView, offset) => getStringFromDataView(dataView, offset, 4)\n },\n};\n\nfunction parseDate(dataView, offset) {\n const year = dataView.getUint16(offset);\n const month = dataView.getUint16(offset + 2) - 1;\n const day = dataView.getUint16(offset + 4);\n const hours = dataView.getUint16(offset + 6);\n const minutes = dataView.getUint16(offset + 8);\n const seconds = dataView.getUint16(offset + 10);\n return new Date(Date.UTC(year, month, day, hours, minutes, seconds));\n}\n\nfunction sliceToString(slice) {\n return String.fromCharCode.apply(null, new Uint8Array(slice));\n}\n\nfunction toCompany(value) {\n switch (value.toLowerCase()) {\n case 'appl': return 'Apple';\n case 'adbe': return 'Adobe';\n case 'msft': return 'Microsoft';\n case 'sunw': return 'Sun Microsystems';\n case 'sgi': return 'Silicon Graphics';\n case 'tgnt': return 'Taligent';\n default: return value;\n }\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\nimport {iccTags, iccProfile} from './icc-tag-names.js';\nimport {getStringFromDataView, getUnicodeStringFromDataView} from './utils.js';\n\nexport default {\n read\n};\n\nconst PROFILE_HEADER_LENGTH = 84;\nconst ICC_TAG_COUNT_OFFSET = 128;\nconst ICC_SIGNATURE = 'acsp';\nconst TAG_TYPE_DESC = 'desc';\nconst TAG_TYPE_MULTI_LOCALIZED_UNICODE_TYPE = 'mluc';\nconst TAG_TYPE_TEXT = 'text';\nconst TAG_TYPE_SIGNATURE = 'sig ';\nconst TAG_TABLE_SINGLE_TAG_DATA = 12;\n\n// ICC profile data can be longer than application segment max length of ~64k.\n// so it can be split into multiple APP2 segments. Each segment includes\n// total chunk count and chunk number.\n// Here we read all chunks into single continious array of bytes.\nfunction read(dataView, iccData) {\n try {\n const totalIccProfileLength = iccData.reduce((sum, icc) => sum + icc.length, 0);\n\n const iccBinaryData = new Uint8Array(totalIccProfileLength);\n let offset = 0;\n const buffer = getBuffer(dataView);\n\n for (let chunkNumber = 1; chunkNumber <= iccData.length; chunkNumber++) {\n const iccDataChunk = iccData.find((x) => x.chunkNumber === chunkNumber);\n if (!iccDataChunk) {\n throw new Error(`ICC chunk ${chunkNumber} not found`);\n }\n\n const data = buffer.slice(iccDataChunk.offset, iccDataChunk.offset + iccDataChunk.length);\n const chunkData = new Uint8Array(data);\n\n iccBinaryData.set(chunkData, offset);\n offset += chunkData.length;\n }\n\n return parseTags(new DataView(iccBinaryData.buffer));\n } catch (error) {\n return {};\n }\n}\n\nfunction getBuffer(dataView) {\n if (Array.isArray(dataView)) {\n return (new DataView(Uint8Array.from(dataView).buffer)).buffer;\n }\n return dataView.buffer;\n}\n\nfunction iccDoesNotHaveTagCount(buffer) {\n return buffer.length < (ICC_TAG_COUNT_OFFSET + 4);\n}\n\nfunction hasTagsData(buffer, tagHeaderOffset) {\n return buffer.length < tagHeaderOffset + TAG_TABLE_SINGLE_TAG_DATA;\n}\n\nexport function parseTags(dataView) {\n const buffer = dataView.buffer;\n\n const length = dataView.getUint32();\n if (dataView.byteLength !== length) {\n throw new Error('ICC profile length not matching');\n }\n\n if (dataView.length < PROFILE_HEADER_LENGTH) {\n throw new Error('ICC profile too short');\n }\n\n const tags = {};\n\n const iccProfileKeys = Object.keys(iccProfile);\n for (let i = 0; i < iccProfileKeys.length; i++) {\n const offset = iccProfileKeys[i];\n const profileEntry = iccProfile[offset];\n const value = profileEntry.value(dataView, parseInt(offset, 10));\n let description = value;\n if (profileEntry.description) {\n description = profileEntry.description(value);\n }\n\n tags[profileEntry.name] = {\n value,\n description\n };\n }\n\n const signature = sliceToString(buffer.slice(36, 40));\n if (signature !== ICC_SIGNATURE) {\n throw new Error('ICC profile: missing signature');\n }\n\n /* ICC data is incomplete but we have header parsed so lets return it */\n if (iccDoesNotHaveTagCount(buffer)) {\n return tags;\n }\n\n const tagCount = dataView.getUint32(128);\n let tagHeaderOffset = 132;\n\n for (let i = 0; i < tagCount; i++) {\n if (hasTagsData(buffer, tagHeaderOffset)) {\n // Tags are corrupted (offset too far), return what we parsed until now\n return tags;\n }\n const tagSignature = getStringFromDataView(dataView, tagHeaderOffset, 4);\n const tagOffset = dataView.getUint32(tagHeaderOffset + 4);\n const tagSize = dataView.getUint32(tagHeaderOffset + 8);\n\n if (tagOffset > buffer.length) {\n // Tag data is invalid, lets return what we managed to parse\n return tags;\n }\n const tagType = getStringFromDataView(dataView, tagOffset, 4);\n\n if (tagType === TAG_TYPE_DESC) {\n const tagValueSize = dataView.getUint32(tagOffset + 8);\n if (tagValueSize > tagSize) {\n // Tag data is invalid, lets return what we managed to parse\n return tags;\n }\n\n const val = sliceToString(buffer.slice(tagOffset + 12, tagOffset + tagValueSize + 11));\n addTag(tags, tagSignature, val);\n } else if (tagType === TAG_TYPE_MULTI_LOCALIZED_UNICODE_TYPE) {\n const numRecords = dataView.getUint32(tagOffset + 8);\n const recordSize = dataView.getUint32(tagOffset + 12);\n let offset = tagOffset + 16;\n const val = [];\n for (let recordNum = 0; recordNum < numRecords; recordNum++) {\n const languageCode = getStringFromDataView(dataView, offset + 0, 2);\n const countryCode = getStringFromDataView(dataView, offset + 2, 2);\n const textLength = dataView.getUint32(offset + 4);\n const textOffset = dataView.getUint32(offset + 8);\n\n const text = getUnicodeStringFromDataView(dataView, tagOffset + textOffset, textLength);\n val.push({languageCode, countryCode, text});\n offset += recordSize;\n }\n if (numRecords === 1) {\n addTag(tags, tagSignature, val[0].text);\n } else {\n const valObj = {};\n for (let valIndex = 0; valIndex < val.length; valIndex++) {\n valObj[`${val[valIndex].languageCode}-${val[valIndex].countryCode}`] = val[valIndex].text;\n }\n addTag(tags, tagSignature, valObj);\n }\n } else if (tagType === TAG_TYPE_TEXT) {\n const val = sliceToString(buffer.slice(tagOffset + 8, tagOffset + tagSize - 7));\n addTag(tags, tagSignature, val);\n } else if (tagType === TAG_TYPE_SIGNATURE) {\n const val = sliceToString(buffer.slice(tagOffset + 8, tagOffset + 12));\n addTag(tags, tagSignature, val);\n }\n tagHeaderOffset = tagHeaderOffset + 12;\n }\n\n return tags;\n}\n\nfunction sliceToString(slice) {\n return String.fromCharCode.apply(null, new Uint8Array(slice));\n}\n\nfunction addTag(tags, tagSignature, value) {\n if (iccTags[tagSignature]) {\n tags[iccTags[tagSignature].name] = {value, description: value};\n } else {\n tags[tagSignature] = {value, description: value};\n }\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView} from './utils.js';\nimport Constants from './constants.js';\n\nexport default {\n isHeicFile,\n findHeicOffsets\n};\n\nfunction isHeicFile(dataView) {\n const HEIC_ID = 'ftyp';\n const HEIC_ID_OFFSET = 4;\n const HEIC_MAJOR_BRANDS = ['heic', 'heix', 'hevc', 'hevx', 'heim', 'heis', 'hevm', 'hevs', 'mif1'];\n const HEIC_MAJOR_BRAND_LENGTH = 4;\n\n const heicMajorBrand = getStringFromDataView(dataView, HEIC_ID_OFFSET + HEIC_ID.length, HEIC_MAJOR_BRAND_LENGTH);\n\n return (getStringFromDataView(dataView, HEIC_ID_OFFSET, HEIC_ID.length) === HEIC_ID)\n && (HEIC_MAJOR_BRANDS.indexOf(heicMajorBrand) !== -1);\n}\n\nfunction findHeicOffsets(dataView) {\n if (Constants.USE_EXIF || Constants.USE_ICC) {\n const {offset: metaOffset, length: metaLength} = findMetaAtom(dataView);\n if (metaOffset === undefined) {\n return {hasAppMarkers: false};\n }\n\n const metaEndOffset = Math.min(metaOffset + metaLength, dataView.byteLength);\n const {exifItemOffset, ilocOffset, colrOffset} = findMetaItems(dataView, metaOffset, metaEndOffset);\n\n const exifOffset = findExifOffset(dataView, exifItemOffset, ilocOffset, metaEndOffset);\n const iccChunks = findIccChunks(dataView, colrOffset, metaEndOffset);\n return {\n hasAppMarkers: (exifOffset !== undefined) || (iccChunks !== undefined),\n tiffHeaderOffset: exifOffset,\n iccChunks\n };\n }\n\n return {hasAppMarkers: false};\n}\n\nfunction findMetaAtom(dataView) {\n const ATOM_LENGTH_SIZE = 4;\n const ATOM_TYPE_SIZE = 4;\n const ATOM_MIN_LENGTH = 8;\n const ATOM_TYPE_OFFSET = 4;\n\n let offset = 0;\n\n while (offset + ATOM_LENGTH_SIZE + ATOM_TYPE_SIZE <= dataView.byteLength) {\n const atomLength = getAtomLength(dataView, offset);\n if (atomLength >= ATOM_MIN_LENGTH) {\n const atomType = getStringFromDataView(dataView, offset + ATOM_TYPE_OFFSET, ATOM_TYPE_SIZE);\n if (atomType === 'meta') {\n return {\n offset,\n length: atomLength\n };\n }\n }\n\n offset += atomLength;\n }\n\n return {\n offset: undefined,\n length: 0\n };\n}\n\nfunction getAtomLength(dataView, offset) {\n const ATOM_EXTENDED_SIZE_LOW_OFFSET = 12;\n\n const atomLength = dataView.getUint32(offset);\n if (extendsToEndOfFile(atomLength)) {\n return dataView.byteLength - offset;\n }\n if (hasExtendedSize(atomLength)) {\n if (hasEmptyHighBits(dataView, offset)) {\n // It's a bit tricky to handle 64 bit numbers in JavaScript. Let's\n // wait until there are real-world examples where it is necessary.\n return dataView.getUint32(offset + ATOM_EXTENDED_SIZE_LOW_OFFSET);\n }\n }\n\n return atomLength;\n}\n\nfunction extendsToEndOfFile(atomLength) {\n return atomLength === 0;\n}\n\nfunction hasExtendedSize(atomLength) {\n return atomLength === 1;\n}\n\nfunction hasEmptyHighBits(dataView, offset) {\n const ATOM_EXTENDED_SIZE_OFFSET = 8;\n return dataView.getUint32(offset + ATOM_EXTENDED_SIZE_OFFSET) === 0;\n}\n\nfunction findMetaItems(dataView, offset, metaEndOffset) {\n const STRING_SIZE = 4;\n const ITEM_INDEX_REL_OFFSET = -4;\n const offsets = {\n ilocOffset: undefined,\n exifItemOffset: undefined,\n colrOffset: undefined\n };\n\n while ((offset + STRING_SIZE <= metaEndOffset)\n && (!offsets.ilocOffset || !offsets.exifItemOffset || !offsets.colrOffset)) {\n const itemName = getStringFromDataView(dataView, offset, STRING_SIZE);\n if (Constants.USE_EXIF && (itemName === 'iloc')) {\n offsets.ilocOffset = offset;\n } else if (Constants.USE_EXIF && (itemName === 'Exif')) {\n offsets.exifItemOffset = offset + ITEM_INDEX_REL_OFFSET;\n } else if (Constants.USE_ICC && (itemName === 'colr')) {\n offsets.colrOffset = offset + ITEM_INDEX_REL_OFFSET;\n }\n\n offset++;\n }\n\n return offsets;\n}\n\nfunction findExifOffset(dataView, exifItemOffset, offset, metaEndOffset) {\n const EXIF_ITEM_OFFSET_SIZE = 2;\n const ILOC_DATA_OFFSET = 12;\n const EXIF_POINTER_OFFSET = 8;\n const EXIF_POINTER_SIZE = 4;\n const EXIF_PREFIX_LENGTH_OFFSET = 4;\n const ILOC_ITEM_SIZE = 16;\n\n if (!offset || !exifItemOffset || (exifItemOffset + EXIF_ITEM_OFFSET_SIZE > metaEndOffset)) {\n return undefined;\n }\n\n const exifItemIndex = dataView.getUint16(exifItemOffset);\n offset += ILOC_DATA_OFFSET;\n\n while (offset + ILOC_ITEM_SIZE <= metaEndOffset) {\n const itemIndex = dataView.getUint16(offset);\n if (itemIndex === exifItemIndex) {\n const exifPointer = dataView.getUint32(offset + EXIF_POINTER_OFFSET);\n if (exifPointer + EXIF_POINTER_SIZE <= dataView.byteLength) {\n const exifOffset = dataView.getUint32(exifPointer);\n const prefixLength = exifOffset + EXIF_PREFIX_LENGTH_OFFSET;\n return exifPointer + prefixLength;\n }\n }\n offset += ILOC_ITEM_SIZE;\n }\n\n return undefined;\n}\n\nfunction findIccChunks(dataView, offset, metaEndOffset) {\n const ITEM_TYPE_OFFSET = 8;\n const ITEM_TYPE_SIZE = 4;\n const ITEM_CONTENT_OFFSET = 12;\n\n if (!offset || (offset + ITEM_CONTENT_OFFSET > metaEndOffset)) {\n return undefined;\n }\n\n const colorType = getStringFromDataView(dataView, offset + ITEM_TYPE_OFFSET, ITEM_TYPE_SIZE);\n if ((colorType !== 'prof') && (colorType !== 'rICC')) {\n return undefined;\n }\n\n return [{\n offset: offset + ITEM_CONTENT_OFFSET,\n length: getAtomLength(dataView, offset) - ITEM_CONTENT_OFFSET,\n chunkNumber: 1,\n chunksTotal: 1\n }];\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView} from './utils.js';\nimport Constants from './constants.js';\n\nexport default {\n isJpegFile,\n findJpegOffsets\n};\n\nconst MIN_JPEG_DATA_BUFFER_LENGTH = 2;\nconst JPEG_ID = 0xffd8;\nconst JPEG_ID_SIZE = 2;\nconst APP_ID_OFFSET = 4;\nconst APP_MARKER_SIZE = 2;\nconst TIFF_HEADER_OFFSET = 10; // From start of APP1 marker.\nconst IPTC_DATA_OFFSET = 18; // From start of APP13 marker.\nconst XMP_DATA_OFFSET = 33; // From start of APP1 marker.\nconst XMP_EXTENDED_DATA_OFFSET = 79; // From start of APP1 marker including GUID, total length, and offset.\nconst APP2_ICC_DATA_OFFSET = 18; // From start of APP2 marker including marker and chunk/chunk total numbers.\nconst MPF_DATA_OFFSET = 8;\n\nconst APP2_ICC_IDENTIFIER = 'ICC_PROFILE\\0';\nconst ICC_CHUNK_NUMBER_OFFSET = APP_ID_OFFSET + APP2_ICC_IDENTIFIER.length;\nconst ICC_TOTAL_CHUNKS_OFFSET = ICC_CHUNK_NUMBER_OFFSET + 1;\n\nconst APP2_MPF_IDENTIFIER = 'MPF\\0';\n\nconst SOF0_MARKER = 0xffc0;\nconst SOF2_MARKER = 0xffc2;\nconst DHT_MARKER = 0xffc4;\nconst DQT_MARKER = 0xffdb;\nconst DRI_MARKER = 0xffdd;\nconst SOS_MARKER = 0xffda;\n\nconst APP0_MARKER = 0xffe0;\nconst APP1_MARKER = 0xffe1;\nconst APP2_MARKER = 0xffe2;\nconst APP13_MARKER = 0xffed;\nconst APP15_MARKER = 0xffef;\nconst COMMENT_MARKER = 0xfffe;\n\nconst APP1_EXIF_IDENTIFIER = 'Exif';\nconst APP1_XMP_IDENTIFIER = 'http://ns.adobe.com/xap/1.0/\\x00';\nconst APP1_XMP_EXTENDED_IDENTIFIER = 'http://ns.adobe.com/xmp/extension/\\x00';\nconst APP13_IPTC_IDENTIFIER = 'Photoshop 3.0';\n\nfunction isJpegFile(dataView) {\n return (dataView.byteLength >= MIN_JPEG_DATA_BUFFER_LENGTH) && (dataView.getUint16(0) === JPEG_ID);\n}\n\nfunction findJpegOffsets(dataView) {\n let appMarkerPosition = JPEG_ID_SIZE;\n let fieldLength;\n let sof0DataOffset;\n let sof2DataOffset;\n let tiffHeaderOffset;\n let iptcDataOffset;\n let xmpChunks;\n let iccChunks;\n let mpfDataOffset;\n\n while (appMarkerPosition + APP_ID_OFFSET + 5 <= dataView.byteLength) {\n if (Constants.USE_FILE && isSOF0Marker(dataView, appMarkerPosition)) {\n sof0DataOffset = appMarkerPosition + APP_MARKER_SIZE;\n } else if (Constants.USE_FILE && isSOF2Marker(dataView, appMarkerPosition)) {\n sof2DataOffset = appMarkerPosition + APP_MARKER_SIZE;\n } else if (Constants.USE_EXIF && isApp1ExifMarker(dataView, appMarkerPosition)) {\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n tiffHeaderOffset = appMarkerPosition + TIFF_HEADER_OFFSET;\n } else if (Constants.USE_XMP && isApp1XmpMarker(dataView, appMarkerPosition)) {\n if (!xmpChunks) {\n xmpChunks = [];\n }\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n xmpChunks.push(getXmpChunkDetails(appMarkerPosition, fieldLength));\n } else if (Constants.USE_XMP && isApp1ExtendedXmpMarker(dataView, appMarkerPosition)) {\n if (!xmpChunks) {\n xmpChunks = [];\n }\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n xmpChunks.push(getExtendedXmpChunkDetails(appMarkerPosition, fieldLength));\n } else if (Constants.USE_IPTC && isApp13PhotoshopMarker(dataView, appMarkerPosition)) {\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n iptcDataOffset = appMarkerPosition + IPTC_DATA_OFFSET;\n } else if (Constants.USE_ICC && isApp2ICCMarker(dataView, appMarkerPosition)) {\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n const iccDataOffset = appMarkerPosition + APP2_ICC_DATA_OFFSET;\n const iccDataLength = fieldLength - (APP2_ICC_DATA_OFFSET - APP_MARKER_SIZE);\n\n const iccChunkNumber = dataView.getUint8(appMarkerPosition + ICC_CHUNK_NUMBER_OFFSET);\n const iccChunksTotal = dataView.getUint8(appMarkerPosition + ICC_TOTAL_CHUNKS_OFFSET);\n if (!iccChunks) {\n iccChunks = [];\n }\n iccChunks.push({offset: iccDataOffset, length: iccDataLength, chunkNumber: iccChunkNumber, chunksTotal: iccChunksTotal});\n } else if (Constants.USE_MPF && isApp2MPFMarker(dataView, appMarkerPosition)) {\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n mpfDataOffset = appMarkerPosition + MPF_DATA_OFFSET;\n } else if (isAppMarker(dataView, appMarkerPosition)) {\n fieldLength = dataView.getUint16(appMarkerPosition + APP_MARKER_SIZE);\n } else {\n break;\n }\n appMarkerPosition += APP_MARKER_SIZE + fieldLength;\n }\n\n return {\n hasAppMarkers: appMarkerPosition > JPEG_ID_SIZE,\n fileDataOffset: sof0DataOffset || sof2DataOffset,\n tiffHeaderOffset,\n iptcDataOffset,\n xmpChunks,\n iccChunks,\n mpfDataOffset\n };\n}\n\nfunction isSOF0Marker(dataView, appMarkerPosition) {\n return (dataView.getUint16(appMarkerPosition) === SOF0_MARKER);\n}\n\nfunction isSOF2Marker(dataView, appMarkerPosition) {\n return (dataView.getUint16(appMarkerPosition) === SOF2_MARKER);\n}\n\nfunction isApp2ICCMarker(dataView, appMarkerPosition) {\n const markerIdLength = APP2_ICC_IDENTIFIER.length;\n\n return (dataView.getUint16(appMarkerPosition) === APP2_MARKER)\n && (getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP2_ICC_IDENTIFIER);\n}\n\nfunction isApp2MPFMarker(dataView, appMarkerPosition) {\n const markerIdLength = APP2_MPF_IDENTIFIER.length;\n\n return (dataView.getUint16(appMarkerPosition) === APP2_MARKER)\n && (getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP2_MPF_IDENTIFIER);\n}\n\nfunction isApp1ExifMarker(dataView, appMarkerPosition) {\n const markerIdLength = APP1_EXIF_IDENTIFIER.length;\n\n return (dataView.getUint16(appMarkerPosition) === APP1_MARKER)\n && (getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP1_EXIF_IDENTIFIER)\n && (dataView.getUint8(appMarkerPosition + APP_ID_OFFSET + markerIdLength) === 0x00);\n}\n\nfunction isApp1XmpMarker(dataView, appMarkerPosition) {\n return (dataView.getUint16(appMarkerPosition) === APP1_MARKER)\n && isXmpIdentifier(dataView, appMarkerPosition);\n}\n\nfunction isXmpIdentifier(dataView, appMarkerPosition) {\n const markerIdLength = APP1_XMP_IDENTIFIER.length;\n return getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP1_XMP_IDENTIFIER;\n}\n\nfunction isApp1ExtendedXmpMarker(dataView, appMarkerPosition) {\n return (dataView.getUint16(appMarkerPosition) === APP1_MARKER)\n && isExtendedXmpIdentifier(dataView, appMarkerPosition);\n}\n\nfunction isExtendedXmpIdentifier(dataView, appMarkerPosition) {\n const markerIdLength = APP1_XMP_EXTENDED_IDENTIFIER.length;\n return getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP1_XMP_EXTENDED_IDENTIFIER;\n}\n\nfunction getXmpChunkDetails(appMarkerPosition, fieldLength) {\n return {\n dataOffset: appMarkerPosition + XMP_DATA_OFFSET,\n length: fieldLength - (XMP_DATA_OFFSET - APP_MARKER_SIZE)\n };\n}\n\nfunction getExtendedXmpChunkDetails(appMarkerPosition, fieldLength) {\n return {\n dataOffset: appMarkerPosition + XMP_EXTENDED_DATA_OFFSET,\n length: fieldLength - (XMP_EXTENDED_DATA_OFFSET - APP_MARKER_SIZE)\n };\n}\n\nfunction isApp13PhotoshopMarker(dataView, appMarkerPosition) {\n const markerIdLength = APP13_IPTC_IDENTIFIER.length;\n\n return (dataView.getUint16(appMarkerPosition) === APP13_MARKER)\n && (getStringFromDataView(dataView, appMarkerPosition + APP_ID_OFFSET, markerIdLength) === APP13_IPTC_IDENTIFIER)\n && (dataView.getUint8(appMarkerPosition + APP_ID_OFFSET + markerIdLength) === 0x00);\n}\n\nfunction isAppMarker(dataView, appMarkerPosition) {\n const appMarker = dataView.getUint16(appMarkerPosition);\n return ((appMarker >= APP0_MARKER) && (appMarker <= APP15_MARKER))\n || (appMarker === COMMENT_MARKER)\n || (appMarker === SOF0_MARKER)\n || (appMarker === SOF2_MARKER)\n || (appMarker === DHT_MARKER)\n || (appMarker === DQT_MARKER)\n || (appMarker === DRI_MARKER)\n || (appMarker === SOS_MARKER);\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView} from './utils.js';\nimport Constants from './constants.js';\n\nexport default {\n isPngFile,\n findPngOffsets\n};\n\nconst PNG_ID = '\\x89\\x50\\x4e\\x47\\x0d\\x0a\\x1a\\x0a';\nconst PNG_CHUNK_LENGTH_SIZE = 4;\nconst PNG_CHUNK_TYPE_SIZE = 4;\nconst PNG_CHUNK_LENGTH_OFFSET = 0;\nconst PNG_CHUNK_TYPE_OFFSET = PNG_CHUNK_LENGTH_SIZE;\nconst PNG_CHUNK_DATA_OFFSET = PNG_CHUNK_LENGTH_SIZE + PNG_CHUNK_TYPE_SIZE;\nconst PNG_XMP_PREFIX = 'XML:com.adobe.xmp\\x00';\n\nfunction isPngFile(dataView) {\n return getStringFromDataView(dataView, 0, PNG_ID.length) === PNG_ID;\n}\n\nfunction findPngOffsets(dataView) {\n const PNG_CRC_SIZE = 4;\n\n const offsets = {\n hasAppMarkers: false\n };\n\n let offset = PNG_ID.length;\n\n while (offset + PNG_CHUNK_LENGTH_SIZE + PNG_CHUNK_TYPE_SIZE <= dataView.byteLength) {\n if (Constants.USE_PNG_FILE && isPngImageHeaderChunk(dataView, offset)) {\n offsets.hasAppMarkers = true;\n offsets.pngHeaderOffset = offset + PNG_CHUNK_DATA_OFFSET;\n } else if (Constants.USE_XMP && isPngXmpChunk(dataView, offset)) {\n const dataOffset = getPngXmpDataOffset(dataView, offset);\n if (dataOffset !== undefined) {\n offsets.hasAppMarkers = true;\n offsets.xmpChunks = [{\n dataOffset,\n length: dataView.getUint32(offset + PNG_CHUNK_LENGTH_OFFSET) - (dataOffset - (offset + PNG_CHUNK_DATA_OFFSET))\n }];\n }\n }\n\n offset += dataView.getUint32(offset + PNG_CHUNK_LENGTH_OFFSET)\n + PNG_CHUNK_LENGTH_SIZE\n + PNG_CHUNK_TYPE_SIZE\n + PNG_CRC_SIZE;\n }\n\n return offsets;\n}\n\nfunction isPngImageHeaderChunk(dataView, offset) {\n const PNG_CHUNK_TYPE_IMAGE_HEADER = 'IHDR';\n return getStringFromDataView(dataView, offset + PNG_CHUNK_TYPE_OFFSET, PNG_CHUNK_TYPE_SIZE) === PNG_CHUNK_TYPE_IMAGE_HEADER;\n}\n\nfunction isPngXmpChunk(dataView, offset) {\n const PNG_CHUNK_TYPE_INTERNATIONAL_TEXT = 'iTXt';\n return (getStringFromDataView(dataView, offset + PNG_CHUNK_TYPE_OFFSET, PNG_CHUNK_TYPE_SIZE) === PNG_CHUNK_TYPE_INTERNATIONAL_TEXT)\n && (getStringFromDataView(dataView, offset + PNG_CHUNK_DATA_OFFSET, PNG_XMP_PREFIX.length) === PNG_XMP_PREFIX);\n}\n\nfunction getPngXmpDataOffset(dataView, offset) {\n const COMPRESSION_FLAG_SIZE = 1;\n const COMPRESSION_METHOD_SIZE = 1;\n\n offset += PNG_CHUNK_DATA_OFFSET + PNG_XMP_PREFIX.length + COMPRESSION_FLAG_SIZE + COMPRESSION_METHOD_SIZE;\n\n let numberOfNullSeparators = 0;\n while (numberOfNullSeparators < 2 && offset < dataView.byteLength) {\n if (dataView.getUint8(offset) === 0x00) {\n numberOfNullSeparators++;\n }\n offset++;\n }\n if (numberOfNullSeparators < 2) {\n return undefined;\n }\n return offset;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport ByteOrder from './byte-order.js';\nimport Constants from './constants.js';\n\nexport default {\n isTiffFile,\n findTiffOffsets\n};\n\nfunction isTiffFile(dataView) {\n const MIN_TIFF_DATA_BUFFER_LENGTH = 4;\n\n return (dataView.byteLength >= MIN_TIFF_DATA_BUFFER_LENGTH) && hasTiffMarker(dataView);\n}\n\nfunction hasTiffMarker(dataView) {\n const TIFF_ID = 0x2a;\n const TIFF_ID_OFFSET = 2;\n\n const littleEndian = dataView.getUint16(0) === ByteOrder.LITTLE_ENDIAN;\n return dataView.getUint16(TIFF_ID_OFFSET, littleEndian) === TIFF_ID;\n}\n\nfunction findTiffOffsets() {\n const TIFF_FILE_HEADER_OFFSET = 0;\n\n if (Constants.USE_EXIF) {\n return {\n hasAppMarkers: true,\n tiffHeaderOffset: TIFF_FILE_HEADER_OFFSET\n };\n }\n return {};\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView} from './utils.js';\nimport Constants from './constants.js';\n\nexport default {\n isWebpFile,\n findOffsets\n};\n\nfunction isWebpFile(dataView) {\n const RIFF_ID_OFFSET = 0;\n const RIFF_ID = 'RIFF';\n const WEBP_MARKER_OFFSET = 8;\n const WEBP_MARKER = 'WEBP';\n\n return getStringFromDataView(dataView, RIFF_ID_OFFSET, RIFF_ID.length) === RIFF_ID\n && getStringFromDataView(dataView, WEBP_MARKER_OFFSET, WEBP_MARKER.length) === WEBP_MARKER;\n}\n\nfunction findOffsets(dataView) {\n const SUB_CHUNK_START_OFFSET = 12;\n const CHUNK_SIZE_OFFSET = 4;\n const EXIF_IDENTIFIER = 'Exif\\x00\\x00';\n const CHUNK_HEADER_SIZE = 8;\n\n let offset = SUB_CHUNK_START_OFFSET;\n let hasAppMarkers = false;\n let tiffHeaderOffset;\n let xmpChunks;\n let iccChunks;\n\n while (offset + CHUNK_HEADER_SIZE < dataView.byteLength) {\n const chunkId = getStringFromDataView(dataView, offset, 4);\n const chunkSize = dataView.getUint32(offset + CHUNK_SIZE_OFFSET, true);\n\n if (Constants.USE_EXIF && (chunkId === 'EXIF')) {\n hasAppMarkers = true;\n if (getStringFromDataView(dataView, offset + CHUNK_HEADER_SIZE, EXIF_IDENTIFIER.length) === EXIF_IDENTIFIER) {\n tiffHeaderOffset = offset + CHUNK_HEADER_SIZE + EXIF_IDENTIFIER.length;\n } else {\n tiffHeaderOffset = offset + CHUNK_HEADER_SIZE;\n }\n } else if (Constants.USE_XMP && (chunkId === 'XMP ')) {\n hasAppMarkers = true;\n xmpChunks = [{\n dataOffset: offset + CHUNK_HEADER_SIZE,\n length: chunkSize\n }];\n } else if (Constants.USE_ICC && (chunkId === 'ICCP')) {\n hasAppMarkers = true;\n iccChunks = [{\n offset: offset + CHUNK_HEADER_SIZE,\n length: chunkSize,\n chunkNumber: 1,\n chunksTotal: 1\n }];\n }\n\n offset += CHUNK_HEADER_SIZE + (chunkSize % 2 === 0 ? chunkSize : chunkSize + 1);\n }\n\n return {\n hasAppMarkers,\n tiffHeaderOffset,\n xmpChunks,\n iccChunks\n };\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport Constants from './constants.js';\nimport Tiff from './image-header-tiff.js';\nimport Jpeg from './image-header-jpeg.js';\nimport Png from './image-header-png.js';\nimport Heic from './image-header-heic.js';\nimport Webp from './image-header-webp.js';\n\nexport default {\n parseAppMarkers\n};\n\nfunction parseAppMarkers(dataView) {\n if (Constants.USE_TIFF && Tiff.isTiffFile(dataView)) {\n return Tiff.findTiffOffsets();\n }\n\n if (Constants.USE_JPEG && Jpeg.isJpegFile(dataView)) {\n return Jpeg.findJpegOffsets(dataView);\n }\n\n if (Constants.USE_PNG && Png.isPngFile(dataView)) {\n return Png.findPngOffsets(dataView);\n }\n\n if (Constants.USE_HEIC && Heic.isHeicFile(dataView)) {\n return Heic.findHeicOffsets(dataView);\n }\n\n if (Constants.USE_WEBP && Webp.isWebpFile(dataView)) {\n return Webp.findOffsets(dataView);\n }\n\n throw new Error('Invalid image format');\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringValue} from './tag-names-utils.js';\n\nexport default {\n 'iptc': {\n 0x0100: {\n 'name': 'Model Version',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x0105: {\n 'name': 'Destination',\n 'repeatable': true\n },\n 0x0114: {\n 'name': 'File Format',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x0116: {\n 'name': 'File Format Version',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x011e: 'Service Identifier',\n 0x0128: 'Envelope Number',\n 0x0132: 'Product ID',\n 0x013c: 'Envelope Priority',\n 0x0146: {\n 'name': 'Date Sent',\n 'description': getCreationDate\n },\n 0x0150: {\n 'name': 'Time Sent',\n 'description': getCreationTime\n },\n 0x015a: {\n 'name': 'Coded Character Set',\n 'description': getEncodingName,\n 'encoding_name': getEncodingName,\n },\n 0x0164: 'UNO',\n 0x0178: {\n 'name': 'ARM Identifier',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x017a: {\n 'name': 'ARM Version',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x0200: {\n 'name': 'Record Version',\n 'description': (value) => {\n return ((value[0] << 8) + value[1]).toString();\n }\n },\n 0x0203: 'Object Type Reference',\n 0x0204: 'Object Attribute Reference',\n 0x0205: 'Object Name',\n 0x0207: 'Edit Status',\n 0x0208: {\n 'name': 'Editorial Update',\n 'description': (value) => {\n if (getStringValue(value) === '01') {\n return 'Additional Language';\n }\n return 'Unknown';\n }\n },\n 0x020a: 'Urgency',\n 0x020c: {\n 'name': 'Subject Reference',\n 'repeatable': true,\n 'description': (value) => {\n const parts = getStringValue(value).split(':');\n return parts[2] + (parts[3] ? '/' + parts[3] : '') + (parts[4] ? '/' + parts[4] : '');\n }\n },\n 0x020f: 'Category',\n 0x0214: {\n 'name': 'Supplemental Category',\n 'repeatable': true\n },\n 0x0216: 'Fixture Identifier',\n 0x0219: {\n 'name': 'Keywords',\n 'repeatable': true\n },\n 0x021a: {\n 'name': 'Content Location Code',\n 'repeatable': true\n },\n 0x021b: {\n 'name': 'Content Location Name',\n 'repeatable': true\n },\n 0x021e: 'Release Date',\n 0x0223: 'Release Time',\n 0x0225: 'Expiration Date',\n 0x0226: 'Expiration Time',\n 0x0228: 'Special Instructions',\n 0x022a: {\n 'name': 'Action Advised',\n 'description': (value) => {\n const string = getStringValue(value);\n if (string === '01') {\n return 'Object Kill';\n } else if (string === '02') {\n return 'Object Replace';\n } else if (string === '03') {\n return 'Object Append';\n } else if (string === '04') {\n return 'Object Reference';\n }\n return 'Unknown';\n }\n },\n 0x022d: {\n 'name': 'Reference Service',\n 'repeatable': true\n },\n 0x022f: {\n 'name': 'Reference Date',\n 'repeatable': true\n },\n 0x0232: {\n 'name': 'Reference Number',\n 'repeatable': true\n },\n 0x0237: {\n 'name': 'Date Created',\n 'description': getCreationDate\n },\n 0x023c: {\n 'name': 'Time Created',\n 'description': getCreationTime\n },\n 0x023e: {\n 'name': 'Digital Creation Date',\n 'description': getCreationDate\n },\n 0x023f: {\n 'name': 'Digital Creation Time',\n 'description': getCreationTime\n },\n 0x0241: 'Originating Program',\n 0x0246: 'Program Version',\n 0x024b: {\n 'name': 'Object Cycle',\n 'description': (value) => {\n const string = getStringValue(value);\n if (string === 'a') {\n return 'morning';\n } else if (string === 'p') {\n return 'evening';\n } else if (string === 'b') {\n return 'both';\n }\n return 'Unknown';\n }\n },\n 0x0250: {\n 'name': 'By-line',\n 'repeatable': true\n },\n 0x0255: {\n 'name': 'By-line Title',\n 'repeatable': true\n },\n 0x025a: 'City',\n 0x025c: 'Sub-location',\n 0x025f: 'Province/State',\n 0x0264: 'Country/Primary Location Code',\n 0x0265: 'Country/Primary Location Name',\n 0x0267: 'Original Transmission Reference',\n 0x0269: 'Headline',\n 0x026e: 'Credit',\n 0x0273: 'Source',\n 0x0274: 'Copyright Notice',\n 0x0276: {\n 'name': 'Contact',\n 'repeatable': true\n },\n 0x0278: 'Caption/Abstract',\n 0x027a: {\n 'name': 'Writer/Editor',\n 'repeatable': true\n },\n 0x027d: {\n 'name': 'Rasterized Caption',\n 'description': (value) => value\n },\n 0x0282: 'Image Type',\n 0x0283: {\n 'name': 'Image Orientation',\n 'description': (value) => {\n const string = getStringValue(value);\n if (string === 'P') {\n return 'Portrait';\n } else if (string === 'L') {\n return 'Landscape';\n } else if (string === 'S') {\n return 'Square';\n }\n return 'Unknown';\n }\n },\n 0x0287: 'Language Identifier',\n 0x0296: {\n 'name': 'Audio Type',\n 'description': (value) => {\n const stringValue = getStringValue(value);\n const character0 = stringValue.charAt(0);\n const character1 = stringValue.charAt(1);\n let description = '';\n\n if (character0 === '1') {\n description += 'Mono';\n } else if (character0 === '2') {\n description += 'Stereo';\n }\n\n if (character1 === 'A') {\n description += ', actuality';\n } else if (character1 === 'C') {\n description += ', question and answer session';\n } else if (character1 === 'M') {\n description += ', music, transmitted by itself';\n } else if (character1 === 'Q') {\n description += ', response to a question';\n } else if (character1 === 'R') {\n description += ', raw sound';\n } else if (character1 === 'S') {\n description += ', scener';\n } else if (character1 === 'V') {\n description += ', voicer';\n } else if (character1 === 'W') {\n description += ', wrap';\n }\n\n if (description !== '') {\n return description;\n }\n return stringValue;\n }\n },\n 0x0297: {\n 'name': 'Audio Sampling Rate',\n 'description': (value) => parseInt(getStringValue(value), 10) + ' Hz'\n },\n 0x0298: {\n 'name': 'Audio Sampling Resolution',\n 'description': (value) => {\n const bits = parseInt(getStringValue(value), 10);\n return bits + (bits === 1 ? ' bit' : ' bits');\n }\n },\n 0x0299: {\n 'name': 'Audio Duration',\n 'description': (value) => {\n const duration = getStringValue(value);\n if (duration.length >= 6) {\n return duration.substr(0, 2) + ':' + duration.substr(2, 2) + ':' + duration.substr(4, 2);\n }\n return duration;\n }\n },\n 0x029a: 'Audio Outcue',\n 0x02ba: 'Short Document ID',\n 0x02bb: 'Unique Document ID',\n 0x02bc: 'Owner ID',\n 0x02c8: {\n 'name': (value) => {\n if (value.length === 2) {\n return 'ObjectData Preview File Format';\n }\n return 'Record 2 destination';\n },\n 'description': (value) => {\n if (value.length === 2) {\n const intValue = (value[0] << 8) + value[1];\n if (intValue === 0) {\n return 'No ObjectData';\n } else if (intValue === 1) {\n return 'IPTC-NAA Digital Newsphoto Parameter Record';\n } else if (intValue === 2) {\n return 'IPTC7901 Recommended Message Format';\n } else if (intValue === 3) {\n return 'Tagged Image File Format (Adobe/Aldus Image data)';\n } else if (intValue === 4) {\n return 'Illustrator (Adobe Graphics data)';\n } else if (intValue === 5) {\n return 'AppleSingle (Apple Computer Inc)';\n } else if (intValue === 6) {\n return 'NAA 89-3 (ANPA 1312)';\n } else if (intValue === 7) {\n return 'MacBinary II';\n } else if (intValue === 8) {\n return 'IPTC Unstructured Character Oriented File Format (UCOFF)';\n } else if (intValue === 9) {\n return 'United Press International ANPA 1312 variant';\n } else if (intValue === 10) {\n return 'United Press International Down-Load Message';\n } else if (intValue === 11) {\n return 'JPEG File Interchange (JFIF)';\n } else if (intValue === 12) {\n return 'Photo-CD Image-Pac (Eastman Kodak)';\n } else if (intValue === 13) {\n return 'Microsoft Bit Mapped Graphics File [*.BMP]';\n } else if (intValue === 14) {\n return 'Digital Audio File [*.WAV] (Microsoft & Creative Labs)';\n } else if (intValue === 15) {\n return 'Audio plus Moving Video [*.AVI] (Microsoft)';\n } else if (intValue === 16) {\n return 'PC DOS/Windows Executable Files [*.COM][*.EXE]';\n } else if (intValue === 17) {\n return 'Compressed Binary File [*.ZIP] (PKWare Inc)';\n } else if (intValue === 18) {\n return 'Audio Interchange File Format AIFF (Apple Computer Inc)';\n } else if (intValue === 19) {\n return 'RIFF Wave (Microsoft Corporation)';\n } else if (intValue === 20) {\n return 'Freehand (Macromedia/Aldus)';\n } else if (intValue === 21) {\n return 'Hypertext Markup Language \"HTML\" (The Internet Society)';\n } else if (intValue === 22) {\n return 'MPEG 2 Audio Layer 2 (Musicom), ISO/IEC';\n } else if (intValue === 23) {\n return 'MPEG 2 Audio Layer 3, ISO/IEC';\n } else if (intValue === 24) {\n return 'Portable Document File (*.PDF) Adobe';\n } else if (intValue === 25) {\n return 'News Industry Text Format (NITF)';\n } else if (intValue === 26) {\n return 'Tape Archive (*.TAR)';\n } else if (intValue === 27) {\n return 'Tidningarnas Telegrambyrå NITF version (TTNITF DTD)';\n } else if (intValue === 28) {\n return 'Ritzaus Bureau NITF version (RBNITF DTD)';\n } else if (intValue === 29) {\n return 'Corel Draw [*.CDR]';\n }\n return `Unknown format ${intValue}`;\n }\n return getStringValue(value);\n }\n },\n 0x02c9: {\n 'name': 'ObjectData Preview File Format Version',\n 'description': (value, tags) => {\n // Format ID, Version ID, Version Description\n const formatVersions = {\n '00': {'00': '1'},\n '01': {'01': '1', '02': '2', '03': '3', '04': '4'},\n '02': {'04': '4'},\n '03': {'01': '5.0', '02': '6.0'},\n '04': {'01': '1.40'},\n '05': {'01': '2'},\n '06': {'01': '1'},\n '11': {'01': '1.02'},\n '20': {'01': '3.1', '02': '4.0', '03': '5.0', '04': '5.5'},\n '21': {'02': '2.0'}\n };\n const stringValue = getStringValue(value);\n\n if (tags['ObjectData Preview File Format']) {\n const objectDataPreviewFileFormat = getStringValue(tags['ObjectData Preview File Format'].value);\n if (formatVersions[objectDataPreviewFileFormat]\n && formatVersions[objectDataPreviewFileFormat][stringValue]) {\n return formatVersions[objectDataPreviewFileFormat][stringValue];\n }\n }\n\n return stringValue;\n }\n },\n 0x02ca: 'ObjectData Preview Data',\n 0x070a: {\n 'name': 'Size Mode',\n 'description': (value) => {\n return (value[0]).toString();\n }\n },\n 0x0714: {\n 'name': 'Max Subfile Size',\n 'description': (value) => {\n let n = 0;\n for (let i = 0; i < value.length; i++) {\n n = (n << 8) + value[i];\n }\n return n.toString();\n }\n },\n 0x075a: {\n 'name': 'ObjectData Size Announced',\n 'description': (value) => {\n let n = 0;\n for (let i = 0; i < value.length; i++) {\n n = (n << 8) + value[i];\n }\n return n.toString();\n }\n },\n 0x075f: {\n 'name': 'Maximum ObjectData Size',\n 'description': (value) => {\n let n = 0;\n for (let i = 0; i < value.length; i++) {\n n = (n << 8) + value[i];\n }\n return n.toString();\n }\n }\n }\n};\n\nfunction getCreationDate(value) {\n const date = getStringValue(value);\n\n if (date.length >= 8) {\n return date.substr(0, 4) + '-' + date.substr(4, 2) + '-' + date.substr(6, 2);\n }\n\n return date;\n}\n\nfunction getCreationTime(value) {\n const time = getStringValue(value);\n let parsedTime = time;\n\n if (time.length >= 6) {\n parsedTime = time.substr(0, 2) + ':' + time.substr(2, 2) + ':' + time.substr(4, 2);\n if (time.length === 11) {\n parsedTime += time.substr(6, 1) + time.substr(7, 2) + ':' + time.substr(9, 2);\n }\n }\n\n return parsedTime;\n}\n\nfunction getEncodingName(value) {\n const string = getStringValue(value);\n if (string === '\\x1b%G') {\n return 'UTF-8';\n } else if (string === '\\x1b%5') {\n return 'Windows-1252';\n } else if (string === '\\x1b%/G') {\n return 'UTF-8 Level 1';\n } else if (string === '\\x1b%/H') {\n return 'UTF-8 Level 2';\n } else if (string === '\\x1b%/I') {\n return 'UTF-8 Level 3';\n } else if (string === '\\x1B/A') {\n return 'ISO-8859-1';\n } else if (string === '\\x1B/B') {\n return 'ISO-8859-2';\n } else if (string === '\\x1B/C') {\n return 'ISO-8859-3';\n } else if (string === '\\x1B/D') {\n return 'ISO-8859-4';\n } else if (string === '\\x1B/@') {\n return 'ISO-8859-5';\n } else if (string === '\\x1B/G') {\n return 'ISO-8859-6';\n } else if (string === '\\x1B/F') {\n return 'ISO-8859-7';\n } else if (string === '\\x1B/H') {\n return 'ISO-8859-8';\n }\n return 'Unknown';\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport IptcTagNames from './iptc-tag-names.js';\nimport TagDecoder from './tag-decoder.js';\n\nconst BYTES_8BIM = 0x3842494d;\nconst BYTES_8BIM_SIZE = 4;\nconst RESOURCE_BLOCK_HEADER_SIZE = BYTES_8BIM_SIZE + 8;\nconst NAA_RESOURCE_BLOCK_TYPE = 0x0404;\nconst TAG_HEADER_SIZE = 5;\n\nexport default {\n read\n};\n\nfunction read(dataView, dataOffset) {\n try {\n if (Array.isArray(dataView)) {\n return parseTags(new DataView(Uint8Array.from(dataView).buffer), {size: dataView.length}, 0);\n }\n const {naaBlock, dataOffset: newDataOffset} = getNaaResourceBlock(dataView, dataOffset);\n return parseTags(dataView, naaBlock, newDataOffset);\n } catch (error) {\n return {};\n }\n}\n\nfunction getNaaResourceBlock(dataView, dataOffset) {\n while (dataOffset + RESOURCE_BLOCK_HEADER_SIZE <= dataView.byteLength) {\n const resourceBlock = getResourceBlock(dataView, dataOffset);\n if (isNaaResourceBlock(resourceBlock)) {\n return {naaBlock: resourceBlock, dataOffset: dataOffset + RESOURCE_BLOCK_HEADER_SIZE};\n }\n dataOffset += RESOURCE_BLOCK_HEADER_SIZE + resourceBlock.size + getBlockPadding(resourceBlock);\n }\n throw new Error('No IPTC NAA resource block.');\n}\n\nfunction getResourceBlock(dataView, dataOffset) {\n const RESOURCE_BLOCK_SIZE_OFFSET = 10;\n\n if (dataView.getUint32(dataOffset, false) !== BYTES_8BIM) {\n throw new Error('Not an IPTC resource block.');\n }\n\n return {\n type: dataView.getUint16(dataOffset + BYTES_8BIM_SIZE),\n size: dataView.getUint16(dataOffset + RESOURCE_BLOCK_SIZE_OFFSET)\n };\n}\n\nfunction isNaaResourceBlock(resourceBlock) {\n return resourceBlock.type === NAA_RESOURCE_BLOCK_TYPE;\n}\n\nfunction getBlockPadding(resourceBlock) {\n if (resourceBlock.size % 2 !== 0) {\n return 1;\n }\n return 0;\n}\n\nfunction parseTags(dataView, naaBlock, dataOffset) {\n const tags = {};\n let encoding = undefined;\n\n const endOfBlockOffset = dataOffset + naaBlock['size'];\n\n while ((dataOffset < endOfBlockOffset) && (dataOffset < dataView.byteLength)) {\n const {tag, tagSize} = readTag(dataView, dataOffset, tags, encoding);\n\n if (tag === null) {\n break;\n }\n\n if ('encoding' in tag) {\n encoding = tag.encoding;\n }\n\n if ((tags[tag.name] === undefined) || (tag['repeatable'] === undefined)) {\n tags[tag.name] = {\n id: tag.id,\n value: tag.value,\n description: tag.description\n };\n } else {\n if (!(tags[tag.name] instanceof Array)) {\n tags[tag.name] = [{\n id: tags[tag.name].id,\n value: tags[tag.name].value,\n description: tags[tag.name].description\n }];\n }\n tags[tag.name].push({\n id: tag.id,\n value: tag.value,\n description: tag.description\n });\n }\n\n dataOffset += TAG_HEADER_SIZE + tagSize;\n }\n\n return tags;\n}\n\nfunction readTag(dataView, dataOffset, tags, encoding) {\n const TAG_CODE_OFFSET = 1;\n const TAG_SIZE_OFFSET = 3;\n\n if (leadByteIsMissing(dataView, dataOffset)) {\n return {tag: null, tagSize: 0};\n }\n\n const tagCode = dataView.getUint16(dataOffset + TAG_CODE_OFFSET);\n const tagSize = dataView.getUint16(dataOffset + TAG_SIZE_OFFSET);\n const tagValue = getTagValue(dataView, dataOffset + TAG_HEADER_SIZE, tagSize);\n\n const tag = {\n id: tagCode,\n name: getTagName(IptcTagNames['iptc'][tagCode], tagCode, tagValue),\n value: tagValue,\n description: getTagDescription(IptcTagNames['iptc'][tagCode], tagValue, tags, encoding)\n };\n if (tagIsRepeatable(tagCode)) {\n tag['repeatable'] = true;\n }\n if (tagContainsEncoding(tagCode)) {\n tag['encoding'] = IptcTagNames['iptc'][tagCode]['encoding_name'](tagValue);\n }\n\n return {tag, tagSize};\n}\n\nfunction leadByteIsMissing(dataView, dataOffset) {\n const TAG_LEAD_BYTE = 0x1c;\n return dataView.getUint8(dataOffset) !== TAG_LEAD_BYTE;\n}\n\nfunction getTagValue(dataView, offset, size) {\n const value = [];\n\n for (let valueIndex = 0; valueIndex < size; valueIndex++) {\n value.push(dataView.getUint8(offset + valueIndex));\n }\n\n return value;\n}\n\nfunction getTagName(tag, tagCode, tagValue) {\n if (!tag) {\n return `undefined-${tagCode}`;\n }\n if (tagIsName(tag)) {\n return tag;\n }\n if (hasDynamicName(tag)) {\n return tag['name'](tagValue);\n }\n return tag['name'];\n}\n\nfunction tagIsName(tag) {\n return typeof tag === 'string';\n}\n\nfunction hasDynamicName(tag) {\n return typeof (tag['name']) === 'function';\n}\n\nfunction getTagDescription(tag, tagValue, tags, encoding) {\n if (hasDescriptionProperty(tag)) {\n try {\n return tag['description'](tagValue, tags);\n } catch (error) {\n // Fall through to next handler.\n }\n }\n if (tagValueIsText(tag, tagValue)) {\n return TagDecoder.decode(encoding, tagValue);\n }\n return tagValue;\n}\n\nfunction tagValueIsText(tag, tagValue) {\n return tag && tagValue instanceof Array;\n}\n\nfunction hasDescriptionProperty(tag) {\n return tag && tag['description'] !== undefined;\n}\n\nfunction tagIsRepeatable(tagCode) {\n return IptcTagNames['iptc'][tagCode] && IptcTagNames['iptc'][tagCode]['repeatable'];\n}\n\nfunction tagContainsEncoding(tagCode) {\n return IptcTagNames['iptc'][tagCode] && IptcTagNames['iptc'][tagCode]['encoding_name'] !== undefined;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport Types from './types.js';\n\nexport default {\n read\n};\n\nfunction read(dataView, fileDataOffset) {\n return {\n 'Image Width': getImageWidth(dataView, fileDataOffset),\n 'Image Height': getImageHeight(dataView, fileDataOffset),\n 'Bit Depth': getBitDepth(dataView, fileDataOffset),\n 'Color Type': getColorType(dataView, fileDataOffset),\n 'Compression': getCompression(dataView, fileDataOffset),\n 'Filter': getFilter(dataView, fileDataOffset),\n 'Interlace': getInterlace(dataView, fileDataOffset)\n };\n}\n\nfunction getImageWidth(dataView, fileDataOffset) {\n const OFFSET = 0;\n const SIZE = 4;\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getLongAt(dataView, fileDataOffset);\n return {\n value,\n description: `${value}px`\n };\n}\n\nfunction getImageHeight(dataView, fileDataOffset) {\n const OFFSET = 4;\n const SIZE = 4;\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getLongAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: `${value}px`\n };\n}\n\nfunction getBitDepth(dataView, fileDataOffset) {\n const OFFSET = 8;\n const SIZE = 1;\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: `${value}`\n };\n}\n\nfunction getColorType(dataView, fileDataOffset) {\n const OFFSET = 9;\n const SIZE = 1;\n const COLOR_TYPES = {\n 0: 'Grayscale',\n 2: 'RGB',\n 3: 'Palette',\n 4: 'Grayscale with Alpha',\n 6: 'RGB with Alpha'\n };\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: COLOR_TYPES[value] || 'Unknown'\n };\n}\n\nfunction getCompression(dataView, fileDataOffset) {\n const OFFSET = 10;\n const SIZE = 1;\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: value === 0 ? 'Deflate/Inflate' : 'Unknown'\n };\n}\n\nfunction getFilter(dataView, fileDataOffset) {\n const OFFSET = 11;\n const SIZE = 1;\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: value === 0 ? 'Adaptive' : 'Unknown'\n };\n}\n\nfunction getInterlace(dataView, fileDataOffset) {\n const OFFSET = 12;\n const SIZE = 1;\n const INTERLACE_TYPES = {\n 0: 'Noninterlaced',\n 1: 'Adam7 Interlace'\n };\n\n if (fileDataOffset + OFFSET + SIZE > dataView.byteLength) {\n return undefined;\n }\n\n const value = Types.getByteAt(dataView, fileDataOffset + OFFSET);\n return {\n value,\n description: INTERLACE_TYPES[value] || 'Unknown'\n };\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport TextDecoder from './text-decoder.js';\n\nconst TAG_HEADER_SIZE = 5;\n\nexport default {\n decode,\n TAG_HEADER_SIZE\n};\n\nfunction decode(encoding, tagValue) {\n const Decoder = TextDecoder.get();\n if ((typeof Decoder !== 'undefined') && (encoding !== undefined)) {\n try {\n return new Decoder(encoding).decode(Uint8Array.from(tagValue));\n } catch (error) {\n // Pass through and fall back to ASCII decoding.\n }\n }\n\n const stringValue = tagValue.map((charCode) => String.fromCharCode(charCode)).join('');\n return decodeAsciiValue(stringValue);\n}\n\nfunction decodeAsciiValue(asciiValue) {\n try {\n return decodeURIComponent(escape(asciiValue));\n } catch (error) {\n return asciiValue;\n }\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport TagNamesCommon from './tag-names-common.js';\n\nexport default {\n 0x000b: 'ProcessingSoftware',\n 0x00fe: {\n name: 'SubfileType',\n description: (value) => ({\n 0x0: 'Full-resolution image',\n 0x1: 'Reduced-resolution image',\n 0x2: 'Single page of multi-page image',\n 0x3: 'Single page of multi-page reduced-resolution image',\n 0x4: 'Transparency mask',\n 0x5: 'Transparency mask of reduced-resolution image',\n 0x6: 'Transparency mask of multi-page image',\n 0x7: 'Transparency mask of reduced-resolution multi-page image',\n 0x10001: 'Alternate reduced-resolution image',\n 0xffffffff: 'Invalid'\n })[value] || 'Unknown'\n },\n 0x00ff: {\n name: 'OldSubfileType',\n description: (value) => ({\n 0: 'Full-resolution image',\n 1: 'Reduced-resolution image',\n 2: 'Single page of multi-page image'\n })[value] || 'Unknown'\n },\n 0x0100: 'ImageWidth',\n 0x0101: 'ImageLength',\n 0x0102: 'BitsPerSample',\n 0x0103: 'Compression',\n 0x0106: 'PhotometricInterpretation',\n 0x0107: {\n name: 'Thresholding',\n description: (value) => ({\n 1: 'No dithering or halftoning',\n 2: 'Ordered dither or halfton',\n 3: 'Randomized dither'\n })[value] || 'Unknown'\n },\n 0x0108: 'CellWidth',\n 0x0109: 'CellLength',\n 0x010a: {\n name: 'FillOrder',\n description: (value) => ({\n 1: 'Normal',\n 2: 'Reversed'\n })[value] || 'Unknown'\n },\n 0x010d: 'DocumentName',\n 0x010e: 'ImageDescription',\n 0x010f: 'Make',\n 0x0110: 'Model',\n 0x0111: 'StripOffsets',\n 0x0112: {\n name: 'Orientation',\n description: (value) => {\n if (value === 1) {\n return 'top-left';\n }\n if (value === 2) {\n return 'top-right';\n }\n if (value === 3) {\n return 'bottom-right';\n }\n if (value === 4) {\n return 'bottom-left';\n }\n if (value === 5) {\n return 'left-top';\n }\n if (value === 6) {\n return 'right-top';\n }\n if (value === 7) {\n return 'right-bottom';\n }\n if (value === 8) {\n return 'left-bottom';\n }\n return 'Undefined';\n }\n },\n 0x0115: 'SamplesPerPixel',\n 0x0116: 'RowsPerStrip',\n 0x0117: 'StripByteCounts',\n 0x0118: 'MinSampleValue',\n 0x0119: 'MaxSampleValue',\n 0x011a: {\n 'name': 'XResolution',\n 'description': (value) => {\n return '' + Math.round(value[0] / value[1]);\n }\n },\n 0x011b: {\n 'name': 'YResolution',\n 'description': (value) => {\n return '' + Math.round(value[0] / value[1]);\n }\n },\n 0x011c: 'PlanarConfiguration',\n 0x011d: 'PageName',\n 0x011e: {\n 'name': 'XPosition',\n 'description': (value) => {\n return '' + Math.round(value[0] / value[1]);\n }\n },\n 0x011f: {\n 'name': 'YPosition',\n 'description': (value) => {\n return '' + Math.round(value[0] / value[1]);\n }\n },\n 0x0122: {\n name: 'GrayResponseUnit',\n description: (value) => ({\n 1: '0.1',\n 2: '0.001',\n 3: '0.0001',\n 4: '1e-05',\n 5: '1e-06'\n })[value] || 'Unknown'\n },\n 0x0128: {\n name: 'ResolutionUnit',\n description: (value) => {\n if (value === 2) {\n return 'inches';\n }\n if (value === 3) {\n return 'centimeters';\n }\n return 'Unknown';\n }\n },\n 0x0129: 'PageNumber',\n 0x012d: 'TransferFunction',\n 0x0131: 'Software',\n 0x0132: 'DateTime',\n 0x013b: 'Artist',\n 0x013c: 'HostComputer',\n 0x013d: 'Predictor',\n 0x013e: {\n 'name': 'WhitePoint',\n 'description': (values) => {\n return values.map((value) => `${value[0]}/${value[1]}`).join(', ');\n }\n },\n 0x013f: {\n 'name': 'PrimaryChromaticities',\n 'description': (values) => {\n return values.map((value) => `${value[0]}/${value[1]}`).join(', ');\n }\n },\n 0x0141: 'HalftoneHints',\n 0x0142: 'TileWidth',\n 0x0143: 'TileLength',\n 0x014a: 'A100DataOffset',\n 0x014c: {\n name: 'InkSet',\n description: (value) => ({\n 1: 'CMYK',\n 2: 'Not CMYK'\n })[value] || 'Unknown'\n },\n 0x0151: 'TargetPrinter',\n 0x0152: {\n name: 'ExtraSamples',\n description: (value) => ({\n 0: 'Unspecified',\n 1: 'Associated Alpha',\n 2: 'Unassociated Alpha',\n })[value] || 'Unknown'\n },\n 0x0153: {\n name: 'SampleFormat',\n description: (value) => {\n const formats = {\n 1: 'Unsigned',\n 2: 'Signed',\n 3: 'Float',\n 4: 'Undefined',\n 5: 'Complex int',\n 6: 'Complex float',\n };\n if (!Array.isArray(value)) {\n return 'Unknown';\n }\n return value.map((sample) => formats[sample] || 'Unknown').join(', ');\n }\n },\n 0x0201: 'JPEGInterchangeFormat',\n 0x0202: 'JPEGInterchangeFormatLength',\n 0x0211: {\n 'name': 'YCbCrCoefficients',\n 'description': (values) => {\n return values.map((value) => '' + value[0] / value[1]).join('/');\n }\n },\n 0x0212: 'YCbCrSubSampling',\n 0x0213: {\n name: 'YCbCrPositioning',\n description: (value) => {\n if (value === 1) {\n return 'centered';\n }\n if (value === 2) {\n return 'co-sited';\n }\n return 'undefined ' + value;\n }\n },\n 0x0214: {\n 'name': 'ReferenceBlackWhite',\n 'description': (values) => {\n return values.map((value) => '' + value[0] / value[1]).join(', ');\n }\n },\n 0x02bc: 'ApplicationNotes',\n 0x4746: 'Rating',\n 0x4749: 'RatingPercent',\n 0x8298: {\n name: 'Copyright',\n description: (value) => value.join('; ')\n },\n 0x830e: 'PixelScale',\n 0x83bb: 'IPTC-NAA',\n 0x8480: 'IntergraphMatrix',\n 0x8482: 'ModelTiePoint',\n 0x8546: 'SEMInfo',\n 0x85d8: 'ModelTransform',\n 0x8649: 'PhotoshopSettings',\n 0x8769: 'Exif IFD Pointer',\n 0x8773: 'ICC_Profile',\n 0x87af: 'GeoTiffDirectory',\n 0x87b0: 'GeoTiffDoubleParams',\n 0x87b1: 'GeoTiffAsciiParams',\n 0x8825: 'GPS Info IFD Pointer',\n 0x9c9b: 'XPTitle',\n 0x9c9c: 'XPComment',\n 0x9c9d: 'XPAuthor',\n 0x9c9e: 'XPKeywords',\n 0x9c9f: 'XPSubject',\n 0xa480: 'GDALMetadata',\n 0xa481: 'GDALNoData',\n 0xc4a5: 'PrintIM',\n 0xc613: 'DNGBackwardVersion',\n 0xc614: 'UniqueCameraModel',\n 0xc615: 'LocalizedCameraModel',\n 0xc621: 'ColorMatrix1',\n 0xc622: 'ColorMatrix2',\n 0xc623: 'CameraCalibration1',\n 0xc624: 'CameraCalibration2',\n 0xc625: 'ReductionMatrix1',\n 0xc626: 'ReductionMatrix2',\n 0xc627: 'AnalogBalance',\n 0xc628: 'AsShotNeutral',\n 0xc629: 'AsShotWhiteXY',\n 0xc62a: 'BaselineExposure',\n 0xc62b: 'BaselineNoise',\n 0xc62c: 'BaselineSharpness',\n 0xc62e: 'LinearResponseLimit',\n 0xc62f: 'CameraSerialNumber',\n 0xc630: 'DNGLensInfo',\n 0xc633: 'ShadowScale',\n 0xc635: {\n name: 'MakerNoteSafety',\n description: (value) => ({\n 0: 'Unsafe',\n 1: 'Safe'\n })[value] || 'Unknown'\n },\n 0xc65a: {\n name: 'CalibrationIlluminant1',\n description: TagNamesCommon['LightSource']\n },\n 0xc65b: {\n name: 'CalibrationIlluminant2',\n description: TagNamesCommon['LightSource']\n },\n 0xc65d: 'RawDataUniqueID',\n 0xc68b: 'OriginalRawFileName',\n 0xc68c: 'OriginalRawFileData',\n 0xc68f: 'AsShotICCProfile',\n 0xc690: 'AsShotPreProfileMatrix',\n 0xc691: 'CurrentICCProfile',\n 0xc692: 'CurrentPreProfileMatrix',\n 0xc6bf: 'ColorimetricReference',\n 0xc6c5: 'SRawType',\n 0xc6d2: 'PanasonicTitle',\n 0xc6d3: 'PanasonicTitle2',\n 0xc6f3: 'CameraCalibrationSig',\n 0xc6f4: 'ProfileCalibrationSig',\n 0xc6f5: 'ProfileIFD',\n 0xc6f6: 'AsShotProfileName',\n 0xc6f8: 'ProfileName',\n 0xc6f9: 'ProfileHueSatMapDims',\n 0xc6fa: 'ProfileHueSatMapData1',\n 0xc6fb: 'ProfileHueSatMapData2',\n 0xc6fc: 'ProfileToneCurve',\n 0xc6fd: {\n name: 'ProfileEmbedPolicy',\n description: (value) => ({\n 0: 'Allow Copying',\n 1: 'Embed if Used',\n 2: 'Never Embed',\n 3: 'No Restrictions'\n })[value] || 'Unknown'\n },\n 0xc6fe: 'ProfileCopyright',\n 0xc714: 'ForwardMatrix1',\n 0xc715: 'ForwardMatrix2',\n 0xc716: 'PreviewApplicationName',\n 0xc717: 'PreviewApplicationVersion',\n 0xc718: 'PreviewSettingsName',\n 0xc719: 'PreviewSettingsDigest',\n 0xc71a: {\n name: 'PreviewColorSpace',\n description: (value) => ({\n 1: 'Gray Gamma 2.2',\n 2: 'sRGB',\n 3: 'Adobe RGB',\n 4: 'ProPhoto RGB'\n })[value] || 'Unknown'\n },\n 0xc71b: 'PreviewDateTime',\n 0xc71c: 'RawImageDigest',\n 0xc71d: 'OriginalRawFileDigest',\n 0xc725: 'ProfileLookTableDims',\n 0xc726: 'ProfileLookTableData',\n 0xc763: 'TimeCodes',\n 0xc764: 'FrameRate',\n 0xc772: 'TStop',\n 0xc789: 'ReelName',\n 0xc791: 'OriginalDefaultFinalSize',\n 0xc792: 'OriginalBestQualitySize',\n 0xc793: 'OriginalDefaultCropSize',\n 0xc7a1: 'CameraLabel',\n 0xc7a3: {\n name: 'ProfileHueSatMapEncoding',\n description: (value) => ({\n 0: 'Linear',\n 1: 'sRGB'\n })[value] || 'Unknown'\n },\n 0xc7a4: {\n name: 'ProfileLookTableEncoding',\n description: (value) => ({\n 0: 'Linear',\n 1: 'sRGB'\n })[value] || 'Unknown'\n },\n 0xc7a5: 'BaselineExposureOffset',\n 0xc7a6: {\n name: 'DefaultBlackRender',\n description: (value) => ({\n 0: 'Auto',\n 1: 'None'\n })[value] || 'Unknown'\n },\n 0xc7a7: 'NewRawImageDigest',\n 0xc7a8: 'RawToPreviewGain'\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport default {\n 'LightSource': (value) => {\n if (value === 1) {\n return 'Daylight';\n } else if (value === 2) {\n return 'Fluorescent';\n } else if (value === 3) {\n return 'Tungsten (incandescent light)';\n } else if (value === 4) {\n return 'Flash';\n } else if (value === 9) {\n return 'Fine weather';\n } else if (value === 10) {\n return 'Cloudy weather';\n } else if (value === 11) {\n return 'Shade';\n } else if (value === 12) {\n return 'Daylight fluorescent (D 5700 – 7100K)';\n } else if (value === 13) {\n return 'Day white fluorescent (N 4600 – 5400K)';\n } else if (value === 14) {\n return 'Cool white fluorescent (W 3900 – 4500K)';\n } else if (value === 15) {\n return 'White fluorescent (WW 3200 – 3700K)';\n } else if (value === 17) {\n return 'Standard light A';\n } else if (value === 18) {\n return 'Standard light B';\n } else if (value === 19) {\n return 'Standard light C';\n } else if (value === 20) {\n return 'D55';\n } else if (value === 21) {\n return 'D65';\n } else if (value === 22) {\n return 'D75';\n } else if (value === 23) {\n return 'D50';\n } else if (value === 24) {\n return 'ISO studio tungsten';\n } else if (value === 255) {\n return 'Other light source';\n }\n return 'Unknown';\n }\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringValue, getEncodedString} from './tag-names-utils.js';\nimport TagNamesCommon from './tag-names-common.js';\n\nexport default {\n 0x829a: {\n 'name': 'ExposureTime',\n 'description': (value) => {\n if (value[0] !== 0) {\n return `1/${Math.round(value[1] / value[0])}`;\n }\n return `0/${value[1]}`;\n }\n },\n 0x829d: {\n 'name': 'FNumber',\n 'description': (value) => `f/${value[0] / value[1]}`\n },\n 0x8822: {\n 'name': 'ExposureProgram',\n 'description': (value) => {\n if (value === 0) {\n return 'Undefined';\n } else if (value === 1) {\n return 'Manual';\n } else if (value === 2) {\n return 'Normal program';\n } else if (value === 3) {\n return 'Aperture priority';\n } else if (value === 4) {\n return 'Shutter priority';\n } else if (value === 5) {\n return 'Creative program';\n } else if (value === 6) {\n return 'Action program';\n } else if (value === 7) {\n return 'Portrait mode';\n } else if (value === 8) {\n return 'Landscape mode';\n } else if (value === 9) {\n return 'Bulb';\n }\n return 'Unknown';\n }\n },\n 0x8824: 'SpectralSensitivity',\n 0x8827: 'ISOSpeedRatings',\n 0x8828: {\n 'name': 'OECF',\n 'description': () => '[Raw OECF table data]'\n },\n 0x882a: 'TimeZoneOffset',\n 0x882b: 'SelfTimerMode',\n 0x8830: {\n name: 'SensitivityType',\n description: (value) => ({\n 1: 'Standard Output Sensitivity',\n 2: 'Recommended Exposure Index',\n 3: 'ISO Speed',\n 4: 'Standard Output Sensitivity and Recommended Exposure Index',\n 5: 'Standard Output Sensitivity and ISO Speed',\n 6: 'Recommended Exposure Index and ISO Speed',\n 7: 'Standard Output Sensitivity, Recommended Exposure Index and ISO Speed'\n })[value] || 'Unknown'\n },\n 0x8831: 'StandardOutputSensitivity',\n 0x8832: 'RecommendedExposureIndex',\n 0x8833: 'ISOSpeed',\n 0x8834: 'ISOSpeedLatitudeyyy',\n 0x8835: 'ISOSpeedLatitudezzz',\n 0x9000: {\n 'name': 'ExifVersion',\n 'description': (value) => getStringValue(value)\n },\n 0x9003: 'DateTimeOriginal',\n 0x9004: 'DateTimeDigitized',\n 0x9009: 'GooglePlusUploadCode',\n 0x9010: 'OffsetTime',\n 0x9011: 'OffsetTimeOriginal',\n 0x9012: 'OffsetTimeDigitized',\n 0x9101: {\n 'name': 'ComponentsConfiguration',\n 'description': (value) => {\n return value.map((character) => {\n if (character === 0x31) {\n return 'Y';\n } else if (character === 0x32) {\n return 'Cb';\n } else if (character === 0x33) {\n return 'Cr';\n } else if (character === 0x34) {\n return 'R';\n } else if (character === 0x35) {\n return 'G';\n } else if (character === 0x36) {\n return 'B';\n }\n }).join('');\n }\n },\n 0x9102: 'CompressedBitsPerPixel',\n 0x9201: {\n 'name': 'ShutterSpeedValue',\n 'description': (value) => {\n return `1/${Math.round(Math.pow(2, value[0] / value[1]))}`;\n }\n },\n 0x9202: {\n 'name': 'ApertureValue',\n 'description': (value) => {\n return Math.pow(Math.sqrt(2), value[0] / value[1]).toFixed(2);\n }\n },\n 0x9203: 'BrightnessValue',\n 0x9204: 'ExposureBiasValue',\n 0x9205: {\n 'name': 'MaxApertureValue',\n 'description': (value) => {\n return Math.pow(Math.sqrt(2), value[0] / value[1]).toFixed(2);\n }\n },\n 0x9206: {\n 'name': 'SubjectDistance',\n 'description': (value) => (value[0] / value[1]) + ' m'\n },\n 0x9207: {\n 'name': 'MeteringMode',\n 'description': (value) => {\n if (value === 1) {\n return 'Average';\n } else if (value === 2) {\n return 'CenterWeightedAverage';\n } else if (value === 3) {\n return 'Spot';\n } else if (value === 4) {\n return 'MultiSpot';\n } else if (value === 5) {\n return 'Pattern';\n } else if (value === 6) {\n return 'Partial';\n } else if (value === 255) {\n return 'Other';\n }\n return 'Unknown';\n }\n },\n 0x9208: {\n 'name': 'LightSource',\n description: TagNamesCommon['LightSource']\n },\n 0x9209: {\n 'name': 'Flash',\n 'description': (value) => {\n if (value === 0x00) {\n return 'Flash did not fire';\n } else if (value === 0x01) {\n return 'Flash fired';\n } else if (value === 0x05) {\n return 'Strobe return light not detected';\n } else if (value === 0x07) {\n return 'Strobe return light detected';\n } else if (value === 0x09) {\n return 'Flash fired, compulsory flash mode';\n } else if (value === 0x0d) {\n return 'Flash fired, compulsory flash mode, return light not detected';\n } else if (value === 0x0f) {\n return 'Flash fired, compulsory flash mode, return light detected';\n } else if (value === 0x10) {\n return 'Flash did not fire, compulsory flash mode';\n } else if (value === 0x18) {\n return 'Flash did not fire, auto mode';\n } else if (value === 0x19) {\n return 'Flash fired, auto mode';\n } else if (value === 0x1d) {\n return 'Flash fired, auto mode, return light not detected';\n } else if (value === 0x1f) {\n return 'Flash fired, auto mode, return light detected';\n } else if (value === 0x20) {\n return 'No flash function';\n } else if (value === 0x41) {\n return 'Flash fired, red-eye reduction mode';\n } else if (value === 0x45) {\n return 'Flash fired, red-eye reduction mode, return light not detected';\n } else if (value === 0x47) {\n return 'Flash fired, red-eye reduction mode, return light detected';\n } else if (value === 0x49) {\n return 'Flash fired, compulsory flash mode, red-eye reduction mode';\n } else if (value === 0x4d) {\n return 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected';\n } else if (value === 0x4f) {\n return 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected';\n } else if (value === 0x59) {\n return 'Flash fired, auto mode, red-eye reduction mode';\n } else if (value === 0x5d) {\n return 'Flash fired, auto mode, return light not detected, red-eye reduction mode';\n } else if (value === 0x5f) {\n return 'Flash fired, auto mode, return light detected, red-eye reduction mode';\n }\n return 'Unknown';\n }\n },\n 0x920a: {\n 'name': 'FocalLength',\n 'description': (value) => (value[0] / value[1]) + ' mm'\n },\n 0x9211: 'ImageNumber',\n 0x9212: {\n name: 'SecurityClassification',\n description: (value) => ({\n 'C': 'Confidential',\n 'R': 'Restricted',\n 'S': 'Secret',\n 'T': 'Top Secret',\n 'U': 'Unclassified'\n })[value] || 'Unknown'\n },\n 0x9213: 'ImageHistory',\n 0x9214: {\n 'name': 'SubjectArea',\n 'description': (value) => {\n if (value.length === 2) {\n return `Location; X: ${value[0]}, Y: ${value[1]}`;\n } else if (value.length === 3) {\n return `Circle; X: ${value[0]}, Y: ${value[1]}, diameter: ${value[2]}`;\n } else if (value.length === 4) {\n return `Rectangle; X: ${value[0]}, Y: ${value[1]}, width: ${value[2]}, height: ${value[3]}`;\n }\n return 'Unknown';\n }\n },\n 0x927c: {\n 'name': 'MakerNote',\n 'description': () => '[Raw maker note data]'\n },\n 0x9286: {\n 'name': 'UserComment',\n 'description': getEncodedString\n },\n 0x9290: 'SubSecTime',\n 0x9291: 'SubSecTimeOriginal',\n 0x9292: 'SubSecTimeDigitized',\n 0x9400: {\n 'name': 'AmbientTemperature',\n 'description': (value) => (value[0] / value[1]) + ' °C'\n },\n 0x9401: {\n 'name': 'Humidity',\n 'description': (value) => (value[0] / value[1]) + ' %'\n },\n 0x9402: {\n 'name': 'Pressure',\n 'description': (value) => (value[0] / value[1]) + ' hPa'\n },\n 0x9403: {\n 'name': 'WaterDepth',\n 'description': (value) => (value[0] / value[1]) + ' m'\n },\n 0x9404: {\n 'name': 'Acceleration',\n 'description': (value) => (value[0] / value[1]) + ' mGal'\n },\n 0x9405: {\n 'name': 'CameraElevationAngle',\n 'description': (value) => (value[0] / value[1]) + ' °'\n },\n 0xa000: {\n 'name': 'FlashpixVersion',\n 'description': (value) => value.map((charCode) => String.fromCharCode(charCode)).join('')\n },\n 0xa001: {\n 'name': 'ColorSpace',\n 'description': (value) => {\n if (value === 1) {\n return 'sRGB';\n } else if (value === 0xffff) {\n return 'Uncalibrated';\n }\n return 'Unknown';\n }\n },\n 0xa002: 'PixelXDimension',\n 0xa003: 'PixelYDimension',\n 0xa004: 'RelatedSoundFile',\n 0xa005: 'Interoperability IFD Pointer',\n 0xa20b: 'FlashEnergy',\n 0xa20c: {\n 'name': 'SpatialFrequencyResponse',\n 'description': () => '[Raw SFR table data]'\n },\n 0xa20e: 'FocalPlaneXResolution',\n 0xa20f: 'FocalPlaneYResolution',\n 0xa210: {\n 'name': 'FocalPlaneResolutionUnit',\n 'description': (value) => {\n if (value === 2) {\n return 'inches';\n } else if (value === 3) {\n return 'centimeters';\n }\n return 'Unknown';\n }\n },\n 0xa214: {\n 'name': 'SubjectLocation',\n 'description': ([x, y]) => `X: ${x}, Y: ${y}`\n },\n 0xa215: 'ExposureIndex',\n 0xa217: {\n 'name': 'SensingMethod',\n 'description': (value) => {\n if (value === 1) {\n return 'Undefined';\n } else if (value === 2) {\n return 'One-chip color area sensor';\n } else if (value === 3) {\n return 'Two-chip color area sensor';\n } else if (value === 4) {\n return 'Three-chip color area sensor';\n } else if (value === 5) {\n return 'Color sequential area sensor';\n } else if (value === 7) {\n return 'Trilinear sensor';\n } else if (value === 8) {\n return 'Color sequential linear sensor';\n }\n return 'Unknown';\n }\n },\n 0xa300: {\n 'name': 'FileSource',\n 'description': (value) => {\n if (value === 3) {\n return 'DSC';\n }\n return 'Unknown';\n }\n },\n 0xa301: {\n 'name': 'SceneType',\n 'description': (value) => {\n if (value === 1) {\n return 'A directly photographed image';\n }\n return 'Unknown';\n }\n },\n 0xa302: {\n 'name': 'CFAPattern',\n 'description': () => '[Raw CFA pattern table data]'\n },\n 0xa401: {\n 'name': 'CustomRendered',\n 'description': (value) => {\n if (value === 0) {\n return 'Normal process';\n } else if (value === 1) {\n return 'Custom process';\n }\n return 'Unknown';\n }\n },\n 0xa402: {\n 'name': 'ExposureMode',\n 'description': (value) => {\n if (value === 0) {\n return 'Auto exposure';\n } else if (value === 1) {\n return 'Manual exposure';\n } else if (value === 2) {\n return 'Auto bracket';\n }\n return 'Unknown';\n }\n },\n 0xa403: {\n 'name': 'WhiteBalance',\n 'description': (value) => {\n if (value === 0) {\n return 'Auto white balance';\n } else if (value === 1) {\n return 'Manual white balance';\n }\n return 'Unknown';\n }\n },\n 0xa404: {\n 'name': 'DigitalZoomRatio',\n 'description': (value) => {\n if (value[0] === 0) {\n return 'Digital zoom was not used';\n }\n return '' + (value[0] / value[1]);\n }\n },\n 0xa405: {\n 'name': 'FocalLengthIn35mmFilm',\n 'description': (value) => {\n if (value === 0) {\n return 'Unknown';\n }\n return value;\n }\n },\n 0xa406: {\n 'name': 'SceneCaptureType',\n 'description': (value) => {\n if (value === 0) {\n return 'Standard';\n } else if (value === 1) {\n return 'Landscape';\n } else if (value === 2) {\n return 'Portrait';\n } else if (value === 3) {\n return 'Night scene';\n }\n return 'Unknown';\n }\n },\n 0xa407: {\n 'name': 'GainControl',\n 'description': (value) => {\n if (value === 0) {\n return 'None';\n } else if (value === 1) {\n return 'Low gain up';\n } else if (value === 2) {\n return 'High gain up';\n } else if (value === 3) {\n return 'Low gain down';\n } else if (value === 4) {\n return 'High gain down';\n }\n return 'Unknown';\n }\n },\n 0xa408: {\n 'name': 'Contrast',\n 'description': (value) => {\n if (value === 0) {\n return 'Normal';\n } else if (value === 1) {\n return 'Soft';\n } else if (value === 2) {\n return 'Hard';\n }\n return 'Unknown';\n }\n },\n 0xa409: {\n 'name': 'Saturation',\n 'description': (value) => {\n if (value === 0) {\n return 'Normal';\n } else if (value === 1) {\n return 'Low saturation';\n } else if (value === 2) {\n return 'High saturation';\n }\n return 'Unknown';\n }\n },\n 0xa40a: {\n 'name': 'Sharpness',\n 'description': (value) => {\n if (value === 0) {\n return 'Normal';\n } else if (value === 1) {\n return 'Soft';\n } else if (value === 2) {\n return 'Hard';\n }\n return 'Unknown';\n }\n },\n 0xa40b: {\n 'name': 'DeviceSettingDescription',\n 'description': () => '[Raw device settings table data]'\n },\n 0xa40c: {\n 'name': 'SubjectDistanceRange',\n 'description': (value) => {\n if (value === 1) {\n return 'Macro';\n } else if (value === 2) {\n return 'Close view';\n } else if (value === 3) {\n return 'Distant view';\n }\n return 'Unknown';\n }\n },\n 0xa420: 'ImageUniqueID',\n 0xa430: 'CameraOwnerName',\n 0xa431: 'BodySerialNumber',\n 0xa432: {\n 'name': 'LensSpecification',\n 'description': (value) => {\n const focalLengths = `${value[0][0] / value[0][1]}-${value[1][0] / value[1][1]} mm`;\n if (value[3][1] === 0) {\n return `${focalLengths} f/?`;\n }\n return `${focalLengths} f/${1 / ((value[2][1] / value[2][1]) / (value[3][0] / value[3][1]))}`;\n }\n },\n 0xa433: 'LensMake',\n 0xa434: 'LensModel',\n 0xa435: 'LensSerialNumber',\n 0xa460: {\n name: 'CompositeImage',\n description: (value) => ({\n 1: 'Not a Composite Image',\n 2: 'General Composite Image',\n 3: 'Composite Image Captured While Shooting',\n })[value] || 'Unknown'\n },\n 0xa461: 'SourceImageNumberOfCompositeImage',\n 0xa462: 'SourceExposureTimesOfCompositeImage',\n 0xa500: 'Gamma',\n 0xea1c: 'Padding',\n 0xea1d: 'OffsetSchema',\n 0xfde8: 'OwnerName',\n 0xfde9: 'SerialNumber',\n 0xfdea: 'Lens',\n 0xfe4c: 'RawFile',\n 0xfe4d: 'Converter',\n 0xfe4e: 'WhiteBalance',\n 0xfe51: 'Exposure',\n 0xfe52: 'Shadows',\n 0xfe53: 'Brightness',\n 0xfe54: 'Contrast',\n 0xfe55: 'Saturation',\n 0xfe56: 'Sharpness',\n 0xfe57: 'Smoothness',\n 0xfe58: 'MoireFilter'\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getEncodedString, getCalculatedGpsValue} from './tag-names-utils.js';\n\nexport default {\n 0x0000: {\n 'name': 'GPSVersionID',\n 'description': (value) => {\n if (value[0] === 2 && value[1] === 2 && value[2] === 0 && value[3] === 0) {\n return 'Version 2.2';\n }\n return 'Unknown';\n }\n },\n 0x0001: {\n 'name': 'GPSLatitudeRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'N') {\n return 'North latitude';\n } else if (ref === 'S') {\n return 'South latitude';\n }\n return 'Unknown';\n }\n },\n 0x0002: {\n 'name': 'GPSLatitude',\n 'description': getCalculatedGpsValue\n },\n 0x0003: {\n 'name': 'GPSLongitudeRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'E') {\n return 'East longitude';\n } else if (ref === 'W') {\n return 'West longitude';\n }\n return 'Unknown';\n }\n },\n 0x0004: {\n 'name': 'GPSLongitude',\n 'description': getCalculatedGpsValue\n },\n 0x0005: {\n 'name': 'GPSAltitudeRef',\n 'description': (value) => {\n if (value === 0) {\n return 'Sea level';\n } else if (value === 1) {\n return 'Sea level reference (negative value)';\n }\n return 'Unknown';\n }\n },\n 0x0006: {\n 'name': 'GPSAltitude',\n 'description': (value) => {\n return (value[0] / value[1]) + ' m';\n }\n },\n 0x0007: {\n 'name': 'GPSTimeStamp',\n 'description': (values) => {\n return values.map(([numerator, denominator]) => {\n const num = numerator / denominator;\n if (/^\\d(\\.|$)/.test(`${num}`)) {\n return `0${num}`;\n }\n return num;\n }).join(':');\n }\n },\n 0x0008: 'GPSSatellites',\n 0x0009: {\n 'name': 'GPSStatus',\n 'description': (value) => {\n const status = value.join('');\n if (status === 'A') {\n return 'Measurement in progress';\n } else if (status === 'V') {\n return 'Measurement Interoperability';\n }\n return 'Unknown';\n }\n },\n 0x000a: {\n 'name': 'GPSMeasureMode',\n 'description': (value) => {\n const mode = value.join('');\n if (mode === '2') {\n return '2-dimensional measurement';\n } else if (mode === '3') {\n return '3-dimensional measurement';\n }\n return 'Unknown';\n }\n },\n 0x000b: 'GPSDOP',\n 0x000c: {\n 'name': 'GPSSpeedRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'K') {\n return 'Kilometers per hour';\n } else if (ref === 'M') {\n return 'Miles per hour';\n } else if (ref === 'N') {\n return 'Knots';\n }\n return 'Unknown';\n }\n },\n 0x000d: 'GPSSpeed',\n 0x000e: {\n 'name': 'GPSTrackRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'T') {\n return 'True direction';\n } else if (ref === 'M') {\n return 'Magnetic direction';\n }\n return 'Unknown';\n }\n },\n 0x000f: 'GPSTrack',\n 0x0010: {\n 'name': 'GPSImgDirectionRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'T') {\n return 'True direction';\n } else if (ref === 'M') {\n return 'Magnetic direction';\n }\n return 'Unknown';\n }\n },\n 0x0011: 'GPSImgDirection',\n 0x0012: 'GPSMapDatum',\n 0x0013: {\n 'name': 'GPSDestLatitudeRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'N') {\n return 'North latitude';\n } else if (ref === 'S') {\n return 'South latitude';\n }\n return 'Unknown';\n }\n },\n 0x0014: {\n 'name': 'GPSDestLatitude',\n 'description': (value) => {\n return (value[0][0] / value[0][1]) + (value[1][0] / value[1][1]) / 60 + (value[2][0] / value[2][1]) / 3600;\n }\n },\n 0x0015: {\n 'name': 'GPSDestLongitudeRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'E') {\n return 'East longitude';\n } else if (ref === 'W') {\n return 'West longitude';\n }\n return 'Unknown';\n }\n },\n 0x0016: {\n 'name': 'GPSDestLongitude',\n 'description': (value) => {\n return (value[0][0] / value[0][1]) + (value[1][0] / value[1][1]) / 60 + (value[2][0] / value[2][1]) / 3600;\n }\n },\n 0x0017: {\n 'name': 'GPSDestBearingRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'T') {\n return 'True direction';\n } else if (ref === 'M') {\n return 'Magnetic direction';\n }\n return 'Unknown';\n }\n },\n 0x0018: 'GPSDestBearing',\n 0x0019: {\n 'name': 'GPSDestDistanceRef',\n 'description': (value) => {\n const ref = value.join('');\n if (ref === 'K') {\n return 'Kilometers';\n } else if (ref === 'M') {\n return 'Miles';\n } else if (ref === 'N') {\n return 'Knots';\n }\n return 'Unknown';\n }\n },\n 0x001a: 'GPSDestDistance',\n 0x001b: {\n 'name': 'GPSProcessingMethod',\n 'description': getEncodedString\n },\n 0x001c: {\n 'name': 'GPSAreaInformation',\n 'description': getEncodedString\n },\n 0x001d: 'GPSDateStamp',\n 0x001e: {\n 'name': 'GPSDifferential',\n 'description': (value) => {\n if (value === 0) {\n return 'Measurement without differential correction';\n } else if (value === 1) {\n return 'Differential correction applied';\n }\n return 'Unknown';\n }\n },\n 0x001f: 'GPSHPositioningError'\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringValue} from './tag-names-utils.js';\n\nexport default {\n 0x0001: 'InteroperabilityIndex',\n 0x0002: {\n name: 'InteroperabilityVersion',\n description: (value) => getStringValue(value)\n },\n 0x1000: 'RelatedImageFileFormat',\n 0x1001: 'RelatedImageWidth',\n 0x1002: 'RelatedImageHeight'\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringValue} from './tag-names-utils.js';\n\nexport default {\n 0xb000: {\n 'name': 'MPFVersion',\n 'description': (value) => getStringValue(value)\n },\n 0xb001: 'NumberOfImages',\n 0xb002: 'MPEntry',\n 0xb003: 'ImageUIDList',\n 0xb004: 'TotalFrames'\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport function getStringValue(value) {\n return value.map((charCode) => String.fromCharCode(charCode)).join('');\n}\n\nexport function getEncodedString(value) {\n if (value.length >= 8) {\n const encoding = getStringValue(value.slice(0, 8));\n\n if (encoding === 'ASCII\\x00\\x00\\x00') {\n return getStringValue(value.slice(8));\n } else if (encoding === 'JIS\\x00\\x00\\x00\\x00\\x00') {\n return '[JIS encoded text]';\n } else if (encoding === 'UNICODE\\x00') {\n return '[Unicode encoded text]';\n } else if (encoding === '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00') {\n return '[Undefined encoding]';\n }\n }\n\n return 'Undefined';\n}\n\nexport function getCalculatedGpsValue(value) {\n return (value[0][0] / value[0][1]) + (value[1][0] / value[1][1]) / 60 + (value[2][0] / value[2][1]) / 3600;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {objectAssign} from './utils.js';\nimport Constants from './constants.js';\nimport TagNames0thIfd from './tag-names-0th-ifd.js';\nimport TagNamesExifIfd from './tag-names-exif-ifd.js';\nimport TagNamesGpsIfd from './tag-names-gps-ifd.js';\nimport TagNamesInteroperabilityIfd from './tag-names-interoperability-ifd.js';\nimport TagNamesMpfIfd from './tag-names-mpf-ifd.js';\n\nconst tagNames0thExifIfds = objectAssign({}, TagNames0thIfd, TagNamesExifIfd);\n\nexport default {\n '0th': tagNames0thExifIfds,\n 'exif': tagNames0thExifIfds,\n 'gps': TagNamesGpsIfd,\n 'interoperability': TagNamesInteroperabilityIfd,\n 'mpf': Constants.USE_MPF ? TagNamesMpfIfd : {},\n};\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport Constants from './constants.js';\nimport {objectAssign} from './utils.js';\nimport ByteOrder from './byte-order.js';\nimport Types from './types.js';\nimport TagNames from './tag-names.js';\nimport {deferInit, getBase64Image} from './utils.js';\n\nconst EXIF_IFD_POINTER_KEY = 'Exif IFD Pointer';\nconst GPS_INFO_IFD_POINTER_KEY = 'GPS Info IFD Pointer';\nconst INTEROPERABILITY_IFD_POINTER_KEY = 'Interoperability IFD Pointer';\n\nconst getTagValueAt = {\n 1: Types.getByteAt,\n 2: Types.getAsciiAt,\n 3: Types.getShortAt,\n 4: Types.getLongAt,\n 5: Types.getRationalAt,\n 7: Types.getUndefinedAt,\n 9: Types.getSlongAt,\n 10: Types.getSrationalAt,\n 13: Types.getIfdPointerAt\n};\n\nexport default {\n read,\n readMpf\n};\n\nfunction read(dataView, tiffHeaderOffset) {\n const byteOrder = ByteOrder.getByteOrder(dataView, tiffHeaderOffset);\n let tags = read0thIfd(dataView, tiffHeaderOffset, byteOrder);\n tags = readExifIfd(tags, dataView, tiffHeaderOffset, byteOrder);\n tags = readGpsIfd(tags, dataView, tiffHeaderOffset, byteOrder);\n tags = readInteroperabilityIfd(tags, dataView, tiffHeaderOffset, byteOrder);\n\n return tags;\n}\n\nfunction read0thIfd(dataView, tiffHeaderOffset, byteOrder) {\n return readIfd(dataView, '0th', tiffHeaderOffset, get0thIfdOffset(dataView, tiffHeaderOffset, byteOrder), byteOrder);\n}\n\nfunction get0thIfdOffset(dataView, tiffHeaderOffset, byteOrder) {\n return tiffHeaderOffset + Types.getLongAt(dataView, tiffHeaderOffset + 4, byteOrder);\n}\n\nfunction readExifIfd(tags, dataView, tiffHeaderOffset, byteOrder) {\n if (tags[EXIF_IFD_POINTER_KEY] !== undefined) {\n return objectAssign(tags, readIfd(dataView, 'exif', tiffHeaderOffset, tiffHeaderOffset + tags[EXIF_IFD_POINTER_KEY].value, byteOrder));\n }\n\n return tags;\n}\n\nfunction readGpsIfd(tags, dataView, tiffHeaderOffset, byteOrder) {\n if (tags[GPS_INFO_IFD_POINTER_KEY] !== undefined) {\n return objectAssign(tags, readIfd(dataView, 'gps', tiffHeaderOffset, tiffHeaderOffset + tags[GPS_INFO_IFD_POINTER_KEY].value, byteOrder));\n }\n\n return tags;\n}\n\nfunction readInteroperabilityIfd(tags, dataView, tiffHeaderOffset, byteOrder) {\n if (tags[INTEROPERABILITY_IFD_POINTER_KEY] !== undefined) {\n return objectAssign(tags, readIfd(dataView, 'interoperability', tiffHeaderOffset, tiffHeaderOffset + tags[INTEROPERABILITY_IFD_POINTER_KEY].value, byteOrder));\n }\n\n return tags;\n}\n\nfunction readMpf(dataView, dataOffset) {\n const byteOrder = ByteOrder.getByteOrder(dataView, dataOffset);\n const tags = readIfd(dataView, 'mpf', dataOffset, get0thIfdOffset(dataView, dataOffset, byteOrder), byteOrder);\n return addMpfImages(dataView, dataOffset, tags, byteOrder);\n}\n\nfunction addMpfImages(dataView, dataOffset, tags, byteOrder) {\n const ENTRY_SIZE = 16;\n\n if (!tags['MPEntry']) {\n return tags;\n }\n\n const images = [];\n for (let i = 0; i < Math.ceil(tags['MPEntry'].value.length / ENTRY_SIZE); i++) {\n images[i] = {};\n\n const attributes = getImageNumberValue(tags['MPEntry'].value, i * ENTRY_SIZE, Types.getTypeSize('LONG'), byteOrder);\n images[i]['ImageFlags'] = getImageFlags(attributes);\n images[i]['ImageFormat'] = getImageFormat(attributes);\n images[i]['ImageType'] = getImageType(attributes);\n\n const imageSize = getImageNumberValue(tags['MPEntry'].value, i * ENTRY_SIZE + 4, Types.getTypeSize('LONG'), byteOrder);\n images[i]['ImageSize'] = {\n value: imageSize,\n description: '' + imageSize\n };\n\n const imageOffset = isFirstIndividualImage(i) ? 0 : getImageNumberValue(tags['MPEntry'].value, i * ENTRY_SIZE + 8, Types.getTypeSize('LONG'), byteOrder) + dataOffset;\n images[i]['ImageOffset'] = {\n value: imageOffset,\n description: '' + imageOffset\n };\n\n const dependentImage1EntryNumber =\n getImageNumberValue(tags['MPEntry'].value, i * ENTRY_SIZE + 12, Types.getTypeSize('SHORT'), byteOrder);\n images[i]['DependentImage1EntryNumber'] = {\n value: dependentImage1EntryNumber,\n description: '' + dependentImage1EntryNumber\n };\n\n const dependentImage2EntryNumber =\n getImageNumberValue(tags['MPEntry'].value, i * ENTRY_SIZE + 14, Types.getTypeSize('SHORT'), byteOrder);\n images[i]['DependentImage2EntryNumber'] = {\n value: dependentImage2EntryNumber,\n description: '' + dependentImage2EntryNumber\n };\n\n images[i].image = dataView.buffer.slice(imageOffset, imageOffset + imageSize);\n deferInit(images[i], 'base64', function () {\n return getBase64Image(this.image);\n });\n }\n\n tags['Images'] = images;\n\n return tags;\n}\n\nfunction getImageNumberValue(entries, offset, size, byteOrder) {\n if (byteOrder === ByteOrder.LITTLE_ENDIAN) {\n let value = 0;\n for (let i = 0; i < size; i++) {\n value += entries[offset + i] << (8 * i);\n }\n return value;\n }\n\n let value = 0;\n for (let i = 0; i < size; i++) {\n value += entries[offset + i] << (8 * (size - 1 - i));\n }\n return value;\n}\n\nfunction getImageFlags(attributes) {\n const flags = [\n (attributes >> 31) & 0x1,\n (attributes >> 30) & 0x1,\n (attributes >> 29) & 0x1\n ];\n\n const flagsDescription = [];\n\n if (flags[0]) {\n flagsDescription.push('Dependent Parent Image');\n }\n if (flags[1]) {\n flagsDescription.push('Dependent Child Image');\n }\n if (flags[2]) {\n flagsDescription.push('Representative Image');\n }\n\n return {\n value: flags,\n description: flagsDescription.join(', ') || 'None'\n };\n}\n\nfunction getImageFormat(attributes) {\n const imageFormat = attributes >> 24 & 0x7;\n return {\n value: imageFormat,\n description: imageFormat === 0 ? 'JPEG' : 'Unknown'\n };\n}\n\nfunction getImageType(attributes) {\n const type = attributes & 0xffffff;\n const descriptions = {\n 0x30000: 'Baseline MP Primary Image',\n 0x10001: 'Large Thumbnail (VGA equivalent)',\n 0x10002: 'Large Thumbnail (Full HD equivalent)',\n 0x20001: 'Multi-Frame Image (Panorama)',\n 0x20002: 'Multi-Frame Image (Disparity)',\n 0x20003: 'Multi-Frame Image (Multi-Angle)',\n 0x0: 'Undefined',\n };\n\n return {\n value: type,\n description: descriptions[type] || 'Unknown'\n };\n}\n\nfunction isFirstIndividualImage(i) {\n return i === 0;\n}\n\nfunction readIfd(dataView, ifdType, tiffHeaderOffset, offset, byteOrder) {\n const FIELD_COUNT_SIZE = Types.getTypeSize('SHORT');\n const FIELD_SIZE = 12;\n\n const tags = {};\n const numberOfFields = getNumberOfFields(dataView, offset, byteOrder);\n\n offset += FIELD_COUNT_SIZE;\n for (let fieldIndex = 0; fieldIndex < numberOfFields; fieldIndex++) {\n if (offset + FIELD_SIZE > dataView.byteLength) {\n break;\n }\n\n const tag = readTag(dataView, ifdType, tiffHeaderOffset, offset, byteOrder);\n if (tag !== undefined) {\n tags[tag.name] = {\n 'id': tag.id,\n 'value': tag.value,\n 'description': tag.description\n };\n }\n\n offset += FIELD_SIZE;\n }\n\n if (Constants.USE_THUMBNAIL && (offset < dataView.byteLength - Types.getTypeSize('LONG'))) {\n const nextIfdOffset = Types.getLongAt(dataView, offset, byteOrder);\n if (nextIfdOffset !== 0) {\n tags['Thumbnail'] = readIfd(dataView, ifdType, tiffHeaderOffset, tiffHeaderOffset + nextIfdOffset, byteOrder);\n }\n }\n\n return tags;\n}\n\nfunction getNumberOfFields(dataView, offset, byteOrder) {\n if (offset + Types.getTypeSize('SHORT') <= dataView.byteLength) {\n return Types.getShortAt(dataView, offset, byteOrder);\n }\n return 0;\n}\n\nfunction readTag(dataView, ifdType, tiffHeaderOffset, offset, byteOrder) {\n const TAG_CODE_IPTC_NAA = 0x83bb;\n const TAG_TYPE_OFFSET = Types.getTypeSize('SHORT');\n const TAG_COUNT_OFFSET = TAG_TYPE_OFFSET + Types.getTypeSize('SHORT');\n const TAG_VALUE_OFFSET = TAG_COUNT_OFFSET + Types.getTypeSize('LONG');\n\n const tagCode = Types.getShortAt(dataView, offset, byteOrder);\n const tagType = Types.getShortAt(dataView, offset + TAG_TYPE_OFFSET, byteOrder);\n const tagCount = Types.getLongAt(dataView, offset + TAG_COUNT_OFFSET, byteOrder);\n let tagValue;\n\n if (Types.typeSizes[tagType] === undefined) {\n return undefined;\n }\n\n if (tagValueFitsInOffsetSlot(tagType, tagCount)) {\n tagValue = getTagValue(dataView, offset + TAG_VALUE_OFFSET, tagType, tagCount, byteOrder);\n } else {\n const tagValueOffset = Types.getLongAt(dataView, offset + TAG_VALUE_OFFSET, byteOrder);\n if (tagValueFitsInDataView(dataView, tiffHeaderOffset, tagValueOffset, tagType, tagCount)) {\n const forceByteType = tagCode === TAG_CODE_IPTC_NAA;\n tagValue = getTagValue(dataView, tiffHeaderOffset + tagValueOffset, tagType, tagCount, byteOrder, forceByteType);\n } else {\n tagValue = '';\n }\n }\n\n if (tagType === Types.tagTypes['ASCII']) {\n tagValue = splitNullSeparatedAsciiString(tagValue);\n tagValue = decodeAsciiValue(tagValue);\n }\n\n let tagName = `undefined-${tagCode}`;\n let tagDescription = tagValue;\n\n if (TagNames[ifdType][tagCode] !== undefined) {\n if ((TagNames[ifdType][tagCode]['name'] !== undefined) && (TagNames[ifdType][tagCode]['description'] !== undefined)) {\n tagName = TagNames[ifdType][tagCode]['name'];\n try {\n tagDescription = TagNames[ifdType][tagCode]['description'](tagValue);\n } catch (error) {\n tagDescription = getDescriptionFromTagValue(tagValue);\n }\n } else if ((tagType === Types.tagTypes['RATIONAL']) || (tagType === Types.tagTypes['SRATIONAL'])) {\n tagName = TagNames[ifdType][tagCode];\n tagDescription = '' + (tagValue[0] / tagValue[1]);\n } else {\n tagName = TagNames[ifdType][tagCode];\n tagDescription = getDescriptionFromTagValue(tagValue);\n }\n }\n\n return {\n id: tagCode,\n name: tagName,\n value: tagValue,\n description: tagDescription\n };\n}\n\nfunction tagValueFitsInOffsetSlot(tagType, tagCount) {\n return Types.typeSizes[tagType] * tagCount <= Types.getTypeSize('LONG');\n}\n\nfunction getTagValue(dataView, offset, type, count, byteOrder, forceByteType = false) {\n let value = [];\n\n if (forceByteType) {\n count = count * Types.typeSizes[type];\n type = Types.tagTypes['BYTE'];\n }\n for (let valueIndex = 0; valueIndex < count; valueIndex++) {\n value.push(getTagValueAt[type](dataView, offset, byteOrder));\n offset += Types.typeSizes[type];\n }\n\n if (type === Types.tagTypes['ASCII']) {\n value = Types.getAsciiValue(value);\n } else if (value.length === 1) {\n value = value[0];\n }\n\n return value;\n}\n\nfunction tagValueFitsInDataView(dataView, tiffHeaderOffset, tagValueOffset, tagType, tagCount) {\n return tiffHeaderOffset + tagValueOffset + Types.typeSizes[tagType] * tagCount <= dataView.byteLength;\n}\n\nfunction splitNullSeparatedAsciiString(string) {\n const tagValue = [];\n let i = 0;\n\n for (let j = 0; j < string.length; j++) {\n if (string[j] === '\\x00') {\n i++;\n continue;\n }\n if (tagValue[i] === undefined) {\n tagValue[i] = '';\n }\n tagValue[i] += string[j];\n }\n\n return tagValue;\n}\n\nfunction decodeAsciiValue(asciiValue) {\n try {\n return asciiValue.map((value) => decodeURIComponent(escape(value)));\n } catch (error) {\n return asciiValue;\n }\n}\n\nfunction getDescriptionFromTagValue(tagValue) {\n if (tagValue instanceof Array) {\n return tagValue.join(', ');\n }\n return tagValue;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport default {\n get\n};\n\nfunction get() {\n if (typeof TextDecoder !== 'undefined') {\n return TextDecoder;\n }\n\n return undefined;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {deferInit, getBase64Image} from './utils.js';\n\n// https://exiftool.org/TagNames/EXIF.html#Compression\nconst COMPRESSION_JPEG = [6, 7, 99];\n\nexport default {\n get,\n};\n\nfunction get(dataView, thumbnailTags, tiffHeaderOffset) {\n if (hasJpegThumbnail(thumbnailTags)) {\n thumbnailTags.type = 'image/jpeg';\n const offset = tiffHeaderOffset + thumbnailTags.JPEGInterchangeFormat.value;\n thumbnailTags.image = dataView.buffer.slice(offset, offset + thumbnailTags.JPEGInterchangeFormatLength.value);\n deferInit(thumbnailTags, 'base64', function () {\n return getBase64Image(this.image);\n });\n }\n\n // There is a small possibility of thumbnails in TIFF format but they are\n // not stored as a self-contained image file and would be much more\n // difficult to extract.\n // https://exiftool.org/forum/index.php?topic=3273.msg14778#msg14778\n\n return thumbnailTags;\n}\n\nfunction hasJpegThumbnail(tags) {\n return tags && ((tags.Compression === undefined) || (COMPRESSION_JPEG.includes(tags.Compression.value)))\n && tags.JPEGInterchangeFormat && tags.JPEGInterchangeFormat.value\n && tags.JPEGInterchangeFormatLength && tags.JPEGInterchangeFormatLength.value;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport ByteOrder from './byte-order.js';\n\nconst typeSizes = {\n 1: 1, // BYTE\n 2: 1, // ASCII\n 3: 2, // SHORT\n 4: 4, // LONG\n 5: 8, // RATIONAL\n 7: 1, // UNDEFINED\n 9: 4, // SLONG\n 10: 8, // SRATIONAL\n 13: 4 // IFD\n};\n\nconst tagTypes = {\n 'BYTE': 1,\n 'ASCII': 2,\n 'SHORT': 3,\n 'LONG': 4,\n 'RATIONAL': 5,\n 'UNDEFINED': 7,\n 'SLONG': 9,\n 'SRATIONAL': 10,\n 'IFD': 13\n};\n\nexport default {\n getAsciiValue,\n getByteAt,\n getAsciiAt,\n getShortAt,\n getLongAt,\n getRationalAt,\n getUndefinedAt,\n getSlongAt,\n getSrationalAt,\n getIfdPointerAt,\n typeSizes,\n tagTypes,\n getTypeSize\n};\n\nfunction getAsciiValue(charArray) {\n return charArray.map((charCode) => String.fromCharCode(charCode));\n}\n\nfunction getByteAt(dataView, offset) {\n return dataView.getUint8(offset);\n}\n\nfunction getAsciiAt(dataView, offset) {\n return dataView.getUint8(offset);\n}\n\nfunction getShortAt(dataView, offset, byteOrder) {\n return dataView.getUint16(offset, byteOrder === ByteOrder.LITTLE_ENDIAN);\n}\n\nfunction getLongAt(dataView, offset, byteOrder) {\n return dataView.getUint32(offset, byteOrder === ByteOrder.LITTLE_ENDIAN);\n}\n\nfunction getRationalAt(dataView, offset, byteOrder) {\n return [getLongAt(dataView, offset, byteOrder), getLongAt(dataView, offset + 4, byteOrder)];\n}\n\nfunction getUndefinedAt(dataView, offset) {\n return getByteAt(dataView, offset);\n}\n\nfunction getSlongAt(dataView, offset, byteOrder) {\n return dataView.getInt32(offset, byteOrder === ByteOrder.LITTLE_ENDIAN);\n}\n\nfunction getSrationalAt(dataView, offset, byteOrder) {\n return [getSlongAt(dataView, offset, byteOrder), getSlongAt(dataView, offset + 4, byteOrder)];\n}\n\nfunction getIfdPointerAt(dataView, offset, byteOrder) {\n return getLongAt(dataView, offset, byteOrder);\n}\n\nfunction getTypeSize(typeName) {\n if (tagTypes[typeName] === undefined) {\n throw new Error('No such type found.');\n }\n\n return typeSizes[tagTypes[typeName]];\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport function getStringFromDataView(dataView, offset, length) {\n const chars = [];\n for (let i = 0; i < length && offset + i < dataView.byteLength; i++) {\n chars.push(dataView.getUint8(offset + i));\n }\n return getStringValueFromArray(chars);\n}\n\nexport function getUnicodeStringFromDataView(dataView, offset, length) {\n const chars = [];\n for (let i = 0; i < length && offset + i < dataView.byteLength; i += 2) {\n chars.push(dataView.getUint16(offset + i));\n }\n return getStringValueFromArray(chars);\n}\n\nexport function getStringValueFromArray(charArray) {\n return charArray.map((charCode) => String.fromCharCode(charCode)).join('');\n}\n\nexport function getCharacterArray(string) {\n return string.split('').map((character) => character.charCodeAt(0));\n}\n\nexport function objectAssign() {\n for (let i = 1; i < arguments.length; i++) {\n for (const property in arguments[i]) {\n arguments[0][property] = arguments[i][property];\n }\n }\n\n return arguments[0];\n}\n\nexport function deferInit(object, key, initializer) {\n let initialized = false;\n Object.defineProperty(object, key, {\n get() {\n if (!initialized) {\n initialized = true;\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n value: initializer.apply(object),\n writable: true\n });\n }\n return object[key];\n },\n configurable: true,\n enumerable: true\n });\n}\n\nexport function getBase64Image(image) {\n if (typeof btoa !== 'undefined') {\n // IE11- does not implement reduce on the Uint8Array prototype.\n return btoa(Array.prototype.reduce.call(new Uint8Array(image), (data, byte) => data + String.fromCharCode(byte), ''));\n }\n if (typeof Buffer === 'undefined') {\n return undefined;\n }\n if (typeof Buffer.from !== undefined) { // eslint-disable-line no-undef\n return Buffer.from(image).toString('base64'); // eslint-disable-line no-undef\n }\n return (new Buffer(image)).toString('base64'); // eslint-disable-line no-undef\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nexport default {\n 'tiff:Orientation'(value) {\n if (value === '1') {\n return 'Horizontal (normal)';\n }\n if (value === '2') {\n return 'Mirror horizontal';\n }\n if (value === '3') {\n return 'Rotate 180';\n }\n if (value === '4') {\n return 'Mirror vertical';\n }\n if (value === '5') {\n return 'Mirror horizontal and rotate 270 CW';\n }\n if (value === '6') {\n return 'Rotate 90 CW';\n }\n if (value === '7') {\n return 'Mirror horizontal and rotate 90 CW';\n }\n if (value === '8') {\n return 'Rotate 270 CW';\n }\n return value;\n },\n 'exif:GPSLatitude': calculateGPSValue,\n 'exif:GPSLongitude': calculateGPSValue\n};\n\nfunction calculateGPSValue(value) {\n const [degreesString, minutesString] = value.split(',');\n if ((degreesString !== undefined) && (minutesString !== undefined)) {\n const degrees = parseFloat(degreesString);\n const minutes = parseFloat(minutesString);\n const ref = minutesString.charAt(minutesString.length - 1);\n if ((!Number.isNaN(degrees)) && (!Number.isNaN(minutes))) {\n return '' + (degrees + minutes / 60) + ref;\n }\n }\n return value;\n}\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/. */\n\nimport {getStringFromDataView, objectAssign} from './utils.js';\nimport XmpTagNames from './xmp-tag-names.js';\nimport DOMParser from './dom-parser.js';\n\nexport default {\n read\n};\n\nfunction read(dataView, chunks) {\n if (typeof dataView === 'string') {\n return readTags({}, dataView);\n }\n return extractCompleteChunks(dataView, chunks).reduce(readTags, {});\n}\n\n// The first chunk is always the regular XMP document. Then there is something\n// called extended XMP. The extended XMP is also a single XMP document but it\n// can be divided into multiple chunks that need to be combined into one.\nfunction extractCompleteChunks(dataView, chunks) {\n if (chunks.length === 0) {\n return [];\n }\n\n const completeChunks = [combineChunks(dataView, chunks.slice(0, 1))];\n if (chunks.length > 1) {\n completeChunks.push(combineChunks(dataView, chunks.slice(1)));\n }\n\n return completeChunks;\n}\n\nfunction combineChunks(dataView, chunks) {\n const totalLength = chunks.reduce((size, chunk) => size + chunk.length, 0);\n const combinedChunks = new Uint8Array(totalLength);\n let offset = 0;\n\n for (let i = 0; i < chunks.length; i++) {\n const chunk = chunks[i];\n const slice = dataView.buffer.slice(chunk.dataOffset, chunk.dataOffset + chunk.length);\n combinedChunks.set(new Uint8Array(slice), offset);\n offset += chunk.length;\n }\n\n return new DataView(combinedChunks.buffer);\n}\n\nfunction readTags(tags, chunkDataView) {\n try {\n const doc = getDocument(chunkDataView);\n const rdf = getRDF(doc);\n\n return objectAssign(tags, parseXMPObject(convertToObject(rdf, true)));\n } catch (error) {\n return tags;\n }\n}\n\nfunction getDocument(chunkDataView) {\n const Parser = DOMParser.get();\n if (!Parser) {\n console.warn('Warning: DOMParser is not available. It is needed to be able to parse XMP tags.'); // eslint-disable-line no-console\n throw new Error();\n }\n\n const domParser = new Parser();\n const xmlString = typeof chunkDataView === 'string' ? chunkDataView : getStringFromDataView(chunkDataView, 0, chunkDataView.byteLength);\n const doc = domParser.parseFromString(trimXmlSource(xmlString), 'application/xml');\n\n if (doc.documentElement.nodeName === 'parsererror') {\n throw new Error(doc.documentElement.textContent);\n }\n\n return doc;\n}\n\nfunction trimXmlSource(xmlSource) {\n return xmlSource.replace(/^.+(<\\?xpacket begin)/, '$1').replace(/(<\\?xpacket end=\".*\"\\?>).+$/, '$1');\n}\n\nfunction getRDF(node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n if (node.childNodes[i].tagName === 'x:xmpmeta') {\n return getRDF(node.childNodes[i]);\n }\n if (node.childNodes[i].tagName === 'rdf:RDF') {\n return node.childNodes[i];\n }\n }\n\n throw new Error();\n}\n\nfunction convertToObject(node, isTopNode = false) {\n const childNodes = getChildNodes(node);\n\n if (hasTextOnlyContent(childNodes)) {\n if (isTopNode) {\n return {};\n }\n return getTextValue(childNodes[0]);\n }\n\n return getElementsFromNodes(childNodes);\n}\n\nfunction getChildNodes(node) {\n const elements = [];\n\n for (let i = 0; i < node.childNodes.length; i++) {\n elements.push(node.childNodes[i]);\n }\n\n return elements;\n}\n\nfunction hasTextOnlyContent(nodes) {\n return (nodes.length === 1) && (nodes[0].nodeName === '#text');\n}\n\nfunction getTextValue(node) {\n return node.nodeValue;\n}\n\nfunction getElementsFromNodes(nodes) {\n const elements = {};\n\n nodes.forEach((node) => {\n if (isElement(node)) {\n const nodeElement = getElementFromNode(node);\n\n if (elements[node.nodeName] !== undefined) {\n if (!Array.isArray(elements[node.nodeName])) {\n elements[node.nodeName] = [elements[node.nodeName]];\n }\n elements[node.nodeName].push(nodeElement);\n } else {\n elements[node.nodeName] = nodeElement;\n }\n }\n });\n\n return elements;\n}\n\nfunction isElement(node) {\n return (node.nodeName) && (node.nodeName !== '#text');\n}\n\nfunction getElementFromNode(node) {\n return {\n attributes: getAttributes(node),\n value: convertToObject(node)\n };\n}\n\nfunction getAttributes(element) {\n const attributes = {};\n\n for (let i = 0; i < element.attributes.length; i++) {\n attributes[element.attributes[i].nodeName] = decodeURIComponent(escape(element.attributes[i].value));\n }\n\n return attributes;\n}\n\nfunction parseXMPObject(xmpObject) {\n const tags = {};\n\n if (typeof xmpObject === 'string') {\n return xmpObject;\n }\n\n for (const nodeName in xmpObject) {\n let nodes = xmpObject[nodeName];\n\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n\n nodes.forEach((node) => {\n objectAssign(tags, parseNodeAttributesAsTags(node.attributes));\n if (typeof node.value === 'object') {\n objectAssign(tags, parseNodeChildrenAsTags(node.value));\n }\n });\n }\n\n return tags;\n}\n\nfunction parseNodeAttributesAsTags(attributes) {\n const tags = {};\n\n for (const name in attributes) {\n if (isTagAttribute(name)) {\n tags[getLocalName(name)] = {\n value: attributes[name],\n attributes: {},\n description: getDescription(attributes[name], name)\n };\n }\n }\n\n return tags;\n}\n\nfunction isTagAttribute(name) {\n return (name !== 'rdf:parseType') && (!isNamespaceDefinition(name));\n}\n\nfunction isNamespaceDefinition(name) {\n return name.split(':')[0] === 'xmlns';\n}\n\nfunction getLocalName(name) {\n if (/^MicrosoftPhoto(_\\d+_)?:Rating$/i.test(name)) {\n return 'RatingPercent';\n }\n return name.split(':')[1];\n}\n\nfunction getDescription(value, name = undefined) {\n if (Array.isArray(value)) {\n return getDescriptionOfArray(value);\n }\n if (typeof value === 'object') {\n return getDescriptionOfObject(value);\n }\n\n try {\n if ((name) && (typeof XmpTagNames[name] === 'function')) {\n return XmpTagNames[name](value);\n }\n return decodeURIComponent(escape(value));\n } catch (error) {\n return value;\n }\n}\n\nfunction getDescriptionOfArray(value) {\n return value.map((item) => {\n if (item.value !== undefined) {\n return getDescription(item.value);\n }\n return getDescription(item);\n }).join(', ');\n}\n\nfunction getDescriptionOfObject(value) {\n const descriptions = [];\n\n for (const key in value) {\n descriptions.push(`${getClearTextKey(key)}: ${value[key].value}`);\n }\n\n return descriptions.join('; ');\n}\n\nfunction getClearTextKey(key) {\n if (key === 'CiAdrCity') {\n return 'CreatorCity';\n }\n if (key === 'CiAdrCtry') {\n return 'CreatorCountry';\n }\n if (key === 'CiAdrExtadr') {\n return 'CreatorAddress';\n }\n if (key === 'CiAdrPcode') {\n return 'CreatorPostalCode';\n }\n if (key === 'CiAdrRegion') {\n return 'CreatorRegion';\n }\n if (key === 'CiEmailWork') {\n return 'CreatorWorkEmail';\n }\n if (key === 'CiTelWork') {\n return 'CreatorWorkPhone';\n }\n if (key === 'CiUrlWork') {\n return 'CreatorWorkUrl';\n }\n return key;\n}\n\nfunction parseNodeChildrenAsTags(children) {\n const tags = {};\n\n for (const name in children) {\n if (!isNamespaceDefinition(name)) {\n tags[getLocalName(name)] = parseNodeAsTag(children[name], name);\n }\n }\n\n return tags;\n}\n\nfunction parseNodeAsTag(node, name) {\n if (hasNestedSimpleRdfDescription(node)) {\n return parseNodeAsSimpleRdfDescription(node, name);\n } else if (hasNestedStructureRdfDescription(node)) {\n return parseNodeAsStructureRdfDescription(node, name);\n } else if (isCompactStructure(node)) {\n return parseNodeAsCompactStructure(node, name);\n } else if (isArray(node)) {\n return parseNodeAsArray(node, name);\n }\n return parseNodeAsSimpleValue(node, name);\n}\n\nfunction hasNestedSimpleRdfDescription(node) {\n return ((node.attributes['rdf:parseType'] === 'Resource') && (node.value['rdf:value'] !== undefined))\n || ((node.value['rdf:Description'] !== undefined) && (node.value['rdf:Description'].value['rdf:value'] !== undefined));\n}\n\nfunction parseNodeAsSimpleRdfDescription(node, name) {\n const attributes = parseNodeAttributes(node);\n\n if (node.value['rdf:Description'] !== undefined) {\n node = node.value['rdf:Description'];\n }\n\n objectAssign(attributes, parseNodeAttributes(node), parseNodeChildrenAsAttributes(node));\n\n const value = parseRdfValue(node);\n\n return {\n value,\n attributes,\n description: getDescription(value, name)\n };\n}\n\nfunction parseNodeAttributes(node) {\n const attributes = {};\n\n for (const name in node.attributes) {\n if ((name !== 'rdf:parseType') && (name !== 'rdf:resource') && (!isNamespaceDefinition(name))) {\n attributes[getLocalName(name)] = node.attributes[name];\n }\n }\n\n return attributes;\n}\n\nfunction parseNodeChildrenAsAttributes(node) {\n const attributes = {};\n\n for (const name in node.value) {\n if ((name !== 'rdf:value') && (!isNamespaceDefinition(name))) {\n attributes[getLocalName(name)] = node.value[name].value;\n }\n }\n\n return attributes;\n}\n\nfunction parseRdfValue(node) {\n return getURIValue(node.value['rdf:value']) || node.value['rdf:value'].value;\n}\n\nfunction hasNestedStructureRdfDescription(node) {\n return (node.attributes['rdf:parseType'] === 'Resource')\n || ((node.value['rdf:Description'] !== undefined) && (node.value['rdf:Description'].value['rdf:value'] === undefined));\n}\n\nfunction parseNodeAsStructureRdfDescription(node, name) {\n const tag = {\n value: {},\n attributes: {}\n };\n\n if (node.value['rdf:Description'] !== undefined) {\n objectAssign(tag.value, parseNodeAttributesAsTags(node.value['rdf:Description'].attributes));\n objectAssign(tag.attributes, parseNodeAttributes(node));\n node = node.value['rdf:Description'];\n }\n\n objectAssign(tag.value, parseNodeChildrenAsTags(node.value));\n\n tag.description = getDescription(tag.value, name);\n\n return tag;\n}\n\nfunction isCompactStructure(node) {\n return (Object.keys(node.value).length === 0)\n && (node.attributes['rdf:resource'] === undefined);\n}\n\nfunction parseNodeAsCompactStructure(node, name) {\n const value = parseNodeAttributesAsTags(node.attributes);\n\n return {\n value,\n attributes: {},\n description: getDescription(value, name)\n };\n}\n\nfunction isArray(node) {\n return getArrayChild(node.value) !== undefined;\n}\n\nfunction getArrayChild(value) {\n return value['rdf:Bag'] || value['rdf:Seq'] || value['rdf:Alt'];\n}\n\nfunction parseNodeAsArray(node, name) {\n let items = getArrayChild(node.value).value['rdf:li'];\n const attributes = parseNodeAttributes(node);\n const value = [];\n\n if (items === undefined) {\n items = [];\n } else if (!Array.isArray(items)) {\n items = [items];\n }\n\n items.forEach((item) => {\n value.push(parseArrayValue(item));\n });\n\n return {\n value,\n attributes,\n description: getDescription(value, name)\n };\n}\n\nfunction parseArrayValue(item) {\n if (hasNestedSimpleRdfDescription(item)) {\n return parseNodeAsSimpleRdfDescription(item);\n }\n\n if (hasNestedArrayValue(item)) {\n return parseNodeChildrenAsTags(item.value);\n }\n\n return {\n value: item.value,\n attributes: parseNodeAttributes(item),\n description: getDescription(item.value)\n };\n}\n\nfunction hasNestedArrayValue(node) {\n return node.attributes['rdf:parseType'] === 'Resource';\n}\n\nfunction parseNodeAsSimpleValue(node, name) {\n const value = getURIValue(node) || parseXMPObject(node.value);\n\n return {\n value,\n attributes: parseNodeAttributes(node),\n description: getDescription(value, name)\n };\n}\n\nfunction getURIValue(node) {\n return node.attributes && node.attributes['rdf:resource'];\n}\n","var Flatted = (function (Primitive, primitive) {\n\n /*!\n * ISC License\n *\n * Copyright (c) 2018, Andrea Giammarchi, @WebReflection\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n var Flatted = {\n\n parse: function parse(text, reviver) {\n var input = JSON.parse(text, Primitives).map(primitives);\n var value = input[0];\n var $ = reviver || noop;\n var tmp = typeof value === 'object' && value ?\n revive(input, new Set, value, $) :\n value;\n return $.call({'': tmp}, '', tmp);\n },\n\n stringify: function stringify(value, replacer, space) {\n for (var\n firstRun,\n known = new Map,\n input = [],\n output = [],\n $ = replacer && typeof replacer === typeof input ?\n function (k, v) {\n if (k === '' || -1 < replacer.indexOf(k)) return v;\n } :\n (replacer || noop),\n i = +set(known, input, $.call({'': value}, '', value)),\n replace = function (key, value) {\n if (firstRun) {\n firstRun = !firstRun;\n return value;\n // this was invoking twice each root object\n // return i < 1 ? value : $.call(this, key, value);\n }\n var after = $.call(this, key, value);\n switch (typeof after) {\n case 'object':\n if (after === null) return after;\n case primitive:\n return known.get(after) || set(known, input, after);\n }\n return after;\n };\n i < input.length; i++\n ) {\n firstRun = true;\n output[i] = JSON.stringify(input[i], replace, space);\n }\n return '[' + output.join(',') + ']';\n }\n\n };\n\n return Flatted;\n\n function noop(key, value) {\n return value;\n }\n\n function revive(input, parsed, output, $) {\n return Object.keys(output).reduce(\n function (output, key) {\n var value = output[key];\n if (value instanceof Primitive) {\n var tmp = input[value];\n if (typeof tmp === 'object' && !parsed.has(tmp)) {\n parsed.add(tmp);\n output[key] = $.call(output, key, revive(input, parsed, tmp, $));\n } else {\n output[key] = $.call(output, key, tmp);\n }\n } else\n output[key] = $.call(output, key, value);\n return output;\n },\n output\n );\n }\n\n function set(known, input, value) {\n var index = Primitive(input.push(value) - 1);\n known.set(value, index);\n return index;\n }\n\n // the two kinds of primitives\n // 1. the real one\n // 2. the wrapped one\n\n function primitives(value) {\n return value instanceof Primitive ? Primitive(value) : value;\n }\n\n function Primitives(key, value) {\n return typeof value === primitive ? new Primitive(value) : value;\n }\n\n}(String, 'string'));\nexport default Flatted;\nexport const parse = Flatted.parse;\nexport const stringify = Flatted.stringify;\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

                        ' + func(text) + '

                        ';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

                        fred, barney, & pebbles

                        '\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '