@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,239 +1,261 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { L as Locale } from './locale.js';
3
- import { c as config } from './config.js';
4
- import { r as renderFormItems } from './common.js';
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { g as getIconPath } from './mer-animated-dots.js';
3
+ import 'lit';
4
+ import 'lit/directives/when.js';
5
+ import 'lit/directives/if-defined.js';
5
6
  import { F as FILTER_AFTER } from './constants.js';
6
- import { c as closeOnOutsideClickHandler, h as hiChar, f as formatDate } from './helpers.js';
7
- import { d as defineCustomElement$3 } from './container.js';
7
+ import { c as config } from './config.js';
8
+ import { f as formatDate } from './helpers.js';
9
+ import { L as Locale } from './locale.js';
10
+ import { d as defineCustomElement$3 } from './gx-ide-empty-state2.js';
8
11
  import { d as defineCustomElement$2 } from './entity-selector.js';
9
12
 
10
- 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}";
13
+ const mapOptionsToComboBoxItemModel = (options) => {
14
+ if (!options) {
15
+ return [];
16
+ }
17
+ return options.map(option => {
18
+ var _a;
19
+ return {
20
+ value: option.id,
21
+ caption: option.label,
22
+ startImgSrc: (_a = option.iconName) !== null && _a !== void 0 ? _a : ""
23
+ };
24
+ });
25
+ };
26
+
27
+ 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}";
11
28
 
29
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
30
+ if (kind === "a" && !f)
31
+ throw new TypeError("Private accessor was defined without a getter");
32
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
33
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
34
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
35
+ };
36
+ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
37
+ if (kind === "m")
38
+ throw new TypeError("Private method is not writable");
39
+ if (kind === "a" && !f)
40
+ throw new TypeError("Private accessor was defined without a setter");
41
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
42
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
43
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
44
+ };
45
+ 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;
12
46
  const CSS_BUNDLES = [
13
47
  "resets/box-sizing",
14
- // "utils/form",
15
- // "utils/layout",
16
- // "utils/typography",
17
- // "components/button",
18
- // "components/checkbox",
19
- // "components/edit",
20
- "components/tabular-grid"
48
+ "components/accordion",
49
+ "components/button",
50
+ "components/checkbox",
51
+ "components/combo-box",
52
+ "components/edit",
53
+ "components/icon",
54
+ "components/tabular-grid",
55
+ "components/sidebar",
56
+ "utils/form",
57
+ "utils/layout",
58
+ "utils/typography",
59
+ "utils/spacing",
60
+ "chameleon/scrollbar"
21
61
  ];
