@genexus/genexus-ide-ui 0.0.120 → 0.0.121

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.
@@ -50,20 +50,22 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
50
50
  this.cancelCallbackHandler();
51
51
  };
52
52
  this.getObjects = () => {
53
- var _a, _b, _c, _d, _e, _f, _g, _h;
53
+ var _a, _b, _c, _d, _e, _f;
54
54
  /* 'modified' checkbox, should only be considered if 'date' || 'user' */
55
55
  const modified = this.filterModifiedEl.checked;
56
56
  const modifiedAfter = this.filterAfterTypeEl.value;
57
57
  const user = (_b = (_a = this.filterUserEl) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim();
58
58
  const filters = {
59
59
  pattern: (_c = this.filterPatternEl) === null || _c === void 0 ? void 0 : _c.value,
60
- type: (_d = this.filterTypeEl) === null || _d === void 0 ? void 0 : _d.value,
61
- category: (_e = this.filterCategoryEl) === null || _e === void 0 ? void 0 : _e.value,
62
- module: (_g = (_f = this.filterModuleEl) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.id,
60
+ // type: this.filterTypeEl?.value,
61
+ type: this.selectedAttribute,
62
+ // category: this.filterCategoryEl?.value,
63
+ category: this.selectedCategory,
64
+ module: (_e = (_d = this.filterModuleEl) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.id,
63
65
  modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,
64
66
  modifiedBy: modified && user ? user : null,
65
67
  modifiedDate: modified && modifiedAfter === FILTER_AFTER.DATE_TIME
66
- ? (_h = this.filterModifiedDateEl) === null || _h === void 0 ? void 0 : _h.value
68
+ ? (_f = this.filterModifiedDateEl) === null || _f === void 0 ? void 0 : _f.value
67
69
  : null
68
70
  };
69
71
  if (this.loadCallback) {
@@ -104,11 +106,13 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
104
106
  this.getObjects();
105
107
  });
106
108
  /* type*/
107
- this.filterTypeEl.addEventListener("valueChanged", () => {
109
+ this.filterTypeEl.addEventListener("valueChanged", (e) => {
110
+ this.selectedAttribute = e.detail;
108
111
  this.getObjects();
109
112
  });
110
113
  /* category*/
111
- this.filterCategoryEl.addEventListener("valueChanged", () => {
114
+ this.filterCategoryEl.addEventListener("valueChanged", (e) => {
115
+ this.selectedCategory = e.detail;
112
116
  this.getObjects();
113
117
  });
114
118
  /* module/folder*/
@@ -138,6 +142,14 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
138
142
  this.selectedObjectsIds = ev.detail.rowsId;
139
143
  });
140
144
  };
145
+ this.filterTypeHandler = (e) => {
146
+ this.selectedAttribute = e.detail.value;
147
+ this.getObjects();
148
+ };
149
+ this.filterCategoryHandler = (e) => {
150
+ this.selectedCategory = e.detail.value;
151
+ this.getObjects();
152
+ };
141
153
  this.chGridKeyDownHandler = (e) => {
142
154
  if (e.key === "Enter") {
143
155
  this.openSelectionCallbackHandler(e);
@@ -172,11 +184,10 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
172
184
  };
173
185
  // 9.LOCAL METHODS -> RENDER//
174
186
  this.renderFilter = () => {
175
- var _a, _b;
176
187
  return (h("div", { part: "filters-container", class: {
177
188
  "filter-grid": true,
178
189
  "filter-grid--no-title": !this.displayTitle
179
- }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, renderComboItems((_a = this.types) !== null && _a !== void 0 ? _a : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, renderComboItems((_b = this.categories) !== null && _b !== void 0 ? _b : [])), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
190
+ }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, this.types.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.filterTypeHandler }, item.name)))), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, this.categories.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.filterCategoryHandler }, item.label)))), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
180
191
  "gxi-hidden": !this.filterModified,
181
192
  "combo-modified": true
