@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 +0,0 @@
1
- {"version":3,"names":["wwImagesCss","CSS_BUNDLES","GxIdeWWImages","this","renderedFirstTime","attachDetectClickOutsideFilter","document","addEventListener","detectClickOutsideFilter","removeDetectClickOutsideFilter","removeEventListener","e","clickedOutside","closeOnOutsideClickHandler","filterEl","filtersHidden","saveInitialFilterData","filterInitialData","name","filterNameEl","value","module","filterModuleEl","searchContents","filterSearchContentsEl","category","filterCategoryEl","allDescendants","filterAllDescendantsEl","checked","modified","filterModifiedEl","dateTime","filterModifiedDateEl","after","filterAfterTypeEl","user","filterUserEl","style","filterStyleEl","language","filterLanguageEl","density","filterDensityEl","layer","filterLayerEl","renderFilter","h","class","ref","el","label","_componentLocale","filter","part","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","onClick","resetFilterHandler","type","icon","toggleFiltersHandler","search","defaultCategory","disabled","categories","renderFormItems","_a","labelPosition","center","hide","filterModified","filterAfterType","FILTER_AFTER","DATE_TIME","afterLabel","id","NONE","afterNone","IMPORT","LAST_BUILD","centerLabel","styles","_b","languages","_c","densities","_d","layers","_e","renderImagesData","contentBorderEnd","noContentPadding","secondaryFilter","slot","placeholder","onInput","filterInputHandler","chGridEl","rowSelectionMode","columnName","columnNameHidden","settingable","sortable","size","config","tabularGrid","colSize","maxContent","tableHead","common","description","commonDouble","modifiedDate","lastUser","importDate","filteredImages","map","obj","rowid","src","hiChar","filterImagesInputValue","formatDate","renderImages","titleHeightAsInput","imagesDataTitle","imagesSelectedItems","item","url","alt","getImages","filters","parent","modifiedAfter","Object","assign","modifiedBy","loadCallback","then","items","images","selectedObjectsIds","deselectAll","filterImagesInformationHandler","newObjectCallbackHandler","newObjectCallback","openSelectionCallBackHandler","openSelectionCallback","deleteSelectionCallbackHandler","deleteSelectionCallback","selectAll","selectAllRows","listenChanges","detail","ev","loadImageItemsCallback","rowsId","selectionObjectChangedCallback","preventDefault","stopPropagation","contextMenuCallback","selection","selectedRowsId","clientX","clientY","filterValue","toLocaleLowerCase","image","nameMatch","includes","moduleMatch","descriptionMatch","modifiedDateMatch","toString","importDateMatch","filtersHiddenHandler","hidden","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","keyDownHandler","eventInfo","activeElement","key","validate","isValid","reload","render","Host","model","noContentGap","slimmerFooter","gxIdeContainer","footer","btnSelectAll","btnNew","length","objCount","matching"],"sources":["src/components/ww-images/ww-images.scss?tag=gx-ide-ww-images&encapsulation=shadow","src/components/ww-images/ww-images.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: block;\n}\n\n/*--- Filter ---*/\n.module-folder::part(wrapper) {\n padding-block: var(--spacing-padding-xxs);\n margin-block-start: var(--gxg-label-separation-vertical);\n}\n.filter--padding {\n padding: var(--gx-ide-container__padding);\n}\n.filter--gap {\n gap: var(--spacing-gap-xl);\n}\n.filter {\n display: flex;\n flex-direction: column;\n &__first-row {\n display: flex;\n gap: var(--spacing-gap-l);\n .name,\n .module-folder {\n flex: 1;\n }\n .filter-btn {\n flex: none;\n }\n .second-column {\n display: flex;\n flex-direction: row;\n align-items: end;\n gap: var(--spacing-gap-l);\n }\n > * {\n flex: 1;\n }\n }\n .checkboxes-label-wrapper {\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n .checkboxes-wrapper {\n display: flex;\n gap: var(--spacing-gap-l);\n border-radius: var(--border-radius-sm);\n height: var(--gxg-form-text-height);\n box-sizing: border-box;\n align-items: center;\n padding-inline-start: var(--spacing-padding-xs);\n }\n .user {\n max-inline-size: 100% !important;\n }\n}\n\n/*Filter*/\n.filters-outer-wrapper {\n display: grid;\n grid-template-rows: 1fr;\n transition: grid-template-rows 200ms;\n &--hidden {\n grid-template-rows: 0fr;\n }\n}\n.filters-inner-wrapper {\n padding-block-start: var(--gx-ide-container__padding);\n display: grid;\n overflow: hidden;\n grid-template-columns: repeat(12, 1fr);\n grid-template-rows: repeat(3, 1fr);\n\n .search-contents {\n grid-area: 1 / 1 / 2 / 5;\n }\n .category {\n grid-area: 1 / 5 / 2 / 9;\n }\n .options {\n grid-area: 1 / 9 / 2 / 13;\n }\n .date-time {\n grid-area: 2 / 1 / 3 / 5;\n }\n .after-date-time {\n grid-area: 2 / 5 / 3 / 9;\n }\n .user {\n grid-area: 2 / 9 / 3 / 13;\n }\n .style {\n grid-area: 3 / 1 / 4 / 4;\n }\n .language {\n grid-area: 3 / 4 / 4 / 7;\n }\n .density {\n grid-area: 3 / 7 / 4 / 10;\n }\n .layer {\n grid-area: 3 / 10 / 4 / 13;\n }\n}\n\ngxg-date-picker {\n position: absolute;\n inline-size: calc(33% - 16px);\n}\ngxg-date-picker::part(input) {\n block-size: 24px;\n}\n\n.master-wrapper {\n block-size: 100%;\n position: relative;\n display: grid;\n grid-template-rows: auto 1fr;\n}\n\n/*--- Grid/Images Container ---*/\n.grid-images-container {\n display: grid;\n grid-template-columns: 1fr 220px;\n grid-column-gap: 0;\n grid-row-gap: 0;\n overflow: auto;\n}\n.images-information {\n &__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-gap-l);\n &-title {\n flex: none;\n }\n }\n}\n\n/* Objects Table */\n.images-grid {\n grid-template-columns: repeat(2, 1fr);\n grid-column-gap: 0;\n > :nth-child(1) {\n grid-area: 1 / 1 / 1 / 3;\n }\n}\n.images-container {\n .image-item {\n display: inline-block;\n inline-size: 50%;\n block-size: 128px;\n &__container {\n padding: var(--gx-ide-container__padding);\n img {\n inline-size: 100%;\n block-size: 100%;\n object-fit: scale-down;\n }\n }\n &__name {\n @include ellipsis;\n text-align: center;\n inline-size: 100%;\n display: block;\n font-size: var(--font-size-body-xs);\n padding-block: var(--spacing-padding-xs);\n padding-inline: var(--spacing-padding-m);\n box-sizing: border-box;\n background-color: var(--color-accent-surface-surface);\n }\n &:nth-child(odd) {\n .image-item__name {\n border-inline-end: 1px solid var(--color-border-surface-on-elevation-1);\n }\n }\n }\n}\n.objects-count {\n grid-template-columns: repeat(2, 1fr);\n *:nth-child(2) {\n justify-content: flex-end;\n align-items: flex-start;\n }\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-ww-images\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 4\n )\n);\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { ChGridRowContextMenuEvent } from \"@genexus/chameleon-controls-library\";\nimport { DatePickerDate } from \"@genexus/gemini/dist/types/components/date-picker/date-picker\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { FILTER_AFTER } from \"../../common/constants\";\nimport {\n formatDate,\n hiChar,\n closeOnOutsideClickHandler\n} from \"../../common/helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-ww-images\",\n styleUrl: \"ww-images.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-images\"]\n})\nexport class GxIdeWWImages {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private filterInitialData: FilerInitialData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeWwImagesElement;\n\n private filterEl: HTMLDivElement;\n /* References needed to collect data */\n private filterNameEl!: HTMLGxgFormTextElement;\n private filterSearchContentsEl!: HTMLGxgFormTextElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAllDescendantsEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private filterStyleEl!: HTMLGxgComboBoxElement;\n private filterLanguageEl!: HTMLGxgComboBoxElement;\n private filterDensityEl!: HTMLGxgComboBoxElement;\n private filterLayerEl!: HTMLGxgComboBoxElement;\n private chGridEl!: HTMLChGridElement;\n\n // 3.STATE() VARIABLES //\n\n @State() filtersHidden = true;\n @Watch(\"filtersHidden\")\n filtersHiddenHandler(hidden: boolean): void {\n if (hidden) {\n this.removeDetectClickOutsideFilter();\n } else {\n this.attachDetectClickOutsideFilter();\n }\n }\n\n /**\n * The after types render in the after selector\n */\n @State() filterAfterType = \"\";\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * The images rendered in the table\n */\n @State() images: ImageData[] = [];\n\n /**\n * The images rendered in the table, after the filter\n */\n @State() filteredImages: ImageData[] = [];\n\n /**\n * The items of the image that is selected\n */\n @State() imagesSelectedItems: ImageItemData[] = [];\n\n /**\n * The selected images in the table of images\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * The images filter input text value\n */\n @State() filterImagesInputValue = \"\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Displays a secondary filter, used to filter over the filtered images\n */\n @Prop() readonly secondaryFilter = false;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The densities render in the filter density selector\n */\n @Prop() readonly densities!: GxOption[];\n\n /**\n * The default value for the 'categories' filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The modules/folders render in the module/folder selector\n */\n @Prop() readonly filterModules!: GxOption[];\n\n /**\n * The languages render in the filter language selector\n */\n @Prop() readonly languages!: GxOption[];\n\n /**\n * The layers render in the filter layer selector\n */\n @Prop() readonly layers!: GxOption[];\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * This is a function provided by the developer that return a list of images to populate the table of images.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return a list of items of the image selected.\n */\n @Prop() readonly loadImageItemsCallback!: LoadImageItemsCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback!: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly selectionObjectChangedCallback!: SelectionObjectCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the filter style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.getImages();\n this.saveInitialFilterData();\n this.filterNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.openSelectionCallBackHandler();\n break;\n case \"Delete\":\n this.deleteSelectionCallbackHandler();\n break;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n /**\n * This method reload the view, refreshing the filters and the table of images.\n */\n @Method()\n async reload(): Promise<void> {\n this.getImages();\n }\n\n // 9.LOCAL METHODS //\n\n private attachDetectClickOutsideFilter = () => {\n document.addEventListener(\"click\", this.detectClickOutsideFilter);\n };\n private removeDetectClickOutsideFilter = () => {\n document.removeEventListener(\"click\", this.detectClickOutsideFilter);\n };\n private detectClickOutsideFilter = (e: PointerEvent): void => {\n const clickedOutside = closeOnOutsideClickHandler(e, this.filterEl);\n if (clickedOutside) {\n this.filtersHidden = true;\n } else {\n this.filtersHidden = false;\n }\n };\n\n /**\n * @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.\n */\n private saveInitialFilterData = () => {\n this.filterInitialData = {\n name: this.filterNameEl.value,\n module: this.filterModuleEl.value,\n searchContents: this.filterSearchContentsEl.value,\n category: this.filterCategoryEl.value,\n allDescendants: this.filterAllDescendantsEl.checked,\n modified: this.filterModifiedEl.checked,\n dateTime: this.filterModifiedDateEl.value,\n after: this.filterAfterTypeEl.value,\n user: this.filterUserEl.value,\n style: this.filterStyleEl.value,\n language: this.filterLanguageEl.value,\n density: this.filterDensityEl.value,\n layer: this.filterLayerEl.value\n };\n };\n\n // 9.LOCAL METHODS -> Renders //\n\n private renderFilter = (): Element => {\n return (\n <div\n class=\"filter filter--padding\"\n ref={(el: HTMLDivElement) => (this.filterEl = el as HTMLDivElement)}\n >\n <div class=\"filter__first-row\">\n {/* name */}\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.name}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-name\"\n class=\"name\"\n ></gxg-form-text>\n\n <div class=\"second-column\">\n {/* module/folder */}\n <gx-ide-entity-selector\n label-position=\"above\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n part=\"filter-module-folder\"\n ></gx-ide-entity-selector>\n\n {/* reset filter button */}\n <gxg-button\n onClick={this.resetFilterHandler}\n part=\"gxg-button-reset-filter\"\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n class=\"reset-filter-btn\"\n ></gxg-button>\n\n {/* filter button */}\n <gxg-button\n onClick={this.toggleFiltersHandler}\n part=\"gxg-button gxg-button--more-less\"\n type=\"secondary-icon-only\"\n icon={\n true ? \"window-tools/filter-conditions\" : \"window-tools/filter\"\n }\n class=\"filter-btn\"\n ></gxg-button>\n </div>\n </div>\n\n <div\n class={{\n \"filters-outer-wrapper\": true,\n \"filters-outer-wrapper--hidden\": this.filtersHidden\n }}\n >\n <div\n class={{\n \"filter\": true,\n \"filter--gap\": true,\n \"filters-inner-wrapper\": true\n }}\n >\n {/* search contents */}\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.search}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterSearchContentsEl = el as HTMLGxgFormTextElement)\n }\n class={{ \"search-contents\": true }}\n part=\"filter-search\"\n ></gxg-form-text>\n\n {/* category */}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.categories ?? [])}\n </gxg-combo-box>\n\n <div class=\"options\">\n <gxg-label labelPosition=\"above\" center={false}>\n Options:\n </gxg-label>\n {/* all descendants*/}\n <div class=\"checkboxes-wrapper\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.allDescendants}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterAllDescendantsEl =\n el as HTMLGxgFormCheckboxElement)\n }\n class=\"all-descendants\"\n part=\"filter-all-descendants\"\n ></gxg-form-checkbox>\n\n {/* modified */}\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n class=\"modified\"\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n </div>\n </div>\n\n {/* date/time*/}\n <div\n class={{\n \"hide\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME,\n \"date-time\": true\n }}\n part=\"filter-datetime\"\n >\n <div class=\"date-time-wrapper\">\n <gxg-label label-position=\"above\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n class=\"date-picker\"\n disabled={!this.filterModified}\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n ></gxg-date-picker>\n </div>\n </div>\n\n {/* after date/time */}\n <gxg-combo-box\n class=\"after-date-time\"\n disabled={!this.filterModified}\n label={this._componentLocale.filter.afterLabel}\n disable-filter\n value={this.filterAfterType}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderFormItems(\"gxg-combo-box-item\", [\n {\n id: FILTER_AFTER.NONE,\n label: this._componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n id: FILTER_AFTER.DATE_TIME,\n label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n id: FILTER_AFTER.IMPORT,\n label: this._componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n id: FILTER_AFTER.LAST_BUILD,\n label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ])}\n </gxg-combo-box>\n\n {/* user */}\n <gxg-form-text\n disabled={!this.filterModified}\n labelPosition=\"above\"\n label={this._componentLocale.filter.user}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n value=\"hey\"\n centerLabel={false}\n class=\"user\"\n part=\"filter-user\"\n ></gxg-form-text>\n\n {/* style*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.style}\n disabled={!this.styles}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterStyleEl = el as HTMLGxgComboBoxElement)\n }\n class=\"style\"\n part=\"filter-style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* language*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.language}\n disabled={!this.languages}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterLanguageEl = el as HTMLGxgComboBoxElement)\n }\n class=\"language\"\n part=\"filter-language\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.languages ?? [])}\n </gxg-combo-box>\n\n {/* density*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.density}\n disabled={!this.densities}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterDensityEl = el as HTMLGxgComboBoxElement)\n }\n class=\"density\"\n part=\"filter-density\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.densities ?? [])}\n </gxg-combo-box>\n\n {/* layer*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.layer}\n disabled={!this.layers}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterLayerEl = el as HTMLGxgComboBoxElement)\n }\n class=\"layer\"\n part=\"filter-layer\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.layers ?? [])}\n </gxg-combo-box>\n </div>\n </div>\n </div>\n );\n };\n\n private renderImagesData = (): Element => {\n return (\n /* images information*/\n <gx-ide-container\n contentBorderEnd\n noContentPadding\n class={{ \"images-information\": true, \"overflow-auto\": true }}\n part=\"grid-container\"\n >\n {this.secondaryFilter ? (\n <header class=\"images-information__header\" slot=\"header\">\n <gxg-form-text\n icon=\"gemini-tools/search\"\n icon-position=\"start\"\n placeholder=\"Search by any field\"\n onInput={this.filterInputHandler as any}\n ></gxg-form-text>\n </header>\n ) : null}\n\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.chGridEl = el)}\n part=\"ch-grid-images\"\n rowSelectionMode=\"single\"\n class=\"tabular-grid tabular-grid-ww-images\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n class=\"tabular-grid-column\"\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.lastUser}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.importDate}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.filteredImages.map((obj: ImageData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.name, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.module, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.description, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n `${formatDate(obj.modifiedDate)}`,\n this.filterImagesInputValue\n )}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.lastUser, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n `${formatDate(obj.importDate)}`,\n this.filterImagesInputValue\n )}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n </gx-ide-container>\n );\n };\n\n private renderImages = (): Element => {\n return (\n /* tiles */\n <gx-ide-container\n noContentPadding\n class=\"overflow-auto\"\n titleHeightAsInput={\n this.secondaryFilter ? this._componentLocale.imagesDataTitle : null\n }\n part=\"image-data-container\"\n >\n <div class=\"images-container\">\n {this.imagesSelectedItems.map(item => (\n <div class=\"image-item\">\n <div class=\"image-item__container\">\n <div class=\"img\">\n <img src={item.url} alt={item.id} />\n </div>\n </div>\n <span class=\"image-item__name\">{item.name}</span>\n </div>\n ))}\n </div>\n </gx-ide-container>\n );\n };\n\n // 9.LOCAL METHODS -> Other //\n\n private getImages = (): void => {\n let filters: ImageFiltersData = {\n name: this.filterNameEl.value,\n parent: this.filterModuleEl.value ? this.filterModuleEl.value.id : null\n };\n\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n filters = {\n ...filters,\n searchContents: this.filterSearchContentsEl.value,\n category: this.filterCategoryEl.value,\n allDescendants: this.filterAllDescendantsEl.checked,\n modifiedAfter: modified ? modifiedAfter : null,\n modifiedBy: modified ? this.filterUserEl.value : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl.value as Date)\n : null,\n style: this.filterStyleEl.value,\n language: this.filterLanguageEl.value,\n density: this.filterDensityEl.value,\n layer: this.filterLayerEl.value\n };\n\n this.loadCallback(filters).then((items: ImageData[]) => {\n this.images = items;\n this.selectedObjectsIds = [];\n this.deselectAll();\n this.filterImagesInformationHandler();\n });\n };\n\n private newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private openSelectionCallBackHandler = (): void => {\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.selectedObjectsIds);\n };\n\n private resetFilterHandler = () => {\n if (this.filterInitialData) {\n this.filterNameEl.value = this.filterInitialData.name;\n this.filterModuleEl.value = this.filterInitialData.module;\n this.filterSearchContentsEl.value = this.filterInitialData.searchContents;\n this.filterCategoryEl.value = this.filterInitialData.category;\n this.filterAllDescendantsEl.checked =\n this.filterInitialData.allDescendants;\n this.filterModifiedEl.checked = this.filterInitialData.modified;\n this.filterModifiedDateEl.value = this.filterInitialData.dateTime;\n this.filterAfterTypeEl.value = this.filterInitialData.after;\n this.filterUserEl.value = this.filterInitialData.user;\n this.filterStyleEl.value = this.filterInitialData.style;\n this.filterLanguageEl.value = this.filterInitialData.language;\n this.filterDensityEl.value = this.filterInitialData.density;\n this.filterLayerEl.value = this.filterInitialData.layer;\n }\n };\n\n private toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n private selectAll = (): void => {\n (this.chGridEl as any).selectAllRows();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private listenChanges = (): void => {\n /* name */\n this.filterNameEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* module/folder */\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* search contents*/\n this.filterSearchContentsEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* category */\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* (options) -> all descendants */\n this.filterAllDescendantsEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* (options) -> modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getImages();\n });\n /* date/time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* after */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getImages();\n });\n /* user */\n this.filterUserEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* style */\n this.filterStyleEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* language */\n this.filterLanguageEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* density */\n this.filterDensityEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* layer */\n this.filterLayerEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.loadImageItemsCallback(ev.detail.rowsId[0]).then(\n (items: ImageItemData[]) => {\n this.imagesSelectedItems = items;\n }\n );\n });\n this.chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.openSelectionCallBackHandler();\n });\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n this.selectionObjectChangedCallback(this.selectedObjectsIds);\n });\n this.chGridEl.addEventListener(\n \"rowContextMenu\",\n (ev: CustomEvent<ChGridRowContextMenuEvent>): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n );\n };\n\n private filterInputHandler = (e: CustomEvent<EventEmitter>) => {\n this.filterImagesInputValue = e.detail as unknown as string;\n this.filterImagesInformationHandler();\n };\n\n private filterImagesInformationHandler = () => {\n const filterValue = this.filterImagesInputValue.toLocaleLowerCase();\n this.filteredImages = this.images.filter(image => {\n const nameMatch = image.name.toLocaleLowerCase().includes(filterValue);\n const moduleMatch = image.module\n .toLocaleLowerCase()\n .includes(filterValue);\n const descriptionMatch = image.description\n .toLocaleLowerCase()\n .includes(filterValue);\n const modifiedDateMatch = image.modifiedDate\n .toString()\n .includes(filterValue);\n const lastUser = image.lastUser.toLocaleLowerCase().includes(filterValue);\n const importDateMatch =\n image.importDate && image.importDate.toString().includes(filterValue);\n\n return (\n nameMatch ||\n moduleMatch ||\n descriptionMatch ||\n modifiedDateMatch ||\n lastUser ||\n importDateMatch\n );\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"master-wrapper\">\n {this.renderFilter()}\n <div class=\"grid-images-container\">\n {this.renderImagesData()}\n {this.renderImages()}\n </div>\n </div>\n\n {/* select all button */}\n <gxg-button\n id=\"button-select-all\"\n type=\"outlined\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n\n {/* new file button*/}\n <gxg-button\n id=\"button-new-file\"\n type=\"primary-text-icon\"\n icon=\"objects/image\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new-file\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n\n {/* matching objects */}\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n slot=\"footer-start\"\n >\n {`${this.filteredImages.length} ${this._componentLocale.objCount.matching}`}\n </gxg-text>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type SelectionObjectCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewObjectCallback = () => Promise<void>;\nexport type LoadCallback = (filters: ImageFiltersData) => Promise<ImageData[]>;\nexport type LoadImageItemsCallback = (id: string) => Promise<ImageItemData[]>;\n\nexport type ImageFiltersData = {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n style?: string;\n language?: string;\n density?: string;\n layer?: string;\n};\n\nexport type ImageData = {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n module: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n};\n\nexport type ImageItemData = {\n id: string;\n name: string;\n url: string;\n};\n\ntype FilerInitialData = {\n name: string;\n module: EntityData;\n searchContents: string;\n category: string;\n allDescendants: boolean;\n modified: boolean;\n dateTime: DatePickerDate;\n after: string;\n user: string;\n style: string;\n language: string;\n density: string;\n layer: string;\n};\n"],"mappings":"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"}