62
+ const ALL_DESCENDANTS_VALUE = "all-descendants";
63
+ const MODIFIED_VALUE = "modified";
64
+ let TODAY = null;
65
+ // icons
66
+ const RESET_ICON = getIconPath({
67
+ category: "gemini-tools",
68
+ name: "reset",
69
+ colorType: "interactive"
70
+ });
71
+ const SEARCH_ICON = getIconPath({
72
+ category: "gemini-tools",
73
+ name: "search",
74
+ colorType: "neutral"
75
+ });
76
+ const NOTICE_ICON = getIconPath({
77
+ category: "gemini-tools",
78
+ name: "notice",
79
+ colorType: "on-elevation"
80
+ });
22
81
  const GxIdeWWImages = /*@__PURE__*/ proxyCustomElement(class GxIdeWWImages extends HTMLElement {
23
82
  constructor() {
24
83
  super();
25
84
  this.__registerHost();
26
85
  this.__attachShadow();
27
- this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
28
- this.componentDidRenderFirstTime = createEvent(this, "componentDidRenderFirstTime", 7);
29
- this.renderedFirstTime = false;
30
- // 9.LOCAL METHODS //
31
- this.attachDetectClickOutsideFilter = () => {
32
- document.addEventListener("click", this.detectClickOutsideFilter);
33
- };
34
- this.removeDetectClickOutsideFilter = () => {
35
- document.removeEventListener("click", this.detectClickOutsideFilter);
36
- };
37
- this.detectClickOutsideFilter = (e) => {
38
- const clickedOutside = closeOnOutsideClickHandler(e, this.filterEl);
39
- if (clickedOutside) {
40
- this.filtersHidden = true;
41
- }
42
- else {
43
- this.filtersHidden = false;
44
- }
45
- };
86
+ _GxIdeWWImages_instances.add(this);
46
87
  /**
47
- * @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.
88
+ * The component hard-coded strings translations.
48
89
  */
49
- this.saveInitialFilterData = () => {
50
- this.filterInitialData = {
51
- name: this.filterNameEl.value,
52
- module: this.filterModuleEl.value,
53
- searchContents: this.filterSearchContentsEl.value,
54
- category: this.filterCategoryEl.value,
55
- allDescendants: this.filterAllDescendantsEl.checked,
56
- modified: this.filterModifiedEl.checked,
57
- dateTime: this.filterModifiedDateEl.value,
58
- after: this.filterAfterTypeEl.value,
59
- user: this.filterUserEl.value,
60
- style: this.filterStyleEl.value,
61
- language: this.filterLanguageEl.value,
62
- density: this.filterDensityEl.value,
63
- layer: this.filterLayerEl.value
64
- };
65
- };
66
- // 9.LOCAL METHODS -> Renders //
67
- this.renderFilter = () => {
68
- var _a, _b, _c, _d, _e;
69
- 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: {
70
- "filters-outer-wrapper": true,
71
- "filters-outer-wrapper--hidden": this.filtersHidden
72
- } }, h("div", { class: {
73
- "filter": true,
74
- "filter--gap": true,
75
- "filters-inner-wrapper": true
76
- } }, 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 =
77
- 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: {
78
- "hide": !this.filterModified ||
79
- this.filterAfterType !== FILTER_AFTER.DATE_TIME,
80
- "date-time": true
81
- }, 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", [
82
- {
83
- id: FILTER_AFTER.NONE,
84
- label: this._componentLocale.filter.afterNone,
85
- value: FILTER_AFTER.NONE
86
- },
87
- {
88
- id: FILTER_AFTER.DATE_TIME,
89
- label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],
90
- value: FILTER_AFTER.DATE_TIME
91
- },
92
- {
93
- id: FILTER_AFTER.IMPORT,
94
- label: this._componentLocale.filter[FILTER_AFTER.IMPORT],
95
- value: FILTER_AFTER.IMPORT
96
- },
97
- {
98
- id: FILTER_AFTER.LAST_BUILD,
99
- label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],
100
- value: FILTER_AFTER.LAST_BUILD
90
+ _GxIdeWWImages_componentLocale.set(this, void 0);
91
+ _GxIdeWWImages_filterInitialData.set(this, void 0);
92
+ _GxIdeWWImages_ACCORDION_MODEL.set(this, []);
93
+ _GxIdeWWImages_ACCORDION_FILTER_ID.set(this, "advanced-filter");
94
+ _GxIdeWWImages_imagesMap.set(this, new Map());
95
+ _GxIdeWWImages_chGridEl.set(this, void 0);
96
+ // Only keep refs that are actually needed for operations (event listeners)
97
+ _GxIdeWWImages_filterModuleEl.set(this, void 0);
98
+ /**
99
+ * Flag to prevent triggering #getImages on initial load
100
+ */
101
+ _GxIdeWWImages_isInitialLoad.set(this, true);
102
+ _GxIdeWWImages_deleteSelectionCallbackHandler.set(this, () => {
103
+ this.deleteSelectionCallback(this.selectedObjectsIds);
104
+ });
105
+ _GxIdeWWImages_deselectAll.set(this, () => {
106
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").selectAllRows(false);
107
+ });
108
+ /**
109
+ * Individual handler functions for each filter control
110
+ */
111
+ _GxIdeWWImages_handleNameChange.set(this, (event) => {
112
+ this.filterNameValue = (event.detail ||
113
+ event.target.value);
114
+ });
115
+ _GxIdeWWImages_handleSearchContentsChange.set(this, (event) => {
116
+ this.filterSearchContentsValue = (event.detail ||
117
+ event.target.value);
118
+ });
119
+ _GxIdeWWImages_applyDefaultCategory.set(this, () => {
120
+ if (this.defaultCategory && this.categoriesComboBoxModel.length > 0) {
121
+ const categoryExists = this.categoriesComboBoxModel.some(item => item.value === this.defaultCategory);
122
+ if (categoryExists) {
123
+ this.filterCategoryValue = this.defaultCategory;
101
124
  }
102
- ])), 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 : []))))));
103
- };
104
- this.renderImagesData = () => {
105
- return (
106
- /* images information*/
107
- 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))))))));
108
- };
109
- this.renderImages = () => {
110
- return (
111
- /* tiles */
112
- 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)))))));
113
- };
114
- // 9.LOCAL METHODS -> Other //
115
- this.getImages = () => {
116
- let filters = {
117
- name: this.filterNameEl.value,
118
- parent: this.filterModuleEl.value ? this.filterModuleEl.value.id : null
125
+ }
126
+ });
127
+ _GxIdeWWImages_handleCategoryChange.set(this, (event) => {
128
+ this.filterCategoryValue = event.detail;
129
+ });
130
+ _GxIdeWWImages_handleAllDescendantsChange.set(this, (event) => {
131
+ this.filterAllDescendantsValue = event.detail === ALL_DESCENDANTS_VALUE;
132
+ });
133
+ _GxIdeWWImages_handleAfterTypeChange.set(this, (event) => {
134
+ this.filterAfterTypeValue = event.detail;
135
+ this.afterCurrentValue = event.detail;
136
+ });
137
+ _GxIdeWWImages_handleUserChange.set(this, (event) => {
138
+ this.filterUserValue = (event.detail ||
139
+ event.target.value);
140
+ });
141
+ _GxIdeWWImages_handleModifiedDateChange.set(this, (event) => {
142
+ this.filterModifiedDateValue = event.target.value;
143
+ });
144
+ _GxIdeWWImages_handleStyleChange.set(this, (event) => {
145
+ this.filterStyleValue = event.detail;
146
+ });
147
+ _GxIdeWWImages_handleLanguageChange.set(this, (event) => {
148
+ this.filterLanguageValue = event.detail;
149
+ });
150
+ _GxIdeWWImages_handleDensityChange.set(this, (event) => {
151
+ this.filterDensityValue = event.detail;
152
+ });
153
+ _GxIdeWWImages_handleLayerChange.set(this, (event) => {
154
+ this.filterLayerValue = event.detail;
155
+ });
156
+ _GxIdeWWImages_handleModuleChange.set(this, () => {
157
+ // Module change is handled via event listener, but we update state
158
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f")) {
159
+ this.filterModuleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f").value;
160
+ }
161
+ });
162
+ _GxIdeWWImages_filterImagesInformationHandler.set(this, () => {
163
+ // Copy images from server to tabularGridData (will be sorted before rendering)
164
+ this.tabularGridData = [...this.images];
165
+ });
166
+ _GxIdeWWImages_getImages.set(this, () => {
167
+ __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").clear();
168
+ const filters = {
169
+ name: this.filterNameValue,
170
+ searchContents: this.filterSearchContentsValue,
171
+ category: this.filterCategoryValue,
172
+ parent: this.filterModuleValue ? this.filterModuleValue.id : null,
173
+ allDescendants: this.filterAllDescendantsValue,
174
+ modifiedAfter: this.filterAfterTypeValue,
175
+ modifiedBy: this.filterUserValue,
176
+ modifiedDate: this.filterModifiedDateValue
177
+ ? new Date(this.filterModifiedDateValue)
178
+ : undefined,
179
+ style: this.filterStyleValue,
180
+ language: this.filterLanguageValue,
181
+ density: this.filterDensityValue,
182
+ layer: this.filterLayerValue
119
183
  };
120
- const modified = this.filterModifiedEl.checked;
121
- const modifiedAfter = this.filterAfterTypeEl.value;
122
- 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
123
- ? this.filterModifiedDateEl.value
124
- : null, style: this.filterStyleEl.value, language: this.filterLanguageEl.value, density: this.filterDensityEl.value, layer: this.filterLayerEl.value });
125
184
  this.loadCallback(filters).then((items) => {
126
185
  this.images = items;
127
186
  this.selectedObjectsIds = [];
128
- this.deselectAll();
129
- this.filterImagesInformationHandler();
130
- });
131
- };
132
- this.newObjectCallbackHandler = () => {
133
- this.newObjectCallback();
134
- };
135
- this.openSelectionCallBackHandler = () => {
136
- this.openSelectionCallback(this.selectedObjectsIds);
137
- };
138
- this.deleteSelectionCallbackHandler = () => {
139
- this.deleteSelectionCallback(this.selectedObjectsIds);
140
- };
141
- this.resetFilterHandler = () => {
142
- if (this.filterInitialData) {
143
- this.filterNameEl.value = this.filterInitialData.name;
144
- this.filterModuleEl.value = this.filterInitialData.module;
145
- this.filterSearchContentsEl.value = this.filterInitialData.searchContents;
146
- this.filterCategoryEl.value = this.filterInitialData.category;
147
- this.filterAllDescendantsEl.checked =
148
- this.filterInitialData.allDescendants;
149
- this.filterModifiedEl.checked = this.filterInitialData.modified;
150
- this.filterModifiedDateEl.value = this.filterInitialData.dateTime;
151
- this.filterAfterTypeEl.value = this.filterInitialData.after;
152
- this.filterUserEl.value = this.filterInitialData.user;
153
- this.filterStyleEl.value = this.filterInitialData.style;
154
- this.filterLanguageEl.value = this.filterInitialData.language;
155
- this.filterDensityEl.value = this.filterInitialData.density;
156
- this.filterLayerEl.value = this.filterInitialData.layer;
157
- }
158
- };
159
- this.toggleFiltersHandler = () => {
160
- this.filtersHidden = !this.filtersHidden;
161
- };
162
- this.selectAll = () => {
163
- this.chGridEl.selectAllRows();
164
- };
165
- this.deselectAll = () => {
166
- this.chGridEl.selectAllRows(false);
167
- };
168
- this.listenChanges = () => {
169
- /* name */
170
- this.filterNameEl.addEventListener("change", () => {
171
- this.getImages();
187
+ __classPrivateFieldGet(this, _GxIdeWWImages_deselectAll, "f").call(this);
188
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterImagesInformationHandler, "f").call(this);
172
189
  });
