@genexus/genexus-ide-ui 2.0.0 → 2.1.1

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.
Files changed (112) hide show
  1. package/dist/cjs/{common-9020d675.js → common-82ec668f.js} +1 -26
  2. package/dist/cjs/common-82ec668f.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +2 -2
  8. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +2 -2
  12. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
  13. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
  16. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +604 -283
  18. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  19. package/dist/cjs/{helpers-b1b58657.js → helpers-bb6622f5.js} +1 -7
  20. package/dist/cjs/helpers-bb6622f5.js.map +1 -0
  21. package/dist/cjs/loader.cjs.js +1 -1
  22. package/dist/cjs/{tabular-grid-render-80aa5fd2.js → tabular-grid-render-96542933.js} +2 -2
  23. package/dist/cjs/{tabular-grid-render-80aa5fd2.js.map → tabular-grid-render-96542933.js.map} +1 -1
  24. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +11 -4
  25. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +11 -4
  26. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.zh.json +45 -38
  27. package/dist/collection/components/ww-images/helpers.js +14 -0
  28. package/dist/collection/components/ww-images/helpers.js.map +1 -0
  29. package/dist/collection/components/ww-images/ww-images.css +134 -247
  30. package/dist/collection/components/ww-images/ww-images.js +682 -490
  31. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  32. package/dist/components/common.js +1 -25
  33. package/dist/components/common.js.map +1 -1
  34. package/dist/components/gx-ide-ww-images.js +650 -303
  35. package/dist/components/gx-ide-ww-images.js.map +1 -1
  36. package/dist/components/helpers.js +1 -6
  37. package/dist/components/helpers.js.map +1 -1
  38. package/dist/esm/{common-074a209e.js → common-ceaf354a.js} +2 -26
  39. package/dist/esm/common-ceaf354a.js.map +1 -0
  40. package/dist/esm/genexus-ide-ui.js +1 -1
  41. package/dist/esm/gx-ide-comments-viewer.entry.js +1 -1
  42. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  43. package/dist/esm/gx-ide-new-environment.entry.js +2 -2
  44. package/dist/esm/gx-ide-new-kb.entry.js +2 -2
  45. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  46. package/dist/esm/gx-ide-splash.entry.js +1 -1
  47. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  48. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
  49. package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
  50. package/dist/esm/gx-ide-team-dev-history.entry.js +1 -1
  51. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  52. package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
  53. package/dist/esm/gx-ide-ww-files.entry.js +1 -1
  54. package/dist/esm/gx-ide-ww-images.entry.js +605 -284
  55. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  56. package/dist/esm/{helpers-7800bea2.js → helpers-b443f9e9.js} +2 -7
  57. package/dist/esm/helpers-b443f9e9.js.map +1 -0
  58. package/dist/esm/loader.js +1 -1
  59. package/dist/esm/{tabular-grid-render-12c1cc4b.js → tabular-grid-render-adb3f7e5.js} +2 -2
  60. package/dist/esm/{tabular-grid-render-12c1cc4b.js.map → tabular-grid-render-adb3f7e5.js.map} +1 -1
  61. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  62. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  63. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +11 -4
  64. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +11 -4
  65. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.zh.json +45 -38
  66. package/dist/genexus-ide-ui/{p-dc399624.entry.js → p-1356ec09.entry.js} +3 -3
  67. package/dist/genexus-ide-ui/{p-c51f87fb.entry.js → p-18c3c961.entry.js} +2 -2
  68. package/dist/genexus-ide-ui/{p-c583252c.entry.js → p-1d3da80d.entry.js} +3 -3
  69. package/dist/genexus-ide-ui/{p-57c550b7.entry.js → p-21775439.entry.js} +2 -2
  70. package/dist/genexus-ide-ui/{p-d08fc16d.entry.js → p-27786355.entry.js} +6 -6
  71. package/dist/genexus-ide-ui/{p-c1f4458c.entry.js → p-2a59b523.entry.js} +2 -2
  72. package/dist/genexus-ide-ui/{p-5bab65ea.js → p-4d330836.js} +13 -19
  73. package/dist/genexus-ide-ui/p-4d330836.js.map +1 -0
  74. package/dist/genexus-ide-ui/p-520c3763.entry.js +936 -0
  75. package/dist/genexus-ide-ui/p-520c3763.entry.js.map +1 -0
  76. package/dist/genexus-ide-ui/{p-e5e38589.entry.js → p-5929f575.entry.js} +2 -2
  77. package/dist/genexus-ide-ui/{p-e8cd797d.entry.js → p-6b430ac1.entry.js} +3 -3
  78. package/dist/genexus-ide-ui/{p-70707166.entry.js → p-70cd77bc.entry.js} +3 -3
  79. package/dist/genexus-ide-ui/{p-401989bf.entry.js → p-750eb88a.entry.js} +2 -2
  80. package/dist/genexus-ide-ui/{p-ddfba1c8.entry.js → p-885e5d1c.entry.js} +2 -2
  81. package/dist/genexus-ide-ui/p-91e2ebb0.js +86 -0
  82. package/dist/genexus-ide-ui/p-91e2ebb0.js.map +1 -0
  83. package/dist/genexus-ide-ui/{p-2eec8e65.entry.js → p-b44a875d.entry.js} +3 -3
  84. package/dist/genexus-ide-ui/{p-532c2e0f.entry.js → p-ca47bb29.entry.js} +2 -2
  85. package/dist/genexus-ide-ui/{p-528ba8bb.js → p-e2b6d62b.js} +2 -2
  86. package/dist/types/components/ww-images/helpers.d.ts +3 -0
  87. package/dist/types/components/ww-images/ww-images.d.ts +116 -134
  88. package/dist/types/components.d.ts +31 -107
  89. package/package.json +1 -1
  90. package/dist/cjs/common-9020d675.js.map +0 -1
  91. package/dist/cjs/helpers-b1b58657.js.map +0 -1
  92. package/dist/esm/common-074a209e.js.map +0 -1
  93. package/dist/esm/helpers-7800bea2.js.map +0 -1
  94. package/dist/genexus-ide-ui/p-3f89ddf4.js +0 -133
  95. package/dist/genexus-ide-ui/p-3f89ddf4.js.map +0 -1
  96. package/dist/genexus-ide-ui/p-5bab65ea.js.map +0 -1
  97. package/dist/genexus-ide-ui/p-80c25124.entry.js +0 -610
  98. package/dist/genexus-ide-ui/p-80c25124.entry.js.map +0 -1
  99. /package/dist/genexus-ide-ui/{p-dc399624.entry.js.map → p-1356ec09.entry.js.map} +0 -0
  100. /package/dist/genexus-ide-ui/{p-c51f87fb.entry.js.map → p-18c3c961.entry.js.map} +0 -0
  101. /package/dist/genexus-ide-ui/{p-c583252c.entry.js.map → p-1d3da80d.entry.js.map} +0 -0
  102. /package/dist/genexus-ide-ui/{p-57c550b7.entry.js.map → p-21775439.entry.js.map} +0 -0
  103. /package/dist/genexus-ide-ui/{p-d08fc16d.entry.js.map → p-27786355.entry.js.map} +0 -0
  104. /package/dist/genexus-ide-ui/{p-c1f4458c.entry.js.map → p-2a59b523.entry.js.map} +0 -0
  105. /package/dist/genexus-ide-ui/{p-e5e38589.entry.js.map → p-5929f575.entry.js.map} +0 -0
  106. /package/dist/genexus-ide-ui/{p-e8cd797d.entry.js.map → p-6b430ac1.entry.js.map} +0 -0
  107. /package/dist/genexus-ide-ui/{p-70707166.entry.js.map → p-70cd77bc.entry.js.map} +0 -0
  108. /package/dist/genexus-ide-ui/{p-401989bf.entry.js.map → p-750eb88a.entry.js.map} +0 -0
  109. /package/dist/genexus-ide-ui/{p-ddfba1c8.entry.js.map → p-885e5d1c.entry.js.map} +0 -0
  110. /package/dist/genexus-ide-ui/{p-2eec8e65.entry.js.map → p-b44a875d.entry.js.map} +0 -0
  111. /package/dist/genexus-ide-ui/{p-532c2e0f.entry.js.map → p-ca47bb29.entry.js.map} +0 -0
  112. /package/dist/genexus-ide-ui/{p-528ba8bb.js.map → p-e2b6d62b.js.map} +0 -0
@@ -1,235 +1,258 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-b153bfd0.js';
2
- import { L as Locale } from './locale-e5107fad.js';
3
- import { c as config } from './config-5a775b7a.js';
4
- import { r as renderFormItems } from './common-074a209e.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
2
+ import { g as getIconPath } from './assets-manager-7d6fc08f.js';
3
+ import './mer-animated-dots-7cbae6ef.js';
4
+ import 'lit';
5
+ import 'lit/directives/when.js';
6
+ import 'lit/directives/if-defined.js';
5
7
  import { F as FILTER_AFTER } from './constants-f9193da7.js';