182
193
  }, "disable-filter": true, value: this.filterAfterType, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterAfterTypeEl = el), part: "filter-after-type" }, renderComboItems([
@@ -250,6 +261,7 @@ const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObject
250
261
  componentDidLoad() {
251
262
  this.listenChanges();
252
263
  this.loaderEl.container = this.chGridEl;
264
+ this.selectedAttribute = this.filterTypeEl.value;
253
265
  this.getObjects();
254
266
  this.filterPatternEl.focus();
255
267
  }
@@ -1 +1 @@
1
- {"file":"gx-ide-object-selector.js","mappings":"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","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\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 getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\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 objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 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() componentDidRenderFirstTime: EventEmitter<boolean>;\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 // 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.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.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 // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n type: this.filterTypeEl?.value,\n category: this.filterCategoryEl?.value,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\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 newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* category*/\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {renderComboItems(this.types ?? [])}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderComboItems(this.categories ?? [])}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\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 ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\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 <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}
1
+ {"file":"gx-ide-object-selector.js","mappings":"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","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\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 getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n private selectedAttribute: string;\n private selectedCategory: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\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 objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 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() componentDidRenderFirstTime: EventEmitter<boolean>;\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 // 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.loaderEl.container = this.chGridEl;\n this.selectedAttribute = this.filterTypeEl.value;\n this.getObjects();\n this.filterPatternEl.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 // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n // type: this.filterTypeEl?.value,\n type: this.selectedAttribute,\n // category: this.filterCategoryEl?.value,\n category: this.selectedCategory,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\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 newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\n \"valueChanged\",\n (e: CustomEvent<any>) => {\n this.selectedAttribute = e.detail;\n this.getObjects();\n }\n );\n /* category*/\n this.filterCategoryEl.addEventListener(\n \"valueChanged\",\n (e: CustomEvent<any>) => {\n this.selectedCategory = e.detail;\n this.getObjects();\n }\n );\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private filterTypeHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n this.selectedAttribute = e.detail.value;\n this.getObjects();\n };\n\n private filterCategoryHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n this.selectedCategory = e.detail.value;\n this.getObjects();\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {this.types.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.filterTypeHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {this.categories.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.filterCategoryHandler}\n >\n {item.label}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\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 ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\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 <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}
@@ -20,20 +20,22 @@ const GxIdeObjectSelector = class {
20
20
  this.cancelCallbackHandler();
21
21
  };
22
22
  this.getObjects = () => {
23
- var _a, _b, _c, _d, _e, _f, _g, _h;
23
+ var _a, _b, _c, _d, _e, _f;
24
24
  /* 'modified' checkbox, should only be considered if 'date' || 'user' */
25
25
  const modified = this.filterModifiedEl.checked;
26
26
  const modifiedAfter = this.filterAfterTypeEl.value;
27
27
  const user = (_b = (_a = this.filterUserEl) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.trim();
28
28
  const filters = {
29
29
  pattern: (_c = this.filterPatternEl) === null || _c === void 0 ? void 0 : _c.value,
30
- type: (_d = this.filterTypeEl) === null || _d === void 0 ? void 0 : _d.value,
31
- category: (_e = this.filterCategoryEl) === null || _e === void 0 ? void 0 : _e.value,
32
- module: (_g = (_f = this.filterModuleEl) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.id,
30
+ // type: this.filterTypeEl?.value,
31
+ type: this.selectedAttribute,
32
+ // category: this.filterCategoryEl?.value,
33
+ category: this.selectedCategory,
34
+ module: (_e = (_d = this.filterModuleEl) === null || _d === void 0 ? void 0 : _d.value) === null || _e === void 0 ? void 0 : _e.id,
33
35
  modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,
34
36
  modifiedBy: modified && user ? user : null,
35
37
  modifiedDate: modified && modifiedAfter === FILTER_AFTER.DATE_TIME
36
- ? (_h = this.filterModifiedDateEl) === null || _h === void 0 ? void 0 : _h.value
38
+ ? (_f = this.filterModifiedDateEl) === null || _f === void 0 ? void 0 : _f.value
37
39
  : null
38
40
  };
39
41
  if (this.loadCallback) {
@@ -74,11 +76,13 @@ const GxIdeObjectSelector = class {
74
76
  this.getObjects();
75
77
  });
76
78
  /* type*/
77
- this.filterTypeEl.addEventListener("valueChanged", () => {
79
+ this.filterTypeEl.addEventListener("valueChanged", (e) => {
80
+ this.selectedAttribute = e.detail;
78
81
  this.getObjects();
79
82
  });
80
83
  /* category*/
81
- this.filterCategoryEl.addEventListener("valueChanged", () => {
84
+ this.filterCategoryEl.addEventListener("valueChanged", (e) => {
85
+ this.selectedCategory = e.detail;
82
86
  this.getObjects();
83
87
  });
84
88
  /* module/folder*/
@@ -108,6 +112,14 @@ const GxIdeObjectSelector = class {
108
112
  this.selectedObjectsIds = ev.detail.rowsId;
109
113
  });
110
114
  };
115
+ this.filterTypeHandler = (e) => {
116
+ this.selectedAttribute = e.detail.value;
117
+ this.getObjects();
118
+ };
119
+ this.filterCategoryHandler = (e) => {
120
+ this.selectedCategory = e.detail.value;
121
+ this.getObjects();
122
+ };
111
123
  this.chGridKeyDownHandler = (e) => {
112
124
  if (e.key === "Enter") {
113
125
  this.openSelectionCallbackHandler(e);
@@ -142,11 +154,10 @@ const GxIdeObjectSelector = class {
142
154
  };
143
155
  // 9.LOCAL METHODS -> RENDER//
144
156
  this.renderFilter = () => {
145
- var _a, _b;
146
157
  return (h("div", { part: "filters-container", class: {
147
158
  "filter-grid": true,
148
159
  "filter-grid--no-title": !this.displayTitle
149
- }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, renderComboItems((_a = this.types) !== null && _a !== void 0 ? _a : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, renderComboItems((_b = this.categories) !== null && _b !== void 0 ? _b : [])), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
160
+ }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, this.types.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.filterTypeHandler }, item.name)))), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, this.categories.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.filterCategoryHandler }, item.label)))), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
150
161
  "gxi-hidden": !this.filterModified,
151
162
  "combo-modified": true
152
163
  }, "disable-filter": true, value: this.filterAfterType, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterAfterTypeEl = el), part: "filter-after-type" }, renderComboItems([
@@ -220,6 +231,7 @@ const GxIdeObjectSelector = class {
220
231
  componentDidLoad() {
221
232
  this.listenChanges();
222
233
  this.loaderEl.container = this.chGridEl;
234
+ this.selectedAttribute = this.filterTypeEl.value;
223
235
  this.getObjects();
224
236
  this.filterPatternEl.focus();
225
237
  }
@@ -1 +1 @@
1
- {"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\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 getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\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 objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 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() componentDidRenderFirstTime: EventEmitter<boolean>;\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 // 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.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.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 // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n type: this.filterTypeEl?.value,\n category: this.filterCategoryEl?.value,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\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 newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* category*/\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {renderComboItems(this.types ?? [])}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderComboItems(this.categories ?? [])}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\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 ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\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 <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}
1
+ {"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\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 getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n private selectedAttribute: string;\n private selectedCategory: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\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 objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 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() componentDidRenderFirstTime: EventEmitter<boolean>;\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 // 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.loaderEl.container = this.chGridEl;\n this.selectedAttribute = this.filterTypeEl.value;\n this.getObjects();\n this.filterPatternEl.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 // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n // type: this.filterTypeEl?.value,\n type: this.selectedAttribute,\n // category: this.filterCategoryEl?.value,\n category: this.selectedCategory,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\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 newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\n \"valueChanged\",\n (e: CustomEvent<any>) => {\n this.selectedAttribute = e.detail;\n this.getObjects();\n }\n );\n /* category*/\n this.filterCategoryEl.addEventListener(\n \"valueChanged\",\n (e: CustomEvent<any>) => {\n this.selectedCategory = e.detail;\n this.getObjects();\n }\n );\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private filterTypeHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n this.selectedAttribute = e.detail.value;\n this.getObjects();\n };\n\n private filterCategoryHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n this.selectedCategory = e.detail.value;\n this.getObjects();\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {this.types.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.filterTypeHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {this.categories.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.filterCategoryHandler}\n >\n {item.label}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\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 ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\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 <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}