190
+ });
191
+ _GxIdeWWImages_getToday.set(this, () => {
192
+ const now = new Date();
193
+ const date = now.toISOString().split("T")[0];
194
+ const time = now.toISOString().split("T")[1].slice(0, 5); // Only take 'HH:MM' part
195
+ return `${date}T${time}`;
196
+ });
197
+ _GxIdeWWImages_addEventListeners.set(this, () => {
173
198
  /* module/folder */
174
- this.filterModuleEl.addEventListener("valueChanged", () => {
175
- this.getImages();
176
- });
177
- /* search contents*/
178
- this.filterSearchContentsEl.addEventListener("change", () => {
179
- this.getImages();
180
- });
181
- /* category */
182
- this.filterCategoryEl.addEventListener("valueChanged", () => {
183
- this.getImages();
184
- });
185
- /* (options) -> all descendants */
186
- this.filterAllDescendantsEl.addEventListener("change", () => {
187
- this.getImages();
188
- });
189
- /* (options) -> modified */
190
- this.filterModifiedEl.addEventListener("change", (e) => {
191
- this.filterModified = e.detail.value;
192
- this.getImages();
193
- });
194
- /* date/time */
195
- this.filterModifiedDateEl.addEventListener("valueChanged", () => {
196
- this.getImages();
197
- });
198
- /* after */
199
- this.filterAfterTypeEl.addEventListener("valueChanged", () => {
200
- this.filterAfterType = this.filterAfterTypeEl.value;
201
- this.getImages();
202
- });
203
- /* user */
204
- this.filterUserEl.addEventListener("change", () => {
205
- this.getImages();
206
- });
207
- /* style */
208
- this.filterStyleEl.addEventListener("valueChanged", () => {
209
- this.getImages();
210
- });
211
- /* language */
212
- this.filterLanguageEl.addEventListener("valueChanged", () => {
213
- this.getImages();
214
- });
215
- /* density */
216
- this.filterDensityEl.addEventListener("valueChanged", () => {
217
- this.getImages();
218
- });
219
- /* layer */
220
- this.filterLayerEl.addEventListener("valueChanged", () => {
221
- this.getImages();
199
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterModuleEl, "f").addEventListener("valueChanged", () => {
200
+ __classPrivateFieldGet(this, _GxIdeWWImages_handleModuleChange, "f").call(this);
222
201
  });
223
202
  // for grid selection
224
- this.chGridEl.addEventListener("selectionChanged", (ev) => {
225
- this.loadImageItemsCallback(ev.detail.rowsId[0]).then((items) => {
226
- this.imagesSelectedItems = items;
227
- });
228
- });
229
- this.chGridEl.addEventListener("rowDoubleClicked", () => {
230
- this.openSelectionCallBackHandler();
231
- });
232
- this.chGridEl.addEventListener("selectionChanged", (ev) => {
203
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("selectionChanged", (ev) => {
233
204
  this.selectedObjectsIds = ev.detail.rowsId;
234
205
  this.selectionObjectChangedCallback(this.selectedObjectsIds);
206
+ if (this.selectedObjectsIds.length === 0) {
207
+ this.imagesSelectedItems = [];
208
+ return;
209
+ }
210
+ // Collect cached items immediately
211
+ const cachedItems = [];
212
+ const idsToLoad = [];
213
+ this.selectedObjectsIds.forEach((selectedId) => {
214
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").has(selectedId)) {
215
+ const items = __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").get(selectedId);
216
+ if (items) {
217
+ cachedItems.push(...items);
218
+ }
219
+ }
220
+ else {
221
+ idsToLoad.push(selectedId);
222
+ }
223
+ });
224
+ // If all items were cached, update immediately
225
+ if (idsToLoad.length === 0) {
226
+ this.imagesSelectedItems = cachedItems;
227
+ return;
228
+ }
229
+ // Store current selection to verify later (prevents race conditions)
230
+ const currentSelection = [...this.selectedObjectsIds].sort().join(",");
231
+ // Load missing items and combine with cached ones
232
+ // loadImageItemsCallback must be invoked the first time a user selects an image
233
+ const loadPromises = idsToLoad.map((selectedId) => this.loadImageItemsCallback(selectedId).then((items) => {
234
+ // Cache the items for future use
235
+ __classPrivateFieldGet(this, _GxIdeWWImages_imagesMap, "f").set(selectedId, items);
236
+ return items;
237
+ }));
238
+ Promise.all(loadPromises).then((loadedItemsArrays) => {
239
+ // Verify that selection hasn't changed while loading
240
+ const currentSelectionAfterLoad = [...this.selectedObjectsIds]
241
+ .sort()
242
+ .join(",");
243
+ if (currentSelection !== currentSelectionAfterLoad) {
244
+ // Selection changed, ignore this result
245
+ return;
246
+ }
247
+ // Combine cached items with newly loaded items
248
+ const allImageItems = [...cachedItems];
249
+ loadedItemsArrays.forEach(items => {
250
+ allImageItems.push(...items);
251
+ });
252
+ this.imagesSelectedItems = allImageItems;
253
+ });
254
+ });
255
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("rowDoubleClicked", () => {
256
+ __classPrivateFieldGet(this, _GxIdeWWImages_openSelectionCallBackHandler, "f").call(this);
235
257
  });
236
- this.chGridEl.addEventListener("rowContextMenu", (ev) => {
258
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").addEventListener("rowContextMenu", (ev) => {
237
259
  ev.preventDefault();
238
260
  ev.stopPropagation();
239
261
  this.contextMenuCallback({
@@ -242,173 +264,498 @@ const GxIdeWWImages = /*@__PURE__*/ proxyCustomElement(class GxIdeWWImages exten
242
264
  clientY: ev.detail.clientY
243
265
  });
244
266
  });
245
- };
246
- this.filterInputHandler = (e) => {
247
- this.filterImagesInputValue = e.detail;
248
- this.filterImagesInformationHandler();
249
- };
250
- this.filterImagesInformationHandler = () => {
251
- const filterValue = this.filterImagesInputValue.toLocaleLowerCase();
252
- this.filteredImages = this.images.filter(image => {
253
- const nameMatch = image.name.toLocaleLowerCase().includes(filterValue);
254
- const moduleMatch = image.module
255
- .toLocaleLowerCase()
256
- .includes(filterValue);
257
- const descriptionMatch = image.description
258
- .toLocaleLowerCase()
259
- .includes(filterValue);
260
- const modifiedDateMatch = image.modifiedDate
261
- .toString()
262
- .includes(filterValue);
263
- const lastUser = image.lastUser.toLocaleLowerCase().includes(filterValue);
264
- const importDateMatch = image.importDate && image.importDate.toString().includes(filterValue);
265
- return (nameMatch ||
266
- moduleMatch ||
267
- descriptionMatch ||
268
- modifiedDateMatch ||
269
- lastUser ||
270
- importDateMatch);
271
- });
272
- };
273
- this.filtersHidden = true;
274
- this.filterAfterType = "";
275
- this.filterModified = false;
267
+ });
268
+ /**
269
+ * Sorts images based on the current order criteria
270
+ */
271
+ _GxIdeWWImages_sortImages.set(this, (a, b) => {
272
+ if (this.order.orderCriteria) {
273
+ const valueA = __classPrivateFieldGet(this, _GxIdeWWImages_instances, "m", _GxIdeWWImages_getImageValue).call(this, a, this.order.orderCriteria).toUpperCase();
274
+ const valueB = __classPrivateFieldGet(this, _GxIdeWWImages_instances, "m", _GxIdeWWImages_getImageValue).call(this, b, this.order.orderCriteria).toUpperCase();
275
+ if (valueA < valueB) {
276
+ return this.order.ascending ? -1 : 1;
277
+ }
278
+ if (valueA > valueB) {
279
+ return this.order.ascending ? 1 : -1;
280
+ }
281
+ }
282
+ return 0;
283
+ });
284
+ /**
285
+ * Handles column sort changes
286
+ */
287
+ _GxIdeWWImages_handleColumnSortChanged.set(this, (e) => {
288
+ const { columnId, sortDirection } = e.detail;
289
+ this.order = {
290
+ orderCriteria: columnId,
291
+ ascending: sortDirection === "asc"
292
+ };
293
+ });
294
+ _GxIdeWWImages_newObjectCallbackHandler.set(this, () => {
295
+ this.newObjectCallback();
296
+ });
297
+ _GxIdeWWImages_openSelectionCallBackHandler.set(this, () => {
298
+ this.openSelectionCallback(this.selectedObjectsIds);
299
+ });
300
+ _GxIdeWWImages_toggleModifiedControls.set(this, (event) => {
301
+ this.enabledModifiedControls = event.detail === MODIFIED_VALUE;
302
+ });
303
+ _GxIdeWWImages_renderHeader.set(this, () => {
304
+ return [
305
+ h("div", {
306
+ // name
307
+ class: "field field-block name"
308
+ }, 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") })),
309
+ 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", {
310
+ // module/folder
311
+ id: "module/folder", labelPosition: "none", value: this.filterModuleValue, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (__classPrivateFieldSet(this, _GxIdeWWImages_filterModuleEl, el, "f"))
312
+ })),
313
+ h("ch-accordion-render", {
314
+ // modified
315
+ class: "accordion-outlined advanced-filter-accordion", model: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_MODEL, "f")
316
+ }, h("div", { slot: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_FILTER_ID, "f"), class: "spacing-body" }, h("div", { class: "main__filter field-group scrollable" }, h("div", {
317
+ // category
318
+ class: "field field-block category"
319
+ }, 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", {
320
+ // category
321
+ class: "field-group options"
322
+ }, h("label", { class: "label", htmlFor: "filter-category" }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.options), h("div", {
323
+ // options
324
+ class: "field field-inline"
325
+ }, h("ch-checkbox", { class: "checkbox all-descendants", caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.allDescendants, checkedValue: ALL_DESCENDANTS_VALUE, value: this.filterAllDescendantsValue
326
+ ? ALL_DESCENDANTS_VALUE
327
+ : 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", {
328
+ // after
329
+ class: "field field-block after-date-time"
330
+ }, h("label", { class: {
331
+ "label": true,
332
+ "label--disabled": !this.enabledModifiedControls
333
+ }, 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", {
334
+ // user
335
+ class: "field field-block user"
336
+ }, h("label", { class: {
337
+ "label": true,
338
+ "label--disabled": !this.enabledModifiedControls
339
+ }, 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", {
340
+ // date/time
341
+ class: "field field-block date-time"
342
+ }, h("label", { class: {
343
+ "label": true,
344
+ "label--disabled": this.afterCurrentValue !== FILTER_AFTER.DATE_TIME
345
+ }, 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", {
346
+ // style
347
+ class: "field field-block style"
348
+ }, 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", {
349
+ // language
350
+ class: "field field-block language"
351
+ }, 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", {
352
+ // density
353
+ class: "field field-block"
354
+ }, 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", {
355
+ // layer
356
+ class: "field field-block"
357
+ }, 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", {
358
+ // search contents
359
+ class: "field field-block search-by-contents"
360
+ }, 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", {
361
+ // reset filter button
362
+ class: "button-secondary button-icon-and-text button-reset", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_resetFilterHandler, "f")
363
+ }, h("ch-image", { class: "icon-sm", src: RESET_ICON, type: "mask" }), __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.resetFilters))))
364
+ ];
365
+ });
366
+ _GxIdeWWImages_renderFilter.set(this, () => {
367
+ return (h("div", { class: "sidebar-container scrollable" }, __classPrivateFieldGet(this, _GxIdeWWImages_renderImages, "f").call(this)));
368
+ });
369
+ _GxIdeWWImages_renderImages.set(this, () => {
370
+ return (
371
+ /* tiles */
372
+ 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))))));
373
+ });
374
+ _GxIdeWWImages_renderTabularGrid.set(this, () => {
375
+ const commonColSize = "minmax(max-content, auto)";
376
+ return (h("div", { class: {
377
+ "field-group": true,
378
+ "main__grid": true
379
+ } }, 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]
380
+ .sort(__classPrivateFieldGet(this, _GxIdeWWImages_sortImages, "f"))
381
+ .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" })))))));
382
+ });
383
+ _GxIdeWWImages_resetFilterHandler.set(this, () => {
384
+ if (__classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f")) {
385
+ this.filterNameValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").name;
386
+ this.filterModuleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").module;
387
+ this.filterSearchContentsValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").searchContents;
388
+ this.filterCategoryValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").category;
389
+ this.filterAllDescendantsValue =
390
+ __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").allDescendants === ALL_DESCENDANTS_VALUE;
391
+ this.filterAfterTypeValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedAfter;
392
+ this.filterModifiedDateValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedDateTime;
393
+ this.filterUserValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").modifiedUser;
394
+ this.filterStyleValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").style;
395
+ this.filterLanguageValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").language;
396
+ this.filterDensityValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").density;
397
+ this.filterLayerValue = __classPrivateFieldGet(this, _GxIdeWWImages_filterInitialData, "f").layer;
398
+ this.afterCurrentValue = this.filterAfterTypeValue;
399
+ }
400
+ });
401
+ _GxIdeWWImages_saveInitialFilterData.set(this, () => {
402
+ __classPrivateFieldSet(this, _GxIdeWWImages_filterInitialData, {
403
+ name: this.filterNameValue,
404
+ module: this.filterModuleValue,
405
+ searchContents: this.filterSearchContentsValue,
406
+ category: this.filterCategoryValue,
407
+ allDescendants: this.filterAllDescendantsValue
408
+ ? ALL_DESCENDANTS_VALUE
409
+ : "",
410
+ modifiedAfter: this.filterAfterTypeValue,
411
+ modifiedDateTime: this.filterModifiedDateValue,
412
+ modifiedUser: this.filterUserValue,
413
+ style: this.filterStyleValue,
414
+ language: this.filterLanguageValue,
415
+ density: this.filterDensityValue,
416
+ layer: this.filterLayerValue
417
+ }, "f");
418
+ });
419
+ _GxIdeWWImages_selectAll.set(this, () => {
420
+ __classPrivateFieldGet(this, _GxIdeWWImages_chGridEl, "f").selectAllRows();
421
+ });
422
+ this.categoriesComboBoxModel = [];
423
+ this.densitiesComboBoxModel = [];
424
+ this.languagesComboBoxModel = [];
425
+ this.layersComboBoxModel = [];
426
+ this.stylesComboBoxModel = [];
427
+ this.afterCurrentValue = undefined;
428
+ this.filterAfterOptions = undefined;
429
+ this.tabularGridData = [];
276
430
  this.images = [];
277
- this.filteredImages = [];
278
431
  this.imagesSelectedItems = [];
279
432
  this.selectedObjectsIds = [];
280
- this.filterImagesInputValue = "";
281
- this.displayTitle = false;
282
- this.secondaryFilter = false;
433
+ this.enabledModifiedControls = false;
434
+ this.order = {
435
+ orderCriteria: null,
436
+ ascending: null
437
+ };
438
+ this.filterNameValue = "";
439
+ this.filterSearchContentsValue = "";
440
+ this.filterCategoryValue = undefined;
441
+ this.filterAllDescendantsValue = false;
442
+ this.filterAfterTypeValue = undefined;
443
+ this.filterUserValue = "";
444
+ this.filterModifiedDateValue = "";
445
+ this.filterStyleValue = undefined;
446
+ this.filterLanguageValue = undefined;
447
+ this.filterDensityValue = undefined;
448
+ this.filterLayerValue = undefined;
449
+ this.filterModuleValue = undefined;
283
450
  this.categories = undefined;
284
- this.densities = undefined;
451
+ this.contextMenuCallback = undefined;
285
452
  this.defaultCategory = undefined;
286
453
  this.defaultModule = undefined;
287
- this.defaultType = undefined;
288
- this.filterModules = undefined;
454
+ this.deleteSelectionCallback = undefined;
455
+ this.densities = undefined;
289
456
  this.languages = undefined;
290
457
  this.layers = undefined;
291
- this.contextMenuCallback = undefined;
292
- this.deleteSelectionCallback = undefined;
293
458
  this.loadCallback = undefined;
294
459
  this.loadImageItemsCallback = undefined;
295
460
  this.newObjectCallback = undefined;
296
461
  this.openSelectionCallback = undefined;
297
462
  this.selectModuleCallback = undefined;
298
463
  this.selectionObjectChangedCallback = undefined;
299
- this.shadow = false;
300
464
  this.styles = undefined;
301
- this.types = undefined;
302
465
  }