6
- import { c as closeOnOutsideClickHandler, h as hiChar, f as formatDate } from './helpers-7800bea2.js';
8
+ import { c as config } from './config-5a775b7a.js';
9
+ import { f as formatDate } from './helpers-b443f9e9.js';
10
+ import { L as Locale } from './locale-e5107fad.js';
11
+
12
+ const mapOptionsToComboBoxItemModel = (options) => {
13
+ if (!options) {
14
+ return [];
15
+ }
16
+ return options.map(option => {
17
+ var _a;
18
+ return {
19
+ value: option.id,
20
+ caption: option.label,
21
+ startImgSrc: (_a = option.iconName) !== null && _a !== void 0 ? _a : ""
22
+ };
23
+ });
24
+ };
7
25
 
8
- const wwImagesCss = ":host{display:grid;block-size:100%}.opacity-0{opacity:0}.gxi-hidden{display:none !important}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-style-regular);font-size:var(--font-size-body-m);font-family:var(--font-family-body);height:100%;display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.buttons-container{display:flex;gap:var(--spacing-gap-m)}.giu-static-pill-icon-and-text,.giu-static-pill{background-color:var(--elevation-background-color, var(--color-accent-surface-elevation-1));padding-inline:var(--spacing-padding-m);color:var(--color-text-neutral-default);font-size:var(--font-size-body-s);line-height:var(--line-height-relaxed);font-weight:var(--font-style-regular);border-radius:4px;min-block-size:25px;display:inline-grid;align-items:center;pointer-events:none}.giu-static-pill-icon-and-text{display:inline-grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:var(--spacing-gap-m)}.tab-full-width-buttons::part(tab-list block-start),.tab-full-width-buttons::part(tab-list block-end){grid-auto-columns:1fr}.tab-full-width-buttons::part(tab block-start){justify-content:center}.tree-view::part(item__header){--icon__system_warning_warning--disabled:var(\n --icon__system_warning_warning--enabled\n )}.tabular-grid{--focus-outline-width:1px}:host{display:block}.module-folder::part(wrapper){padding-block:var(--spacing-padding-xxs);margin-block-start:var(--gxg-label-separation-vertical)}.filter--padding{padding:var(--gx-ide-container__padding)}.filter--gap{gap:var(--spacing-gap-xl)}.filter{display:flex;flex-direction:column}.filter__first-row{display:flex;gap:var(--spacing-gap-l)}.filter__first-row .name,.filter__first-row .module-folder{flex:1}.filter__first-row .filter-btn{flex:none}.filter__first-row .second-column{display:flex;flex-direction:row;align-items:end;gap:var(--spacing-gap-l)}.filter__first-row>*{flex:1}.filter .checkboxes-label-wrapper{display:flex;flex-direction:column;gap:0}.filter .checkboxes-wrapper{display:flex;gap:var(--spacing-gap-l);border-radius:var(--border-radius-sm);height:var(--gxg-form-text-height);box-sizing:border-box;align-items:center;padding-inline-start:var(--spacing-padding-xs)}.filter .user{max-inline-size:100% !important}.filters-outer-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows 200ms}.filters-outer-wrapper--hidden{grid-template-rows:0fr}.filters-inner-wrapper{padding-block-start:var(--gx-ide-container__padding);display:grid;overflow:hidden;grid-template-columns:repeat(12, 1fr);grid-template-rows:repeat(3, 1fr)}.filters-inner-wrapper .search-contents{grid-area:1/1/2/5}.filters-inner-wrapper .category{grid-area:1/5/2/9}.filters-inner-wrapper .options{grid-area:1/9/2/13}.filters-inner-wrapper .date-time{grid-area:2/1/3/5}.filters-inner-wrapper .after-date-time{grid-area:2/5/3/9}.filters-inner-wrapper .user{grid-area:2/9/3/13}.filters-inner-wrapper .style{grid-area:3/1/4/4}.filters-inner-wrapper .language{grid-area:3/4/4/7}.filters-inner-wrapper .density{grid-area:3/7/4/10}.filters-inner-wrapper .layer{grid-area:3/10/4/13}gxg-date-picker{position:absolute;inline-size:calc(33% - 16px)}gxg-date-picker::part(input){block-size:24px}.master-wrapper{block-size:100%;position:relative;display:grid;grid-template-rows:auto 1fr}.grid-images-container{display:grid;grid-template-columns:1fr 220px;grid-column-gap:0;grid-row-gap:0;overflow:auto}.images-information__header{display:flex;align-items:center;gap:var(--spacing-gap-l)}.images-information__header-title{flex:none}.images-grid{grid-template-columns:repeat(2, 1fr);grid-column-gap:0}.images-grid>:nth-child(1){grid-area:1/1/1/3}.images-container .image-item{display:inline-block;inline-size:50%;block-size:128px}.images-container .image-item__container{padding:var(--gx-ide-container__padding)}.images-container .image-item__container img{inline-size:100%;block-size:100%;object-fit:scale-down}.images-container .image-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;inline-size:100%;display:block;font-size:var(--font-size-body-xs);padding-block:var(--spacing-padding-xs);padding-inline:var(--spacing-padding-m);box-sizing:border-box;background-color:var(--color-accent-surface-surface)}.images-container .image-item:nth-child(odd) .image-item__name{border-inline-end:1px solid var(--color-border-surface-on-elevation-1)}.objects-count{grid-template-columns:repeat(2, 1fr)}.objects-count *:nth-child(2){justify-content:flex-end;align-items:flex-start}.hiChar{color:var(--color-text-primary-default);filter:brightness(1.3)}.tabular-grid-ww-images ch-tabular-grid-cell:is(:nth-child(4)){align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}";
26
+ const wwImagesCss = "/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n:host {\n container-type: inline-size;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n grid-template-areas: \"name module-folder\" \"advanced-filter-accordion advanced-filter-accordion\";\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: max-content max-content;\n}\n\n.name {\n grid-area: name;\n}\n\n.module-folder {\n grid-area: module-folder;\n}\n\n.advanced-filter-accordion {\n grid-area: advanced-filter-accordion;\n}\n\n.main {\n --sidebar-width: 376px;\n display: grid;\n grid-template-columns: 1fr var(--sidebar-width);\n overflow: auto;\n padding-block-start: var(--size-16);\n}\n\n.main__grid {\n overflow: auto;\n position: relative;\n}\n\n.tabular-grid-ww-images {\n overflow: auto;\n border-inline-end: var(--section-common-border);\n}\n\nch-tabular-grid-rowset-empty {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 100%;\n z-index: 1;\n}\n\n.main__aside {\n overflow: auto;\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n\n.main__filter {\n display: grid;\n grid-auto-rows: max-content;\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas: \"category options after\" \"style language user\" \"density layer date-time\" \"search-by-contents search-by-contents button-reset\";\n overflow: auto;\n}\n\n.category {\n grid-area: category;\n}\n\n.options {\n grid-area: options;\n}\n\n.after-date-time {\n grid-area: after;\n}\n\n.user {\n grid-area: user;\n}\n\n.date-time {\n grid-area: date-time;\n}\n\n.style {\n grid-area: style;\n}\n\n.language {\n grid-area: language;\n}\n\n.density {\n grid-area: density;\n}\n\n.layer {\n grid-area: layer;\n}\n\n.search-by-contents {\n grid-area: search-by-contents;\n}\n\n.button-reset {\n grid-area: button-reset;\n align-self: end;\n justify-self: end;\n}\n\n.main__images-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--size-8);\n position: relative;\n z-index: 1;\n}\n.main__images-container .figure {\n margin: 0;\n background-color: var(--color-accent-surface-elevation-2);\n display: grid;\n grid-template-rows: minmax(0, 1fr) max-content;\n gap: var(--size-4);\n padding: var(--size-8);\n border-radius: var(--size-4);\n opacity: 0;\n animation: fadeIn 300ms forwards;\n aspect-ratio: 1/1;\n}\n.main__images-container .figure__picture {\n display: flex;\n align-items: center;\n justify-content: center;\n min-block-size: 0;\n}\n.main__images-container .figure__img {\n display: block;\n max-inline-size: 100%;\n max-block-size: 100%;\n inline-size: auto;\n block-size: auto;\n object-fit: contain;\n}\n.main__images-container .figure__figcaption {\n text-align: center;\n font-size: var(--font-size-body-xs);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n inline-size: 100%;\n}\n\n.tabular-grid-ww-images ch-tabular-grid-cell:is(:nth-child(1), :nth-child(2), :nth-child(3), :nth-child(4), :nth-child(5), :nth-child(6), :nth-child(7)) {\n align-items: start;\n justify-content: start;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-inline-size: 0;\n}\n@keyframes fadeIn {\n to {\n opacity: 1;\n }\n}\n@container (max-width: 992px) {\n .main {\n --sidebar-width: 288px;\n }\n\n .main__images-container {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n@container (max-width: 768px) {\n .main {\n --sidebar-width: 200px;\n }\n\n .main__images-container {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@container (max-width: 640px) {\n .main {\n --sidebar-width: 112px;\n }\n\n .main__images-container {\n grid-template-columns: 1fr;\n }\n}";
9
27
 
