@genexus/genexus-ide-ui 1.1.20 → 1.1.22
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-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +52 -37
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +6 -9
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +345 -177
- 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 +13 -36
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +17 -13
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-30f109a4.js → helpers-b30b36b4.js} +2 -2
- package/dist/cjs/{helpers-30f109a4.js.map → helpers-b30b36b4.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/utilities-6118dc24.js +78 -0
- package/dist/cjs/utilities-6118dc24.js.map +1 -0
- package/dist/collection/common/helpers.js +1 -1
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.css +6 -6
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js +5 -8
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +48 -665
- package/dist/collection/components/team-dev/commit/commit.js +407 -251
- package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +20 -3
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +20 -3
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -3
- package/dist/collection/components/team-dev/commit/helpers.js +10 -0
- package/dist/collection/components/team-dev/commit/helpers.js.map +1 -0
- package/dist/collection/components/team-dev/common/types.js +2 -0
- package/dist/collection/components/team-dev/common/types.js.map +1 -0
- package/dist/collection/components/team-dev/common/utilities.js +67 -0
- package/dist/collection/components/team-dev/common/utilities.js.map +1 -0
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +1 -1
- package/dist/collection/components/team-dev/history/history.css +6 -0
- package/dist/collection/components/team-dev/history/history.js +11 -34
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +3 -2
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +3 -2
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +3 -2
- package/dist/collection/components/team-dev/share-kb/share-kb.css +10 -0
- package/dist/collection/components/team-dev/share-kb/share-kb.js +51 -36
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/collection/components/team-dev/update/update.js +4 -10
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +52 -37
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +6 -9
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +369 -191
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +12 -35
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +16 -12
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/helpers.js +1 -1
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/utilities.js +75 -0
- package/dist/components/utilities.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +52 -37
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +6 -9
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +345 -177
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +13 -36
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +17 -13
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/{helpers-10479d69.js → helpers-a4f16ffb.js} +2 -2
- package/dist/esm/{helpers-10479d69.js.map → helpers-a4f16ffb.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/utilities-6fdb43e4.js +75 -0
- package/dist/esm/utilities-6fdb43e4.js.map +1 -0
- 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/create-kb-from-server/langs/create-kb-from-server.lang.en.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +3 -2
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +3 -2
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +3 -2
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +20 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +20 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -3
- package/dist/genexus-ide-ui/{p-b465f29d.entry.js → p-012cfb1d.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-0f8a8202.js +87 -0
- package/dist/genexus-ide-ui/p-0f8a8202.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3b5a4e2e.entry.js → p-11b8f81d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-82878950.entry.js → p-19d197c5.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-667965d3.entry.js → p-72b5d3e4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-74a0cb25.entry.js → p-810ad95f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ac131847.entry.js → p-863ef4de.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3fbc5a02.entry.js → p-884e0ed9.entry.js} +97 -104
- package/dist/genexus-ide-ui/p-884e0ed9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9ddea83b.js → p-957046fd.js} +2 -2
- package/dist/genexus-ide-ui/p-957046fd.js.map +1 -0
- package/dist/genexus-ide-ui/p-ca706700.entry.js +484 -0
- package/dist/genexus-ide-ui/p-ca706700.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-d4ef0c35.entry.js +683 -0
- package/dist/genexus-ide-ui/p-d4ef0c35.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-ea02e5cf.entry.js +266 -0
- package/dist/genexus-ide-ui/p-ea02e5cf.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-75a5c51f.entry.js → p-fa52a417.entry.js} +153 -149
- package/dist/genexus-ide-ui/p-fa52a417.entry.js.map +1 -0
- package/dist/types/common/types.d.ts +0 -1
- package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +1 -4
- package/dist/types/components/team-dev/commit/commit.d.ts +53 -70
- package/dist/types/components/team-dev/commit/helpers.d.ts +4 -0
- package/dist/types/components/team-dev/common/types.d.ts +1 -0
- package/dist/types/components/team-dev/common/utilities.d.ts +25 -0
- package/dist/types/components/team-dev/history/history.d.ts +1 -1
- package/dist/types/components/team-dev/share-kb/share-kb.d.ts +3 -1
- package/dist/types/components/team-dev/update/update.d.ts +2 -1
- package/dist/types/components.d.ts +7 -15
- package/package.json +1 -1
- package/dist/cjs/render-combo-items-e774f796.js +0 -18
- package/dist/cjs/render-combo-items-e774f796.js.map +0 -1
- package/dist/components/render-combo-items.js +0 -16
- package/dist/components/render-combo-items.js.map +0 -1
- package/dist/esm/render-combo-items-e9c8df5e.js +0 -16
- package/dist/esm/render-combo-items-e9c8df5e.js.map +0 -1
- package/dist/genexus-ide-ui/p-34fd4875.entry.js +0 -573
- package/dist/genexus-ide-ui/p-34fd4875.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3fbc5a02.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-60e39b2f.entry.js +0 -541
- package/dist/genexus-ide-ui/p-60e39b2f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-72e346b9.entry.js +0 -249
- package/dist/genexus-ide-ui/p-72e346b9.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-75a5c51f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
- package/dist/genexus-ide-ui/p-f549f6e1.js +0 -17
- package/dist/genexus-ide-ui/p-f549f6e1.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-b465f29d.entry.js.map → p-012cfb1d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3b5a4e2e.entry.js.map → p-11b8f81d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-82878950.entry.js.map → p-19d197c5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-667965d3.entry.js.map → p-72b5d3e4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-74a0cb25.entry.js.map → p-810ad95f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ac131847.entry.js.map → p-863ef4de.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","mapGxOptionsToComboBoxItemModel","categoryModel","category","label","commitCss","FILTER_ICON","getIconPath","colorType","FILTER_ICON_EMPTY","FILTER_WITH_CONDITIONS_ICON","RESET_ICON","ALL_OPTION","CSS_BUNDLES","GxIdeTeamDevCommit","_GxIdeTeamDevCommit_componentLocale","set","this","_GxIdeTeamDevCommit_loadDataCalledFirstTime","_GxIdeTeamDevCommit_renderedFirstTime","_GxIdeTeamDevCommit_commitsTabModel","_GxIdeTeamDevCommit_categoriesEl","_GxIdeTeamDevCommit_changeSetEl","_GxIdeTeamDevCommit_commitCommentEl","_GxIdeTeamDevCommit_foldersEl","_GxIdeTeamDevCommit_patternEl","_GxIdeTeamDevCommit_typesEl","_GxIdeTeamDevCommit_chGridIgnoredObjectsEl","_GxIdeTeamDevCommit_chGridPendingCommitsEl","_GxIdeTeamDevCommit_initializeComboBoxModels","foldersChangedHandler","folders","typesChangedHandler","types","changeSetChangedHandler","changeSet","categoriesChangedHandler","categories","_GxIdeTeamDevCommit_commitCallbackHandler","async","comment","__classPrivateFieldGet","length","commentInputHasError","commitingObjects","pendingCommitsCheckedIds","getMarkedRows","commitCallback","_GxIdeTeamDevCommit_evaluateFilterConditions","filterHasConditions","_GxIdeTeamDevCommit_getRecentCommentHandler","getRecentCommentCallback","response","_GxIdeTeamDevCommit_gridOnSelectionChangedCallbackHandler","grid","ev","selectCallback","detail","rowsId","_GxIdeTeamDevCommit_handleColumnSortChanged","e","columnId","sortDirection","aux","pendingCommits","sort","a","b","_GxIdeTeamDevCommit_loadData","loading","filtersData","pattern","folder","type","call","loadCallback","then","pending","ignored","ignoredObjects","_GxIdeTeamDevCommit_updateTabModel","_GxIdeTeamDevCommit_markAllPendingCommitsRows","markAllRows","_GxIdeTeamDevCommit_objectsOnContextMenuCallbackHandler","preventDefault","stopPropagation","selection","selectedRowsId","getSelectedRows","objectsContextMenuCallback","clientX","clientY","_GxIdeTeamDevCommit_pendingCommitsRowMarkingChangedHandler","removeEventListener","addedRowsIds","addedRowsId","removedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","_GxIdeTeamDevCommit_revertPendingCommitsCheckboxes","_GxIdeTeamDevCommit_togglePendingCommitsCheckboxes","addEventListener","_GxIdeTeamDevCommit_renderTabularGridColumnSet","withCheckboxes","h","class","columnType","richRowSelector","richRowSelectorMode","settingable","sortable","size","config","tabularGrid","colSize","maxContent","columnName","onColumnSortChanged","auto","_GxIdeTeamDevCommit_renderTabularGridCommonCells","object","renderObjectTypeWithIcon","description","formatDate","modifiedOn","module","renderObjectStateWithIcon","localState","lastSynchronized","_GxIdeTeamDevCommit_renderIgnoredObjectsGrid","tabularGridEmpty","_a","rowSelectionMode","ref","el","__classPrivateFieldSet","allowColumnReorder","part","onRowContextMenu","onSelectionChanged","loaderTitle","loader","title","show","obj","rowid","selected","stateIconSrc","stateTitle","emptyIgnoredObjects","isAnimated","_GxIdeTeamDevCommit_renderPendingCommitsGrid","objectsLoader","emptyPendingCommitsObjects","rowId","markRow","itemsToToggle","itemsToCheck","itemsToUncheck","tabs","_GxIdeTeamDevCommit_commentInputHandler","event","_GxIdeTeamDevCommit_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevCommit_onTabActivated","evt","stopImmediatePropagation","newCategoriesOptions","newChangeSetOptions","changeSetOptionsModel","newFolderOptions","folderOptionsModel","newTypesOptions","typeOptionsModel","componentDidLoad","componentDidLoadEvent","emit","focus","componentDidRender","componentDidRenderFirstTime","componentName","componentWillLoad","Locale","getComponentStrings","reload","render","filterIcon","Host","model","htmlFor","header","commentLabel","input","scrollable","placeholder","commentPlaceholder","onInput","filterAriaLabel","onClick","src","reloadAriaLabel","actionElement","blockAlign","inlineAlign","tooltipSettings","delay","commentEmptyError","recentCommentsButton","disabled","inert","hidden","slot","filtersMenu","patternLabel","debounce","inputDebounce","folderLabel","typeLabel","changesetLabel","categoryLabel","categoryOptionsModel","tabListPosition","selectedId","showTabListEnd","overflow","contain","onSelectedItemChange","footer","commitButton"],"sources":["src/components/team-dev/commit/helpers.ts","src/components/team-dev/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/commit/commit.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapGxOptionsToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label || category.name || \"\"\n }));\n","@import \"../common/styles.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\nsection {\n display: contents;\n}\n\n// header\n.header {\n &__first-row {\n grid-template-columns: 1fr max-content;\n }\n}\n.field-comment {\n flex: 1;\n}\n\n// filter\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n.filters-container > div {\n overflow: hidden;\n}\n.filter {\n grid-template-areas:\n \"field-pattern field-folder field-type\"\n \"field-changeset field-changeset field-category\";\n padding-block-start: var(--mer-spacing--sm);\n}\n.field-pattern {\n grid-area: field-pattern;\n}\n.field-folder {\n grid-area: field-folder;\n}\n.field-type {\n grid-area: field-type;\n}\n.field-changeset {\n grid-area: field-changeset;\n}\n.field-category {\n grid-area: field-category;\n}\n\n.ch-tab-slot {\n inline-size: 100%;\n overflow: auto;\n}\n\n// tab\n.tab {\n // WA / TODO: Mercury should provide an additional class to remove tab border\n border: none !important;\n}\n\n// tabular grid\n.tabular-grid {\n block-size: 100%;\n position: relative;\n overflow: auto;\n}\n.tabular-grid-cell.tabular-grid-cell-description {\n max-inline-size: 600px;\n}\n\ngx-ide-loader {\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.tooltip {\n position: absolute;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../common/types\";\n\n// Custom Imports\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport {\n GxOption,\n ContextMenuInfo,\n ObjectType,\n ItemsCheckedState,\n ItemsCheckedResult\n} from \"../../../common/types\";\n\nimport { formatDate } from \"../../../common/helpers\";\nimport {\n mapGxOptionsToComboBoxItemModel,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON_EMPTY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst FILTER_WITH_CONDITIONS_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter-conditions\",\n colorType: \"primary\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst ALL_OPTION = \"All\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/edit\",\n \"components/tab\",\n \"components/icon\",\n \"components/tabular-grid\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n@Component({\n tag: \"gx-ide-team-dev-commit\",\n styleUrl: \"commit.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-commit\"]\n})\nexport class GxIdeTeamDevCommit {\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 #loadDataCalledFirstTime = false; // pending commits grid checkboxes, should be checked, after loadData has loaded commits for the first time.\n #renderedFirstTime = false;\n #commitsTabModel: TabModel = [\n { id: \"pending-commits\", name: \"Pending Commits\" },\n { id: \"ignored-objects\", name: \"Ignored Objects\" }\n ];\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n // filters\n #categoriesEl!: HTMLChComboBoxRenderElement;\n #changeSetEl!: HTMLChComboBoxRenderElement;\n #commitCommentEl!: HTMLChEditElement;\n #foldersEl!: HTMLChComboBoxRenderElement;\n #patternEl!: HTMLChEditElement;\n #typesEl!: HTMLChComboBoxRenderElement;\n // other\n #chGridIgnoredObjectsEl!: HTMLChTabularGridElement;\n #chGridPendingCommitsEl!: HTMLChTabularGridElement;\n\n @State() comment = \"\";\n @State() filterHasConditions = false;\n @State() ignoredObjects: ModifiedObjectData[] = [];\n @State() pendingCommits: ModifiedObjectData[] = [];\n @State() commentInputHasError: boolean = false;\n @State() commitingObjects: boolean = false;\n @State() filtersHidden = true;\n // Combo box models\n @State() folderOptionsModel: ComboBoxModel;\n @State() typeOptionsModel: ComboBoxModel;\n @State() changeSetOptionsModel: ComboBoxModel;\n @State() categoryOptionsModel: ComboBoxModel;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * Possible values for Categories filter\n */\n @Prop() readonly categories: GxOption[];\n @Watch(\"categories\")\n categoriesChangedHandler(newCategoriesOptions: GxOption[]) {\n mapGxOptionsToComboBoxItemModel(newCategoriesOptions);\n }\n\n /**\n * Possible values for ChangeSet filter\n */\n @Prop() readonly changeSet: GxOption[];\n @Watch(\"changeSet\")\n changeSetChangedHandler(newChangeSetOptions: GxOption[]) {\n this.changeSetOptionsModel =\n mapGxOptionsToComboBoxItemModel(newChangeSetOptions);\n }\n\n /**\n * Callback invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Possible values for Folders filter\n */\n @Prop() readonly folders: GxOption[];\n @Watch(\"folders\")\n foldersChangedHandler(newFolderOptions: GxOption[]) {\n this.folderOptionsModel = mapGxOptionsToComboBoxItemModel(newFolderOptions);\n }\n\n /**\n * Callback invoked when user press Recent Comments button.\n */\n @Prop() readonly getRecentCommentCallback: GetRecentComment;\n\n /**\n * Callback invoked when user wants to reload the grid\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when the user activates the context menu in any grid\n */\n @Prop() readonly objectsContextMenuCallback: ObjectsContextMenuCallback;\n\n /**\n * Callback invoked when user check/uncheck any item from the 'Pending to Commit' grid\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Callback invoked when the user selects rows from the grid\n */\n @Prop() readonly selectCallback: CommitSelectCallback;\n\n /**\n * Possible values for Type filter\n */\n @Prop() readonly types: ObjectType[];\n @Watch(\"types\")\n typesChangedHandler(newTypesOptions: ObjectType[]) {\n this.typeOptionsModel = mapObjectTypeToComboBoxItemModel(newTypesOptions);\n }\n\n /**\n * Emitted once after the component fully loads and the first render occurs\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\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 componentDidLoad() {\n await this.#loadData();\n this.#loadDataCalledFirstTime = true;\n this.componentDidLoadEvent.emit(true);\n this.#commitCommentEl.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.#markAllPendingCommitsRows();\n // attach \"rowMarkingChanged\" after rows have been checked for the first time.\n this.#chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.#pendingCommitsRowMarkingChangedHandler\n );\n this.#loadDataCalledFirstTime = false;\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initializeComboBoxModels();\n }\n\n #initializeComboBoxModels = () => {\n this.foldersChangedHandler(this.folders);\n this.typesChangedHandler(this.types);\n this.changeSetChangedHandler(this.changeSet);\n this.categoriesChangedHandler(this.categories);\n };\n\n /**\n * Method used by the Host to force a data refresh in the grids\n */\n @Method()\n async reload(): Promise<void> {\n this.#loadData();\n }\n\n #commitCallbackHandler = async () => {\n const comment = this.#commitCommentEl.value;\n if (!comment.length) {\n // A comment is required to commit.\n this.commentInputHasError = true;\n return;\n }\n\n this.commitingObjects = true;\n this.commentInputHasError = false;\n const pendingCommitsCheckedIds =\n await this.#chGridPendingCommitsEl.getMarkedRows();\n\n await this.commitCallback(pendingCommitsCheckedIds, comment);\n this.commitingObjects = false;\n };\n\n #evaluateFilterConditions = () => {\n // TODO: This should update\n if (\n this.#patternEl.value !== \"\" ||\n this.#changeSetEl.value !== ALL_OPTION ||\n this.#typesEl.value !== ALL_OPTION ||\n this.#foldersEl.value !== ALL_OPTION ||\n this.#categoriesEl.value !== ALL_OPTION\n ) {\n this.filterHasConditions = true;\n } else {\n this.filterHasConditions = false;\n }\n };\n\n #getRecentCommentHandler = async () => {\n if (this.getRecentCommentCallback) {\n const response = await this.getRecentCommentCallback();\n if (response) {\n this.#commitCommentEl.value = response;\n }\n }\n };\n\n #gridOnSelectionChangedCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridSelectionChangedEvent>) => {\n if (this.selectCallback) {\n await this.selectCallback(grid, ev.detail.rowsId);\n }\n };\n\n #handleColumnSortChanged = (e: CustomEvent) => {\n const { columnId, sortDirection } = e.detail;\n\n const aux = this.pendingCommits;\n aux.sort((a: any, b: any) => {\n if (a[columnId] < b[columnId]) {\n return sortDirection === \"asc\" ? -1 : 1;\n }\n if (a[columnId] > b[columnId]) {\n return sortDirection === \"asc\" ? 1 : -1;\n }\n return 0;\n });\n\n this.pendingCommits = [...aux];\n };\n\n #loadData = async () => {\n this.loading = true;\n const filtersData: FiltersData = {\n pattern: this.#patternEl.value,\n changeSet: this.#changeSetEl.value,\n folder: this.#foldersEl.value,\n category: this.#categoriesEl.value,\n type: this.#typesEl.value\n };\n\n this.#evaluateFilterConditions();\n\n await this.loadCallback(filtersData).then(async ({ pending, ignored }) => {\n this.pendingCommits = [...pending];\n this.ignoredObjects = [...ignored];\n });\n this.loading = false;\n this.#updateTabModel();\n };\n\n #markAllPendingCommitsRows = async () => {\n await this.#chGridPendingCommitsEl.markAllRows();\n };\n\n #objectsOnContextMenuCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n let selection: string[] = [];\n if (grid === \"commit\") {\n selection = ev.detail.selectedRowsId;\n } else if (grid === \"ignored\") {\n selection = await this.#chGridIgnoredObjectsEl.getSelectedRows();\n }\n if (this.objectsContextMenuCallback) {\n await this.objectsContextMenuCallback(grid, {\n selection: selection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n };\n\n #pendingCommitsRowMarkingChangedHandler = async (\n e: CustomEvent<TabularGridMarkingChangedEvent>\n ): Promise<void> => {\n // remove \"rowMarkingChanged\" until checkboxes have been added/removed on #togglePendingCommitsCheckboxes, to prevent loops.\n this.#chGridPendingCommitsEl.removeEventListener(\n \"rowMarkingChanged\",\n this.#pendingCommitsRowMarkingChangedHandler\n );\n if (this.#chGridPendingCommitsEl) {\n const addedRowsIds = e.detail.addedRowsId;\n const removedRowsId = e.detail.removedRowsId;\n\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\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.#chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.#pendingCommitsRowMarkingChangedHandler\n );\n }\n };\n\n #renderTabularGridColumnSet = (\n withCheckboxes: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n {withCheckboxes && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnType=\"rich\"\n richRowSelector\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n )}\n <ch-tabular-grid-column\n columnId=\"name\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Name\"\n settingable={false}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"type\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Type\"\n settingable={false}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"description\"\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n sortable\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"modifiedOn\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Modified On\"\n settingable={false}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"module\"\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n sortable\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"localState\"\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n sortable\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"lastSynchronized\"\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n sortable\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTabularGridCommonCells = (object: ModifiedObjectData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.name}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(object.type)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-description\">\n {object.description}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(object.modifiedOn)}`}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.module}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(object.localState)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(object.lastSynchronized)}`}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderIgnoredObjectsGrid = (): Element => {\n const tabularGridEmpty =\n this.ignoredObjects?.length === 0 || !this.ignoredObjects;\n return (\n <ch-tabular-grid\n // ignored objects grid render\n class={{\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridIgnoredObjectsEl = el)\n }\n allowColumnReorder={false}\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.#objectsOnContextMenuCallbackHandler(\"ignored\")}\n onSelectionChanged={this.#gridOnSelectionChangedCallbackHandler(\n \"ignored\"\n )}\n >\n {this.commitingObjects && (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n ></gx-ide-loader>\n )}\n\n {this.#renderTabularGridColumnSet()}\n {this.ignoredObjects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.ignoredObjects.map((obj: ModifiedObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n selected\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(obj)}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON_EMPTY}\n stateTitle={this.#componentLocale.emptyIgnoredObjects}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderPendingCommitsGrid = (): Element => {\n const withCheckboxes = true;\n const tabularGridEmpty =\n this.pendingCommits?.length === 0 || !this.pendingCommits;\n\n if (this.loading) {\n return (\n <div class=\"tabular-grid\">\n <gx-ide-loader\n loaderTitle={this.#componentLocale.objectsLoader.title}\n description={this.#componentLocale.objectsLoader.description}\n show\n ></gx-ide-loader>\n </div>\n );\n }\n return (\n <ch-tabular-grid\n // pending commits grid render\n class={{\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridPendingCommitsEl = el)\n }\n allowColumnReorder={false}\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.#objectsOnContextMenuCallbackHandler(\"commit\")}\n onSelectionChanged={this.#gridOnSelectionChangedCallbackHandler(\n \"commit\"\n )}\n >\n {this.commitingObjects && (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n ></gx-ide-loader>\n )}\n\n {this.#renderTabularGridColumnSet(withCheckboxes)}\n\n {this.pendingCommits.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.pendingCommits.map((obj: ModifiedObjectData) => (\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 {this.#renderTabularGridCommonCells(obj)}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON_EMPTY}\n stateTitle={this.#componentLocale.emptyPendingCommitsObjects}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.#chGridPendingCommitsEl) {\n for (const rowId of addedRowsIds) {\n await this.#chGridPendingCommitsEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.#chGridPendingCommitsEl.markRow(rowId, true);\n }\n }\n };\n\n #togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.#chGridPendingCommitsEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.#chGridPendingCommitsEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.#chGridPendingCommitsEl.markRow(rowId, false);\n }\n }\n };\n\n #updateTabModel = () => {\n this.#commitsTabModel = [\n {\n id: \"pending-commits\",\n name: `${this.#componentLocale.tabs.pendingCommits} (${\n this.pendingCommits.length\n })`\n },\n {\n id: \"ignored-objects\",\n name: `${this.#componentLocale.tabs.ignoredObjects} (${\n this.ignoredObjects.length\n })`\n }\n ];\n };\n\n #commentInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n const comment = event.detail as string;\n if (comment.length && this.commentInputHasError) {\n // remove error style and tooltip\n this.commentInputHasError = false;\n }\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #onTabActivated = (evt: CustomEvent) => {\n evt.stopImmediatePropagation();\n };\n\n render() {\n const filterIcon = this.filterHasConditions\n ? FILTER_WITH_CONDITIONS_ICON\n : FILTER_ICON;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body\">\n <div class=\"header__first-row field-group\">\n <div class=\"buttons-spacer\">\n <div\n // pattern\n class=\"field field-inline field-comment\"\n >\n <label class=\"label\" htmlFor=\"pattern-form-text\">\n {this.#componentLocale.header.commentLabel}\n </label>\n <ch-edit\n // commit comment\n id=\"comment\"\n class={{\n \"input\": true,\n \"commit-input\": true,\n \"scrollable\": true,\n \"input-error\": this.commentInputHasError\n }}\n placeholder={\n this.#componentLocale.header.commentPlaceholder\n }\n onInput={this.#commentInputHandler}\n value={this.comment}\n ref={(el: HTMLChEditElement) =>\n (this.#commitCommentEl = el as HTMLChEditElement)\n }\n part=\"comment\"\n ></ch-edit>\n </div>\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#componentLocale.header.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={this.#toggleFiltersHandler}\n title={this.#componentLocale.header.filterAriaLabel}\n >\n <ch-image class=\"icon-md\" src={filterIcon}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#componentLocale.header.reloadAriaLabel}\n title={this.#componentLocale.header.reloadAriaLabel}\n onClick={this.#loadData}\n part={this.#componentLocale.header.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n {this.commentInputHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#commitCommentEl as unknown as HTMLButtonElement\n }\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.commentEmptyError}\n </ch-tooltip>\n )}\n\n <div class=\"buttons-spacer\">\n <button\n type=\"button\"\n class=\"button-secondary recent-comments-btn\"\n part=\"button button-location\"\n onClick={this.#getRecentCommentHandler}\n aria-label={this.#componentLocale.header.recentCommentsButton}\n disabled={this.commitingObjects}\n >\n {this.#componentLocale.header.recentCommentsButton}\n </button>\n </div>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div slot=\"filter\" class=\"filter field-group\">\n <div\n // pattern\n class=\"field field-block field-pattern\"\n >\n <label class=\"label\" htmlFor=\"pattern-form-text\">\n {this.#componentLocale.filtersMenu.patternLabel}\n </label>\n <ch-edit\n id=\"pattern-form-text\"\n class=\"input\"\n value=\"\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternEl = el as HTMLChEditElement)\n }\n debounce={config.inputDebounce}\n onInput={this.#loadData}\n part=\"pattern-form-text\"\n ></ch-edit>\n </div>\n\n <div\n // folder\n class=\"field field-block field-folder\"\n >\n <label class=\"label\" htmlFor=\"folder-combo\">\n {this.#componentLocale.filtersMenu.folderLabel}\n </label>\n <ch-combo-box-render\n id=\"folder-combo\"\n class=\"combo-box\"\n value={this.folders[0].id}\n model={this.folderOptionsModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#foldersEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#loadData}\n part=\"folder-combo\"\n ></ch-combo-box-render>\n </div>\n\n <div\n // type\n class=\"field field-block field-type\"\n >\n <label class=\"label\" htmlFor=\"type-combo\">\n {this.#componentLocale.filtersMenu.typeLabel}\n </label>\n <ch-combo-box-render\n id=\"type-combo\"\n class=\"combo-box\"\n value={this.types[0].id}\n model={this.typeOptionsModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#loadData}\n part=\"type-combo\"\n ></ch-combo-box-render>\n </div>\n\n <div\n // changeset\n class=\"field field-block field-changeset\"\n >\n <label class=\"label\" htmlFor=\"changeset-combo\">\n {this.#componentLocale.filtersMenu.changesetLabel}\n </label>\n <ch-combo-box-render\n id=\"changeset-combo\"\n class=\"combo-box\"\n value={this.changeSet[0].id}\n model={this.changeSetOptionsModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#changeSetEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#loadData}\n part=\"changeset-combo\"\n ></ch-combo-box-render>\n </div>\n\n <div\n // category\n class=\"field field-block field-category\"\n >\n <label class=\"label\" htmlFor=\"category-combo\">\n {this.#componentLocale.filtersMenu.categoryLabel}\n </label>\n <ch-combo-box-render\n id=\"category-combo\"\n class=\"combo-box\"\n value={this.categories[0].id}\n model={this.categoryOptionsModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoriesEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#loadData}\n part=\"category-combo\"\n ></ch-combo-box-render>\n </div>\n </div>\n </div>\n </div>\n </header>\n\n <ch-tab-render\n class=\"tab scrollable\"\n tabListPosition=\"block-start\"\n model={this.#commitsTabModel}\n selectedId=\"pending-commits\"\n showTabListEnd\n overflow=\"auto auto\"\n contain=\"size\"\n onSelectedItemChange={this.#onTabActivated}\n >\n <div\n class=\"ch-tab-slot\"\n slot=\"pending-commits\"\n part=\"pending-commits\"\n >\n {this.#renderPendingCommitsGrid()}\n </div>\n <div\n class=\"ch-tab-slot\"\n slot=\"ignored-objects\"\n part=\"ignored-objects\"\n >\n {this.#renderIgnoredObjectsGrid()}\n </div>\n </ch-tab-render>\n\n <footer class=\"control-footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <button\n class=\"button-primary\"\n onClick={this.#commitCallbackHandler}\n part=\"commit-button\"\n disabled={this.commitingObjects}\n >\n {this.#componentLocale.footer.commitButton}\n </button>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CommitCallback = (\n selection: string[],\n commitCommentEl: string\n) => Promise<boolean>;\n\nexport type CommitData = {\n pending: ModifiedObjectData[];\n ignored: ModifiedObjectData[];\n};\n\nexport type CommitSelectCallback = (\n grid: CommitSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type CommitSourceType = \"commit\" | \"ignored\";\n\nexport type FiltersData = {\n pattern: string;\n changeSet: string;\n type: string;\n folder: string;\n category: string;\n};\n\nexport type GetRecentComment = () => Promise<string | undefined>;\n\nexport type ItemCheckedCallback = (\n checkedItemIds: string[]\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type LoadCallback = (filters: FiltersData) => Promise<CommitData>;\n\nexport type ModifiedObjectData = {\n id: string;\n name: string;\n iconType: string;\n state: ObjectState;\n type: ObjectType;\n description: string;\n modifiedOn: Date;\n module: string;\n localState: ObjectState;\n lastSynchronized: Date;\n user: string;\n};\n\nexport type ObjectsContextMenuCallback = (\n grid: CommitSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { r as t, c as e, g as i, h as s, H as n, a } from "./p-25a9f1d7.js";
|
|
2
|
+
|
|
3
|
+
import { g as o } from "./p-2987a259.js";
|
|
4
|
+
|
|
5
|
+
import { c as r } from "./p-13738332.js";
|
|
6
|
+
|
|
7
|
+
import { v as l } from "./p-289c3290.js";
|
|
8
|
+
|
|
9
|
+
import { L as h } from "./p-311eedf3.js";
|
|
10
|
+
|
|
11
|
+
const c = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--mer-spacing--xs)}.button-icon-only.button-tertiary{border-color:var(--mer-color__neutral-gray--500);border-width:var(--mer-border__width--sm);border-radius:var(--mer-border__radius--sm)}.button-icon-only:hover{border-color:var(--mer-color__neutral-gray--100)}";
|
|
12
|
+
|
|
13
|
+
var d = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, n) {
|
|
14
|
+
if (s === "m") throw new TypeError("Private method is not writable");
|
|
15
|
+
if (s === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
|
|
16
|
+
if (typeof e === "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
17
|
+
return s === "a" ? n.call(t, i) : n ? n.value = i : e.set(t, i), i;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var f = undefined && undefined.__classPrivateFieldGet || function(t, e, i, s) {
|
|
21
|
+
if (i === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
|
|
22
|
+
if (typeof e === "function" ? t !== e || !s : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
23
|
+
return i === "m" ? s : i === "a" ? s.call(t) : s ? s.value : e.get(t);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var p, u, m, b, v, w, g, y, k, M, W, _, x, T, j, C, E, $;
|
|
27
|
+
|
|
28
|
+
const A = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/list-box", "components/tooltip", "chameleon/scrollbar" ];
|
|
29
|
+
|
|
30
|
+
const S = class {
|
|
31
|
+
constructor(n) {
|
|
32
|
+
t(this, n);
|
|
33
|
+
this.componentDidRenderFirstTime = e(this, "componentDidRenderFirstTime", 7);
|
|
34
|
+
p.set(this, o({
|
|
35
|
+
category: "gemini-tools",
|
|
36
|
+
name: "show-more-horizontal",
|
|
37
|
+
colorType: "on-elevation"
|
|
38
|
+
}));
|
|
39
|
+
u.set(this, [ {
|
|
40
|
+
value: "Trunk",
|
|
41
|
+
caption: "Trunk Version"
|
|
42
|
+
}, {
|
|
43
|
+
value: "All",
|
|
44
|
+
caption: "All Versions"
|
|
45
|
+
}, {
|
|
46
|
+
value: "Select",
|
|
47
|
+
caption: "Select Version"
|
|
48
|
+
} ]);
|
|
49
|
+
m.set(this, void 0);
|
|
50
|
+
b.set(this, []);
|
|
51
|
+
v.set(this, false);
|
|
52
|
+
w.set(this, i(`./gx-ide-assets/create-kb-from-server/shortcuts.json`));
|
|
53
|
+
g.set(this, void 0);
|
|
54
|
+
y.set(this, void 0);
|
|
55
|
+
k.set(this, void 0);
|
|
56
|
+
M.set(this, (() => {
|
|
57
|
+
this.cancelCallback();
|
|
58
|
+
}));
|
|
59
|
+
W.set(this, (async () => {
|
|
60
|
+
this.changeConnectionCallback({
|
|
61
|
+
authenticationType: this.connectionData.authenticationType,
|
|
62
|
+
serverUrl: this.connectionData.serverUrl,
|
|
63
|
+
userName: this.connectionData.userName,
|
|
64
|
+
userPassword: this.connectionData.userPassword
|
|
65
|
+
});
|
|
66
|
+
}));
|
|
67
|
+
_.set(this, (async () => {
|
|
68
|
+
if (this.versionSelectedType !== "Select") {
|
|
69
|
+
d(this, b, [], "f");
|
|
70
|
+
}
|
|
71
|
+
this.shareKBCallback({
|
|
72
|
+
name: this.kbName,
|
|
73
|
+
serverUrl: this.connectionData.serverUrl,
|
|
74
|
+
versionList: f(this, b, "f"),
|
|
75
|
+
allVersions: this.versionSelectedType === "All"
|
|
76
|
+
}).then((t => {
|
|
77
|
+
this.validatableControls = l(t, this.validatableControls);
|
|
78
|
+
}));
|
|
79
|
+
}));
|
|
80
|
+
// TODO: evaluate if this should be a global helper function.
|
|
81
|
+
// It is used on other dialogs as well.
|
|
82
|
+
x.set(this, (t => {
|
|
83
|
+
var e, i, n;
|
|
84
|
+
return ((i = (e = this.validatableControls) === null || e === void 0 ? void 0 : e.get(t === null || t === void 0 ? void 0 : t.id)) === null || i === void 0 ? void 0 : i.hasError) && ((n = this.validatableControls.get(t.id)) === null || n === void 0 ? void 0 : n.message) && s("ch-tooltip", {
|
|
85
|
+
class: "tooltip",
|
|
86
|
+
actionElement: t,
|
|
87
|
+
blockAlign: r.tooltipSettings.blockAlign,
|
|
88
|
+
inlineAlign: r.tooltipSettings.inlineAlign,
|
|
89
|
+
delay: r.tooltipSettings.delay
|
|
90
|
+
}, this.validatableControls.get(t.id).message);
|
|
91
|
+
}));
|
|
92
|
+
T.set(this, (() => {
|
|
93
|
+
// populate validatableControls with the controls that could have errors.
|
|
94
|
+
const t = [ f(this, k, "f") ];
|
|
95
|
+
t.forEach((t => {
|
|
96
|
+
if (t.id) {
|
|
97
|
+
this.validatableControls.set(t.id, {
|
|
98
|
+
reference: t,
|
|
99
|
+
hasError: false,
|
|
100
|
+
message: undefined
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}));
|
|
104
|
+
}));
|
|
105
|
+
j.set(this, (t => {
|
|
106
|
+
this.kbName = t.detail;
|
|
107
|
+
}));
|
|
108
|
+
C.set(this, (async () => {
|
|
109
|
+
if (this.selectKBVersionsCallback) {
|
|
110
|
+
await this.selectKBVersionsCallback(f(this, g, "f")).then((t => {
|
|
111
|
+
if (t === null || t === void 0 ? void 0 : t.length) {
|
|
112
|
+
d(this, b, t.map((t => ({
|
|
113
|
+
id: t.id,
|
|
114
|
+
name: t.name
|
|
115
|
+
}))), "f");
|
|
116
|
+
if (t.length === 1 && f(this, b, "f")[0].id === 0) {
|
|
117
|
+
this.localKbNameInputValue = f(this, g, "f");
|
|
118
|
+
this.versionsValueInput = f(this, m, "f").kb.versionsPlaceholder;
|
|
119
|
+
} else if (t.length > 1) {
|
|
120
|
+
this.localKbNameInputValue = f(this, g, "f");
|
|
121
|
+
this.versionsValueInput = `${t.length.toString()} ${f(this, m, "f").kb.versionSelectedFieldValue}`;
|
|
122
|
+
} else {
|
|
123
|
+
this.localKbNameInputValue = `${f(this, g, "f")}_${f(this, b, "f")[0].name}`;
|
|
124
|
+
this.versionsValueInput = `${t[0].name} ${f(this, m, "f").kb.oneVersionSelectedFieldValue}`;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
E.set(this, (t => {
|
|
131
|
+
this.versionSelectedType = t.detail;
|
|
132
|
+
if (this.versionSelectedType === "Select") {
|
|
133
|
+
this.enableSelectVersionsButton = true;
|
|
134
|
+
} else {
|
|
135
|
+
this.enableSelectVersionsButton = false;
|
|
136
|
+
}
|
|
137
|
+
}));
|
|
138
|
+
$.set(this, (() => {
|
|
139
|
+
const t = !this.kbName.length;
|
|
140
|
+
return s("footer", {
|
|
141
|
+
class: "footer control-footer-with-border spacing-body-inline spacing-body-block-end"
|
|
142
|
+
}, s("div", {
|
|
143
|
+
class: "buttons-spacer"
|
|
144
|
+
}, s("button", {
|
|
145
|
+
// cancel button
|
|
146
|
+
class: "button-secondary",
|
|
147
|
+
onClick: f(this, M, "f"),
|
|
148
|
+
part: "button button-cancel"
|
|
149
|
+
}, f(this, m, "f").footer.cancel), s("button", {
|
|
150
|
+
// share kb button
|
|
151
|
+
class: "button-primary",
|
|
152
|
+
onClick: !t && f(this, _, "f"),
|
|
153
|
+
disabled: t,
|
|
154
|
+
part: "button button-create-kb"
|
|
155
|
+
}, f(this, m, "f").footer.shareKB)));
|
|
156
|
+
}));
|
|
157
|
+
this.enableSelectVersionsButton = false;
|
|
158
|
+
this.validatableControls = new Map;
|
|
159
|
+
this.versionSelectedType = undefined;
|
|
160
|
+
this.versionsValueInput = "";
|
|
161
|
+
this.connectionData = undefined;
|
|
162
|
+
this.cancelCallback = undefined;
|
|
163
|
+
this.changeConnectionCallback = undefined;
|
|
164
|
+
this.kbName = undefined;
|
|
165
|
+
this.shareKBCallback = undefined;
|
|
166
|
+
this.selectKBVersionsCallback = undefined;
|
|
167
|
+
}
|
|
168
|
+
componentDidLoad() {
|
|
169
|
+
this.versionSelectedType = f(this, y, "f").value;
|
|
170
|
+
f(this, T, "f").call(this);
|
|
171
|
+
}
|
|
172
|
+
componentDidRender() {
|
|
173
|
+
if (!f(this, v, "f")) {
|
|
174
|
+
this.componentDidRenderFirstTime.emit(f(this, m, "f").componentName);
|
|
175
|
+
d(this, v, true, "f");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async componentWillLoad() {
|
|
179
|
+
d(this, m, await h.getComponentStrings(this.el), "f");
|
|
180
|
+
}
|
|
181
|
+
render() {
|
|
182
|
+
return s(n, {
|
|
183
|
+
class: "widget"
|
|
184
|
+
}, s("ch-theme", {
|
|
185
|
+
model: A
|
|
186
|
+
}), s("ch-shortcuts", {
|
|
187
|
+
src: f(this, w, "f"),
|
|
188
|
+
ref: t => this.chShortcutsEl = t
|
|
189
|
+
}), s("section", {
|
|
190
|
+
class: "section"
|
|
191
|
+
}, s("header", {
|
|
192
|
+
class: "header control-header-with-border space-body spacing-body-inline spacing-body-block-start"
|
|
193
|
+
}, s("div", {
|
|
194
|
+
class: "field field-block"
|
|
195
|
+
}, s("label", {
|
|
196
|
+
class: "label"
|
|
197
|
+
}, f(this, m, "f").header.serverUrl), s("p", null, this.connectionData.serverUrl)), s("div", {
|
|
198
|
+
class: "field field-block"
|
|
199
|
+
}, s("label", {
|
|
200
|
+
class: "label"
|
|
201
|
+
}, f(this, m, "f").header.user), s("p", null, this.connectionData.userName)), s("button", {
|
|
202
|
+
class: "button-tertiary button-change",
|
|
203
|
+
onClick: f(this, W, "f")
|
|
204
|
+
}, f(this, m, "f").header.change)), s("section", {
|
|
205
|
+
class: "main field-group spacing-body"
|
|
206
|
+
}, s("div", {
|
|
207
|
+
class: "field field-block"
|
|
208
|
+
}, s("label", {
|
|
209
|
+
class: "label",
|
|
210
|
+
htmlFor: "alias"
|
|
211
|
+
}, f(this, m, "f").kb.aliasLabel), s("ch-edit", {
|
|
212
|
+
// alias
|
|
213
|
+
class: "input",
|
|
214
|
+
id: "kb-name",
|
|
215
|
+
value: this.kbName,
|
|
216
|
+
onInput: f(this, j, "f"),
|
|
217
|
+
placeholder: f(this, m, "f").kb.localKbNamePlaceholder,
|
|
218
|
+
ref: t => d(this, k, t, "f")
|
|
219
|
+
}), f(this, x, "f").call(this, f(this, k, "f"))), s("div", {
|
|
220
|
+
class: "versions-container field-group"
|
|
221
|
+
}, s("ch-radio-group-render", {
|
|
222
|
+
class: "radio-group",
|
|
223
|
+
model: f(this, u, "f"),
|
|
224
|
+
onChange: f(this, E, "f"),
|
|
225
|
+
value: f(this, u, "f")[0].value,
|
|
226
|
+
ref: t => d(this, y, t, "f")
|
|
227
|
+
}), this.versionSelectedType === "Select" && s("div", {
|
|
228
|
+
class: "versions-container__item field-group"
|
|
229
|
+
}, s("div", {
|
|
230
|
+
class: "field field-block"
|
|
231
|
+
}, s("label", {
|
|
232
|
+
class: "label",
|
|
233
|
+
htmlFor: "control-id-1"
|
|
234
|
+
}, f(this, m, "f").kb.versionsLabel), s("div", {
|
|
235
|
+
class: "versions-container__input"
|
|
236
|
+
}, s("ch-edit", {
|
|
237
|
+
class: "input",
|
|
238
|
+
readonly: true,
|
|
239
|
+
placeholder: this.enableSelectVersionsButton ? f(this, m, "f").kb.versionsPlaceholder : f(this, m, "f").kb.versionsPlaceholderDisabled,
|
|
240
|
+
value: this.versionsValueInput
|
|
241
|
+
}), s("button", {
|
|
242
|
+
class: "button-tertiary button-icon-only",
|
|
243
|
+
onClick: f(this, C, "f"),
|
|
244
|
+
disabled: !this.enableSelectVersionsButton
|
|
245
|
+
}, s("ch-image", {
|
|
246
|
+
src: f(this, p, "f"),
|
|
247
|
+
class: "icon-sm"
|
|
248
|
+
}))))))), f(this, $, "f").call(this)));
|
|
249
|
+
}
|
|
250
|
+
static get assetsDirs() {
|
|
251
|
+
return [ "gx-ide-assets/share-kb" ];
|
|
252
|
+
}
|
|
253
|
+
get el() {
|
|
254
|
+
return a(this);
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
p = new WeakMap, u = new WeakMap, m = new WeakMap, b = new WeakMap, v = new WeakMap,
|
|
259
|
+
w = new WeakMap, g = new WeakMap, y = new WeakMap, k = new WeakMap, M = new WeakMap,
|
|
260
|
+
W = new WeakMap, _ = new WeakMap, x = new WeakMap, T = new WeakMap, j = new WeakMap,
|
|
261
|
+
C = new WeakMap, E = new WeakMap, $ = new WeakMap;
|
|
262
|
+
|
|
263
|
+
S.style = c;
|
|
264
|
+
|
|
265
|
+
export { S as gx_ide_share_kb };
|
|
266
|
+
//# sourceMappingURL=p-ea02e5cf.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["shareKbCss","CSS_BUNDLES","GxIdeShareKb","_GxIdeShareKb_showMoreIcon","set","this","getIconPath","category","name","colorType","_GxIdeShareKb_versionsSelect","value","caption","_GxIdeShareKb__componentLocale","_GxIdeShareKb_kbVersions","_GxIdeShareKb_renderedFirstTime","_GxIdeShareKb_shortcutsSrc","getAssetPath","_GxIdeShareKb_selectedKbId","_GxIdeShareKb_versionSelectedTypeEl","_GxIdeShareKb_KBNameEl","_GxIdeShareKb_cancelHandler","cancelCallback","_GxIdeShareKb_changeConnectionHandler","async","changeConnectionCallback","authenticationType","connectionData","serverUrl","userName","userPassword","_GxIdeShareKb_shareKBHandler","versionSelectedType","__classPrivateFieldSet","shareKBCallback","kbName","versionList","__classPrivateFieldGet","allVersions","then","formSubmitResult","validatableControls","validateControls","_GxIdeShareKb_evaluateTooltipRender","controlReference","_b","_a","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeShareKb_initializeValidatableControls","forEach","validatableControl","reference","undefined","_GxIdeShareKb_kbNameInputHandler","event","detail","_GxIdeShareKb_selectedVersionHandler","selectKBVersionsCallback","result","length","map","kbVersion","localKbNameInputValue","versionsValueInput","kb","versionsPlaceholder","toString","versionSelectedFieldValue","oneVersionSelectedFieldValue","_GxIdeShareKb_versionsChangedHandler","enableSelectVersionsButton","_GxIdeShareKb_renderFooter","disableShareKbButton","onClick","part","footer","cancel","disabled","shareKB","Map","componentDidLoad","call","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","el","render","Host","model","src","ref","chShortcutsEl","header","user","change","htmlFor","aliasLabel","onInput","placeholder","localKbNamePlaceholder","onChange","versionsLabel","readonly","versionsPlaceholderDisabled"],"sources":["src/components/team-dev/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/team-dev/share-kb/share-kb.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n\n.button-icon-only.button-tertiary {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n}\n\n.button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbVersions: KBVersion[] = [];\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeShareKbElement;\n\n #KBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * The name of the KB.\n */\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Callback that must be invoked when the Share button is pressed.\n */\n @Prop() readonly shareKBCallback: (\n data: ShareKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #shareKBHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.shareKBCallback({\n name: this.kbName,\n serverUrl: this.connectionData.serverUrl,\n versionList: this.#kbVersions,\n allVersions: this.versionSelectedType === \"All\"\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#KBNameEl];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #kbNameInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbName = event.detail as string;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n if (this.versionSelectedType === \"Select\") {\n this.enableSelectVersionsButton = true;\n } else {\n this.enableSelectVersionsButton = false;\n }\n };\n\n #renderFooter = () => {\n const disableShareKbButton = !this.kbName.length;\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // share kb button\n class=\"button-primary\"\n onClick={!disableShareKbButton && this.#shareKBHandler}\n disabled={disableShareKbButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.shareKB}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\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\n <section class=\"section\">\n <header class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"alias\">\n {this.#_componentLocale.kb.aliasLabel}\n </label>\n <ch-edit\n // alias\n class=\"input\"\n id=\"kb-name\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#KBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#KBNameEl)}\n </div>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type?: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n versionList: KBVersion[];\n allVersions: boolean;\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAa;;;;;;;;;;;;;;;;;AC4BnB,MAAMC,IAA8B,EAClC,qBACA,oBACA,gBACA,oBACA,iBACA,uBACA,sBACA;;MASWC,IAAY;;;;IACvBC,EAAAC,IAAAC,MAAgBC,EAAY;MAC1BC,UAAU;MACVC,MAAM;MACNC,WAAW;;IAGbC,EAAAN,IAAAC,MAAyC,EACvC;MAAEM,OAAO;MAASC,SAAS;OAC3B;MAAED,OAAO;MAAOC,SAAS;OACzB;MAAED,OAAO;MAAUC,SAAS;;IAK9BC,EAAAT,IAAAC,WAAA;IACAS,EAAAV,IAAAC,MAA2B;IAC3BU,EAAAX,IAAAC,MAAqB;IACrBW,EAAAZ,IAAAC,MAAgBY,EACd;IAEFC,EAAAd,IAAAC,WAAA;IAEAc,EAAAf,IAAAC,WAAA;IAIAe,EAAAhB,IAAAC,WAAA;IAgFAgB,EAAAjB,IAAAC,OAAiB;MACfA,KAAKiB;AAAgB;IAGvBC,EAAAnB,IAAAC,OAA2BmB;MACzBnB,KAAKoB,yBAAyB;QAC5BC,oBAAoBrB,KAAKsB,eAAeD;QACxCE,WAAWvB,KAAKsB,eAAeC;QAC/BC,UAAUxB,KAAKsB,eAAeE;QAC9BC,cAAczB,KAAKsB,eAAeG;;AAClC;IAGJC,EAAA3B,IAAAC,OAAkBmB;MAChB,IAAInB,KAAK2B,wBAAwB,UAAU;QACzCC,EAAA5B,MAAIS,GAAe,IAAE;;MAEvBT,KAAK6B,gBAAgB;QACnB1B,MAAMH,KAAK8B;QACXP,WAAWvB,KAAKsB,eAAeC;QAC/BQ,aAAaC,EAAAhC,MAAIS,GAAA;QACjBwB,aAAajC,KAAK2B,wBAAwB;SACzCO,MAAMC;QACPnC,KAAKoC,sBAAsBC,EACzBF,GACAnC,KAAKoC;AACN;AACD;;;QAKJE,EAAAvC,IAAAC,OACEuC;;MAEA,SAAAC,KAAAC,IAAAzC,KAAKoC,yBAAmB,QAAAK,WAAA,aAAAA,EAAEC,IAAIH,MAAgB,QAAhBA,WAAgB,aAAhBA,EAAkBI,SAAG,QAAAH,WAAA,aAAAA,EAAEI,eACrDC,IAAA7C,KAAKoC,oBAAoBM,IAAIH,EAAiBI,SAAG,QAAAE,WAAA,aAAAA,EAAEC,YACjDC,EAAA;QACEC,OAAM;QACNC,eAAeV;QACfW,YAAYC,EAAOC,gBAAgBF;QACnCG,aAAaF,EAAOC,gBAAgBC;QACpCC,OAAOH,EAAOC,gBAAgBE;SAE7BtD,KAAKoC,oBAAoBM,IAAIH,EAAiBI,IAAIG;AAEtD;IAEHS,EAAAxD,IAAAC,OAAiC;;MAE/B,MAAMoC,IAAqC,EAACJ,EAAAhC,MAAIe,GAAA;MAChDqB,EAAoBoB,SAAQC;QAC1B,IAAIA,EAAmBd,IAAI;UACzB3C,KAAKoC,oBAAoBrC,IAAI0D,EAAmBd,IAAI;YAClDe,WAAWD;YACXb,UAAU;YACVE,SAASa;;;;AAGb;IAGJC,EAAA7D,IAAAC,OAAuB6D;MACrB7D,KAAK8B,SAAS+B,EAAMC;AAAgB;IAGtCC,EAAAhE,IAAAC,OAA0BmB;MACxB,IAAInB,KAAKgE,0BAA0B;cAC3BhE,KAAKgE,yBAAyBhC,EAAAhC,MAAIa,GAAA,MAAgBqB,MAAK+B;UAC3D,IAAIA,MAAM,QAANA,WAAM,aAANA,EAAQC,QAAQ;YAClBtC,EAAA5B,MAAIS,GAAewD,EAAOE,KAAIC,MAAS;cACrCzB,IAAIyB,EAAUzB;cACdxC,MAAMiE,EAAUjE;kBACf;YAEH,IAAI8D,EAAOC,WAAW,KAAKlC,EAAAhC,MAAIS,GAAA,KAAa,GAAGkC,OAAO,GAAG;cACvD3C,KAAKqE,wBAAwBrC,EAAAhC,MAAIa,GAAA;cACjCb,KAAKsE,qBACHtC,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGC;mBACvB,IAAIP,EAAOC,SAAS,GAAG;cAC5BlE,KAAKqE,wBAAwBrC,EAAAhC,MAAIa,GAAA;cACjCb,KAAKsE,qBAAqB,GAAGL,EAAOC,OAAOO,cACzCzC,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGG;mBAEvB;cACL1E,KAAKqE,wBAAwB,GAAGrC,EAAAhC,MAAIa,GAAA,QAClCmB,EAAAhC,MAAIS,GAAA,KAAa,GAAGN;cAEtBH,KAAKsE,qBAAqB,GAAGL,EAAO,GAAG9D,QACrC6B,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGI;;;;;;IAQtCC,EAAA7E,IAAAC,OAA2B6D;MACzB7D,KAAK2B,sBAAsBkC,EAAMC;MACjC,IAAI9D,KAAK2B,wBAAwB,UAAU;QACzC3B,KAAK6E,6BAA6B;aAC7B;QACL7E,KAAK6E,6BAA6B;;;IAItCC,EAAA/E,IAAAC,OAAgB;MACd,MAAM+E,KAAwB/E,KAAK8B,OAAOoC;MAC1C,OACEnB,EAAA;QAAQC,OAAM;SACZD,EAAA;QAAKC,OAAM;SACTD,EAAA;;QAEEC,OAAM;QACNgC,SAAShD,EAAAhC,MAAIgB,GAAA;QACbiE,MAAK;SAEJjD,EAAAhC,MAAIQ,GAAA,KAAmB0E,OAAOC,SAGjCpC,EAAA;;QAEEC,OAAM;QACNgC,UAAUD,KAAwB/C,EAAAhC,MAAI0B,GAAA;QACtC0D,UAAUL;QACVE,MAAK;SAEJjD,EAAAhC,MAAIQ,GAAA,KAAmB0E,OAAOG;AAG5B;sCA7MkC;+BAEhB,IAAIC;;8BAUG;;;;;;;;EA2CtC,gBAAAC;IACEvF,KAAK2B,sBAAsBK,EAAAhC,MAAIc,GAAA,KAC5BR;IAEH0B,EAAAhC,MAAIuD,GAAA,KAA+BiC,KAAnCxF;;EAGF,kBAAAyF;IACE,KAAKzD,EAAAhC,MAAIU,GAAA,MAAqB;MAC5BV,KAAK0F,4BAA4BC,KAC/B3D,EAAAhC,MAAIQ,GAAA,KAAmBoF;MAEzBhE,EAAA5B,MAAIU,GAAsB,MAAI;;;EAIlC,uBAAMmF;IACJjE,EAAA5B,MAAIQ,SAA2BsF,EAAOC,oBAAoB/F,KAAKgG,KAAG;;EAyIpE,MAAAC;IACE,OACElD,EAACmD,GAAI;MAAClD,OAAM;OACVD,EAAA;MAAUoD,OAAOvG;QACjBmD,EAAA;MACEqD,KAAKpE,EAAAhC,MAAIW,GAAA;MACT0F,KAAML,KACHhG,KAAKsG,gBAAgBN;QAI1BjD,EAAA;MAASC,OAAM;OACbD,EAAA;MAAQC,OAAM;OACZD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;OACVhB,EAAAhC,MAAIQ,GAAA,KAAmB+F,OAAOhF,YAEjCwB,EAAA,WAAI/C,KAAKsB,eAAeC,aAG1BwB,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;OAAShB,EAAAhC,MAAIQ,GAAA,KAAmB+F,OAAOC,OACpDzD,EAAA,WAAI/C,KAAKsB,eAAeE,YAG1BuB,EAAA;MACEC,OAAM;MACNgC,SAAShD,EAAAhC,MAAIkB,GAAA;OAEZc,EAAAhC,MAAIQ,GAAA,KAAmB+F,OAAOE,UAInC1D,EAAA;MAASC,OAAM;OACbD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ0D,SAAQ;OAC1B1E,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGoC,aAE7B5D,EAAA;;MAEEC,OAAM;MACNL,IAAG;MACHrC,OAAON,KAAK8B;MACZ8E,SAAS5E,EAAAhC,MAAI4D,GAAA;MACbiD,aAAa7E,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGuC;MACvCT,KAAML,KACHpE,EAAA5B,MAAIe,GAAaiF,GAAuB;QAG5ChE,EAAAhC,MAAIsC,GAAA,KAAuBkD,KAA3BxF,MAA4BgC,EAAAhC,MAAIe,GAAA,QAGnCgC,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAM;MACNmD,OAAOnE,EAAAhC,MAAIK,GAAA;MACX0G,UAAU/E,EAAAhC,MAAI4E,GAAA;MACdtE,OAAO0B,EAAAhC,MAAIK,GAAA,KAAiB,GAAGC;MAC/B+F,KAAKL,KACFpE,EAAA5B,MAAIc,GACHkF,GAAmC;QAIxChG,KAAK2B,wBAAwB,YAC5BoB,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ0D,SAAQ;OAC1B1E,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGyC,gBAE7BjE,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAM;MACNiE,UAAQ;MACRJ,aACE7G,KAAK6E,6BACD7C,EAAAhC,MAAIQ,GAAA,KAAmB+D,GAAGC,sBAC1BxC,EAAAhC,MAAIQ,GAAA,KAAmB+D,GACpB2C;MAET5G,OAAON,KAAKsE;QAEdvB,EAAA;MACEC,OAAM;MACNgC,SAAShD,EAAAhC,MAAI+D,GAAA;MACbqB,WAAWpF,KAAK6E;OAEhB9B,EAAA;MACEqD,KAAKpE,EAAAhC,MAAIF,GAAA;MACTkD,OAAM;cAUrBhB,EAAAhC,MAAI8E,GAAA,KAAcU,KAAlBxF"}
|