303
- filtersHiddenHandler(hidden) {
304
- if (hidden) {
305
- this.removeDetectClickOutsideFilter();
306
- }
307
- else {
308
- this.attachDetectClickOutsideFilter();
309
- }
466
+ categoriesChanged(newCategories) {
467
+ this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);
468
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
310
469
  }
311
- // 6.COMPONENT LIFECYCLE EVENTS //
312
- async componentWillLoad() {
313
- this._componentLocale = await Locale.getComponentStrings(this.el);
314
- this.componentDidLoadEvent.emit(true);
470
+ defaultCategoryChanged() {
471
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
472
+ }
473
+ densitiesChanged(newDensities) {
474
+ this.densitiesComboBoxModel = mapOptionsToComboBoxItemModel(newDensities);
475
+ }
476
+ languagesChanged(newLanguages) {
477
+ this.languagesComboBoxModel = mapOptionsToComboBoxItemModel(newLanguages);
478
+ }
479
+ layersChanged(newLayers) {
480
+ this.layersComboBoxModel = mapOptionsToComboBoxItemModel(newLayers);
481
+ }
482
+ stylesChanged(newStyles) {
483
+ this.stylesComboBoxModel = mapOptionsToComboBoxItemModel(newStyles);
484
+ }
485
+ async connectedCallback() {
486
+ TODAY = __classPrivateFieldGet(this, _GxIdeWWImages_getToday, "f").call(this);
315
487
  }
316
488
  componentDidLoad() {
317
- this.listenChanges();
318
- this.getImages();
319
- this.saveInitialFilterData();
320
- this.filterNameEl.focus();
489
+ __classPrivateFieldGet(this, _GxIdeWWImages_addEventListeners, "f").call(this);
490
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
491
+ __classPrivateFieldGet(this, _GxIdeWWImages_saveInitialFilterData, "f").call(this);
492
+ __classPrivateFieldSet(this, _GxIdeWWImages_isInitialLoad, false, "f");
321
493
  }
322
- componentDidRender() {
323
- if (!this.renderedFirstTime) {
324
- this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
325
- this.renderedFirstTime = true;
494
+ async componentWillLoad() {
495
+ __classPrivateFieldSet(this, _GxIdeWWImages_componentLocale, await Locale.getComponentStrings(this.el), "f");
496
+ // initialize combo-box models
497
+ this.categoriesChanged(this.categories);
498
+ this.densitiesChanged(this.densities);
499
+ this.languagesChanged(this.languages);
500
+ this.layersChanged(this.layers);
501
+ this.stylesChanged(this.styles);
502
+ // initialize "After" combo-box options
503
+ this.filterAfterOptions = [
504
+ {
505
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.afterNone,
506
+ value: FILTER_AFTER.NONE
507
+ },
508
+ {
509
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.DATE_TIME],
510
+ value: FILTER_AFTER.DATE_TIME
511
+ },
512
+ {
513
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.IMPORT],
514
+ value: FILTER_AFTER.IMPORT
515
+ },
516
+ {
517
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter[FILTER_AFTER.LAST_BUILD],
518
+ value: FILTER_AFTER.LAST_BUILD
519
+ }
520
+ ];
521
+ this.afterCurrentValue = this.filterAfterOptions[0].value;
522
+ this.filterAfterTypeValue = this.filterAfterOptions[0].value;
523
+ // Initialize filter state values
524
+ __classPrivateFieldGet(this, _GxIdeWWImages_applyDefaultCategory, "f").call(this);
525
+ this.filterModuleValue = this.defaultModule;
526
+ if (this.stylesComboBoxModel.length > 0) {
527
+ this.filterStyleValue = this.stylesComboBoxModel[0].value;
326
528
  }
529
+ if (this.languagesComboBoxModel.length > 0) {
530
+ this.filterLanguageValue = this.languagesComboBoxModel[0].value;
531
+ }
532
+ if (this.densitiesComboBoxModel.length > 0) {
533
+ this.filterDensityValue = this.densitiesComboBoxModel[0].value;
534
+ }
535
+ if (this.layersComboBoxModel.length > 0) {
536
+ this.filterLayerValue = this.layersComboBoxModel[0].value;
537
+ }
538
+ __classPrivateFieldSet(this, _GxIdeWWImages_ACCORDION_MODEL, [
539
+ {
540
+ id: __classPrivateFieldGet(this, _GxIdeWWImages_ACCORDION_FILTER_ID, "f"),
541
+ caption: __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").filter.accordionCaption,
542
+ expanded: false
543
+ }
544
+ ], "f");
327
545
  }
328
- // 7.LISTENERS //
329
546
  keyDownHandler(eventInfo) {
330
547
  if (document.activeElement === this.el) {
331
548
  switch (eventInfo.key) {
332
549
  case "Enter":
333
- this.openSelectionCallBackHandler();
550
+ __classPrivateFieldGet(this, _GxIdeWWImages_openSelectionCallBackHandler, "f").call(this);
334
551
  break;
335
552
  case "Delete":
336
- this.deleteSelectionCallbackHandler();
553
+ __classPrivateFieldGet(this, _GxIdeWWImages_deleteSelectionCallbackHandler, "f").call(this);
337
554
  break;
338
555
  }
339
556
  }
340
557
  }
341
- // 8.PUBLIC METHODS API //
342
558
  /**
343
- * Validate necessary data input
559
+ * Reloads the view, refreshing the filters and the images table.
344
560
  */
345
- async validate() {
346
- const isValid = true;
347
- return isValid;
561
+ async reload() {
562
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
348
563
  }
349
564
  /**
350
- * This method reload the view, refreshing the filters and the table of images.
565
+ * Watch filter state variables and trigger #getImages when they change
351
566
  */
352
- async reload() {
353
- this.getImages();
567
+ filterNameValueChanged() {
568
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
569
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
570
+ }
571
+ }
572
+ filterSearchContentsValueChanged() {
573
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
574
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
575
+ }
576
+ }
577
+ filterCategoryValueChanged() {
578
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
579
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
580
+ }
581
+ }
582
+ filterAllDescendantsValueChanged() {
583
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
584
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
585
+ }
586
+ }
587
+ filterAfterTypeValueChanged() {
588
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
589
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
590
+ }
591
+ }
592
+ filterUserValueChanged() {
593
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
594
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
595
+ }
596
+ }
597
+ filterModifiedDateValueChanged() {
598
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
599
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
600
+ }
601
+ }
602
+ filterStyleValueChanged() {
603
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
604
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
605
+ }
606
+ }
607
+ filterLanguageValueChanged() {
608
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
609
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
610
+ }
611
+ }
612
+ filterDensityValueChanged() {
613
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
614
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
615
+ }
616
+ }
617
+ filterLayerValueChanged() {
618
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
619
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
620
+ }
621
+ }
622
+ filterModuleValueChanged() {
623
+ if (!__classPrivateFieldGet(this, _GxIdeWWImages_isInitialLoad, "f")) {
624
+ __classPrivateFieldGet(this, _GxIdeWWImages_getImages, "f").call(this);
625
+ }
354
626
  }
