@genexus/genexus-ide-ui 1.0.69 → 1.0.70

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 (33) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +372 -0
  3. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +1 -0
  6. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +45 -0
  7. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +45 -0
  8. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +45 -0
  9. package/dist/collection/components/ww-files/helpers.js +11 -0
  10. package/dist/collection/components/ww-files/helpers.js.map +1 -0
  11. package/dist/collection/components/ww-files/ww-files.css +147 -0
  12. package/dist/collection/components/ww-files/ww-files.js +822 -0
  13. package/dist/collection/components/ww-files/ww-files.js.map +1 -0
  14. package/dist/collection/testing/locale.e2e.js +1 -0
  15. package/dist/collection/testing/locale.e2e.js.map +1 -1
  16. package/dist/components/gx-ide-ww-files.d.ts +11 -0
  17. package/dist/components/gx-ide-ww-files.js +427 -0
  18. package/dist/components/gx-ide-ww-files.js.map +1 -0
  19. package/dist/esm/genexus-ide-ui.js +1 -1
  20. package/dist/esm/gx-ide-ww-files.entry.js +368 -0
  21. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -0
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  24. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  25. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +45 -0
  26. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +45 -0
  27. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +45 -0
  28. package/dist/genexus-ide-ui/p-839f1b44.entry.js +564 -0
  29. package/dist/genexus-ide-ui/p-839f1b44.entry.js.map +1 -0
  30. package/dist/types/components/ww-files/helpers.d.ts +3 -0
  31. package/dist/types/components/ww-files/ww-files.d.ts +172 -0
  32. package/dist/types/components.d.ts +200 -12
  33. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","startImgSrc","_a","iconName","wwFilesCss","CSS_BUNDLES","FILTER_AFTER_DATE_TIME","FILTER_AFTER_LAST_BUILD","FILTER_AFTER_IMPORT","GxIdeWWFiles","_GxIdeWWFiles_componentLocale","set","this","_GxIdeWWFiles_ACCORDION_FILTER_ID","_GxIdeWWFiles_ACCORDION_MODEL","_GxIdeWWFiles_chGridEl","_GxIdeWWFiles_filterAfterTypeEl","_GxIdeWWFiles_filterAllDescendantsEl","_GxIdeWWFiles_filterCategoryEl","_GxIdeWWFiles_filterModifiedDateEl","_GxIdeWWFiles_filterModuleEl","_GxIdeWWFiles_filterModifiedEl","_GxIdeWWFiles_filterNameEl","_GxIdeWWFiles_filterSearchContentsEl","_GxIdeWWFiles_filterUserEl","_GxIdeWWFiles_renderHeader","h","class","htmlFor","__classPrivateFieldGet","filter","name","ref","el","__classPrivateFieldSet","filterFilesInputValue","onInput","_GxIdeWWFiles_handleFilterInput","part","moduleFolder","labelPosition","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","model","onExpandedChange","_GxIdeWWFiles_expandedHandler","slot","showSearchContents","content","_GxIdeWWFiles_handleSearchContentsInput","category","defaultCategory","disabled","categories","categoriesComboBoxModel","_GxIdeWWFiles_getObjects","allDescendants","checkedValue","modified","_GxIdeWWFiles_filterModifiedCallbackHandle","hide","filterModified","after","afterCurrentValue","filterAfterOptions","_GxIdeWWFiles_filterAfterTypeCallbackHandle","user","dateTime","type","_GxIdeWWFiles_renderObjects","rowSelectionMode","columnName","columnNameHidden","settingable","size","config","tabularGrid","colSize","maxContent","tableHead","common","showType","module","showDescription","description","commonDouble","showModifiedDate","modifiedDate","showLastUser","lastUser","showImportDate","importDate","showLastBuildDate","lastBuildDate","filteredFiles","length","obj","rowid","src","icon","_GxIdeWWFiles_hiChar","call","toLowerCase","_GxIdeWWFiles_formatDate","text","search","parts","split","RegExp","i","key","date","toISOString","slice","filters","searchContents","parent","modifiedAfter","modifiedBy","Date","loadCallback","then","items","objects","_GxIdeWWFiles_filterFiles","selectedObjectsIds","_GxIdeWWFiles_deselectAll","filterValue","_b","file","nameMatch","includes","typeMatch","moduleMatch","descriptionMatch","modifiedDateMatch","toString","lastUserMatch","_c","importDateMatch","_d","contentsMatch","_e","event","detail","_GxIdeWWFiles_deleteSelectionCallbackHandle","deleteSelectionCallback","selectAllRows","e","advancedFilterAccordionExpanded","expanded","filterMore","enabledModifiedControls","newValue","_GxIdeWWFiles_listenChanges","addEventListener","ev","rowsId","selectionChangeCallback","_GxIdeWWFiles_openSelectionCallbackHandle","preventDefault","stopPropagation","contextMenuCallback","selection","selectedRowsId","clientX","clientY","_GxIdeWWFiles_newFileCallbackHandle","newFileCallback","openSelectionCallback","_GxIdeWWFiles_selectAll","categoriesChanged","newCategories","componentWillLoad","Locale","getComponentStrings","accordionCaption","componentDidLoadEvent","emit","componentDidLoad","keyDownHandler","eventInfo","document","activeElement","validate","isValid","reload","undefined","render","Host","objCount","matching","onClick","footer","btnSelectAll","btnNew"],"sources":["src/components/ww-files/helpers.tsx","src/components/ww-files/ww-files.scss?tag=gx-ide-ww-files&encapsulation=shadow","src/components/ww-files/ww-files.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\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.hide {\n display: none !important;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - -\n\n.header {\n grid-template-areas:\n \"name module-folder\"\n \"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// - - - - - - - - - - - -\n// Main\n// - - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--mer-spacing--md);\n overflow: auto;\n padding-block-start: var(--mer-spacing--md);\n}\n\n.main__grid {\n display: grid;\n grid-template-rows: max-content 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n.main__filter {\n display: grid;\n grid-auto-rows: max-content;\n gap: var(--mer-spacing--sm);\n overflow: auto;\n}\n\n// Search Content\n.search-content {\n inline-size: 100%;\n}\n\n// Category and Checkboxes Row\n.filter-row {\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: var(--mer-spacing--md);\n}\n\n.category-column {\n grid-column: 1;\n}\n\n.checkboxes-column {\n grid-column: 2;\n display: flex;\n flex-direction: row;\n gap: var(--mer-spacing--md);\n align-items: center;\n min-block-size: 100%;\n justify-content: flex-start;\n padding-block-start: 1.75rem;\n}\n\n// Modified Inputs\n.modified-inputs {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: var(--mer-spacing--md);\n margin-block-start: var(--mer-spacing--sm);\n\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n\n &.hide {\n display: none;\n }\n\n .input,\n .combo-box {\n width: 100%;\n }\n }\n}\n\n// - - - - - - - - - - - -\n// Grid\n// - - - - - - - - - - - -\n\n.tabular-grid-ww-files {\n overflow: auto;\n inline-size: 100%;\n border-inline-end: var(--section-common-border);\n}\n\n.main__files-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--mer-spacing--xs);\n position: relative;\n z-index: 1;\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-ww-files\",\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\n// - - - - - - - - - - - -\n// Responsive\n// - - - - - - - - - - - -\n\n@container (max-width: 992px) {\n .main__files-container {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n","import {\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\nimport { ChGridRowContextMenuEvent } from \"@genexus/chameleon-controls-library\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { mapOptionsToComboBoxItemModel } from \"./helpers\";\nimport {\n AccordionModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/accordion\",\n \"components/edit\",\n \"components/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst FILTER_AFTER_DATE_TIME = \"afterDateTime\";\nconst FILTER_AFTER_LAST_BUILD = \"afterLastBuild\";\nconst FILTER_AFTER_IMPORT = \"afterImport\";\n\n@Component({\n tag: \"gx-ide-ww-files\",\n styleUrl: \"ww-files.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-files\"]\n})\nexport class GxIdeWWFiles {\n #componentLocale: any;\n #ACCORDION_FILTER_ID = \"advanced-filter\";\n #ACCORDION_MODEL: AccordionModel = [];\n\n @Element() el: HTMLGxIdeWwFilesElement;\n\n #chGridEl!: HTMLChTabularGridElement;\n #filterAfterTypeEl!: HTMLChComboBoxRenderElement;\n #filterAllDescendantsEl!: HTMLChCheckboxElement;\n #filterCategoryEl!: HTMLChComboBoxRenderElement;\n #filterModifiedDateEl!: HTMLChEditElement;\n #filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n #filterModifiedEl!: HTMLChCheckboxElement;\n #filterNameEl!: HTMLChEditElement;\n #filterSearchContentsEl!: HTMLChEditElement;\n #filterUserEl!: HTMLChEditElement;\n\n // representations of GxOption[] as ComboBoxModel\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n\n /**\n * The current value of the \"After\" combo box options.\n */\n @State() afterCurrentValue: string = FILTER_AFTER_DATE_TIME;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterOptions: ComboBoxModel;\n\n /**\n * When true, modified controls will be enabled, otherwise disabled.\n */\n @State() enabledModifiedControls: boolean = false;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * For show or hide advanced filters\n */\n @State() filterMore = false;\n\n /**\n * The files rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * Files filter input value\n */\n @State() filterFilesInputValue = \"\";\n\n /**\n * Files rendered in the table after filtering\n */\n @State() filteredFiles: ObjectData[] = [];\n\n /**\n * The selected files in the table of files\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * Controls the expanded state of the advanced filter accordion\n */\n @State() advancedFilterAccordionExpanded: boolean = false;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n @Watch(\"categories\")\n categoriesChanged(newCategories: GxOption[]) {\n this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);\n }\n\n /**\n * The default value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The modules/folders render in the module/folder selector\n */\n @Prop() readonly filterModules!: GxOption[];\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n /**\n * This is a function provided by the developer for show the context menu of the selected files.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * This is a function provided by the developer for delete the selected files.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * This is a function provided by the developer that return a list of files to populate the table of files.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n *\n */\n @Prop() readonly newFileCallback!: NewFileCallback;\n\n /**\n * This is a function provided by the developer to expand the data of files 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 files that is double-clicked or entered.\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\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 * Controls whether to show the Search contents field in the advanced filter section\n */\n @Prop() showSearchContents = false;\n\n /**\n * Controls whether to show the description column in the grid\n */\n @Prop() showDescription = false;\n\n /**\n * Controls whether to show the modified date column in the grid\n */\n @Prop() showModifiedDate = false;\n\n /**\n * Controls whether to show the last user column in the grid\n */\n @Prop() showLastUser = false;\n\n /**\n * Controls whether to show the import date column in the grid\n */\n @Prop() showImportDate = false;\n\n /**\n * Controls whether to show the type column in the grid\n */\n @Prop() showType = false;\n\n /**\n * Controls whether to show the last build date column in the grid\n */\n @Prop() showLastBuildDate = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize combo-box models\n this.categoriesChanged(this.categories);\n\n // initialize \"After\" combo-box options\n this.filterAfterOptions = [\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_DATE_TIME],\n value: FILTER_AFTER_DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_LAST_BUILD],\n value: FILTER_AFTER_LAST_BUILD\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_IMPORT],\n value: FILTER_AFTER_IMPORT\n }\n ];\n this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n\n // initialize accordion model with proper configuration\n this.#ACCORDION_MODEL = [\n {\n id: this.#ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: this.advancedFilterAccordionExpanded\n }\n ];\n\n // initialize filtered files\n this.filteredFiles = this.objects;\n\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.#listenChanges();\n this.#getObjects();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n eventInfo.preventDefault();\n this.#openSelectionCallbackHandle();\n break;\n case \"Delete\":\n eventInfo.preventDefault();\n this.#deleteSelectionCallbackHandle();\n break;\n case \"Escape\":\n eventInfo.preventDefault();\n this.#deselectAll();\n break;\n }\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n /**\n * This method reload the view, refreshing the filters and the table of files.\n */\n @Method()\n async reload(): Promise<void> {\n this.filterFilesInputValue = \"\";\n this.#filterUserEl.value = null;\n this.#filterAfterTypeEl.value = null;\n this.afterCurrentValue = null;\n this.#filterModifiedEl.value = undefined;\n this.#filterAllDescendantsEl.value = undefined;\n this.#filterModuleEl.value = this.defaultModule;\n this.#filterCategoryEl.value = null;\n this.#filterSearchContentsEl.value = null;\n this.#filterNameEl.value = null;\n this.filterMore = false;\n this.#getObjects();\n }\n\n #renderHeader = (): Element[] => {\n return [\n <div class=\"field field-block name\">\n <label class=\"label\" htmlFor=\"filter-files\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"filter-files\"\n class=\"input\"\n ref={(el: HTMLChEditElement) => (this.#filterNameEl = el)}\n value={this.filterFilesInputValue}\n onInput={this.#handleFilterInput}\n part=\"filter-files\"\n ></ch-edit>\n </div>,\n\n <div class=\"field field-block module-folder\">\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n\n <gx-ide-entity-selector\n part=\"filter-module-folder\"\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n class=\"accordion-outlined advanced-filter-accordion\"\n model={this.#ACCORDION_MODEL}\n onExpandedChange={this.#expandedHandler}\n >\n <div slot={this.#ACCORDION_FILTER_ID} class=\"spacing-body\">\n <div class=\"main__filter\">\n {/* Primera fila - Search Content */}\n {this.showSearchContents && (\n <div class=\"search-content\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"filter-content\">\n {this.#componentLocale.filter.content}\n </label>\n <ch-edit\n id=\"filter-content\"\n class=\"input\"\n ref={(el: HTMLChEditElement) =>\n (this.#filterSearchContentsEl = el as HTMLChEditElement)\n }\n onInput={this.#handleSearchContentsInput}\n part=\"filter-content\"\n ></ch-edit>\n </div>\n </div>\n )}\n\n {/* Segunda fila - Category y Checkboxes */}\n <div class=\"filter-row\">\n <div class=\"category-column\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"filter-category\"\n class=\"combo-box\"\n value={this.defaultCategory}\n disabled={!this.categories}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#filterCategoryEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.categoriesComboBoxModel}\n part=\"filter-category\"\n onInput={this.#getObjects}\n ></ch-combo-box-render>\n </div>\n </div>\n\n <div class=\"checkboxes-column\">\n <ch-checkbox\n class=\"checkbox\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue=\"filterAllDescendants\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#filterAllDescendantsEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#getObjects}\n part=\"filter-all-descendants\"\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox align-center\"\n caption={this.#componentLocale.filter.modified}\n checkedValue=\"filterModified\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#filterModifiedEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#filterModifiedCallbackHandle}\n part=\"filter-modified\"\n ></ch-checkbox>\n </div>\n\n <div class=\"empty-column\"></div>\n </div>\n\n {/* Tercera fila - Modified inputs */}\n <div\n class={{ \"modified-inputs\": true, \"hide\": !this.filterModified }}\n >\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"filter-after-type\">\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n id=\"filter-after-type\"\n class=\"combo-box\"\n value={this.afterCurrentValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#filterAfterTypeEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.filterAfterOptions}\n onInput={this.#filterAfterTypeCallbackHandle}\n part=\"filter-after-type\"\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"filter-user\">\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n id=\"filter-user\"\n class=\"input\"\n ref={(el: HTMLChEditElement) =>\n (this.#filterUserEl = el as HTMLChEditElement)\n }\n onInput={this.#getObjects}\n part=\"filter-user\"\n ></ch-edit>\n </div>\n\n <div\n class={{\n \"field field-block\": true,\n \"hide\": this.afterCurrentValue !== FILTER_AFTER_DATE_TIME\n }}\n >\n <label class=\"label\" htmlFor=\"filter-modified-date\">\n {this.#componentLocale.filter.dateTime}\n </label>\n <ch-edit\n id=\"filter-modified-date\"\n type=\"date\"\n class=\"input\"\n ref={(el: HTMLChEditElement) =>\n (this.#filterModifiedDateEl = el as HTMLChEditElement)\n }\n onInput={this.#getObjects}\n part=\"filter-modified-date\"\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderObjects = (): Element => {\n return (\n <div class=\"field-group main__grid\">\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n class=\"tabular-grid tabular-grid-ww-files\"\n rowSelectionMode=\"multiple\"\n part=\"ch-grid-files\"\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 size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.showType && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.type}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.showDescription && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.showModifiedDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.showLastUser && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastUser}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.showImportDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.importDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.showLastBuildDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastBuildDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n </ch-tabular-grid-columnset>\n\n {this.filteredFiles.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredFiles.map((obj: ObjectData) => (\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 {this.#hiChar(\n obj.name.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n {this.showType && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.type.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.module.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n {this.showDescription && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.description.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showModifiedDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.modifiedDate\n ? this.#formatDate(obj.modifiedDate)\n : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showLastUser && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.lastUser?.toLowerCase() || \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showImportDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.importDate ? this.#formatDate(obj.importDate) : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showLastBuildDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.lastBuildDate\n ? this.#formatDate(obj.lastBuildDate)\n : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : null}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #hiChar = (text: string, search: string): Element[] | string => {\n if (!search) return text;\n const parts = text.split(new RegExp(`(${search})`, \"gi\"));\n return parts.map((part, i) =>\n part.toLowerCase() === search.toLowerCase() ? (\n <span key={i} class=\"highlight\">\n {part}\n </span>\n ) : (\n part\n )\n );\n };\n\n #formatDate = (date: Date): string => {\n return date.toISOString().slice(0, 10);\n };\n\n #getObjects = () => {\n const filters: ObjectFiltersData = {\n name: this.#filterNameEl.value,\n searchContents: this.showSearchContents\n ? this.#filterSearchContentsEl?.value\n : null,\n category: this.#filterCategoryEl.value,\n parent: this.#filterModuleEl.value ? this.#filterModuleEl.value.id : null,\n allDescendants: !!this.#filterAllDescendantsEl.value,\n modifiedAfter: this.filterModified ? this.afterCurrentValue : null,\n modifiedBy: this.filterModified ? this.#filterUserEl.value : null,\n modifiedDate:\n this.filterModified && this.afterCurrentValue === FILTER_AFTER_DATE_TIME\n ? new Date(this.#filterModifiedDateEl.value)\n : null\n };\n\n this.loadCallback(filters).then((items: ObjectData[]) => {\n this.objects = items;\n this.#filterFiles();\n this.selectedObjectsIds = [];\n this.#deselectAll();\n });\n };\n\n #filterFiles = () => {\n const filterValue = this.filterFilesInputValue.toLowerCase();\n const searchContents = this.showSearchContents\n ? this.#filterSearchContentsEl?.value?.toLowerCase() || \"\"\n : \"\";\n\n this.filteredFiles = this.objects.filter(file => {\n const nameMatch = file.name.toLowerCase().includes(filterValue);\n const typeMatch = file.type.toLowerCase().includes(filterValue);\n const moduleMatch = file.module.toLowerCase().includes(filterValue);\n const descriptionMatch = file.description\n ?.toLowerCase()\n .includes(filterValue);\n const modifiedDateMatch = file.modifiedDate\n ?.toString()\n .includes(filterValue);\n const lastUserMatch = file.lastUser?.toLowerCase().includes(filterValue);\n const importDateMatch = file.importDate?.toString().includes(filterValue);\n const contentsMatch = searchContents\n ? file.description?.toLowerCase().includes(searchContents)\n : true;\n\n return (\n (nameMatch ||\n typeMatch ||\n moduleMatch ||\n descriptionMatch ||\n modifiedDateMatch ||\n lastUserMatch ||\n importDateMatch) &&\n contentsMatch\n );\n });\n };\n\n #handleFilterInput = (event: CustomEvent<any> | InputEvent) => {\n this.filterFilesInputValue = event.detail.toLowerCase();\n this.#filterFiles();\n };\n\n #handleSearchContentsInput = () => {\n this.#filterFiles();\n };\n\n #deleteSelectionCallbackHandle = (): void => {\n this.deleteSelectionCallback(this.selectedObjectsIds);\n };\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #expandedHandler = (e: CustomEvent<{ id: string; expanded: boolean }>) => {\n if (e.detail.id === this.#ACCORDION_FILTER_ID) {\n this.advancedFilterAccordionExpanded = e.detail.expanded;\n this.filterMore = e.detail.expanded;\n }\n };\n #filterModifiedCallbackHandle = () => {\n this.filterModified = !!this.#filterModifiedEl.value;\n this.enabledModifiedControls = this.filterModified;\n if (!this.filterModified) {\n // Reset related fields when unchecking Modified\n this.#filterUserEl.value = null;\n this.#filterAfterTypeEl.value = null;\n this.afterCurrentValue = null;\n this.#filterModifiedDateEl.value = null;\n } else {\n // Restore default values when checking Modified\n this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n this.#filterAfterTypeEl.value = FILTER_AFTER_DATE_TIME;\n }\n this.#getObjects();\n };\n\n #filterAfterTypeCallbackHandle = () => {\n const newValue = this.#filterAfterTypeEl.value;\n // Validar que el valor sea uno de los permitidos\n if (\n [\n FILTER_AFTER_DATE_TIME,\n FILTER_AFTER_LAST_BUILD,\n FILTER_AFTER_IMPORT\n ].includes(newValue)\n ) {\n this.afterCurrentValue = newValue;\n } else {\n // Si no es un valor válido, establecer el valor por defecto\n this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n this.#filterAfterTypeEl.value = FILTER_AFTER_DATE_TIME;\n }\n this.#getObjects();\n };\n\n #listenChanges = (): void => {\n /* module/folder */\n this.#filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.#getObjects();\n });\n\n // for grid selection\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.selectedObjectsIds);\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallbackHandle();\n });\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 #newFileCallbackHandle = (): void => {\n this.newFileCallback();\n };\n\n #openSelectionCallbackHandle = (): void => {\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start field-group\">\n {this.#renderHeader()}\n </header>\n\n <div class=\"main\">{this.#renderObjects()}</div>\n\n <footer class=\"control-footer-with-border control-footer-space-between spacing-body\">\n <p\n // matching objects\n class=\"text-body\"\n part=\"objects-matching\"\n >\n {`${this.filteredFiles.length} ${\n this.#componentLocale.objCount.matching\n }`}\n </p>\n\n <div class=\"buttons-spacer\">\n <button\n // select all button\n id=\"button-select-all\"\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button--select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n\n <button\n // new file button\n id=\"button-new-file\"\n class=\"button-primary button-icon-and-text\"\n onClick={this.#newFileCallbackHandle}\n part=\"button button--new-file\"\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n// export type ContextMenuCallback = (ids: string[]) => Promise<void>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewFileCallback = () => Promise<void>;\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport interface ObjectFiltersData {\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}\nexport interface ObjectData {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n parent: string;\n module: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n lastBuildDate: Date;\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ComboBoxModel } from "@genexus/chameleon-controls-library";
2
+ import { GxOption } from "../..";
3
+ export declare const mapOptionsToComboBoxItemModel: (options: GxOption[]) => ComboBoxModel;
@@ -0,0 +1,172 @@
1
+ import { EventEmitter } from "../../stencil-public-runtime";
2
+ import { GxOption } from "../../common/types";
3
+ import { EntityData, ContextMenuInfo } from "../../common/types";
4
+ import { ComboBoxModel } from "@genexus/chameleon-controls-library";
5
+ export declare class GxIdeWWFiles {
6
+ #private;
7
+ el: HTMLGxIdeWwFilesElement;
8
+ categoriesComboBoxModel: ComboBoxModel;
9
+ /**
10
+ * The current value of the "After" combo box options.
11
+ */
12
+ afterCurrentValue: string;
13
+ /**
14
+ * The options for the "After" combo-box
15
+ */
16
+ filterAfterOptions: ComboBoxModel;
17
+ /**
18
+ * When true, modified controls will be enabled, otherwise disabled.
19
+ */
20
+ enabledModifiedControls: boolean;
21
+ /**
22
+ * For show or hide the filters relative to modifiers
23
+ */
24
+ filterModified: boolean;
25
+ /**
26
+ * For show or hide advanced filters
27
+ */
28
+ filterMore: boolean;
29
+ /**
30
+ * The files rendered in the table
31
+ */
32
+ objects: ObjectData[];
33
+ /**
34
+ * Files filter input value
35
+ */
36
+ filterFilesInputValue: string;
37
+ /**
38
+ * Files rendered in the table after filtering
39
+ */
40
+ filteredFiles: ObjectData[];
41
+ /**
42
+ * The selected files in the table of files
43
+ */
44
+ selectedObjectsIds: string[];
45
+ /**
46
+ * Controls the expanded state of the advanced filter accordion
47
+ */
48
+ advancedFilterAccordionExpanded: boolean;
49
+ /**
50
+ * The categories render in the filter category selector
51
+ */
52
+ readonly categories: GxOption[];
53
+ categoriesChanged(newCategories: GxOption[]): void;
54
+ /**
55
+ * The default value for the category filter
56
+ */
57
+ readonly defaultCategory: string;
58
+ /**
59
+ * The default value for the module/folder filter
60
+ */
61
+ readonly defaultModule: EntityData;
62
+ /**
63
+ * The modules/folders render in the module/folder selector
64
+ */
65
+ readonly filterModules: GxOption[];
66
+ /**
67
+ * The types render in the filter type selector
68
+ */
69
+ readonly types: GxOption[];
70
+ /**
71
+ * This is a function provided by the developer for show the context menu of the selected files.
72
+ */
73
+ readonly contextMenuCallback: ContextMenuCallback;
74
+ /**
75
+ * This is a function provided by the developer for delete the selected files.
76
+ */
77
+ readonly deleteSelectionCallback: DeleteSelectionCallback;
78
+ /**
79
+ * This is a function provided by the developer that return a list of files to populate the table of files.
80
+ */
81
+ readonly loadCallback: LoadCallback;
82
+ /**
83
+ *
84
+ */
85
+ readonly newFileCallback: NewFileCallback;
86
+ /**
87
+ * This is a function provided by the developer to expand the data of files that is double-clicked or entered.
88
+ */
89
+ readonly openSelectionCallback: OpenSelectionCallback;
90
+ /**
91
+ * 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.
92
+ */
93
+ readonly selectModuleCallback: SelectModuleCallback;
94
+ /**
95
+ * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.
96
+ */
97
+ readonly selectionChangeCallback: SelectionChangeCallback;
98
+ /**
99
+ * This event is emitted once just after the component is fully loaded and the first render() occurs.
100
+ */
101
+ componentDidLoadEvent: EventEmitter<boolean>;
102
+ /**
103
+ * Controls whether to show the Search contents field in the advanced filter section
104
+ */
105
+ showSearchContents: boolean;
106
+ /**
107
+ * Controls whether to show the description column in the grid
108
+ */
109
+ showDescription: boolean;
110
+ /**
111
+ * Controls whether to show the modified date column in the grid
112
+ */
113
+ showModifiedDate: boolean;
114
+ /**
115
+ * Controls whether to show the last user column in the grid
116
+ */
117
+ showLastUser: boolean;
118
+ /**
119
+ * Controls whether to show the import date column in the grid
120
+ */
121
+ showImportDate: boolean;
122
+ /**
123
+ * Controls whether to show the type column in the grid
124
+ */
125
+ showType: boolean;
126
+ /**
127
+ * Controls whether to show the last build date column in the grid
128
+ */
129
+ showLastBuildDate: boolean;
130
+ componentWillLoad(): Promise<void>;
131
+ componentDidLoad(): void;
132
+ keyDownHandler(eventInfo: KeyboardEvent): void;
133
+ /**
134
+ * Validate necessary data input
135
+ */
136
+ validate(): Promise<boolean>;
137
+ /**
138
+ * This method reload the view, refreshing the filters and the table of files.
139
+ */
140
+ reload(): Promise<void>;
141
+ render(): void;
142
+ }
143
+ export type SelectionChangeCallback = (ids: string[]) => Promise<void>;
144
+ export type OpenSelectionCallback = (ids: string[]) => Promise<void>;
145
+ export type DeleteSelectionCallback = (ids: string[]) => Promise<void>;
146
+ export type SelectModuleCallback = () => Promise<EntityData | undefined>;
147
+ export type ContextMenuCallback = (contextMenuInfo: ContextMenuInfo) => Promise<void>;
148
+ export type NewFileCallback = () => Promise<void>;
149
+ export type LoadCallback = (filters: ObjectFiltersData) => Promise<ObjectData[]>;
150
+ export interface ObjectFiltersData {
151
+ name?: string;
152
+ searchContents?: string;
153
+ category?: string;
154
+ parent?: string;
155
+ allDescendants?: boolean;
156
+ modifiedAfter?: string;
157
+ modifiedBy?: string;
158
+ modifiedDate?: Date;
159
+ }
160
+ export interface ObjectData {
161
+ id: string;
162
+ icon: string;
163
+ name: string;
164
+ type: string;
165
+ description: string;
166
+ parent: string;
167
+ module: string;
168
+ modifiedDate?: Date;
169
+ lastUser?: string;
170
+ importDate?: Date;
171
+ lastBuildDate: Date;
172
+ }
@@ -63,7 +63,8 @@ import { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./co
63
63
  import { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
64
64
  import { WFConfigData } from "./components/wf-settings/wf-settings";
65
65
  import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
66
- import { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback6, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback2, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
66
+ import { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback6, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
67
+ import { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback7, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
67
68
  export { DetailsCallback, PrivacyPolicyCallback, TermsAndConditionsCallback } from "./components/_branding/about/about";
68
69
  export { AiStatus, Message, UserMessageCallback } from "./components/ai-assistant/ai-assistant";
69
70
  export { MessageType } from "./components/ai-assistant/ai-assistant";
@@ -122,7 +123,8 @@ export { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./co
122
123
  export { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
123
124
  export { WFConfigData } from "./components/wf-settings/wf-settings";
124
125
  export { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, ObjectActionCallback, OpenSelectionCallback as OpenSelectionCallback1, SelectionChangeCallback } from "./components/ww-attributes/ww-attributes";
125
- export { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback6, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback2, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
126
+ export { ContextMenuCallback as ContextMenuCallback1, DeleteSelectionCallback as DeleteSelectionCallback1, LoadCallback as LoadCallback6, NewFileCallback, OpenSelectionCallback as OpenSelectionCallback2, SelectionChangeCallback as SelectionChangeCallback1, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-files/ww-files";
127
+ export { ContextMenuCallback as ContextMenuCallback2, DeleteSelectionCallback as DeleteSelectionCallback2, LoadCallback as LoadCallback7, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback3, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback4 } from "./components/ww-images/ww-images";
126
128
  export namespace Components {
127
129
  interface GxIdeAbout {
128
130
  /**
@@ -2071,6 +2073,89 @@ export namespace Components {
2071
2073
  */
2072
2074
  "validate": () => Promise<boolean>;
2073
2075
  }
2076
+ interface GxIdeWwFiles {
2077
+ /**
2078
+ * The categories render in the filter category selector
2079
+ */
2080
+ "categories": GxOption[];
2081
+ /**
2082
+ * This is a function provided by the developer for show the context menu of the selected files.
2083
+ */
2084
+ "contextMenuCallback": ContextMenuCallback1;
2085
+ /**
2086
+ * The default value for the category filter
2087
+ */
2088
+ "defaultCategory": string;
2089
+ /**
2090
+ * The default value for the module/folder filter
2091
+ */
2092
+ "defaultModule": EntityData;
2093
+ /**
2094
+ * This is a function provided by the developer for delete the selected files.
2095
+ */
2096
+ "deleteSelectionCallback": DeleteSelectionCallback1;
2097
+ /**
2098
+ * The modules/folders render in the module/folder selector
2099
+ */
2100
+ "filterModules": GxOption[];
2101
+ /**
2102
+ * This is a function provided by the developer that return a list of files to populate the table of files.
2103
+ */
2104
+ "loadCallback": LoadCallback6;
2105
+ "newFileCallback": NewFileCallback;
2106
+ /**
2107
+ * This is a function provided by the developer to expand the data of files that is double-clicked or entered.
2108
+ */
2109
+ "openSelectionCallback": OpenSelectionCallback2;
2110
+ /**
2111
+ * This method reload the view, refreshing the filters and the table of files.
2112
+ */
2113
+ "reload": () => Promise<void>;
2114
+ /**
2115
+ * 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.
2116
+ */
2117
+ "selectModuleCallback": SelectModuleCallback3;
2118
+ /**
2119
+ * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.
2120
+ */
2121
+ "selectionChangeCallback": SelectionChangeCallback1;
2122
+ /**
2123
+ * Controls whether to show the description column in the grid
2124
+ */
2125
+ "showDescription": boolean;
2126
+ /**
2127
+ * Controls whether to show the import date column in the grid
2128
+ */
2129
+ "showImportDate": boolean;
2130
+ /**
2131
+ * Controls whether to show the last build date column in the grid
2132
+ */
2133
+ "showLastBuildDate": boolean;
2134
+ /**
2135
+ * Controls whether to show the last user column in the grid
2136
+ */
2137
+ "showLastUser": boolean;
2138
+ /**
2139
+ * Controls whether to show the modified date column in the grid
2140
+ */
2141
+ "showModifiedDate": boolean;
2142
+ /**
2143
+ * Controls whether to show the Search contents field in the advanced filter section
2144
+ */
2145
+ "showSearchContents": boolean;
2146
+ /**
2147
+ * Controls whether to show the type column in the grid
2148
+ */
2149
+ "showType": boolean;
2150
+ /**
2151
+ * The types render in the filter type selector
2152
+ */
2153
+ "types": GxOption[];
2154
+ /**
2155
+ * Validate necessary data input
2156
+ */
2157
+ "validate": () => Promise<boolean>;
2158
+ }
2074
2159
  interface GxIdeWwImages {
2075
2160
  /**
2076
2161
  * The categories render in the filter category selector
@@ -2079,7 +2164,7 @@ export namespace Components {
2079
2164
  /**
2080
2165
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
2081
2166
  */
2082
- "contextMenuCallback": ContextMenuCallback1;
2167
+ "contextMenuCallback": ContextMenuCallback2;
2083
2168
  /**
2084
2169
  * The default value for the 'categories' filter
2085
2170
  */
@@ -2095,7 +2180,7 @@ export namespace Components {
2095
2180
  /**
2096
2181
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
2097
2182
  */
2098
- "deleteSelectionCallback": DeleteSelectionCallback1;
2183
+ "deleteSelectionCallback": DeleteSelectionCallback2;
2099
2184
  /**
2100
2185
  * The densities render in the filter density selector
2101
2186
  */
@@ -2119,7 +2204,7 @@ export namespace Components {
2119
2204
  /**
2120
2205
  * This is a function provided by the developer that return a list of images to populate the table of images.
2121
2206
  */
2122
- "loadCallback": LoadCallback6;
2207
+ "loadCallback": LoadCallback7;
2123
2208
  /**
2124
2209
  * This is a function provided by the developer that return a list of items of the image selected.
2125
2210
  */
@@ -2131,7 +2216,7 @@ export namespace Components {
2131
2216
  /**
2132
2217
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
2133
2218
  */
2134
- "openSelectionCallback": OpenSelectionCallback2;
2219
+ "openSelectionCallback": OpenSelectionCallback3;
2135
2220
  /**
2136
2221
  * This method reload the view, refreshing the filters and the table of images.
2137
2222
  */
@@ -2143,7 +2228,7 @@ export namespace Components {
2143
2228
  /**
2144
2229
  * 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.
2145
2230
  */
2146
- "selectModuleCallback": SelectModuleCallback3;
2231
+ "selectModuleCallback": SelectModuleCallback4;
2147
2232
  /**
2148
2233
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
2149
2234
  */
@@ -2278,6 +2363,10 @@ export interface GxIdeWfSettingsCustomEvent<T> extends CustomEvent<T> {
2278
2363
  detail: T;
2279
2364
  target: HTMLGxIdeWfSettingsElement;
2280
2365
  }
2366
+ export interface GxIdeWwFilesCustomEvent<T> extends CustomEvent<T> {
2367
+ detail: T;
2368
+ target: HTMLGxIdeWwFilesElement;
2369
+ }
2281
2370
  export interface GxIdeWwImagesCustomEvent<T> extends CustomEvent<T> {
2282
2371
  detail: T;
2283
2372
  target: HTMLGxIdeWwImagesElement;
@@ -2973,6 +3062,23 @@ declare global {
2973
3062
  prototype: HTMLGxIdeWwAttributesElement;
2974
3063
  new (): HTMLGxIdeWwAttributesElement;
2975
3064
  };
3065
+ interface HTMLGxIdeWwFilesElementEventMap {
3066
+ "componentDidLoadEvent": boolean;
3067
+ }
3068
+ interface HTMLGxIdeWwFilesElement extends Components.GxIdeWwFiles, HTMLStencilElement {
3069
+ addEventListener<K extends keyof HTMLGxIdeWwFilesElementEventMap>(type: K, listener: (this: HTMLGxIdeWwFilesElement, ev: GxIdeWwFilesCustomEvent<HTMLGxIdeWwFilesElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3070
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3071
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3072
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3073
+ removeEventListener<K extends keyof HTMLGxIdeWwFilesElementEventMap>(type: K, listener: (this: HTMLGxIdeWwFilesElement, ev: GxIdeWwFilesCustomEvent<HTMLGxIdeWwFilesElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3074
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3075
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3076
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3077
+ }
3078
+ var HTMLGxIdeWwFilesElement: {
3079
+ prototype: HTMLGxIdeWwFilesElement;
3080
+ new (): HTMLGxIdeWwFilesElement;
3081
+ };
2976
3082
  interface HTMLGxIdeWwImagesElementEventMap {
2977
3083
  "componentDidLoadEvent": boolean;
2978
3084
  "componentDidRenderFirstTime": string;
@@ -3054,6 +3160,7 @@ declare global {
3054
3160
  "gx-ide-welcome-page": HTMLGxIdeWelcomePageElement;
3055
3161
  "gx-ide-wf-settings": HTMLGxIdeWfSettingsElement;
3056
3162
  "gx-ide-ww-attributes": HTMLGxIdeWwAttributesElement;
3163
+ "gx-ide-ww-files": HTMLGxIdeWwFilesElement;
3057
3164
  "gx-ide-ww-images": HTMLGxIdeWwImagesElement;
3058
3165
  }
3059
3166
  }
@@ -5069,6 +5176,85 @@ declare namespace LocalJSX {
5069
5176
  */
5070
5177
  "types": GxOption[];
5071
5178
  }
5179
+ interface GxIdeWwFiles {
5180
+ /**
5181
+ * The categories render in the filter category selector
5182
+ */
5183
+ "categories": GxOption[];
5184
+ /**
5185
+ * This is a function provided by the developer for show the context menu of the selected files.
5186
+ */
5187
+ "contextMenuCallback": ContextMenuCallback1;
5188
+ /**
5189
+ * The default value for the category filter
5190
+ */
5191
+ "defaultCategory"?: string;
5192
+ /**
5193
+ * The default value for the module/folder filter
5194
+ */
5195
+ "defaultModule"?: EntityData;
5196
+ /**
5197
+ * This is a function provided by the developer for delete the selected files.
5198
+ */
5199
+ "deleteSelectionCallback": DeleteSelectionCallback1;
5200
+ /**
5201
+ * The modules/folders render in the module/folder selector
5202
+ */
5203
+ "filterModules": GxOption[];
5204
+ /**
5205
+ * This is a function provided by the developer that return a list of files to populate the table of files.
5206
+ */
5207
+ "loadCallback": LoadCallback6;
5208
+ "newFileCallback": NewFileCallback;
5209
+ /**
5210
+ * This event is emitted once just after the component is fully loaded and the first render() occurs.
5211
+ */
5212
+ "onComponentDidLoadEvent"?: (event: GxIdeWwFilesCustomEvent<boolean>) => void;
5213
+ /**
5214
+ * This is a function provided by the developer to expand the data of files that is double-clicked or entered.
5215
+ */
5216
+ "openSelectionCallback": OpenSelectionCallback2;
5217
+ /**
5218
+ * 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.
5219
+ */
5220
+ "selectModuleCallback": SelectModuleCallback3;
5221
+ /**
5222
+ * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.
5223
+ */
5224
+ "selectionChangeCallback": SelectionChangeCallback1;
5225
+ /**
5226
+ * Controls whether to show the description column in the grid
5227
+ */
5228
+ "showDescription"?: boolean;
5229
+ /**
5230
+ * Controls whether to show the import date column in the grid
5231
+ */
5232
+ "showImportDate"?: boolean;
5233
+ /**
5234
+ * Controls whether to show the last build date column in the grid
5235
+ */
5236
+ "showLastBuildDate"?: boolean;
5237
+ /**
5238
+ * Controls whether to show the last user column in the grid
5239
+ */
5240
+ "showLastUser"?: boolean;
5241
+ /**
5242
+ * Controls whether to show the modified date column in the grid
5243
+ */
5244
+ "showModifiedDate"?: boolean;
5245
+ /**
5246
+ * Controls whether to show the Search contents field in the advanced filter section
5247
+ */
5248
+ "showSearchContents"?: boolean;
5249
+ /**
5250
+ * Controls whether to show the type column in the grid
5251
+ */
5252
+ "showType"?: boolean;
5253
+ /**
5254
+ * The types render in the filter type selector
5255
+ */
5256
+ "types": GxOption[];
5257
+ }
5072
5258
  interface GxIdeWwImages {
5073
5259
  /**
5074
5260
  * The categories render in the filter category selector
@@ -5077,7 +5263,7 @@ declare namespace LocalJSX {
5077
5263
  /**
5078
5264
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
5079
5265
  */
5080
- "contextMenuCallback": ContextMenuCallback1;
5266
+ "contextMenuCallback": ContextMenuCallback2;
5081
5267
  /**
5082
5268
  * The default value for the 'categories' filter
5083
5269
  */
@@ -5093,7 +5279,7 @@ declare namespace LocalJSX {
5093
5279
  /**
5094
5280
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
5095
5281
  */
5096
- "deleteSelectionCallback": DeleteSelectionCallback1;
5282
+ "deleteSelectionCallback": DeleteSelectionCallback2;
5097
5283
  /**
5098
5284
  * The densities render in the filter density selector
5099
5285
  */
@@ -5117,7 +5303,7 @@ declare namespace LocalJSX {
5117
5303
  /**
5118
5304
  * This is a function provided by the developer that return a list of images to populate the table of images.
5119
5305
  */
5120
- "loadCallback": LoadCallback6;
5306
+ "loadCallback": LoadCallback7;
5121
5307
  /**
5122
5308
  * This is a function provided by the developer that return a list of items of the image selected.
5123
5309
  */
@@ -5137,7 +5323,7 @@ declare namespace LocalJSX {
5137
5323
  /**
5138
5324
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
5139
5325
  */
5140
- "openSelectionCallback": OpenSelectionCallback2;
5326
+ "openSelectionCallback": OpenSelectionCallback3;
5141
5327
  /**
5142
5328
  * Displays a secondary filter, used to filter over the filtered images
5143
5329
  */
@@ -5145,7 +5331,7 @@ declare namespace LocalJSX {
5145
5331
  /**
5146
5332
  * 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.
5147
5333
  */
5148
- "selectModuleCallback": SelectModuleCallback3;
5334
+ "selectModuleCallback": SelectModuleCallback4;
5149
5335
  /**
5150
5336
  * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.
5151
5337
  */
@@ -5226,6 +5412,7 @@ declare namespace LocalJSX {
5226
5412
  "gx-ide-welcome-page": GxIdeWelcomePage;
5227
5413
  "gx-ide-wf-settings": GxIdeWfSettings;
5228
5414
  "gx-ide-ww-attributes": GxIdeWwAttributes;
5415
+ "gx-ide-ww-files": GxIdeWwFiles;
5229
5416
  "gx-ide-ww-images": GxIdeWwImages;
5230
5417
  }
5231
5418
  }
@@ -5295,6 +5482,7 @@ declare module "@stencil/core" {
5295
5482
  "gx-ide-welcome-page": LocalJSX.GxIdeWelcomePage & JSXBase.HTMLAttributes<HTMLGxIdeWelcomePageElement>;
5296
5483
  "gx-ide-wf-settings": LocalJSX.GxIdeWfSettings & JSXBase.HTMLAttributes<HTMLGxIdeWfSettingsElement>;
5297
5484
  "gx-ide-ww-attributes": LocalJSX.GxIdeWwAttributes & JSXBase.HTMLAttributes<HTMLGxIdeWwAttributesElement>;
5485
+ "gx-ide-ww-files": LocalJSX.GxIdeWwFiles & JSXBase.HTMLAttributes<HTMLGxIdeWwFilesElement>;
5298
5486
  "gx-ide-ww-images": LocalJSX.GxIdeWwImages & JSXBase.HTMLAttributes<HTMLGxIdeWwImagesElement>;
5299
5487
  }
5300
5488
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.0.69",
4
+ "version": "1.0.70",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",