28
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
29
+ if (kind === "a" && !f)
30
+ throw new TypeError("Private accessor was defined without a getter");
31
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
32
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
33
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
34
+ };
35
+ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
36
+ if (kind === "m")
37
+ throw new TypeError("Private method is not writable");
38
+ if (kind === "a" && !f)
39
+ throw new TypeError("Private accessor was defined without a setter");
40
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
41
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
42
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
43
+ };
44
+ var _GxIdeWWImages_instances, _GxIdeWWImages_componentLocale, _GxIdeWWImages_filterInitialData, _GxIdeWWImages_ACCORDION_MODEL, _GxIdeWWImages_ACCORDION_FILTER_ID, _GxIdeWWImages_imagesMap, _GxIdeWWImages_chGridEl, _GxIdeWWImages_filterModuleEl, _GxIdeWWImages_isInitialLoad, _GxIdeWWImages_deleteSelectionCallbackHandler, _GxIdeWWImages_deselectAll, _GxIdeWWImages_handleNameChange, _GxIdeWWImages_handleSearchContentsChange, _GxIdeWWImages_applyDefaultCategory, _GxIdeWWImages_handleCategoryChange, _GxIdeWWImages_handleAllDescendantsChange, _GxIdeWWImages_handleAfterTypeChange, _GxIdeWWImages_handleUserChange, _GxIdeWWImages_handleModifiedDateChange, _GxIdeWWImages_handleStyleChange, _GxIdeWWImages_handleLanguageChange, _GxIdeWWImages_handleDensityChange, _GxIdeWWImages_handleLayerChange, _GxIdeWWImages_handleModuleChange, _GxIdeWWImages_filterImagesInformationHandler, _GxIdeWWImages_getImages, _GxIdeWWImages_getToday, _GxIdeWWImages_addEventListeners, _GxIdeWWImages_getImageValue, _GxIdeWWImages_sortImages, _GxIdeWWImages_handleColumnSortChanged, _GxIdeWWImages_newObjectCallbackHandler, _GxIdeWWImages_openSelectionCallBackHandler, _GxIdeWWImages_toggleModifiedControls, _GxIdeWWImages_renderHeader, _GxIdeWWImages_renderFilter, _GxIdeWWImages_renderImages, _GxIdeWWImages_renderTabularGrid, _GxIdeWWImages_resetFilterHandler, _GxIdeWWImages_saveInitialFilterData, _GxIdeWWImages_selectAll;
10
45
  const CSS_BUNDLES = [
11
46
  "resets/box-sizing",
12
- // "utils/form",
13
- // "utils/layout",
14
- // "utils/typography",
15
- // "components/button",
16
- // "components/checkbox",
17
- // "components/edit",
18
- "components/tabular-grid"
47
+ "components/accordion",
48
+ "components/button",
49
+ "components/checkbox",
50
+ "components/combo-box",
51
+ "components/edit",
52
+ "components/icon",
53
+ "components/tabular-grid",
54
+ "components/sidebar",
55
+ "utils/form",
56
+ "utils/layout",
57
+ "utils/typography",
58
+ "utils/spacing",
59
+ "chameleon/scrollbar"
19
60
  ];