355
- // 10.RENDER() FUNCTION //
356
627
  render() {
357
- 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}`)))));
628
+ 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", {
629
+ // matching objects
630
+ class: "text-body"
631
+ }, `${this.tabularGridData.length} ${__classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").objCount.matching}`), h("div", { class: "buttons-spacer" }, h("button", {
632
+ // select all button
633
+ id: "button-select-all", class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_selectAll, "f")
634
+ }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").footer.btnSelectAll), h("button", {
635
+ // new image button
636
+ id: "button-new-file", class: "button-primary button-icon-and-text", onClick: __classPrivateFieldGet(this, _GxIdeWWImages_newObjectCallbackHandler, "f")
637
+ }, __classPrivateFieldGet(this, _GxIdeWWImages_componentLocale, "f").footer.btnNew))))));
358
638
  }
359
639
  static get assetsDirs() { return ["gx-ide-assets/ww-images"]; }
360
640
  get el() { return this; }
361
641
  static get watchers() { return {
362
- "filtersHidden": ["filtersHiddenHandler"]
642
+ "categories": ["categoriesChanged"],
643
+ "defaultCategory": ["defaultCategoryChanged"],
644
+ "densities": ["densitiesChanged"],
645
+ "languages": ["languagesChanged"],
646
+ "layers": ["layersChanged"],
647
+ "styles": ["stylesChanged"],
648
+ "filterNameValue": ["filterNameValueChanged"],
649
+ "filterSearchContentsValue": ["filterSearchContentsValueChanged"],
650
+ "filterCategoryValue": ["filterCategoryValueChanged"],
651
+ "filterAllDescendantsValue": ["filterAllDescendantsValueChanged"],
652
+ "filterAfterTypeValue": ["filterAfterTypeValueChanged"],
653
+ "filterUserValue": ["filterUserValueChanged"],
654
+ "filterModifiedDateValue": ["filterModifiedDateValueChanged"],
655
+ "filterStyleValue": ["filterStyleValueChanged"],
656
+ "filterLanguageValue": ["filterLanguageValueChanged"],
657
+ "filterDensityValue": ["filterDensityValueChanged"],
658
+ "filterLayerValue": ["filterLayerValueChanged"],
659
+ "filterModuleValue": ["filterModuleValueChanged"]
363
660
  }; }
