@genexus/genexus-ide-ui 3.2.19 → 3.2.20
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/gx-ide-new-kb.cjs.entry.js +10 -4
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +41 -5
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/{tabular-grid-column-sort-5ca06dc1.js → tabular-grid-column-sort-c635967f.js} +9 -1
- package/dist/cjs/tabular-grid-column-sort-c635967f.js.map +1 -0
- package/dist/collection/common/chameleon/tabular-grid-column-sort.js +8 -0
- package/dist/collection/common/chameleon/tabular-grid-column-sort.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.js +10 -4
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.css +10 -0
- package/dist/collection/components/team-dev/history/history.css +10 -0
- package/dist/collection/components/team-dev/history/history.js +40 -4
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/server-selector.css +10 -0
- package/dist/collection/components/team-dev/update/update.css +10 -0
- package/dist/collection/components/team-dev/version-control/commit/commit.css +10 -0
- package/dist/components/gx-ide-new-kb.js +10 -4
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +1 -1
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +41 -5
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/tabular-grid-column-sort.js +8 -0
- package/dist/components/tabular-grid-column-sort.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +10 -4
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +2 -2
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +41 -5
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/{tabular-grid-column-sort-1d503b27.js → tabular-grid-column-sort-882e9c03.js} +9 -1
- package/dist/esm/tabular-grid-column-sort-882e9c03.js.map +1 -0
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/p-1b811074.js +44 -0
- package/dist/genexus-ide-ui/p-1b811074.js.map +1 -0
- package/dist/genexus-ide-ui/{p-944a589f.entry.js → p-2168cc7f.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-c2f2d79f.entry.js → p-6bbc342d.entry.js} +163 -103
- package/dist/genexus-ide-ui/p-6bbc342d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7b76b0e4.entry.js → p-82caf783.entry.js} +13 -13
- package/dist/genexus-ide-ui/{p-f1b452fb.entry.js → p-9acf9b26.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-cd9e9e2b.entry.js → p-dfad17cc.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-ea98ae0b.entry.js → p-eb2b88d4.entry.js} +133 -126
- package/dist/genexus-ide-ui/p-eb2b88d4.entry.js.map +1 -0
- package/dist/types/common/chameleon/tabular-grid-column-sort.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js.map +0 -1
- package/dist/esm/tabular-grid-column-sort-1d503b27.js.map +0 -1
- package/dist/genexus-ide-ui/p-02fb496a.js +0 -36
- package/dist/genexus-ide-ui/p-02fb496a.js.map +0 -1
- package/dist/genexus-ide-ui/p-c2f2d79f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ea98ae0b.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-944a589f.entry.js.map → p-2168cc7f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7b76b0e4.entry.js.map → p-82caf783.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f1b452fb.entry.js.map → p-9acf9b26.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cd9e9e2b.entry.js.map → p-dfad17cc.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-kb.js","sourceRoot":"","sources":["../../../src/components/new-kb/new-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n Prop,\n Element,\n State,\n getAssetPath,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { getSelectedItem, setSelectedItem } from \"../../common/common\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n TabModel,\n ComboBoxModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst WINDOWS_AUTHENTICATION_VALUE: string = \"WINDOWS_AUTHENTICATION\";\nconst LOCALDB_INSTANCE: string = \"(LocalDB)\\\\MSSQLLocalDB\";\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\n\nconst SYSTEM_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"primary\"\n});\n\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"on-interactive\"\n});\n\nconst DATABASE_ICON = getIconPath({\n category: \"system\",\n name: \"database\",\n colorType: \"primary\"\n});\n\nconst SUCCESS_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"success\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"error\"\n});\n\nconst DATABASE_NAME_PREFIX: string = \"GX_KB_\";\n\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-kb\",\n styleUrl: \"new-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-kb\"]\n})\nexport class GxIdeNewKb {\n #advancedTabHasBeenRendered: boolean = false;\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedPrototypingEnvironmentId: string;\n #selectedDataSourceId: string;\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-kb/shortcuts.json`);\n #kbSectionsModel: TabModel = [];\n\n @Element() el: HTMLGxIdeNewKbElement;\n\n /* References needed to collect data con \"Create\" button submit*/\n #authenticationTypeEl!: HTMLChComboBoxRenderElement;\n #collationEl!: HTMLChComboBoxRenderElement;\n #createDataFilesInKBFolderEl!: HTMLChCheckboxElement;\n #databaseNameEl!: HTMLChEditElement;\n #dataSourceEl!: HTMLChComboBoxRenderElement;\n #kbNameEl!: HTMLChEditElement;\n #locationEl!: HTMLChEditElement;\n #locationElRegistered = false;\n #credentialControlsRegistered = false;\n #passwordEl!: HTMLChEditElement;\n #prototypingEnvironmentEl!: HTMLChComboBoxRenderElement;\n #prototypingTargetEl!: HTMLChComboBoxRenderElement;\n #savePasswordEl!: HTMLChCheckboxElement;\n #serverNameEl!: HTMLChComboBoxRenderElement;\n #userInterfaceLanguageEl!: HTMLChComboBoxRenderElement;\n #userNameEl!: HTMLChEditElement;\n\n /**\n * Monotonic id of the latest collations request. Used to discard stale\n * responses: a slow request for an invalid instance can resolve after a\n * newer request for a valid instance, and without this guard it would\n * overwrite the UI with the wrong (failed) result.\n */\n #collationsRequestId = 0;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n\n @State() advancedTabIsVisible: boolean = false;\n @State() loadingAdvancedTab: boolean = false;\n @State() browseForMoreDialogOpen: boolean = false;\n @State() databaseNameValue: string = \"\";\n /**\n * Allows selecting multiple generators for the front end\n * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.\n */\n @State() frontEnds: GxOption[];\n /**\n * True when front ends are available but none is selected, meaning the KB\n * will be generated as backend only. Drives the backend-only callout.\n */\n @State() noFrontEndSelected: boolean = false;\n @State() validatableControls = new Map<string, ControlValidation>();\n @State() connectionStatus: \"connecting\" | \"success\" | \"failed\" | undefined;\n @State() userNameValue: string = \"\";\n @State() passwordValue: string = \"\";\n\n // representations of GxOption[] as ComboBoxModel, and initialValue for each one.\n @State() authenticationTypes: GxOption[] = [];\n @Watch(\"authenticationTypes\")\n watchAuthenticationTypes(newValue: GxOption[]) {\n if (newValue?.length) {\n this.authenticationTypesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.authenticationTypeValue = getSelectedItem(newValue);\n }\n }\n @State() authenticationTypesComboBoxModel: ComboBoxModel = [];\n @State() authenticationTypeValue: string;\n @State() collations: GxOption[] = [];\n @Watch(\"collations\")\n watchCollations(newValue: GxOption[]) {\n if (!newValue?.length) {\n this.collationsComboBoxModel = [];\n return;\n }\n this.collationsComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n }\n @State() collationsComboBoxModel: ComboBoxModel = [];\n @State() defaultCollation: string;\n @State() defaultDataSourcesComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsInitialValue: string;\n @State() prototypingEnvironmentsComboBoxModel: ComboBoxModel = [];\n @State() prototypingEnvironmentsInitialValue: string;\n @State() serverInstances: GxOption[] = [];\n @Watch(\"serverInstances\")\n watchServerInstances(newValue: GxOption[]) {\n if (!newValue?.length) {\n this.serverInstancesComboBoxModel = [];\n return;\n }\n this.serverInstancesComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n }\n @State() serverInstancesComboBoxModel: ComboBoxModel = [];\n @State() serverNameValue: string = \"\";\n @State() userInterfaceLanguagesComboBoxModel: ComboBoxModel = [];\n @State() userInterfaceLanguagesInitialValue: string;\n @State() selectedTab: string = BASIC_TAB_SELECTOR;\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Specifies whether the location field (and its folder-picker button) is\n * shown in the header, allowing the user to override the default `kbLocation`\n * path. Independent from `isAdvanced`.\n */\n @Prop() readonly canSetLocation: boolean = false;\n\n /**\n * Callback invoked when the advanced tab is selected for the first time.\n * Returns the data needed to populate the advanced tab fields lazily,\n * avoiding unnecessary loading at component initialization.\n */\n @Prop() readonly getAdvancedTabDataCallback: GetAdvancedTabDataCallback;\n\n /**\n * Callback that will be invoked when the user confirms KB creation (‘Create’ button)\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * It allows defining whether the option to create the data files in the KB folder will be shown in the advanced tab\n */\n @Prop({ mutable: true }) createDataFilesInKBFolder: boolean = true;\n\n /**\n * Name of the database where we are going to persist the information of our KB\n */\n @Prop() readonly databaseName: string;\n\n /**\n * It allows defining the DBMS that will be used in the solution\n */\n @Prop({ mutable: true }) defaultDataSources: GxOption[] = [];\n @Watch(\"defaultDataSources\")\n watchDefaultDataSources(newValue: GxOption[]) {\n if (newValue?.length) {\n this.defaultDataSourcesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n const result = setSelectedItem(newValue, this.#selectedDataSourceId);\n this.#selectedDataSourceId = getSelectedItem(result);\n }\n }\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly getDataSourcesCallback: GetDataSourcesCallback;\n\n /**\n * Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments\n */\n @Prop()\n readonly getPrototypingEnvironmentsCallback!: GetPrototypingEnvironmentsCallback;\n\n /**\n * Specify whether it is feasible to display information related to local configuration parameters\n */\n @Prop() readonly isAdvanced = false;\n\n /**\n * Default suggested path to a directory where the information related to the KB will be stored/generated\n */\n @Prop({ mutable: true }) kbLocation: string;\n\n /**\n * The knowledge base default suggested name\n */\n @Prop() readonly kbName: string;\n\n /**\n * Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)\n */\n @Prop() readonly password: string;\n\n /**\n * It allows selecting the default environment that the KB will have (additional environments can be created later)\n */\n @Prop({ mutable: true }) defaultPrototypingEnvironments: GxOption[] = [];\n @Watch(\"defaultPrototypingEnvironments\")\n watchDefaultPrototypingEnvironments(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingEnvironmentsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.#selectedPrototypingEnvironmentId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Path to a directory where the information related to the KB will be stored/generated\n */\n @Prop() readonly prototypingTargets: GxOption[] = [];\n @Watch(\"prototypingTargets\")\n watchPrototypingTargets(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingTargetsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.prototypingTargetsInitialValue = getSelectedItem(newValue);\n this.#getPrototypingEnvironments();\n }\n }\n\n /**\n * Visible if something other than Windows Authentication is selected\n */\n @Prop() readonly savePassword: boolean = false;\n\n /**\n * This is a function provided by the developer that returns a string, with the location path\n */\n @Prop() readonly selectLocationCallback!: SelectLocationCallback;\n\n /**\n * Callback invoked when the user clicks the \"Browse for more...\" button next\n * to the Server Name combo. The host is expected to display its own server\n * picker UI and resolve with the name of the selected server instance, which\n * will be set as the value of the Server Name combo.\n */\n @Prop() readonly browseForMoreCallback: BrowseForMoreCallback;\n\n /**\n * Callback invoked when the user selects a different server instance,\n * allowing the host to fetch the collations available on that instance.\n */\n @Prop()\n readonly getCollationsForInstanceCallback: GetCollationsForInstanceCallback;\n\n /**\n * Specify the language in which the application screens will be developed (default language)\n */\n @Prop() readonly userInterfaceLanguages: GxOption[] = [];\n @Watch(\"userInterfaceLanguages\")\n watchUserInterfaceLanguages(newValue: GxOption[]) {\n if (newValue?.length) {\n this.userInterfaceLanguagesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.userInterfaceLanguagesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Username for the database connection. Visible if the Authentication Type is different from Windows Authentication\n */\n @Prop({ mutable: true }) userName: string;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.databaseNameValue = this.#computeDefaultDatabaseName(this.kbName);\n if (this.databaseName) {\n this.databaseNameValue = this.databaseName;\n }\n this.userNameValue = this.userName ?? \"\";\n this.passwordValue = this.password ?? \"\";\n this.#kbSectionsModel = [\n {\n id: BASIC_TAB_SELECTOR,\n name: this.#componentLocale.tabBasic.tabLabel\n },\n {\n id: ADVANCED_TAB_SELECTOR,\n name: this.#componentLocale.tabAdvanced.tabLabel\n }\n ];\n }\n\n connectedCallback() {\n this.watchDefaultDataSources(this.defaultDataSources);\n this.watchDefaultPrototypingEnvironments(\n this.defaultPrototypingEnvironments\n );\n this.watchPrototypingTargets(this.prototypingTargets);\n this.watchUserInterfaceLanguages(this.userInterfaceLanguages);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n // Defer the one-time setup until the real advanced content is rendered\n // (not the loader); otherwise the control refs it reads are still undefined.\n if (\n this.advancedTabIsVisible &&\n !this.loadingAdvancedTab &&\n !this.#advancedTabHasBeenRendered\n ) {\n // just call this once.\n this.#initialSetupAdvancedTab();\n this.#initializeValidatableControlsAdvancedTab();\n this.#advancedTabHasBeenRendered = true;\n }\n\n // Register the location input for validation once it's rendered\n if (!this.#locationElRegistered && this.#locationEl) {\n this.validatableControls.set(this.#locationEl.id, {\n reference: this.#locationEl,\n hasError: false,\n message: undefined\n });\n this.#locationElRegistered = true;\n }\n\n // Register credential controls when they become visible (SQL Auth selected)\n if (\n this.authenticationTypeValue !== WINDOWS_AUTHENTICATION_VALUE &&\n !this.#credentialControlsRegistered &&\n this.#userNameEl &&\n this.#passwordEl\n ) {\n this.validatableControls.set(this.#userNameEl.id, {\n reference: this.#userNameEl,\n hasError: false,\n message: undefined\n });\n this.validatableControls.set(this.#passwordEl.id, {\n reference: this.#passwordEl,\n hasError: false,\n message: undefined\n });\n this.#credentialControlsRegistered = true;\n }\n\n // Reset flag when switching back to Windows Auth so they re-register next time\n if (\n this.authenticationTypeValue === WINDOWS_AUTHENTICATION_VALUE &&\n this.#credentialControlsRegistered\n ) {\n this.#credentialControlsRegistered = false;\n }\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n #computeDefaultDatabaseName = (kbName: string): string =>\n `${DATABASE_NAME_PREFIX}${kbName ?? \"\"}`;\n\n #kbNameInputHandler = (e: CustomEvent<string> | InputEvent) => {\n const kbNameValue = (e.detail ?? this.#kbNameEl?.value) as string;\n this.databaseNameValue = this.#computeDefaultDatabaseName(kbNameValue);\n };\n\n #databaseNameInputHandler = (e: CustomEvent<string> | InputEvent) => {\n this.databaseNameValue = (e.detail ??\n this.#databaseNameEl?.value) as string;\n };\n\n #handlerAuthenticationTypeInput = async (\n e: CustomEvent<string> | InputEvent\n ) => {\n this.authenticationTypeValue = (e as CustomEvent<string>)?.detail as string;\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = undefined;\n await this.#loadCollationsForCurrentConnection();\n };\n\n #handlerCredentialsChanged = async (): Promise<void> => {\n this.userNameValue = this.#userNameEl?.value ?? \"\";\n this.passwordValue = this.#passwordEl?.value ?? \"\";\n await this.#loadCollationsForCurrentConnection();\n };\n\n #browseForMoreHandler = async (): Promise<void> => {\n if (!this.browseForMoreCallback) {\n return;\n }\n this.browseForMoreDialogOpen = true;\n try {\n const selectedInstance = await this.browseForMoreCallback();\n if (selectedInstance) {\n this.serverNameValue = selectedInstance;\n if (this.#serverNameEl) {\n this.#serverNameEl.value = selectedInstance;\n }\n await this.#serverNameChangedHandler(\n new CustomEvent<string>(\"change\", { detail: selectedInstance })\n );\n }\n } catch (error) {\n } finally {\n this.browseForMoreDialogOpen = false;\n }\n };\n\n #serverNameChangedHandler = async (\n e: CustomEvent<string> | InputEvent\n ): Promise<void> => {\n const selectedInstance =\n (e as CustomEvent<string>)?.detail ??\n (e.target as HTMLInputElement)?.value;\n this.serverNameValue = selectedInstance ?? \"\";\n this.#applyCreateDataFilesInKBFolderForServer();\n await this.#loadCollationsForCurrentConnection();\n };\n\n #classifyServer = (\n serverName: string\n ): \"localdb\" | \"local\" | \"remote\" | \"empty\" => {\n if (!serverName) {\n return \"empty\";\n }\n if (serverName.toLowerCase() === LOCALDB_INSTANCE.toLowerCase()) {\n return \"localdb\";\n }\n const isLocal = (this.serverInstances ?? []).some(\n s => s.label?.toLowerCase() === serverName.toLowerCase()\n );\n return isLocal ? \"local\" : \"remote\";\n };\n\n #createDataFilesInKBFolderDisabled = (): boolean => {\n const kind = this.#classifyServer(this.serverNameValue);\n return kind === \"localdb\" || kind === \"remote\" || kind === \"empty\";\n };\n\n #sqlAuthMissingCredentials = (): boolean => {\n const authType = this.authenticationTypeValue;\n if (!authType || authType === WINDOWS_AUTHENTICATION_VALUE) {\n return false;\n }\n return !this.userNameValue || !this.passwordValue;\n };\n\n #applyCreateDataFilesInKBFolderForServer = (): void => {\n const kind = this.#classifyServer(this.serverNameValue);\n if (kind === \"local\" || kind === \"localdb\") {\n this.createDataFilesInKBFolder = true;\n } else if (kind === \"remote\") {\n this.createDataFilesInKBFolder = false;\n }\n };\n\n #loadCollationsForCurrentConnection = async (): Promise<void> => {\n const selectedInstance = this.serverNameValue;\n if (!selectedInstance || !this.getCollationsForInstanceCallback) {\n return;\n }\n const authType = this.authenticationTypeValue;\n const isWindowsAuth = authType === WINDOWS_AUTHENTICATION_VALUE;\n const userName = isWindowsAuth ? undefined : this.#userNameEl?.value;\n const password = isWindowsAuth ? undefined : this.#passwordEl?.value;\n\n if (!isWindowsAuth && authType && (!userName || !password)) {\n return;\n }\n\n // Tag this request so we can ignore its response if a newer request is\n // fired before it resolves (e.g. the user fixes an invalid server name\n // while the slow request for the invalid one is still pending).\n const requestId = ++this.#collationsRequestId;\n this.connectionStatus = \"connecting\";\n try {\n const result = await this.getCollationsForInstanceCallback(\n selectedInstance,\n authType,\n userName,\n password\n );\n if (requestId !== this.#collationsRequestId) {\n // A newer request superseded this one; discard the stale response.\n return;\n }\n if (result) {\n this.collations = result.collations ?? [];\n this.defaultCollation = result.defaultCollation ?? undefined;\n this.connectionStatus = \"success\";\n } else {\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = \"failed\";\n }\n } catch {\n if (requestId !== this.#collationsRequestId) {\n return;\n }\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = \"failed\";\n }\n };\n\n #prototypingEnvironmentValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ): void => {\n this.#selectedPrototypingEnvironmentId = event.detail as string;\n this.#getDataSources();\n this.#updateFrontEnds();\n };\n\n #prototypingTargetValueChangedHandler = async (): Promise<void> => {\n await this.#getPrototypingEnvironments();\n this.#getDataSources();\n };\n\n #dataSourceValueChangedHandler = () => {\n this.#selectedDataSourceId = this.#dataSourceEl.value;\n };\n\n #renderAdvanced = (): Element[] => {\n const showCredentials =\n this.authenticationTypeValue !== WINDOWS_AUTHENTICATION_VALUE;\n\n return [\n <section class=\"kb-storage-card\" part=\"kb-storage-card\">\n <header class=\"kb-storage-card__header\">\n <div class=\"kb-storage-card__heading\">\n <h2 class=\"kb-storage-card__title body-semi-bold-m\">\n {this.#componentLocale.tabAdvanced.tabTitle}\n </h2>\n </div>\n </header>\n\n <div class=\"kb-storage-card__grid\">\n <div class=\"kb-storage-column\">\n <div class=\"kb-storage-column__title body-regular-xs\">\n <span class=\"kb-storage-column__title-text\">\n {this.#componentLocale.tabAdvanced.connectionGroup}\n </span>\n <span class=\"kb-storage-column__title-rule\" aria-hidden=\"true\" />\n </div>\n\n <div class=\"field-group field-group--stacked\">\n <div class=\"field field-block server-name-field\">\n <label class=\"label\" htmlFor=\"serverName\">\n {this.#componentLocale.tabAdvanced.serverName.label}\n </label>\n <div class=\"server-name-wrapper\">\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.serverNameValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#serverNameEl = el as HTMLChComboBoxRenderElement)\n }\n id=\"serverName\"\n part=\"server-name\"\n model={this.serverInstancesComboBoxModel}\n suggest\n suggestDebounce={config.inputDebounce}\n onInput={this.#serverNameChangedHandler}\n onChange={this.#serverNameChangedHandler}\n ></ch-combo-box-render>\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label={\n this.#componentLocale.tabAdvanced.serverName.browseForMore\n }\n part=\"button-browse-for-more\"\n onClick={this.#browseForMoreHandler}\n >\n <ch-image class=\"icon-m\" src={DATABASE_ICON}></ch-image>\n {!this.browseForMoreDialogOpen && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-start\"\n inlineAlign=\"center\"\n delay={config.tooltipSettings.delay}\n >\n {\n this.#componentLocale.tabAdvanced.serverName\n .browseForMore\n }\n </ch-tooltip>\n )}\n </button>\n </div>\n {this.#evaluateTooltipRender(this.#serverNameEl)}\n </div>\n\n <div class=\"field field-block database-field\">\n <label class=\"label\" htmlFor=\"databaseName\">\n {this.#componentLocale.tabAdvanced.databaseName.label}\n </label>\n <ch-edit\n class=\"input\"\n value={this.databaseNameValue}\n id=\"databaseName\"\n part=\"database-name\"\n onInput={this.#databaseNameInputHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#databaseNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n\n {this.#evaluateTooltipRender(this.#databaseNameEl)}\n </div>\n\n <div class=\"field field-block collation-field\">\n <label class=\"label\" htmlFor=\"collation\">\n {this.#componentLocale.tabAdvanced.collation.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={\n !this.serverNameValue || this.collations.length === 0\n }\n placeholder={\n this.collations.length === 0\n ? this.#componentLocale.tabAdvanced.collation\n .disabledPlaceholder\n : \"\"\n }\n value={this.defaultCollation}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#collationEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.collationsComboBoxModel}\n id=\"collation\"\n part=\"collation\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#collationEl)}\n </div>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"true\"\n value={this.createDataFilesInKBFolder ? \"true\" : undefined}\n disabled={this.#createDataFilesInKBFolderDisabled()}\n caption={\n this.#componentLocale.tabAdvanced.createDataFilesInKbFolder\n }\n part=\"create-data-in-kb\"\n id=\"createDataFilesInKBFolder\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#createDataFilesInKBFolderEl =\n el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n </div>\n\n <div class=\"kb-storage-column\">\n <div class=\"kb-storage-column__title body-regular-xs\">\n <span class=\"kb-storage-column__title-text\">\n {this.#componentLocale.tabAdvanced.authenticationGroup}\n </span>\n <span class=\"kb-storage-column__title-rule\" aria-hidden=\"true\" />\n </div>\n\n <div class=\"field-group field-group--stacked\">\n <div class=\"field field-block authentication-type-field\">\n <label class=\"label\" htmlFor=\"authenticationType\">\n {this.#componentLocale.tabAdvanced.authenticationType.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.authenticationTypes.length === 0}\n placeholder={\n this.authenticationTypes.length === 0\n ? this.#componentLocale.tabAdvanced.authenticationType\n .disabledPlaceholder\n : \"\"\n }\n value={this.authenticationTypeValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#authenticationTypeEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.authenticationTypesComboBoxModel}\n id=\"authenticationType\"\n part=\"authentication-type\"\n onInput={\n this.authenticationTypes.length > 0\n ? this.#handlerAuthenticationTypeInput\n : undefined\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#authenticationTypeEl)}\n </div>\n\n {showCredentials ? (\n <div class=\"kb-storage-credentials\">\n <div class=\"field field-block username-field\">\n <label class=\"label\" htmlFor=\"userName\">\n {this.#componentLocale.tabAdvanced.userName.label}\n </label>\n <ch-edit\n class=\"input\"\n value={this.userName}\n id=\"userName\"\n part=\"user-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#userNameEl = el as HTMLChEditElement)\n }\n onInput={this.#handlerCredentialsChanged}\n debounce={config.inputDebounce}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#userNameEl)}\n </div>\n\n <div class=\"field field-block password-field\">\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.tabAdvanced.password.label}\n </label>\n <ch-edit\n class=\"input\"\n type=\"password\"\n showPasswordButton\n value={this.password}\n id=\"password\"\n part=\"password\"\n ref={(el: HTMLChEditElement) =>\n (this.#passwordEl = el as HTMLChEditElement)\n }\n onInput={this.#handlerCredentialsChanged}\n debounce={config.inputDebounce}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordEl)}\n </div>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"password\"\n value=\"password\"\n caption={this.#componentLocale.tabAdvanced.savePassword}\n part=\"save-password\"\n id=\"savePassword\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#savePasswordEl = el as HTMLChCheckboxElement)\n }\n disabled\n ></ch-checkbox>\n </div>\n ) : (\n <div class=\"kb-storage-callout\" part=\"windows-auth-callout\">\n <ch-image\n class=\"icon-l\"\n src={WARNING_ICON}\n type=\"mask\"\n ></ch-image>\n\n <div class=\"kb-storage-callout-inner\">\n <span class=\"kb-storage-callout__title body-semi-bold-s\">\n {\n this.#componentLocale.tabAdvanced\n .windowsAuthCalloutTitle\n }\n </span>\n <span class=\"kb-storage-callout__description body-regular-xs\">\n {\n this.#componentLocale.tabAdvanced\n .windowsAuthCalloutDescription\n }\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </section>\n ];\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <section class=\"basic__header field-group dialog-header-with-border spacing-body-inline\">\n <div\n // #prototyping target\n class=\"field field-block prototyping-target\"\n >\n <label class=\"label\" htmlFor=\"prototypingTarget\">\n {this.#componentLocale.tabBasic.prototypingTarget.label}\n </label>\n\n <ch-combo-box-render\n id=\"prototypingTarget\"\n class=\"combo-box\"\n part=\"prototyping-target\"\n disabled={this.prototypingTargets.length === 0}\n placeholder={\n this.prototypingTargets.length === 0\n ? this.#componentLocale.tabBasic.prototypingTarget\n .disabledPlaceholder\n : \"\"\n }\n value={this.prototypingTargetsInitialValue}\n model={this.prototypingTargetsComboBoxModel}\n onInput={\n this.prototypingTargets.length > 0\n ? this.#prototypingTargetValueChangedHandler\n : undefined\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingTargetEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingTargetEl)}\n </div>\n\n <div\n // #user interface\n class=\"field field-block user-interface-language\"\n >\n <label class=\"label\" htmlFor=\"userInterfaceLanguage\">\n {this.#componentLocale.tabBasic.userInterfaceLanguage.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.userInterfaceLanguages.length === 0}\n placeholder={\n this.userInterfaceLanguages.length === 0\n ? this.#componentLocale.tabBasic.userInterfaceLanguage\n .disabledPlaceholder\n : \"\"\n }\n value={this.userInterfaceLanguagesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#userInterfaceLanguageEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.userInterfaceLanguagesComboBoxModel}\n id=\"userInterfaceLanguage\"\n part=\"user-interface-language\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#userInterfaceLanguageEl)}\n </div>\n </section>,\n\n <section\n class=\"section__back-end\"\n // backend\n >\n <h2\n // back end\n class=\"dialog-header dialog-header-with-border dialog-header__back-end subtitle-regular-xs\t text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #prototyping environment\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"prototypingEnvironment\">\n {\n this.#componentLocale.tabBasic.backEnd.prototypingEnvironment\n .label\n }\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.defaultPrototypingEnvironments.length === 0}\n placeholder={\n this.defaultPrototypingEnvironments.length === 0\n ? this.#componentLocale.tabBasic.backEnd\n .prototypingEnvironment.disabledPlaceholder\n : \"\"\n }\n value={this.#selectedPrototypingEnvironmentId}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingEnvironmentEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.prototypingEnvironmentsComboBoxModel}\n onInput={this.#prototypingEnvironmentValueChangedHandler}\n part=\"prototyping-environment\"\n id=\"prototypingEnvironment\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingEnvironmentEl)}\n </div>\n\n <div\n // #data source\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"dataSource\">\n {this.#componentLocale.tabBasic.backEnd.dataSource.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.defaultDataSources.length === 0}\n placeholder={\n this.defaultDataSources.length === 0\n ? this.#componentLocale.tabBasic.backEnd.dataSource\n .disabledPlaceholder\n : \"\"\n }\n value={this.#selectedDataSourceId}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataSourceEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#dataSourceValueChangedHandler}\n model={this.defaultDataSourcesComboBoxModel}\n part=\"data-source\"\n id=\"dataSource\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataSourceEl)}\n </div>\n </div>\n </section>,\n\n <section\n class=\"section__front-end\"\n // front end\n >\n <h2 class=\"dialog-header dialog-header-with-border dialog-header__front-end subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div class=\"field-group main__front-end spacing-body-inline scrollable\">\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n )\n )}\n\n {this.noFrontEndSelected && (\n <div class=\"kb-storage-callout\" part=\"backend-only-callout\">\n <ch-image\n class=\"icon-l\"\n src={WARNING_ICON}\n type=\"mask\"\n ></ch-image>\n\n <div class=\"kb-storage-callout-inner\">\n <span class=\"kb-storage-callout__title body-semi-bold-s\">\n {\n this.#componentLocale.tabBasic.frontEnd\n .backendOnlyCalloutTitle\n }\n </span>\n <span class=\"kb-storage-callout__description body-regular-xs\">\n {\n this.#componentLocale.tabBasic.frontEnd\n .backendOnlyCalloutDescription\n }\n </span>\n </div>\n </div>\n )}\n </div>\n </section>\n ];\n };\n\n // - - - - - - - - - -\n\n #cancelKbHandler = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #createKbHandler = (): void => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedPrototypingEnvironmentId) ??\n [];\n\n this.createCallback({\n authenticationType: this.#authenticationTypeEl?.value,\n collation: this.#collationEl?.value,\n createDataFilesInKBFolder: !!this.#createDataFilesInKBFolderEl?.value,\n dataSource: this.#dataSourceEl?.value,\n databaseName: this.#databaseNameEl?.value,\n frontEnds: selectedFrontEndIds,\n kbLocation: this.#locationEl?.value,\n kbName: this.#kbNameEl?.value,\n password: this.#passwordEl?.value,\n prototypingEnvironment: this.#prototypingEnvironmentEl?.value,\n prototypingTarget: this.#prototypingTargetEl?.value,\n savePassword: !!this.#savePasswordEl?.value,\n serverName: this.#serverNameEl?.value,\n userInterfaceLanguage: this.#userInterfaceLanguageEl?.value,\n userName: this.#userNameEl?.value,\n creationMode: this.selectedTab as CreationMode\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on new-kb as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #frontEndCheckboxInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n const checkedValue = (event.target as HTMLChCheckboxElement).checkedValue;\n const checked = event.detail === checkedValue;\n this.#updateFrontEndsCheckedMap(checkedValue, checked);\n this.#recomputeBackendOnly();\n };\n\n /**\n * Recomputes whether the KB will be generated as backend only, i.e. there\n * are front ends to choose from but none is currently selected.\n */\n #recomputeBackendOnly = () => {\n const checkedIds = this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n );\n this.noFrontEndSelected =\n (this.frontEnds?.length ?? 0) > 0 && (checkedIds?.length ?? 0) === 0;\n };\n\n /**\n * This function updates frontEndsCheckedMap, that contains the checked\n * checkboxes for each language front ends.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEndsCheckedMap = (checkboxId: string, checked: boolean) => {\n let currentState = this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n );\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(\n this.#selectedPrototypingEnvironmentId,\n currentState\n );\n }\n if (checked) {\n // update by adding\n currentState.push(checkboxId);\n } else {\n // update by removing\n const checkboxIndex = currentState.findIndex(id => id === checkboxId);\n removeIndex(currentState, checkboxIndex);\n }\n };\n\n #getPrototypingEnvironments = async (): Promise<void> => {\n if (this.getPrototypingEnvironmentsCallback) {\n const selectedPrototypingTargetId = this.#prototypingTargetEl\n ? this.#prototypingTargetEl.value\n : this.prototypingTargetsInitialValue;\n const envs = await this.getPrototypingEnvironmentsCallback(\n selectedPrototypingTargetId\n );\n if (envs) {\n this.defaultPrototypingEnvironments = envs;\n }\n }\n };\n\n #getDataSources = (): void => {\n if (this.getDataSourcesCallback) {\n const selectedPrototypingEnvironmentId =\n this.#prototypingEnvironmentEl.value;\n const selectedPrototypingTargetId = this.#prototypingTargetEl.value;\n const updatedDefaultDataSourcesPromise: Promise<GxOption[]> =\n this.getDataSourcesCallback(\n selectedPrototypingEnvironmentId,\n selectedPrototypingTargetId\n );\n updatedDefaultDataSourcesPromise\n .then(result => {\n if (result.length > 0) {\n result = setSelectedItem(result, this.#selectedDataSourceId);\n this.#selectedDataSourceId = getSelectedItem(result);\n this.defaultDataSources = result;\n // set first option as selected\n this.#dataSourceEl.value =\n this.#selectedDataSourceId !== undefined\n ? this.#selectedDataSourceId\n : this.defaultDataSources[0].id;\n }\n })\n .catch(() => {\n // to do\n });\n }\n };\n\n #initialSetupAdvancedTab = () => {\n const hasWindowsAuth = this.authenticationTypes.some(\n opt => opt.id === WINDOWS_AUTHENTICATION_VALUE\n );\n if (hasWindowsAuth) {\n this.authenticationTypeValue = WINDOWS_AUTHENTICATION_VALUE;\n }\n };\n\n #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataSourceEl,\n this.#kbNameEl,\n this.#prototypingEnvironmentEl,\n this.#prototypingTargetEl,\n this.#userInterfaceLanguageEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #initializeValidatableControlsAdvancedTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#authenticationTypeEl,\n this.#createDataFilesInKBFolderEl,\n this.#serverNameEl,\n this.#authenticationTypeEl,\n this.#databaseNameEl,\n this.#userNameEl,\n this.#collationEl,\n this.#passwordEl,\n this.#savePasswordEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #selectLocationHandler = async (event: MouseEvent): Promise<void> => {\n // Capture the button before awaiting. Opening/closing the location picker\n // restores focus to it programmatically, leaving the :focus-visible outline\n // lingering as if it were still active. On a successful selection move focus\n // to the location input (natural next step, keyboard-friendly); otherwise\n // just blur the button so the outline doesn't stay pinned.\n const button = event.currentTarget as HTMLButtonElement;\n const kbLocation = await this.selectLocationCallback();\n if (kbLocation) {\n this.kbLocation = kbLocation;\n this.#locationEl?.focus();\n } else {\n button?.blur();\n }\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.selectedTab = event.detail.newSelectedId;\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n if (!this.advancedTabIsVisible) {\n this.advancedTabIsVisible = true;\n this.#loadAdvancedTabData();\n }\n } else {\n this.connectionStatus = undefined;\n }\n };\n\n #loadAdvancedTabData = async (): Promise<void> => {\n if (!this.getAdvancedTabDataCallback || this.loadingAdvancedTab) {\n return;\n }\n this.loadingAdvancedTab = true;\n this.connectionStatus = \"connecting\";\n try {\n const data = await this.getAdvancedTabDataCallback();\n if (data) {\n if (data.serverName != null) {\n this.serverNameValue = data.serverName;\n this.#applyCreateDataFilesInKBFolderForServer();\n }\n this.serverInstances = data.serverInstances ?? this.serverInstances;\n this.collations = data.collations ?? this.collations;\n this.authenticationTypes =\n data.authenticationTypes ?? this.authenticationTypes;\n this.defaultCollation = data.defaultCollation ?? this.defaultCollation;\n this.authenticationTypeValue =\n data.authenticationTypes?.[0]?.id ?? this.authenticationTypeValue;\n this.connectionStatus = data.connectionFailed ? \"failed\" : \"success\";\n } else {\n this.connectionStatus = \"failed\";\n }\n } catch {\n this.connectionStatus = \"failed\";\n } finally {\n this.loadingAdvancedTab = false;\n }\n };\n\n /**\n * Evaluates which front-end options need updates on 'getFrontEndsCallback'\n * by comparing the new state (getFrontEndsCallback result) and previous state.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedPrototypingEnvironmentId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n\n // Seed the checked map from the data's checked property so that\n // initially checked items render as checked on first load.\n if (\n !this.#frontEndsCheckedMap.has(this.#selectedPrototypingEnvironmentId)\n ) {\n const checkedIds = updatedFrontEnds\n .filter(fe => fe.checked)\n .map(fe => fe.value || fe.id);\n\n if (checkedIds.length > 0) {\n this.#frontEndsCheckedMap.set(\n this.#selectedPrototypingEnvironmentId,\n checkedIds\n );\n }\n }\n\n this.#recomputeBackendOnly();\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n class={{\n \"field-group\": true,\n \"dialog-header-with-border\": !this.isAdvanced,\n \"dialog-header\": this.isAdvanced,\n \"header\": true,\n \"header-one-col\": true,\n \"spacing-body-block-start\": true,\n \"spacing-body-inline\": true\n }}\n >\n <div\n // #kb name\n class=\"field field-inline kb-name\"\n >\n <label class=\"label kb-label\" htmlFor=\"kbName\">\n {this.#componentLocale.header.kbName}\n </label>\n <ch-edit\n // TODO add placeholder\n autoFocus\n class=\"input kb-input\"\n placeholder=\"SalesInventory\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#kbNameEl = el as HTMLChEditElement)\n }\n id=\"kbName\"\n part=\"kb-name\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#kbNameEl)}\n </div>\n\n {this.canSetLocation && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"kbLocation\">\n {this.#componentLocale.header.kbLocation}\n </label>\n <div class=\"location-custom-wrapper\">\n <div class=\"location-field\">\n <ch-edit\n class=\"input\"\n value={this.kbLocation}\n ref={(el: HTMLChEditElement) =>\n (this.#locationEl = el as HTMLChEditElement)\n }\n id=\"kbLocation\"\n part=\"kb-location\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#locationEl)}\n </div>\n <button\n class=\"button-tertiary button-icon-only \"\n aria-label={\n this.#componentLocale.header.selectLocationButton\n }\n title={this.#componentLocale.header.selectLocationButton}\n part=\"button-select-location\"\n onClick={this.#selectLocationHandler}\n type=\"button\"\n >\n <ch-image class=\"icon-m\" src={SYSTEM_ICON}></ch-image>\n </button>\n </div>\n </div>\n )}\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // #tab\n class={{\n scrollable: true,\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n tabListPosition=\"block-start\"\n model={this.#kbSectionsModel}\n selectedId={BASIC_TAB_SELECTOR}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={BASIC_TAB_SELECTOR}\n class={BASIC_SECTION_PARENT_CLASSES}\n part=\"tab-button-basic\"\n >\n {this.#renderBasic()}\n </div>\n\n {this.advancedTabIsVisible && (\n <div\n slot={ADVANCED_TAB_SELECTOR}\n class=\"advanced\"\n part=\"tab-button-advanced\"\n >\n {this.loadingAdvancedTab ? (\n <gx-ide-loader\n show\n class=\"advanced-loader\"\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n ) : (\n this.#renderAdvanced()\n )}\n </div>\n )}\n </ch-tab-render>\n ) : (\n <div class={MAIN_SECTION_CLASSES}>\n <div class={BASIC_SECTION_PARENT_CLASSES}>\n {this.#renderBasic()}\n </div>\n </div>\n )}\n\n <footer\n class={{\n \"footer\": true,\n \"dialog-footer-with-border\": true,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n {this.connectionStatus && !this.loadingAdvancedTab && (\n <span\n class={{\n \"body-semi-bold-s\": true,\n \"connection-status\": true,\n [`connection-status--${this.connectionStatus}`]: true\n }}\n part={`connection-status connection-status-${this.connectionStatus}`}\n >\n {this.connectionStatus === \"connecting\" && (\n <span class=\"connection-status__spinner\"></span>\n )}\n {this.connectionStatus === \"success\" && (\n <ch-image\n class=\"icon-m\"\n src={SUCCESS_ICON}\n type=\"mask\"\n ></ch-image>\n )}\n {this.connectionStatus === \"failed\" && (\n <ch-image\n class=\"icon-m\"\n src={ERROR_ICON}\n type=\"mask\"\n ></ch-image>\n )}\n {\n this.#componentLocale.footer.connectionStatus[\n this.connectionStatus\n ]\n }\n </span>\n )}\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n id=\"button-cancel\"\n onClick={this.#cancelKbHandler}\n part=\"button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // #create\n class=\"button-primary\"\n id=\"button-create\"\n disabled={\n this.connectionStatus === \"failed\" ||\n this.connectionStatus === \"connecting\" ||\n this.#sqlAuthMissingCredentials()\n }\n onClick={this.#createKbHandler}\n part=\"button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport interface NewKBData {\n authenticationType: string;\n collation: string;\n createDataFilesInKBFolder: boolean;\n databaseName: string;\n dataSource: string;\n frontEnds: string[];\n kbLocation: string;\n kbName: string;\n password: string;\n prototypingEnvironment: string;\n prototypingTarget: string;\n savePassword: boolean;\n serverName: string;\n userInterfaceLanguage: string;\n userName: string;\n creationMode: CreationMode;\n}\n\nexport type CreationMode = \"basic\" | \"advanced\";\nexport type CreateCallback = (data: NewKBData) => Promise<FormSubmitResult>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataSourcesCallback = (\n selectedPrototypingEnvironmentId: string,\n selectedPrototypingTargetId: string\n) => Promise<GxOption[]>;\n\nexport type GetFrontEndsCallback = (\n selectedPrototypingEnvironmentId: string\n) => Promise<GxOption[]>;\n\nexport type GetPrototypingEnvironmentsCallback = (\n selectedPrototypingTargetId: string\n) => Promise<GxOption[]>;\n\nexport type SelectLocationCallback = () => Promise<string>;\n\nexport type BrowseForMoreCallback = () => Promise<string>;\n\nexport type CollationsForInstanceResult = {\n collations: GxOption[];\n defaultCollation: string;\n};\n\nexport type GetCollationsForInstanceCallback = (\n serverInstance: string,\n authType?: string,\n userName?: string,\n password?: string\n) => Promise<CollationsForInstanceResult | undefined>;\n\nexport interface AdvancedTabData {\n serverName?: string;\n serverInstances?: GxOption[];\n collations?: GxOption[];\n authenticationTypes?: GxOption[];\n defaultCollation?: string;\n connectionFailed?: boolean;\n}\n\nexport type GetAdvancedTabDataCallback = () => Promise<\n AdvancedTabData | undefined\n>;\n"]}
|
|
1
|
+
{"version":3,"file":"new-kb.js","sourceRoot":"","sources":["../../../src/components/new-kb/new-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n Prop,\n Element,\n State,\n getAssetPath,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { getSelectedItem, setSelectedItem } from \"../../common/common\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n TabModel,\n ComboBoxModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst WINDOWS_AUTHENTICATION_VALUE: string = \"WINDOWS_AUTHENTICATION\";\nconst LOCALDB_INSTANCE: string = \"(LocalDB)\\\\MSSQLLocalDB\";\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\n\nconst SYSTEM_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"primary\"\n});\n\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"on-interactive\"\n});\n\nconst DATABASE_ICON = getIconPath({\n category: \"system\",\n name: \"database\",\n colorType: \"primary\"\n});\n\nconst SUCCESS_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"success\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"error\"\n});\n\nconst DATABASE_NAME_PREFIX: string = \"GX_KB_\";\n\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-kb\",\n styleUrl: \"new-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-kb\"]\n})\nexport class GxIdeNewKb {\n #advancedTabHasBeenRendered: boolean = false;\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedPrototypingEnvironmentId: string;\n #selectedDataSourceId: string;\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-kb/shortcuts.json`);\n #kbSectionsModel: TabModel = [];\n\n @Element() el: HTMLGxIdeNewKbElement;\n\n /* References needed to collect data con \"Create\" button submit*/\n #authenticationTypeEl!: HTMLChComboBoxRenderElement;\n #collationEl!: HTMLChComboBoxRenderElement;\n #createDataFilesInKBFolderEl!: HTMLChCheckboxElement;\n #databaseNameEl!: HTMLChEditElement;\n #dataSourceEl!: HTMLChComboBoxRenderElement;\n #kbNameEl!: HTMLChEditElement;\n #locationEl!: HTMLChEditElement;\n #locationElRegistered = false;\n #credentialControlsRegistered = false;\n #passwordEl!: HTMLChEditElement;\n #prototypingEnvironmentEl!: HTMLChComboBoxRenderElement;\n #prototypingTargetEl!: HTMLChComboBoxRenderElement;\n #savePasswordEl!: HTMLChCheckboxElement;\n #serverNameEl!: HTMLChComboBoxRenderElement;\n #userInterfaceLanguageEl!: HTMLChComboBoxRenderElement;\n #userNameEl!: HTMLChEditElement;\n\n /**\n * Monotonic id of the latest collations request. Used to discard stale\n * responses: a slow request for an invalid instance can resolve after a\n * newer request for a valid instance, and without this guard it would\n * overwrite the UI with the wrong (failed) result.\n */\n #collationsRequestId = 0;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n\n @State() advancedTabIsVisible: boolean = false;\n @State() loadingAdvancedTab: boolean = false;\n @State() browseForMoreDialogOpen: boolean = false;\n @State() databaseNameValue: string = \"\";\n /**\n * Allows selecting multiple generators for the front end\n * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.\n */\n @State() frontEnds: GxOption[];\n /**\n * True when front ends are available but none is selected, meaning the KB\n * will be generated as backend only. Drives the backend-only callout.\n */\n @State() noFrontEndSelected: boolean = false;\n @State() validatableControls = new Map<string, ControlValidation>();\n @State() connectionStatus: \"connecting\" | \"success\" | \"failed\" | undefined;\n @State() userNameValue: string = \"\";\n @State() passwordValue: string = \"\";\n\n // representations of GxOption[] as ComboBoxModel, and initialValue for each one.\n @State() authenticationTypes: GxOption[] = [];\n @Watch(\"authenticationTypes\")\n watchAuthenticationTypes(newValue: GxOption[]) {\n if (newValue?.length) {\n this.authenticationTypesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.authenticationTypeValue = getSelectedItem(newValue);\n }\n }\n @State() authenticationTypesComboBoxModel: ComboBoxModel = [];\n @State() authenticationTypeValue: string;\n @State() collations: GxOption[] = [];\n @Watch(\"collations\")\n watchCollations(newValue: GxOption[]) {\n if (!newValue?.length) {\n this.collationsComboBoxModel = [];\n return;\n }\n this.collationsComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n }\n @State() collationsComboBoxModel: ComboBoxModel = [];\n @State() defaultCollation: string;\n @State() defaultDataSourcesComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsInitialValue: string;\n @State() prototypingEnvironmentsComboBoxModel: ComboBoxModel = [];\n @State() prototypingEnvironmentsInitialValue: string;\n @State() serverInstances: GxOption[] = [];\n @Watch(\"serverInstances\")\n watchServerInstances(newValue: GxOption[]) {\n if (!newValue?.length) {\n this.serverInstancesComboBoxModel = [];\n return;\n }\n this.serverInstancesComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n }\n @State() serverInstancesComboBoxModel: ComboBoxModel = [];\n @State() serverNameValue: string = \"\";\n @State() userInterfaceLanguagesComboBoxModel: ComboBoxModel = [];\n @State() userInterfaceLanguagesInitialValue: string;\n @State() selectedTab: string = BASIC_TAB_SELECTOR;\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Specifies whether the location field (and its folder-picker button) is\n * shown in the header, allowing the user to override the default `kbLocation`\n * path. Independent from `isAdvanced`.\n */\n @Prop() readonly canSetLocation: boolean = false;\n\n /**\n * Callback invoked when the advanced tab is selected for the first time.\n * Returns the data needed to populate the advanced tab fields lazily,\n * avoiding unnecessary loading at component initialization.\n */\n @Prop() readonly getAdvancedTabDataCallback: GetAdvancedTabDataCallback;\n\n /**\n * Callback that will be invoked when the user confirms KB creation (‘Create’ button)\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * It allows defining whether the option to create the data files in the KB folder will be shown in the advanced tab\n */\n @Prop({ mutable: true }) createDataFilesInKBFolder: boolean = true;\n\n /**\n * Name of the database where we are going to persist the information of our KB\n */\n @Prop() readonly databaseName: string;\n\n /**\n * It allows defining the DBMS that will be used in the solution\n */\n @Prop({ mutable: true }) defaultDataSources: GxOption[] = [];\n @Watch(\"defaultDataSources\")\n watchDefaultDataSources(newValue: GxOption[]) {\n if (newValue?.length) {\n this.defaultDataSourcesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n const result = setSelectedItem(newValue, this.#selectedDataSourceId);\n this.#selectedDataSourceId = getSelectedItem(result);\n }\n }\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly getDataSourcesCallback: GetDataSourcesCallback;\n\n /**\n * Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments\n */\n @Prop()\n readonly getPrototypingEnvironmentsCallback!: GetPrototypingEnvironmentsCallback;\n\n /**\n * Specify whether it is feasible to display information related to local configuration parameters\n */\n @Prop() readonly isAdvanced = false;\n\n /**\n * Default suggested path to a directory where the information related to the KB will be stored/generated\n */\n @Prop({ mutable: true }) kbLocation: string;\n\n /**\n * The knowledge base default suggested name\n */\n @Prop() readonly kbName: string;\n\n /**\n * Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)\n */\n @Prop() readonly password: string;\n\n /**\n * It allows selecting the default environment that the KB will have (additional environments can be created later)\n */\n @Prop({ mutable: true }) defaultPrototypingEnvironments: GxOption[] = [];\n @Watch(\"defaultPrototypingEnvironments\")\n watchDefaultPrototypingEnvironments(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingEnvironmentsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.#selectedPrototypingEnvironmentId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Path to a directory where the information related to the KB will be stored/generated\n */\n @Prop() readonly prototypingTargets: GxOption[] = [];\n @Watch(\"prototypingTargets\")\n watchPrototypingTargets(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingTargetsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.prototypingTargetsInitialValue = getSelectedItem(newValue);\n this.#getPrototypingEnvironments();\n }\n }\n\n /**\n * Visible if something other than Windows Authentication is selected\n */\n @Prop() readonly savePassword: boolean = false;\n\n /**\n * This is a function provided by the developer that returns a string, with the location path\n */\n @Prop() readonly selectLocationCallback!: SelectLocationCallback;\n\n /**\n * Callback invoked when the user clicks the \"Browse for more...\" button next\n * to the Server Name combo. The host is expected to display its own server\n * picker UI and resolve with the name of the selected server instance, which\n * will be set as the value of the Server Name combo.\n */\n @Prop() readonly browseForMoreCallback: BrowseForMoreCallback;\n\n /**\n * Callback invoked when the user selects a different server instance,\n * allowing the host to fetch the collations available on that instance.\n */\n @Prop()\n readonly getCollationsForInstanceCallback: GetCollationsForInstanceCallback;\n\n /**\n * Specify the language in which the application screens will be developed (default language)\n */\n @Prop() readonly userInterfaceLanguages: GxOption[] = [];\n @Watch(\"userInterfaceLanguages\")\n watchUserInterfaceLanguages(newValue: GxOption[]) {\n if (newValue?.length) {\n this.userInterfaceLanguagesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.userInterfaceLanguagesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Username for the database connection. Visible if the Authentication Type is different from Windows Authentication\n */\n @Prop({ mutable: true }) userName: string;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.databaseNameValue = this.#computeDefaultDatabaseName(this.kbName);\n if (this.databaseName) {\n this.databaseNameValue = this.databaseName;\n }\n this.userNameValue = this.userName ?? \"\";\n this.passwordValue = this.password ?? \"\";\n this.#kbSectionsModel = [\n {\n id: BASIC_TAB_SELECTOR,\n name: this.#componentLocale.tabBasic.tabLabel\n },\n {\n id: ADVANCED_TAB_SELECTOR,\n name: this.#componentLocale.tabAdvanced.tabLabel\n }\n ];\n }\n\n connectedCallback() {\n this.watchDefaultDataSources(this.defaultDataSources);\n this.watchDefaultPrototypingEnvironments(\n this.defaultPrototypingEnvironments\n );\n this.watchPrototypingTargets(this.prototypingTargets);\n this.watchUserInterfaceLanguages(this.userInterfaceLanguages);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n // Defer the one-time setup until the real advanced content is rendered\n // (not the loader); otherwise the control refs it reads are still undefined.\n if (\n this.advancedTabIsVisible &&\n !this.loadingAdvancedTab &&\n !this.#advancedTabHasBeenRendered\n ) {\n // just call this once.\n this.#initialSetupAdvancedTab();\n this.#initializeValidatableControlsAdvancedTab();\n this.#advancedTabHasBeenRendered = true;\n }\n\n // Register the location input for validation once it's rendered\n if (!this.#locationElRegistered && this.#locationEl) {\n this.validatableControls.set(this.#locationEl.id, {\n reference: this.#locationEl,\n hasError: false,\n message: undefined\n });\n this.#locationElRegistered = true;\n }\n\n // Register credential controls when they become visible (SQL Auth selected)\n if (\n this.authenticationTypeValue !== WINDOWS_AUTHENTICATION_VALUE &&\n !this.#credentialControlsRegistered &&\n this.#userNameEl &&\n this.#passwordEl\n ) {\n this.validatableControls.set(this.#userNameEl.id, {\n reference: this.#userNameEl,\n hasError: false,\n message: undefined\n });\n this.validatableControls.set(this.#passwordEl.id, {\n reference: this.#passwordEl,\n hasError: false,\n message: undefined\n });\n this.#credentialControlsRegistered = true;\n }\n\n // Reset flag when switching back to Windows Auth so they re-register next time\n if (\n this.authenticationTypeValue === WINDOWS_AUTHENTICATION_VALUE &&\n this.#credentialControlsRegistered\n ) {\n this.#credentialControlsRegistered = false;\n }\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n #computeDefaultDatabaseName = (kbName: string): string =>\n `${DATABASE_NAME_PREFIX}${kbName ?? \"\"}`;\n\n #kbNameInputHandler = (e: CustomEvent<string> | InputEvent) => {\n const kbNameValue = (e.detail ?? this.#kbNameEl?.value) as string;\n this.databaseNameValue = this.#computeDefaultDatabaseName(kbNameValue);\n };\n\n #databaseNameInputHandler = (e: CustomEvent<string> | InputEvent) => {\n this.databaseNameValue = (e.detail ??\n this.#databaseNameEl?.value) as string;\n };\n\n #handlerAuthenticationTypeInput = async (\n e: CustomEvent<string> | InputEvent\n ) => {\n this.authenticationTypeValue = (e as CustomEvent<string>)?.detail as string;\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = undefined;\n await this.#loadCollationsForCurrentConnection();\n };\n\n #handlerCredentialsChanged = async (): Promise<void> => {\n this.userNameValue = this.#userNameEl?.value ?? \"\";\n this.passwordValue = this.#passwordEl?.value ?? \"\";\n await this.#loadCollationsForCurrentConnection();\n };\n\n #browseForMoreHandler = async (): Promise<void> => {\n if (!this.browseForMoreCallback) {\n return;\n }\n this.browseForMoreDialogOpen = true;\n try {\n const selectedInstance = await this.browseForMoreCallback();\n if (selectedInstance) {\n this.serverNameValue = selectedInstance;\n if (this.#serverNameEl) {\n this.#serverNameEl.value = selectedInstance;\n }\n await this.#serverNameChangedHandler(\n new CustomEvent<string>(\"change\", { detail: selectedInstance })\n );\n }\n } catch (error) {\n } finally {\n this.browseForMoreDialogOpen = false;\n }\n };\n\n #serverNameChangedHandler = async (\n e: CustomEvent<string> | InputEvent\n ): Promise<void> => {\n const selectedInstance =\n (e as CustomEvent<string>)?.detail ??\n (e.target as HTMLInputElement)?.value;\n this.serverNameValue = selectedInstance ?? \"\";\n this.#applyCreateDataFilesInKBFolderForServer();\n await this.#loadCollationsForCurrentConnection();\n };\n\n #classifyServer = (\n serverName: string\n ): \"localdb\" | \"local\" | \"remote\" | \"empty\" => {\n if (!serverName) {\n return \"empty\";\n }\n if (serverName.toLowerCase() === LOCALDB_INSTANCE.toLowerCase()) {\n return \"localdb\";\n }\n const isLocal = (this.serverInstances ?? []).some(\n s => s.label?.toLowerCase() === serverName.toLowerCase()\n );\n return isLocal ? \"local\" : \"remote\";\n };\n\n #createDataFilesInKBFolderDisabled = (): boolean => {\n const kind = this.#classifyServer(this.serverNameValue);\n return kind === \"localdb\" || kind === \"remote\" || kind === \"empty\";\n };\n\n #sqlAuthMissingCredentials = (): boolean => {\n const authType = this.authenticationTypeValue;\n if (!authType || authType === WINDOWS_AUTHENTICATION_VALUE) {\n return false;\n }\n return !this.userNameValue || !this.passwordValue;\n };\n\n #applyCreateDataFilesInKBFolderForServer = (): void => {\n const kind = this.#classifyServer(this.serverNameValue);\n if (kind === \"local\" || kind === \"localdb\") {\n this.createDataFilesInKBFolder = true;\n } else if (kind === \"remote\") {\n this.createDataFilesInKBFolder = false;\n }\n };\n\n #createDataFilesInKBFolderInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ): void => {\n const target = event.target as HTMLChCheckboxElement;\n this.createDataFilesInKBFolder = event.detail === target.checkedValue;\n };\n\n #loadCollationsForCurrentConnection = async (): Promise<void> => {\n const selectedInstance = this.serverNameValue;\n if (!selectedInstance || !this.getCollationsForInstanceCallback) {\n return;\n }\n const authType = this.authenticationTypeValue;\n const isWindowsAuth = authType === WINDOWS_AUTHENTICATION_VALUE;\n const userName = isWindowsAuth ? undefined : this.#userNameEl?.value;\n const password = isWindowsAuth ? undefined : this.#passwordEl?.value;\n\n if (!isWindowsAuth && authType && (!userName || !password)) {\n return;\n }\n\n // Tag this request so we can ignore its response if a newer request is\n // fired before it resolves (e.g. the user fixes an invalid server name\n // while the slow request for the invalid one is still pending).\n const requestId = ++this.#collationsRequestId;\n this.connectionStatus = \"connecting\";\n try {\n const result = await this.getCollationsForInstanceCallback(\n selectedInstance,\n authType,\n userName,\n password\n );\n if (requestId !== this.#collationsRequestId) {\n // A newer request superseded this one; discard the stale response.\n return;\n }\n if (result) {\n this.collations = result.collations ?? [];\n this.defaultCollation = result.defaultCollation ?? undefined;\n this.connectionStatus = \"success\";\n } else {\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = \"failed\";\n }\n } catch {\n if (requestId !== this.#collationsRequestId) {\n return;\n }\n this.collations = [];\n this.defaultCollation = undefined;\n this.connectionStatus = \"failed\";\n }\n };\n\n #prototypingEnvironmentValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ): void => {\n this.#selectedPrototypingEnvironmentId = event.detail as string;\n this.#getDataSources();\n this.#updateFrontEnds();\n };\n\n #prototypingTargetValueChangedHandler = async (): Promise<void> => {\n await this.#getPrototypingEnvironments();\n this.#getDataSources();\n };\n\n #dataSourceValueChangedHandler = () => {\n this.#selectedDataSourceId = this.#dataSourceEl.value;\n };\n\n #renderAdvanced = (): Element[] => {\n const showCredentials =\n this.authenticationTypeValue !== WINDOWS_AUTHENTICATION_VALUE;\n\n return [\n <section class=\"kb-storage-card\" part=\"kb-storage-card\">\n <header class=\"kb-storage-card__header\">\n <div class=\"kb-storage-card__heading\">\n <h2 class=\"kb-storage-card__title body-semi-bold-m\">\n {this.#componentLocale.tabAdvanced.tabTitle}\n </h2>\n </div>\n </header>\n\n <div class=\"kb-storage-card__grid\">\n <div class=\"kb-storage-column\">\n <div class=\"kb-storage-column__title body-regular-xs\">\n <span class=\"kb-storage-column__title-text\">\n {this.#componentLocale.tabAdvanced.connectionGroup}\n </span>\n <span class=\"kb-storage-column__title-rule\" aria-hidden=\"true\" />\n </div>\n\n <div class=\"field-group field-group--stacked\">\n <div class=\"field field-block server-name-field\">\n <label class=\"label\" htmlFor=\"serverName\">\n {this.#componentLocale.tabAdvanced.serverName.label}\n </label>\n <div class=\"server-name-wrapper\">\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.serverNameValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#serverNameEl = el as HTMLChComboBoxRenderElement)\n }\n id=\"serverName\"\n part=\"server-name\"\n model={this.serverInstancesComboBoxModel}\n suggest\n suggestDebounce={config.inputDebounce}\n onInput={this.#serverNameChangedHandler}\n onChange={this.#serverNameChangedHandler}\n ></ch-combo-box-render>\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label={\n this.#componentLocale.tabAdvanced.serverName.browseForMore\n }\n part=\"button-browse-for-more\"\n onClick={this.#browseForMoreHandler}\n >\n <ch-image class=\"icon-m\" src={DATABASE_ICON}></ch-image>\n {!this.browseForMoreDialogOpen && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-start\"\n inlineAlign=\"center\"\n delay={config.tooltipSettings.delay}\n >\n {\n this.#componentLocale.tabAdvanced.serverName\n .browseForMore\n }\n </ch-tooltip>\n )}\n </button>\n </div>\n {this.#evaluateTooltipRender(this.#serverNameEl)}\n </div>\n\n <div class=\"field field-block database-field\">\n <label class=\"label\" htmlFor=\"databaseName\">\n {this.#componentLocale.tabAdvanced.databaseName.label}\n </label>\n <ch-edit\n class=\"input\"\n value={this.databaseNameValue}\n id=\"databaseName\"\n part=\"database-name\"\n onInput={this.#databaseNameInputHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#databaseNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n\n {this.#evaluateTooltipRender(this.#databaseNameEl)}\n </div>\n\n <div class=\"field field-block collation-field\">\n <label class=\"label\" htmlFor=\"collation\">\n {this.#componentLocale.tabAdvanced.collation.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={\n !this.serverNameValue || this.collations.length === 0\n }\n placeholder={\n this.collations.length === 0\n ? this.#componentLocale.tabAdvanced.collation\n .disabledPlaceholder\n : \"\"\n }\n value={this.defaultCollation}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#collationEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.collationsComboBoxModel}\n id=\"collation\"\n part=\"collation\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#collationEl)}\n </div>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"true\"\n value={this.createDataFilesInKBFolder ? \"true\" : undefined}\n disabled={this.#createDataFilesInKBFolderDisabled()}\n onInput={this.#createDataFilesInKBFolderInputHandler}\n caption={\n this.#componentLocale.tabAdvanced.createDataFilesInKbFolder\n }\n part=\"create-data-in-kb\"\n id=\"createDataFilesInKBFolder\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#createDataFilesInKBFolderEl =\n el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n </div>\n\n <div class=\"kb-storage-column\">\n <div class=\"kb-storage-column__title body-regular-xs\">\n <span class=\"kb-storage-column__title-text\">\n {this.#componentLocale.tabAdvanced.authenticationGroup}\n </span>\n <span class=\"kb-storage-column__title-rule\" aria-hidden=\"true\" />\n </div>\n\n <div class=\"field-group field-group--stacked\">\n <div class=\"field field-block authentication-type-field\">\n <label class=\"label\" htmlFor=\"authenticationType\">\n {this.#componentLocale.tabAdvanced.authenticationType.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.authenticationTypes.length === 0}\n placeholder={\n this.authenticationTypes.length === 0\n ? this.#componentLocale.tabAdvanced.authenticationType\n .disabledPlaceholder\n : \"\"\n }\n value={this.authenticationTypeValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#authenticationTypeEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.authenticationTypesComboBoxModel}\n id=\"authenticationType\"\n part=\"authentication-type\"\n onInput={\n this.authenticationTypes.length > 0\n ? this.#handlerAuthenticationTypeInput\n : undefined\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#authenticationTypeEl)}\n </div>\n\n {showCredentials ? (\n <div class=\"kb-storage-credentials\">\n <div class=\"field field-block username-field\">\n <label class=\"label\" htmlFor=\"userName\">\n {this.#componentLocale.tabAdvanced.userName.label}\n </label>\n <ch-edit\n class=\"input\"\n value={this.userName}\n id=\"userName\"\n part=\"user-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#userNameEl = el as HTMLChEditElement)\n }\n onInput={this.#handlerCredentialsChanged}\n debounce={config.inputDebounce}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#userNameEl)}\n </div>\n\n <div class=\"field field-block password-field\">\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.tabAdvanced.password.label}\n </label>\n <ch-edit\n class=\"input\"\n type=\"password\"\n showPasswordButton\n value={this.password}\n id=\"password\"\n part=\"password\"\n ref={(el: HTMLChEditElement) =>\n (this.#passwordEl = el as HTMLChEditElement)\n }\n onInput={this.#handlerCredentialsChanged}\n debounce={config.inputDebounce}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordEl)}\n </div>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"password\"\n value=\"password\"\n caption={this.#componentLocale.tabAdvanced.savePassword}\n part=\"save-password\"\n id=\"savePassword\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#savePasswordEl = el as HTMLChCheckboxElement)\n }\n disabled\n ></ch-checkbox>\n </div>\n ) : (\n <div class=\"kb-storage-callout\" part=\"windows-auth-callout\">\n <ch-image\n class=\"icon-l\"\n src={WARNING_ICON}\n type=\"mask\"\n ></ch-image>\n\n <div class=\"kb-storage-callout-inner\">\n <span class=\"kb-storage-callout__title body-semi-bold-s\">\n {\n this.#componentLocale.tabAdvanced\n .windowsAuthCalloutTitle\n }\n </span>\n <span class=\"kb-storage-callout__description body-regular-xs\">\n {\n this.#componentLocale.tabAdvanced\n .windowsAuthCalloutDescription\n }\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </section>\n ];\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <section class=\"basic__header field-group dialog-header-with-border spacing-body-inline\">\n <div\n // #prototyping target\n class=\"field field-block prototyping-target\"\n >\n <label class=\"label\" htmlFor=\"prototypingTarget\">\n {this.#componentLocale.tabBasic.prototypingTarget.label}\n </label>\n\n <ch-combo-box-render\n id=\"prototypingTarget\"\n class=\"combo-box\"\n part=\"prototyping-target\"\n disabled={this.prototypingTargets.length === 0}\n placeholder={\n this.prototypingTargets.length === 0\n ? this.#componentLocale.tabBasic.prototypingTarget\n .disabledPlaceholder\n : \"\"\n }\n value={this.prototypingTargetsInitialValue}\n model={this.prototypingTargetsComboBoxModel}\n onInput={\n this.prototypingTargets.length > 0\n ? this.#prototypingTargetValueChangedHandler\n : undefined\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingTargetEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingTargetEl)}\n </div>\n\n <div\n // #user interface\n class=\"field field-block user-interface-language\"\n >\n <label class=\"label\" htmlFor=\"userInterfaceLanguage\">\n {this.#componentLocale.tabBasic.userInterfaceLanguage.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.userInterfaceLanguages.length === 0}\n placeholder={\n this.userInterfaceLanguages.length === 0\n ? this.#componentLocale.tabBasic.userInterfaceLanguage\n .disabledPlaceholder\n : \"\"\n }\n value={this.userInterfaceLanguagesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#userInterfaceLanguageEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.userInterfaceLanguagesComboBoxModel}\n id=\"userInterfaceLanguage\"\n part=\"user-interface-language\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#userInterfaceLanguageEl)}\n </div>\n </section>,\n\n <section\n class=\"section__back-end\"\n // backend\n >\n <h2\n // back end\n class=\"dialog-header dialog-header-with-border dialog-header__back-end subtitle-regular-xs\t text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #prototyping environment\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"prototypingEnvironment\">\n {\n this.#componentLocale.tabBasic.backEnd.prototypingEnvironment\n .label\n }\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.defaultPrototypingEnvironments.length === 0}\n placeholder={\n this.defaultPrototypingEnvironments.length === 0\n ? this.#componentLocale.tabBasic.backEnd\n .prototypingEnvironment.disabledPlaceholder\n : \"\"\n }\n value={this.#selectedPrototypingEnvironmentId}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingEnvironmentEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.prototypingEnvironmentsComboBoxModel}\n onInput={this.#prototypingEnvironmentValueChangedHandler}\n part=\"prototyping-environment\"\n id=\"prototypingEnvironment\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingEnvironmentEl)}\n </div>\n\n <div\n // #data source\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"dataSource\">\n {this.#componentLocale.tabBasic.backEnd.dataSource.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.defaultDataSources.length === 0}\n placeholder={\n this.defaultDataSources.length === 0\n ? this.#componentLocale.tabBasic.backEnd.dataSource\n .disabledPlaceholder\n : \"\"\n }\n value={this.#selectedDataSourceId}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataSourceEl = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#dataSourceValueChangedHandler}\n model={this.defaultDataSourcesComboBoxModel}\n part=\"data-source\"\n id=\"dataSource\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataSourceEl)}\n </div>\n </div>\n </section>,\n\n <section\n class=\"section__front-end\"\n // front end\n >\n <h2 class=\"dialog-header dialog-header-with-border dialog-header__front-end subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div class=\"field-group main__front-end spacing-body-inline scrollable\">\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n )\n )}\n\n {this.noFrontEndSelected && (\n <div class=\"kb-storage-callout\" part=\"backend-only-callout\">\n <ch-image\n class=\"icon-l\"\n src={WARNING_ICON}\n type=\"mask\"\n ></ch-image>\n\n <div class=\"kb-storage-callout-inner\">\n <span class=\"kb-storage-callout__title body-semi-bold-s\">\n {\n this.#componentLocale.tabBasic.frontEnd\n .backendOnlyCalloutTitle\n }\n </span>\n <span class=\"kb-storage-callout__description body-regular-xs\">\n {\n this.#componentLocale.tabBasic.frontEnd\n .backendOnlyCalloutDescription\n }\n </span>\n </div>\n </div>\n )}\n </div>\n </section>\n ];\n };\n\n // - - - - - - - - - -\n\n #cancelKbHandler = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #createKbHandler = (): void => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedPrototypingEnvironmentId) ??\n [];\n\n this.createCallback({\n authenticationType: this.#authenticationTypeEl?.value,\n collation: this.#collationEl?.value,\n createDataFilesInKBFolder: !!this.#createDataFilesInKBFolderEl?.value,\n dataSource: this.#dataSourceEl?.value,\n databaseName: this.#databaseNameEl?.value,\n frontEnds: selectedFrontEndIds,\n kbLocation: this.#locationEl?.value,\n kbName: this.#kbNameEl?.value,\n password: this.#passwordEl?.value,\n prototypingEnvironment: this.#prototypingEnvironmentEl?.value,\n prototypingTarget: this.#prototypingTargetEl?.value,\n savePassword: !!this.#savePasswordEl?.value,\n serverName: this.#serverNameEl?.value,\n userInterfaceLanguage: this.#userInterfaceLanguageEl?.value,\n userName: this.#userNameEl?.value,\n creationMode: this.selectedTab as CreationMode\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on new-kb as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #frontEndCheckboxInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n const checkedValue = (event.target as HTMLChCheckboxElement).checkedValue;\n const checked = event.detail === checkedValue;\n this.#updateFrontEndsCheckedMap(checkedValue, checked);\n this.#recomputeBackendOnly();\n };\n\n /**\n * Recomputes whether the KB will be generated as backend only, i.e. there\n * are front ends to choose from but none is currently selected.\n */\n #recomputeBackendOnly = () => {\n const checkedIds = this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n );\n this.noFrontEndSelected =\n (this.frontEnds?.length ?? 0) > 0 && (checkedIds?.length ?? 0) === 0;\n };\n\n /**\n * This function updates frontEndsCheckedMap, that contains the checked\n * checkboxes for each language front ends.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEndsCheckedMap = (checkboxId: string, checked: boolean) => {\n let currentState = this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n );\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(\n this.#selectedPrototypingEnvironmentId,\n currentState\n );\n }\n if (checked) {\n // update by adding\n currentState.push(checkboxId);\n } else {\n // update by removing\n const checkboxIndex = currentState.findIndex(id => id === checkboxId);\n removeIndex(currentState, checkboxIndex);\n }\n };\n\n #getPrototypingEnvironments = async (): Promise<void> => {\n if (this.getPrototypingEnvironmentsCallback) {\n const selectedPrototypingTargetId = this.#prototypingTargetEl\n ? this.#prototypingTargetEl.value\n : this.prototypingTargetsInitialValue;\n const envs = await this.getPrototypingEnvironmentsCallback(\n selectedPrototypingTargetId\n );\n if (envs) {\n this.defaultPrototypingEnvironments = envs;\n }\n }\n };\n\n #getDataSources = (): void => {\n if (this.getDataSourcesCallback) {\n const selectedPrototypingEnvironmentId =\n this.#prototypingEnvironmentEl.value;\n const selectedPrototypingTargetId = this.#prototypingTargetEl.value;\n const updatedDefaultDataSourcesPromise: Promise<GxOption[]> =\n this.getDataSourcesCallback(\n selectedPrototypingEnvironmentId,\n selectedPrototypingTargetId\n );\n updatedDefaultDataSourcesPromise\n .then(result => {\n if (result.length > 0) {\n result = setSelectedItem(result, this.#selectedDataSourceId);\n this.#selectedDataSourceId = getSelectedItem(result);\n this.defaultDataSources = result;\n // set first option as selected\n this.#dataSourceEl.value =\n this.#selectedDataSourceId !== undefined\n ? this.#selectedDataSourceId\n : this.defaultDataSources[0].id;\n }\n })\n .catch(() => {\n // to do\n });\n }\n };\n\n #initialSetupAdvancedTab = () => {\n const hasWindowsAuth = this.authenticationTypes.some(\n opt => opt.id === WINDOWS_AUTHENTICATION_VALUE\n );\n if (hasWindowsAuth) {\n this.authenticationTypeValue = WINDOWS_AUTHENTICATION_VALUE;\n }\n };\n\n #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataSourceEl,\n this.#kbNameEl,\n this.#prototypingEnvironmentEl,\n this.#prototypingTargetEl,\n this.#userInterfaceLanguageEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #initializeValidatableControlsAdvancedTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#authenticationTypeEl,\n this.#createDataFilesInKBFolderEl,\n this.#serverNameEl,\n this.#authenticationTypeEl,\n this.#databaseNameEl,\n this.#userNameEl,\n this.#collationEl,\n this.#passwordEl,\n this.#savePasswordEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #selectLocationHandler = async (event: MouseEvent): Promise<void> => {\n // Capture the button before awaiting. Opening/closing the location picker\n // restores focus to it programmatically, leaving the :focus-visible outline\n // lingering as if it were still active. On a successful selection move focus\n // to the location input (natural next step, keyboard-friendly); otherwise\n // just blur the button so the outline doesn't stay pinned.\n const button = event.currentTarget as HTMLButtonElement;\n const kbLocation = await this.selectLocationCallback();\n if (kbLocation) {\n this.kbLocation = kbLocation;\n this.#locationEl?.focus();\n } else {\n button?.blur();\n }\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.selectedTab = event.detail.newSelectedId;\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n if (!this.advancedTabIsVisible) {\n this.advancedTabIsVisible = true;\n this.#loadAdvancedTabData();\n }\n } else {\n this.connectionStatus = undefined;\n }\n };\n\n #loadAdvancedTabData = async (): Promise<void> => {\n if (!this.getAdvancedTabDataCallback || this.loadingAdvancedTab) {\n return;\n }\n this.loadingAdvancedTab = true;\n this.connectionStatus = \"connecting\";\n try {\n const data = await this.getAdvancedTabDataCallback();\n if (data) {\n this.serverInstances = data.serverInstances ?? this.serverInstances;\n if (data.serverName != null) {\n this.serverNameValue = data.serverName;\n // Classify after serverInstances is set so a local server isn't\n // misclassified as remote on initial load.\n this.#applyCreateDataFilesInKBFolderForServer();\n }\n this.collations = data.collations ?? this.collations;\n this.authenticationTypes =\n data.authenticationTypes ?? this.authenticationTypes;\n this.defaultCollation = data.defaultCollation ?? this.defaultCollation;\n this.authenticationTypeValue =\n data.authenticationTypes?.[0]?.id ?? this.authenticationTypeValue;\n this.connectionStatus = data.connectionFailed ? \"failed\" : \"success\";\n } else {\n this.connectionStatus = \"failed\";\n }\n } catch {\n this.connectionStatus = \"failed\";\n } finally {\n this.loadingAdvancedTab = false;\n }\n };\n\n /**\n * Evaluates which front-end options need updates on 'getFrontEndsCallback'\n * by comparing the new state (getFrontEndsCallback result) and previous state.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedPrototypingEnvironmentId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n\n // Seed the checked map from the data's checked property so that\n // initially checked items render as checked on first load.\n if (\n !this.#frontEndsCheckedMap.has(this.#selectedPrototypingEnvironmentId)\n ) {\n const checkedIds = updatedFrontEnds\n .filter(fe => fe.checked)\n .map(fe => fe.value || fe.id);\n\n if (checkedIds.length > 0) {\n this.#frontEndsCheckedMap.set(\n this.#selectedPrototypingEnvironmentId,\n checkedIds\n );\n }\n }\n\n this.#recomputeBackendOnly();\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n class={{\n \"field-group\": true,\n \"dialog-header-with-border\": !this.isAdvanced,\n \"dialog-header\": this.isAdvanced,\n \"header\": true,\n \"header-one-col\": true,\n \"spacing-body-block-start\": true,\n \"spacing-body-inline\": true\n }}\n >\n <div\n // #kb name\n class=\"field field-inline kb-name\"\n >\n <label class=\"label kb-label\" htmlFor=\"kbName\">\n {this.#componentLocale.header.kbName}\n </label>\n <ch-edit\n // TODO add placeholder\n autoFocus\n class=\"input kb-input\"\n placeholder=\"SalesInventory\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#kbNameEl = el as HTMLChEditElement)\n }\n id=\"kbName\"\n part=\"kb-name\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#kbNameEl)}\n </div>\n\n {this.canSetLocation && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"kbLocation\">\n {this.#componentLocale.header.kbLocation}\n </label>\n <div class=\"location-custom-wrapper\">\n <div class=\"location-field\">\n <ch-edit\n class=\"input\"\n value={this.kbLocation}\n ref={(el: HTMLChEditElement) =>\n (this.#locationEl = el as HTMLChEditElement)\n }\n id=\"kbLocation\"\n part=\"kb-location\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#locationEl)}\n </div>\n <button\n class=\"button-tertiary button-icon-only \"\n aria-label={\n this.#componentLocale.header.selectLocationButton\n }\n title={this.#componentLocale.header.selectLocationButton}\n part=\"button-select-location\"\n onClick={this.#selectLocationHandler}\n type=\"button\"\n >\n <ch-image class=\"icon-m\" src={SYSTEM_ICON}></ch-image>\n </button>\n </div>\n </div>\n )}\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // #tab\n class={{\n scrollable: true,\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n tabListPosition=\"block-start\"\n model={this.#kbSectionsModel}\n selectedId={BASIC_TAB_SELECTOR}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={BASIC_TAB_SELECTOR}\n class={BASIC_SECTION_PARENT_CLASSES}\n part=\"tab-button-basic\"\n >\n {this.#renderBasic()}\n </div>\n\n {this.advancedTabIsVisible && (\n <div\n slot={ADVANCED_TAB_SELECTOR}\n class=\"advanced\"\n part=\"tab-button-advanced\"\n >\n {this.loadingAdvancedTab ? (\n <gx-ide-loader\n show\n class=\"advanced-loader\"\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n ) : (\n this.#renderAdvanced()\n )}\n </div>\n )}\n </ch-tab-render>\n ) : (\n <div class={MAIN_SECTION_CLASSES}>\n <div class={BASIC_SECTION_PARENT_CLASSES}>\n {this.#renderBasic()}\n </div>\n </div>\n )}\n\n <footer\n class={{\n \"footer\": true,\n \"dialog-footer-with-border\": true,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n {this.connectionStatus && !this.loadingAdvancedTab && (\n <span\n class={{\n \"body-semi-bold-s\": true,\n \"connection-status\": true,\n [`connection-status--${this.connectionStatus}`]: true\n }}\n part={`connection-status connection-status-${this.connectionStatus}`}\n >\n {this.connectionStatus === \"connecting\" && (\n <span class=\"connection-status__spinner\"></span>\n )}\n {this.connectionStatus === \"success\" && (\n <ch-image\n class=\"icon-m\"\n src={SUCCESS_ICON}\n type=\"mask\"\n ></ch-image>\n )}\n {this.connectionStatus === \"failed\" && (\n <ch-image\n class=\"icon-m\"\n src={ERROR_ICON}\n type=\"mask\"\n ></ch-image>\n )}\n {\n this.#componentLocale.footer.connectionStatus[\n this.connectionStatus\n ]\n }\n </span>\n )}\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n id=\"button-cancel\"\n onClick={this.#cancelKbHandler}\n part=\"button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // #create\n class=\"button-primary\"\n id=\"button-create\"\n disabled={\n this.connectionStatus === \"failed\" ||\n this.connectionStatus === \"connecting\" ||\n this.#sqlAuthMissingCredentials()\n }\n onClick={this.#createKbHandler}\n part=\"button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport interface NewKBData {\n authenticationType: string;\n collation: string;\n createDataFilesInKBFolder: boolean;\n databaseName: string;\n dataSource: string;\n frontEnds: string[];\n kbLocation: string;\n kbName: string;\n password: string;\n prototypingEnvironment: string;\n prototypingTarget: string;\n savePassword: boolean;\n serverName: string;\n userInterfaceLanguage: string;\n userName: string;\n creationMode: CreationMode;\n}\n\nexport type CreationMode = \"basic\" | \"advanced\";\nexport type CreateCallback = (data: NewKBData) => Promise<FormSubmitResult>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataSourcesCallback = (\n selectedPrototypingEnvironmentId: string,\n selectedPrototypingTargetId: string\n) => Promise<GxOption[]>;\n\nexport type GetFrontEndsCallback = (\n selectedPrototypingEnvironmentId: string\n) => Promise<GxOption[]>;\n\nexport type GetPrototypingEnvironmentsCallback = (\n selectedPrototypingTargetId: string\n) => Promise<GxOption[]>;\n\nexport type SelectLocationCallback = () => Promise<string>;\n\nexport type BrowseForMoreCallback = () => Promise<string>;\n\nexport type CollationsForInstanceResult = {\n collations: GxOption[];\n defaultCollation: string;\n};\n\nexport type GetCollationsForInstanceCallback = (\n serverInstance: string,\n authType?: string,\n userName?: string,\n password?: string\n) => Promise<CollationsForInstanceResult | undefined>;\n\nexport interface AdvancedTabData {\n serverName?: string;\n serverInstances?: GxOption[];\n collations?: GxOption[];\n authenticationTypes?: GxOption[];\n defaultCollation?: string;\n connectionFailed?: boolean;\n}\n\nexport type GetAdvancedTabDataCallback = () => Promise<\n AdvancedTabData | undefined\n>;\n"]}
|
|
@@ -17,6 +17,16 @@
|
|
|
17
17
|
flex-shrink: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
.tabular-grid .tabular-grid-column::part(selector) {
|
|
21
|
+
vertical-align: top;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.tabular-grid .tabular-grid-column::part(selector)::before {
|
|
25
|
+
position: absolute;
|
|
26
|
+
inset-block-start: 0;
|
|
27
|
+
inset-inline-start: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
20
30
|
/*@container queries*/
|
|
21
31
|
/* hiChar styles
|
|
22
32
|
Found on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.
|
|
@@ -17,6 +17,16 @@
|
|
|
17
17
|
flex-shrink: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
.tabular-grid .tabular-grid-column::part(selector) {
|
|
21
|
+
vertical-align: top;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.tabular-grid .tabular-grid-column::part(selector)::before {
|
|
25
|
+
position: absolute;
|
|
26
|
+
inset-block-start: 0;
|
|
27
|
+
inset-inline-start: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
20
30
|
button.button-secondary {
|
|
21
31
|
border-color: var(--color-border-neutral-default);
|
|
22
32
|
}
|
|
@@ -14,15 +14,28 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
14
14
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
15
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
16
|
};
|
|
17
|
-
var _GxIdeTeamDevHistory__componentLocale, _GxIdeTeamDevHistory_types, _GxIdeTeamDevHistory_fromEl, _GxIdeTeamDevHistory_revisionEl, _GxIdeTeamDevHistory_searchEl, _GxIdeTeamDevHistory_toEl, _GxIdeTeamDevHistory_typesEl, _GxIdeTeamDevHistory_userEl, _GxIdeTeamDevHistory_sidebarEl, _GxIdeTeamDevHistory_revisionsGridEl, _GxIdeTeamDevHistory_selectKBItemsEL, _GxIdeTeamDevHistory_selectedVersionChanged, _GxIdeTeamDevHistory_getObjectsFromVersion, _GxIdeTeamDevHistory_getSelectedRevision, _GxIdeTeamDevHistory_registerGridContextMenuListener, _GxIdeTeamDevHistory_gridContextMenuCallbackHandler, _GxIdeTeamDevHistory_toggleFiltersHandler, _GxIdeTeamDevHistory_renderCommitsGrid, _GxIdeTeamDevHistory_renderAffectedObjectsGrid, _GxIdeTeamDevHistory_renderLoader, _GxIdeTeamDevHistory_formatHistoryDetailDate, _GxIdeTeamDevHistory_reloadHandler;
|
|
17
|
+
var _GxIdeTeamDevHistory__componentLocale, _GxIdeTeamDevHistory_types, _GxIdeTeamDevHistory_fromEl, _GxIdeTeamDevHistory_revisionEl, _GxIdeTeamDevHistory_searchEl, _GxIdeTeamDevHistory_toEl, _GxIdeTeamDevHistory_typesEl, _GxIdeTeamDevHistory_userEl, _GxIdeTeamDevHistory_sidebarEl, _GxIdeTeamDevHistory_revisionsGridEl, _GxIdeTeamDevHistory_selectKBItemsEL, _GxIdeTeamDevHistory_selectedVersionChanged, _GxIdeTeamDevHistory_getObjectsFromVersion, _GxIdeTeamDevHistory_getSelectedRevision, _GxIdeTeamDevHistory_sortCommitsGridColumnCallback, _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback, _GxIdeTeamDevHistory_registerGridContextMenuListener, _GxIdeTeamDevHistory_gridContextMenuCallbackHandler, _GxIdeTeamDevHistory_toggleFiltersHandler, _GxIdeTeamDevHistory_renderCommitsGrid, _GxIdeTeamDevHistory_renderAffectedObjectsGrid, _GxIdeTeamDevHistory_renderLoader, _GxIdeTeamDevHistory_formatHistoryDetailDate, _GxIdeTeamDevHistory_reloadHandler;
|
|
18
18
|
/* STENCIL IMPORTS */
|
|
19
19
|
import { h, Host } from "@stencil/core";
|
|
20
|
+
import sortTabularGridColumn from "../../../common/chameleon/tabular-grid-column-sort";
|
|
20
21
|
import { config } from "../../../common/config";
|
|
21
22
|
import { formatDate } from "../../../common/helpers";
|
|
22
23
|
import { Locale } from "../../../common/locale";
|
|
23
24
|
import { renderObjectStateWithIcon, renderObjectTypeWithIcon } from "../common/utilities";
|
|
24
25
|
import ICONS from "../version-control/common/constants";
|
|
25
26
|
import { mapObjectTypeToComboBoxItemModel } from "./helpers";
|
|
27
|
+
const COMMITS_COLUMNS_IDS = {
|
|
28
|
+
id: "id",
|
|
29
|
+
comment: "comment",
|
|
30
|
+
user: "user",
|
|
31
|
+
commitDate: "commitDate"
|
|
32
|
+
};
|
|
33
|
+
const AFFECTED_OBJECTS_COLUMNS_IDS = {
|
|
34
|
+
name: "name",
|
|
35
|
+
type: "type",
|
|
36
|
+
description: "description",
|
|
37
|
+
state: "state"
|
|
38
|
+
};
|
|
26
39
|
const CSS_BUNDLES = [
|
|
27
40
|
"resets/box-sizing",
|
|
28
41
|
"utils/form--full",
|
|
@@ -87,6 +100,29 @@ export class GxIdeTeamDevHistory {
|
|
|
87
100
|
this.historyDetail = null;
|
|
88
101
|
}
|
|
89
102
|
});
|
|
103
|
+
_GxIdeTeamDevHistory_sortCommitsGridColumnCallback.set(this, (e) => {
|
|
104
|
+
let dataType = "string";
|
|
105
|
+
if (e.detail.columnId === COMMITS_COLUMNS_IDS.commitDate) {
|
|
106
|
+
dataType = "date";
|
|
107
|
+
}
|
|
108
|
+
else if (e.detail.columnId === COMMITS_COLUMNS_IDS.id) {
|
|
109
|
+
dataType = "number";
|
|
110
|
+
}
|
|
111
|
+
this.objects = [...sortTabularGridColumn(e, this.objects, dataType)];
|
|
112
|
+
});
|
|
113
|
+
_GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback.set(this, (e) => {
|
|
114
|
+
if (!this.historyDetail) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const isTypeColumn = e.detail.columnId === AFFECTED_OBJECTS_COLUMNS_IDS.type;
|
|
118
|
+
const dateType = isTypeColumn
|
|
119
|
+
? "object"
|
|
120
|
+
: "string";
|
|
121
|
+
const objectProperty = isTypeColumn ? "name" : undefined;
|
|
122
|
+
this.historyDetail = Object.assign(Object.assign({}, this.historyDetail), { objects: [
|
|
123
|
+
...sortTabularGridColumn(e, this.historyDetail.objects, dateType, objectProperty)
|
|
124
|
+
] });
|
|
125
|
+
});
|
|
90
126
|
_GxIdeTeamDevHistory_registerGridContextMenuListener.set(this, () => {
|
|
91
127
|
if (__classPrivateFieldGet(this, _GxIdeTeamDevHistory_revisionsGridEl, "f")) {
|
|
92
128
|
__classPrivateFieldGet(this, _GxIdeTeamDevHistory_revisionsGridEl, "f").addEventListener("contextmenu", (ev) => {
|
|
@@ -125,7 +161,7 @@ export class GxIdeTeamDevHistory {
|
|
|
125
161
|
__classPrivateFieldGet(this, _GxIdeTeamDevHistory_revisionsGridEl, "f").selectRow((_a = this.objects[0]) === null || _a === void 0 ? void 0 : _a.id, true);
|
|
126
162
|
}
|
|
127
163
|
}
|
|
128
|
-
} }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.id, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: "max-content" }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.comment, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: "1fr" }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.user, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: "max-content" }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.commitDate, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: "max-content" })), this.objects.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.objects.map((obj) => (h("ch-tabular-grid-row", { rowid: obj.id, key: obj.id, class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.id), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.comment), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.user), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, `${formatDate(obj.commitDate, "date-time")}`)))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").emptyRevisionsText, isAnimated: true })))), h("ch-tabular-grid-row", { class: "tabular-grid-row" })));
|
|
164
|
+
} }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { columnId: COMMITS_COLUMNS_IDS.id, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.id, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortCommitsGridColumnCallback, "f"), size: "max-content" }), h("ch-tabular-grid-column", { columnId: COMMITS_COLUMNS_IDS.comment, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.comment, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortCommitsGridColumnCallback, "f"), size: "1fr" }), h("ch-tabular-grid-column", { columnId: COMMITS_COLUMNS_IDS.user, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.user, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortCommitsGridColumnCallback, "f"), size: "max-content" }), h("ch-tabular-grid-column", { columnId: COMMITS_COLUMNS_IDS.commitDate, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").mainGrid.columns.commitDate, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortCommitsGridColumnCallback, "f"), size: "max-content" })), this.objects.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.objects.map((obj) => (h("ch-tabular-grid-row", { rowid: obj.id, key: obj.id, class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.id), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.comment), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.user), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, `${formatDate(obj.commitDate, "date-time")}`)))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").emptyRevisionsText, isAnimated: true })))), h("ch-tabular-grid-row", { class: "tabular-grid-row" })));
|
|
129
165
|
});
|
|
130
166
|
_GxIdeTeamDevHistory_renderAffectedObjectsGrid.set(this, () => {
|
|
131
167
|
var _a, _b;
|
|
@@ -135,7 +171,7 @@ export class GxIdeTeamDevHistory {
|
|
|
135
171
|
"affected-objects-grid": true,
|
|
136
172
|
"tabular-grid": true,
|
|
137
173
|
"tabular-grid--empty": tabularGridEmpty
|
|
138
|
-
} }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.name, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: config.tabularGrid.colSize.maxContent }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.types, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: config.tabularGrid.colSize.maxContent }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.description, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: config.tabularGrid.colSize.auto }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.action, "column-name-position": "text", class: "tabular-grid-column", settingable: false, size: config.tabularGrid.colSize.maxContent })), this.historyDetail && this.historyDetail.objects.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, iterable.map((obj) => (h("ch-tabular-grid-row", { class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.name), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, renderObjectTypeWithIcon(obj.type)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.description), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, renderObjectStateWithIcon(obj.state))))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateIconSrc: ICONS.filter, stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").emptyHistoryDetailText, isAnimated: true })))), h("ch-tabular-grid-row", { class: "tabular-grid-row" })));
|
|
174
|
+
} }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { columnId: AFFECTED_OBJECTS_COLUMNS_IDS.name, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.name, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback, "f"), size: config.tabularGrid.colSize.maxContent }), h("ch-tabular-grid-column", { columnId: AFFECTED_OBJECTS_COLUMNS_IDS.type, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.types, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback, "f"), size: config.tabularGrid.colSize.maxContent }), h("ch-tabular-grid-column", { columnId: AFFECTED_OBJECTS_COLUMNS_IDS.description, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.description, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback, "f"), size: config.tabularGrid.colSize.auto }), h("ch-tabular-grid-column", { columnId: AFFECTED_OBJECTS_COLUMNS_IDS.state, "column-name": __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").affectedObjectsGrid.columns.action, "column-name-position": "text", class: "tabular-grid-column", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback, "f"), size: config.tabularGrid.colSize.maxContent })), this.historyDetail && this.historyDetail.objects.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, iterable.map((obj) => (h("ch-tabular-grid-row", { class: "tabular-grid-row" }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.name), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, renderObjectTypeWithIcon(obj.type)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, obj.description), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, renderObjectStateWithIcon(obj.state))))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateIconSrc: ICONS.filter, stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").emptyHistoryDetailText, isAnimated: true })))), h("ch-tabular-grid-row", { class: "tabular-grid-row" })));
|
|
139
175
|
});
|
|
140
176
|
_GxIdeTeamDevHistory_renderLoader.set(this, () => {
|
|
141
177
|
return (this.loading && (h("div", { class: "main__content scrollable" }, h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").loader.title, show: true, description: __classPrivateFieldGet(this, _GxIdeTeamDevHistory__componentLocale, "f").loader.description }))));
|
|
@@ -397,5 +433,5 @@ export class GxIdeTeamDevHistory {
|
|
|
397
433
|
}
|
|
398
434
|
static get elementRef() { return "el"; }
|
|
399
435
|
}
|
|
400
|
-
_GxIdeTeamDevHistory__componentLocale = new WeakMap(), _GxIdeTeamDevHistory_types = new WeakMap(), _GxIdeTeamDevHistory_fromEl = new WeakMap(), _GxIdeTeamDevHistory_revisionEl = new WeakMap(), _GxIdeTeamDevHistory_searchEl = new WeakMap(), _GxIdeTeamDevHistory_toEl = new WeakMap(), _GxIdeTeamDevHistory_typesEl = new WeakMap(), _GxIdeTeamDevHistory_userEl = new WeakMap(), _GxIdeTeamDevHistory_sidebarEl = new WeakMap(), _GxIdeTeamDevHistory_revisionsGridEl = new WeakMap(), _GxIdeTeamDevHistory_selectKBItemsEL = new WeakMap(), _GxIdeTeamDevHistory_selectedVersionChanged = new WeakMap(), _GxIdeTeamDevHistory_getObjectsFromVersion = new WeakMap(), _GxIdeTeamDevHistory_getSelectedRevision = new WeakMap(), _GxIdeTeamDevHistory_registerGridContextMenuListener = new WeakMap(), _GxIdeTeamDevHistory_gridContextMenuCallbackHandler = new WeakMap(), _GxIdeTeamDevHistory_toggleFiltersHandler = new WeakMap(), _GxIdeTeamDevHistory_renderCommitsGrid = new WeakMap(), _GxIdeTeamDevHistory_renderAffectedObjectsGrid = new WeakMap(), _GxIdeTeamDevHistory_renderLoader = new WeakMap(), _GxIdeTeamDevHistory_formatHistoryDetailDate = new WeakMap(), _GxIdeTeamDevHistory_reloadHandler = new WeakMap();
|
|
436
|
+
_GxIdeTeamDevHistory__componentLocale = new WeakMap(), _GxIdeTeamDevHistory_types = new WeakMap(), _GxIdeTeamDevHistory_fromEl = new WeakMap(), _GxIdeTeamDevHistory_revisionEl = new WeakMap(), _GxIdeTeamDevHistory_searchEl = new WeakMap(), _GxIdeTeamDevHistory_toEl = new WeakMap(), _GxIdeTeamDevHistory_typesEl = new WeakMap(), _GxIdeTeamDevHistory_userEl = new WeakMap(), _GxIdeTeamDevHistory_sidebarEl = new WeakMap(), _GxIdeTeamDevHistory_revisionsGridEl = new WeakMap(), _GxIdeTeamDevHistory_selectKBItemsEL = new WeakMap(), _GxIdeTeamDevHistory_selectedVersionChanged = new WeakMap(), _GxIdeTeamDevHistory_getObjectsFromVersion = new WeakMap(), _GxIdeTeamDevHistory_getSelectedRevision = new WeakMap(), _GxIdeTeamDevHistory_sortCommitsGridColumnCallback = new WeakMap(), _GxIdeTeamDevHistory_sortAffectedObjectsGridColumnCallback = new WeakMap(), _GxIdeTeamDevHistory_registerGridContextMenuListener = new WeakMap(), _GxIdeTeamDevHistory_gridContextMenuCallbackHandler = new WeakMap(), _GxIdeTeamDevHistory_toggleFiltersHandler = new WeakMap(), _GxIdeTeamDevHistory_renderCommitsGrid = new WeakMap(), _GxIdeTeamDevHistory_renderAffectedObjectsGrid = new WeakMap(), _GxIdeTeamDevHistory_renderLoader = new WeakMap(), _GxIdeTeamDevHistory_formatHistoryDetailDate = new WeakMap(), _GxIdeTeamDevHistory_reloadHandler = new WeakMap();
|
|
401
437
|
//# sourceMappingURL=history.js.map
|