@genexus/genexus-ide-ui 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
  3. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
  5. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +30 -17
  7. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/data-type-selector/data-type-selector.css +5 -0
  10. package/dist/collection/components/object-selector/object-selector.js +2 -2
  11. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  12. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +2 -2
  13. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +54 -17
  14. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  15. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +9 -3
  16. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +9 -3
  17. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +9 -3
  18. package/dist/components/gx-ide-data-type-selector.js +1 -1
  19. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  20. package/dist/components/gx-ide-object-selector.js +2 -2
  21. package/dist/components/gx-ide-object-selector.js.map +1 -1
  22. package/dist/components/gx-ide-team-dev-bring-changes.js +31 -17
  23. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  24. package/dist/esm/genexus-ide-ui.js +1 -1
  25. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
  26. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  27. package/dist/esm/gx-ide-object-selector.entry.js +2 -2
  28. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  29. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +30 -17
  30. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  33. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  34. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +9 -3
  35. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +9 -3
  36. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +9 -3
  37. package/dist/genexus-ide-ui/{p-16138f55.entry.js → p-3fbc5a02.entry.js} +38 -37
  38. package/dist/genexus-ide-ui/p-3fbc5a02.entry.js.map +1 -0
  39. package/dist/genexus-ide-ui/{p-6b4fdf55.entry.js → p-7cece7a8.entry.js} +21 -21
  40. package/dist/genexus-ide-ui/p-7cece7a8.entry.js.map +1 -0
  41. package/dist/genexus-ide-ui/{p-83cc3bcd.entry.js → p-ac131847.entry.js} +7 -7
  42. package/dist/genexus-ide-ui/{p-83cc3bcd.entry.js.map → p-ac131847.entry.js.map} +1 -1
  43. package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +8 -3
  44. package/dist/types/components.d.ts +10 -2
  45. package/package.json +1 -1
  46. package/dist/genexus-ide-ui/p-16138f55.entry.js.map +0 -1
  47. package/dist/genexus-ide-ui/p-6b4fdf55.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"gx-ide-data-type-selector.entry.js","mappings":"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","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n selected: type.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n selected: dataType.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n padding: var(--mer-spacing--xs);\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemModel,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport { ActionListItemGroup } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/list-box\",\n \"utils/form--full\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ARROW_UP_KEY = \"ArrowUp\";\nconst ARROW_DOWN_KEY = \"ArrowDown\";\nconst ENTER_KEY = \"Enter\";\nconst TAB_KEY = \"Tab\";\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n #dataTypeCategoryMap: Map<string, string> = new Map<string, string>();\n #dataTypeDataIdMap: Map<string, DataTypeData> = new Map<\n string,\n DataTypeData\n >();\n #lastArrowKey: typeof ARROW_UP_KEY | typeof ARROW_DOWN_KEY | null = null;\n #selectedDataTypeIds: SelectedDataTypeIds = {\n // For setting focus\n categoryId: undefined,\n dataTypeId: undefined\n };\n #focusAlreadySet: boolean = false;\n\n #actionListEl!: HTMLChActionListRenderElement;\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n @State() categoriesJustChanged: boolean = false;\n @State() actionListDidRender: boolean = false;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n category.types.forEach(type => {\n const isSelected = type.selected;\n if (isSelected) {\n // For setting focus\n this.#selectedDataTypeIds.categoryId = category.name;\n this.#selectedDataTypeIds.dataTypeId = type.name;\n }\n\n this.#dataTypeCategoryMap.set(type.name, category.id);\n this.#dataTypeDataIdMap.set(type.name, {\n id: category.id,\n name: type.name,\n icon: type.icon,\n selected: type.selected\n });\n });\n });\n this.loading = false;\n this.#showAllObjects();\n this.categoriesJustChanged = true;\n }\n\n /**\n * Callback invoked when the user has selected an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly arrowUpOnFirstElement: ArrowFirstOnFirstElement;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly focusType: \"first-element\" | \"selected\" = \"first-element\";\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #evaluateSelectionChanged = (path: EventTarget[]) => {\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n if (chActionListItem) {\n const id = (chActionListItem as HTMLElement).id;\n const dataTypeData = this.#dataTypeDataIdMap.get(id);\n this.dataTypeSelectedCallback(dataTypeData);\n }\n };\n\n #listKeyDownHandler = (event: KeyboardEvent) => {\n const pressedKey = event.key;\n const path = event.composedPath();\n\n if (pressedKey === ARROW_UP_KEY || pressedKey === ARROW_DOWN_KEY) {\n this.#lastArrowKey = pressedKey;\n\n if (pressedKey === ARROW_UP_KEY) {\n // Check if this is the first group. IF it is, let the host know,\n // so it can close the dialog.\n\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n\n if (chActionListItem !== undefined) {\n return;\n }\n\n // This is a ch-action-list-group\n const actionGroup = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-GROUP\"\n );\n const currentFocusedActionGroupId = (actionGroup as HTMLElement).id;\n\n const firstActionListGroupId =\n this.#actionListEl.shadowRoot.firstElementChild.id;\n\n if (currentFocusedActionGroupId === firstActionListGroupId) {\n this.arrowUpOnFirstElement();\n }\n }\n } else if (pressedKey === ENTER_KEY) {\n this.#evaluateSelectionChanged(path);\n } else if (pressedKey === TAB_KEY) {\n event.stopPropagation();\n }\n };\n\n #listClickHandler = (event: MouseEvent) => {\n if (this.#lastArrowKey) {\n // User navigated with ArrowUp or ArrowDown\n // Ignore, since this was not a click event.\n } else if (event.detail === 0) {\n // ignore keyboard Enter (Enter happens by default on buttons on onClick)\n return;\n } else {\n const path = event.composedPath();\n this.#evaluateSelectionChanged(path);\n }\n this.#lastArrowKey = null;\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #handleButtonTab = (event: KeyboardEvent) => {\n // Prevents bubbling, which causes this component to close, due to how the IDE handles Tab event\n // in a parent element.\n if (event.key === TAB_KEY || event.key === ENTER_KEY) {\n event.stopPropagation();\n }\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n onKeyDown={this.#handleButtonTab}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n onKeyDown={this.#handleButtonTab}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n onKeyDown={this.#handleButtonTab}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n #setFocus = async () => {\n if (this.#focusAlreadySet) {\n return;\n }\n let focusableElement: HTMLElement;\n\n setTimeout(() => {\n // setTimeout as a WA, since the list-box elements are not rendered/read immediatelly\n if (\n this.focusType === \"selected\" &&\n this.#selectedDataTypeIds.categoryId &&\n this.#selectedDataTypeIds.dataTypeId\n ) {\n // set focus on the selected element\n const selectedDataTypeEl = this.#actionListEl.shadowRoot.getElementById(\n this.#selectedDataTypeIds.dataTypeId\n );\n if (selectedDataTypeEl) {\n focusableElement = selectedDataTypeEl;\n }\n } else {\n // set focus of the first element\n const firstActionListGroup =\n this.#actionListEl.shadowRoot.firstElementChild;\n\n const firstButton = firstActionListGroup.shadowRoot.firstElementChild;\n focusableElement = firstButton as HTMLButtonElement;\n }\n\n focusableElement && (focusableElement as HTMLElement).focus();\n this.#focusAlreadySet = true;\n }, 150);\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n ref={async el => {\n this.#actionListEl = el as HTMLChActionListRenderElement;\n this.#setFocus();\n }}\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onKeyDown={this.#listKeyDownHandler}\n onClick={this.#listClickHandler}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\nexport type DataTypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n id: string;\n name: string;\n icon: string;\n selected: boolean;\n};\n\nexport type DataTypeSelectedCallback = (data: DataTypeData) => Promise<void>;\n\ntype SelectedDataTypeIds = {\n categoryId: string;\n dataTypeId: string;\n};\n\nexport type ArrowFirstOnFirstElement = () => Promise<void>;\n"],"version":3}