61
+ const ALL_DESCENDANTS_VALUE = "all-descendants";
62
+ const MODIFIED_VALUE = "modified";
63
+ let TODAY = null;
64
+ // icons
65
+ const RESET_ICON = getIconPath({
66
+ category: "gemini-tools",
67
+ name: "reset",
68
+ colorType: "interactive"
69
+ });
70
+ const SEARCH_ICON = getIconPath({
71
+ category: "gemini-tools",
72
+ name: "search",
73
+ colorType: "neutral"
74
+ });
75
+ const NOTICE_ICON = getIconPath({
76
+ category: "gemini-tools",
77
+ name: "notice",
78
+ colorType: "on-elevation"
79
+ });
20
80
  const GxIdeWWImages = class {
21
81
  constructor(hostRef) {
22
82
  registerInstance(this, hostRef);
23
- this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
24
- this.componentDidRenderFirstTime = createEvent(this, "componentDidRenderFirstTime", 7);
25
- this.renderedFirstTime = false;
26
- // 9.LOCAL METHODS //
27
- this.attachDetectClickOutsideFilter = () => {
28
- document.addEventListener("click", this.detectClickOutsideFilter);
29
- };
30
- this.removeDetectClickOutsideFilter = () => {
31
- document.removeEventListener("click", this.detectClickOutsideFilter);
32
- };
33
- this.detectClickOutsideFilter = (e) => {
34
- const clickedOutside = closeOnOutsideClickHandler(e, this.filterEl);
35
- if (clickedOutside) {
36
- this.filtersHidden = true;
37
- }
38
- else {
39
- this.filtersHidden = false;
40
- }
41
- };
83
+ _GxIdeWWImages_instances.add(this);
42
84
  /**
43
- * @description This is needed for resetting the filter. When the user resets the filter, all the filter controls values have to be restored to the value they had on componentDidLoad.
85
+ * The component hard-coded strings translations.
44
86
  */
45
- this.saveInitialFilterData = () => {
46
- this.filterInitialData = {
47
- name: this.filterNameEl.value,
48
- module: this.filterModuleEl.value,
49
- searchContents: this.filterSearchContentsEl.value,
50
- category: this.filterCategoryEl.value,
51
- allDescendants: this.filterAllDescendantsEl.checked,
52
- modified: this.filterModifiedEl.checked,
53
- dateTime: this.filterModifiedDateEl.value,
54
- after: this.filterAfterTypeEl.value,
55
- user: this.filterUserEl.value,
56
- style: this.filterStyleEl.value,
57
- language: this.filterLanguageEl.value,
58
- density: this.filterDensityEl.value,
59
- layer: this.filterLayerEl.value
60
- };
61
- };
62
- // 9.LOCAL METHODS -> Renders //
63
- this.renderFilter = () => {
64
- var _a, _b, _c, _d, _e;
65
- return (h("div", { class: "filter filter--padding", ref: (el) => (this.filterEl = el) }, h("div", { class: "filter__first-row" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.name, ref: (el) => (this.filterNameEl = el), part: "filter-name", class: "name" }), h("div", { class: "second-column" }, h("gx-ide-entity-selector", { "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder", part: "filter-module-folder" }), h("gxg-button", { onClick: this.resetFilterHandler, part: "gxg-button-reset-filter", type: "secondary-icon-only", icon: "gemini-tools/reset", class: "reset-filter-btn" }), h("gxg-button", { onClick: this.toggleFiltersHandler, part: "gxg-button gxg-button--more-less", type: "secondary-icon-only", icon: "window-tools/filter-conditions" , class: "filter-btn" }))), h("div", { class: {
66
- "filters-outer-wrapper": true,
67
- "filters-outer-wrapper--hidden": this.filtersHidden
68
- } }, h("div", { class: {
69
- "filter": true,
70
- "filter--gap": true,
71
- "filters-inner-wrapper": true
72
- } }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.search, ref: (el) => (this.filterSearchContentsEl = el), class: { "search-contents": true }, part: "filter-search" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, renderFormItems("gxg-combo-box-item", (_a = this.categories) !== null && _a !== void 0 ? _a : [])), h("div", { class: "options" }, h("gxg-label", { labelPosition: "above", center: false }, "Options:"), h("div", { class: "checkboxes-wrapper" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.allDescendants, ref: (el) => (this.filterAllDescendantsEl =
73
- el), class: "all-descendants", part: "filter-all-descendants" }), h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, ref: (el) => (this.filterModifiedEl = el), class: "modified", part: "filter-modified" }))), h("div", { class: {
74
- "hide": !this.filterModified ||
75
- this.filterAfterType !== FILTER_AFTER.DATE_TIME,
76
- "date-time": true
77
- }, part: "filter-datetime" }, h("div", { class: "date-time-wrapper" }, h("gxg-label", { "label-position": "above" }, this._componentLocale.filter.dateTime), h("gxg-date-picker", { class: "date-picker", disabled: !this.filterModified, ref: (el) => (this.filterModifiedDateEl = el) }))), h("gxg-combo-box", { class: "after-date-time", disabled: !this.filterModified, label: this._componentLocale.filter.afterLabel, "disable-filter": true, value: this.filterAfterType, ref: (el) => (this.filterAfterTypeEl = el), part: "filter-after-type" }, renderFormItems("gxg-combo-box-item", [
78
- {
79
- id: FILTER_AFTER.NONE,
80
- label: this._componentLocale.filter.afterNone,
81
- value: FILTER_AFTER.NONE
82
- },
83
- {
84
- id: FILTER_AFTER.DATE_TIME,
85
- label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],
86
- value: FILTER_AFTER.DATE_TIME
87
- },
88
- {
89
- id: FILTER_AFTER.IMPORT,
90
- label: this._componentLocale.filter[FILTER_AFTER.IMPORT],
91
- value: FILTER_AFTER.IMPORT
92
- },
93
- {
94
- id: FILTER_AFTER.LAST_BUILD,
95
- label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],
96
- value: FILTER_AFTER.LAST_BUILD
87
+ _GxIdeWWImages_componentLocale.set(this, void 0);
88
+ _GxIdeWWImages_filterInitialData.set(this, void 0);
89
+ _GxIdeWWImages_ACCORDION_MODEL.set(this, []);
90
+ _GxIdeWWImages_ACCORDION_FILTER_ID.set(this, "advanced-filter");
91
+ _GxIdeWWImages_imagesMap.set(this, new Map());
92
+ _GxIdeWWImages_chGridEl.set(this, void 0);
93
+ // Only keep refs that are actually needed for operations (event listeners)
94
+ _GxIdeWWImages_filterModuleEl.set(this, void 0);
95
+ /**
96
+ * Flag to prevent triggering #getImages on initial load
97
+ */
98
+ _GxIdeWWImages_isInitialLoad.set(this, true);
99
+ _GxIdeWWImages_deleteSelectionCallbackHandler.set(this, () => {
100
+ this.deleteSelectionCallback(this.selectedObjectsIds);
101
+ });
102
+ _GxIdeWWImages_deselectAll.set(this, () => {
103
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").selectAllRows(false);
104
+ });
105
+ /**
106
+ * Individual handler functions for each filter control
107
+ */
108
+ _GxIdeWWImages_handleNameChange.set(this, (event) => {
109
+ this.filterNameValue = (event.detail ||
110
+ event.target.value);
111
+ });
112
+ _GxIdeWWImages_handleSearchContentsChange.set(this, (event) => {
113
+ this.filterSearchContentsValue = (event.detail ||
114
+ event.target.value);
115
+ });
116
+ _GxIdeWWImages_applyDefaultCategory.set(this, () => {
117
+ if (this.defaultCategory && this.categoriesComboBoxModel.length > 0) {
118
+ const categoryExists = this.categoriesComboBoxModel.some(item => item.value === this.defaultCategory);
119
+ if (categoryExists) {
120
+ this.filterCategoryValue = this.defaultCategory;
97
121
  }
98
- ])), h("gxg-form-text", { disabled: !this.filterModified, labelPosition: "above", label: this._componentLocale.filter.user, ref: (el) => (this.filterUserEl = el), value: "hey", centerLabel: false, class: "user", part: "filter-user" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.style, disabled: !this.styles, ref: (el) => (this.filterStyleEl = el), class: "style", part: "filter-style" }, renderFormItems("gxg-combo-box-item", (_b = this.styles) !== null && _b !== void 0 ? _b : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.language, disabled: !this.languages, ref: (el) => (this.filterLanguageEl = el), class: "language", part: "filter-language" }, renderFormItems("gxg-combo-box-item", (_c = this.languages) !== null && _c !== void 0 ? _c : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.density, disabled: !this.densities, ref: (el) => (this.filterDensityEl = el), class: "density", part: "filter-density" }, renderFormItems("gxg-combo-box-item", (_d = this.densities) !== null && _d !== void 0 ? _d : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.layer, disabled: !this.layers, ref: (el) => (this.filterLayerEl = el), class: "layer", part: "filter-layer" }, renderFormItems("gxg-combo-box-item", (_e = this.layers) !== null && _e !== void 0 ? _e : []))))));
99
- };
100
- this.renderImagesData = () => {
101
- return (
102
- /* images information*/
103
- h("gx-ide-container", { contentBorderEnd: true, noContentPadding: true, class: { "images-information": true, "overflow-auto": true }, part: "grid-container" }, this.secondaryFilter ? (h("header", { class: "images-information__header", slot: "header" }, h("gxg-form-text", { icon: "gemini-tools/search", "icon-position": "start", placeholder: "Search by any field", onInput: this.filterInputHandler }))) : null, h("ch-tabular-grid", { ref: (el) => (this.chGridEl = el), part: "ch-grid-images", rowSelectionMode: "single", class: "tabular-grid tabular-grid-ww-images" }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { columnName: "", columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.name, columnNameHidden: false, settingable: false, sortable: false, class: "tabular-grid-column", size: config.tabularGrid.colSize.common }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.module, columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.common, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.description, columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.commonDouble, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.modifiedDate, columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.lastUser, columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { columnName: this._componentLocale.tableHead.importDate, columnNameHidden: false, settingable: false, sortable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column" })), this.filteredImages.map((obj) => (h("ch-tabular-grid-row", { rowid: obj.id, class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, h("ch-image", { src: obj.icon })), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(obj.name, this.filterImagesInputValue)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(obj.module, this.filterImagesInputValue)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(obj.description, this.filterImagesInputValue)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(`${formatDate(obj.modifiedDate)}`, this.filterImagesInputValue)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(obj.lastUser, this.filterImagesInputValue)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, hiChar(`${formatDate(obj.importDate)}`, this.filterImagesInputValue))))))));
104
- };
105
- this.renderImages = () => {
106
- return (
107
- /* tiles */
108
- h("gx-ide-container", { noContentPadding: true, class: "overflow-auto", titleHeightAsInput: this.secondaryFilter ? this._componentLocale.imagesDataTitle : null, part: "image-data-container" }, h("div", { class: "images-container" }, this.imagesSelectedItems.map(item => (h("div", { class: "image-item" }, h("div", { class: "image-item__container" }, h("div", { class: "img" }, h("img", { src: item.url, alt: item.id }))), h("span", { class: "image-item__name" }, item.name)))))));
109
- };
110
- // 9.LOCAL METHODS -> Other //
111
- this.getImages = () => {
112
- let filters = {
113
- name: this.filterNameEl.value,
114
- parent: this.filterModuleEl.value ? this.filterModuleEl.value.id : null
122
+ }
123
+ });
124
+ _GxIdeWWImages_handleCategoryChange.set(this, (event) => {
125
+ this.filterCategoryValue = event.detail;
126
+ });
127
+ _GxIdeWWImages_handleAllDescendantsChange.set(this, (event) => {
128
+ this.filterAllDescendantsValue = event.detail === ALL_DESCENDANTS_VALUE;
129
+ });
130
+ _GxIdeWWImages_handleAfterTypeChange.set(this, (event) => {
131
+ this.filterAfterTypeValue = event.detail;
132
+ this.afterCurrentValue = event.detail;
133
+ });
134
+ _GxIdeWWImages_handleUserChange.set(this, (event) => {
135
+ this.filterUserValue = (event.detail ||
136
+ event.target.value);
137
+ });
138
+ _GxIdeWWImages_handleModifiedDateChange.set(this, (event) => {
139
+ this.filterModifiedDateValue = event.target.value;
140
+ });
141
+ _GxIdeWWImages_handleStyleChange.set(this, (event) => {
142
+ this.filterStyleValue = event.detail;
143
+ });
144
+ _GxIdeWWImages_handleLanguageChange.set(this, (event) => {
145
+ this.filterLanguageValue = event.detail;
146
+ });
147
+ _GxIdeWWImages_handleDensityChange.set(this, (event) => {
148
+ this.filterDensityValue = event.detail;
149
+ });
150
+ _GxIdeWWImages_handleLayerChange.set(this, (event) => {
151
+ this.filterLayerValue = event.detail;
152
+ });
153
+ _GxIdeWWImages_handleModuleChange.set(this, () => {
154
+ // Module change is handled via event listener, but we update state
155
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f")) {
156
+ this.filterModuleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f").value;
157
+ }
158
+ });
159
+ _GxIdeWWImages_filterImagesInformationHandler.set(this, () => {
160
+ // Copy images from server to tabularGridData (will be sorted before rendering)
161
+ this.tabularGridData = [...this.images];
162
+ });
163
+ _GxIdeWWImages_getImages.set(this, () => {
164
+ __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").clear();
165
+ const filters = {
166
+ name: this.filterNameValue,
167
+ searchContents: this.filterSearchContentsValue,
168
+ category: this.filterCategoryValue,
169
+ parent: this.filterModuleValue ? this.filterModuleValue.id : null,
170
+ allDescendants: this.filterAllDescendantsValue,
171
+ modifiedAfter: this.filterAfterTypeValue,
172
+ modifiedBy: this.filterUserValue,
173
+ modifiedDate: this.filterModifiedDateValue
174
+ ? new Date(this.filterModifiedDateValue)
175
+ : undefined,
176
+ style: this.filterStyleValue,
177
+ language: this.filterLanguageValue,
178
+ density: this.filterDensityValue,
179
+ layer: this.filterLayerValue
115
180
  };
116
- const modified = this.filterModifiedEl.checked;
117
- const modifiedAfter = this.filterAfterTypeEl.value;
118
- filters = Object.assign(Object.assign({}, filters), { searchContents: this.filterSearchContentsEl.value, category: this.filterCategoryEl.value, allDescendants: this.filterAllDescendantsEl.checked, modifiedAfter: modified ? modifiedAfter : null, modifiedBy: modified ? this.filterUserEl.value : null, modifiedDate: modified && modifiedAfter === FILTER_AFTER.DATE_TIME
119
- ? this.filterModifiedDateEl.value
120
- : null, style: this.filterStyleEl.value, language: this.filterLanguageEl.value, density: this.filterDensityEl.value, layer: this.filterLayerEl.value });
121
181
  this.loadCallback(filters).then((items) => {
122
182
  this.images = items;
123
183
  this.selectedObjectsIds = [];
124
- this.deselectAll();
125
- this.filterImagesInformationHandler();
126
- });
127
- };
128
- this.newObjectCallbackHandler = () => {
129
- this.newObjectCallback();
130
- };
131
- this.openSelectionCallBackHandler = () => {
132
- this.openSelectionCallback(this.selectedObjectsIds);
133
- };
134
- this.deleteSelectionCallbackHandler = () => {
135
- this.deleteSelectionCallback(this.selectedObjectsIds);
136
- };
137
- this.resetFilterHandler = () => {
138
- if (this.filterInitialData) {
139
- this.filterNameEl.value = this.filterInitialData.name;
140
- this.filterModuleEl.value = this.filterInitialData.module;
141
- this.filterSearchContentsEl.value = this.filterInitialData.searchContents;
142
- this.filterCategoryEl.value = this.filterInitialData.category;
143
- this.filterAllDescendantsEl.checked =
144
- this.filterInitialData.allDescendants;
145
- this.filterModifiedEl.checked = this.filterInitialData.modified;
146
- this.filterModifiedDateEl.value = this.filterInitialData.dateTime;
147
- this.filterAfterTypeEl.value = this.filterInitialData.after;
148
- this.filterUserEl.value = this.filterInitialData.user;
149
- this.filterStyleEl.value = this.filterInitialData.style;
150
- this.filterLanguageEl.value = this.filterInitialData.language;
151
- this.filterDensityEl.value = this.filterInitialData.density;
152
- this.filterLayerEl.value = this.filterInitialData.layer;
153
- }
154
- };
155
- this.toggleFiltersHandler = () => {
156
- this.filtersHidden = !this.filtersHidden;
157
- };
158
- this.selectAll = () => {
159
- this.chGridEl.selectAllRows();
160
- };
161
- this.deselectAll = () => {
162
- this.chGridEl.selectAllRows(false);
163
- };
164
- this.listenChanges = () => {
165
- /* name */
166
- this.filterNameEl.addEventListener("change", () => {
167
- this.getImages();
184
+ __classPrivateFieldGet(this, _GxIdeWWImages_deselectAll, "f").call(this);
185
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterImagesInformationHandler, "f").call(this);
168
186
  });
187
+ });
188
+ _GxIdeWWImages_getToday.set(this, () => {
189
+ const now = new Date();
190
+ const date = now.toISOString().split("T")[0];
191
+ const time = now.toISOString().split("T")[1].slice(0, 5); // Only take 'HH:MM' part
192
+ return `${date}T${time}`;
193
+ });
194
+ _GxIdeWWImages_addEventListeners.set(this, () => {
169
195
  /* module/folder */
170
- this.filterModuleEl.addEventListener("valueChanged", () => {
171
- this.getImages();
172
- });
173
- /* search contents*/
174
- this.filterSearchContentsEl.addEventListener("change", () => {
175
- this.getImages();
176
- });
177
- /* category */
178
- this.filterCategoryEl.addEventListener("valueChanged", () => {
179
- this.getImages();
180
- });
181
- /* (options) -> all descendants */
182
- this.filterAllDescendantsEl.addEventListener("change", () => {
183
- this.getImages();
184
- });
185
- /* (options) -> modified */
186
- this.filterModifiedEl.addEventListener("change", (e) => {
187
- this.filterModified = e.detail.value;
188
- this.getImages();
189
- });
190
- /* date/time */
191
- this.filterModifiedDateEl.addEventListener("valueChanged", () => {
192
- this.getImages();
193
- });
194
- /* after */
195
- this.filterAfterTypeEl.addEventListener("valueChanged", () => {
196
- this.filterAfterType = this.filterAfterTypeEl.value;
197
- this.getImages();
198
- });
199
- /* user */
200
- this.filterUserEl.addEventListener("change", () => {
201
- this.getImages();
202
- });
203
- /* style */
204
- this.filterStyleEl.addEventListener("valueChanged", () => {
205
- this.getImages();
206
- });
207
- /* language */
208
- this.filterLanguageEl.addEventListener("valueChanged", () => {
209
- this.getImages();
210
- });
211
- /* density */
212
- this.filterDensityEl.addEventListener("valueChanged", () => {
213
- this.getImages();
214
- });
215
- /* layer */
216
- this.filterLayerEl.addEventListener("valueChanged", () => {
217
- this.getImages();
196
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f").addEventListener("valueChanged", () => {
197
+ __classPrivateFieldGet(this, _GxIdeWWImages_handleModuleChange, "f").call(this);
218
198
  });
219
199
  // for grid selection
220
- this.chGridEl.addEventListener("selectionChanged", (ev) => {
221
- this.loadImageItemsCallback(ev.detail.rowsId[0]).then((items) => {
222
- this.imagesSelectedItems = items;
223
- });
224
- });
225
- this.chGridEl.addEventListener("rowDoubleClicked", () => {
226
- this.openSelectionCallBackHandler();
227
- });
228
- this.chGridEl.addEventListener("selectionChanged", (ev) => {
200
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("selectionChanged", (ev) => {
229
201
  this.selectedObjectsIds = ev.detail.rowsId;
230
202
  this.selectionObjectChangedCallback(this.selectedObjectsIds);
203
+ if (this.selectedObjectsIds.length === 0) {
204
+ this.imagesSelectedItems = [];
205
+ return;
206
+ }
207
+ // Collect cached items immediately
208
+ const cachedItems = [];
209
+ const idsToLoad = [];
210
+ this.selectedObjectsIds.forEach((selectedId) => {
211
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").has(selectedId)) {
212
+ const items = __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").get(selectedId);
213
+ if (items) {
214
+ cachedItems.push(...items);
215
+ }
216
+ }
217
+ else {
218
+ idsToLoad.push(selectedId);
219
+ }
220
+ });
221
+ // If all items were cached, update immediately
222
+ if (idsToLoad.length === 0) {
223
+ this.imagesSelectedItems = cachedItems;
224
+ return;
225
+ }
226
+ // Store current selection to verify later (prevents race conditions)
227
+ const currentSelection = [...this.selectedObjectsIds].sort().join(",");
228
+ // Load missing items and combine with cached ones
229
+ // loadImageItemsCallback must be invoked the first time a user selects an image
230
+ const loadPromises = idsToLoad.map((selectedId) => this.loadImageItemsCallback(selectedId).then((items) => {
231
+ // Cache the items for future use
232
+ __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").set(selectedId, items);
233
+ return items;
234
+ }));
235
+ Promise.all(loadPromises).then((loadedItemsArrays) => {
236
+ // Verify that selection hasn't changed while loading
237
+ const currentSelectionAfterLoad = [...this.selectedObjectsIds]
238
+ .sort()
239
+ .join(",");
240
+ if (currentSelection !== currentSelectionAfterLoad) {
241
+ // Selection changed, ignore this result
242
+ return;
243
+ }
244
+ // Combine cached items with newly loaded items
245
+ const allImageItems = [...cachedItems];
246
+ loadedItemsArrays.forEach(items => {
247
+ allImageItems.push(...items);
248
+ });
249
+ this.imagesSelectedItems = allImageItems;
250
+ });
251
+ });
252
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("rowDoubleClicked", () => {
253
+ __classPrivateFieldGet(this, _GxIdeWWImages_openSelectionCallBackHandler, "f").call(this);
231
254
  });
232
- this.chGridEl.addEventListener("rowContextMenu", (ev) => {
255
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("rowContextMenu", (ev) => {
233
256
  ev.preventDefault();
234
257
  ev.stopPropagation();
235
258
  this.contextMenuCallback({
@@ -238,126 +261,424 @@ const GxIdeWWImages = class {
238
261
  clientY: ev.detail.clientY
239
262
  });
240
263
  });
241
- };
242
- this.filterInputHandler = (e) => {
243
- this.filterImagesInputValue = e.detail;
244
- this.filterImagesInformationHandler();
245
- };
246
- this.filterImagesInformationHandler = () => {
247
- const filterValue = this.filterImagesInputValue.toLocaleLowerCase();
248
- this.filteredImages = this.images.filter(image => {
249
- const nameMatch = image.name.toLocaleLowerCase().includes(filterValue);
250
- const moduleMatch = image.module
251
- .toLocaleLowerCase()
252
- .includes(filterValue);
253
- const descriptionMatch = image.description
254
- .toLocaleLowerCase()
255
- .includes(filterValue);
256
- const modifiedDateMatch = image.modifiedDate
257
- .toString()
258
- .includes(filterValue);
259
- const lastUser = image.lastUser.toLocaleLowerCase().includes(filterValue);
260
- const importDateMatch = image.importDate && image.importDate.toString().includes(filterValue);
261
- return (nameMatch ||
262
- moduleMatch ||
263
- descriptionMatch ||
264
- modifiedDateMatch ||
265
- lastUser ||
266
- importDateMatch);
267
- });
268
- };
269
- this.filtersHidden = true;
270
- this.filterAfterType = "";
271
- this.filterModified = false;
264
+ });
265
+ /**
266
+ * Sorts images based on the current order criteria
267
+ */
268
+ _GxIdeWWImages_sortImages.set(this, (a, b) => {
269
+ if (this.order.orderCriteria) {
270
+ const valueA = __classPrivateFieldGet(this, _GxIdeWWImages_instances, "m", _GxIdeWWImages_getImageValue).call(this, a, this.order.orderCriteria).toUpperCase();
271
+ const valueB = __classPrivateFieldGet(this, _GxIdeWWImages_instances, "m", _GxIdeWWImages_getImageValue).call(this, b, this.order.orderCriteria).toUpperCase();
272
+ if (valueA < valueB) {
273
+ return this.order.ascending ? -1 : 1;
274
+ }
275
+ if (valueA > valueB) {
276
+ return this.order.ascending ? 1 : -1;
277
+ }
278
+ }
279
+ return 0;
280
+ });
281
+ /**
282
+ * Handles column sort changes
283
+ */
284
+ _GxIdeWWImages_handleColumnSortChanged.set(this, (e) => {
285
+ const { columnId, sortDirection } = e.detail;
286
+ this.order = {
287
+ orderCriteria: columnId,
288
+ ascending: sortDirection === "asc"
289
+ };
290
+ });
291
+ _GxIdeWWImages_newObjectCallbackHandler.set(this, () => {
292
+ this.newObjectCallback();
293
+ });
294
+ _GxIdeWWImages_openSelectionCallBackHandler.set(this, () => {
295
+ this.openSelectionCallback(this.selectedObjectsIds);
296
+ });
297
+ _GxIdeWWImages_toggleModifiedControls.set(this, (event) => {
298
+ this.enabledModifiedControls = event.detail === MODIFIED_VALUE;
299
+ });
300
+ _GxIdeWWImages_renderHeader.set(this, () => {
301
+ return [
302
+ h("div", {
303
+ // name
304
+ class: "field field-block name"
305
+ }, h("label", { class: "label", htmlFor: "filter-name" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.name), h("ch-edit", { id: "filter-name", class: "input", autoFocus: true, value: this.filterNameValue, debounce: config.inputDebounce, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleNameChange, "f") })),
306
+ h("div", { class: "field field-block module-folder" }, h("label", { class: "label", htmlFor: "module-folder" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.moduleFolder), h("gx-ide-entity-selector", {
307
+ // module/folder
308
+ id: "module/folder", labelPosition: "none", value: this.filterModuleValue, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (__classPrivateFieldSet(this, _GxIdeWWImages_filterModuleEl, el, "f"))
309
+ })),
310
+ h("ch-accordion-render", {
311
+ // modified
312
+ class: "accordion-outlined advanced-filter-accordion", model: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_MODEL, "f")
313
+ }, h("div", { slot: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_FILTER_ID, "f"), class: "spacing-body" }, h("div", { class: "main__filter field-group scrollable" }, h("div", {
314
+ // category
315
+ class: "field field-block category"
316
+ }, h("label", { class: "label", htmlFor: "filter-category" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.category), h("ch-combo-box-render", { id: "filter-category", class: "combo-box", value: this.filterCategoryValue, disabled: !this.categories, model: this.categoriesComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleCategoryChange, "f") })), h("div", {
317
+ // category
318
+ class: "field-group options"
319
+ }, h("label", { class: "label", htmlFor: "filter-category" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.options), h("div", {
320
+ // options
321
+ class: "field field-inline"
322
+ }, h("ch-checkbox", { class: "checkbox all-descendants", caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.allDescendants, checkedValue: ALL_DESCENDANTS_VALUE, value: this.filterAllDescendantsValue
323
+ ? ALL_DESCENDANTS_VALUE
324
+ : undefined, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleAllDescendantsChange, "f") }), h("ch-checkbox", { class: "checkbox modified", caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.modified, checkedValue: MODIFIED_VALUE, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_toggleModifiedControls, "f") }))), h("div", {
325
+ // after
326
+ class: "field field-block after-date-time"
327
+ }, h("label", { class: {
328
+ "label": true,
329
+ "label--disabled": !this.enabledModifiedControls
330
+ }, htmlFor: "filter-after-type" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.afterLabel), h("ch-combo-box-render", { id: "filter-after-type", class: "combo-box", value: this.filterAfterTypeValue, disabled: !this.enabledModifiedControls, model: this.filterAfterOptions, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleAfterTypeChange, "f") })), h("div", {
331
+ // user
332
+ class: "field field-block user"
333
+ }, h("label", { class: {
334
+ "label": true,
335
+ "label--disabled": !this.enabledModifiedControls
336
+ }, htmlFor: "filter-user" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.user), h("ch-edit", { id: "filter-user", value: this.filterUserValue, class: "input", disabled: !this.enabledModifiedControls, debounce: config.inputDebounce, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleUserChange, "f") })), h("div", {
337
+ // date/time
338
+ class: "field field-block date-time"
339
+ }, h("label", { class: {
340
+ "label": true,
341
+ "label--disabled": this.afterCurrentValue !== FILTER_AFTER.DATE_TIME
342
+ }, htmlFor: "modified-date" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.dateTime), h("input", { type: "datetime-local", class: "input ", id: "modified-date", name: "modifiedDate", value: this.filterModifiedDateValue, max: TODAY, disabled: this.afterCurrentValue !== FILTER_AFTER.DATE_TIME, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleModifiedDateChange, "f") })), h("div", {
343
+ // style
344
+ class: "field field-block style"
345
+ }, h("label", { class: "label", htmlFor: "filter-style" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.style), h("ch-combo-box-render", { id: "filter-style", class: "combo-box", value: this.filterStyleValue, disabled: !this.styles, model: this.stylesComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleStyleChange, "f") })), h("div", {
346
+ // language
347
+ class: "field field-block language"
348
+ }, h("label", { class: "label", htmlFor: "filter-language" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.language), h("ch-combo-box-render", { id: "filter-language", class: "combo-box", value: this.filterLanguageValue, disabled: !this.languages, model: this.languagesComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleLanguageChange, "f") })), h("div", {
349
+ // density
350
+ class: "field field-block"
351
+ }, h("label", { class: "label", htmlFor: "filter-density" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.density), h("ch-combo-box-render", { id: "filter-density", class: "combo-box", value: this.filterDensityValue, disabled: !this.densities, model: this.densitiesComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleDensityChange, "f") })), h("div", {
352
+ // layer
353
+ class: "field field-block"
354
+ }, h("label", { class: "label", htmlFor: "filter-layer" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.layer), h("ch-combo-box-render", { id: "filter-layer", class: "combo-box", value: this.filterLayerValue, disabled: !this.layers, model: this.layersComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleLayerChange, "f") })), h("div", {
355
+ // search contents
356
+ class: "field field-block search-by-contents"
357
+ }, h("label", { class: "label", htmlFor: "search-input" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.search), h("ch-edit", { id: "search-input", debounce: config.inputDebounce, class: "input", value: this.filterSearchContentsValue, placeholder: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.searchContentsPlaceholder, onInput: __classPrivateFieldGet(this, _GxIdeWWImages_handleSearchContentsChange, "f"), startImgSrc: SEARCH_ICON, type: "search" })), h("button", {
358
+ // reset filter button
359
+ class: "button-secondary button-icon-and-text button-reset", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_resetFilterHandler, "f")
360
+ }, h("ch-image", { class: "icon-sm", src: RESET_ICON, type: "mask" }), __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.resetFilters))))
361
+ ];
362
+ });
363
+ _GxIdeWWImages_renderFilter.set(this, () => {
364
+ return (h("div", { class: "sidebar-container scrollable" }, __classPrivateFieldGet(this, _GxIdeWWImages_renderImages, "f").call(this)));
365
+ });
366
+ _GxIdeWWImages_renderImages.set(this, () => {
367
+ return (
368
+ /* tiles */
369
+ h("div", { class: "main__images-container spacing-body-inline" }, this.imagesSelectedItems.map(item => (h("figure", { class: "figure" }, h("picture", { class: "figure__picture" }, h("img", { class: "figure__img", src: item.url, alt: item.name })), h("figcaption", { class: "figure__figcaption" }, item.name))))));
370
+ });
371
+ _GxIdeWWImages_renderTabularGrid.set(this, () => {
372
+ const commonColSize = "minmax(max-content, auto)";
373
+ return (h("div", { class: {
374
+ "field-group": true,
375
+ "main__grid": true
376
+ } }, h("ch-tabular-grid", { ref: (el) => (__classPrivateFieldSet(this, _GxIdeWWImages_chGridEl, el, "f")), rowSelectionMode: "multiple", class: "tabular-grid tabular-grid-ww-images", columnResizeMode: "splitter" }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { columnId: "icon", columnName: "", settingable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column", resizable: true, sortable: false }), h("ch-tabular-grid-column", { columnId: "name", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.name, settingable: false, class: "tabular-grid-column", "column-name-position": "text", size: commonColSize, resizable: true, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeWWImages_handleColumnSortChanged, "f") }), h("ch-tabular-grid-column", { columnId: "module", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.module, settingable: false, size: commonColSize, class: "tabular-grid-column", resizable: true, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeWWImages_handleColumnSortChanged, "f") }), h("ch-tabular-grid-column", { columnId: "description", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.description, settingable: false, size: "minmax(300px, 1fr)", class: "tabular-grid-column", resizable: false, sortable: false }), h("ch-tabular-grid-column", { columnId: "modifiedDate", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.modifiedDate, settingable: false, size: commonColSize, class: "tabular-grid-column", resizable: true, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeWWImages_handleColumnSortChanged, "f") }), h("ch-tabular-grid-column", { columnId: "lastUser", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.lastUser, settingable: false, size: commonColSize, class: "tabular-grid-column", resizable: true, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeWWImages_handleColumnSortChanged, "f") }), h("ch-tabular-grid-column", { columnId: "importDate", columnName: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").tableHead.importDate, settingable: false, size: commonColSize, class: "tabular-grid-column", resizable: true, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeWWImages_handleColumnSortChanged, "f") })), this.tabularGridData.length ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, [...this.tabularGridData]
377
+ .sort(__classPrivateFieldGet(this, _GxIdeWWImages_sortImages, "f"))
378
+ .map((obj) => (h("ch-tabular-grid-row", { rowid: obj.id, class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, h("ch-image", { src: obj.icon })), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.name), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.module), h("ch-tabular-grid-cell", { class: "tabular-grid-cell tabular-grid-cell-description" }, obj.description), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, formatDate(obj.modifiedDate)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.lastUser), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, formatDate(obj.importDate))))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { isAnimated: false, stateIconSrc: NOTICE_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").emptyState.title, key: "no-images-empty-state" })))))));
379
+ });
380
+ _GxIdeWWImages_resetFilterHandler.set(this, () => {
381
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f")) {
382
+ this.filterNameValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").name;
383
+ this.filterModuleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").module;
384
+ this.filterSearchContentsValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").searchContents;
385
+ this.filterCategoryValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").category;
386
+ this.filterAllDescendantsValue =
387
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").allDescendants === ALL_DESCENDANTS_VALUE;
388
+ this.filterAfterTypeValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedAfter;
389
+ this.filterModifiedDateValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedDateTime;
390
+ this.filterUserValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedUser;
391
+ this.filterStyleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").style;
392
+ this.filterLanguageValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").language;
393
+ this.filterDensityValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").density;
394
+ this.filterLayerValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").layer;
395
+ this.afterCurrentValue = this.filterAfterTypeValue;
396
+ }
397
+ });
398
+ _GxIdeWWImages_saveInitialFilterData.set(this, () => {
399
+ __classPrivateFieldSet(this, _GxIdeWWImages_filterInitialData, {
400
+ name: this.filterNameValue,
401
+ module: this.filterModuleValue,
402
+ searchContents: this.filterSearchContentsValue,
403
+ category: this.filterCategoryValue,
404
+ allDescendants: this.filterAllDescendantsValue
405
+ ? ALL_DESCENDANTS_VALUE
406
+ : "",
407
+ modifiedAfter: this.filterAfterTypeValue,
408
+ modifiedDateTime: this.filterModifiedDateValue,
409
+ modifiedUser: this.filterUserValue,
410
+ style: this.filterStyleValue,
411
+ language: this.filterLanguageValue,
412
+ density: this.filterDensityValue,
413
+ layer: this.filterLayerValue
414
+ }, "f");
415
+ });
416
+ _GxIdeWWImages_selectAll.set(this, () => {
417
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").selectAllRows();
418
+ });
419
+ this.categoriesComboBoxModel = [];
420
+ this.densitiesComboBoxModel = [];
421
+ this.languagesComboBoxModel = [];
422
+ this.layersComboBoxModel = [];
423
+ this.stylesComboBoxModel = [];
424
+ this.afterCurrentValue = undefined;
425
+ this.filterAfterOptions = undefined;
426
+ this.tabularGridData = [];
272
427
  this.images = [];