364
661
  static get style() { return wwImagesCss; }
365
662
  }, [1, "gx-ide-ww-images", {
366
- "displayTitle": [4, "display-title"],
367
- "secondaryFilter": [4, "secondary-filter"],
368
663
  "categories": [16],
369
- "densities": [16],
664
+ "contextMenuCallback": [16],
370
665
  "defaultCategory": [1, "default-category"],
371
666
  "defaultModule": [16],
372
- "defaultType": [1, "default-type"],
373
- "filterModules": [16],
667
+ "deleteSelectionCallback": [16],
668
+ "densities": [16],
374
669
  "languages": [16],
375
670
  "layers": [16],
376
- "contextMenuCallback": [16],
377
- "deleteSelectionCallback": [16],
378
671
  "loadCallback": [16],
379
672
  "loadImageItemsCallback": [16],
380
673
  "newObjectCallback": [16],
381
674
  "openSelectionCallback": [16],
382
675
  "selectModuleCallback": [16],
383
676
  "selectionObjectChangedCallback": [16],
384
- "shadow": [4],
385
677
  "styles": [16],
386
- "types": [16],
387
- "filtersHidden": [32],
388
- "filterAfterType": [32],
389
- "filterModified": [32],
678
+ "categoriesComboBoxModel": [32],
679
+ "densitiesComboBoxModel": [32],
680
+ "languagesComboBoxModel": [32],
681
+ "layersComboBoxModel": [32],
682
+ "stylesComboBoxModel": [32],
683
+ "afterCurrentValue": [32],
684
+ "filterAfterOptions": [32],
685
+ "tabularGridData": [32],
390
686
  "images": [32],
391
- "filteredImages": [32],
392
687
  "imagesSelectedItems": [32],
393
688
  "selectedObjectsIds": [32],
394
- "filterImagesInputValue": [32],
395
- "validate": [64],
689
+ "enabledModifiedControls": [32],
690
+ "order": [32],
691
+ "filterNameValue": [32],
692
+ "filterSearchContentsValue": [32],
693
+ "filterCategoryValue": [32],
694
+ "filterAllDescendantsValue": [32],
695
+ "filterAfterTypeValue": [32],
696
+ "filterUserValue": [32],
697
+ "filterModifiedDateValue": [32],
698
+ "filterStyleValue": [32],
699
+ "filterLanguageValue": [32],
700
+ "filterDensityValue": [32],
701
+ "filterLayerValue": [32],
702
+ "filterModuleValue": [32],
396
703
  "reload": [64]
397
704
  }, [[1, "keydown", "keyDownHandler"]], {
398
- "filtersHidden": ["filtersHiddenHandler"]
705
+ "categories": ["categoriesChanged"],
706
+ "defaultCategory": ["defaultCategoryChanged"],
707
+ "densities": ["densitiesChanged"],
708
+ "languages": ["languagesChanged"],
709
+ "layers": ["layersChanged"],
710
+ "styles": ["stylesChanged"],
711
+ "filterNameValue": ["filterNameValueChanged"],
712
+ "filterSearchContentsValue": ["filterSearchContentsValueChanged"],
713
+ "filterCategoryValue": ["filterCategoryValueChanged"],
714
+ "filterAllDescendantsValue": ["filterAllDescendantsValueChanged"],
715
+ "filterAfterTypeValue": ["filterAfterTypeValueChanged"],
716
+ "filterUserValue": ["filterUserValueChanged"],
717
+ "filterModifiedDateValue": ["filterModifiedDateValueChanged"],
718
+ "filterStyleValue": ["filterStyleValueChanged"],
719
+ "filterLanguageValue": ["filterLanguageValueChanged"],
720
+ "filterDensityValue": ["filterDensityValueChanged"],
721
+ "filterLayerValue": ["filterLayerValueChanged"],
722
+ "filterModuleValue": ["filterModuleValueChanged"]
399
723
  }]);
