@genexus/genexus-ide-ui 1.1.39 → 1.1.40
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-status-message.cjs.entry.js → gx-ide-sign-in-result.cjs.entry.js} +10 -9
- package/dist/cjs/gx-ide-sign-in-result.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +9 -7
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/{status-message/status-message.css → sign-in-result/sign-in-result.css} +2 -0
- package/dist/collection/components/{status-message/status-message.js → sign-in-result/sign-in-result.js} +10 -9
- package/dist/collection/components/sign-in-result/sign-in-result.js.map +1 -0
- package/dist/collection/components/team-dev/history/history.js +10 -8
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +1 -1
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/{gx-ide-status-message.d.ts → gx-ide-sign-in-result.d.ts} +4 -4
- package/dist/components/{gx-ide-status-message.js → gx-ide-sign-in-result.js} +15 -14
- package/dist/components/gx-ide-sign-in-result.js.map +1 -0
- package/dist/components/gx-ide-team-dev-history.js +9 -7
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/{gx-ide-status-message.entry.js → gx-ide-sign-in-result.entry.js} +10 -9
- package/dist/esm/gx-ide-sign-in-result.entry.js.map +1 -0
- package/dist/esm/gx-ide-team-dev-history.entry.js +9 -7
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/p-06e8d9d6.entry.js +63 -0
- package/dist/genexus-ide-ui/p-06e8d9d6.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-585fac4a.entry.js → p-2b38e18e.entry.js} +15 -13
- package/dist/genexus-ide-ui/p-2b38e18e.entry.js.map +1 -0
- package/dist/types/components/{status-message/status-message.d.ts → sign-in-result/sign-in-result.d.ts} +2 -2
- package/dist/types/components/team-dev/history/history.d.ts +2 -2
- package/dist/types/components.d.ts +13 -13
- package/package.json +1 -1
- package/dist/cjs/gx-ide-status-message.cjs.entry.js.map +0 -1
- package/dist/collection/components/status-message/status-message.js.map +0 -1
- package/dist/components/gx-ide-status-message.js.map +0 -1
- package/dist/esm/gx-ide-status-message.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-50253b96.entry.js +0 -61
- package/dist/genexus-ide-ui/p-50253b96.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-585fac4a.entry.js.map +0 -1
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/genexus-next-logo.svg +0 -0
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/left-side-illustration.svg +0 -0
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/right-side-illustration.svg +0 -0
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.en.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.ja.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
- /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.zh.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/genexus-next-logo.svg +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/left-side-illustration.svg +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/right-side-illustration.svg +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.en.json → sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.ja.json → sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.zh.json → sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","isRefresh","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","revisionId","historyDetail","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","selectedRevisionId","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","oldSelectedVersionId","versionsListChanged","newVersionsList","versions","hasActiveVersion","selectedVersionId","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(\n newSelectedVersionId: string,\n oldSelectedVersionId?: string\n ) {\n if (newSelectedVersionId === oldSelectedVersionId) {\n return;\n }\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId, false);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId, false);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (\n versionId: string,\n isRefresh: boolean\n ): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId, isRefresh);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\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-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\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 {renderObjectTypeWithIcon(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 {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId, true)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\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 class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string,\n isRefresh: boolean\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export declare class GxIdeTeamDevHistory {
|
|
|
49
49
|
* The Id of the selected version in the select-kb-items component
|
|
50
50
|
*/
|
|
51
51
|
selectedVersionId: string;
|
|
52
|
-
selectedVersionIdChanged(newSelectedVersionId: string): Promise<void>;
|
|
52
|
+
selectedVersionIdChanged(newSelectedVersionId: string, oldSelectedVersionId?: string): Promise<void>;
|
|
53
53
|
/**
|
|
54
54
|
* List of versions to show in the versions tree
|
|
55
55
|
*/
|
|
@@ -104,6 +104,6 @@ export type ObjectData = {
|
|
|
104
104
|
description: string;
|
|
105
105
|
action: string;
|
|
106
106
|
};
|
|
107
|
-
export type LoadCallback = (filters: FiltersData, versionId: string) => Promise<RevisionData[]>;
|
|
107
|
+
export type LoadCallback = (filters: FiltersData, versionId: string, isRefresh: boolean) => Promise<RevisionData[]>;
|
|
108
108
|
export type LoadDetailCallback = (revision: string) => Promise<RevisionDetailData>;
|
|
109
109
|
export type SelectedVersionChangeCallback = (selectedVersion: string[]) => Promise<void>;
|
|
@@ -2112,6 +2112,8 @@ export namespace Components {
|
|
|
2112
2112
|
*/
|
|
2113
2113
|
"termsCallback": () => Promise<void>;
|
|
2114
2114
|
}
|
|
2115
|
+
interface GxIdeSignInResult {
|
|
2116
|
+
}
|
|
2115
2117
|
interface GxIdeSignInTeam {
|
|
2116
2118
|
/**
|
|
2117
2119
|
* The authentication step to display
|
|
@@ -2262,8 +2264,6 @@ export namespace Components {
|
|
|
2262
2264
|
*/
|
|
2263
2265
|
"warnings": number;
|
|
2264
2266
|
}
|
|
2265
|
-
interface GxIdeStatusMessage {
|
|
2266
|
-
}
|
|
2267
2267
|
interface GxIdeSwitchPanel {
|
|
2268
2268
|
}
|
|
2269
2269
|
interface GxIdeSwitcher {
|
|
@@ -3499,6 +3499,12 @@ declare global {
|
|
|
3499
3499
|
prototype: HTMLGxIdeSignInElement;
|
|
3500
3500
|
new (): HTMLGxIdeSignInElement;
|
|
3501
3501
|
};
|
|
3502
|
+
interface HTMLGxIdeSignInResultElement extends Components.GxIdeSignInResult, HTMLStencilElement {
|
|
3503
|
+
}
|
|
3504
|
+
var HTMLGxIdeSignInResultElement: {
|
|
3505
|
+
prototype: HTMLGxIdeSignInResultElement;
|
|
3506
|
+
new (): HTMLGxIdeSignInResultElement;
|
|
3507
|
+
};
|
|
3502
3508
|
interface HTMLGxIdeSignInTeamElement extends Components.GxIdeSignInTeam, HTMLStencilElement {
|
|
3503
3509
|
}
|
|
3504
3510
|
var HTMLGxIdeSignInTeamElement: {
|
|
@@ -3540,12 +3546,6 @@ declare global {
|
|
|
3540
3546
|
prototype: HTMLGxIdeStatusButtonsElement;
|
|
3541
3547
|
new (): HTMLGxIdeStatusButtonsElement;
|
|
3542
3548
|
};
|
|
3543
|
-
interface HTMLGxIdeStatusMessageElement extends Components.GxIdeStatusMessage, HTMLStencilElement {
|
|
3544
|
-
}
|
|
3545
|
-
var HTMLGxIdeStatusMessageElement: {
|
|
3546
|
-
prototype: HTMLGxIdeStatusMessageElement;
|
|
3547
|
-
new (): HTMLGxIdeStatusMessageElement;
|
|
3548
|
-
};
|
|
3549
3549
|
interface HTMLGxIdeSwitchPanelElement extends Components.GxIdeSwitchPanel, HTMLStencilElement {
|
|
3550
3550
|
}
|
|
3551
3551
|
var HTMLGxIdeSwitchPanelElement: {
|
|
@@ -3765,12 +3765,12 @@ declare global {
|
|
|
3765
3765
|
"gx-ide-server-selector": HTMLGxIdeServerSelectorElement;
|
|
3766
3766
|
"gx-ide-share-kb": HTMLGxIdeShareKbElement;
|
|
3767
3767
|
"gx-ide-sign-in": HTMLGxIdeSignInElement;
|
|
3768
|
+
"gx-ide-sign-in-result": HTMLGxIdeSignInResultElement;
|
|
3768
3769
|
"gx-ide-sign-in-team": HTMLGxIdeSignInTeamElement;
|
|
3769
3770
|
"gx-ide-splash": HTMLGxIdeSplashElement;
|
|
3770
3771
|
"gx-ide-start-page": HTMLGxIdeStartPageElement;
|
|
3771
3772
|
"gx-ide-starting-template": HTMLGxIdeStartingTemplateElement;
|
|
3772
3773
|
"gx-ide-status-buttons": HTMLGxIdeStatusButtonsElement;
|
|
3773
|
-
"gx-ide-status-message": HTMLGxIdeStatusMessageElement;
|
|
3774
3774
|
"gx-ide-switch-panel": HTMLGxIdeSwitchPanelElement;
|
|
3775
3775
|
"gx-ide-switcher": HTMLGxIdeSwitcherElement;
|
|
3776
3776
|
"gx-ide-team-dev-bring-changes": HTMLGxIdeTeamDevBringChangesElement;
|
|
@@ -5771,6 +5771,8 @@ declare namespace LocalJSX {
|
|
|
5771
5771
|
*/
|
|
5772
5772
|
"termsCallback"?: () => Promise<void>;
|
|
5773
5773
|
}
|
|
5774
|
+
interface GxIdeSignInResult {
|
|
5775
|
+
}
|
|
5774
5776
|
interface GxIdeSignInTeam {
|
|
5775
5777
|
/**
|
|
5776
5778
|
* The authentication step to display
|
|
@@ -5921,8 +5923,6 @@ declare namespace LocalJSX {
|
|
|
5921
5923
|
*/
|
|
5922
5924
|
"warnings"?: number;
|
|
5923
5925
|
}
|
|
5924
|
-
interface GxIdeStatusMessage {
|
|
5925
|
-
}
|
|
5926
5926
|
interface GxIdeSwitchPanel {
|
|
5927
5927
|
}
|
|
5928
5928
|
interface GxIdeSwitcher {
|
|
@@ -6468,12 +6468,12 @@ declare namespace LocalJSX {
|
|
|
6468
6468
|
"gx-ide-server-selector": GxIdeServerSelector;
|
|
6469
6469
|
"gx-ide-share-kb": GxIdeShareKb;
|
|
6470
6470
|
"gx-ide-sign-in": GxIdeSignIn;
|
|
6471
|
+
"gx-ide-sign-in-result": GxIdeSignInResult;
|
|
6471
6472
|
"gx-ide-sign-in-team": GxIdeSignInTeam;
|
|
6472
6473
|
"gx-ide-splash": GxIdeSplash;
|
|
6473
6474
|
"gx-ide-start-page": GxIdeStartPage;
|
|
6474
6475
|
"gx-ide-starting-template": GxIdeStartingTemplate;
|
|
6475
6476
|
"gx-ide-status-buttons": GxIdeStatusButtons;
|
|
6476
|
-
"gx-ide-status-message": GxIdeStatusMessage;
|
|
6477
6477
|
"gx-ide-switch-panel": GxIdeSwitchPanel;
|
|
6478
6478
|
"gx-ide-switcher": GxIdeSwitcher;
|
|
6479
6479
|
"gx-ide-team-dev-bring-changes": GxIdeTeamDevBringChanges;
|
|
@@ -6554,12 +6554,12 @@ declare module "@stencil/core" {
|
|
|
6554
6554
|
"gx-ide-server-selector": LocalJSX.GxIdeServerSelector & JSXBase.HTMLAttributes<HTMLGxIdeServerSelectorElement>;
|
|
6555
6555
|
"gx-ide-share-kb": LocalJSX.GxIdeShareKb & JSXBase.HTMLAttributes<HTMLGxIdeShareKbElement>;
|
|
6556
6556
|
"gx-ide-sign-in": LocalJSX.GxIdeSignIn & JSXBase.HTMLAttributes<HTMLGxIdeSignInElement>;
|
|
6557
|
+
"gx-ide-sign-in-result": LocalJSX.GxIdeSignInResult & JSXBase.HTMLAttributes<HTMLGxIdeSignInResultElement>;
|
|
6557
6558
|
"gx-ide-sign-in-team": LocalJSX.GxIdeSignInTeam & JSXBase.HTMLAttributes<HTMLGxIdeSignInTeamElement>;
|
|
6558
6559
|
"gx-ide-splash": LocalJSX.GxIdeSplash & JSXBase.HTMLAttributes<HTMLGxIdeSplashElement>;
|
|
6559
6560
|
"gx-ide-start-page": LocalJSX.GxIdeStartPage & JSXBase.HTMLAttributes<HTMLGxIdeStartPageElement>;
|
|
6560
6561
|
"gx-ide-starting-template": LocalJSX.GxIdeStartingTemplate & JSXBase.HTMLAttributes<HTMLGxIdeStartingTemplateElement>;
|
|
6561
6562
|
"gx-ide-status-buttons": LocalJSX.GxIdeStatusButtons & JSXBase.HTMLAttributes<HTMLGxIdeStatusButtonsElement>;
|
|
6562
|
-
"gx-ide-status-message": LocalJSX.GxIdeStatusMessage & JSXBase.HTMLAttributes<HTMLGxIdeStatusMessageElement>;
|
|
6563
6563
|
"gx-ide-switch-panel": LocalJSX.GxIdeSwitchPanel & JSXBase.HTMLAttributes<HTMLGxIdeSwitchPanelElement>;
|
|
6564
6564
|
"gx-ide-switcher": LocalJSX.GxIdeSwitcher & JSXBase.HTMLAttributes<HTMLGxIdeSwitcherElement>;
|
|
6565
6565
|
"gx-ide-team-dev-bring-changes": LocalJSX.GxIdeTeamDevBringChanges & JSXBase.HTMLAttributes<HTMLGxIdeTeamDevBringChangesElement>;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-status-message.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,gBAAgB,GAAG,wjBAAwjB;;ACSjlB,MAAM,sBAAsB,GAAGA,kBAAY,CACzC,kEAAkE,CACnE,CAAC;AACF,MAAM,uBAAuB,GAAGA,kBAAY,CAC1C,mEAAmE,CACpE,CAAC;AACF,MAAM,iBAAiB,GAAGA,kBAAY,CACpC,6DAA6D,CAC9D,CAAC;AAEF,MAAM,WAAW,GAAmB;;IAElC,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;CAChB,CAAC;MAQW,kBAAkB;;;;IAK7B,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAMC,aAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,gBAAgB,MAAK;IAErB,MAAM;QACJ,QACEC,QAACC,UAAI,IACH,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE;gBACL,eAAe,EAAE,QAAQ,sBAAsB,YAAY,uBAAuB,IAAI;gBACtF,gBAAgB,EAAE,sBAAsB;gBACxC,kBAAkB,EAAE,oBAAoB;gBACxC,cAAc,EAAE,qBAAqB;aACtC,IAEDD,sBAAU,KAAK,EAAE,WAAW,GAAa,EACzCA,iBAAK,KAAK,EAAC,SAAS,IAClBA,kBAAM,KAAK,EAAC,YAAY,GAAQ,EAChCA,gBAAI,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAM,EACxDA,eAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAK,EACrEA,iBAAK,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,mBAAmB,GAAG,CAC5D,CACD,EACP;KACH;;;;;;;;","names":["getAssetPath","Locale","h","Host"],"sources":["src/components/status-message/status-message.scss?tag=gx-ide-status-message&encapsulation=shadow","src/components/status-message/status-message.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.content {\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--mer-color__neutral-gray--100);\n gap: var(--mer-spacing--md);\n}\n\n.check-icon {\n $checkIconSize: 64px;\n block-size: $checkIconSize;\n inline-size: $checkIconSize;\n border-radius: 50%;\n background-color: var(--color-green-1000);\n background-image: var(--icon__system_check_bright--enabled);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n margin-block-end: 18px;\n}\n\n.genexus-next-logo {\n inline-size: 140px;\n margin-block-start: 108px;\n}\n","// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-message.js","sourceRoot":"","sources":["../../../src/components/status-message/status-message.tsx"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,iDAAiD;AAEjD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAI1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,sBAAsB,GAAG,YAAY,CACzC,kEAAkE,CACnE,CAAC;AACF,MAAM,uBAAuB,GAAG,YAAY,CAC1C,mEAAmE,CACpE,CAAC;AACF,MAAM,iBAAiB,GAAG,YAAY,CACpC,6DAA6D,CAC9D,CAAC;AAEF,MAAM,WAAW,GAAmB;IAClC,2DAA2D;IAC3D,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;CAChB,CAAC;AAQF,MAAM,OAAO,kBAAkB;IAK7B,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB,KAAI,CAAC;IAErB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE;gBACL,eAAe,EAAE,QAAQ,sBAAsB,YAAY,uBAAuB,IAAI;gBACtF,gBAAgB,EAAE,sBAAsB;gBACxC,kBAAkB,EAAE,oBAAoB;gBACxC,cAAc,EAAE,qBAAqB;aACtC;YAED,gBAAU,KAAK,EAAE,WAAW,GAAa;YACzC,WAAK,KAAK,EAAC,SAAS;gBAClB,YAAM,KAAK,EAAC,YAAY,GAAQ;gBAChC,UAAI,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAM;gBACxD,SAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAK;gBACrE,WAAK,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,mBAAmB,GAAG,CAC5D,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;CACF","sourcesContent":["// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-status-message.js","mappings":";;;AAAA,MAAM,gBAAgB,GAAG,wjBAAwjB;;ACSjlB,MAAM,sBAAsB,GAAG,YAAY,CACzC,kEAAkE,CACnE,CAAC;AACF,MAAM,uBAAuB,GAAG,YAAY,CAC1C,mEAAmE,CACpE,CAAC;AACF,MAAM,iBAAiB,GAAG,YAAY,CACpC,6DAA6D,CAC9D,CAAC;AAEF,MAAM,WAAW,GAAmB;;IAElC,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;CAChB,CAAC;MAQWA,oBAAkB;;;;;;IAK7B,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,gBAAgB,MAAK;IAErB,MAAM;QACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE;gBACL,eAAe,EAAE,QAAQ,sBAAsB,YAAY,uBAAuB,IAAI;gBACtF,gBAAgB,EAAE,sBAAsB;gBACxC,kBAAkB,EAAE,oBAAoB;gBACxC,cAAc,EAAE,qBAAqB;aACtC,IAED,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,WAAK,KAAK,EAAC,SAAS,IAClB,YAAM,KAAK,EAAC,YAAY,GAAQ,EAChC,UAAI,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAM,EACxD,SAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAK,EACrE,WAAK,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,mBAAmB,GAAG,CAC5D,CACD,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeStatusMessage"],"sources":["src/components/status-message/status-message.scss?tag=gx-ide-status-message&encapsulation=shadow","src/components/status-message/status-message.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.content {\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--mer-color__neutral-gray--100);\n gap: var(--mer-spacing--md);\n}\n\n.check-icon {\n $checkIconSize: 64px;\n block-size: $checkIconSize;\n inline-size: $checkIconSize;\n border-radius: 50%;\n background-color: var(--color-green-1000);\n background-image: var(--icon__system_check_bright--enabled);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n margin-block-end: 18px;\n}\n\n.genexus-next-logo {\n inline-size: 140px;\n margin-block-start: 108px;\n}\n","// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"gx-ide-status-message.entry.js","mappings":";;;AAAA,MAAM,gBAAgB,GAAG,wjBAAwjB;;ACSjlB,MAAM,sBAAsB,GAAG,YAAY,CACzC,kEAAkE,CACnE,CAAC;AACF,MAAM,uBAAuB,GAAG,YAAY,CAC1C,mEAAmE,CACpE,CAAC;AACF,MAAM,iBAAiB,GAAG,YAAY,CACpC,6DAA6D,CAC9D,CAAC;AAEF,MAAM,WAAW,GAAmB;;IAElC,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;CAChB,CAAC;MAQW,kBAAkB;;;;IAK7B,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,gBAAgB,MAAK;IAErB,MAAM;QACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE;gBACL,eAAe,EAAE,QAAQ,sBAAsB,YAAY,uBAAuB,IAAI;gBACtF,gBAAgB,EAAE,sBAAsB;gBACxC,kBAAkB,EAAE,oBAAoB;gBACxC,cAAc,EAAE,qBAAqB;aACtC,IAED,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,WAAK,KAAK,EAAC,SAAS,IAClB,YAAM,KAAK,EAAC,YAAY,GAAQ,EAChC,UAAI,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAM,EACxD,SAAG,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAK,EACrE,WAAK,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,mBAAmB,GAAG,CAC5D,CACD,EACP;KACH;;;;;;;;","names":[],"sources":["src/components/status-message/status-message.scss?tag=gx-ide-status-message&encapsulation=shadow","src/components/status-message/status-message.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.content {\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--mer-color__neutral-gray--100);\n gap: var(--mer-spacing--md);\n}\n\n.check-icon {\n $checkIconSize: 64px;\n block-size: $checkIconSize;\n inline-size: $checkIconSize;\n border-radius: 50%;\n background-color: var(--color-green-1000);\n background-image: var(--icon__system_check_bright--enabled);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n margin-block-end: 18px;\n}\n\n.genexus-next-logo {\n inline-size: 140px;\n margin-block-start: 108px;\n}\n","// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"],"version":3}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { g as s, r as e, h as t, H as a, a as o } from "./p-97107ecc.js";
|
|
2
|
-
|
|
3
|
-
import { L as i } from "./p-311eedf3.js";
|
|
4
|
-
|
|
5
|
-
const n = ":host{display:grid;block-size:100%;overflow:auto;display:flex;align-items:center;justify-content:center}.content{display:flex;align-items:center;flex-direction:column;color:var(--mer-color__neutral-gray--100);gap:var(--mer-spacing--md)}.check-icon{block-size:64px;inline-size:64px;border-radius:50%;background-color:var(--color-green-1000);background-image:var(--icon__system_check_bright--enabled);background-repeat:no-repeat;background-position:center center;background-size:32px;margin-block-end:18px}.genexus-next-logo{inline-size:140px;margin-block-start:108px}";
|
|
6
|
-
|
|
7
|
-
const r = s(`./gx-ide-assets/status-message/images/left-side-illustration.svg`);
|
|
8
|
-
|
|
9
|
-
const c = s(`./gx-ide-assets/status-message/images/right-side-illustration.svg`);
|
|
10
|
-
|
|
11
|
-
const g = s(`./gx-ide-assets/status-message/images/genexus-next-logo.svg`);
|
|
12
|
-
|
|
13
|
-
const l = [
|
|
14
|
-
// Use only the bundles that are needed for this component.
|
|
15
|
-
"resets/box-sizing", "utils/typography", "utils/spacing" ];
|
|
16
|
-
|
|
17
|
-
const d = class {
|
|
18
|
-
constructor(s) {
|
|
19
|
-
e(this, s);
|
|
20
|
-
}
|
|
21
|
-
async componentWillLoad() {
|
|
22
|
-
this._componentLocale = await i.getComponentStrings(this.el);
|
|
23
|
-
}
|
|
24
|
-
componentDidLoad() {}
|
|
25
|
-
render() {
|
|
26
|
-
return t(a, {
|
|
27
|
-
class: "widget spacing-body",
|
|
28
|
-
style: {
|
|
29
|
-
backgroundImage: `url('${r}'), url('${c}')`,
|
|
30
|
-
backgroundRepeat: "no-repeat, no-repeat",
|
|
31
|
-
backgroundPosition: "left, right bottom",
|
|
32
|
-
backgroundSize: "auto 100%, auto 55%"
|
|
33
|
-
}
|
|
34
|
-
}, t("ch-theme", {
|
|
35
|
-
model: l
|
|
36
|
-
}), t("div", {
|
|
37
|
-
class: "content"
|
|
38
|
-
}, t("span", {
|
|
39
|
-
class: "check-icon"
|
|
40
|
-
}), t("h1", {
|
|
41
|
-
class: "heading-3"
|
|
42
|
-
}, this._componentLocale.title), t("p", {
|
|
43
|
-
class: "subtitle-regular-s"
|
|
44
|
-
}, this._componentLocale.description), t("img", {
|
|
45
|
-
src: g,
|
|
46
|
-
alt: "",
|
|
47
|
-
class: "genexus-next-logo"
|
|
48
|
-
})));
|
|
49
|
-
}
|
|
50
|
-
static get assetsDirs() {
|
|
51
|
-
return [ "gx-ide-assets/status-message" ];
|
|
52
|
-
}
|
|
53
|
-
get el() {
|
|
54
|
-
return o(this);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
d.style = n;
|
|
59
|
-
|
|
60
|
-
export { d as gx_ide_status_message };
|
|
61
|
-
//# sourceMappingURL=p-50253b96.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["statusMessageCss","LEFT_SIDE_ILLUSTRATION","getAssetPath","RIGHT_SIDE_ILLUSTRATION","GENEXUS_NEXT_LOGO","CSS_BUNDLES","GxIdeStatusMessage","componentWillLoad","this","_componentLocale","Locale","getComponentStrings","el","componentDidLoad","render","h","Host","class","style","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","model","title","description","src","alt"],"sources":["src/components/status-message/status-message.scss?tag=gx-ide-status-message&encapsulation=shadow","src/components/status-message/status-message.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.content {\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--mer-color__neutral-gray--100);\n gap: var(--mer-spacing--md);\n}\n\n.check-icon {\n $checkIconSize: 64px;\n block-size: $checkIconSize;\n inline-size: $checkIconSize;\n border-radius: 50%;\n background-color: var(--color-green-1000);\n background-image: var(--icon__system_check_bright--enabled);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n margin-block-end: 18px;\n}\n\n.genexus-next-logo {\n inline-size: 140px;\n margin-block-start: 108px;\n}\n","// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"],"mappings":";;;;AAAA,MAAMA,IAAmB;;ACSzB,MAAMC,IAAyBC,EAC7B;;AAEF,MAAMC,IAA0BD,EAC9B;;AAEF,MAAME,IAAoBF,EACxB;;AAGF,MAAMG,IAA8B;;AAElC,qBACA,oBACA;;MASWC,IAAkB;;;;EAK7B,uBAAMC;IACJC,KAAKC,yBAAyBC,EAAOC,oBAAoBH,KAAKI;;EAGhE,gBAAAC,IAAgB;EAEhB,MAAAC;IACE,OACEC,EAACC,GAAI;MACHC,OAAM;MACNC,OAAO;QACLC,iBAAiB,QAAQlB,aAAkCE;QAC3DiB,kBAAkB;QAClBC,oBAAoB;QACpBC,gBAAgB;;OAGlBP,EAAA;MAAUQ,OAAOlB;QACjBU,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAME,OAAM;QACZF,EAAA;MAAIE,OAAM;OAAaT,KAAKC,iBAAiBe,QAC7CT,EAAA;MAAGE,OAAM;OAAsBT,KAAKC,iBAAiBgB,cACrDV,EAAA;MAAKW,KAAKtB;MAAmBuB,KAAI;MAAGV,OAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","revisionId","historyDetail","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","selectedRevisionId","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","selectedVersionId","versionsListChanged","newVersionsList","versions","hasActiveVersion","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(newSelectedVersionId: string) {\n this.selectedVersionId = newSelectedVersionId;\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (versionId: string): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\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-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\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 {renderObjectTypeWithIcon(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 {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\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 class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|