@genexus/genexus-ide-ui 1.1.6 → 1.1.8
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.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +61 -20
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +58 -14
- package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +16 -9
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +270 -0
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/deployment-tool/deployment-tool.js +78 -20
- package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -1
- package/dist/collection/components/design-import/design-import.js +1 -1
- package/dist/collection/components/design-import/design-import.js.map +1 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
- package/dist/collection/components/new-version/new-version.css +4 -0
- package/dist/collection/components/new-version/new-version.js +124 -18
- package/dist/collection/components/new-version/new-version.js.map +1 -1
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
- package/dist/collection/components/select-kb-items/select-kb-items.css +22 -27
- package/dist/collection/components/select-kb-items/select-kb-items.js +34 -8
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.js +2 -2
- package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
- package/dist/collection/components/team-dev/history/helpers.js +22 -0
- package/dist/collection/components/team-dev/history/helpers.js.map +1 -0
- package/dist/collection/components/team-dev/history/history.css +124 -0
- package/dist/collection/components/team-dev/history/history.js +448 -0
- package/dist/collection/components/team-dev/history/history.js.map +1 -0
- package/dist/collection/components/team-dev/update/update.js +1 -1
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-deployment-tool.js +62 -20
- package/dist/components/gx-ide-deployment-tool.js.map +1 -1
- package/dist/components/gx-ide-design-import.js +1 -1
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-new-version.js +65 -15
- package/dist/components/gx-ide-new-version.js.map +1 -1
- package/dist/components/gx-ide-select-kb-items.js +1 -507
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +2 -2
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.d.ts +11 -0
- package/dist/components/gx-ide-team-dev-history.js +322 -0
- package/dist/components/gx-ide-team-dev-history.js.map +1 -0
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/select-kb-items.js +520 -0
- package/dist/components/select-kb-items.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js +61 -20
- package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +58 -14
- package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +16 -9
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +266 -0
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -0
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
- package/dist/genexus-ide-ui/{p-3085add2.entry.js → p-03dbccde.entry.js} +193 -160
- package/dist/genexus-ide-ui/p-03dbccde.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-48062d23.entry.js → p-0acf517c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-48062d23.entry.js.map → p-0acf517c.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-d2107cb2.entry.js → p-34fd4875.entry.js} +3 -18
- package/dist/genexus-ide-ui/p-34fd4875.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-74715731.entry.js +541 -0
- package/dist/genexus-ide-ui/p-74715731.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-036d005d.entry.js → p-75a5c51f.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-75a5c51f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-80c1ddc3.entry.js +218 -0
- package/dist/genexus-ide-ui/p-80c1ddc3.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9fa1200f.entry.js → p-a8d0b62e.entry.js} +139 -125
- package/dist/genexus-ide-ui/p-a8d0b62e.entry.js.map +1 -0
- package/dist/types/components/deployment-tool/deployment-tool.d.ts +5 -0
- package/dist/types/components/new-version/new-version.d.ts +27 -1
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +8 -0
- package/dist/types/components/team-dev/history/helpers.d.ts +7 -0
- package/dist/types/components/team-dev/history/history.d.ts +109 -0
- package/dist/types/components.d.ts +149 -18
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-036d005d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3085add2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9fa1200f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c91af626.entry.js +0 -149
- package/dist/genexus-ide-ui/p-c91af626.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-d2107cb2.entry.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["updateCss","CSS_BUNDLES","GxIdeTeamDevUpdate","this","loadDataCalledFirstTime","renderedFirstTime","onRowContextMenuHandler","grid","async","ev","objectsContextMenuCallback","preventDefault","stopPropagation","selection","chGridPendingForUpdateEl","getSelectedRows","chGridIgnoredObjectsEl","chGridResultsEl","clientX","detail","clientY","markAllPendingToUpdateRows","markAllRows","gridOnSelectionChangedCallbackHandler","selectCallback","rowsId","genexusServerUrlHandler","_a","updateFrom","serverUrl","window","open","renderOptions","h","class","part","containerTitle","_componentLocale","options","titleType","contentBorderEnd","noContentPadding","type","listName","readonly","noListBorder","icon","itemId","itemValue","undefined","onClick","knowledgeBase","kbName","version","versionName","lastFullUpdate","formatDate","scope","labelPosition","center","noMargin","objects","bold","objectScopeText","value","scopeData","toLocaleLowerCase","objectsScope","changeBtn","revision","revisionScopeText","latest","revisionScope","label","kbProperties","renderFilter","centerLabel","filter","pattern","ref","el","filterPatternEl","onInput","loadData","disabled","types","filterTypeEl","onValueChanged","id","renderComboItems","renderData","displayBorderTop","slot","displayBorder","tabs","pendingForUpdate","tab","key","isSelected","ignoredObjects","results","gxgTabButtonResultsEl","noPadding","renderPendingForUpdate","renderIgnoredObjects","renderResults","onRowContextMenu","onSelectionChanged","settingable","sortable","richRowSelector","richRowSelectorMode","size","config","tabularGrid","colSize","maxContent","columnName","tableHead","name","description","commonDouble","modifiedOn","status","action","updateData","map","obj","rowid","src","typeIcon","renderIconState","state","notes","updateResultData","renderIconResult","result","messages","msg","msgType","text","color","filters","showFilter","isLoading","loadCallback","update","updateCallback","pendingForUpdateMarked","getMarkedRows","then","tabButtonClick","objectsScopeCallback","objectData","revisionScopeCallback","revisionData","pendingForUpdatesRowMarkingChangedHandler","e","removeEventListener","addedRowsIds","addedRowsId","removedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","revertPendingCommitsCheckboxes","togglePendingCommitsCheckboxes","addEventListener","itemsToToggle","itemsToCheck","itemsToUncheck","rowId","markRow","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","reload","render","Host","model","slimmerFooter","gxIdeContainer","displayTitle","footer","btnUpdate"],"sources":["src/components/team-dev/update/update.scss?tag=gx-ide-team-dev-update&encapsulation=shadow","src/components/team-dev/update/update.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: block;\n}\n\n/*--- Options Wrapper ---*/\n.options-wrapper {\n display: grid;\n grid-template-columns: 2fr 1fr;\n grid-column-gap: 0;\n grid-row-gap: 0;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n\n .genexus-server {\n cursor: pointer;\n &:hover {\n background-color: var(--ds-item-background-color--hover);\n }\n }\n .scope {\n font-family: inherit;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n .row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--mer-spacing--xs);\n .value {\n font-style: italic;\n }\n }\n }\n}\n\n/*--- Filter ---*/\n.filter-row {\n padding: 0 var(--gx-ide-container__padding) 0 var(--gx-ide-container__padding);\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-row-gap);\n .combo {\n flex: 1;\n }\n}\n\n/* Data Grid*/\n.data-grid {\n grid-template-columns: repeat(3, 1fr);\n // max-height: 300px;\n // overflow-y: auto;\n > :nth-child(1) {\n grid-area: 1 / 1 / 2 / 2;\n }\n > :nth-child(2) {\n grid-area: 1 / 2 / 2 / 4;\n }\n}\n.data-panel-grid {\n grid-template-columns: repeat(2, 1fr);\n}\n.data-preview {\n img {\n max-width: 100%;\n }\n}\n.data-max-height {\n max-height: 300px;\n overflow-y: auto;\n}\n\n/* Footer Actions */\n.actions {\n justify-content: flex-end;\n}\n\n.no-border {\n border: 0;\n}\n\n.bold {\n font-weight: bold;\n}\n\n/*--- Results ---*/\nch-grid-rowset-empty {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--xs);\n}\n\ngxg-tab::part(container) {\n line-height: unset;\n}\n.tabular-grid {\n block-size: 100%;\n}\n\ngx-ide-container::part(content) {\n overflow: hidden;\n}\n\n// apply ellipsis on description column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-pending-update\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 6\n )\n);\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-results\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 6\n )\n);\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color as GxgIconColor } from \"@genexus/gemini/dist/types/components/icon/icon\";\nimport {\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\n\nimport {\n ObjectState,\n ObjectType,\n ContextMenuInfo,\n ItemsCheckedState,\n ItemsCheckedResult,\n ResultState\n} from \"../../../common/types\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { formatDate } from \"../../../common/helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-team-dev-update\",\n styleUrl: \"update.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-update\"]\n})\nexport class GxIdeTeamDevUpdate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private loadDataCalledFirstTime = false; // pending for update grid checkboxes, should be checked, after loadData has loaded objects for the first time.\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevUpdateElement;\n\n /* References needed to collect data */\n // private optionKbPropertiesEl!: HTMLGxgFormCheckboxElement;\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private chGridPendingForUpdateEl!: HTMLChGridElement;\n private chGridIgnoredObjectsEl!: HTMLChGridElement;\n private chGridResultsEl!: HTMLChGridElement;\n private gxgTabButtonResultsEl!: HTMLGxgTabButtonElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * For show or hide advanced filters\n */\n @State() objectScopeText = \"all\";\n\n /**\n * The tab that is currently open\n */\n @State() openTab: \"pending\" | \"ignored\" | \"results\" = \"pending\";\n\n /**\n * For show or hide advanced filters\n */\n @State() revisionScopeText: string = undefined;\n\n /**\n * For show or hide advanced filters\n */\n @State() showFilter = false;\n\n /**\n * The data loaded for populate the grids\n */\n @State() updateData: UpdateData = {\n pendingForUpdate: [],\n ignoredObjects: []\n };\n\n /**\n * The data receive after user update\n */\n @State() updateResultData: UpdateResultData[] = [];\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly gridContextMenuCallback!: GridContextMenuCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer to call when the user makes a partial selection from button Change of Scope group.\n */\n @Prop() readonly objectsScopeCallback!: () => Promise<\"all\" | \"partial\">;\n\n /**\n * This is a function provided by the developer to call when the user clicked in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * This is a function provided by the developer to call when the user wants to select the revision to work on.\n */\n @Prop() readonly revisionScopeCallback!: () => Promise<string | undefined>;\n\n /**\n * Callback that should be invoked when the user activates the context menu on any of the grids. It receives the internal IDs of the selected elements and in which grid the event occurred. It should prevent the default browser context menu from appearing\n */\n @Prop() readonly objectsContextMenuCallback!: ObjectsContextMenuCallback;\n\n /**\n * Callback that should be invoked when the user selects rows from the grids\n */\n @Prop() readonly selectCallback: UpdateSelectCallback;\n\n /**\n * Possibly values for the filter type\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n @Prop() readonly updateCallback!: UpdateCallback;\n\n /**\n * Information to show in the container of group 'Update From'\n */\n @Prop() readonly updateFrom: UpdateFromData;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n async componentDidLoad() {\n await this.loadData();\n this.filterPatternEl.focus();\n }\n\n async componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n\n if (this.loadDataCalledFirstTime) {\n // call this method only once\n await this.markAllPendingToUpdateRows();\n // attach \"rowMarkingChanged\" after rows have been checked for the first time.\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n this.loadDataCalledFirstTime = false;\n }\n }\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * The method used by the host to instruct the component to force a data reload in the grids.\n */\n @Method()\n async reload() {\n this.loadData();\n }\n\n // 9.LOCAL METHODS //\n\n private onRowContextMenuHandler =\n (grid: UpdateSourceType) =>\n async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n if (this.objectsContextMenuCallback) {\n ev.preventDefault();\n ev.stopPropagation();\n let selection: string[] = [];\n if (grid === \"pending\") {\n selection = await this.chGridPendingForUpdateEl.getSelectedRows();\n } else if (grid === \"ignored\") {\n selection = await this.chGridIgnoredObjectsEl.getSelectedRows();\n } else if (grid === \"results\") {\n selection = await this.chGridResultsEl.getSelectedRows();\n }\n await this.objectsContextMenuCallback(grid, {\n selection: selection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n };\n\n private markAllPendingToUpdateRows = () => {\n this.chGridPendingForUpdateEl.markAllRows();\n };\n\n private gridOnSelectionChangedCallbackHandler =\n (grid: UpdateSourceType) =>\n async (ev: CustomEvent<TabularGridSelectionChangedEvent>) => {\n if (this.selectCallback) {\n await this.selectCallback(grid, ev.detail.rowsId);\n }\n };\n\n private genexusServerUrlHandler = () => {\n if (this.updateFrom?.serverUrl) {\n window.open(this.updateFrom.serverUrl);\n }\n };\n\n private renderOptions = (): Element => {\n return (\n <div class=\"options-wrapper\">\n {/* genexus server*/}\n <gx-ide-container\n part=\"options-update-from\"\n containerTitle={this._componentLocale.options.updateFrom}\n titleType=\"secondary\"\n contentBorderEnd\n noContentPadding\n >\n <gx-ide-list-selector\n type=\"single-selection\"\n listName=\"commit-recent-messages\"\n readonly\n noListBorder\n >\n {/* genexus server*/}\n <gx-ide-list-selector-item\n icon=\"window-tools/genexus-cloud\"\n itemId=\"genexus-server\"\n itemValue={undefined}\n class=\"genexus-server\"\n onClick={this.genexusServerUrlHandler}\n >\n {`${this._componentLocale.options.updateFrom}:`}\n <gxg-text type=\"text-link\">\n {this.updateFrom ? this.updateFrom.serverUrl : \"\"}\n </gxg-text>\n </gx-ide-list-selector-item>\n\n {/* knowledge base*/}\n <gx-ide-list-selector-item\n icon=\"general/knowledge-base\"\n itemId=\"knowledge-base\"\n itemValue={`${this._componentLocale.options.knowledgeBase}: ${\n this.updateFrom ? this.updateFrom.kbName : \"\"\n }`}\n ></gx-ide-list-selector-item>\n\n {/* version */}\n <gx-ide-list-selector-item\n icon=\"general/version\"\n itemId=\"version\"\n itemValue={`${this._componentLocale.options.version}: ${\n this.updateFrom ? this.updateFrom.versionName : \"\"\n }`}\n ></gx-ide-list-selector-item>\n\n {/* last full update */}\n <gx-ide-list-selector-item\n icon=\"window-tools/last-changes-view\"\n itemId=\"last-full-update\"\n itemValue={`${\n this._componentLocale.options.lastFullUpdate\n }:${formatDate(this.updateFrom.lastFullUpdate)}`}\n ></gx-ide-list-selector-item>\n </gx-ide-list-selector>\n </gx-ide-container>\n\n {/* scope*/}\n <gx-ide-container\n part=\"options-scope\"\n containerTitle={this._componentLocale.options.scope}\n titleType=\"secondary\"\n >\n <div class=\"scope\">\n {/* Objects*/}\n <div class=\"row\">\n <gxg-label labelPosition=\"start\" center noMargin>\n {this._componentLocale.options.objects}:\n </gxg-label>\n <span\n class={{\n bold: this.objectScopeText === \"partial\",\n value: true\n }}\n >\n {\n this._componentLocale.options.scopeData.objects[\n this.objectScopeText.toLocaleLowerCase()\n ]\n }\n </span>\n <gxg-text\n type=\"text-link\"\n onClick={this.objectsScope}\n part=\"gxg-button gxg-button--scope-objects-change\"\n >\n {this._componentLocale.options.changeBtn}\n </gxg-text>\n </div>\n\n {/* Revision */}\n <div class=\"row\">\n <gxg-label labelPosition=\"start\" center noMargin>\n {this._componentLocale.options.revision}:\n </gxg-label>\n <span\n class={{\n bold: this.revisionScopeText !== undefined,\n value: true\n }}\n >\n {this.revisionScopeText === undefined\n ? this._componentLocale.options.scopeData.revision.latest\n : this.revisionScopeText}\n </span>\n <gxg-text\n type=\"text-link\"\n onClick={this.revisionScope}\n part=\"gxg-button gxg-button--scope-revision-change\"\n >\n {this._componentLocale.options.changeBtn}\n </gxg-text>\n </div>\n\n {/* Kb Properties */}\n <div class=\"row\">\n <gxg-form-checkbox\n label={this._componentLocale.options.kbProperties}\n class=\"align-center\"\n part=\"option-kb-properties\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </gx-ide-container>\n </div>\n );\n };\n\n private renderFilter = (): Element => {\n return (\n <div\n class={{\n \"filter-row\": true\n }}\n >\n {/* pattern*/}\n <gxg-form-text\n label-position=\"start\"\n centerLabel\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-pattern\"\n onInput={this.loadData}\n class=\"combo\"\n ></gxg-form-text>\n\n {/* type */}\n <gxg-combo-box\n label-position=\"start\"\n centerLabel\n disable-filter\n label={this._componentLocale.filter.type}\n disabled={!this.types}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n onValueChanged={this.loadData}\n part=\"filter-type\"\n value={this.types[0].id}\n class=\"combo\"\n >\n {renderComboItems(this.types)}\n </gxg-combo-box>\n\n {/* load data */}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--reload\"\n class=\"button\"\n ></gxg-button>\n </div>\n );\n };\n\n private renderData = (): Element => {\n return (\n <gx-ide-container\n part=\"data-container\"\n noContentPadding\n class=\"gxi-overflow-auto\"\n displayBorderTop\n >\n <gxg-tabs id=\"dataTabs\" part=\"data-tabs\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.pendingForUpdate}\n tab=\"pendingForUpdate\"\n key=\"pendingForUpdate\"\n isSelected={true}\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.ignoredObjects}\n tab=\"ignoredObjects\"\n key=\"ignoredObjects\"\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.results}\n tab=\"results\"\n key=\"results\"\n ref={(el: HTMLGxgTabButtonElement) =>\n (this.gxgTabButtonResultsEl = el)\n }\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab\n tab=\"pendingForUpdate\"\n key=\"pendingForUpdate\"\n noPadding\n isSelected={true}\n >\n {this.renderPendingForUpdate()}\n </gxg-tab>\n <gxg-tab tab=\"ignoredObjects\" key=\"ignoredObjects\" noPadding>\n {this.renderIgnoredObjects()}\n </gxg-tab>\n <gxg-tab tab=\"results\" key=\"results\" noPadding>\n {this.renderResults()}\n </gxg-tab>\n </gxg-tabs>\n </gx-ide-container>\n );\n };\n\n private renderPendingForUpdate = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-pending-update\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridPendingForUpdateEl = el)\n }\n part=\"ch-tabular-grid-pending-for-updates\"\n onRowContextMenu={this.onRowContextMenuHandler(\"pending\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"pending\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n column-type=\"rich\"\n richRowSelector\n richRowSelectorMode=\"mark\"\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\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 columnName={this._componentLocale.tableHead.description}\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 columnName={this._componentLocale.tableHead.modifiedOn}\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 columnName={this._componentLocale.tableHead.status}\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 columnName={this._componentLocale.tableHead.action}\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 {this.updateData.pendingForUpdate.map((obj: ModifiedObject) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector\n class=\"tabular-grid-cell\"\n ></ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\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.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedOn)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.status}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.action}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderIgnoredObjects = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridIgnoredObjectsEl = el)\n }\n part=\"ch-grid-ignored-objects\"\n onRowContextMenu={this.onRowContextMenuHandler(\"ignored\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"ignored\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size=\"min-content\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n size=\"1fr\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\n settingable={false}\n size=\"1fr\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.updateData.ignoredObjects.map((obj: ModifiedObject) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} 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-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderResults = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-results\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) => (this.chGridResultsEl = el)}\n part=\"ch-tabular-grid-results\"\n onRowContextMenu={this.onRowContextMenuHandler(\"results\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"results\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n column-type=\"tree\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.description}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.notes}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.updateResultData.map((obj: UpdateResultData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconResult(obj.result)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\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.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.notes}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-rowset>\n {obj.messages.map(msg => {\n let msgType;\n switch (msg.type) {\n case \"info\":\n msgType = \"text-alert-info\";\n break;\n case \"success\":\n msgType = \"text-alert-success\";\n break;\n case \"warning\":\n msgType = \"text-alert-warning\";\n break;\n case \"error\":\n msgType = \"text-alert-error\";\n break;\n }\n return (\n <ch-tabular-grid-rowset-empty>\n <gxg-text type={msgType as any}>{msg.text}</gxg-text>\n </ch-tabular-grid-rowset-empty>\n );\n })}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderIconState = (state: ObjectState): Element => {\n let type: string;\n\n switch (state) {\n case \"modified\":\n type = \"gx-server/changes-commit-pending\";\n break;\n case \"inserted\":\n type = \"gx-server/new\";\n break;\n case \"deleted\":\n type = \"gx-server/delete\";\n break;\n case \"conflicted\":\n type = \"gx-server/conflict\";\n break;\n }\n return <ch-image class=\"icon-md\" src={type}></ch-image>;\n };\n\n private renderIconResult = (result: ResultState): Element => {\n let type: string;\n let color: GxgIconColor;\n switch (result) {\n case \"info\":\n type = \"gemini-tools/notice\";\n color = \"primary-active\";\n break;\n case \"success\":\n type = \"gemini-tools/success\";\n color = \"success\";\n break;\n case \"warning\":\n type = \"gemini-tools/warning\";\n color = \"warning\";\n break;\n case \"error\":\n type = \"gemini-tools/error\";\n color = \"error\";\n break;\n }\n return <gxg-icon type={type} color={color}></gxg-icon>;\n };\n\n private loadData = async (): Promise<void> => {\n const filters: FiltersData = {\n pattern: this.showFilter ? this.filterPatternEl.value : null,\n type: this.showFilter ? this.filterTypeEl.value : null\n };\n // this.updateData = null;\n this.isLoading = true;\n this.updateData = await this.loadCallback(filters);\n this.isLoading = false;\n if (!this.loadDataCalledFirstTime) {\n /* this allows checking the pending commits checkboxes on first load*/\n this.loadDataCalledFirstTime = true;\n }\n };\n\n private update = async (): Promise<void> => {\n if (this.updateCallback) {\n const pendingForUpdateMarked =\n await this.chGridPendingForUpdateEl.getMarkedRows();\n this.updateCallback(pendingForUpdateMarked).then(\n (updateResultData: UpdateResultData[]) => {\n this.updateResultData = updateResultData;\n this.gxgTabButtonResultsEl.tabButtonClick();\n }\n );\n }\n };\n\n private objectsScope = (): void => {\n if (this.objectsScopeCallback) {\n this.objectsScopeCallback().then(objectData => {\n if (objectData) {\n this.objectScopeText = objectData;\n }\n });\n }\n };\n\n private revisionScope = (): void => {\n if (this.revisionScopeCallback) {\n this.revisionScopeCallback().then(revisionData => {\n this.revisionScopeText = revisionData;\n });\n }\n };\n\n private pendingForUpdatesRowMarkingChangedHandler = async (\n e: CustomEvent<TabularGridMarkingChangedEvent>\n ): Promise<void> => {\n // remove \"rowMarkingChanged\" until checkboxes have been added/removed on togglePendingCommitsCheckboxes, to prevent loops.\n this.chGridPendingForUpdateEl.removeEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n if (this.chGridPendingForUpdateEl) {\n const addedRowsIds = e.detail.addedRowsId;\n const removedRowsId = e.detail.removedRowsId;\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\n if (pendingItemCheckedResult === undefined) {\n // undo check/uncheck\n await this.revertPendingCommitsCheckboxes(addedRowsIds, removedRowsId);\n } else {\n await this.togglePendingCommitsCheckboxes(pendingItemCheckedResult);\n }\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n }\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n };\n\n private togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.chGridPendingForUpdateEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.chGridPendingForUpdateEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.chGridPendingForUpdateEl.markRow(rowId, false);\n }\n }\n };\n\n private revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.chGridPendingForUpdateEl) {\n for (const rowId of addedRowsIds) {\n await this.chGridPendingForUpdateEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.chGridPendingForUpdateEl.markRow(rowId, true);\n }\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderTop\n noContentPadding\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderFilter()}\n {this.renderData()}\n\n <gxg-button\n id=\"button-update\"\n type=\"primary-text-only\"\n onClick={this.update}\n part=\"gxg-button gxg-button--update\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnUpdate}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadCallback = (filters: FiltersData) => Promise<UpdateData>;\n\nexport type UpdateCallback = (\n selection: string[]\n) => Promise<UpdateResultData[]>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type UpdateSelectCallback = (\n grid: UpdateSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type UpdateSourceType = \"pending\" | \"ignored\" | \"results\";\n\nexport type GridContextMenuCallback = (\n selection: string[],\n grid: \"update\" | \"ignored\" | \"results\"\n) => Promise<void>;\n\nexport type ObjectsContextMenuCallback = (\n source: UpdateSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ConfirmCallback = (data: any) => Promise<boolean>;\n\nexport interface UpdateFromData {\n serverUrl: string;\n kbName: string;\n versionName: string;\n lastFullUpdate: Date;\n}\nexport interface FiltersData {\n pattern: string;\n type: string;\n}\nexport interface UpdateData {\n pendingForUpdate: ModifiedObject[];\n ignoredObjects: ModifiedObject[];\n}\nexport interface ModifiedObject {\n id: string;\n typeIcon: string;\n state?: ObjectState;\n name: string;\n type: string;\n description?: string;\n modifiedOn?: Date;\n status?: string;\n action?: string;\n}\nexport interface UpdateResultData {\n id: string;\n result: ResultState;\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: string;\n description: string;\n notes: string;\n messages: MessageData[];\n}\n\nexport interface MessageData {\n type: \"info\" | \"success\" | \"warning\" | \"error\";\n text: string;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["KB_OBJECT_TYPE","KB_OBJECT","convertObjectDataToTreeItem","objectTypeIcon","objectItems","map","objectItem","id","caption","name","startImgSrc","expanded","leaf","metadata","convertObjectTypeDataToTreeView","objectTypeData","treeData","objectType","items","length","push","icon","createArrayOfItems","objectTypes","objectTypesWithItems","type","filter","object","Object","assign","treeView","deploymentToolCss","CSS_BUNDLES","GxIdeDeploymentTool","_GxIdeDeploymentTool_componentLocale","set","this","_GxIdeDeploymentTool_renderedFirstTime","_GxIdeDeploymentTool_flattenedObjectTypeData","Map","_GxIdeDeploymentTool_currentDeploymentUnitId","_GxIdeDeploymentTool_onlyPackageCheckboxEl","_GxIdeDeploymentTool_targetTypesEl","_GxIdeDeploymentTool_applicationServerEl","_GxIdeDeploymentTool_generatorEl","_GxIdeDeploymentTool_deploymentUnitsEl","_GxIdeDeploymentTool_displayNameEl","_GxIdeDeploymentTool_evaluateObjects","noObjects","_a","treeModel","_GxIdeDeploymentTool_handleGetDeploymentUnitObjectsCallback","async","ev","__classPrivateFieldGet","_GxIdeDeploymentTool_loadDeploymentUnits","call","detail","_GxIdeDeploymentTool_optionsCallbackHandler","newDeploymentUnitId","_GxIdeDeploymentTool_handleCreateDeploymentUnit","__classPrivateFieldSet","objectData","getDeploymentUnitObjectsCallback","addedObjects","allObjectTypes","createDeploymentUnitCallback","deploymentUnitData","deploymentUnits","unshift","comboModelItem","_GxIdeDeploymentTool_getComboModel","model","concat","value","optionsCallback","_GxIdeDeploymentTool_addNewTypesToModel","allTypes","forEach","addedObject","matchingType","find","_GxIdeDeploymentTool_addObjectsCallbackHandler","addObjectsCallback","objects","_GxIdeDeploymentTool_deployCallbackHandler","data","targetId","applicationServerId","displayName","_b","generatorId","_c","onlyPackage","undefined","checkedObjectsIds","deployCallback","allowDeploy","_GxIdeDeploymentTool_handleTargetTypesChange","selectedId","selectedDeployTargetData","targetTypes","targetType","_GxIdeDeploymentTool_objectsTreeCheckedItemsChangedHandler","event","allItemsWithCheckbox","values","checkedItem","item","checked","_GxIdeDeploymentTool_evaluateContentToDisplay","h","isAnimated","stateTitle","main","noObjectsToDisplay","key","stateIconSrc","class","dragDisabled","dropDisabled","toggleCheckboxes","showLines","checkbox","onCheckedItemsChange","baseCollection","obj","_GxIdeDeploymentTool_renderComboSelector","properties","withField","controlId","label","replace","toLowerCase","labelClasses","labelAndComboBox","htmlFor","baseModel","ref","refCallback","onInput","onInputCallback","_GxIdeDeploymentTool_renderHeader","slot","header","objectsToDeploy","el","onClick","addButton","_GxIdeDeploymentTool_renderApplicationServerSelector","applicationServers","applicationServer","_GxIdeDeploymentTool_renderGeneratorSelector","generators","generator","_GxIdeDeploymentTool_renderTargetSelector","src","disabled","canCreatePackage","onlyPackageLabel","part","checkedValue","_GxIdeDeploymentTool_renderDisplayNameInput","_GxIdeDeploymentTool_renderFooter","deployButton","watchTreeModelHandler","newState","watchObjectTypesHandler","_GxIdeDeploymentTool_instances","_GxIdeDeploymentTool_flattenObjectTypes","componentWillLoad","Locale","getComponentStrings","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","_d","_e","description","_f","canDefineDisplayName"],"sources":["src/components/deployment-tool/helpers.ts","src/components/deployment-tool/deployment-tool.scss?tag=gx-ide-deployment-tool&encapsulation=shadow","src/components/deployment-tool/deployment-tool.tsx"],"sourcesContent":["import { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/types\";\nimport { TypedObjectData, ObjectTypeData } from \"./deployment-tool\";\n\nconst KB_OBJECT_TYPE = \"type\";\nexport const KB_OBJECT = \"object\";\n\nconst convertObjectDataToTreeItem = (\n objectTypeIcon: string,\n objectItems: TypedObjectData[]\n) => {\n return objectItems.map(objectItem => ({\n id: objectItem.id,\n caption: objectItem.name,\n startImgSrc: objectTypeIcon,\n expanded: true,\n leaf: true,\n metadata: KB_OBJECT\n }));\n};\n\nexport const convertObjectTypeDataToTreeView = (\n objectTypeData: ObjectTypeDataWithItems[]\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!objectTypeData) {\n return treeData;\n }\n\n for (const objectType of objectTypeData) {\n if (objectType.items.length > 0) {\n treeData.push({\n id: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon,\n expanded: true,\n leaf: false,\n metadata: KB_OBJECT_TYPE,\n items: convertObjectDataToTreeItem(objectType.icon, objectType.items)\n });\n }\n }\n\n return treeData;\n};\n\nexport const createArrayOfItems = (\n objectItems: TypedObjectData[],\n objectTypes: ObjectTypeData[]\n) => {\n // The resulting array with 'items' property added to each type\n const objectTypesWithItems: ObjectTypeDataWithItems[] = objectTypes.map(\n type => {\n // Filter objects that match the current type id\n const items = objectItems.filter(object => object.type === type.id);\n\n // Return a new object type with the 'items' property\n\n return {\n ...type,\n items: items\n };\n }\n );\n const treeView = convertObjectTypeDataToTreeView(objectTypesWithItems);\n return treeView;\n};\n\nexport type ObjectTypeDataWithItems = {\n id: string;\n name: string;\n icon: string;\n items: TypedObjectData[];\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header {\n display: grid;\n padding: var(--gxg-container--padding);\n gap: var(--gx-ide-grid-column-gap);\n grid-template-columns: 1fr auto;\n :nth-child(2) {\n align-self: self-end;\n }\n margin-block-end: var(--gx-ide-grid-row-gap);\n}\n\n// deploy properties\n.deploy-properties {\n display: grid;\n grid-auto-rows: max-content;\n grid-template-columns: max-content 1fr max-content;\n grid-template-areas:\n \"target-types__label target-types__combo-box target-types__button-checkbox-container\"\n \"application-server__label application-server__combo-box .\"\n \". target-type__description .\"\n \"display-name__label display-name__combo-box .\";\n align-items: center;\n column-gap: var(--field__column-gap);\n row-gap: var(--field-group__row-gap);\n border-block-start: var(--section-common-border);\n padding-block-start: var(--mer-spacing--md);\n}\n\n.label.target-types {\n grid-area: target-types__label;\n}\n#target-types {\n grid-area: target-types__combo-box;\n}\n.target-types-button-checkbox-wrapper {\n grid-area: target-types__button-checkbox-container;\n}\n\n.label.application-server {\n grid-area: application-server__label;\n}\n#application-server {\n grid-area: application-server__combo-box;\n}\n\n.target-type__description {\n grid-area: target-type__description;\n}\n\n.label.display-name {\n grid-area: display-name__label;\n}\n#display-name {\n grid-area: display-name__combo-box;\n}\n\n.footer {\n margin-block-start: var(--gx-ide-grid-row-gap);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n\n// Other Libraries\nimport {\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/types\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { createArrayOfItems } from \"./helpers\";\n\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { KB_OBJECT } from \"./helpers\";\nimport {\n ComboBoxItemModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ChComboBoxRenderCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport { ObjectBaseData } from \"../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/icon\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-deployment-tool\",\n styleUrl: \"deployment-tool.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/deployment-tool\"]\n})\nexport class GxIdeDeploymentTool {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #renderedFirstTime = false;\n #flattenedObjectTypeData: Map<string, ObjectTypeData> = new Map();\n #currentDeploymentUnitId: string | undefined;\n\n @Element() el: HTMLGxIdeDeploymentToolElement;\n #onlyPackageCheckboxEl!: HTMLChCheckboxElement;\n #targetTypesEl!: HTMLChComboBoxRenderElement;\n #applicationServerEl!: HTMLChComboBoxRenderElement;\n #generatorEl!: HTMLChComboBoxRenderElement;\n #deploymentUnitsEl!: HTMLChComboBoxRenderElement;\n #displayNameEl!: HTMLChEditElement;\n\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n @State() selectedDeployTargetData: DeployTargetData = null;\n @State() addedObjects: TypedObjectData[] = [];\n @State() allObjectTypes: ObjectTypeData[];\n @State() treeModel: TreeViewItemModel[] = [];\n @State() allowDeploy: boolean = true;\n @Watch(\"treeModel\")\n watchTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n }\n\n /**\n * Available deployment units list\n */\n @Prop() readonly deploymentUnits: ObjectBaseData[];\n\n /**\n * Available target types list\n */\n @Prop() readonly targetTypes: DeployTargetData[];\n\n /**\n * Defines id for new deployment unit option\n */\n @Prop() readonly newDeploymentUnitId: string;\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectTypeData[];\n @Watch(\"objectTypes\")\n watchObjectTypesHandler(newState: ObjectTypeData[]) {\n this.#flattenObjectTypes(newState);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop()\n readonly getDeploymentUnitObjectsCallback: GetDeploymentUnitObjectsCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n * Callback invoked when user wants to start deploy process\n */\n @Prop() readonly deployCallback: DeployCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback: AddObjectsCallback;\n\n /**\n * Callback invoked when the user wants to create a deployment unit.\n */\n @Prop() readonly createDeploymentUnitCallback: CreateDeploymentUnitCallback;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedDeployTargetData = this.targetTypes[0];\n this.allObjectTypes = [...this.objectTypes];\n this.#evaluateObjects();\n this.#flattenObjectTypes(this.allObjectTypes);\n if (this.deploymentUnits.length > 0) {\n this.#loadDeploymentUnits(this.deploymentUnits[0].id);\n\n if (this.targetTypes.length > 0 && this.optionsCallback) {\n this.optionsCallback(\n this.deploymentUnits[0].id,\n this.targetTypes[0].id\n );\n }\n }\n }\n\n componentDidRender() {\n if (!this.#renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this.#componentLocale.componentName\n );\n this.#renderedFirstTime = true;\n }\n }\n\n #evaluateObjects = () => {\n this.noObjects = !!(this.treeModel?.length === 0 || !this.treeModel);\n };\n\n #handleGetDeploymentUnitObjectsCallback = async (ev: any) => {\n await this.#loadDeploymentUnits(ev.detail);\n this.#optionsCallbackHandler();\n };\n\n #loadDeploymentUnits = async (id: string) => {\n if (id === this.newDeploymentUnitId) {\n await this.#handleCreateDeploymentUnit();\n return;\n }\n\n this.#currentDeploymentUnitId = id;\n\n const objectData = await this.getDeploymentUnitObjectsCallback(id);\n this.addedObjects = [...objectData];\n this.treeModel = createArrayOfItems(this.addedObjects, this.allObjectTypes);\n };\n\n #handleCreateDeploymentUnit = async () => {\n if (this.createDeploymentUnitCallback) {\n const deploymentUnitData = await this.createDeploymentUnitCallback();\n if (!deploymentUnitData) {\n return;\n }\n\n // Update deployment units:\n this.deploymentUnits.unshift(deploymentUnitData);\n\n // Update combo:\n const comboModelItem = this.#getComboModel([deploymentUnitData]);\n this.#deploymentUnitsEl.model = comboModelItem.concat(\n this.#deploymentUnitsEl.model\n );\n this.#deploymentUnitsEl.value = deploymentUnitData.id;\n\n // Trigger selection callback:\n await this.#loadDeploymentUnits(deploymentUnitData.id);\n }\n };\n\n #optionsCallbackHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback(\n this.#deploymentUnitsEl.value,\n this.#targetTypesEl.value\n );\n }\n };\n\n #addNewTypesToModel = () => {\n const allTypes: ObjectTypeData[] = [...this.allObjectTypes];\n\n this.addedObjects.forEach(addedObject => {\n const matchingType = this.allObjectTypes.find(\n objectType => objectType.id === addedObject.type\n );\n\n if (!matchingType) {\n allTypes.push({\n id: addedObject.type,\n name: addedObject.type,\n icon: \"\"\n });\n }\n });\n this.allObjectTypes = [...allTypes];\n };\n\n #addObjectsCallbackHandler = async () => {\n if (this.addObjectsCallback) {\n const objects: TypedObjectData[] = await this.addObjectsCallback();\n this.addedObjects = [...objects, ...this.addedObjects];\n\n this.#addNewTypesToModel();\n this.treeModel = createArrayOfItems(\n this.addedObjects,\n this.allObjectTypes\n );\n }\n };\n\n #deployCallbackHandler = async () => {\n const data: DeployData = {\n targetId: this.#targetTypesEl.value,\n applicationServerId: this.#applicationServerEl?.value,\n displayName: this.#displayNameEl?.value,\n generatorId: this.#generatorEl?.value,\n onlyPackage: this.#onlyPackageCheckboxEl\n ? this.#onlyPackageCheckboxEl.value === \"true\"\n : undefined,\n objects: this.checkedObjectsIds\n };\n\n if (this.deployCallback) {\n this.allowDeploy = false;\n await this.deployCallback(data);\n this.allowDeploy = true;\n }\n };\n\n #handleTargetTypesChange = (ev: any) => {\n const selectedId = ev.detail;\n\n this.selectedDeployTargetData =\n this.targetTypes.find(targetType => targetType.id === selectedId) || null;\n\n this.#optionsCallbackHandler();\n };\n\n #flattenObjectTypes(newState: ObjectTypeData[]) {\n newState.forEach(objectType => {\n this.#flattenedObjectTypeData.set(objectType.id, objectType);\n });\n }\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItemsWithCheckbox = [...event.detail.values()];\n\n this.checkedObjectsIds = allItemsWithCheckbox\n .filter(\n checkedItem =>\n checkedItem.item.checked && checkedItem.item.metadata === KB_OBJECT\n )\n .map(checkedItem => checkedItem.item.id);\n };\n\n #evaluateContentToDisplay = () => {\n if (this.noObjects) {\n return (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={this.#componentLocale.main.noObjectsToDisplay}\n key=\"no-objects-empty-state\"\n stateIconSrc=\"objects/object\"\n ></gx-ide-empty-state>\n );\n }\n\n return (\n <ch-tree-view-render\n class=\"tree-view\"\n model={this.treeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n showLines=\"last\"\n checked={true}\n checkbox={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n />\n );\n };\n\n #getComboModel = (baseCollection: ObjectBaseData[]): ComboBoxModel => {\n return baseCollection.map(\n obj =>\n ({\n caption: obj.name,\n value: obj.id\n } as ComboBoxItemModel)\n );\n };\n\n #renderComboSelector = (\n properties: ComboSelectorProperties,\n withField: boolean = false\n ) => {\n const controlId = properties.label.replace(/ /g, \"-\").toLowerCase();\n const labelClasses = `label ${controlId}`;\n const labelAndComboBox = [\n <label class={labelClasses} htmlFor={controlId}>\n {properties.label}\n </label>,\n <ch-combo-box-render\n class=\"combo-box\"\n value={\n properties.value ? properties.value : properties.baseModel[0]?.id\n }\n model={this.#getComboModel(properties.baseModel)}\n id={controlId}\n ref={properties.refCallback}\n onInput={properties.onInputCallback}\n />\n ];\n return withField ? (\n <div class=\"field field-inline\">{labelAndComboBox}</div>\n ) : (\n labelAndComboBox\n );\n };\n\n #renderHeader = () => {\n return (\n <div slot=\"header\" class=\"header control-header-with-border\">\n {this.#renderComboSelector(\n {\n id: \"deploymentUnits\",\n baseModel: this.deploymentUnits,\n label: this.#componentLocale.header.objectsToDeploy,\n value: this.#currentDeploymentUnitId,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#deploymentUnitsEl = el as HTMLChComboBoxRenderElement;\n },\n onInputCallback: this.#handleGetDeploymentUnitObjectsCallback\n },\n true\n )}\n\n <button\n class=\"button-primary\"\n onClick={this.#addObjectsCallbackHandler}\n >\n {this.#componentLocale.main.addButton}\n </button>\n </div>\n );\n };\n\n #renderApplicationServerSelector = () => {\n return this.#renderComboSelector({\n id: \"application-servers\",\n baseModel: this.selectedDeployTargetData?.applicationServers,\n label: this.#componentLocale.main.applicationServer,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#applicationServerEl = el as HTMLChComboBoxRenderElement;\n }\n });\n };\n\n #renderGeneratorSelector = () => {\n return this.#renderComboSelector({\n id: \"generator\",\n baseModel: this.selectedDeployTargetData?.generators,\n label: this.#componentLocale.main.generator,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#generatorEl = el as HTMLChComboBoxRenderElement;\n }\n });\n };\n\n #renderTargetSelector = () => {\n return [\n this.#renderComboSelector({\n id: \"targetTypes\",\n baseModel: this.targetTypes,\n label: this.#componentLocale.main.targetTypes,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#targetTypesEl = el as HTMLChComboBoxRenderElement;\n },\n onInputCallback: this.#handleTargetTypesChange\n }),\n <div class=\"target-types-button-checkbox-wrapper buttons-spacer\">\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#optionsCallbackHandler}\n >\n <ch-image class=\"icon-md\" src=\"system/settings/primary\" />\n </button>\n <ch-checkbox\n disabled={!this.selectedDeployTargetData?.canCreatePackage}\n class=\"checkbox\"\n caption={this.#componentLocale.main.onlyPackageLabel}\n part=\"only-package-checkbox\"\n checkedValue=\"true\"\n value=\"false\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#onlyPackageCheckboxEl = el as HTMLChCheckboxElement)\n }\n />\n </div>\n ];\n };\n\n #renderDisplayNameInput = () => {\n return [\n <label class=\"label display-name\" htmlFor=\"display-name\">\n {this.#componentLocale.main.displayName}\n </label>,\n <ch-edit\n class=\"input\"\n id=\"display-name\"\n ref={(el: HTMLChEditElement) => {\n if (el) {\n this.#displayNameEl = el;\n }\n }}\n />\n ];\n };\n\n #renderFooter = () => {\n return (\n <div slot=\"footer-end\" class=\"footer control-footer-with-border\">\n <button\n class=\"button-primary\"\n onClick={this.#deployCallbackHandler}\n disabled={!this.allowDeploy}\n >\n {this.#componentLocale.main.deployButton}\n </button>\n </div>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget spacing-body\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n {this.#renderHeader()}\n\n <div class=\"container-wrapper\">{this.#evaluateContentToDisplay()}</div>\n <div class=\"deploy-properties\">\n {this.#renderTargetSelector()}\n\n {this.selectedDeployTargetData?.applicationServers?.length > 0\n ? this.#renderApplicationServerSelector()\n : []}\n\n {this.selectedDeployTargetData?.generators?.length > 0\n ? this.#renderGeneratorSelector()\n : []}\n\n <p class=\"body-italic-s target-type__description\">\n {this.selectedDeployTargetData?.description}\n </p>\n\n {this.selectedDeployTargetData?.canDefineDisplayName\n ? this.#renderDisplayNameInput()\n : []}\n </div>\n\n {this.#renderFooter()}\n </Host>\n );\n }\n}\n\ntype ComboSelectorProperties = {\n class?: string;\n id: string;\n baseModel: ObjectBaseData[];\n value?: string;\n label: string;\n refCallback: (el: HTMLChComboBoxRenderElement) => void;\n onInputCallback?: ((event: ChComboBoxRenderCustomEvent<string>) => void) &\n ((event: InputEvent) => void);\n};\n\nexport type AddObjectsCallback = () => Promise<TypedObjectData[]>;\nexport type OptionsCallback = (\n delpoymentUnitId: string,\n targetId: string\n) => Promise<void>;\nexport type GetDeploymentUnitObjectsCallback = (\n id: string\n) => Promise<TypedObjectData[]>;\n\nexport type DeployCallback = (data: DeployData) => Promise<boolean>;\n\nexport type CreateDeploymentUnitCallback = () => Promise<\n ObjectBaseData | undefined\n>;\n\nexport type ObjectTypeData = ObjectBaseData & {\n icon: string;\n};\n\nexport type DeployTargetData = ObjectBaseData & {\n canCreatePackage: boolean;\n canDefineDisplayName: boolean;\n applicationServers: ObjectBaseData[];\n generators: ObjectBaseData[];\n description: string;\n};\n\nexport type TypedObjectData = ObjectBaseData & {\n type: string;\n};\n\nexport type DeployData = {\n targetId: string;\n applicationServerId?: string;\n displayName?: string;\n generatorId?: string;\n onlyPackage: boolean;\n objects: string[];\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ACTIVE_ITEM_DEFAULT_ICON","getIconPath","category","name","colorType","convertItemsNodeListToFlattenedTreeViewModel","itemsList","checkboxType","itemsListFlattenedTreeViewModel","processNode","item","startImgSrc","active","iconStart","leaf","_a","nodes","length","checkbox","metaData","JSON","stringify","versionType","type","push","caption","checked","endImgSrc","iconEnd","expanded","id","toString","items","metadata","parts","selected","forEach","childNode","convertItemsListToTreeViewModel","itemsListTreeViewModel","order","parseInt","findItemNode","itemNode","result","findItemInArray","itemsNodes","setAllLeafsCheckedFalse","uncheck","unselectAllNodes","unselect","checkItems","idsChecked","itemFind","expandItems","selectItems","idsSelected","searchInNode","node","parents","searchParentsItems","ids","rootItem","results","findFirstActiveNode","findActiveWithPath","nodeList","currentPath","nodePath","path","selectKbItemsCss","CSS_BUNDLES","SYSTEM_SEARCH_ICON","VIEW_AS_TREE_ID","VIEW_AS_LIST_ID","TOGGLE_CHECKBOXES_CHECKED_VALUE","GxIdeSelectKbItems","_GxIdeSelectKbItems__componentLocale","set","this","_GxIdeSelectKbItems_checkedNodesIds","_GxIdeSelectKbItems_chShortcutsEl","_GxIdeSelectKbItems_selectedNodesIds","_GxIdeSelectKbItems_shortcutsSrc","getAssetPath","_GxIdeSelectKbItems_updatedModelList","_GxIdeSelectKbItems_viewItemsAsModel","_GxIdeSelectKbItems_treeViewRenderEl","_GxIdeSelectKbItems_cancelHandler","cancelCallback","_GxIdeSelectKbItems_checkedItemsChangeHandler","async","e","checkedNodesIds","detail","__classPrivateFieldSet","__classPrivateFieldGet","checkedChanged","_GxIdeSelectKbItems_confirmHandler","confirmCallback","_GxIdeSelectKbItems_contextMenuHandler","itemContextMenuCallback","info","isSelected","find","updateItemsProperties","clientX","contextmenuEvent","clientY","selection","_GxIdeSelectKbItems_executeDialogAction","callback","_GxIdeSelectKbItems_patternSearchValueChangedHandler","event","searchPatternValue","_GxIdeSelectKbItems_renderActionButtons","h","dialogActions","map","action","class","part","onClick","call","disabled","loading","_GxIdeSelectKbItems_renderFooter","footer","cancel","select","_GxIdeSelectKbItems_selectedItemsChangeHandler","selectedNodesIds","selectionChanged","_GxIdeSelectKbItems_toggleAndSelectNodesInModelItems","selectedItemsIds","nodesToToggle","newItemsSelected","newItemsExpanded","_GxIdeSelectKbItems_updateViews","_GxIdeSelectKbItems_toggleCheckedNodesInModelItems","newItemsList","nodeVersionsListTreeModel","nodeListFlattenedTreeModel","_GxIdeSelectKbItems_viewItemsAsChangedHandler","selectedViewType","nodesVersionsViewType","_GxIdeSelectKbItems_toggleCheckboxesChangedHandler","toggleCheckboxes","_GxIdeSelectKbItems_scrollIntoActiveVersionNode","doScrollIntoView","activeItemNode","scrollIntoVisible","activeItemCallback","watchNodeListHandler","componentWillLoad","Locale","getComponentStrings","el","value","main","tree","suspendShortcuts","suspend","updateSelection","render","Host","model","src","ref","htmlFor","onChange","checkedValue","onInput","placeholder","header","searchPatternPlaceholder","containerRef","activeItem","loaderTitle","loader","title","show","expandableButton","onItemContextmenu","onCheckedItemsChange","onSelectedItemsChange","expandOnClick","multiSelection","filter","filterType"],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n",":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header.has-active-item {\n grid-area: header;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-areas:\n \"view-mode view-mode\"\n \"pattern-filter active-item\";\n grid-template-columns: minmax(150px, 350px) max-content;\n --field-group__column-gap: var(\n --mer-spacing--md\n ); // WA: OVerriding this variable is not a good approeach to reduce the gap.TODO: Think about the right solution.\n}\n.view-mode__toggle-checkboxes {\n grid-area: view-mode;\n}\n.pattern-filter {\n grid-area: pattern-filter;\n max-inline-size: 350px;\n}\n\n.active-item {\n grid-area: active-item;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.active-item {\n &__icon-container {\n display: contents;\n }\n &__icon {\n pointer-events: none; // We do not want the icon to change the colors, since the clickable area is the caption only\n }\n &__link {\n text-decoration: underline;\n // TODO: There should be a class in Merucry to apply link styles\n color: var(--mer-text__primary);\n cursor: pointer;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n }\n}\n\n.view-mode__toggle-checkboxes {\n grid-template-columns: max-content max-content;\n}\n.field__items-view-type {\n align-items: center;\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n.field__toggle-checkboxes {\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n\n.trees {\n position: relative;\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #checkedNodesIds: string[] = [];\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean = true;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n if (newItemsList.length > 0) {\n this.loading = false;\n }\n this.#updateViews(newItemsList);\n\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.watchNodeListHandler(this.itemsList);\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.#checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.#checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.#checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.#checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.#checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.#checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header class=\"header control-header field-group spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group view-mode__toggle-checkboxes\">\n <div class=\"field field-inline field__items-view-type\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && (\n <div class=\"field field-inline field__toggle-checkboxes\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <ch-edit\n class=\"input pattern-filter\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n ></ch-edit>\n {this.activeItemNode && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart || ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {(this.dialogActions.length > 0 ||\n this.cancelCallback ||\n this.confirmCallback) &&\n this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"mappings":"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"}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { r as e, h as t, H as s, a as i } from "./p-25a9f1d7.js";
|
|
2
|
-
|
|
3
|
-
import { L as n } from "./p-311eedf3.js";
|
|
4
|
-
|
|
5
|
-
const o = ":host{display:grid;block-size:100%;grid-template-rows:1fr max-content}.field-group{grid-auto-rows:max-content}.main{overflow:auto}.section{display:contents}";
|
|
6
|
-
|
|
7
|
-
var a = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, n) {
|
|
8
|
-
if (i === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (i === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof t === "function" ? e !== t || !n : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return i === "a" ? n.call(e, s) : n ? n.value = s : t.set(e, s), s;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
var r = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
|
|
15
|
-
if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
16
|
-
if (typeof t === "function" ? e !== t || !i : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
17
|
-
return s === "m" ? i : s === "a" ? i.call(e) : i ? i.value : t.get(e);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
var c, d, l, h, f, u;
|
|
21
|
-
|
|
22
|
-
const p = [ "resets/box-sizing", "utils/form", "utils/spacing", "utils/layout", "chameleon/scrollbar", "components/checkbox", "components/button", "components/edit" ];
|
|
23
|
-
|
|
24
|
-
// ch-checkbox
|
|
25
|
-
const w = "on";
|
|
26
|
-
|
|
27
|
-
const v = "set-new-version-as-active";
|
|
28
|
-
|
|
29
|
-
const m = class {
|
|
30
|
-
constructor(t) {
|
|
31
|
-
e(this, t);
|
|
32
|
-
/**
|
|
33
|
-
* The component hard-coded strings translations.
|
|
34
|
-
*/
|
|
35
|
-
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
36
|
-
c.set(this, void 0);
|
|
37
|
-
d.set(this, (e => {
|
|
38
|
-
const t = e.target;
|
|
39
|
-
if (t.id === v) {
|
|
40
|
-
this.setNewVersionAsActive = e.detail === w;
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
l.set(this, (e => {
|
|
44
|
-
this.versionName = e.detail;
|
|
45
|
-
}));
|
|
46
|
-
h.set(this, (e => {
|
|
47
|
-
this.versionDescription = e.detail;
|
|
48
|
-
}));
|
|
49
|
-
f.set(this, (async () => {
|
|
50
|
-
this.cancelCallback();
|
|
51
|
-
}));
|
|
52
|
-
u.set(this, (async () => {
|
|
53
|
-
const e = {
|
|
54
|
-
versionName: this.versionName,
|
|
55
|
-
versionDescription: this.versionDescription,
|
|
56
|
-
setNewVersionAsActive: this.setNewVersionAsActive
|
|
57
|
-
};
|
|
58
|
-
this.createCallback(e);
|
|
59
|
-
}));
|
|
60
|
-
this.versionName = undefined;
|
|
61
|
-
this.versionDescription = undefined;
|
|
62
|
-
this.setNewVersionAsActive = false;
|
|
63
|
-
this.cancelCallback = undefined;
|
|
64
|
-
this.createCallback = undefined;
|
|
65
|
-
this.defaultInputValues = undefined;
|
|
66
|
-
}
|
|
67
|
-
defaultInputValuesChanged(e) {
|
|
68
|
-
this.versionName = e === null || e === void 0 ? void 0 : e.versionName;
|
|
69
|
-
this.versionDescription = e === null || e === void 0 ? void 0 : e.versionDescription;
|
|
70
|
-
}
|
|
71
|
-
async componentWillLoad() {
|
|
72
|
-
a(this, c, await n.getComponentStrings(this.el), "f");
|
|
73
|
-
this.defaultInputValuesChanged(this.defaultInputValues);
|
|
74
|
-
}
|
|
75
|
-
render() {
|
|
76
|
-
const e = !this.versionName || this.versionName.length === 0;
|
|
77
|
-
return t(s, {
|
|
78
|
-
class: "widget"
|
|
79
|
-
}, t("ch-theme", {
|
|
80
|
-
model: p
|
|
81
|
-
}), t("section", {
|
|
82
|
-
class: "section"
|
|
83
|
-
}, t("div", {
|
|
84
|
-
class: "main scrollable field-group spacing-body"
|
|
85
|
-
}, t("div", {
|
|
86
|
-
class: "field field-block"
|
|
87
|
-
}, t("label", {
|
|
88
|
-
class: "label",
|
|
89
|
-
htmlFor: "version-name"
|
|
90
|
-
}, r(this, c, "f").labels.name), t("ch-edit", {
|
|
91
|
-
type: "text",
|
|
92
|
-
id: "version-name",
|
|
93
|
-
class: "input",
|
|
94
|
-
placeholder: r(this, c, "f").placeHolders.name,
|
|
95
|
-
value: this.versionName,
|
|
96
|
-
onInput: r(this, l, "f")
|
|
97
|
-
})), t("div", {
|
|
98
|
-
class: "field field-block"
|
|
99
|
-
}, t("label", {
|
|
100
|
-
class: "label",
|
|
101
|
-
htmlFor: "version-description"
|
|
102
|
-
}, r(this, c, "f").labels.description), t("ch-edit", {
|
|
103
|
-
type: "text",
|
|
104
|
-
id: "version-description",
|
|
105
|
-
class: "input",
|
|
106
|
-
placeholder: r(this, c, "f").placeHolders.description,
|
|
107
|
-
value: this.versionDescription,
|
|
108
|
-
onInput: r(this, h, "f")
|
|
109
|
-
})), t("div", {
|
|
110
|
-
class: "field field-inline"
|
|
111
|
-
}, t("ch-checkbox", {
|
|
112
|
-
class: "checkbox",
|
|
113
|
-
id: "set-new-version-as-active",
|
|
114
|
-
checkedValue: w,
|
|
115
|
-
onInput: r(this, d, "f"),
|
|
116
|
-
caption: r(this, c, "f").labels.setActive
|
|
117
|
-
}))), t("footer", {
|
|
118
|
-
class: "control-footer-with-border spacing-body"
|
|
119
|
-
}, t("div", {
|
|
120
|
-
class: "buttons-spacer"
|
|
121
|
-
}, t("button", {
|
|
122
|
-
class: "button-secondary",
|
|
123
|
-
onClick: r(this, f, "f")
|
|
124
|
-
}, r(this, c, "f").buttons.cancel), t("button", {
|
|
125
|
-
class: "button-primary",
|
|
126
|
-
onClick: r(this, u, "f"),
|
|
127
|
-
disabled: e
|
|
128
|
-
}, r(this, c, "f").buttons.create)))));
|
|
129
|
-
}
|
|
130
|
-
static get assetsDirs() {
|
|
131
|
-
return [ "gx-ide-assets/new-version" ];
|
|
132
|
-
}
|
|
133
|
-
get el() {
|
|
134
|
-
return i(this);
|
|
135
|
-
}
|
|
136
|
-
static get watchers() {
|
|
137
|
-
return {
|
|
138
|
-
defaultInputValues: [ "defaultInputValuesChanged" ]
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
c = new WeakMap, d = new WeakMap, l = new WeakMap, h = new WeakMap, f = new WeakMap,
|
|
144
|
-
u = new WeakMap;
|
|
145
|
-
|
|
146
|
-
m.style = o;
|
|
147
|
-
|
|
148
|
-
export { m as gx_ide_new_version };
|
|
149
|
-
//# sourceMappingURL=p-c91af626.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["newVersionCss","CSS_BUNDLES","CHECKED_VALUE","SET_NEW_VERSION_AS_ACTIVE_ID","GxIdeNewVersion","_GxIdeNewVersion_componentLocale","set","this","_GxIdeNewVersion_handleCheckBoxValueChange","event","target","id","setNewVersionAsActive","detail","_GxIdeNewVersion_handleNameValueChange","versionName","_GxIdeNewVersion_handleDescriptionValueChange","versionDescription","_GxIdeNewVersion_cancelClickHandler","async","cancelCallback","_GxIdeNewVersion_createClickHandler","newVersionData","createCallback","defaultInputValuesChanged","newDefaultInputValues","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","defaultInputValues","render","createButtonDisabled","length","h","Host","class","model","htmlFor","__classPrivateFieldGet","labels","name","type","placeholder","placeHolders","value","onInput","description","checkedValue","caption","setActive","onClick","buttons","cancel","disabled","create"],"sources":["src/components/new-version/new-version.scss?tag=gx-ide-new-version&encapsulation=shadow","src/components/new-version/new-version.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.field-group {\n grid-auto-rows: max-content;\n}\n\n.main {\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n","import { Component, Host, Prop, Element, State, h, Watch } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ChCheckboxCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/spacing\",\n \"utils/layout\",\n \"chameleon/scrollbar\",\n \"components/checkbox\",\n \"components/button\",\n \"components/edit\"\n];\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\nconst SET_NEW_VERSION_AS_ACTIVE_ID = \"set-new-version-as-active\";\n\n@Component({\n tag: \"gx-ide-new-version\",\n styleUrl: \"new-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-version\"]\n})\nexport class GxIdeNewVersion {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewVersionElement;\n\n /**\n * The version selected name\n */\n @State() versionName: string;\n\n /**\n * The version selected description\n */\n @State() versionDescription: string;\n\n /**\n * Checkbox value to set the new version as active\n */\n @State() setNewVersionAsActive: boolean = false;\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create' button is pressed.\n */\n @Prop() readonly createCallback: (\n newVersionData: NewVersionData\n ) => Promise<void>;\n\n /**\n * This property is used to set the initial values of the input fields when the component is loaded.\n */\n @Prop() readonly defaultInputValues: NewVersionData;\n @Watch(\"defaultInputValues\")\n defaultInputValuesChanged(newDefaultInputValues: NewVersionData) {\n this.versionName = newDefaultInputValues?.versionName;\n this.versionDescription = newDefaultInputValues?.versionDescription;\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.defaultInputValuesChanged(this.defaultInputValues);\n }\n\n #handleCheckBoxValueChange = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n const target = event.target as HTMLInputElement;\n if (target.id === SET_NEW_VERSION_AS_ACTIVE_ID) {\n this.setNewVersionAsActive = event.detail === CHECKED_VALUE;\n }\n };\n\n #handleNameValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionName = event.detail as string;\n };\n\n #handleDescriptionValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionDescription = event.detail as string;\n };\n\n #cancelClickHandler = async () => {\n this.cancelCallback();\n };\n\n #createClickHandler = async () => {\n const newVersionData: NewVersionData = {\n versionName: this.versionName,\n versionDescription: this.versionDescription,\n setNewVersionAsActive: this.setNewVersionAsActive\n };\n this.createCallback(newVersionData);\n };\n\n render() {\n const createButtonDisabled =\n !this.versionName || this.versionName.length === 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <div class=\"main scrollable field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-name\">\n {this.#componentLocale.labels.name}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-name\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.name}\n value={this.versionName}\n onInput={this.#handleNameValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-description\">\n {this.#componentLocale.labels.description}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-description\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.description}\n value={this.versionDescription}\n onInput={this.#handleDescriptionValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-inline\">\n <ch-checkbox\n class=\"checkbox\"\n id=\"set-new-version-as-active\"\n checkedValue={CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n caption={this.#componentLocale.labels.setActive}\n ></ch-checkbox>\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.buttons.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n onClick={this.#createClickHandler}\n disabled={createButtonDisabled}\n >\n {this.#componentLocale.buttons.create}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NewVersionData = {\n versionName: string;\n versionDescription: string;\n setNewVersionAsActive?: boolean;\n};\n"],"mappings":";;;;AAAA,MAAMA,IAAgB;;;;;;;;;;;;;;;;;ACMtB,MAAMC,IAA8B,EAClC,qBACA,cACA,iBACA,gBACA,uBACA,uBACA,qBACA;;cAIF;MAAMC,IAAgB;;AACtB,MAAMC,IAA+B;;MAQxBC,IAAe;;;;;;;QAK1BC,EAAAC,IAAAC,WAAA;IA8CAC,EAAAF,IAAAC,OACEE;MAEA,MAAMC,IAASD,EAAMC;MACrB,IAAIA,EAAOC,OAAOR,GAA8B;QAC9CI,KAAKK,wBAAwBH,EAAMI,WAAWX;;;IAIlDY,EAAAR,IAAAC,OAA0BE;MACxBF,KAAKQ,cAAcN,EAAMI;AAAgB;IAG3CG,EAAAV,IAAAC,OAAiCE;MAC/BF,KAAKU,qBAAqBR,EAAMI;AAAgB;IAGlDK,EAAAZ,IAAAC,OAAsBY;MACpBZ,KAAKa;AAAgB;IAGvBC,EAAAf,IAAAC,OAAsBY;MACpB,MAAMG,IAAiC;QACrCP,aAAaR,KAAKQ;QAClBE,oBAAoBV,KAAKU;QACzBL,uBAAuBL,KAAKK;;MAE9BL,KAAKgB,eAAeD;AAAe;;;iCAxDK;;;;;EAmB1C,yBAAAE,CAA0BC;IACxBlB,KAAKQ,cAAcU,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBV;IAC1CR,KAAKU,qBAAqBQ,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBR;;EAGnD,uBAAMS;IACJC,EAAApB,MAAIF,SAA0BuB,EAAOC,oBAAoBtB,KAAKuB,KAAG;IACjEvB,KAAKiB,0BAA0BjB,KAAKwB;;EAiCtC,MAAAC;IACE,MAAMC,KACH1B,KAAKQ,eAAeR,KAAKQ,YAAYmB,WAAW;IAEnD,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOrC;QACjBkC,EAAA;MAASE,OAAM;OACbF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOC,OAEhCP,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaH;MAChDI,OAAOvC,KAAKQ;MACZgC,SAASP,EAAAjC,MAAIO,GAAA;SAGjBqB,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOO,cAEhCb,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaG;MAChDF,OAAOvC,KAAKU;MACZ8B,SAASP,EAAAjC,MAAIS,GAAA;SAGjBmB,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACN1B,IAAG;MACHsC,cAAc/C;MACd6C,SAASP,EAAAjC,MAAIC,GAAA;MACb0C,SAASV,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOU;UAK5ChB,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIW,GAAA;OAEZsB,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQC,SAGjCnB,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIc,GAAA;MACbkC,UAAUtB;OAETO,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQG"}
|