724
+ _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) {
725
+ var _a;
726
+ switch (key) {
727
+ case "name":
728
+ return image.name || "";
729
+ case "module":
730
+ return image.module || "";
731
+ case "description":
732
+ return image.description || "";
733
+ case "modifiedDate":
734
+ return image.modifiedDate
735
+ ? formatDate(image.modifiedDate).toLowerCase()
736
+ : "";
737
+ case "lastUser":
738
+ return ((_a = image.lastUser) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || "";
739
+ case "importDate":
740
+ return image.importDate
741
+ ? formatDate(image.importDate).toLowerCase()
742
+ : "";
743
+ default:
744
+ return "";
745
+ }
746
+ };
400
747
  function defineCustomElement$1() {
401
748
  if (typeof customElements === "undefined") {
402
749
  return;
403
750
  }
404
- const components = ["gx-ide-ww-images", "gx-ide-container", "gx-ide-entity-selector"];
751
+ const components = ["gx-ide-ww-images", "gx-ide-empty-state", "gx-ide-entity-selector"];
405
752
  components.forEach(tagName => { switch (tagName) {
406
753
  case "gx-ide-ww-images":
407
754
  if (!customElements.get(tagName)) {
408
755
  customElements.define(tagName, GxIdeWWImages);
409
756
  }
410
757
  break;
411
- case "gx-ide-container":
758
+ case "gx-ide-empty-state":
412
759
  if (!customElements.get(tagName)) {
413
760
  defineCustomElement$3();
414
761
  }