@genexus/genexus-ide-ui 1.1.6 → 1.1.7
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-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/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- 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/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.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/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-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/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-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-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/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 +141 -18
- package/package.json +1 -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
|
@@ -190,12 +190,6 @@ const g = class {
|
|
|
190
190
|
columnName: "Last Synchronized",
|
|
191
191
|
settingable: false,
|
|
192
192
|
size: l.tabularGrid.colSize.maxContent
|
|
193
|
-
}), t("ch-tabular-grid-column", {
|
|
194
|
-
class: "tabular-grid-column",
|
|
195
|
-
sortable: true,
|
|
196
|
-
columnName: "User",
|
|
197
|
-
settingable: false,
|
|
198
|
-
size: l.tabularGrid.colSize.maxContent
|
|
199
193
|
})), this.pendingCommits.map((e => t("ch-tabular-grid-row", {
|
|
200
194
|
rowid: e.id,
|
|
201
195
|
class: "tabular-grid-row"
|
|
@@ -224,9 +218,7 @@ const g = class {
|
|
|
224
218
|
class: "tabular-grid-cell"
|
|
225
219
|
}, e.localState), t("ch-tabular-grid-cell", {
|
|
226
220
|
class: "tabular-grid-cell"
|
|
227
|
-
}, `${n(e.lastSynchronized)}`)
|
|
228
|
-
class: "tabular-grid-cell"
|
|
229
|
-
}, e.user)))));
|
|
221
|
+
}, `${n(e.lastSynchronized)}`)))));
|
|
230
222
|
/* ignored objects grid render*/ this.renderIgnoredObjectsGrid = () => t("ch-tabular-grid", {
|
|
231
223
|
class: "tabular-grid",
|
|
232
224
|
rowSelectionMode: "multiple",
|
|
@@ -282,11 +274,6 @@ const g = class {
|
|
|
282
274
|
columnName: "Last Synchronized",
|
|
283
275
|
settingable: false,
|
|
284
276
|
size: l.tabularGrid.colSize.maxContent
|
|
285
|
-
}), t("ch-tabular-grid-column", {
|
|
286
|
-
class: "tabular-grid-column",
|
|
287
|
-
columnName: "User",
|
|
288
|
-
settingable: false,
|
|
289
|
-
size: l.tabularGrid.colSize.maxContent
|
|
290
277
|
})), this.ignoredObjects.map((e => t("ch-tabular-grid-row", {
|
|
291
278
|
rowid: e.id,
|
|
292
279
|
selected: true,
|
|
@@ -312,9 +299,7 @@ const g = class {
|
|
|
312
299
|
class: "tabular-grid-cell"
|
|
313
300
|
}, e.localState), t("ch-tabular-grid-cell", {
|
|
314
301
|
class: "tabular-grid-cell"
|
|
315
|
-
}, `${n(e.lastSynchronized)}`)
|
|
316
|
-
class: "tabular-grid-cell"
|
|
317
|
-
}, e.user)))));
|
|
302
|
+
}, `${n(e.lastSynchronized)}`)))));
|
|
318
303
|
this.getRecentCommentHandler = async () => {
|
|
319
304
|
if (this.getRecentCommentCallback) {
|
|
320
305
|
const e = await this.getRecentCommentCallback();
|
|
@@ -585,4 +570,4 @@ const g = class {
|
|
|
585
570
|
g.style = c;
|
|
586
571
|
|
|
587
572
|
export { g as gx_ide_team_dev_commit };
|
|
588
|
-
//# sourceMappingURL=p-
|
|
573
|
+
//# sourceMappingURL=p-34fd4875.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["commitCss","CSS_BUNDLES","GxIdeTeamDevCommit","this","loadDataCalledFirstTime","renderedFirstTime","conditionToCommit","async","commitComment","commitCommentEl","value","length","pendingChecked","chGridPendingCommitsEl","getMarkedRows","commitButtonEnabled","markAllPendingCommitsRows","markAllRows","togglePendingCommitsCheckboxes","itemsToToggle","itemsToCheck","itemsToUncheck","rowId","markRow","revertPendingCommitsCheckboxes","addedRowsIds","removedRowsId","renderIconState","state","icon","h","src","class","pendingCommitsRowMarkingChangedHandler","e","removeEventListener","detail","addedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","addEventListener","objectsOnContextMenuCallbackHandler","grid","ev","preventDefault","stopPropagation","selection","selectedRowsId","chGridIgnoredObjectsEl","getSelectedRows","objectsContextMenuCallback","clientX","clientY","gridOnSelectionChangedCallbackHandler","selectCallback","rowsId","renderPendingCommitsGrid","rowSelectionMode","ref","el","part","onRowContextMenu","onSelectionChanged","columnType","richRowSelector","richRowSelectorMode","settingable","sortable","size","config","tabularGrid","colSize","maxContent","columnName","commonDouble","pendingCommits","map","obj","rowid","id","iconType","name","type","description","formatDate","modifiedOn","module","localState","lastSynchronized","renderIgnoredObjectsGrid","ignoredObjects","selected","getRecentCommentHandler","getRecentCommentCallback","response","comment","commitCallbackHandler","then","pendingCommitsCheckedIds","commitCallback","loadData","filtersData","pattern","patternEl","changeSet","changeSetEl","folder","foldersEl","category","categoriesEl","typesEl","evaluateFilterConditions","loadCallback","pending","ignored","toggleFiltersHandler","filtersHidden","filterHasConditions","componentWillLoad","_componentLocale","Locale","getComponentStrings","componentDidLoad","componentDidLoadEvent","emit","focus","componentDidRender","componentDidRenderFirstTime","componentName","reload","render","Host","model","noContentPadding","noHeadingPadding","headingPaddingTop","containerTitle","displayTitle","slimmerFooter","gxIdeContainer","noHeadingBorder","slot","labelPosition","noMargin","header","commentLabel","onClick","recentCommentsButton","height","singleLine","onInput","placeholder","commentPlaceholder","filtersMenu","patternLabel","changesetLabel","onValueChanged","renderComboItems","typeLabel","types","folderLabel","folders","categoryLabel","categories","displayBorder","tabs","tab","flex","disabled","footer","commitButton"],"sources":["src/components/team-dev/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/commit/commit.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/*--- Header ---*/\n.header {\n border-top: 1px solid var(--gx-ide-container-border-color);\n display: flex;\n flex-direction: column;\n > * {\n padding: var(--gx-ide-container__padding);\n }\n &__first-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -3px;\n .commit-label {\n flex: none;\n }\n .commit-textarea {\n flex: none;\n }\n &__right-col {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n }\n }\n &__second-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n }\n .filters-outer-wrapper {\n display: grid;\n padding: 0;\n grid-template-rows: 1fr;\n transition: grid-template-rows 200ms;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n &--hidden {\n grid-template-rows: 0fr;\n }\n }\n .filters-inner-wrapper {\n overflow: hidden;\n }\n &__third-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n display: grid;\n column-gap: var(--gx-ide-grid-column-gap);\n row-gap: var(--gx-ide-grid-row-gap);\n grid-template-columns: auto 1fr auto 1fr;\n grid-template-areas:\n \"pattern-label pattern-form-text pattern-form-text pattern-form-text\"\n \"changeset-label changeset-combo type-label type-combo\"\n \"folder-label folder-combo category-label category-combo\";\n\n .pattern-label {\n grid-area: pattern-label;\n }\n .pattern-form-text {\n grid-area: pattern-form-text;\n }\n .changeset-label {\n grid-area: changeset-label;\n }\n .changeset-combo {\n grid-area: changeset-combo;\n }\n .type-label {\n grid-area: type-label;\n }\n .type-combo {\n grid-area: type-combo;\n }\n .folder-label {\n grid-area: folder-label;\n }\n .folder-combo {\n grid-area: folder-combo;\n }\n .category-label {\n grid-area: category-label;\n }\n .category-combo {\n grid-area: category-combo;\n }\n }\n}\n/*--- Main ---*/\n.main {\n height: 100%;\n}\n.grid-container {\n padding: 0;\n}\nch-grid {\n height: auto;\n}\n\ngxg-tab::part(container) {\n line-height: unset;\n}\n\n.tabular-grid {\n block-size: 100%;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-td-commit\",\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\n/*--- WA to be removed after gx-ide-container is removed ---*/\ngx-ide-container::part(content) {\n overflow: hidden;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Method,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\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\";\nimport {\n GxOption,\n ObjectState,\n ContextMenuInfo,\n ObjectType,\n ItemsCheckedState,\n ItemsCheckedResult\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@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 // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private loadDataCalledFirstTime = false; // pending commits grid checkboxes, should be checked, after loadData has loaded commits for the first time.\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n // filters\n private patternEl!: HTMLGxgFormTextElement;\n private changeSetEl!: HTMLGxgComboBoxElement;\n private typesEl!: HTMLGxgComboBoxElement;\n private foldersEl!: HTMLGxgComboBoxElement;\n private categoriesEl!: HTMLGxgComboBoxElement;\n // other\n private chGridPendingCommitsEl!: HTMLChGridElement;\n private chGridIgnoredObjectsEl!: HTMLChGridElement;\n private commitCommentEl!: HTMLGxgFormTextareaElement;\n\n // 3.STATE() VARIABLES //\n\n @State() filtersHidden = true;\n @State() comment = \"\";\n @State() pendingCommits: ModifiedObjectData[] = [];\n @State() ignoredObjects: ModifiedObjectData[] = [];\n @State() commitButtonEnabled = false;\n @State() filterHasConditions = false;\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 * Possible values for ChangeSet filter\n */\n @Prop() readonly changeSet: GxOption[];\n\n /**\n * Possible values for Type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Possible values for Folders filter\n */\n @Prop() readonly folders: GxOption[];\n\n /**\n * Possible values for Categories filter\n */\n @Prop() readonly categories: GxOption[];\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 user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Callback that should be invoked when the user selects rows from the grids\n */\n @Prop() readonly selectCallback: CommitSelectCallback;\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 that must be invoked when user activate the context menu in any of the grids\n */\n @Prop() readonly objectsContextMenuCallback: ObjectsContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.loadData();\n this.loadDataCalledFirstTime = true;\n this.componentDidLoadEvent.emit(true);\n this.conditionToCommit();\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 // 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 refresh in the grids.\n */\n @Method()\n async reload(): Promise<void> {\n this.loadData();\n }\n\n // 9.LOCAL METHODS //\n\n private conditionToCommit = async () => {\n const commitComment = !!this.commitCommentEl.value.length;\n const pendingChecked = await this.chGridPendingCommitsEl.getMarkedRows();\n if (commitComment && pendingChecked.length > 0) {\n this.commitButtonEnabled = true;\n } else {\n this.commitButtonEnabled = false;\n }\n };\n\n private markAllPendingCommitsRows = () => {\n this.chGridPendingCommitsEl.markAllRows();\n };\n\n private 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 private 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 private renderIconState = (state: ObjectState): HTMLChImageElement => {\n let icon: string;\n switch (state) {\n case \"inserted\":\n icon = \"gx-server/new\";\n break;\n case \"modified\":\n icon = \"gx-server/changes-commit-pending\";\n break;\n case \"deleted\":\n icon = \"gx-server/delete\";\n break;\n case \"conflicted\":\n icon = \"gx-server/conflict\";\n break;\n }\n return <ch-image src={icon} class=\"icon-md\"></ch-image>;\n };\n\n private 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 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.conditionToCommit();\n this.chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n }\n };\n\n private 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 private 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 /* pending commits grid render*/\n private renderPendingCommitsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-td-commit\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridPendingCommitsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"commit\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"commit\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\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 class=\"tabular-grid-column\"\n columnName=\"State\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Name\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Type\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Modified On\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n {/* <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"User\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column> */}\n </ch-tabular-grid-columnset>\n\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 <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.iconType} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.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.module}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\n </ch-tabular-grid-cell>\n {/* <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell> */}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n /* ignored objects grid render*/\n private renderIgnoredObjectsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridIgnoredObjectsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"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 class=\"tabular-grid-column\"\n columnName=\"\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"TypeIcon\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Name\"\n settingable={false}\n sortable\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Type\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Modified On\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n {/* <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"User\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column> */}\n </ch-tabular-grid-columnset>\n\n {this.ignoredObjects.map((obj: ModifiedObjectData) => (\n <ch-tabular-grid-row rowid={obj.id} selected class=\"tabular-grid-row\">\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 <ch-image src={obj.iconType} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.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.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\n </ch-tabular-grid-cell>\n {/* <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell> */}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private getRecentCommentHandler = async () => {\n if (this.getRecentCommentCallback) {\n const response = await this.getRecentCommentCallback();\n if (response) {\n this.comment = response;\n }\n }\n };\n\n private commitCallbackHandler = async () => {\n const commitCommentEl = this.commitCommentEl.value;\n this.chGridPendingCommitsEl\n .getMarkedRows()\n .then(async pendingCommitsCheckedIds => {\n await this.commitCallback(pendingCommitsCheckedIds, commitCommentEl);\n /* returns boolean*/\n });\n };\n\n private loadData = async (): Promise<void> => {\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 // this.pendingCommits = null;\n // this.ignoredObjects = null;\n\n return await this.loadCallback(filtersData).then(\n async ({ pending, ignored }) => {\n this.pendingCommits = pending;\n this.ignoredObjects = ignored;\n }\n );\n };\n\n private toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n private evaluateFilterConditions = () => {\n if (\n this.patternEl.value ||\n this.changeSetEl.value ||\n this.typesEl.value ||\n this.foldersEl.value ||\n this.categoriesEl.value\n ) {\n this.filterHasConditions = true;\n } else {\n this.filterHasConditions = false;\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\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 noContentPadding\n noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n noHeadingBorder\n >\n <div class=\"header\" slot=\"header\">\n <div class=\"header__first-row\">\n <div class=\"header__first-row__left-col\">\n <gxg-label\n part=\"commit-label\"\n labelPosition=\"start\"\n class=\"commit-label\"\n noMargin\n >\n {this._componentLocale.header.commentLabel}\n </gxg-label>\n </div>\n <div class=\"header__first-row__right-col\">\n {/* filter button*/}\n <gxg-button\n onClick={this.toggleFiltersHandler}\n type=\"secondary-icon-only\"\n icon={\n this.filterHasConditions\n ? \"window-tools/filter-conditions\"\n : \"window-tools/filter\"\n }\n part=\"gxg-button gxg-button--show-filter\"\n class=\"filter-btn\"\n ></gxg-button>\n\n {/* reset button*/}\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=\"reset-btn\"\n ></gxg-button>\n\n {/* recen comments button*/}\n <gxg-button\n class=\"header-button\"\n type=\"outlined\"\n part=\"location\"\n onClick={this.getRecentCommentHandler}\n >\n {this._componentLocale.header.recentCommentsButton}\n </gxg-button>\n </div>\n </div>\n <div class=\"header__second-row\">\n {/* commit comment textarea*/}\n <gxg-form-textarea\n height=\"90px\"\n value={this.comment}\n ref={(el: HTMLGxgFormTextareaElement) =>\n (this.commitCommentEl = el)\n }\n singleLine\n onInput={this.conditionToCommit}\n placeholder={this._componentLocale.header.commentPlaceholder}\n part=\"comment\"\n class=\"commit-textarea\"\n ></gxg-form-textarea>\n </div>\n <div\n class={{\n \"filters-outer-wrapper\": true,\n \"filters-outer-wrapper--hidden\": this.filtersHidden\n }}\n >\n <div\n class={{\n \"filters-inner-wrapper\": true\n }}\n >\n <div\n class={{\n \"header__third-row\": true\n }}\n >\n {/* pattern*/}\n <gxg-label\n part=\"pattern-label\"\n labelPosition=\"start\"\n class=\"pattern-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.patternLabel}\n </gxg-label>\n <gxg-form-text\n disable-filter\n value=\"\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.patternEl = el as HTMLGxgFormTextElement)\n }\n display-validation-styles\n display-validation-message\n part=\"pattern-form-text\"\n class=\"pattern-form-text\"\n onInput={this.loadData}\n ></gxg-form-text>\n\n {/* changeset */}\n <gxg-label\n part=\"changeset-label\"\n labelPosition=\"start\"\n class=\"changeset-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.changesetLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.changeSet[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.changeSetEl = el as HTMLGxgComboBoxElement)\n }\n part=\"changeset-combo\"\n class=\"changeset-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.changeSet)}\n </gxg-combo-box>\n\n {/* type */}\n <gxg-label\n part=\"type-label\"\n labelPosition=\"start\"\n class=\"type-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.typeLabel}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n value={this.types[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.typesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"type-combo\"\n class=\"type-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.types)}\n </gxg-combo-box>\n\n {/* folder */}\n <gxg-label\n part=\"folder-label\"\n labelPosition=\"start\"\n class=\"folder-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.folderLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.folders[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.foldersEl = el as HTMLGxgComboBoxElement)\n }\n part=\"folder-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.folders)}\n </gxg-combo-box>\n\n {/* category */}\n <gxg-label\n part=\"category-label\"\n labelPosition=\"start\"\n class=\"category-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.categoryLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.categories[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.categoriesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"category-combo\"\n class=\"category-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.categories)}\n </gxg-combo-box>\n </div>\n </div>\n </div>\n </div>\n <main class=\"main\">\n <gx-ide-container noContentPadding class=\"grid-container\">\n <div class=\"tabs-container gxi-full-height\">\n <gxg-tabs class=\"gxg-tabs\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`}\n tab=\"pending-commits\"\n is-selected\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`}\n tab=\"ignored-objects\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab tab=\"pending-commits\" no-padding flex>\n {this.renderPendingCommitsGrid()}\n </gxg-tab>\n <gxg-tab tab=\"ignored-objects\" no-padding flex>\n {this.renderIgnoredObjectsGrid()}\n </gxg-tab>\n </gxg-tabs>\n </div>\n </gx-ide-container>\n </main>\n\n {/* footer */}\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.commitCallbackHandler}\n part=\"commit-button\"\n disabled={!this.commitButtonEnabled}\n >\n {this._componentLocale.footer.commitButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GetRecentComment = () => Promise<string | undefined>;\n\nexport type LoadCallback = (filters: FiltersData) => Promise<CommitData>;\n\nexport type CommitCallback = (\n selection: string[],\n commitCommentEl: string\n) => Promise<boolean>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type CommitSelectCallback = (\n grid: CommitSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type ItemCheckedCallback = (\n checkedItemIds: string[]\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type ObjectsContextMenuCallback = (\n grid: CommitSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type CommitSourceType = \"commit\" | \"ignored\";\n\nexport type CommitData = {\n pending: ModifiedObjectData[];\n ignored: ModifiedObjectData[];\n};\n\nexport type ModifiedObjectData = {\n id: string;\n name: string;\n iconType: string;\n state: ObjectState;\n type: string;\n description: string;\n modifiedOn: Date;\n module: string;\n localState: ObjectState;\n lastSynchronized: Date;\n user: string;\n};\n\nexport type FiltersData = {\n pattern: string;\n changeSet: string;\n type: string;\n folder: string;\n category: string;\n};\n"],"mappings":"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"}
|