273
- this.filteredImages = [];
274
428
  this.imagesSelectedItems = [];
275
429
  this.selectedObjectsIds = [];
276
- this.filterImagesInputValue = "";
277
- this.displayTitle = false;
278
- this.secondaryFilter = false;
430
+ this.enabledModifiedControls = false;
431
+ this.order = {
432
+ orderCriteria: null,
433
+ ascending: null
434
+ };
435
+ this.filterNameValue = "";
436
+ this.filterSearchContentsValue = "";
437
+ this.filterCategoryValue = undefined;
438
+ this.filterAllDescendantsValue = false;
439
+ this.filterAfterTypeValue = undefined;
440
+ this.filterUserValue = "";
441
+ this.filterModifiedDateValue = "";
442
+ this.filterStyleValue = undefined;
443
+ this.filterLanguageValue = undefined;
444
+ this.filterDensityValue = undefined;
445
+ this.filterLayerValue = undefined;
446
+ this.filterModuleValue = undefined;
279
447
  this.categories = undefined;
280
- this.densities = undefined;
448
+ this.contextMenuCallback = undefined;
281
449
  this.defaultCategory = undefined;
282
450
  this.defaultModule = undefined;
283
- this.defaultType = undefined;
284
- this.filterModules = undefined;
451
+ this.deleteSelectionCallback = undefined;
452
+ this.densities = undefined;
285
453
  this.languages = undefined;
