@genexus/genexus-ide-ui 1.1.15 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +30 -17
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/data-type-selector/data-type-selector.css +5 -0
- package/dist/collection/components/object-selector/object-selector.js +2 -2
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.css +2 -2
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js +54 -17
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +9 -3
- package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +9 -3
- package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +9 -3
- package/dist/components/gx-ide-data-type-selector.js +1 -1
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +2 -2
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +31 -17
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +2 -2
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +30 -17
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +9 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +9 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +9 -3
- package/dist/genexus-ide-ui/{p-16138f55.entry.js → p-3fbc5a02.entry.js} +38 -37
- package/dist/genexus-ide-ui/p-3fbc5a02.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6b4fdf55.entry.js → p-7cece7a8.entry.js} +21 -21
- package/dist/genexus-ide-ui/p-7cece7a8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-83cc3bcd.entry.js → p-ac131847.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-83cc3bcd.entry.js.map → p-ac131847.entry.js.map} +1 -1
- package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +8 -3
- package/dist/types/components.d.ts +10 -2
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-16138f55.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6b4fdf55.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-data-type-selector.js","mappings":";;;;;AAMO,MAAM,0BAA0B,GAAG,CACxC,QAA8B;IAE9B,MAAM,aAAa,GAAwB;QACzC,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,EAAE,EAAE,IAAI,CAAC,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,qBAAqB,EAAE;oBACrB,eAAe,EAAE;wBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;qBAChC;iBACF;gBACD,IAAI,EAAE,YAAY;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAChC,SAAyB;IAEzB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK;QACnC,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,qBAAqB,EAAE;gBACrB,eAAe,EAAE;oBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;iBACjD;aACF;YACD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb,CAAC;KACH,CAAC,CAAC;AACL,CAAC;;ACjDD,MAAM,mBAAmB,GAAG,oZAAoZ;;;;;;;;;;;;;;;;;;;ACahb,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,SAAS,GAAG,OAAO,CAAC;AAC1B,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;MAQU,oBAAoB;;;;;QAC/B,yDAAuB;QACvB,wCAAoB,KAAK,EAAC;QAC1B,iEAAsE,IAAI,GAAG,EAG1E,EAAC;QAEJ,oDAA4C,IAAI,GAAG,EAAkB,EAAC;QACtE,kDAAgD,IAAI,GAAG,EAGpD,EAAC;QACJ,6CAAoE,IAAI,EAAC;QACzE,oDAA4C;;YAE1C,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,EAAC;QACF,gDAA4B,KAAK,EAAC;QAElC,qDAA8C;QAgF9C,yDAA4B,CAAC,IAAmB;YAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,qBAAqB,CAC5D,CAAC;YACF,IAAI,gBAAgB,EAAE;gBACpB,MAAM,EAAE,GAAI,gBAAgC,CAAC,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,uBAAA,IAAI,+CAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;aAC7C;SACF,EAAC;QAEF,mDAAsB,CAAC,KAAoB;YACzC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAElC,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,cAAc,EAAE;gBAChE,uBAAA,IAAI,sCAAiB,UAAU,MAAA,CAAC;gBAEhC,IAAI,UAAU,KAAK,YAAY,EAAE;;;oBAI/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,qBAAqB,CAC5D,CAAC;oBAEF,IAAI,gBAAgB,KAAK,SAAS,EAAE;wBAClC,OAAO;qBACR;;oBAGD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,sBAAsB,CAC7D,CAAC;oBACF,MAAM,2BAA2B,GAAI,WAA2B,CAAC,EAAE,CAAC;oBAEpE,MAAM,sBAAsB,GAC1B,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAErD,IAAI,2BAA2B,KAAK,sBAAsB,EAAE;wBAC1D,IAAI,CAAC,qBAAqB,EAAE,CAAC;qBAC9B;iBACF;aACF;iBAAM,IAAI,UAAU,KAAK,SAAS,EAAE;gBACnC,uBAAA,IAAI,sDAA0B,MAA9B,IAAI,EAA2B,IAAI,CAAC,CAAC;aACtC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE;gBACjC,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;SACF,EAAC;QAEF,iDAAoB,CAAC,KAAiB;YACpC,IAAI,uBAAA,IAAI,0CAAc,EAAE,CAGvB;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAE7B,OAAO;aACR;iBAAM;gBACL,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBAClC,uBAAA,IAAI,sDAA0B,MAA9B,IAAI,EAA2B,IAAI,CAAC,CAAC;aACtC;YACD,uBAAA,IAAI,sCAAiB,IAAI,MAAA,CAAC;SAC3B,EAAC;QAEF,+CAAkB;YAChB,IAAI,CAAC,uBAAA,IAAI,qCAAS,EAAE;gBAClB,MAAM,4BAA4B,GAA0B,EAAE,CAAC;gBAC/D,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,MAAM,SAAS,GAAG,uBAAA,IAAI,8DAAkC,CAAC,IAAI,CAAC;gBAC9D,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,8DAAkC,CAAC,IAAI,EAAE,EAAE;oBAC/D,4BAA4B,CAAC,IAAI,CAC/B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,CAChD,CAAC;oBACF,IAAI,OAAO,KAAK,SAAS,EAAE;wBACzB,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;qBAC1D;oBACD,OAAO,EAAE,CAAC;iBACX;gBACD,IAAI,CAAC,sBAAsB,GAAG,4BAA4B,CAAC;gBAC3D,uBAAA,IAAI,iCAAY,IAAI,MAAA,CAAC;gBACrB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;aACzC;SACF,EAAC;QAEF,oDAAuB;YACrB,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC;YAC/D,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,CAAC;SACnD,EAAC;QAEM,4BAAuB,GAAG,CAAC,CAAa;YAC9C,IAAI,CAAC,gBAAgB,GAAI,CAAC,CAAC,aAAmC,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5E,MAAM,mBAAmB,GAAG;gBAC1B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAClE,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC;YAClD,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;SACvB,CAAC;QAEF,gDAAmB,CAAC,KAAoB;;;YAGtC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;gBACpD,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;SACF,EAAC;QAEF,6CAAgB;YACd,MAAM,oBAAoB,GACxB,IAAI,CAAC,gBAAgB,KAAK,yBAAyB;kBAC/C,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,MAAM,WAAW,GACf,IAAI,CAAC,gBAAgB,KAAK,eAAe;kBACrC,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,IAAI,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxD,IAAI,IAAI,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;gBACvD,2BAA2B;oBACzB,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;aAClD;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;gBACpD,2BAA2B,GAAG,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GAAG,CAAC;aACrE;iBAAM;gBACL,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;aACrD;YAED,QACE,cACE,KAAK,EAAC,+DACP,IAEC,WAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAChD,cACE,KAAK,EAAE,oBAAoB,oBAAoB,EAAE,gBACrC,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,OAAO,EAAE,uBAAA,IAAI,iDAAqB,EAClC,SAAS,EAAE,uBAAA,IAAI,6CAAiB,IAEhC,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,UAAU,GAAa,CAC/C,CACV,EACD,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,EACxC,OAAO,EAAE,uBAAA,IAAI,4CAAgB,EAC7B,SAAS,EAAE,uBAAA,IAAI,6CAAiB,gBACpB,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,UAGK,EACR,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ;gBAC3B,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB;sBACnC,kBAAkB;sBAClB,iBAAiB,CAAC;gBAExB,QACE,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,gBAC5B,QAAQ,CAAC,IAAI,EACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,SAAS,EAAE,uBAAA,IAAI,6CAAiB,eACrB,QAAQ,CAAC,IAAI,IAExB,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAa,CAClD,EACT;aACH,CAAC,CACE,EACN,SAAG,KAAK,EAAC,kCAAkC,IACxC,2BAA2B,CAC1B,CACG,EACT;SACH,EAAC;QAEF,yCAAY;YACV,IAAI,uBAAA,IAAI,6CAAiB,EAAE;gBACzB,OAAO;aACR;YACD,IAAI,gBAA6B,CAAC;YAElC,UAAU,CAAC;;gBAET,IACE,IAAI,CAAC,SAAS,KAAK,UAAU;oBAC7B,uBAAA,IAAI,iDAAqB,CAAC,UAAU;oBACpC,uBAAA,IAAI,iDAAqB,CAAC,UAAU,EACpC;;oBAEA,MAAM,kBAAkB,GAAG,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,cAAc,CACrE,uBAAA,IAAI,iDAAqB,CAAC,UAAU,CACrC,CAAC;oBACF,IAAI,kBAAkB,EAAE;wBACtB,gBAAgB,GAAG,kBAAkB,CAAC;qBACvC;iBACF;qBAAM;;oBAEL,MAAM,oBAAoB,GACxB,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBAElD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBACtE,gBAAgB,GAAG,WAAgC,CAAC;iBACrD;gBAED,gBAAgB,IAAK,gBAAgC,CAAC,KAAK,EAAE,CAAC;gBAC9D,uBAAA,IAAI,yCAAoB,IAAI,MAAA,CAAC;aAC9B,EAAE,GAAG,CAAC,CAAC;SACT,EAAC;sCAxSuD,EAAE;;2CAEH,EAAE;uBAC9B,IAAI;qCACU,KAAK;mCACP,KAAK;0BAKS,SAAS;;;yBAiDJ,eAAe;4BAK1B,EAAE;;IApDlD,iBAAiB,CAAC,aAAqC;QACrD,IAAI,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,EAAE;YAC1B,OAAO;SACR;QAED,uBAAA,IAAI,8DAAkC,CAAC,KAAK,EAAE,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,QAAQ;YAC5B,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAClE,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CACxC,QAAQ,CAAC,IAAI,EACb,oBAAoB,CACrB,CAAC;YACF,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,UAAU,EAAE;;oBAEd,uBAAA,IAAI,iDAAqB,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACrD,uBAAA,IAAI,iDAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;iBAClD;gBAED,uBAAA,IAAI,iDAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtD,uBAAA,IAAI,+CAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,uBAAA,IAAI,4CAAgB,MAApB,IAAI,CAAkB,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAsBD,mBAAmB,CAAC,eAA+B;QACjD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;KACxE;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,0CAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;;QAEnE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzE;IA+ND,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACxC,IAAI,CAAC,OAAO,IACX,qBACE,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,KAAK,EAChD,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,WAAW,EACtD,IAAI,SACW,KAEjB,eAAS,KAAK,EAAC,MAAM,IACnB,6BACE,GAAG,EAAE,OAAM,EAAE;gBACX,uBAAA,IAAI,sCAAiB,EAAmC,MAAA,CAAC;gBACzD,uBAAA,IAAI,sCAAU,MAAd,IAAI,CAAY,CAAC;aAClB,EACD,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAClC,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAE,uBAAA,IAAI,gDAAoB,EACnC,OAAO,EAAE,uBAAA,IAAI,8CAAkB,GACR,EACxB,uBAAA,IAAI,0CAAc,MAAlB,IAAI,CAAgB,CACb,CACX,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n selected: type.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n selected: dataType.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n padding: var(--mer-spacing--xs);\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemModel,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport { ActionListItemGroup } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/list-box\",\n \"utils/form--full\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ARROW_UP_KEY = \"ArrowUp\";\nconst ARROW_DOWN_KEY = \"ArrowDown\";\nconst ENTER_KEY = \"Enter\";\nconst TAB_KEY = \"Tab\";\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n #dataTypeCategoryMap: Map<string, string> = new Map<string, string>();\n #dataTypeDataIdMap: Map<string, DataTypeData> = new Map<\n string,\n DataTypeData\n >();\n #lastArrowKey: typeof ARROW_UP_KEY | typeof ARROW_DOWN_KEY | null = null;\n #selectedDataTypeIds: SelectedDataTypeIds = {\n // For setting focus\n categoryId: undefined,\n dataTypeId: undefined\n };\n #focusAlreadySet: boolean = false;\n\n #actionListEl!: HTMLChActionListRenderElement;\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n @State() categoriesJustChanged: boolean = false;\n @State() actionListDidRender: boolean = false;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n category.types.forEach(type => {\n const isSelected = type.selected;\n if (isSelected) {\n // For setting focus\n this.#selectedDataTypeIds.categoryId = category.name;\n this.#selectedDataTypeIds.dataTypeId = type.name;\n }\n\n this.#dataTypeCategoryMap.set(type.name, category.id);\n this.#dataTypeDataIdMap.set(type.name, {\n id: category.id,\n name: type.name,\n icon: type.icon,\n selected: type.selected\n });\n });\n });\n this.loading = false;\n this.#showAllObjects();\n this.categoriesJustChanged = true;\n }\n\n /**\n * Callback invoked when the user has selected an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly arrowUpOnFirstElement: ArrowFirstOnFirstElement;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly focusType: \"first-element\" | \"selected\" = \"first-element\";\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #evaluateSelectionChanged = (path: EventTarget[]) => {\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n if (chActionListItem) {\n const id = (chActionListItem as HTMLElement).id;\n const dataTypeData = this.#dataTypeDataIdMap.get(id);\n this.dataTypeSelectedCallback(dataTypeData);\n }\n };\n\n #listKeyDownHandler = (event: KeyboardEvent) => {\n const pressedKey = event.key;\n const path = event.composedPath();\n\n if (pressedKey === ARROW_UP_KEY || pressedKey === ARROW_DOWN_KEY) {\n this.#lastArrowKey = pressedKey;\n\n if (pressedKey === ARROW_UP_KEY) {\n // Check if this is the first group. IF it is, let the host know,\n // so it can close the dialog.\n\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n\n if (chActionListItem !== undefined) {\n return;\n }\n\n // This is a ch-action-list-group\n const actionGroup = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-GROUP\"\n );\n const currentFocusedActionGroupId = (actionGroup as HTMLElement).id;\n\n const firstActionListGroupId =\n this.#actionListEl.shadowRoot.firstElementChild.id;\n\n if (currentFocusedActionGroupId === firstActionListGroupId) {\n this.arrowUpOnFirstElement();\n }\n }\n } else if (pressedKey === ENTER_KEY) {\n this.#evaluateSelectionChanged(path);\n } else if (pressedKey === TAB_KEY) {\n event.stopPropagation();\n }\n };\n\n #listClickHandler = (event: MouseEvent) => {\n if (this.#lastArrowKey) {\n // User navigated with ArrowUp or ArrowDown\n // Ignore, since this was not a click event.\n } else if (event.detail === 0) {\n // ignore keyboard Enter (Enter happens by default on buttons on onClick)\n return;\n } else {\n const path = event.composedPath();\n this.#evaluateSelectionChanged(path);\n }\n this.#lastArrowKey = null;\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #handleButtonTab = (event: KeyboardEvent) => {\n // Prevents bubbling, which causes this component to close, due to how the IDE handles Tab event\n // in a parent element.\n if (event.key === TAB_KEY || event.key === ENTER_KEY) {\n event.stopPropagation();\n }\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n onKeyDown={this.#handleButtonTab}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n onKeyDown={this.#handleButtonTab}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n onKeyDown={this.#handleButtonTab}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n #setFocus = async () => {\n if (this.#focusAlreadySet) {\n return;\n }\n let focusableElement: HTMLElement;\n\n setTimeout(() => {\n // setTimeout as a WA, since the list-box elements are not rendered/read immediatelly\n if (\n this.focusType === \"selected\" &&\n this.#selectedDataTypeIds.categoryId &&\n this.#selectedDataTypeIds.dataTypeId\n ) {\n // set focus on the selected element\n const selectedDataTypeEl = this.#actionListEl.shadowRoot.getElementById(\n this.#selectedDataTypeIds.dataTypeId\n );\n if (selectedDataTypeEl) {\n focusableElement = selectedDataTypeEl;\n }\n } else {\n // set focus of the first element\n const firstActionListGroup =\n this.#actionListEl.shadowRoot.firstElementChild;\n\n const firstButton = firstActionListGroup.shadowRoot.firstElementChild;\n focusableElement = firstButton as HTMLButtonElement;\n }\n\n focusableElement && (focusableElement as HTMLElement).focus();\n this.#focusAlreadySet = true;\n }, 150);\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n ref={async el => {\n this.#actionListEl = el as HTMLChActionListRenderElement;\n this.#setFocus();\n }}\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onKeyDown={this.#listKeyDownHandler}\n onClick={this.#listClickHandler}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\nexport type DataTypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n id: string;\n name: string;\n icon: string;\n selected: boolean;\n};\n\nexport type DataTypeSelectedCallback = (data: DataTypeData) => Promise<void>;\n\ntype SelectedDataTypeIds = {\n categoryId: string;\n dataTypeId: string;\n};\n\nexport type ArrowFirstOnFirstElement = () => Promise<void>;\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-data-type-selector.js","mappings":";;;;;AAMO,MAAM,0BAA0B,GAAG,CACxC,QAA8B;IAE9B,MAAM,aAAa,GAAwB;QACzC,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,EAAE,EAAE,IAAI,CAAC,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,qBAAqB,EAAE;oBACrB,eAAe,EAAE;wBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;qBAChC;iBACF;gBACD,IAAI,EAAE,YAAY;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAChC,SAAyB;IAEzB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK;QACnC,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,qBAAqB,EAAE;gBACrB,eAAe,EAAE;oBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;iBACjD;aACF;YACD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb,CAAC;KACH,CAAC,CAAC;AACL,CAAC;;ACjDD,MAAM,mBAAmB,GAAG,8fAA8f;;;;;;;;;;;;;;;;;;;ACa1hB,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,SAAS,GAAG,OAAO,CAAC;AAC1B,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;MAQU,oBAAoB;;;;;QAC/B,yDAAuB;QACvB,wCAAoB,KAAK,EAAC;QAC1B,iEAAsE,IAAI,GAAG,EAG1E,EAAC;QAEJ,oDAA4C,IAAI,GAAG,EAAkB,EAAC;QACtE,kDAAgD,IAAI,GAAG,EAGpD,EAAC;QACJ,6CAAoE,IAAI,EAAC;QACzE,oDAA4C;;YAE1C,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,EAAC;QACF,gDAA4B,KAAK,EAAC;QAElC,qDAA8C;QAgF9C,yDAA4B,CAAC,IAAmB;YAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,qBAAqB,CAC5D,CAAC;YACF,IAAI,gBAAgB,EAAE;gBACpB,MAAM,EAAE,GAAI,gBAAgC,CAAC,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,uBAAA,IAAI,+CAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;aAC7C;SACF,EAAC;QAEF,mDAAsB,CAAC,KAAoB;YACzC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAElC,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,cAAc,EAAE;gBAChE,uBAAA,IAAI,sCAAiB,UAAU,MAAA,CAAC;gBAEhC,IAAI,UAAU,KAAK,YAAY,EAAE;;;oBAI/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,qBAAqB,CAC5D,CAAC;oBAEF,IAAI,gBAAgB,KAAK,SAAS,EAAE;wBAClC,OAAO;qBACR;;oBAGD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,EAAE,IAAK,EAAkB,CAAC,OAAO,KAAK,sBAAsB,CAC7D,CAAC;oBACF,MAAM,2BAA2B,GAAI,WAA2B,CAAC,EAAE,CAAC;oBAEpE,MAAM,sBAAsB,GAC1B,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAErD,IAAI,2BAA2B,KAAK,sBAAsB,EAAE;wBAC1D,IAAI,CAAC,qBAAqB,EAAE,CAAC;qBAC9B;iBACF;aACF;iBAAM,IAAI,UAAU,KAAK,SAAS,EAAE;gBACnC,uBAAA,IAAI,sDAA0B,MAA9B,IAAI,EAA2B,IAAI,CAAC,CAAC;aACtC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE;gBACjC,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;SACF,EAAC;QAEF,iDAAoB,CAAC,KAAiB;YACpC,IAAI,uBAAA,IAAI,0CAAc,EAAE,CAGvB;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAE7B,OAAO;aACR;iBAAM;gBACL,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBAClC,uBAAA,IAAI,sDAA0B,MAA9B,IAAI,EAA2B,IAAI,CAAC,CAAC;aACtC;YACD,uBAAA,IAAI,sCAAiB,IAAI,MAAA,CAAC;SAC3B,EAAC;QAEF,+CAAkB;YAChB,IAAI,CAAC,uBAAA,IAAI,qCAAS,EAAE;gBAClB,MAAM,4BAA4B,GAA0B,EAAE,CAAC;gBAC/D,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,MAAM,SAAS,GAAG,uBAAA,IAAI,8DAAkC,CAAC,IAAI,CAAC;gBAC9D,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,8DAAkC,CAAC,IAAI,EAAE,EAAE;oBAC/D,4BAA4B,CAAC,IAAI,CAC/B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,CAChD,CAAC;oBACF,IAAI,OAAO,KAAK,SAAS,EAAE;wBACzB,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;qBAC1D;oBACD,OAAO,EAAE,CAAC;iBACX;gBACD,IAAI,CAAC,sBAAsB,GAAG,4BAA4B,CAAC;gBAC3D,uBAAA,IAAI,iCAAY,IAAI,MAAA,CAAC;gBACrB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;aACzC;SACF,EAAC;QAEF,oDAAuB;YACrB,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC;YAC/D,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,CAAC;SACnD,EAAC;QAEM,4BAAuB,GAAG,CAAC,CAAa;YAC9C,IAAI,CAAC,gBAAgB,GAAI,CAAC,CAAC,aAAmC,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5E,MAAM,mBAAmB,GAAG;gBAC1B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAClE,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC;YAClD,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;SACvB,CAAC;QAEF,gDAAmB,CAAC,KAAoB;;;YAGtC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;gBACpD,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;SACF,EAAC;QAEF,6CAAgB;YACd,MAAM,oBAAoB,GACxB,IAAI,CAAC,gBAAgB,KAAK,yBAAyB;kBAC/C,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,MAAM,WAAW,GACf,IAAI,CAAC,gBAAgB,KAAK,eAAe;kBACrC,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,IAAI,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxD,IAAI,IAAI,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;gBACvD,2BAA2B;oBACzB,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;aAClD;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;gBACpD,2BAA2B,GAAG,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GAAG,CAAC;aACrE;iBAAM;gBACL,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;aACrD;YAED,QACE,cACE,KAAK,EAAC,+DACP,IAEC,WAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAChD,cACE,KAAK,EAAE,oBAAoB,oBAAoB,EAAE,gBACrC,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,OAAO,EAAE,uBAAA,IAAI,iDAAqB,EAClC,SAAS,EAAE,uBAAA,IAAI,6CAAiB,IAEhC,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,UAAU,GAAa,CAC/C,CACV,EACD,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,EACxC,OAAO,EAAE,uBAAA,IAAI,4CAAgB,EAC7B,SAAS,EAAE,uBAAA,IAAI,6CAAiB,gBACpB,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,UAGK,EACR,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ;gBAC3B,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB;sBACnC,kBAAkB;sBAClB,iBAAiB,CAAC;gBAExB,QACE,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,gBAC5B,QAAQ,CAAC,IAAI,EACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,SAAS,EAAE,uBAAA,IAAI,6CAAiB,eACrB,QAAQ,CAAC,IAAI,IAExB,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAa,CAClD,EACT;aACH,CAAC,CACE,EACN,SAAG,KAAK,EAAC,kCAAkC,IACxC,2BAA2B,CAC1B,CACG,EACT;SACH,EAAC;QAEF,yCAAY;YACV,IAAI,uBAAA,IAAI,6CAAiB,EAAE;gBACzB,OAAO;aACR;YACD,IAAI,gBAA6B,CAAC;YAElC,UAAU,CAAC;;gBAET,IACE,IAAI,CAAC,SAAS,KAAK,UAAU;oBAC7B,uBAAA,IAAI,iDAAqB,CAAC,UAAU;oBACpC,uBAAA,IAAI,iDAAqB,CAAC,UAAU,EACpC;;oBAEA,MAAM,kBAAkB,GAAG,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,cAAc,CACrE,uBAAA,IAAI,iDAAqB,CAAC,UAAU,CACrC,CAAC;oBACF,IAAI,kBAAkB,EAAE;wBACtB,gBAAgB,GAAG,kBAAkB,CAAC;qBACvC;iBACF;qBAAM;;oBAEL,MAAM,oBAAoB,GACxB,uBAAA,IAAI,0CAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBAElD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBACtE,gBAAgB,GAAG,WAAgC,CAAC;iBACrD;gBAED,gBAAgB,IAAK,gBAAgC,CAAC,KAAK,EAAE,CAAC;gBAC9D,uBAAA,IAAI,yCAAoB,IAAI,MAAA,CAAC;aAC9B,EAAE,GAAG,CAAC,CAAC;SACT,EAAC;sCAxSuD,EAAE;;2CAEH,EAAE;uBAC9B,IAAI;qCACU,KAAK;mCACP,KAAK;0BAKS,SAAS;;;yBAiDJ,eAAe;4BAK1B,EAAE;;IApDlD,iBAAiB,CAAC,aAAqC;QACrD,IAAI,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,EAAE;YAC1B,OAAO;SACR;QAED,uBAAA,IAAI,8DAAkC,CAAC,KAAK,EAAE,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,QAAQ;YAC5B,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAClE,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CACxC,QAAQ,CAAC,IAAI,EACb,oBAAoB,CACrB,CAAC;YACF,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,UAAU,EAAE;;oBAEd,uBAAA,IAAI,iDAAqB,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACrD,uBAAA,IAAI,iDAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;iBAClD;gBAED,uBAAA,IAAI,iDAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtD,uBAAA,IAAI,+CAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,uBAAA,IAAI,4CAAgB,MAApB,IAAI,CAAkB,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAsBD,mBAAmB,CAAC,eAA+B;QACjD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;KACxE;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,0CAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;;QAEnE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzE;IA+ND,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACxC,IAAI,CAAC,OAAO,IACX,qBACE,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,KAAK,EAChD,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,WAAW,EACtD,IAAI,SACW,KAEjB,eAAS,KAAK,EAAC,MAAM,IACnB,6BACE,GAAG,EAAE,OAAM,EAAE;gBACX,uBAAA,IAAI,sCAAiB,EAAmC,MAAA,CAAC;gBACzD,uBAAA,IAAI,sCAAU,MAAd,IAAI,CAAY,CAAC;aAClB,EACD,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAClC,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAE,uBAAA,IAAI,gDAAoB,EACnC,OAAO,EAAE,uBAAA,IAAI,8CAAkB,GACR,EACxB,uBAAA,IAAI,0CAAc,MAAlB,IAAI,CAAgB,CACb,CACX,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n selected: type.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n selected: dataType.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n padding: var(--mer-spacing--xs);\n}\n\n// WA: Reduce font-size. This should be solved on Mercury.\n.list-box::part(item__action),\n.list-box::part(group__action) {\n font-size: var(--font-size-body-s) !important;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemModel,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport { ActionListItemGroup } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/list-box\",\n \"utils/form--full\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ARROW_UP_KEY = \"ArrowUp\";\nconst ARROW_DOWN_KEY = \"ArrowDown\";\nconst ENTER_KEY = \"Enter\";\nconst TAB_KEY = \"Tab\";\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n #dataTypeCategoryMap: Map<string, string> = new Map<string, string>();\n #dataTypeDataIdMap: Map<string, DataTypeData> = new Map<\n string,\n DataTypeData\n >();\n #lastArrowKey: typeof ARROW_UP_KEY | typeof ARROW_DOWN_KEY | null = null;\n #selectedDataTypeIds: SelectedDataTypeIds = {\n // For setting focus\n categoryId: undefined,\n dataTypeId: undefined\n };\n #focusAlreadySet: boolean = false;\n\n #actionListEl!: HTMLChActionListRenderElement;\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n @State() categoriesJustChanged: boolean = false;\n @State() actionListDidRender: boolean = false;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n category.types.forEach(type => {\n const isSelected = type.selected;\n if (isSelected) {\n // For setting focus\n this.#selectedDataTypeIds.categoryId = category.name;\n this.#selectedDataTypeIds.dataTypeId = type.name;\n }\n\n this.#dataTypeCategoryMap.set(type.name, category.id);\n this.#dataTypeDataIdMap.set(type.name, {\n id: category.id,\n name: type.name,\n icon: type.icon,\n selected: type.selected\n });\n });\n });\n this.loading = false;\n this.#showAllObjects();\n this.categoriesJustChanged = true;\n }\n\n /**\n * Callback invoked when the user has selected an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly arrowUpOnFirstElement: ArrowFirstOnFirstElement;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly focusType: \"first-element\" | \"selected\" = \"first-element\";\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #evaluateSelectionChanged = (path: EventTarget[]) => {\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n if (chActionListItem) {\n const id = (chActionListItem as HTMLElement).id;\n const dataTypeData = this.#dataTypeDataIdMap.get(id);\n this.dataTypeSelectedCallback(dataTypeData);\n }\n };\n\n #listKeyDownHandler = (event: KeyboardEvent) => {\n const pressedKey = event.key;\n const path = event.composedPath();\n\n if (pressedKey === ARROW_UP_KEY || pressedKey === ARROW_DOWN_KEY) {\n this.#lastArrowKey = pressedKey;\n\n if (pressedKey === ARROW_UP_KEY) {\n // Check if this is the first group. IF it is, let the host know,\n // so it can close the dialog.\n\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n\n if (chActionListItem !== undefined) {\n return;\n }\n\n // This is a ch-action-list-group\n const actionGroup = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-GROUP\"\n );\n const currentFocusedActionGroupId = (actionGroup as HTMLElement).id;\n\n const firstActionListGroupId =\n this.#actionListEl.shadowRoot.firstElementChild.id;\n\n if (currentFocusedActionGroupId === firstActionListGroupId) {\n this.arrowUpOnFirstElement();\n }\n }\n } else if (pressedKey === ENTER_KEY) {\n this.#evaluateSelectionChanged(path);\n } else if (pressedKey === TAB_KEY) {\n event.stopPropagation();\n }\n };\n\n #listClickHandler = (event: MouseEvent) => {\n if (this.#lastArrowKey) {\n // User navigated with ArrowUp or ArrowDown\n // Ignore, since this was not a click event.\n } else if (event.detail === 0) {\n // ignore keyboard Enter (Enter happens by default on buttons on onClick)\n return;\n } else {\n const path = event.composedPath();\n this.#evaluateSelectionChanged(path);\n }\n this.#lastArrowKey = null;\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #handleButtonTab = (event: KeyboardEvent) => {\n // Prevents bubbling, which causes this component to close, due to how the IDE handles Tab event\n // in a parent element.\n if (event.key === TAB_KEY || event.key === ENTER_KEY) {\n event.stopPropagation();\n }\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n onKeyDown={this.#handleButtonTab}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n onKeyDown={this.#handleButtonTab}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n onKeyDown={this.#handleButtonTab}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n #setFocus = async () => {\n if (this.#focusAlreadySet) {\n return;\n }\n let focusableElement: HTMLElement;\n\n setTimeout(() => {\n // setTimeout as a WA, since the list-box elements are not rendered/read immediatelly\n if (\n this.focusType === \"selected\" &&\n this.#selectedDataTypeIds.categoryId &&\n this.#selectedDataTypeIds.dataTypeId\n ) {\n // set focus on the selected element\n const selectedDataTypeEl = this.#actionListEl.shadowRoot.getElementById(\n this.#selectedDataTypeIds.dataTypeId\n );\n if (selectedDataTypeEl) {\n focusableElement = selectedDataTypeEl;\n }\n } else {\n // set focus of the first element\n const firstActionListGroup =\n this.#actionListEl.shadowRoot.firstElementChild;\n\n const firstButton = firstActionListGroup.shadowRoot.firstElementChild;\n focusableElement = firstButton as HTMLButtonElement;\n }\n\n focusableElement && (focusableElement as HTMLElement).focus();\n this.#focusAlreadySet = true;\n }, 150);\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n ref={async el => {\n this.#actionListEl = el as HTMLChActionListRenderElement;\n this.#setFocus();\n }}\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onKeyDown={this.#listKeyDownHandler}\n onClick={this.#listClickHandler}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\nexport type DataTypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n id: string;\n name: string;\n icon: string;\n selected: boolean;\n};\n\nexport type DataTypeSelectedCallback = (data: DataTypeData) => Promise<void>;\n\ntype SelectedDataTypeIds = {\n categoryId: string;\n dataTypeId: string;\n};\n\nexport type ArrowFirstOnFirstElement = () => Promise<void>;\n"],"version":3}
|
|
@@ -211,10 +211,10 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
|
|
|
211
211
|
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnNew), h("div", { class: "end buttons-spacer" }, h("button", {
|
|
212
212
|
// button cancel
|
|
213
213
|
class: "button-secondary", part: "button button-cancel", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_cancelCallbackHandler, "f")
|
|
214
|
-
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnCancel), h("button", {
|
|
214
|
+
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnCancel), this.multiSelection ? (h("button", { class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_selectAll, "f"), part: "button button-select-all" }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnSelectAll)) : null, h("button", {
|
|
215
215
|
// button confirm
|
|
216
216
|
class: "button-primary", part: "button button-confirm", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_openSelectionCallbackHandler, "f"), disabled: this.loading
|
|
217
|
-
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnConfirm)
|
|
217
|
+
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnConfirm)))));
|
|
218
218
|
});
|
|
219
219
|
_GxIdeObjectSelector_renderObjects.set(this, () => {
|
|
220
220
|
return (h("ch-tabular-grid", { class: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-object-selector.js","mappings":"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","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-object-selector.js","mappings":";;;;;;;;;;AAEA;AACA;AACA;AAEA;AAEO,MAAM,gCAAgC,GAAG,CAC9C,eAA6B,KAE7B,eAAe,CAAC,GAAG,CAAC,UAAU,KAAK;IACjC,KAAK,EAAE,UAAU,CAAC,EAAE;IACpB,OAAO,EAAE,UAAU,CAAC,IAAI;CACzB,CAAC,CAAC,CAAC;AACC,MAAM,8BAA8B,GAAG,CAC5C,aAAyB,KAEzB,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK;IAC7B,KAAK,EAAE,QAAQ,CAAC,EAAE;IAClB,OAAO,EAAE,QAAQ,CAAC,KAAK;CACxB,CAAC,CAAC;;ACrBL,MAAM,iBAAiB,GAAG,62CAA62C;;;;;;;;;;;;;;;;;;;AC4Bv4C,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,sBAAsB;IACtB,yBAAyB;IACzB,kBAAkB;IAClB,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAmB;IAC/C;QACE,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF,IAAI,KAAK,GAAW,IAAI,CAAC;MAQZA,qBAAmB;;;;;QAC9B,uDAAsB;QACtB,4CAAgB,YAAY,CAC1B,gDAAgD,CACjD,EAAC;QAEF,0CAA6B,IAAI,EAAC;;QAKlC,oDAAkC;QAClC,oDAA4C;QAC5C,wDAAgD;QAChD,4DAAuD;QACvD,yDAAiD;QACjD,iDAA+B;QAC/B,yDAAsC;QACtC,mDAAwC;QACxC,mDAAqC;QAkIrC,qDAAyB;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,EAAC;QAEF,oDAAwB,CAAC,CAAgB;YACvC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACrB,uBAAA,IAAI,yDAA8B,MAAlC,IAAI,EAA+B,CAAC,CAAC,CAAC;aACvC;SACF,EAAC;QAEF,2CAAe;YACZ,uBAAA,IAAI,wCAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACjD,EAAC;QAEF,oDAAwB,CAAC,IAA6B;YACpD,MAAM,MAAM,GAAG,uBAAA,IAAI,4CAAiB,CAAC;YAErC,IAAI,IAAI,KAAK,UAAU,EAAE;gBACvB,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;iBACtC;gBACD,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7C,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;iBAC5C;gBACD,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAClF;;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;aACtC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aAC5C;YACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClE,EAAC;QAEF,wCAAY;YACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;SAC1B,EAAC;QAEF,sDAA0B,CAAC,KAAuC;YAChE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,MAA0B,CAAC;YAC3D,IACE,IAAI,CAAC,kBAAkB,KAAK,YAAY,CAAC,SAAS;iBACjD,IAAI,CAAC,kBAAkB,KAAK,YAAY,CAAC,SAAS;oBACjD,uBAAA,IAAI,8CAAmB,CAAC,KAAK,CAAC,EAChC;;gBAEA,uBAAA,IAAI,0DAA+B,MAAnC,IAAI,CAAiC,CAAC;aACvC;SACF,EAAC;QAEF,4DAAgC,CAC9B,KAAoD;YAEpD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;SACpD,EAAC;QAEF,mDAAuB,CAAC,CAAgB;;YAEtC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;SACF,EAAC;QAEF,wDAA4B;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,EAAC;QAEF,4DAAgC,CAAC,CAA6B;YAC5D,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAC1D,EAAC;QAEF,6DAAiC;;;YAE/B,MAAM,aAAa,GAAG,uBAAA,IAAI,8CAAmB,CAAC,KAAK,CAAC;YACpD,MAAM,IAAI,GAAG,MAAA,MAAA,uBAAA,IAAI,sCAAW,0CAAE,KAAK,0CAAE,IAAI,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAsB;gBACjC,OAAO,EAAE,MAAA,uBAAA,IAAI,yCAAc,0CAAE,KAAK;gBAClC,IAAI,EAAE,uBAAA,IAAI,yCAAc,CAAC,KAAK;gBAC9B,QAAQ,EAAE,uBAAA,IAAI,6CAAkB,CAAC,KAAK;gBACtC,MAAM,EAAE,MAAA,MAAA,uBAAA,IAAI,iDAAsB,0CAAE,KAAK,0CAAE,EAAE;gBAC7C,aAAa,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI;gBACnD,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;gBAC9B,YAAY,EACV,aAAa,KAAK,YAAY,CAAC,SAAS;sBACpC,IAAI,IAAI,CAAC,MAAA,uBAAA,IAAI,8CAAmB,0CAAE,KAAK,CAAC;sBACxC,IAAI;aACX,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAqB;gBACpD,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,OAAO,GAAG,uBAAA,IAAI,8CAAmB,MAAvB,IAAI,EAAoB,OAAO,CAAC,CAAC;iBACjD;gBACD,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;gBAClC,uBAAA,IAAI,wCAAa,MAAjB,IAAI,CAAe,CAAC;gBACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB,CAAC,CAAC;SACJ,EAAC;QAEF,4CAAgB;YACd,QACE,cAAQ,KAAK,EAAC,6DAA6D,IACzE,YAAM,KAAK,EAAC,2BAA2B,IACrC,WAAK,KAAK,EAAC,2BAA2B,IACpC;;gBAEE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,SAAS;eAEhB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,OAAO,CAC/B,EAER,eACE,cAAc,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,OAAO,EACpD,QAAQ,EAAE,MAAM,CAAC,aAAa,EAC9B,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,gBAAgB,EACrB,EAAE,EAAC,SAAS,EACZ,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,EAAqB,MACxB,uBAAA,IAAI,qCAAiB,EAAuB,MAAA,CAAC,EAEhD,OAAO,EAAE,uBAAA,IAAI,0DAA+B,GACnC,CACP,EAEN,WAAK,KAAK,EAAC,wBAAwB,IACjC;;gBAEE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,MAAM;eAEb,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,IAAI,CAC5B,EACR,2BACE,cAAc,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,IAAI,EACjD,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,IAAI,EAAC,aAAa,EAClB,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,EACnD,GAAG,EAAE,CAAC,EAA+B,MAClC,uBAAA,IAAI,qCAAiB,EAAiC,MAAA,CAAC,EAE1D,OAAO,EAAE,uBAAA,IAAI,0DAA+B,GACvB,CACnB,EAEN,WAAK,KAAK,EAAC,4BAA4B,IACrC;;gBAEE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU;eAEjB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,QAAQ,CAChC,EACR,2BACE,EAAE,EAAC,UAAU,EACb,KAAK,EAAC,WAAW,EACjB,cAAc,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,QAAQ,EACrD,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,EAC1B,KAAK,EAAE,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,EACtD,KAAK,EAAE,IAAI,CAAC,eAAe,EAC3B,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAE,IAAI,CAAC,UAAU,IAAI,uBAAA,IAAI,0DAA+B,EAC/D,GAAG,EAAE,CAAC,EAA+B,MAClC,uBAAA,IAAI,yCAAqB,EAAiC,MAAA,CAAC,GAEzC,CACnB,EAEN;;gBAEE,KAAK,EAAC,QAAQ,EACd,EAAE,EAAC,QAAQ,EACX,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,GAAG,EAAE,CAAC,EAAkC,MACrC,uBAAA,IAAI,6CACH,EAAoC,MAAA,CAAC,EAEzC,YAAY,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,MAAM,EACjD,aAAa,EAAC,aAAa,EAC3B,cAAc,EAAE,uBAAA,IAAI,0DAA+B,EACnD,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;cACvB,EAE1B;;gBAEE,KAAK,EAAC,uCAAuC,EAC7C,KAAK,EAAE,wBAAwB;eAE/B,WAAK,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,cAAc,IACvC,WAAK,KAAK,EAAC,kCAAkC,IAC3C,WAAK,KAAK,EAAC,yBAAyB,IAClC;;gBAEE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,YAAY;eAEnB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,KAAK,CAC7B,EACR,2BACE,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAC9B,IAAI,EAAC,mBAAmB,EACxB,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,uBAAA,IAAI,uCAAY,EACvB,GAAG,EAAE,CAAC,EAA+B,MAClC,uBAAA,IAAI,0CACH,EAAiC,MAAA,CAAC,EAEtC,OAAO,EAAE,uBAAA,IAAI,mDAAwB,GAChB,CACnB,EAEN,WAAK,KAAK,EAAC,mBAAmB,IAC5B;;gBAEE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,WAAW;eAElB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,IAAI,CAC5B,EACR,eACE,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,aAAa,EAClB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,GAAG,EAAE,CAAC,EAAqB,MACxB,uBAAA,IAAI,kCAAc,EAAuB,MAAA,CAAC,EAE7C,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,UAAU,EACf,WAAW,EAAE,SAAS,EACtB,OAAO,EAAE,uBAAA,IAAI,0DAA+B,GACnC,CACP,EAEN,WAAK,KAAK,EAAC,mBAAmB,IAC5B;;gBAEE,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,iBAAiB,EACf,IAAI,CAAC,kBAAkB,KAAK,eAAe;iBAC9C,EACD,OAAO,EAAC,eAAe;eAEtB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,QAAQ,CAChC,EAER,aACE,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAC,uBAAuB,EAC7B,EAAE,EAAC,eAAe,EAClB,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,CAAC,EAAoB,MACvB,uBAAA,IAAI,0CAAsB,EAAsB,MAAA,CAAC,EAEpD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,KAAK,eAAe,EACrD,OAAO,EAAE,uBAAA,IAAI,0DAA+B,GACrC,CACL,CACF,CACF,CACc,CACjB,CACA,EACT;SACH,EAAC;QAEF,4CAAgB;YACd,QACE,cAAQ,KAAK,EAAC,qCAAqC,IACjD,WACE,KAAK,EAAC,+EAA+E,EACrF,IAAI,EAAC,cAAc,IAEnB,SAAG,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,kBAAkB,IAC/D,uBAAA,IAAI,iDAAsB,MAA1B,IAAI,EAAuB,UAAU,CAAC,CACrC,EACJ,SAAG,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,kBAAkB,IAC/D,uBAAA,IAAI,iDAAsB,MAA1B,IAAI,EAAuB,UAAU,CAAC,CACrC,CACA,EAEN,WAAK,KAAK,EAAC,oGAAoG,IAC7G;;gBAEE,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,uBAAA,IAAI,qDAA0B,GAAG,SAAS,EACnE,QAAQ,EAAE,IAAI,CAAC,OAAO;eAErB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,MAAM,CAC7B,EACT,WAAK,KAAK,EAAC,oBAAoB,IAC7B;;gBAEE,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,sBAAsB,EAC3B,OAAO,EAAE,uBAAA,IAAI,kDAAuB;eAEnC,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,SAAS,CAChC,EACR,IAAI,CAAC,cAAc,IAClB,cACE,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,uBAAA,IAAI,sCAAW,EACxB,IAAI,EAAC,0BAA0B,IAE9B,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,YAAY,CACnC,IACP,IAAI,EACR;;gBAEE,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,uBAAuB,EAC5B,OAAO,EAAE,uBAAA,IAAI,yDAA8B,EAC3C,QAAQ,EAAE,IAAI,CAAC,OAAO;eAErB,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,UAAU,CACjC,CACL,CACF,CACC,EACT;SACH,EAAC;QAEF,6CAAiB;YACf,QACE,uBACE,KAAK,EAAE;oBACL,cAAc,EAAE,IAAI;oBACpB,8BAA8B,EAAE,IAAI;oBACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;iBAC1C,EACD,gBAAgB,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,GAAG,QAAQ,EAC7D,GAAG,EAAE,CAAC,EAA4B,MAAM,uBAAA,IAAI,oCAAgB,EAAE,MAAA,CAAC,EAC/D,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,uBAAA,IAAI,iDAAsB,EACrC,kBAAkB,EAAE,uBAAA,IAAI,yDAA8B,EACtD,UAAU,EAAE,uBAAA,IAAI,yDAA8B,IAE9C,iCAA2B,KAAK,EAAC,yBAAyB,IACxD,sDACuB,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,IAAI,0BAC5B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,IAAI,0BAC5B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,MAAM,0BAC9B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,WAAW,0BACnC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAC7C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,YAAY,0BACpC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,EAC1B,6CACe,uBAAA,IAAI,4CAAiB,CAAC,SAAS,CAAC,UAAU,0BAClC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH,CACA,EAE3B,IAAI,CAAC,OAAO,CAAC,MAAM,IAClB,8BAAwB,KAAK,EAAC,qBAAqB,IAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAe,MAChC,2BACE,KAAK,EAAE,GAAG,CAAC,EAAE,EACb,GAAG,EAAE,GAAG,CAAC,EAAE,EACX,KAAK,EAAC,kBAAkB,IAExB,4BAAsB,KAAK,EAAC,mBAAmB,IAC7C,gBAAU,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAC,SAAS,GAAY,CAC/B,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,CAAC,IAAI,CACY,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,CAAC,IAAI,CACY,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,CAAC,MAAM,CACU,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,CAAC,WAAW,CACK,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAC1B,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CACxB,CACH,CACvB,CAAC,CACqB,KAEzB,8BAAwB,KAAK,EAAC,qBAAqB,IACjD,wCACG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAC1B,qBACE,WAAW,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,KAAK,EAC/C,IAAI,SACW,KAEjB,0BACE,YAAY,EAAE,WAAW,EACzB,UAAU,EAAE,uBAAA,IAAI,4CAAiB,CAAC,UAAU,CAAC,KAAK,GAC9B,CACvB,CAC4B,CACR,CAC1B,CACe,EAClB;SACH,EAAC;QAEF,yCAAa;YACV,uBAAA,IAAI,wCAAqB,CAAC,aAAa,EAAE,CAAC;SAC5C,EAAC;QAEF,oDAAwB;YACtB,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC;SAC7C,EAAC;QAEF,+CAAmB;YACjB,uBAAA,IAAI,mCAAe;gBACjB;oBACE,OAAO,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,SAAS;oBAC/C,KAAK,EAAE,YAAY,CAAC,IAAI;iBACzB;gBACD;oBACE,OAAO,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC7D,KAAK,EAAE,YAAY,CAAC,SAAS;iBAC9B;gBACD;oBACE,OAAO,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;oBAC1D,KAAK,EAAE,YAAY,CAAC,MAAM;iBAC3B;gBACD;oBACE,OAAO,EAAE,uBAAA,IAAI,4CAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;oBAC9D,KAAK,EAAE,YAAY,CAAC,UAAU;iBAC/B;aACF,MAAA,CAAC;SACH,EAAC;QAEF,iDAAqB,CAAC,OAAqB;YACzC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAChC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,KAAK,GAAG,KAAK,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAC;iBACX;gBACD,IAAI,KAAK,GAAG,KAAK,EAAE;oBACjB,OAAO,CAAC,CAAC;iBACV;gBACD,OAAO,CAAC,CAAC;aACV,CAAC,CAAC;SACJ,EAAC;8BAnnBwB,KAAK;uBAKH,KAAK;;uBAUA,EAAE;uCAKU,EAAE;;;;;;sBA8BrB,KAAK;;8BAUY,KAAK;;;;;;;IA2BhD,MAAM,iBAAiB;QACrB,KAAK,GAAG,uBAAA,IAAI,qCAAU,MAAd,IAAI,CAAY,CAAC;KAC1B;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,wCAAoB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QAClE,uBAAA,IAAI,4CAAiB,MAArB,IAAI,CAAmB,CAAC;QACxB,uBAAA,IAAI,iDAAsB,MAA1B,IAAI,CAAwB,CAAC;KAC9B;IAED,gBAAgB;QACd,uBAAA,IAAI,0DAA+B,MAAnC,IAAI,CAAiC,CAAC;QACtC,uBAAA,IAAI,yCAAc,CAAC,KAAK,EAAE,CAAC;KAC5B;IAED,kBAAkB,MAAK;;;;IAMvB,MAAM,gBAAgB,CAAC,gBAAyB;QAC9C,IAAI,gBAAgB,EAAE;YACpB,uBAAA,IAAI,wCAAa,CAAC,OAAO,GAAG,IAAI,CAAC;SAClC;aAAM;YACL,uBAAA,IAAI,wCAAa,CAAC,OAAO,GAAG,KAAK,CAAC;SACnC;KACF;;;;IAMD,MAAM,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,OAAO,OAAO,CAAC;KAChB;IA0fD,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,UAAU,EAAE,uBAAA,IAAI,gDAAqB,EAAE,KAAK,EAAC,QAAQ,IACzD,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,oBACE,GAAG,EAAE,uBAAA,IAAI,yCAAc,EACvB,GAAG,EAAE,CAAC,EAA0B,MAC7B,uBAAA,IAAI,oCAAgB,EAA4B,MAAA,CAAC,GAEtC,EAChB,eAAS,KAAK,EAAC,SAAS,IACrB,uBAAA,IAAI,yCAAc,MAAlB,IAAI,CAAgB,EACpB,uBAAA,IAAI,0CAAe,MAAnB,IAAI,CAAiB,EACrB,uBAAA,IAAI,yCAAc,MAAlB,IAAI,CAAgB,CACb,CACL,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"version":3}
|
|
@@ -4,7 +4,7 @@ import { L as Locale } from './locale.js';
|
|
|
4
4
|
import { d as defineCustomElement$3 } from './gx-ide-empty-state2.js';
|
|
5
5
|
import { d as defineCustomElement$2 } from './ide-loader.js';
|
|
6
6
|
|
|
7
|
-
const bringChangesCss = ":host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
|
|
7
|
+
const bringChangesCss = ":host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge,.pill--to-revert{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged,.pill--reverted{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
|
|
8
8
|
|
|
9
9
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
10
|
if (kind === "a" && !f)
|
|
@@ -100,7 +100,7 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
100
100
|
this.merging = true;
|
|
101
101
|
const newobjectsStatesMap = new Map(this.objectsStatesMap);
|
|
102
102
|
__classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f").forEach(checkedObjectId => {
|
|
103
|
-
newobjectsStatesMap.set(checkedObjectId, "merging");
|
|
103
|
+
newobjectsStatesMap.set(checkedObjectId, this.operationType === "revert" ? "reverting" : "merging");
|
|
104
104
|
});
|
|
105
105
|
this.objectsStatesMap = newobjectsStatesMap;
|
|
106
106
|
await this.mergeObjectsCallback(__classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f"));
|
|
@@ -108,7 +108,7 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
108
108
|
_GxIdeTeamDevBringChanges_mergeSingleObject.set(this, objectId => async () => {
|
|
109
109
|
this.merging = true;
|
|
110
110
|
const newobjectsStatesMap = new Map(this.objectsStatesMap);
|
|
111
|
-
newobjectsStatesMap.set(objectId, "merging");
|
|
111
|
+
newobjectsStatesMap.set(objectId, this.operationType === "revert" ? "reverting" : "merging");
|
|
112
112
|
this.objectsStatesMap = newobjectsStatesMap;
|
|
113
113
|
await this.mergeObjectsCallback([objectId]);
|
|
114
114
|
});
|
|
@@ -178,12 +178,16 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
178
178
|
];
|
|
179
179
|
});
|
|
180
180
|
_GxIdeTeamDevBringChanges_renderObjectState.set(this, (objectType, objectId) => {
|
|
181
|
-
if (objectType === "merging") {
|
|
182
|
-
return (h("span", { class: "merging-spinner-caption" },
|
|
181
|
+
if (objectType === "merging" || objectType === "reverting") {
|
|
182
|
+
return (h("span", { class: "merging-spinner-caption" }, this.operationType === "revert"
|
|
183
|
+
? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.reverting
|
|
184
|
+
: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merging));
|
|
183
185
|
}
|
|
184
186
|
const classes = `pill pill--${objectType}`;
|
|
185
187
|
if (this.mergePillAsButton &&
|
|
186
|
-
(objectType === "to-merge" ||
|
|
188
|
+
(objectType === "to-merge" ||
|
|
189
|
+
objectType === "to-merge-marked" ||
|
|
190
|
+
objectType === "to-revert")) {
|
|
187
191
|
return (h("button", { class: { [classes]: true, "button-secondary": true }, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeSingleObject, "f").call(this, objectId) }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").statesForButton[objectType]));
|
|
188
192
|
}
|
|
189
193
|
else {
|
|
@@ -299,11 +303,12 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
299
303
|
this.commitObjects = [];
|
|
300
304
|
this.enableRowOptions = false;
|
|
301
305
|
this.hideFilters = false;
|
|
306
|
+
this.operationType = "merge";
|
|
302
307
|
this.mergeObjectsCallback = undefined;
|
|
303
308
|
this.mergePillAsButton = undefined;
|
|
304
309
|
}
|
|
305
310
|
objectsStatesMapChanged(newCommitObjectsStateMap) {
|
|
306
|
-
const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(([, state]) => state === "merging");
|
|
311
|
+
const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(([, state]) => state === "merging" || state === "reverting");
|
|
307
312
|
if (!someObjectIsMerging) {
|
|
308
313
|
this.merging = false;
|
|
309
314
|
}
|
|
@@ -314,7 +319,7 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
314
319
|
this.loading = false;
|
|
315
320
|
// All commit objects begin as "pending to merge"
|
|
316
321
|
newCommitObjects.forEach(commitObject => {
|
|
317
|
-
this.objectsStatesMap.set(commitObject.id, "to-merge");
|
|
322
|
+
this.objectsStatesMap.set(commitObject.id, this.operationType === "revert" ? "to-revert" : "to-merge");
|
|
318
323
|
});
|
|
319
324
|
this.objectsFiltered = this.commitObjects;
|
|
320
325
|
}
|
|
@@ -332,8 +337,10 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
332
337
|
value: COMBO_BOX_ALL_VALUE
|
|
333
338
|
},
|
|
334
339
|
{
|
|
335
|
-
caption:
|
|
336
|
-
|
|
340
|
+
caption: this.operationType === "revert"
|
|
341
|
+
? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states["to-revert"]
|
|
342
|
+
: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states["to-merge"],
|
|
343
|
+
value: this.operationType === "revert" ? "to-revert" : "to-merge"
|
|
337
344
|
},
|
|
338
345
|
{
|
|
339
346
|
caption: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.warning,
|
|
@@ -344,8 +351,10 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
344
351
|
value: "error"
|
|
345
352
|
},
|
|
346
353
|
{
|
|
347
|
-
caption:
|
|
348
|
-
|
|
354
|
+
caption: this.operationType === "revert"
|
|
355
|
+
? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.reverted
|
|
356
|
+
: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merged,
|
|
357
|
+
value: this.operationType === "revert" ? "reverted" : "merged"
|
|
349
358
|
}
|
|
350
359
|
], "f");
|
|
351
360
|
if ((_a = this.commitObjects) === null || _a === void 0 ? void 0 : _a.length) {
|
|
@@ -372,7 +381,7 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
372
381
|
if ((message === null || message === void 0 ? void 0 : message.length) > 0) {
|
|
373
382
|
this.commitObjectsMessagesMap.set(objectId, message);
|
|
374
383
|
}
|
|
375
|
-
if (newState === "merged") {
|
|
384
|
+
if (newState === "merged" || newState === "reverted") {
|
|
376
385
|
// remove from checked
|
|
377
386
|
__classPrivateFieldSet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f").filter(checkedObject => checkedObject !== objectId), "f");
|
|
378
387
|
// add to "already merged". This will hide the checkbox
|
|
@@ -389,7 +398,9 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
389
398
|
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body-inline spacing-body-block-start" }, h("div", {
|
|
390
399
|
// header details
|
|
391
400
|
class: "header__detail"
|
|
392
|
-
}, h("p", { class: "detail__title subtitle-semi-bold-xs" },
|
|
401
|
+
}, h("p", { class: "detail__title subtitle-semi-bold-xs" }, this.operationType === "revert"
|
|
402
|
+
? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.revertChangesDetail
|
|
403
|
+
: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.bringChangesDetail), h("p", { class: "detail__commit-name subtitle-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderCommitsNumbers, "f").call(this)), h("div", {
|
|
393
404
|
// genexus server
|
|
394
405
|
class: "detail__genexus-server field field-block"
|
|
395
406
|
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.genexusServer), h("a", { class: "detail__link body-regular-s", href: this.commitDetail.genexusServer, target: "_blank" }, this.commitDetail.genexusServer)), h("div", {
|
|
@@ -398,10 +409,10 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
398
409
|
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.knowledgeBase), h("p", { class: "body-regular-s" }, this.commitDetail.knowledgeBase)), h("div", {
|
|
399
410
|
// current version
|
|
400
411
|
class: "detail__current-version field field-block"
|
|
401
|
-
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), h("div", {
|
|
412
|
+
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), this.operationType === "merge" && (h("div", {
|
|
402
413
|
// merge from version
|
|
403
414
|
class: "detail__merge-from-version field field-block"
|
|
404
|
-
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.mergeFromVersion), h("p", { class: "body-regular-s" }, this.commitDetail.mergeFromVersion))), h("div", {
|
|
415
|
+
}, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.mergeFromVersion), h("p", { class: "body-regular-s" }, this.commitDetail.mergeFromVersion)))), h("div", {
|
|
405
416
|
// header information
|
|
406
417
|
class: "header__information"
|
|
407
418
|
}, h("p", { class: "information__title subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.title), h("div", {
|
|
@@ -430,7 +441,9 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
430
441
|
} }, !this.hideFilters && [
|
|
431
442
|
h("ch-edit", { class: "input", disabled: disableControls, startImgSrc: SEARCH_ICON, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.searchPlaceholder, type: "search", onInput: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_searchInputHandler, "f") }),
|
|
432
443
|
h("ch-combo-box-render", { class: "combo-box", disabled: disableControls, model: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_comboBoxStatesModel, "f"), value: this.stateFilterValue, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_stateChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.statePlaceholder })
|
|
433
|
-
], h("button", { class: "button-primary button-merge-checked", disabled: !this.atLeastOneObjectIsChecked || disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, "f") },
|
|
444
|
+
], h("button", { class: "button-primary button-merge-checked", disabled: !this.atLeastOneObjectIsChecked || disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, "f") }, this.operationType === "revert"
|
|
445
|
+
? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.revertSelected
|
|
446
|
+
: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.mergeSelected)), h("div", { class: "main spacing-body" }, this.commitObjects.length ? (h("ch-tabular-grid", { class: {
|
|
434
447
|
"tabular-grid": true,
|
|
435
448
|
"objects-tabular-grid": true,
|
|
436
449
|
"disabled-custom-selector": this.merging,
|
|
@@ -454,6 +467,7 @@ const GxIdeTeamDevBringChanges$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeT
|
|
|
454
467
|
"commitObjects": [16],
|
|
455
468
|
"enableRowOptions": [4, "enable-row-options"],
|
|
456
469
|
"hideFilters": [4, "hide-filters"],
|
|
470
|
+
"operationType": [1, "operation-type"],
|
|
457
471
|
"mergeObjectsCallback": [16],
|
|
458
472
|
"mergePillAsButton": [4, "merge-pill-as-button"],
|
|
459
473
|
"alreadyMergedObjectsIdsArray": [32],
|