1
+ {"file":"gx-ide-data-type-selector.entry.js","mappings":"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","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n selected: type.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n selected: dataType.selected,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n padding: var(--mer-spacing--xs);\n}\n\n// WA: Reduce font-size. This should be solved on Mercury.\n.list-box::part(item__action),\n.list-box::part(group__action) {\n font-size: var(--font-size-body-s) !important;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemModel,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport { ActionListItemGroup } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/list-box\",\n \"utils/form--full\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ARROW_UP_KEY = \"ArrowUp\";\nconst ARROW_DOWN_KEY = \"ArrowDown\";\nconst ENTER_KEY = \"Enter\";\nconst TAB_KEY = \"Tab\";\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n #dataTypeCategoryMap: Map<string, string> = new Map<string, string>();\n #dataTypeDataIdMap: Map<string, DataTypeData> = new Map<\n string,\n DataTypeData\n >();\n #lastArrowKey: typeof ARROW_UP_KEY | typeof ARROW_DOWN_KEY | null = null;\n #selectedDataTypeIds: SelectedDataTypeIds = {\n // For setting focus\n categoryId: undefined,\n dataTypeId: undefined\n };\n #focusAlreadySet: boolean = false;\n\n #actionListEl!: HTMLChActionListRenderElement;\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n @State() categoriesJustChanged: boolean = false;\n @State() actionListDidRender: boolean = false;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n category.types.forEach(type => {\n const isSelected = type.selected;\n if (isSelected) {\n // For setting focus\n this.#selectedDataTypeIds.categoryId = category.name;\n this.#selectedDataTypeIds.dataTypeId = type.name;\n }\n\n this.#dataTypeCategoryMap.set(type.name, category.id);\n this.#dataTypeDataIdMap.set(type.name, {\n id: category.id,\n name: type.name,\n icon: type.icon,\n selected: type.selected\n });\n });\n });\n this.loading = false;\n this.#showAllObjects();\n this.categoriesJustChanged = true;\n }\n\n /**\n * Callback invoked when the user has selected an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly arrowUpOnFirstElement: ArrowFirstOnFirstElement;\n\n /**\n * Defines the type of focus applied when the component renders for the first time.\n */\n @Prop() readonly focusType: \"first-element\" | \"selected\" = \"first-element\";\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #evaluateSelectionChanged = (path: EventTarget[]) => {\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n if (chActionListItem) {\n const id = (chActionListItem as HTMLElement).id;\n const dataTypeData = this.#dataTypeDataIdMap.get(id);\n this.dataTypeSelectedCallback(dataTypeData);\n }\n };\n\n #listKeyDownHandler = (event: KeyboardEvent) => {\n const pressedKey = event.key;\n const path = event.composedPath();\n\n if (pressedKey === ARROW_UP_KEY || pressedKey === ARROW_DOWN_KEY) {\n this.#lastArrowKey = pressedKey;\n\n if (pressedKey === ARROW_UP_KEY) {\n // Check if this is the first group. IF it is, let the host know,\n // so it can close the dialog.\n\n const chActionListItem = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-ITEM\"\n );\n\n if (chActionListItem !== undefined) {\n return;\n }\n\n // This is a ch-action-list-group\n const actionGroup = path.find(\n el => (el as HTMLElement).tagName === \"CH-ACTION-LIST-GROUP\"\n );\n const currentFocusedActionGroupId = (actionGroup as HTMLElement).id;\n\n const firstActionListGroupId =\n this.#actionListEl.shadowRoot.firstElementChild.id;\n\n if (currentFocusedActionGroupId === firstActionListGroupId) {\n this.arrowUpOnFirstElement();\n }\n }\n } else if (pressedKey === ENTER_KEY) {\n this.#evaluateSelectionChanged(path);\n } else if (pressedKey === TAB_KEY) {\n event.stopPropagation();\n }\n };\n\n #listClickHandler = (event: MouseEvent) => {\n if (this.#lastArrowKey) {\n // User navigated with ArrowUp or ArrowDown\n // Ignore, since this was not a click event.\n } else if (event.detail === 0) {\n // ignore keyboard Enter (Enter happens by default on buttons on onClick)\n return;\n } else {\n const path = event.composedPath();\n this.#evaluateSelectionChanged(path);\n }\n this.#lastArrowKey = null;\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #handleButtonTab = (event: KeyboardEvent) => {\n // Prevents bubbling, which causes this component to close, due to how the IDE handles Tab event\n // in a parent element.\n if (event.key === TAB_KEY || event.key === ENTER_KEY) {\n event.stopPropagation();\n }\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n onKeyDown={this.#handleButtonTab}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n onKeyDown={this.#handleButtonTab}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n onKeyDown={this.#handleButtonTab}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n #setFocus = async () => {\n if (this.#focusAlreadySet) {\n return;\n }\n let focusableElement: HTMLElement;\n\n setTimeout(() => {\n // setTimeout as a WA, since the list-box elements are not rendered/read immediatelly\n if (\n this.focusType === \"selected\" &&\n this.#selectedDataTypeIds.categoryId &&\n this.#selectedDataTypeIds.dataTypeId\n ) {\n // set focus on the selected element\n const selectedDataTypeEl = this.#actionListEl.shadowRoot.getElementById(\n this.#selectedDataTypeIds.dataTypeId\n );\n if (selectedDataTypeEl) {\n focusableElement = selectedDataTypeEl;\n }\n } else {\n // set focus of the first element\n const firstActionListGroup =\n this.#actionListEl.shadowRoot.firstElementChild;\n\n const firstButton = firstActionListGroup.shadowRoot.firstElementChild;\n focusableElement = firstButton as HTMLButtonElement;\n }\n\n focusableElement && (focusableElement as HTMLElement).focus();\n this.#focusAlreadySet = true;\n }, 150);\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n ref={async el => {\n this.#actionListEl = el as HTMLChActionListRenderElement;\n this.#setFocus();\n }}\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onKeyDown={this.#listKeyDownHandler}\n onClick={this.#listClickHandler}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\nexport type DataTypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n id: string;\n name: string;\n icon: string;\n selected: boolean;\n};\n\nexport type DataTypeSelectedCallback = (data: DataTypeData) => Promise<void>;\n\ntype SelectedDataTypeIds = {\n categoryId: string;\n dataTypeId: string;\n};\n\nexport type ArrowFirstOnFirstElement = () => Promise<void>;\n"],"version":3}
@@ -206,10 +206,10 @@ const GxIdeObjectSelector = class {
206
206
  }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnNew), h("div", { class: "end buttons-spacer" }, h("button", {
207
207
  // button cancel
208
208
  class: "button-secondary", part: "button button-cancel", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_cancelCallbackHandler, "f")
209
- }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnCancel), h("button", {
209
+ }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnCancel), this.multiSelection ? (h("button", { class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_selectAll, "f"), part: "button button-select-all" }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnSelectAll)) : null, h("button", {
210
210
  // button confirm
211
211
  class: "button-primary", part: "button button-confirm", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_openSelectionCallbackHandler, "f"), disabled: this.loading
212
- }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnConfirm), this.multiSelection ? (h("button", { class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeObjectSelector_selectAll, "f"), part: "button button-select-all" }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnSelectAll)) : null))));
212
+ }, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnConfirm)))));
213
213
  });