286
454
  this.layers = undefined;
287
- this.contextMenuCallback = undefined;
288
- this.deleteSelectionCallback = undefined;
289
455
  this.loadCallback = undefined;
290
456
  this.loadImageItemsCallback = undefined;
291
457
  this.newObjectCallback = undefined;
292
458
  this.openSelectionCallback = undefined;
293
459
  this.selectModuleCallback = undefined;
294
460
  this.selectionObjectChangedCallback = undefined;
295
- this.shadow = false;
296
461
  this.styles = undefined;
297
- this.types = undefined;
298
462
  }
299
- filtersHiddenHandler(hidden) {
300
- if (hidden) {
301
- this.removeDetectClickOutsideFilter();
302
- }
303
- else {
304
- this.attachDetectClickOutsideFilter();
305
- }
463
+ categoriesChanged(newCategories) {
464
+ this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);
465
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
306
466
  }
307
- // 6.COMPONENT LIFECYCLE EVENTS //
308
- async componentWillLoad() {
309
- this._componentLocale = await Locale.getComponentStrings(this.el);
310
- this.componentDidLoadEvent.emit(true);
467
+ defaultCategoryChanged() {
468
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
469
+ }
470
+ densitiesChanged(newDensities) {
471
+ this.densitiesComboBoxModel = mapOptionsToComboBoxItemModel(newDensities);
472
+ }
473
+ languagesChanged(newLanguages) {
474
+ this.languagesComboBoxModel = mapOptionsToComboBoxItemModel(newLanguages);
475
+ }
476
+ layersChanged(newLayers) {
477
+ this.layersComboBoxModel = mapOptionsToComboBoxItemModel(newLayers);
478
+ }
479
+ stylesChanged(newStyles) {
480
+ this.stylesComboBoxModel = mapOptionsToComboBoxItemModel(newStyles);
481
+ }
482
+ async connectedCallback() {
483
+ TODAY = __classPrivateFieldGet(this, _GxIdeWWImages_getToday, "f").call(this);
311
484
  }
312
485
  componentDidLoad() {
313
- this.listenChanges();
314
- this.getImages();
315
- this.saveInitialFilterData();
316
- this.filterNameEl.focus();
486
+ __classPrivateFieldGet(this, _GxIdeWWImages_addEventListeners, "f").call(this);
487
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
488
+ __classPrivateFieldGet(this, _GxIdeWWImages_saveInitialFilterData, "f").call(this);
489
+ __classPrivateFieldSet(this, _GxIdeWWImages_isInitialLoad, false, "f");
317
490
  }
318
- componentDidRender() {
319
- if (!this.renderedFirstTime) {
320
- this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
321
- this.renderedFirstTime = true;
491
+ async componentWillLoad() {
492
+ __classPrivateFieldSet(this, _GxIdeWWImages_componentLocale, await Locale.getComponentStrings(this.el), "f");
493
+ // initialize combo-box models
494
+ this.categoriesChanged(this.categories);
495
+ this.densitiesChanged(this.densities);
496
+ this.languagesChanged(this.languages);
497
+ this.layersChanged(this.layers);
498
+ this.stylesChanged(this.styles);
499
+ // initialize "After" combo-box options
500
+ this.filterAfterOptions = [
501
+ {
502
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.afterNone,
503
+ value: FILTER_AFTER.NONE
504
+ },
505
+ {
506
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.DATE_TIME],
507
+ value: FILTER_AFTER.DATE_TIME
508
+ },
509
+ {
510
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.IMPORT],
511
+ value: FILTER_AFTER.IMPORT
512
+ },
513
+ {
514
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.LAST_BUILD],
515
+ value: FILTER_AFTER.LAST_BUILD
516
+ }
517
+ ];
518
+ this.afterCurrentValue = this.filterAfterOptions[0].value;
519
+ this.filterAfterTypeValue = this.filterAfterOptions[0].value;
520
+ // Initialize filter state values
521
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
522
+ this.filterModuleValue = this.defaultModule;
523
+ if (this.stylesComboBoxModel.length > 0) {
524
+ this.filterStyleValue = this.stylesComboBoxModel[0].value;
322
525
  }
526
+ if (this.languagesComboBoxModel.length > 0) {
527
+ this.filterLanguageValue = this.languagesComboBoxModel[0].value;
528
+ }
529
+ if (this.densitiesComboBoxModel.length > 0) {
530
+ this.filterDensityValue = this.densitiesComboBoxModel[0].value;
531
+ }
532
+ if (this.layersComboBoxModel.length > 0) {
533
+ this.filterLayerValue = this.layersComboBoxModel[0].value;
534
+ }
535
+ __classPrivateFieldSet(this, _GxIdeWWImages_ACCORDION_MODEL, [
536
+ {
537
+ id: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_FILTER_ID, "f"),
538
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.accordionCaption,
539
+ expanded: false
540
+ }
541
+ ], "f");
323
542
  }
