@genexus/genexus-ide-ui 0.0.125 → 0.0.127
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/{gxg-combo-box_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +174 -1
- package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +304 -0
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +8 -7
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gxg-form-checkbox.cjs.entry.js} +1 -174
- package/dist/cjs/gxg-form-checkbox.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/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +1 -1
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +7 -2
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +7 -6
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +39 -0
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +3 -0
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +3 -0
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +469 -0
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -0
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +770 -0
- package/dist/collection/components/modules/types.js.map +1 -1
- package/dist/collection/components/start-page/start-page.js +1 -1
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references-v2.d.ts +11 -0
- package/dist/components/gx-ide-manage-module-references-v2.js +510 -0
- package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -0
- package/dist/components/gx-ide-manage-module-references.js +8 -7
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +1 -1
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/{gxg-combo-box_2.entry.js → gx-ide-container_3.entry.js} +175 -3
- package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +300 -0
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -0
- package/dist/esm/gx-ide-manage-module-references.entry.js +8 -7
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gxg-form-checkbox.entry.js +147 -0
- package/dist/esm/gxg-form-checkbox.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/manage-module-references/langs/manage-module-references.lang.en.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +39 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/{p-c9b810e3.entry.js → p-34850af1.entry.js} +7 -6
- package/dist/genexus-ide-ui/p-34850af1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f35bc31e.entry.js → p-61e4276a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f35bc31e.entry.js.map → p-61e4276a.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f37ec5b8.entry.js → p-74bfec22.entry.js} +286 -103
- package/dist/genexus-ide-ui/p-74bfec22.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-9d7a1451.entry.js +181 -0
- package/dist/genexus-ide-ui/p-9d7a1451.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-d0a8d025.entry.js +435 -0
- package/dist/genexus-ide-ui/p-d0a8d025.entry.js.map +1 -0
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +1 -1
- package/dist/types/components/modules/manage-module-references-v2/manage-module-references-v2.d.ts +107 -0
- package/dist/types/components/modules/types.d.ts +4 -1
- package/dist/types/components.d.ts +82 -0
- package/package.json +1 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +0 -1
- package/dist/esm/gx-ide-container_2.entry.js +0 -319
- package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
- package/dist/esm/gxg-combo-box_2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-7a5810d6.entry.js +0 -364
- package/dist/genexus-ide-ui/p-7a5810d6.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c9b810e3.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f37ec5b8.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/modules/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ModuleServerData = {\n type: \"remote\" | \"local\";\n id: string;\n name: string;\n source?: string;\n authenticated?: boolean;\n};\n\nexport type ModuleServerType = {\n id: string;\n name: string;\n type: \"local\" | \"remote\";\n authenticated: boolean;\n};\n\nexport type ModuleData = {\n id: string;\n versions?: ModuleVersionData[];\n currentVersion?: string | undefined;\n};\n\nexport type ModuleActionType =\n | \"install\"\n | \"restore\"\n | \"update\"\n | \"not-installable\"\n | \"incompatible\";\n\nexport type ModuleFilterType = \"browse\" | \"installed\" | \"updates\";\n\nexport type ModulePropertyData = {\n name: string;\n value?: string | string[];\n inline?: boolean;\n};\n\nexport type ModuleServerFullData = ModuleServerData & {\n user?: string;\n password?: string;\n};\n\nexport type ModuleVersionData = {\n id: string;\n name: string;\n description?: string;\n action: ModuleActionType;\n properties?: ModulePropertyData[];\n
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/modules/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ModuleServerData = {\n type: \"remote\" | \"local\";\n id: string;\n name: string;\n source?: string;\n authenticated?: boolean;\n};\n\nexport type ModuleServerType = {\n id: string;\n name: string;\n type: \"local\" | \"remote\";\n authenticated: boolean;\n};\n\nexport type ModuleData = {\n id: string;\n versions?: ModuleVersionData[];\n currentVersion?: string | undefined;\n};\n\nexport type ModuleActionType =\n | \"install\"\n | \"restore\"\n | \"update\"\n | \"not-installable\"\n | \"incompatible\";\n\nexport type ModuleFilterType = \"browse\" | \"installed\" | \"updates\";\n\nexport type ModulePropertyData = {\n name: string;\n value?: string | string[];\n inline?: boolean;\n};\n\nexport type ModuleServerFullData = ModuleServerData & {\n user?: string;\n password?: string;\n};\n\nexport type ModuleVersionData = {\n id: string;\n name: string;\n description?: string;\n action: ModuleActionType;\n properties?: ModulePropertyData[];\n warningMessage?: string;\n};\n\nexport type ExtendedModuleData = ModuleData & {\n selectedVersion: ModuleVersionData;\n};\n\nexport type EditServerModuleResult = {\n success: boolean;\n message: string;\n};\n"]}
|
|
@@ -69,7 +69,7 @@ export class GxIdeStartPage {
|
|
|
69
69
|
};
|
|
70
70
|
this.renderHomeTabContent = () => {
|
|
71
71
|
var _a, _b;
|
|
72
|
-
return (h("div", { class: "layout layout--two-cols
|
|
72
|
+
return (h("div", { class: "layout layout--two-cols" }, h("gxg-card", { class: "section", cardTitle: this._componentLocale.recentKbs.title, displayHeaderSlot: true }, ((_a = this.kbs) === null || _a === void 0 ? void 0 : _a.length) > 0 ? ([
|
|
73
73
|
h("div", { class: "kbs-container" }, (_b = this.kbs) === null || _b === void 0 ? void 0 : _b.map(kb => {
|
|
74
74
|
return this.renderKb(kb);
|
|
75
75
|
})),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-page.js","sourceRoot":"","sources":["../../../src/components/start-page/start-page.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { formatDate } from \"../../common/helpers\";\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeStartPageElement;\n // private recentNewsEl!: HTMLGxgCardElement;\n\n // 3.STATE() VARIABLES //\n\n /*\n * The filter value to search for kbs\n */\n @State() kbsFilterValue = \"\";\n\n /**\n * True if the component has been rendered for the first time.\n */\n @State() renderedFirstTime = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * A temporary array of news for testing purposes\n */\n @Prop() readonly news: NewsData[];\n\n /**\n * Ann array of the user's KB's\n */\n @Prop() readonly kbs: RecentKBData[];\n\n /**\n * Callback invoked to open a knowledge base when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback: OpenKbCallback;\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback: GetNewsCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback: OpenNewsCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n private getNewsCallbackRecentNews = async (): Promise<NewsData[]> => {\n return new Promise(async resolve => {\n if (this.getNewsCallback) {\n const newsResult = await this.getNewsCallback();\n resolve(newsResult);\n }\n });\n };\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private kbClickHandler = async (e: MouseEvent) => {\n const kbId = (e.target as HTMLElement).id;\n if (this.openKbCallback) {\n await this.openKbCallback(kbId);\n }\n };\n\n private searchKbsInputHandler = (e: CustomEvent<string>) => {\n this.kbsFilterValue = e.detail.toLowerCase();\n };\n\n // private NewsClickHandler = async (e: MouseEvent) => {\n // const newsId = (e.target as HTMLElement).id;\n // if (this.openNewsCallback) {\n // await this.openNewsCallback(newsId);\n // }\n // };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n // private renderNews = (news: NewsData): HTMLGxgCardElement | null => {\n // if (news.id && news.title) {\n // return (\n // <gxg-card\n // id={news.id}\n // key={news.id}\n // cardType=\"article\"\n // cardTitle={news.title}\n // icon=\"gx-test/test-results\"\n // iconColor=\"auto\"\n // actionable\n // onClick={this.NewsClickHandler}\n // titleSemibold\n // noHeaderBorder\n // >\n // {news.body ? <p>{news.body}</p> : null}\n // </gxg-card>\n // );\n // }\n // return null;\n // };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderKb = (kb: RecentKBData): HTMLGxgCardElement | null => {\n if (\n kb.id &&\n kb.name &&\n kb.name.toLowerCase().includes(this.kbsFilterValue)\n ) {\n const formattedDate = formatDate(kb.lastOpenedDate, \"pretty\");\n const subtitle = formattedDate\n ? `${this._componentLocale.recentKbs.lastOpened} ${formattedDate}`\n : null;\n return (\n <gxg-card\n id={kb.id}\n key={kb.id}\n cardType=\"article\"\n cardTitle={kb.name}\n icon=\"general/knowledge-base\"\n iconColor=\"auto\"\n cardSubtitle={subtitle}\n actionable\n filterValue={this.kbsFilterValue}\n onClick={this.kbClickHandler}\n ></gxg-card>\n );\n }\n return null;\n };\n\n private renderHomeTabContent = (): HTMLElement => {\n return (\n <div class=\"layout layout--two-cols layout--space-above\">\n <gxg-card\n class=\"section\"\n cardTitle={this._componentLocale.recentKbs.title}\n displayHeaderSlot\n >\n {this.kbs?.length > 0 ? (\n [\n <div class=\"kbs-container\">\n {this.kbs?.map(kb => {\n return this.renderKb(kb);\n })}\n </div>,\n <gxg-form-text\n slot=\"header\"\n placeholder=\"Search KBs by name\"\n onInput={this.searchKbsInputHandler as any}\n ></gxg-form-text>\n ]\n ) : (\n <gx-ide-empty-state\n class=\"kbs-empty-state\"\n stateIcon=\"mercury/folder\"\n stateTitle=\" You haven't created any Knowledge Base\"\n stateDescription=\"Once you have created your first knowledge base it will appear on this \n window.\"\n ></gx-ide-empty-state>\n )}\n </gxg-card>\n <gx-ide-recent-news\n class=\"section\"\n getNewsCallback={this.getNewsCallbackRecentNews}\n openNewsCallback={this.openNewsCallback}\n ></gx-ide-recent-news>\n </div>\n );\n };\n\n // private renderTabs = (): HTMLGxgTabsElement => {\n // return (\n // <gxg-tabs height=\"auto\" minWidth=\"100%\" no-border>\n // <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.home}\n // tab=\"home\"\n // is-selected\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.learn}\n // tab=\"learn\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.samples}\n // tab=\"samples\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.marketplace}\n // tab=\"marketplace\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.updates}\n // tab=\"updates\"\n // disabled\n // ></gxg-tab-button>\n // </gxg-tab-bar>\n // <gxg-tab tab=\"home\">{this.renderHomeTabContent()}</gxg-tab>\n // <gxg-tab tab=\"learn\"></gxg-tab>\n // <gxg-tab tab=\"samples\"></gxg-tab>\n // <gxg-tab tab=\"marketplace\"></gxg-tab>\n // <gxg-tab tab=\"updates\"></gxg-tab>\n // </gxg-tabs>\n // );\n // };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class={{ rendered: this.renderedFirstTime }}>\n {/* this.renderTabs()*/}\n {this.renderHomeTabContent()}\n </Host>\n );\n }\n}\n\nexport type OpenKbCallback = (id: string) => Promise<void>;\nexport type GetNewsCallback = () => Promise<NewsData[]>;\nexport type OpenNewsCallback = (id: string) => Promise<void>;\n\nexport type RecentKBData = {\n id: string;\n name: string;\n lastOpenedDate?: Date;\n};\nexport type NewsData = {\n id: string;\n title: string;\n body: string;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"start-page.js","sourceRoot":"","sources":["../../../src/components/start-page/start-page.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { formatDate } from \"../../common/helpers\";\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeStartPageElement;\n // private recentNewsEl!: HTMLGxgCardElement;\n\n // 3.STATE() VARIABLES //\n\n /*\n * The filter value to search for kbs\n */\n @State() kbsFilterValue = \"\";\n\n /**\n * True if the component has been rendered for the first time.\n */\n @State() renderedFirstTime = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * A temporary array of news for testing purposes\n */\n @Prop() readonly news: NewsData[];\n\n /**\n * Ann array of the user's KB's\n */\n @Prop() readonly kbs: RecentKBData[];\n\n /**\n * Callback invoked to open a knowledge base when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback: OpenKbCallback;\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback: GetNewsCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback: OpenNewsCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n private getNewsCallbackRecentNews = async (): Promise<NewsData[]> => {\n return new Promise(async resolve => {\n if (this.getNewsCallback) {\n const newsResult = await this.getNewsCallback();\n resolve(newsResult);\n }\n });\n };\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private kbClickHandler = async (e: MouseEvent) => {\n const kbId = (e.target as HTMLElement).id;\n if (this.openKbCallback) {\n await this.openKbCallback(kbId);\n }\n };\n\n private searchKbsInputHandler = (e: CustomEvent<string>) => {\n this.kbsFilterValue = e.detail.toLowerCase();\n };\n\n // private NewsClickHandler = async (e: MouseEvent) => {\n // const newsId = (e.target as HTMLElement).id;\n // if (this.openNewsCallback) {\n // await this.openNewsCallback(newsId);\n // }\n // };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n // private renderNews = (news: NewsData): HTMLGxgCardElement | null => {\n // if (news.id && news.title) {\n // return (\n // <gxg-card\n // id={news.id}\n // key={news.id}\n // cardType=\"article\"\n // cardTitle={news.title}\n // icon=\"gx-test/test-results\"\n // iconColor=\"auto\"\n // actionable\n // onClick={this.NewsClickHandler}\n // titleSemibold\n // noHeaderBorder\n // >\n // {news.body ? <p>{news.body}</p> : null}\n // </gxg-card>\n // );\n // }\n // return null;\n // };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderKb = (kb: RecentKBData): HTMLGxgCardElement | null => {\n if (\n kb.id &&\n kb.name &&\n kb.name.toLowerCase().includes(this.kbsFilterValue)\n ) {\n const formattedDate = formatDate(kb.lastOpenedDate, \"pretty\");\n const subtitle = formattedDate\n ? `${this._componentLocale.recentKbs.lastOpened} ${formattedDate}`\n : null;\n return (\n <gxg-card\n id={kb.id}\n key={kb.id}\n cardType=\"article\"\n cardTitle={kb.name}\n icon=\"general/knowledge-base\"\n iconColor=\"auto\"\n cardSubtitle={subtitle}\n actionable\n filterValue={this.kbsFilterValue}\n onClick={this.kbClickHandler}\n ></gxg-card>\n );\n }\n return null;\n };\n\n private renderHomeTabContent = (): HTMLElement => {\n return (\n <div class=\"layout layout--two-cols\">\n <gxg-card\n class=\"section\"\n cardTitle={this._componentLocale.recentKbs.title}\n displayHeaderSlot\n >\n {this.kbs?.length > 0 ? (\n [\n <div class=\"kbs-container\">\n {this.kbs?.map(kb => {\n return this.renderKb(kb);\n })}\n </div>,\n <gxg-form-text\n slot=\"header\"\n placeholder=\"Search KBs by name\"\n onInput={this.searchKbsInputHandler as any}\n ></gxg-form-text>\n ]\n ) : (\n <gx-ide-empty-state\n class=\"kbs-empty-state\"\n stateIcon=\"mercury/folder\"\n stateTitle=\" You haven't created any Knowledge Base\"\n stateDescription=\"Once you have created your first knowledge base it will appear on this \n window.\"\n ></gx-ide-empty-state>\n )}\n </gxg-card>\n <gx-ide-recent-news\n class=\"section\"\n getNewsCallback={this.getNewsCallbackRecentNews}\n openNewsCallback={this.openNewsCallback}\n ></gx-ide-recent-news>\n </div>\n );\n };\n\n // private renderTabs = (): HTMLGxgTabsElement => {\n // return (\n // <gxg-tabs height=\"auto\" minWidth=\"100%\" no-border>\n // <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.home}\n // tab=\"home\"\n // is-selected\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.learn}\n // tab=\"learn\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.samples}\n // tab=\"samples\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.marketplace}\n // tab=\"marketplace\"\n // disabled\n // ></gxg-tab-button>\n // <gxg-tab-button\n // slot=\"tab-bar\"\n // tab-label={this._componentLocale.tabs.updates}\n // tab=\"updates\"\n // disabled\n // ></gxg-tab-button>\n // </gxg-tab-bar>\n // <gxg-tab tab=\"home\">{this.renderHomeTabContent()}</gxg-tab>\n // <gxg-tab tab=\"learn\"></gxg-tab>\n // <gxg-tab tab=\"samples\"></gxg-tab>\n // <gxg-tab tab=\"marketplace\"></gxg-tab>\n // <gxg-tab tab=\"updates\"></gxg-tab>\n // </gxg-tabs>\n // );\n // };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class={{ rendered: this.renderedFirstTime }}>\n {/* this.renderTabs()*/}\n {this.renderHomeTabContent()}\n </Host>\n );\n }\n}\n\nexport type OpenKbCallback = (id: string) => Promise<void>;\nexport type GetNewsCallback = () => Promise<NewsData[]>;\nexport type OpenNewsCallback = (id: string) => Promise<void>;\n\nexport type RecentKBData = {\n id: string;\n name: string;\n lastOpenedDate?: Date;\n};\nexport type NewsData = {\n id: string;\n title: string;\n body: string;\n};\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface GxIdeManageModuleReferencesV2 extends Components.GxIdeManageModuleReferencesV2, HTMLElement {}
|
|
4
|
+
export const GxIdeManageModuleReferencesV2: {
|
|
5
|
+
prototype: GxIdeManageModuleReferencesV2;
|
|
6
|
+
new (): GxIdeManageModuleReferencesV2;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { a as renderModuleDataProperties } from './common.js';
|
|
3
|
+
import { L as Locale } from './locale.js';
|
|
4
|
+
import { d as defineCustomElement$t } from './ch-grid2.js';
|
|
5
|
+
import { d as defineCustomElement$s } from './ch-grid-column2.js';
|
|
6
|
+
import { d as defineCustomElement$r } from './ch-grid-column-resize2.js';
|
|
7
|
+
import { d as defineCustomElement$q } from './ch-grid-column-settings2.js';
|
|
8
|
+
import { d as defineCustomElement$p } from './ch-grid-columnset2.js';
|
|
9
|
+
import { d as defineCustomElement$o } from './ch-grid-settings2.js';
|
|
10
|
+
import { d as defineCustomElement$n } from './ch-grid-settings-columns2.js';
|
|
11
|
+
import { d as defineCustomElement$m } from './icon.js';
|
|
12
|
+
import { d as defineCustomElement$l } from './ch-window2.js';
|
|
13
|
+
import { d as defineCustomElement$k } from './ch-window-close2.js';
|
|
14
|
+
import { d as defineCustomElement$j } from './container.js';
|
|
15
|
+
import { d as defineCustomElement$i } from './gx-ide-empty-state2.js';
|
|
16
|
+
import { d as defineCustomElement$h } from './title2.js';
|
|
17
|
+
import { d as defineCustomElement$g } from './button.js';
|
|
18
|
+
import { d as defineCustomElement$f } from './buttons-container.js';
|
|
19
|
+
import { d as defineCustomElement$e } from './combo-box.js';
|
|
20
|
+
import { d as defineCustomElement$d } from './combo-box-item.js';
|
|
21
|
+
import { d as defineCustomElement$c } from './form-checkbox.js';
|
|
22
|
+
import { d as defineCustomElement$b } from './form-radio.js';
|
|
23
|
+
import { d as defineCustomElement$a } from './form-text.js';
|
|
24
|
+
import { d as defineCustomElement$9 } from './gxg-grid2.js';
|
|
25
|
+
import { d as defineCustomElement$8 } from './icon2.js';
|
|
26
|
+
import { d as defineCustomElement$7 } from './ide-loader.js';
|
|
27
|
+
import { d as defineCustomElement$6 } from './gxg-label2.js';
|
|
28
|
+
import { d as defineCustomElement$5 } from './text.js';
|
|
29
|
+
import { d as defineCustomElement$4 } from './title.js';
|
|
30
|
+
import { d as defineCustomElement$3 } from './tooltip.js';
|
|
31
|
+
import { d as defineCustomElement$2 } from './gxg-top-state-bar2.js';
|
|
32
|
+
|
|
33
|
+
const manageModuleReferencesCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0}p,ul{font-size:var(--font-size-lg);margin:0}p{line-height:1.6em}.header{align-items:center;grid-template-columns:1fr auto;grid-template-rows:1fr}.main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:100%;overflow:auto}ch-grid-columnset{display:none}ch-grid-row[selected] gxg-icon[data-action=install]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--xxxs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold);display:flex;align-items:center;gap:var(--mer-spacing--xs)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-cell-module__description{padding-inline-start:36px}.grid-container{height:100%;overflow:auto}.grid-container gx-ide-empty-state{height:100%}.servers-container{display:none;height:100%}.servers-container__header{display:flex;align-items:center;justify-content:space-between;padding:var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding) 0 var(--gxg-list-box-main__padding)}.servers-container__header gxg-button{width:100%}.modules__header{padding:var(--gxg-list-box-main__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo-container{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__server-commands{display:flex;gap:var(--mer-spacing--xs)}.modules__combo{display:flex;flex-direction:row;gap:var(--mer-spacing--xs)}.modules__combo gxg-combo-box{flex:1}.modules__container{border-inline-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main-header{display:flex;padding:var(--mer-spacing--xs);flex-direction:column;gap:var(--mer-spacing--xs)}.module-info{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.module-info__title{display:flex;align-items:center;gap:var(--mer-spacing--xs)}.module-info__name{display:flex;align-items:center;gap:var(--mer-spacing--sm);--ds-icon-size-box--regular:24px;--ds-icon-size--regular:24px;font-weight:var(--mer-font__weight--bold)}.module-info__header{padding:var(--gx-ide-container__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs);border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__action-container{display:flex;flex-direction:row;align-items:center;gap:var(--mer-spacing--xs)}.module-info__action-container:before{content:\"\";width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border-radius:50%;display:block;background-color:var(--mer-icon__primary--disabled)}.module-info__action-container--installed:before{background-color:var(--mer-icon__primary)}.module-info__action-container--uninstallable:before{background-color:var(--mer-icon__warning)}.module-info__warning-message{margin-block-start:var(--mer-spacing--xxs);background-color:var(--mer-color__tinted-yellow--5);color:var(--mer-text__on-elevation);border:var(--mer-border__width--sm) solid var(--mer-border-color__warning);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--xs) var(--mer-spacing--md)}.module-info__divider{width:calc(100% - var(--gx-ide-container__padding) * 4);padding:0 var(--gx-ide-container__padding);margin:0 auto;border:0;border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__properties{display:flex;flex-direction:column;padding:var(--gx-ide-container__padding);gap:var(--mer-spacing--xs);overflow:auto}.md-property{display:grid;gap:var(--mer-spacing--xs)}.md-property--inline{grid-template-columns:auto 1fr}.md-property__key{font-weight:var(--font-weight-bold);max-width:150px}.md-property__value{font-size:var(--mer-font__size--xxs)}.md-property__key>*,.md-property__value>*{display:inline-block}.md-property__list{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.md-property__list>ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--xxs);margin-inline-start:var(--mer-spacing--xs)}.md-property__list>ul li{position:relative;padding-inline-start:12px;line-height:var(--ds-base-font-line-height--comfortable)}.md-property__list>ul li::before{content:\"\";position:absolute;left:0;top:7px;display:inline-block;width:var(--mer-spacing--xxs);height:var(--mer-spacing--xxs);background-color:var(--mer-text__on-surface)}.md-property,.md-property__list{border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);padding-block-end:var(--mer-spacing--xs)}.md-property:last-child,.md-property__list:last-child{border-block-end:0;padding-block-end:0}gxg-ide-loader{border-radius:var(--mer-border__radius--md)}";
|
|
34
|
+
|
|
35
|
+
const GxManageModuleReferencesV2 = /*@__PURE__*/ proxyCustomElement(class GxManageModuleReferencesV2 extends HTMLElement {
|
|
36
|
+
constructor() {
|
|
37
|
+
super();
|
|
38
|
+
this.__registerHost();
|
|
39
|
+
this.__attachShadow();
|
|
40
|
+
this.componentDidRenderFirstTime = createEvent(this, "componentDidRenderFirstTime", 7);
|
|
41
|
+
this.renderedFirstTime = false;
|
|
42
|
+
// 7.LISTENERS //
|
|
43
|
+
// 8.PUBLIC METHODS API //
|
|
44
|
+
// 9.LOCAL METHODS //
|
|
45
|
+
/**
|
|
46
|
+
* Callback invoked to get the progress when module is performing an action
|
|
47
|
+
*/
|
|
48
|
+
this.onProgress = (message, progress, state) => {
|
|
49
|
+
const data = { message, progress, state };
|
|
50
|
+
this.selectedModuleAction = Object.assign({}, data);
|
|
51
|
+
this.progressValue = this.selectedModuleAction.progress;
|
|
52
|
+
this.progressState = this.selectedModuleAction.state;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Used for changing the selected module
|
|
56
|
+
*/
|
|
57
|
+
this.handleModuleChange = (event) => {
|
|
58
|
+
const selectedModuleId = event.detail.rowsId[0];
|
|
59
|
+
this.selectedModule = this.modulesMap.get(selectedModuleId);
|
|
60
|
+
};
|
|
61
|
+
this.moduleActionHandler = (module) => () => {
|
|
62
|
+
this.actionCompleted = false;
|
|
63
|
+
this.closeProgressBar = false;
|
|
64
|
+
this.executeActionCallbackHandler(module);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
|
|
68
|
+
*/
|
|
69
|
+
this.executeActionCallbackHandler = async (module) => {
|
|
70
|
+
if (this.executeActionCallback) {
|
|
71
|
+
this.actionCompleted = false;
|
|
72
|
+
const moduleSelectedVersionId = this.modulesMap.get(module.id)
|
|
73
|
+
.selectedVersion.id;
|
|
74
|
+
const moduleSelectedVersionAction = this.modulesMap.get(module.id)
|
|
75
|
+
.selectedVersion.action;
|
|
76
|
+
const actionCompleted = await this.executeActionCallback(this.selectedServerId, module.id, moduleSelectedVersionId, moduleSelectedVersionAction, this.onProgress);
|
|
77
|
+
if (actionCompleted) {
|
|
78
|
+
this.serverSelectedCallbackHandler(this.selectedServerId, false);
|
|
79
|
+
}
|
|
80
|
+
this.actionCompleted = true;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
this.showModuleMenu = async (e) => {
|
|
84
|
+
if (this.serverContextMenuCallback) {
|
|
85
|
+
const buttonBoundingClientRect = e.target.getBoundingClientRect();
|
|
86
|
+
await this.serverContextMenuCallback({
|
|
87
|
+
selection: [this.selectedServerId],
|
|
88
|
+
clientX: buttonBoundingClientRect.x,
|
|
89
|
+
clientY: buttonBoundingClientRect.y
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
this.searchModulesFilterHandler = (e) => {
|
|
94
|
+
this.searchModulesFilterValue = e.detail.trim().toLowerCase();
|
|
95
|
+
};
|
|
96
|
+
this.getFilteredServerModules = () => {
|
|
97
|
+
return this.serverModulesExtended.filter(module => {
|
|
98
|
+
// Filter conditions
|
|
99
|
+
const nameMatch = module.selectedVersion.name
|
|
100
|
+
.toLowerCase()
|
|
101
|
+
.includes(this.searchModulesFilterValue);
|
|
102
|
+
const descriptionMatch = module.selectedVersion.description
|
|
103
|
+
.toLowerCase()
|
|
104
|
+
.includes(this.searchModulesFilterValue);
|
|
105
|
+
let actionMatch;
|
|
106
|
+
if (this.selectedButtonFilter === "browse") {
|
|
107
|
+
// If browse is selected, display all
|
|
108
|
+
actionMatch = true;
|
|
109
|
+
}
|
|
110
|
+
else if (this.selectedButtonFilter === "installed") {
|
|
111
|
+
actionMatch = !!(module.selectedVersion.action === "update" ||
|
|
112
|
+
module.selectedVersion.action === "restore");
|
|
113
|
+
}
|
|
114
|
+
else if (this.selectedButtonFilter === "updates") {
|
|
115
|
+
actionMatch = !!(module.selectedVersion.action === "update");
|
|
116
|
+
}
|
|
117
|
+
const filtered = (nameMatch || descriptionMatch) && actionMatch;
|
|
118
|
+
return filtered;
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
// 9.LOCAL METHODS > RENDERS //
|
|
122
|
+
this.renderGridOrEmptyState = () => {
|
|
123
|
+
this.filteredServerModules = this.getFilteredServerModules();
|
|
124
|
+
if (this.filteredServerModules.length > 0) {
|
|
125
|
+
return this.renderModulesVersionsGrid();
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return this.renderEmptyStateModules();
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
this.renderModulesVersionsGrid = () => {
|
|
132
|
+
return (h("gxg-grid", { noBorder: true, fullHeight: true }, h("ch-grid", { rowSelectionMode: "single", part: "ch-grid-pending-commits", class: "servers-detail no-border", onSelectionChanged: this.handleModuleChange }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false }), h("ch-grid-column", { settingable: false, size: "min-content" })), this.filteredServerModules.map((module) => (h("ch-grid-row", { rowid: module.id, key: module.id, selected: this.selectedModule && this.selectedModule.id === module.id }, h("ch-grid-cell", { class: "grid-cell-module__info" }, h("span", { class: "grid-cell-module__name" }, h("gxg-icon", { type: "objects/module", "data-action": module.selectedVersion.action, color: this.moduleVersionIconColor(module.id), size: "small" }), module.selectedVersion.name), h("span", { class: "grid-cell-module__description" }, module.selectedVersion.description)), h("ch-grid-cell", null, this.selectedModule && this.selectedModule.id === module.id ? (h("gxg-button", { disabled: !this.actionCompleted ||
|
|
133
|
+
module.selectedVersion.action === "incompatible" ||
|
|
134
|
+
module.selectedVersion.action === "not-installable", fit: true, part: "module-action", onClick: this.moduleActionHandler(module) }, module.selectedVersion.action)) : null)))))));
|
|
135
|
+
};
|
|
136
|
+
this.renderEmptyStateModules = () => {
|
|
137
|
+
return (h("gx-ide-empty-state", { stateIcon: "mercury/filters", stateTitle: this._componentLocale.modules.noModulesFilter }));
|
|
138
|
+
};
|
|
139
|
+
this.moduleVersionIconColor = (moduleId) => {
|
|
140
|
+
const foundModule = this.serverModulesExtended.find(module => {
|
|
141
|
+
return module.id === moduleId;
|
|
142
|
+
});
|
|
143
|
+
if (foundModule) {
|
|
144
|
+
const moduleAction = foundModule.selectedVersion.action;
|
|
145
|
+
const moduleCurrentVersion = foundModule.currentVersion;
|
|
146
|
+
if (moduleAction === "not-installable" ||
|
|
147
|
+
moduleAction === "incompatible") {
|
|
148
|
+
return "warning";
|
|
149
|
+
}
|
|
150
|
+
else if (!moduleCurrentVersion) {
|
|
151
|
+
return "mercury-primary-disabled";
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return "mercury-primary";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return "mercury-primary";
|
|
158
|
+
};
|
|
159
|
+
this.renderVersionIcon = () => {
|
|
160
|
+
return (h("gxg-icon", { type: "objects/module", color: this.moduleVersionIconColor(this.selectedModule.id) }));
|
|
161
|
+
};
|
|
162
|
+
/* module details/information renders*/
|
|
163
|
+
this.renderVersionName = () => {
|
|
164
|
+
return (h("gxg-title", { part: "module-info__name", type: "title-05" }, h("div", { class: "module-info__name" }, this.selectedModule.selectedVersion.name)));
|
|
165
|
+
};
|
|
166
|
+
this.renderVersionWarningMessage = () => {
|
|
167
|
+
const warningMessage = this.selectedModule.selectedVersion.warningMessage;
|
|
168
|
+
if (warningMessage) {
|
|
169
|
+
return h("p", { class: "module-info__warning-message" }, warningMessage);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
this.renderInstalledVersion = () => {
|
|
173
|
+
const currentVersion = this.selectedModule.currentVersion;
|
|
174
|
+
let caption;
|
|
175
|
+
let cssClass = "module-info__action-container";
|
|
176
|
+
if (currentVersion) {
|
|
177
|
+
caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;
|
|
178
|
+
cssClass += ` module-info__action-container--installed`;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
caption =
|
|
182
|
+
this._componentLocale.modulesInformation.moduleProperties.notInstalled;
|
|
183
|
+
}
|
|
184
|
+
return (h("div", { class: cssClass }, h("gxg-text", { part: "module-info__action" }, caption)));
|
|
185
|
+
};
|
|
186
|
+
// Update selected version
|
|
187
|
+
this.moduleVersionsValueChangedHandler = (e) => {
|
|
188
|
+
const selectedVersionId = e.detail.value;
|
|
189
|
+
this.updateSelectedModuleVersion(selectedVersionId);
|
|
190
|
+
};
|
|
191
|
+
this.moduleVersionsItemChangedHandler = (e) => {
|
|
192
|
+
const selectedVersionId = e.detail.value;
|
|
193
|
+
this.updateSelectedModuleVersion(selectedVersionId);
|
|
194
|
+
};
|
|
195
|
+
this.updateSelectedModuleVersion = (selectedVersionId) => {
|
|
196
|
+
const moduleSelectedVersion = this.selectedModule.versions.find(version => {
|
|
197
|
+
return version.id === selectedVersionId;
|
|
198
|
+
});
|
|
199
|
+
if (moduleSelectedVersion) {
|
|
200
|
+
const updatedSelectedModule = Object.assign(Object.assign({}, this.selectedModule), { selectedVersion: moduleSelectedVersion });
|
|
201
|
+
this.selectedModule = updatedSelectedModule;
|
|
202
|
+
// update module selected in modules array as well
|
|
203
|
+
const updatedModuleIndex = this.serverModulesExtended.findIndex(module => module.id === updatedSelectedModule.id);
|
|
204
|
+
if (updatedModuleIndex !== -1) {
|
|
205
|
+
// Update the object with new information
|
|
206
|
+
this.serverModulesExtended[updatedModuleIndex] = Object.assign(Object.assign({}, this.serverModulesExtended[updatedModuleIndex]), updatedSelectedModule);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
this.renderModuleVersions = () => {
|
|
211
|
+
return (h("div", { part: "available-versions" }, h("gxg-combo-box", { id: "versions-combo-box", "disable-filter": true, value: "", part: "module-versions", "display-validation-styles": true, "display-validation-message": true, label: this._componentLocale.modulesInformation.moduleProperties
|
|
212
|
+
.availableVersions, labelPosition: "start", centerLabel: true, onValueChanged: this.moduleVersionsValueChangedHandler, disabled: this.loadingServer || !this.actionCompleted }, this.selectedModule.versions.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.moduleVersionsItemChangedHandler }, item.id))))));
|
|
213
|
+
};
|
|
214
|
+
this.selectedButtonChangedHandler = (e) => {
|
|
215
|
+
this.selectedButtonFilter = e.detail;
|
|
216
|
+
};
|
|
217
|
+
// Update server selected
|
|
218
|
+
this.serverItemSelectedHandler = (e) => {
|
|
219
|
+
const serverId = e.detail.value;
|
|
220
|
+
this.serverSelectedCallbackHandler(serverId, false);
|
|
221
|
+
};
|
|
222
|
+
this.serverValueChangedHandler = (e) => {
|
|
223
|
+
const serverId = e.detail;
|
|
224
|
+
this.serverSelectedCallbackHandler(serverId, false);
|
|
225
|
+
};
|
|
226
|
+
this.reloadServer = () => {
|
|
227
|
+
this.serverSelectedCallbackHandler(this.selectedServerId, true);
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Change the server selected value in response to callbackServerSelected callback
|
|
231
|
+
*/
|
|
232
|
+
this.serverSelectedCallbackHandler = async (serverId, reload) => {
|
|
233
|
+
if (this.serverSelectedCallback) {
|
|
234
|
+
this.loadingServer = true;
|
|
235
|
+
// clear
|
|
236
|
+
this.serverModules = [];
|
|
237
|
+
this.serverModulesExtended = [];
|
|
238
|
+
this.filteredServerModules = [];
|
|
239
|
+
this.modulesMap.clear();
|
|
240
|
+
this.modulesSelectedVersionMap.clear();
|
|
241
|
+
this.serverModules = await this.serverSelectedCallback(serverId, reload);
|
|
242
|
+
// Save modules on Map as well to get information about modules faster
|
|
243
|
+
this.serverModules.forEach(module => {
|
|
244
|
+
const extendedModuleData = Object.assign(Object.assign({}, module), { selectedVersion: module.versions[0] });
|
|
245
|
+
// When the server retrieves the modules, the selected module is by default the first one.
|
|
246
|
+
this.serverModulesExtended.push(extendedModuleData);
|
|
247
|
+
// Save modules on a map as well, for faster retrieval.
|
|
248
|
+
this.modulesMap.set(module.id, extendedModuleData);
|
|
249
|
+
});
|
|
250
|
+
this.selectedServerId = serverId;
|
|
251
|
+
this.loadingServer = false;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
this.progressBarCloseHandler = () => {
|
|
255
|
+
setTimeout(() => {
|
|
256
|
+
this.actionCompleted = true;
|
|
257
|
+
this.closeProgressBar = true;
|
|
258
|
+
// reset
|
|
259
|
+
this.progressValue = 0;
|
|
260
|
+
this.progressState = "in-progress";
|
|
261
|
+
}, 400);
|
|
262
|
+
// delay to force the footer line disappear after the top-state-bar has been closed.
|
|
263
|
+
};
|
|
264
|
+
this.searchModulesFilterValue = "";
|
|
265
|
+
this.selectedButtonFilter = "browse";
|
|
266
|
+
this.serverModules = [];
|
|
267
|
+
this.serverModulesExtended = [];
|
|
268
|
+
this.filteredServerModules = [];
|
|
269
|
+
this.modulesMap = new Map();
|
|
270
|
+
this.selectedModule = undefined;
|
|
271
|
+
this.selectedServerId = undefined;
|
|
272
|
+
this.selectedModuleAction = {
|
|
273
|
+
message: "",
|
|
274
|
+
progress: 0,
|
|
275
|
+
state: "in-progress"
|
|
276
|
+
};
|
|
277
|
+
this.modulesSelectedVersionMap = new Map();
|
|
278
|
+
this.actionCompleted = true;
|
|
279
|
+
this.closeProgressBar = true;
|
|
280
|
+
this.progressValue = 0;
|
|
281
|
+
this.progressState = "in-progress";
|
|
282
|
+
this.loadingServer = false;
|
|
283
|
+
this.displayTitle = false;
|
|
284
|
+
this.servers = [];
|
|
285
|
+
this.serverSelectedCallback = undefined;
|
|
286
|
+
this.executeActionCallback = undefined;
|
|
287
|
+
this.serverContextMenuCallback = undefined;
|
|
288
|
+
this.showServerCommands = false;
|
|
289
|
+
}
|
|
290
|
+
loadingServerHandler(loading) {
|
|
291
|
+
if (loading) {
|
|
292
|
+
this.loaderEl.show = true;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
this.loaderEl.show = false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
299
|
+
componentDidRender() {
|
|
300
|
+
if (!this.renderedFirstTime) {
|
|
301
|
+
this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
|
|
302
|
+
this.renderedFirstTime = true;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
async componentWillLoad() {
|
|
306
|
+
this._componentLocale = await Locale.getComponentStrings(this.el);
|
|
307
|
+
}
|
|
308
|
+
async componentDidLoad() {
|
|
309
|
+
await this.serverSelectedCallbackHandler(this.servers[0].id, false);
|
|
310
|
+
}
|
|
311
|
+
// 11.RENDER() FUNCTION //
|
|
312
|
+
render() {
|
|
313
|
+
return (h(Host, { class: {
|
|
314
|
+
"gx-ide-component": true
|
|
315
|
+
} }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noAboveFooterPadding: true, noBorderAboveFooter: this.closeProgressBar, part: "servers", containerTitle: this.displayTitle ? this._componentLocale.componentName : null }, h("main", { class: "main" }, h("div", { class: "modules__container" }, h("header", { class: "modules__header" }, h("div", { class: "modules__combo-container" }, h("gxg-label", null, this._componentLocale.modules.selectServer), h("div", { class: "modules__combo" }, h("gxg-combo-box", { disabled: this.loadingServer || !this.actionCompleted, disableFilter: true, onValueChanged: this.serverValueChangedHandler }, this.servers.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.serverItemSelectedHandler }, item.name)))), this.showServerCommands ? (h("span", { class: "modules__server-commands" }, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.showModuleMenu }))) : null, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/reset", onClick: this.reloadServer })))), h("div", { class: "modules__main" }, h("div", { class: "modules__main-header" }, h("gxg-form-text", { label: this._componentLocale.modules.searchModules, labelPosition: "above", centerLabel: false, onValueChanged: this.searchModulesFilterHandler, disabled: this.loadingServer || !this.actionCompleted }), h("gxg-buttons-container", { reduced: true, fullWidth: true, class: "modules__browser", onSelectedButtonChanged: this.selectedButtonChangedHandler }, h("gxg-button", { id: "browse", selected: true, disabled: this.loadingServer || !this.actionCompleted }, this._componentLocale.modules.buttonsContainer.browse), h("gxg-button", { id: "installed", disabled: this.loadingServer || !this.actionCompleted }, this._componentLocale.modules.buttonsContainer
|
|
316
|
+
.installed), h("gxg-button", { id: "updates", disabled: this.loadingServer || !this.actionCompleted }, this._componentLocale.modules.buttonsContainer.updates))), h("div", { class: "grid-container", ref: el => (this.serversDetail = el) }, this.renderGridOrEmptyState()))), this.selectedModule ? (h("div", { class: "module-info" }, h("header", { class: "module-info__header" }, h("div", { class: "module-info__title" }, this.renderVersionIcon(), this.renderVersionName()), this.renderInstalledVersion(), this.renderModuleVersions(), this.renderVersionWarningMessage()), h("div", { class: "module-info__properties gxg-scrollbar" }, renderModuleDataProperties(this.selectedModule.selectedVersion.properties)))) : (h("gx-ide-empty-state", { class: "recent-objects__empty-state", stateIcon: "objects/module", stateTitle: this._componentLocale.modulesInformation.emptyState.title, stateDescription: this._componentLocale.modulesInformation.emptyState
|
|
317
|
+
.description }))), h("gxg-top-state-bar", { slot: "footer-above", part: "progress-bar", stateType: this.progressState, noBorder: true, caption: this.selectedModuleAction.message ||
|
|
318
|
+
this._componentLocale.progressBar.defaultCaption, progress: this.progressValue, active: !this.actionCompleted || !this.closeProgressBar, closeType: "not-progress", closedCallback: this.progressBarCloseHandler }))), h("gxg-ide-loader", { loaderTitle: this._componentLocale.servers.loading, ref: el => (this.loaderEl = el), container: this.serversDetail, borderRadius: "0 0 0 8px", abortTime: 60000 })));
|
|
319
|
+
}
|
|
320
|
+
static get assetsDirs() { return ["gx-ide-assets/manage-module-references-v2"]; }
|
|
321
|
+
get el() { return this; }
|
|
322
|
+
static get watchers() { return {
|
|
323
|
+
"loadingServer": ["loadingServerHandler"]
|
|
324
|
+
}; }
|
|
325
|
+
static get style() { return manageModuleReferencesCss; }
|
|
326
|
+
}, [1, "gx-ide-manage-module-references-v2", {
|
|
327
|
+
"displayTitle": [4, "display-title"],
|
|
328
|
+
"servers": [16],
|
|
329
|
+
"serverSelectedCallback": [16],
|
|
330
|
+
"executeActionCallback": [16],
|
|
331
|
+
"serverContextMenuCallback": [16],
|
|
332
|
+
"showServerCommands": [4, "show-server-commands"],
|
|
333
|
+
"searchModulesFilterValue": [32],
|
|
334
|
+
"selectedButtonFilter": [32],
|
|
335
|
+
"serverModules": [32],
|
|
336
|
+
"serverModulesExtended": [32],
|
|
337
|
+
"filteredServerModules": [32],
|
|
338
|
+
"modulesMap": [32],
|
|
339
|
+
"selectedModule": [32],
|
|
340
|
+
"selectedServerId": [32],
|
|
341
|
+
"selectedModuleAction": [32],
|
|
342
|
+
"modulesSelectedVersionMap": [32],
|
|
343
|
+
"actionCompleted": [32],
|
|
344
|
+
"closeProgressBar": [32],
|
|
345
|
+
"progressValue": [32],
|
|
346
|
+
"progressState": [32],
|
|
347
|
+
"loadingServer": [32]
|
|
348
|
+
}, undefined, {
|
|
349
|
+
"loadingServer": ["loadingServerHandler"]
|
|
350
|
+
}]);
|
|
351
|
+
function defineCustomElement$1() {
|
|
352
|
+
if (typeof customElements === "undefined") {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
const components = ["gx-ide-manage-module-references-v2", "ch-grid", "ch-grid-column", "ch-grid-column-resize", "ch-grid-column-settings", "ch-grid-columnset", "ch-grid-settings", "ch-grid-settings-columns", "ch-icon", "ch-window", "ch-window-close", "gx-ide-container", "gx-ide-empty-state", "gx-ide-title", "gxg-button", "gxg-buttons-container", "gxg-combo-box", "gxg-combo-box-item", "gxg-form-checkbox", "gxg-form-radio", "gxg-form-text", "gxg-grid", "gxg-icon", "gxg-ide-loader", "gxg-label", "gxg-text", "gxg-title", "gxg-tooltip", "gxg-top-state-bar"];
|
|
356
|
+
components.forEach(tagName => { switch (tagName) {
|
|
357
|
+
case "gx-ide-manage-module-references-v2":
|
|
358
|
+
if (!customElements.get(tagName)) {
|
|
359
|
+
customElements.define(tagName, GxManageModuleReferencesV2);
|
|
360
|
+
}
|
|
361
|
+
break;
|
|
362
|
+
case "ch-grid":
|
|
363
|
+
if (!customElements.get(tagName)) {
|
|
364
|
+
defineCustomElement$t();
|
|
365
|
+
}
|
|
366
|
+
break;
|
|
367
|
+
case "ch-grid-column":
|
|
368
|
+
if (!customElements.get(tagName)) {
|
|
369
|
+
defineCustomElement$s();
|
|
370
|
+
}
|
|
371
|
+
break;
|
|
372
|
+
case "ch-grid-column-resize":
|
|
373
|
+
if (!customElements.get(tagName)) {
|
|
374
|
+
defineCustomElement$r();
|
|
375
|
+
}
|
|
376
|
+
break;
|
|
377
|
+
case "ch-grid-column-settings":
|
|
378
|
+
if (!customElements.get(tagName)) {
|
|
379
|
+
defineCustomElement$q();
|
|
380
|
+
}
|
|
381
|
+
break;
|
|
382
|
+
case "ch-grid-columnset":
|
|
383
|
+
if (!customElements.get(tagName)) {
|
|
384
|
+
defineCustomElement$p();
|
|
385
|
+
}
|
|
386
|
+
break;
|
|
387
|
+
case "ch-grid-settings":
|
|
388
|
+
if (!customElements.get(tagName)) {
|
|
389
|
+
defineCustomElement$o();
|
|
390
|
+
}
|
|
391
|
+
break;
|
|
392
|
+
case "ch-grid-settings-columns":
|
|
393
|
+
if (!customElements.get(tagName)) {
|
|
394
|
+
defineCustomElement$n();
|
|
395
|
+
}
|
|
396
|
+
break;
|
|
397
|
+
case "ch-icon":
|
|
398
|
+
if (!customElements.get(tagName)) {
|
|
399
|
+
defineCustomElement$m();
|
|
400
|
+
}
|
|
401
|
+
break;
|
|
402
|
+
case "ch-window":
|
|
403
|
+
if (!customElements.get(tagName)) {
|
|
404
|
+
defineCustomElement$l();
|
|
405
|
+
}
|
|
406
|
+
break;
|
|
407
|
+
case "ch-window-close":
|
|
408
|
+
if (!customElements.get(tagName)) {
|
|
409
|
+
defineCustomElement$k();
|
|
410
|
+
}
|
|
411
|
+
break;
|
|
412
|
+
case "gx-ide-container":
|
|
413
|
+
if (!customElements.get(tagName)) {
|
|
414
|
+
defineCustomElement$j();
|
|
415
|
+
}
|
|
416
|
+
break;
|
|
417
|
+
case "gx-ide-empty-state":
|
|
418
|
+
if (!customElements.get(tagName)) {
|
|
419
|
+
defineCustomElement$i();
|
|
420
|
+
}
|
|
421
|
+
break;
|
|
422
|
+
case "gx-ide-title":
|
|
423
|
+
if (!customElements.get(tagName)) {
|
|
424
|
+
defineCustomElement$h();
|
|
425
|
+
}
|
|
426
|
+
break;
|
|
427
|
+
case "gxg-button":
|
|
428
|
+
if (!customElements.get(tagName)) {
|
|
429
|
+
defineCustomElement$g();
|
|
430
|
+
}
|
|
431
|
+
break;
|
|
432
|
+
case "gxg-buttons-container":
|
|
433
|
+
if (!customElements.get(tagName)) {
|
|
434
|
+
defineCustomElement$f();
|
|
435
|
+
}
|
|
436
|
+
break;
|
|
437
|
+
case "gxg-combo-box":
|
|
438
|
+
if (!customElements.get(tagName)) {
|
|
439
|
+
defineCustomElement$e();
|
|
440
|
+
}
|
|
441
|
+
break;
|
|
442
|
+
case "gxg-combo-box-item":
|
|
443
|
+
if (!customElements.get(tagName)) {
|
|
444
|
+
defineCustomElement$d();
|
|
445
|
+
}
|
|
446
|
+
break;
|
|
447
|
+
case "gxg-form-checkbox":
|
|
448
|
+
if (!customElements.get(tagName)) {
|
|
449
|
+
defineCustomElement$c();
|
|
450
|
+
}
|
|
451
|
+
break;
|
|
452
|
+
case "gxg-form-radio":
|
|
453
|
+
if (!customElements.get(tagName)) {
|
|
454
|
+
defineCustomElement$b();
|
|
455
|
+
}
|
|
456
|
+
break;
|
|
457
|
+
case "gxg-form-text":
|
|
458
|
+
if (!customElements.get(tagName)) {
|
|
459
|
+
defineCustomElement$a();
|
|
460
|
+
}
|
|
461
|
+
break;
|
|
462
|
+
case "gxg-grid":
|
|
463
|
+
if (!customElements.get(tagName)) {
|
|
464
|
+
defineCustomElement$9();
|
|
465
|
+
}
|
|
466
|
+
break;
|
|
467
|
+
case "gxg-icon":
|
|
468
|
+
if (!customElements.get(tagName)) {
|
|
469
|
+
defineCustomElement$8();
|
|
470
|
+
}
|
|
471
|
+
break;
|
|
472
|
+
case "gxg-ide-loader":
|
|
473
|
+
if (!customElements.get(tagName)) {
|
|
474
|
+
defineCustomElement$7();
|
|
475
|
+
}
|
|
476
|
+
break;
|
|
477
|
+
case "gxg-label":
|
|
478
|
+
if (!customElements.get(tagName)) {
|
|
479
|
+
defineCustomElement$6();
|
|
480
|
+
}
|
|
481
|
+
break;
|
|
482
|
+
case "gxg-text":
|
|
483
|
+
if (!customElements.get(tagName)) {
|
|
484
|
+
defineCustomElement$5();
|
|
485
|
+
}
|
|
486
|
+
break;
|
|
487
|
+
case "gxg-title":
|
|
488
|
+
if (!customElements.get(tagName)) {
|
|
489
|
+
defineCustomElement$4();
|
|
490
|
+
}
|
|
491
|
+
break;
|
|
492
|
+
case "gxg-tooltip":
|
|
493
|
+
if (!customElements.get(tagName)) {
|
|
494
|
+
defineCustomElement$3();
|
|
495
|
+
}
|
|
496
|
+
break;
|
|
497
|
+
case "gxg-top-state-bar":
|
|
498
|
+
if (!customElements.get(tagName)) {
|
|
499
|
+
defineCustomElement$2();
|
|
500
|
+
}
|
|
501
|
+
break;
|
|
502
|
+
} });
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
const GxIdeManageModuleReferencesV2 = GxManageModuleReferencesV2;
|
|
506
|
+
const defineCustomElement = defineCustomElement$1;
|
|
507
|
+
|
|
508
|
+
export { GxIdeManageModuleReferencesV2, defineCustomElement };
|
|
509
|
+
|
|
510
|
+
//# sourceMappingURL=gx-ide-manage-module-references-v2.js.map
|