214
214
  _GxIdeObjectSelector_renderObjects.set(this, () => {
215
215
  return (h("ch-tabular-grid", { class: {
@@ -1 +1 @@
1
- {"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\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 #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\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() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\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 * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\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 /**\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 * 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 * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.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 #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.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 };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\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"],"version":3}
1
+ {"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\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 #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\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() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\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 * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\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 /**\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 * 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 * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.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 #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.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 };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\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"],"version":3}
@@ -2,7 +2,7 @@ import { r as registerInstance, h, H as Host, a as getElement } from './index-10
2
2
  import { g as getIconPath } from './MERCURY_ASSETS-7c06e424.js';
3
3
  import { L as Locale } from './locale-e5107fad.js';
4
4
 
5
- const bringChangesCss = ":host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
5
+ const bringChangesCss = ":host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge,.pill--to-revert{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged,.pill--reverted{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
6
6
 
7
7
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
8
  if (kind === "a" && !f)
@@ -96,7 +96,7 @@ const GxIdeTeamDevBringChanges = class {
96
96
  this.merging = true;
97
97
  const newobjectsStatesMap = new Map(this.objectsStatesMap);
98
98
  __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f").forEach(checkedObjectId => {
99
- newobjectsStatesMap.set(checkedObjectId, "merging");
99
+ newobjectsStatesMap.set(checkedObjectId, this.operationType === "revert" ? "reverting" : "merging");
100
100
  });
101
101
  this.objectsStatesMap = newobjectsStatesMap;
102
102
  await this.mergeObjectsCallback(__classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f"));
@@ -104,7 +104,7 @@ const GxIdeTeamDevBringChanges = class {
104
104
  _GxIdeTeamDevBringChanges_mergeSingleObject.set(this, objectId => async () => {
105
105
  this.merging = true;
106
106
  const newobjectsStatesMap = new Map(this.objectsStatesMap);
107
- newobjectsStatesMap.set(objectId, "merging");
107
+ newobjectsStatesMap.set(objectId, this.operationType === "revert" ? "reverting" : "merging");
108
108
  this.objectsStatesMap = newobjectsStatesMap;
109
109
  await this.mergeObjectsCallback([objectId]);
110
110
  });
@@ -174,12 +174,16 @@ const GxIdeTeamDevBringChanges = class {
174
174
  ];
175
175
  });
176
176
  _GxIdeTeamDevBringChanges_renderObjectState.set(this, (objectType, objectId) => {
177
- if (objectType === "merging") {
178
- return (h("span", { class: "merging-spinner-caption" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merging));
177
+ if (objectType === "merging" || objectType === "reverting") {
178
+ return (h("span", { class: "merging-spinner-caption" }, this.operationType === "revert"
179
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.reverting
180
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merging));
179
181
  }
180
182
  const classes = `pill pill--${objectType}`;
181
183
  if (this.mergePillAsButton &&
182
- (objectType === "to-merge" || objectType === "to-merge-marked")) {
184
+ (objectType === "to-merge" ||
185
+ objectType === "to-merge-marked" ||
186
+ objectType === "to-revert")) {
183
187
  return (h("button", { class: { [classes]: true, "button-secondary": true }, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeSingleObject, "f").call(this, objectId) }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").statesForButton[objectType]));
184
188
  }
185
189
  else {
@@ -295,11 +299,12 @@ const GxIdeTeamDevBringChanges = class {
295
299
  this.commitObjects = [];
296
300
  this.enableRowOptions = false;
297
301
  this.hideFilters = false;
302
+ this.operationType = "merge";
298
303
  this.mergeObjectsCallback = undefined;
299
304
  this.mergePillAsButton = undefined;
300
305
  }
301
306
  objectsStatesMapChanged(newCommitObjectsStateMap) {
302
- const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(([, state]) => state === "merging");
307
+ const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(([, state]) => state === "merging" || state === "reverting");
303
308
  if (!someObjectIsMerging) {
304
309
  this.merging = false;
305
310
  }
@@ -310,7 +315,7 @@ const GxIdeTeamDevBringChanges = class {
310
315
  this.loading = false;
311
316
  // All commit objects begin as "pending to merge"
312
317
  newCommitObjects.forEach(commitObject => {
313
- this.objectsStatesMap.set(commitObject.id, "to-merge");
318
+ this.objectsStatesMap.set(commitObject.id, this.operationType === "revert" ? "to-revert" : "to-merge");
314
319
  });
315
320
  this.objectsFiltered = this.commitObjects;
316
321
  }
@@ -328,8 +333,10 @@ const GxIdeTeamDevBringChanges = class {
328
333
  value: COMBO_BOX_ALL_VALUE
329
334
  },
330
335
  {
331
- caption: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states["to-merge"],
332
- value: "to-merge"
336
+ caption: this.operationType === "revert"
337
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states["to-revert"]
338
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states["to-merge"],
339
+ value: this.operationType === "revert" ? "to-revert" : "to-merge"
333
340
  },
334
341
  {
335
342
  caption: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.warning,
@@ -340,8 +347,10 @@ const GxIdeTeamDevBringChanges = class {
340
347
  value: "error"
341
348
  },
342
349
  {
343
- caption: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merged,
344
- value: "merged"
350
+ caption: this.operationType === "revert"
351
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.reverted
352
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").states.merged,
353
+ value: this.operationType === "revert" ? "reverted" : "merged"
345
354
  }
346
355
  ], "f");
347
356
  if ((_a = this.commitObjects) === null || _a === void 0 ? void 0 : _a.length) {
@@ -368,7 +377,7 @@ const GxIdeTeamDevBringChanges = class {
368
377
  if ((message === null || message === void 0 ? void 0 : message.length) > 0) {
369
378
  this.commitObjectsMessagesMap.set(objectId, message);
370
379
  }
371
- if (newState === "merged") {
380
+ if (newState === "merged" || newState === "reverted") {
372
381
  // remove from checked
373
382
  __classPrivateFieldSet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, "f").filter(checkedObject => checkedObject !== objectId), "f");
374
383
  // add to "already merged". This will hide the checkbox
@@ -385,7 +394,9 @@ const GxIdeTeamDevBringChanges = class {
385
394
  return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body-inline spacing-body-block-start" }, h("div", {
386
395
  // header details
387
396
  class: "header__detail"
388
- }, h("p", { class: "detail__title subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.bringChangesDetail), h("p", { class: "detail__commit-name subtitle-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderCommitsNumbers, "f").call(this)), h("div", {
397
+ }, h("p", { class: "detail__title subtitle-semi-bold-xs" }, this.operationType === "revert"
398
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.revertChangesDetail
399
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.bringChangesDetail), h("p", { class: "detail__commit-name subtitle-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderCommitsNumbers, "f").call(this)), h("div", {
389
400
  // genexus server
390
401
  class: "detail__genexus-server field field-block"
391
402
  }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.genexusServer), h("a", { class: "detail__link body-regular-s", href: this.commitDetail.genexusServer, target: "_blank" }, this.commitDetail.genexusServer)), h("div", {
@@ -394,10 +405,10 @@ const GxIdeTeamDevBringChanges = class {
394
405
  }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.knowledgeBase), h("p", { class: "body-regular-s" }, this.commitDetail.knowledgeBase)), h("div", {
395
406
  // current version
396
407
  class: "detail__current-version field field-block"
397
- }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), h("div", {
408
+ }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), this.operationType === "merge" && (h("div", {
398
409
  // merge from version
399
410
  class: "detail__merge-from-version field field-block"
400
- }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.mergeFromVersion), h("p", { class: "body-regular-s" }, this.commitDetail.mergeFromVersion))), h("div", {
411
+ }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.mergeFromVersion), h("p", { class: "body-regular-s" }, this.commitDetail.mergeFromVersion)))), h("div", {
401
412
  // header information
402
413
  class: "header__information"
403
414
  }, h("p", { class: "information__title subtitle-semi-bold-xs" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.title), h("div", {
@@ -426,7 +437,9 @@ const GxIdeTeamDevBringChanges = class {
426
437
  } }, !this.hideFilters && [
427
438
  h("ch-edit", { class: "input", disabled: disableControls, startImgSrc: SEARCH_ICON, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.searchPlaceholder, type: "search", onInput: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_searchInputHandler, "f") }),
428
439
  h("ch-combo-box-render", { class: "combo-box", disabled: disableControls, model: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_comboBoxStatesModel, "f"), value: this.stateFilterValue, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_stateChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.statePlaceholder })
429
- ], h("button", { class: "button-primary button-merge-checked", disabled: !this.atLeastOneObjectIsChecked || disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, "f") }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.mergeChecked)), h("div", { class: "main spacing-body" }, this.commitObjects.length ? (h("ch-tabular-grid", { class: {
440
+ ], h("button", { class: "button-primary button-merge-checked", disabled: !this.atLeastOneObjectIsChecked || disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, "f") }, this.operationType === "revert"
441
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.revertSelected
442
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").filter.mergeSelected)), h("div", { class: "main spacing-body" }, this.commitObjects.length ? (h("ch-tabular-grid", { class: {
430
443
  "tabular-grid": true,
431
444
  "objects-tabular-grid": true,
432
445
  "disabled-custom-selector": this.merging,