324
- // 7.LISTENERS //
325
543
  keyDownHandler(eventInfo) {
326
544
  if (document.activeElement === this.el) {
327
545
  switch (eventInfo.key) {
328
546
  case "Enter":
329
- this.openSelectionCallBackHandler();
547
+ __classPrivateFieldGet(this, _GxIdeWWImages_openSelectionCallBackHandler, "f").call(this);
330
548
  break;
331
549
  case "Delete":
332
- this.deleteSelectionCallbackHandler();
550
+ __classPrivateFieldGet(this, _GxIdeWWImages_deleteSelectionCallbackHandler, "f").call(this);
333
551
  break;
334
552
  }
335
553
  }
336
554
  }
337
- // 8.PUBLIC METHODS API //
338
555
  /**
339
- * Validate necessary data input
556
+ * Reloads the view, refreshing the filters and the images table.
340
557
  */
341
- async validate() {
342
- const isValid = true;
343
- return isValid;
558
+ async reload() {
559
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
344
560
  }
345
561
  /**
346
- * This method reload the view, refreshing the filters and the table of images.
562
+ * Watch filter state variables and trigger #getImages when they change
347
563
  */
348
- async reload() {
349
- this.getImages();
564
+ filterNameValueChanged() {
565
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
566
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
567
+ }
568
+ }
569
+ filterSearchContentsValueChanged() {
570
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
571
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
572
+ }
573
+ }
574
+ filterCategoryValueChanged() {
575
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
576
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
577
+ }
578
+ }
579
+ filterAllDescendantsValueChanged() {
580
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
581
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
582
+ }
583
+ }
584
+ filterAfterTypeValueChanged() {
585
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
586
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
587
+ }
588
+ }
589
+ filterUserValueChanged() {
590
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
591
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
592
+ }
593
+ }
594
+ filterModifiedDateValueChanged() {
595
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
596
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
597
+ }
598
+ }
599
+ filterStyleValueChanged() {
600
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
601
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
602
+ }
603
+ }
604
+ filterLanguageValueChanged() {
605
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
606
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
607
+ }
608
+ }
609
+ filterDensityValueChanged() {
610
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
611
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
612
+ }
613
+ }
614
+ filterLayerValueChanged() {
615
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
616
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
617
+ }
618
+ }
619
+ filterModuleValueChanged() {
620
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
621
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
622
+ }
350
623
  }
351
- // 10.RENDER() FUNCTION //
352
624
  render() {
353
- return (h(Host, { class: "gx-ide-component" }, h("ch-theme", { model: CSS_BUNDLES }), h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noContentGap: true, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("div", { class: "master-wrapper" }, this.renderFilter(), h("div", { class: "grid-images-container" }, this.renderImagesData(), this.renderImages())), h("gxg-button", { id: "button-select-all", type: "outlined", onClick: this.selectAll, part: "gxg-button gxg-button--select-all", slot: "footer-end" }, this._componentLocale.footer.btnSelectAll), h("gxg-button", { id: "button-new-file", type: "primary-text-icon", icon: "objects/image", onClick: this.newObjectCallbackHandler, part: "gxg-button gxg-button--new-file", slot: "footer-end" }, this._componentLocale.footer.btnNew), h("gxg-text", { class: "align-end", part: "objects-matching", slot: "footer-start" }, `${this.filteredImages.length} ${this._componentLocale.objCount.matching}`)))));
625
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header control-header-with-border spacing-body-inline spacing-body-block-start field-group" }, __classPrivateFieldGet(this, _GxIdeWWImages_renderHeader, "f").call(this)), h("div", { class: "main" }, __classPrivateFieldGet(this, _GxIdeWWImages_renderTabularGrid, "f").call(this), h("div", { class: "main__aside field-group" }, __classPrivateFieldGet(this, _GxIdeWWImages_renderFilter, "f").call(this))), h("footer", { class: "dialog-footer-with-border dialog-footer-space-between spacing-body" }, h("p", {
626
+ // matching objects
627
+ class: "text-body"
628
+ }, `${this.tabularGridData.length} ${__classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").objCount.matching}`), h("div", { class: "buttons-spacer" }, h("button", {
629
+ // select all button
630
+ id: "button-select-all", class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_selectAll, "f")
631
+ }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").footer.btnSelectAll), h("button", {
632
+ // new image button
633
+ id: "button-new-file", class: "button-primary button-icon-and-text", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_newObjectCallbackHandler, "f")
634
+ }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").footer.btnNew))))));
354
635
  }
355
636
  static get assetsDirs() { return ["gx-ide-assets/ww-images"]; }
356
637
  get el() { return getElement(this); }
357
638
  static get watchers() { return {
358
- "filtersHidden": ["filtersHiddenHandler"]
639
+ "categories": ["categoriesChanged"],
640
+ "defaultCategory": ["defaultCategoryChanged"],
641
+ "densities": ["densitiesChanged"],
642
+ "languages": ["languagesChanged"],
643
+ "layers": ["layersChanged"],
644
+ "styles": ["stylesChanged"],
645
+ "filterNameValue": ["filterNameValueChanged"],
646
+ "filterSearchContentsValue": ["filterSearchContentsValueChanged"],
647
+ "filterCategoryValue": ["filterCategoryValueChanged"],
648
+ "filterAllDescendantsValue": ["filterAllDescendantsValueChanged"],
649
+ "filterAfterTypeValue": ["filterAfterTypeValueChanged"],
650
+ "filterUserValue": ["filterUserValueChanged"],
651
+ "filterModifiedDateValue": ["filterModifiedDateValueChanged"],
652
+ "filterStyleValue": ["filterStyleValueChanged"],
653
+ "filterLanguageValue": ["filterLanguageValueChanged"],
654
+ "filterDensityValue": ["filterDensityValueChanged"],
655
+ "filterLayerValue": ["filterLayerValueChanged"],
656
+ "filterModuleValue": ["filterModuleValueChanged"]
359
657
  }; }
360
658
  };
659
+ _GxIdeWWImages_componentLocale = new WeakMap(), _GxIdeWWImages_filterInitialData = new WeakMap(), _GxIdeWWImages_ACCORDION_MODEL = new WeakMap(), _GxIdeWWImages_ACCORDION_FILTER_ID = new WeakMap(), _GxIdeWWImages_imagesMap = new WeakMap(), _GxIdeWWImages_chGridEl = new WeakMap(), _GxIdeWWImages_filterModuleEl = new WeakMap(), _GxIdeWWImages_isInitialLoad = new WeakMap(), _GxIdeWWImages_deleteSelectionCallbackHandler = new WeakMap(), _GxIdeWWImages_deselectAll = new WeakMap(), _GxIdeWWImages_handleNameChange = new WeakMap(), _GxIdeWWImages_handleSearchContentsChange = new WeakMap(), _GxIdeWWImages_applyDefaultCategory = new WeakMap(), _GxIdeWWImages_handleCategoryChange = new WeakMap(), _GxIdeWWImages_handleAllDescendantsChange = new WeakMap(), _GxIdeWWImages_handleAfterTypeChange = new WeakMap(), _GxIdeWWImages_handleUserChange = new WeakMap(), _GxIdeWWImages_handleModifiedDateChange = new WeakMap(), _GxIdeWWImages_handleStyleChange = new WeakMap(), _GxIdeWWImages_handleLanguageChange = new WeakMap(), _GxIdeWWImages_handleDensityChange = new WeakMap(), _GxIdeWWImages_handleLayerChange = new WeakMap(), _GxIdeWWImages_handleModuleChange = new WeakMap(), _GxIdeWWImages_filterImagesInformationHandler = new WeakMap(), _GxIdeWWImages_getImages = new WeakMap(), _GxIdeWWImages_getToday = new WeakMap(), _GxIdeWWImages_addEventListeners = new WeakMap(), _GxIdeWWImages_sortImages = new WeakMap(), _GxIdeWWImages_handleColumnSortChanged = new WeakMap(), _GxIdeWWImages_newObjectCallbackHandler = new WeakMap(), _GxIdeWWImages_openSelectionCallBackHandler = new WeakMap(), _GxIdeWWImages_toggleModifiedControls = new WeakMap(), _GxIdeWWImages_renderHeader = new WeakMap(), _GxIdeWWImages_renderFilter = new WeakMap(), _GxIdeWWImages_renderImages = new WeakMap(), _GxIdeWWImages_renderTabularGrid = new WeakMap(), _GxIdeWWImages_resetFilterHandler = new WeakMap(), _GxIdeWWImages_saveInitialFilterData = new WeakMap(), _GxIdeWWImages_selectAll = new WeakMap(), _GxIdeWWImages_instances = new WeakSet(), _GxIdeWWImages_getImageValue = function _GxIdeWWImages_getImageValue(image, key) {
660
+ var _a;
661
+ switch (key) {
662
+ case "name":
663
+ return image.name || "";
664
+ case "module":
665
+ return image.module || "";
666
+ case "description":
667
+ return image.description || "";
668
+ case "modifiedDate":
669
+ return image.modifiedDate
670
+ ? formatDate(image.modifiedDate).toLowerCase()
671
+ : "";
672
+ case "lastUser":
673
+ return ((_a = image.lastUser) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || "";
674
+ case "importDate":
675
+ return image.importDate
676
+ ? formatDate(image.importDate).toLowerCase()
677
+ : "";
678
+ default:
679
+ return "";
680
+ }
681
+ };
361
682
  GxIdeWWImages.style = wwImagesCss;
362
683
 
363
684
  export { GxIdeWWImages as gx_ide_ww_images };