@genexus/genexus-ide-ui 1.1.37 → 1.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +9 -3
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js +19 -34
- package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +9 -6
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +12 -4
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-status-message.cjs.entry.js +42 -0
- package/dist/cjs/gx-ide-status-message.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/details-acknowledgements/details-acknowledgements.js +19 -34
- package/dist/collection/components/details-acknowledgements/details-acknowledgements.js.map +1 -1
- package/dist/collection/components/details-acknowledgements/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.en.json +3 -1
- package/dist/collection/components/details-acknowledgements/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +3 -1
- package/dist/collection/components/details-acknowledgements/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.zh.json +3 -1
- package/dist/collection/components/new-kb/new-kb.js +9 -7
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/status-message/gx-ide-assets/status-message/images/genexus-next-logo.svg +3 -0
- package/dist/collection/components/status-message/gx-ide-assets/status-message/images/left-side-illustration.svg +36 -0
- package/dist/collection/components/status-message/gx-ide-assets/status-message/images/right-side-illustration.svg +31 -0
- package/dist/collection/components/status-message/gx-ide-assets/status-message/langs/status-message.lang.en.json +6 -0
- package/dist/collection/components/status-message/gx-ide-assets/status-message/langs/status-message.lang.ja.json +6 -0
- package/dist/collection/components/status-message/gx-ide-assets/status-message/langs/status-message.lang.zh.json +6 -0
- package/dist/collection/components/status-message/status-message.css +33 -0
- package/dist/collection/components/status-message/status-message.js +42 -0
- package/dist/collection/components/status-message/status-message.js.map +1 -0
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +9 -3
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/server-selector.js +12 -4
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +9 -3
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-details-acknowledgements.js +19 -34
- package/dist/components/gx-ide-details-acknowledgements.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +9 -7
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +12 -4
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-status-message.d.ts +11 -0
- package/dist/components/gx-ide-status-message.js +56 -0
- package/dist/components/gx-ide-status-message.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +9 -3
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-details-acknowledgements.entry.js +19 -34
- package/dist/esm/gx-ide-details-acknowledgements.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +9 -6
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +12 -4
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-status-message.entry.js +38 -0
- package/dist/esm/gx-ide-status-message.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.en.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.zh.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/images/genexus-next-logo.svg +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/images/left-side-illustration.svg +36 -0
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/images/right-side-illustration.svg +31 -0
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/langs/status-message.lang.en.json +6 -0
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/langs/status-message.lang.ja.json +6 -0
- package/dist/genexus-ide-ui/gx-ide-assets/status-message/langs/status-message.lang.zh.json +6 -0
- package/dist/genexus-ide-ui/{p-3dc5d62e.entry.js → p-4b680e46.entry.js} +102 -102
- package/dist/genexus-ide-ui/p-4b680e46.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-50253b96.entry.js +61 -0
- package/dist/genexus-ide-ui/p-50253b96.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-bee71b20.entry.js → p-970e89ac.entry.js} +55 -45
- package/dist/genexus-ide-ui/p-970e89ac.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9ad85231.entry.js → p-b34ecbdc.entry.js} +35 -28
- package/dist/genexus-ide-ui/p-b34ecbdc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5e2f9545.entry.js → p-bd0ffc08.entry.js} +56 -72
- package/dist/genexus-ide-ui/p-bd0ffc08.entry.js.map +1 -0
- package/dist/types/components/details-acknowledgements/types.d.ts +1 -1
- package/dist/types/components/new-kb/new-kb.d.ts +2 -3
- package/dist/types/components/status-message/status-message.d.ts +9 -0
- package/dist/types/components.d.ts +13 -0
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-3dc5d62e.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5e2f9545.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9ad85231.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-bee71b20.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["newKbCss","CSS_BUNDLES","WINDOWS_AUTHENTICATION_VALUE","MAIN_SECTION_CLASSES","BASIC_SECTION_PARENT_CLASSES","SYSTEM_ICON","getIconPath","category","name","colorType","BASIC_TAB_SELECTOR","ADVANCED_TAB_SELECTOR","GxIdeNewKb","_GxIdeNewKb_advancedTabHasBeenRendered","set","this","_GxIdeNewKb_componentLocale","_GxIdeNewKb_frontEndsCheckedMap","Map","_GxIdeNewKb_selectedPrototypingEnvironmentId","_GxIdeNewKb_selectedDataSourceId","_GxIdeNewKb_shortcutsSrc","getAssetPath","_GxIdeNewKb_kbSectionsModel","_GxIdeNewKb_authenticationTypeEl","_GxIdeNewKb_collationEl","_GxIdeNewKb_createDataFilesInKBFolderEl","_GxIdeNewKb_databaseNameEl","_GxIdeNewKb_dataSourceEl","_GxIdeNewKb_kbNameEl","_GxIdeNewKb_locationEl","_GxIdeNewKb_passwordEl","_GxIdeNewKb_prototypingEnvironmentEl","_GxIdeNewKb_prototypingTargetEl","_GxIdeNewKb_savePasswordEl","_GxIdeNewKb_serverNameEl","_GxIdeNewKb_userInterfaceLanguageEl","_GxIdeNewKb_userNameEl","_GxIdeNewKb_chShortcutsEl","_GxIdeNewKb_handlerAuthenticationTypeInput","e","authenticationTypeValue","detail","__classPrivateFieldGet","_GxIdeNewKb_evaluateUserInputsDisplay","call","_GxIdeNewKb_handlerServerNameInput","_GxIdeNewKb_evaluateCreateDataCheckboxEnabled","_GxIdeNewKb_prototypingEnvironmentValueChangedHandler","event","__classPrivateFieldSet","_GxIdeNewKb_getDataSources","_GxIdeNewKb_updateFrontEnds","_GxIdeNewKb_prototypingTargetValueChangedHandler","async","_GxIdeNewKb_getPrototypingEnvironments","_GxIdeNewKb_dataSourceValueChangedHandler","value","_GxIdeNewKb_renderAdvanced","h","class","tabAdvanced","tabTitle","htmlFor","serverName","label","disabled","serverNames","length","placeholder","disabledPlaceholder","serverNamesInitialValue","ref","el","model","serverNamesComboBoxModel","onInput","id","part","_GxIdeNewKb_evaluateTooltipRender","authenticationType","authenticationTypes","authenticationTypesInitialValue","authenticationTypesComboBoxModel","undefined","databaseName","userNameVisible","userName","collation","collations","collationsInitialValue","collationsComboBoxModel","passwordVisible","password","type","checkedValue","caption","createDataFilesInKbFolder","createDataInKbDisabled","savePasswordVisible","savePassword","_GxIdeNewKb_renderBasic","tabBasic","prototypingTarget","prototypingTargets","prototypingTargetsInitialValue","prototypingTargetsComboBoxModel","userInterfaceLanguage","userInterfaceLanguages","userInterfaceLanguagesInitialValue","userInterfaceLanguagesComboBoxModel","backEnd","backEndLabel","prototypingEnvironment","defaultPrototypingEnvironments","prototypingEnvironmentsComboBoxModel","dataSource","defaultDataSources","defaultDataSourcesComboBoxModel","frontEnd","frontEndLabel","renderChCheckboxItems","frontEnds","_GxIdeNewKb_frontEndCheckboxInputHandler","get","_GxIdeNewKb_cancelKbHandler","cancelCallback","_GxIdeNewKb_createKbHandler","selectedFrontEndIds","_a","createCallback","_b","_c","createDataFilesInKBFolder","_d","_e","_f","kbLocation","_g","kbName","_h","_j","_k","_l","_m","_o","_p","_q","then","formSubmitResult","validatableControls","validateControls","serverNameValue","controlReference","hasError","message","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","target","checked","_GxIdeNewKb_updateFrontEndsCheckedMap","checkboxId","currentState","push","checkboxIndex","findIndex","removeIndex","getPrototypingEnvironmentsCallback","selectedPrototypingTargetId","envs","getDataSourcesCallback","selectedPrototypingEnvironmentId","updatedDefaultDataSourcesPromise","result","setSelectedItem","getSelectedItem","catch","_GxIdeNewKb_initialSetupAdvancedTab","selectedServerNameValue","selectedAuthenticationType","watchAuthenticationTypes","watchCollations","_GxIdeNewKb_initializeValidatableControlsBasicTab","forEach","validatableControl","reference","_GxIdeNewKb_initializeValidatableControlsAdvancedTab","_GxIdeNewKb_selectLocationHandler","selectLocationCallback","_GxIdeNewKb_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","updatedFrontEnds","getFrontEndsCallback","newValue","mapOptionsToComboBoxItemModel","watchDefaultDataSources","watchDefaultPrototypingEnvironments","watchPrototypingTargets","watchServerNames","watchUserInterfaceLanguages","componentWillLoad","Locale","getComponentStrings","tabLabel","connectedCallback","componentDidLoad","componentDidRender","suspendShortcuts","suspend","render","Host","src","isAdvanced","header","autoFocus","selectLocationButton","title","onClick","scrollable","tab","tabListPosition","selectedId","overflow","contain","onSelectedItemChange","slot","footer","btnCancel","btnCreate"],"sources":["src/components/new-kb/new-kb.scss?tag=gx-ide-new-kb&encapsulation=shadow","src/components/new-kb/new-kb.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n &-one-col {\n grid-template-columns: 1fr;\n }\n &-two-cols {\n grid-template-columns: 1fr 1fr;\n }\n}\n// location appears if advanced is true\n.location-wrapper {\n display: flex;\n gap: var(--mer-spacing--2xs);\n}\n.location {\n flex-grow: 1;\n grid-area: location;\n}\n\n.basic {\n display: grid;\n grid-template:\n \"basic-top basic-top\" max-content\n \"back-end front-end\" 1fr;\n grid-template-columns: 1fr 1fr;\n}\n.basic__header {\n grid-area: basic-top;\n grid-template-columns: 1fr 1fr;\n}\n.control-header__back-end,\n.control-header__front-end {\n padding-block-start: var(--mer-spacing--md);\n}\n.main__back-end {\n border-inline-end: var(--section-common-border);\n}\n.main__back-end,\n.main__front-end {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n// back end\n.section__back-end {\n grid-area: back-end;\n grid-auto-rows: max-content;\n}\n// front end\n.section__front-end {\n grid-area: front-end;\n}\n.section__back-end,\n.section__front-end {\n display: grid;\n grid-template-rows: max-content 1fr;\n overflow: auto;\n}\n\n// advanced\n.tab-advanced-title {\n grid-area: tab-advanced-title;\n}\n.layout-tab-advanced-left-col {\n grid-area: layout-tab-advanced-left-col;\n}\n.layout-tab-advanced-right-col {\n grid-area: layout-tab-advanced-right-col;\n}\n\n.basic,\n.advanced {\n padding-block-start: var(--content-block-spacing);\n overflow: auto;\n block-size: 100%;\n}\n\n.tab-advanced__field-group {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: auto;\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tab::part(page) {\n // WA / TODO: Remove this line when the ch-tab renders supports scrollbar\n // custom styling\n scrollbar-width: thin;\n}\n","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 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 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 #passwordEl!: HTMLChEditElement;\n #prototypingEnvironmentEl!: HTMLChComboBoxRenderElement;\n #prototypingTargetEl!: HTMLChComboBoxRenderElement;\n #savePasswordEl!: HTMLChCheckboxElement;\n #serverNameEl!: HTMLChComboBoxRenderElement;\n #userInterfaceLanguageEl!: HTMLChComboBoxRenderElement;\n #userNameEl!: HTMLChEditElement;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n\n @State() advancedTabIsVisible: boolean = false;\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 @State() validatableControls = new Map<string, ControlValidation>();\n @State() createDataInKbDisabled = false;\n @State() userNameVisible = true;\n @State() passwordVisible = true;\n @State() savePasswordVisible = true;\n // representations of GxOption[] as ComboBoxModel, and initialValue for each one.\n @State() authenticationTypesComboBoxModel: ComboBoxModel = [];\n @State() authenticationTypesInitialValue: string;\n @State() collationsComboBoxModel: ComboBoxModel = [];\n @State() collationsInitialValue: string;\n @State() defaultDataSourcesComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsInitialValue: string;\n @State() prototypingEnvironmentsComboBoxModel: ComboBoxModel = [];\n @State() prototypingEnvironmentsInitialValue: string;\n @State() serverNamesComboBoxModel: ComboBoxModel = [];\n @State() serverNamesInitialValue: string;\n @State() userInterfaceLanguagesComboBoxModel: ComboBoxModel = [];\n @State() userInterfaceLanguagesInitialValue: string;\n\n /**\n * Defines the type of authentication for the connection to the previously defined database\n */\n @Prop() readonly authenticationTypes: GxOption[] = [];\n @Watch(\"authenticationTypes\")\n watchAuthenticationTypes(newValue: GxOption[]) {\n if (newValue?.length) {\n this.authenticationTypesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.authenticationTypesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * DB Collations\n */\n @Prop() readonly collations!: GxOption[];\n @Watch(\"collations\")\n watchCollations(newValue: GxOption[]) {\n if (newValue?.length) {\n this.collationsComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.collationsInitialValue = getSelectedItem(newValue);\n }\n }\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 * Disabled if the first item of the 'Server Name' combo is selected\n */\n @Prop() readonly createDataFilesInKBFolder: boolean = false;\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 * Name of the DB server where we want to persist the information of our KB\n */\n @Prop() readonly serverNames: GxOption[] = [];\n @Watch(\"serverNames\")\n watchServerNames(newValue: GxOption[]) {\n if (newValue?.length) {\n this.serverNamesComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.serverNamesInitialValue = getSelectedItem(newValue);\n }\n }\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 (first item of the combo)\n */\n @Prop() readonly userName: string;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\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.watchServerNames(this.serverNames);\n this.watchUserInterfaceLanguages(this.userInterfaceLanguages);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n if (this.advancedTabIsVisible && !this.#advancedTabHasBeenRendered) {\n // just call this once.\n this.#initialSetupAdvancedTab();\n this.#initializeValidatableControlsAdvancedTab();\n this.#advancedTabHasBeenRendered = true;\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 // Uncomment when \"TODO: define button handler and logic\" is done.\n // #geminiToolsSearchPrimary = getIconPath({\n // category: \"gemini-tools\",\n // name: \"search\",\n // colorType: \"primary\"\n // });\n // #geminiToolsResetPrimary = getIconPath({\n // category: \"gemini-tools\",\n // name: \"reset\",\n // colorType: \"primary\"\n // });\n\n #handlerAuthenticationTypeInput = (e: CustomEvent<string> | InputEvent) => {\n const authenticationTypeValue = e?.detail;\n this.#evaluateUserInputsDisplay(authenticationTypeValue as string);\n };\n\n #handlerServerNameInput = (e: CustomEvent<string> | InputEvent) => {\n this.#evaluateCreateDataCheckboxEnabled(e.detail as string);\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 return [\n <h2\n // #knowledge base storage\n class=\"control-header subtitle-regular-xs\t text-align-center\"\n >\n {this.#componentLocale.tabAdvanced.tabTitle}\n </h2>,\n <div class=\"field-group tab-advanced__field-group\">\n <div\n // #server name\n class=\"field field-block server-name-field\"\n >\n <label class=\"label\" htmlFor=\"serverName\">\n {this.#componentLocale.tabAdvanced.serverName.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.serverNames.length === 0}\n placeholder={\n this.serverNames.length === 0\n ? this.#componentLocale.tabAdvanced.serverName\n .disabledPlaceholder\n : \"\"\n }\n value={this.serverNamesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#serverNameEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.serverNamesComboBoxModel}\n onInput={\n this.serverNames.length > 0 && this.#handlerServerNameInput\n }\n id=\"serverName\"\n part=\"server-name\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#serverNameEl)}\n </div>\n\n {/* <button\n TODO: define button handler and logic\n class=\"button-tertiary button-icon-only server-name-button\"\n aria-label=\"caption\"\n part=\"search-server-name\"\n hidden\n >\n <ch-image\n class=\"icon-sm\"\n src={this.#geminiToolsSearchPrimary}\n ></ch-image>\n </button> */}\n\n <div\n // #authentication type\n class=\"field field-block authentication-type-field\"\n >\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.authenticationTypesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#authenticationTypeEl = 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 <div\n // #database\n class=\"field field-block database-field\"\n >\n <label class=\"label\" htmlFor=\"databaseName\">\n {this.#componentLocale.tabAdvanced.databaseName.label}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input\"\n value={this.databaseName}\n id=\"databaseName\"\n part=\"database-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#databaseNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#databaseNameEl)}\n </div>\n\n {this.userNameVisible ? (\n <div\n // #username\n class=\"field field-block username-field\"\n >\n <label class=\"label\" htmlFor=\"userName\">\n {this.#componentLocale.tabAdvanced.userName.label}\n </label>\n <ch-edit\n // TODO add placeholder\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 ></ch-edit>\n {this.#evaluateTooltipRender(this.#userNameEl)}\n </div>\n ) : null}\n\n <div\n // #collation\n class=\"field field-block collation-field\"\n >\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={this.serverNames.length === 0}\n placeholder={\n this.collations.length === 0\n ? this.#componentLocale.tabAdvanced.collation\n .disabledPlaceholder\n : \"\"\n }\n value={this.collationsInitialValue}\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 {/* <button\n TODO: define button handler and logic \n class=\"button-tertiary button-icon-only collation-button\"\n aria-label=\"caption\"\n part=\"reset-collation\"\n >\n <ch-image\n class=\"icon-sm\"\n src={this.#geminiToolsResetPrimary}\n ></ch-image>\n </button> */}\n\n {this.passwordVisible ? (\n <div\n // #password\n class=\"field field-block password-field\"\n >\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.tabAdvanced.password.label}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input\"\n type=\"password\"\n value={this.password}\n id=\"password\"\n part=\"password\"\n ref={(el: HTMLChEditElement) =>\n (this.#passwordEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordEl)}\n </div>\n ) : null}\n\n <ch-checkbox\n // #create data in knowledge base folder\n class=\"checkbox create-data-in-kb-checkbox\"\n checkedValue=\"createDataFilesInKBFolder\"\n caption={this.#componentLocale.tabAdvanced.createDataFilesInKbFolder}\n disabled={this.createDataInKbDisabled}\n part=\"create-data-in-kb\"\n id=\"createDataFilesInKBFolder\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#createDataFilesInKBFolderEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n\n {this.savePasswordVisible ? (\n <ch-checkbox\n // #save password\n class=\"checkbox save-password-checkbox\"\n checkedValue=\"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 ></ch-checkbox>\n ) : null}\n </div>\n ];\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <section class=\"basic__header field-group control-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=\"control-header control-header-with-border control-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=\"control-header control-header-with-border control-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 </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 }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n /**\n * Disable \"Create Data in Knowledge Base Folder\" if the first Server Name\n * option is selected.\n * */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #evaluateCreateDataCheckboxEnabled = (serverNameValue: string) => {\n if (this.serverNames[0]?.id === serverNameValue) {\n this.createDataInKbDisabled = true;\n } else {\n this.createDataInKbDisabled = false;\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 /**\n * If \"Authentication Type\" is \"Windows Authentication\", hide User Name,\n * Password, and Save Password fields.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #evaluateUserInputsDisplay = (authenticationTypeValue: string) => {\n if (authenticationTypeValue === WINDOWS_AUTHENTICATION_VALUE) {\n this.userNameVisible = false;\n this.passwordVisible = false;\n this.savePasswordVisible = false;\n } else {\n this.userNameVisible = true;\n this.passwordVisible = true;\n this.savePasswordVisible = true;\n }\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 };\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 selectedServerNameValue = this.#serverNameEl.value;\n this.#evaluateCreateDataCheckboxEnabled(selectedServerNameValue);\n\n const selectedAuthenticationType = this.#authenticationTypeEl.value;\n this.#evaluateUserInputsDisplay(selectedAuthenticationType);\n\n // map all \"Advanced Tab\" GxOption[]'s to ComboBoxModel's\n this.watchAuthenticationTypes(this.authenticationTypes);\n this.watchCollations(this.collations);\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.#locationEl,\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 /**\n * @description It allows defining the DBMS that will be used in the solution\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #selectLocationHandler = (): void => {\n this.selectLocationCallback().then(kbLocation => {\n if (kbLocation) {\n this.kbLocation = kbLocation;\n } else {\n // to be defined\n }\n });\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n this.advancedTabIsVisible = true;\n // Some logic for advanced tab is done on componentDidRender lifecycle,\n // since the reference to the elements is needed.\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 };\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 \"control-header-with-border\": !this.isAdvanced,\n \"control-header\": this.isAdvanced,\n \"header\": true,\n \"header-two-cols\": this.isAdvanced,\n \"header-one-col\": !this.isAdvanced,\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 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.isAdvanced && (\n <div class=\"location-wrapper\">\n <div\n // #location\n class=\"field field-inline location\"\n >\n <label class=\"label location-label\" htmlFor=\"kbLocation\">\n {this.#componentLocale.header.kbLocation}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input location-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 location-icon\"\n aria-label={this.#componentLocale.header.selectLocationButton}\n title={this.#componentLocale.header.selectLocationButton}\n part=\"button-select-location\"\n onClick={this.#selectLocationHandler}\n >\n <ch-image class=\"icon-md\" src={SYSTEM_ICON}></ch-image>\n </button>\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={\n !this.advancedTabIsVisible && this.#tabSelectionChangedHandler\n }\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 spacing-body-inline\"\n part=\"tab-button-advanced\"\n >\n {this.#renderAdvanced()}\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 \"control-footer\": this.isAdvanced,\n \"control-footer-with-border\": !this.isAdvanced,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\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 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}\n\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"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { g as s, r as e, h as t, H as a, a as o } from "./p-97107ecc.js";
|
|
2
|
+
|
|
3
|
+
import { L as i } from "./p-311eedf3.js";
|
|
4
|
+
|
|
5
|
+
const n = ":host{display:grid;block-size:100%;overflow:auto;display:flex;align-items:center;justify-content:center}.content{display:flex;align-items:center;flex-direction:column;color:var(--mer-color__neutral-gray--100);gap:var(--mer-spacing--md)}.check-icon{block-size:64px;inline-size:64px;border-radius:50%;background-color:var(--color-green-1000);background-image:var(--icon__system_check_bright--enabled);background-repeat:no-repeat;background-position:center center;background-size:32px;margin-block-end:18px}.genexus-next-logo{inline-size:140px;margin-block-start:108px}";
|
|
6
|
+
|
|
7
|
+
const r = s(`./gx-ide-assets/status-message/images/left-side-illustration.svg`);
|
|
8
|
+
|
|
9
|
+
const c = s(`./gx-ide-assets/status-message/images/right-side-illustration.svg`);
|
|
10
|
+
|
|
11
|
+
const g = s(`./gx-ide-assets/status-message/images/genexus-next-logo.svg`);
|
|
12
|
+
|
|
13
|
+
const l = [
|
|
14
|
+
// Use only the bundles that are needed for this component.
|
|
15
|
+
"resets/box-sizing", "utils/typography", "utils/spacing" ];
|
|
16
|
+
|
|
17
|
+
const d = class {
|
|
18
|
+
constructor(s) {
|
|
19
|
+
e(this, s);
|
|
20
|
+
}
|
|
21
|
+
async componentWillLoad() {
|
|
22
|
+
this._componentLocale = await i.getComponentStrings(this.el);
|
|
23
|
+
}
|
|
24
|
+
componentDidLoad() {}
|
|
25
|
+
render() {
|
|
26
|
+
return t(a, {
|
|
27
|
+
class: "widget spacing-body",
|
|
28
|
+
style: {
|
|
29
|
+
backgroundImage: `url('${r}'), url('${c}')`,
|
|
30
|
+
backgroundRepeat: "no-repeat, no-repeat",
|
|
31
|
+
backgroundPosition: "left, right bottom",
|
|
32
|
+
backgroundSize: "auto 100%, auto 55%"
|
|
33
|
+
}
|
|
34
|
+
}, t("ch-theme", {
|
|
35
|
+
model: l
|
|
36
|
+
}), t("div", {
|
|
37
|
+
class: "content"
|
|
38
|
+
}, t("span", {
|
|
39
|
+
class: "check-icon"
|
|
40
|
+
}), t("h1", {
|
|
41
|
+
class: "heading-3"
|
|
42
|
+
}, this._componentLocale.title), t("p", {
|
|
43
|
+
class: "subtitle-regular-s"
|
|
44
|
+
}, this._componentLocale.description), t("img", {
|
|
45
|
+
src: g,
|
|
46
|
+
alt: "",
|
|
47
|
+
class: "genexus-next-logo"
|
|
48
|
+
})));
|
|
49
|
+
}
|
|
50
|
+
static get assetsDirs() {
|
|
51
|
+
return [ "gx-ide-assets/status-message" ];
|
|
52
|
+
}
|
|
53
|
+
get el() {
|
|
54
|
+
return o(this);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
d.style = n;
|
|
59
|
+
|
|
60
|
+
export { d as gx_ide_status_message };
|
|
61
|
+
//# sourceMappingURL=p-50253b96.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["statusMessageCss","LEFT_SIDE_ILLUSTRATION","getAssetPath","RIGHT_SIDE_ILLUSTRATION","GENEXUS_NEXT_LOGO","CSS_BUNDLES","GxIdeStatusMessage","componentWillLoad","this","_componentLocale","Locale","getComponentStrings","el","componentDidLoad","render","h","Host","class","style","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","model","title","description","src","alt"],"sources":["src/components/status-message/status-message.scss?tag=gx-ide-status-message&encapsulation=shadow","src/components/status-message/status-message.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.content {\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--mer-color__neutral-gray--100);\n gap: var(--mer-spacing--md);\n}\n\n.check-icon {\n $checkIconSize: 64px;\n block-size: $checkIconSize;\n inline-size: $checkIconSize;\n border-radius: 50%;\n background-color: var(--color-green-1000);\n background-image: var(--icon__system_check_bright--enabled);\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 32px;\n margin-block-end: 18px;\n}\n\n.genexus-next-logo {\n inline-size: 140px;\n margin-block-start: 108px;\n}\n","// This is a starting template. Do not edit this file directly.\n// Dupicate it and modify the new file as needed.\n\nimport { Component, Host, Element, getAssetPath, h } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nconst LEFT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/left-side-illustration.svg`\n);\nconst RIGHT_SIDE_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/status-message/images/right-side-illustration.svg`\n);\nconst GENEXUS_NEXT_LOGO = getAssetPath(\n `./gx-ide-assets/status-message/images/genexus-next-logo.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-status-message\",\n styleUrl: \"status-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-message\"]\n})\nexport class GxIdeStatusMessage {\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeStatusMessageElement;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {}\n\n render() {\n return (\n <Host\n class=\"widget spacing-body\"\n style={{\n backgroundImage: `url('${LEFT_SIDE_ILLUSTRATION}'), url('${RIGHT_SIDE_ILLUSTRATION}')`,\n backgroundRepeat: \"no-repeat, no-repeat\",\n backgroundPosition: \"left, right bottom\",\n backgroundSize: \"auto 100%, auto 55%\"\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"content\">\n <span class=\"check-icon\"></span>\n <h1 class=\"heading-3\">{this._componentLocale.title}</h1>\n <p class=\"subtitle-regular-s\">{this._componentLocale.description}</p>\n <img src={GENEXUS_NEXT_LOGO} alt=\"\" class=\"genexus-next-logo\" />\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SaveCallback = () => Promise<string>;\n"],"mappings":";;;;AAAA,MAAMA,IAAmB;;ACSzB,MAAMC,IAAyBC,EAC7B;;AAEF,MAAMC,IAA0BD,EAC9B;;AAEF,MAAME,IAAoBF,EACxB;;AAGF,MAAMG,IAA8B;;AAElC,qBACA,oBACA;;MASWC,IAAkB;;;;EAK7B,uBAAMC;IACJC,KAAKC,yBAAyBC,EAAOC,oBAAoBH,KAAKI;;EAGhE,gBAAAC,IAAgB;EAEhB,MAAAC;IACE,OACEC,EAACC,GAAI;MACHC,OAAM;MACNC,OAAO;QACLC,iBAAiB,QAAQlB,aAAkCE;QAC3DiB,kBAAkB;QAClBC,oBAAoB;QACpBC,gBAAgB;;OAGlBP,EAAA;MAAUQ,OAAOlB;QACjBU,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAME,OAAM;QACZF,EAAA;MAAIE,OAAM;OAAaT,KAAKC,iBAAiBe,QAC7CT,EAAA;MAAGE,OAAM;OAAsBT,KAAKC,iBAAiBgB,cACrDV,EAAA;MAAKW,KAAKtB;MAAmBuB,KAAI;MAAGV,OAAM"}
|
|
@@ -21,29 +21,29 @@ var c = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, a)
|
|
|
21
21
|
return i === "a" ? a.call(e, s) : a ? a.value = s : t.set(e, s), s;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
var d, h, u, b, f, m, g, p, w, v, y, k, _, M, x,
|
|
24
|
+
var d, h, u, b, f, m, g, p, w, v, y, k, _, M, W, x, C, z, N, I, S, T, E, R, j, A, H, U;
|
|
25
25
|
|
|
26
|
-
const
|
|
26
|
+
const L = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/tooltip", "chameleon/scrollbar", "components/tabular-grid" ];
|
|
27
27
|
|
|
28
|
-
const
|
|
28
|
+
const D = a({
|
|
29
29
|
category: "system",
|
|
30
30
|
name: "information",
|
|
31
31
|
colorType: "on-surface"
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
const
|
|
34
|
+
const F = a({
|
|
35
35
|
category: "system",
|
|
36
36
|
name: "lock",
|
|
37
37
|
colorType: "on-surface"
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
const
|
|
40
|
+
const P = a({
|
|
41
41
|
category: "system",
|
|
42
42
|
name: "language",
|
|
43
43
|
colorType: "on-surface"
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
const
|
|
46
|
+
const $ = class {
|
|
47
47
|
constructor(s) {
|
|
48
48
|
e(this, s);
|
|
49
49
|
d.set(this, a({
|
|
@@ -108,9 +108,17 @@ const P = class {
|
|
|
108
108
|
this.enableConfirmButton = false;
|
|
109
109
|
}
|
|
110
110
|
}));
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
W.set(this, (e => {
|
|
112
|
+
n(this, C, "f").call(this, e);
|
|
113
|
+
n(this, v, "f").call(this);
|
|
114
|
+
}));
|
|
115
|
+
x.set(this, (e => {
|
|
116
|
+
n(this, z, "f").call(this, e);
|
|
117
|
+
n(this, v, "f").call(this);
|
|
118
|
+
}));
|
|
119
|
+
C.set(this, (e => n(this, N, "f").call(this, e, this.connectedServersData, n(this, b, "f"))));
|
|
120
|
+
z.set(this, (e => n(this, N, "f").call(this, e, this.recentlyUsedServersData, n(this, f, "f"))));
|
|
121
|
+
N.set(this, (async (e, t, s) => {
|
|
114
122
|
if (!this.isFirstSelection) {
|
|
115
123
|
c(this, m, n(this, g, "f"), "f");
|
|
116
124
|
}
|
|
@@ -130,7 +138,7 @@ const P = class {
|
|
|
130
138
|
await (s === null || s === void 0 ? void 0 : s.selectRow(n(this, m, "f"), false));
|
|
131
139
|
}
|
|
132
140
|
}));
|
|
133
|
-
|
|
141
|
+
I.set(this, (e => {
|
|
134
142
|
this.selectedConnectionType = e.detail;
|
|
135
143
|
if (this.selectedConnectionType === "new") {
|
|
136
144
|
this.enableConfirmButton = false;
|
|
@@ -138,7 +146,7 @@ const P = class {
|
|
|
138
146
|
}
|
|
139
147
|
this.selectedServerName = "None";
|
|
140
148
|
}));
|
|
141
|
-
|
|
149
|
+
S.set(this, ((e = false) => t("ch-tabular-grid-columnset", {
|
|
142
150
|
class: "tabular-grid-column-set"
|
|
143
151
|
}, t("ch-tabular-grid-column", {
|
|
144
152
|
columnId: "icon",
|
|
@@ -155,7 +163,7 @@ const P = class {
|
|
|
155
163
|
columnName: "Server Name",
|
|
156
164
|
settingable: false,
|
|
157
165
|
columnNameHidden: e,
|
|
158
|
-
onColumnSortChanged: n(this,
|
|
166
|
+
onColumnSortChanged: n(this, A, "f"),
|
|
159
167
|
size: r.tabularGrid.colSize.serverName,
|
|
160
168
|
resizable: false
|
|
161
169
|
}), t("ch-tabular-grid-column", {
|
|
@@ -165,7 +173,7 @@ const P = class {
|
|
|
165
173
|
columnName: "Server Url",
|
|
166
174
|
settingable: false,
|
|
167
175
|
columnNameHidden: e,
|
|
168
|
-
onColumnSortChanged: n(this,
|
|
176
|
+
onColumnSortChanged: n(this, A, "f"),
|
|
169
177
|
size: r.tabularGrid.colSize.auto,
|
|
170
178
|
resizable: false
|
|
171
179
|
}), t("ch-tabular-grid-column", {
|
|
@@ -175,7 +183,7 @@ const P = class {
|
|
|
175
183
|
columnName: "Username",
|
|
176
184
|
settingable: false,
|
|
177
185
|
columnNameHidden: e,
|
|
178
|
-
onColumnSortChanged: n(this,
|
|
186
|
+
onColumnSortChanged: n(this, A, "f"),
|
|
179
187
|
size: r.tabularGrid.colSize.userName,
|
|
180
188
|
resizable: false
|
|
181
189
|
}), t("ch-tabular-grid-column", {
|
|
@@ -185,69 +193,71 @@ const P = class {
|
|
|
185
193
|
columnName: "Status",
|
|
186
194
|
settingable: false,
|
|
187
195
|
columnNameHidden: e,
|
|
188
|
-
onColumnSortChanged: n(this,
|
|
196
|
+
onColumnSortChanged: n(this, A, "f"),
|
|
189
197
|
size: r.tabularGrid.colSize.maxContent,
|
|
190
198
|
resizable: false
|
|
191
199
|
}))));
|
|
192
|
-
|
|
200
|
+
T.set(this, (e => e !== "" ? t("ch-tooltip", {
|
|
193
201
|
class: "tooltip",
|
|
194
202
|
actionElement: null,
|
|
195
203
|
blockAlign: "outside-end",
|
|
196
204
|
inlineAlign: r.tooltipSettings.inlineAlign,
|
|
197
205
|
delay: r.tooltipSettings.delay
|
|
198
206
|
}, e) : null));
|
|
199
|
-
|
|
207
|
+
E.set(this, (e => [ t("ch-tabular-grid-cell", {
|
|
200
208
|
class: "tabular-grid-cell"
|
|
201
|
-
}, n(this,
|
|
209
|
+
}, n(this, H, "f").call(this, e.accessLevel)), t("ch-tabular-grid-cell", {
|
|
202
210
|
class: "tabular-grid-cell tabular-grid-cell-server-name"
|
|
203
211
|
}, e.serverName), t("ch-tabular-grid-cell", {
|
|
204
212
|
class: "tabular-grid-cell tabular-grid-cell-server-url"
|
|
205
|
-
}, e.serverUrl, n(this,
|
|
213
|
+
}, e.serverUrl, n(this, T, "f").call(this, e.serverUrl)), t("ch-tabular-grid-cell", {
|
|
206
214
|
class: "tabular-grid-cell"
|
|
207
215
|
}, e.gxServerUsername), t("ch-tabular-grid-cell", {
|
|
208
216
|
class: "tabular-grid-cell text-neutral-gray-400 body-italic-s"
|
|
209
217
|
}, e.isConnected && "Connected") ]));
|
|
210
|
-
|
|
218
|
+
R.set(this, (e => t("ch-tabular-grid", {
|
|
211
219
|
class: "tabular-grid-recently-used tabular-grid",
|
|
212
220
|
rowSelectionMode: "single",
|
|
213
221
|
ref: e => c(this, b, e, "f"),
|
|
214
222
|
allowColumnReorder: false,
|
|
215
|
-
onRowClicked: n(this,
|
|
223
|
+
onRowClicked: n(this, z, "f"),
|
|
224
|
+
onRowDoubleClicked: n(this, x, "f"),
|
|
216
225
|
id: "recently-used-servers"
|
|
217
|
-
}, n(this,
|
|
226
|
+
}, n(this, S, "f").call(this, e), this.recentlyUsedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
|
|
218
227
|
class: "tabular-grid-rowset"
|
|
219
228
|
}, this.recentlyUsedServersData.map((e => t("ch-tabular-grid-row", {
|
|
220
229
|
rowid: e.id,
|
|
221
230
|
class: "tabular-grid-row"
|
|
222
|
-
}, n(this,
|
|
231
|
+
}, n(this, E, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
|
|
223
232
|
class: "tabular-grid-rowset"
|
|
224
233
|
}, t("ch-tabular-grid-rowset-empty", null, t("gx-ide-empty-state", {
|
|
225
|
-
stateIconSrc:
|
|
234
|
+
stateIconSrc: D,
|
|
226
235
|
stateTitle: n(this, u, "f").emptyConnectedServers,
|
|
227
236
|
isAnimated: true
|
|
228
237
|
}))))));
|
|
229
|
-
|
|
238
|
+
j.set(this, (() => t("ch-tabular-grid", {
|
|
230
239
|
class: "tabular-grid tabular-grid-all-servers",
|
|
231
240
|
rowSelectionMode: "single",
|
|
232
241
|
ref: e => c(this, f, e, "f"),
|
|
233
242
|
allowColumnReorder: false,
|
|
234
|
-
onRowClicked: n(this,
|
|
243
|
+
onRowClicked: n(this, C, "f"),
|
|
244
|
+
onRowDoubleClicked: n(this, W, "f"),
|
|
235
245
|
id: "all-servers"
|
|
236
|
-
}, n(this,
|
|
246
|
+
}, n(this, S, "f").call(this), this.filteredConnectedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
|
|
237
247
|
class: "tabular-grid-rowset"
|
|
238
248
|
}, this.filteredConnectedServersData.map((e => t("ch-tabular-grid-row", {
|
|
239
249
|
rowid: e.id,
|
|
240
250
|
class: "tabular-grid-row"
|
|
241
|
-
}, n(this,
|
|
251
|
+
}, n(this, E, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
|
|
242
252
|
class: "tabular-grid-rowset"
|
|
243
253
|
}, t("ch-tabular-grid-rowset-empty", {
|
|
244
254
|
class: "tabular-grid-rowset-empty"
|
|
245
255
|
}, t("gx-ide-empty-state", {
|
|
246
|
-
stateIconSrc:
|
|
256
|
+
stateIconSrc: D,
|
|
247
257
|
stateTitle: n(this, u, "f").emptyConnectedServers,
|
|
248
258
|
isAnimated: true
|
|
249
259
|
}))))));
|
|
250
|
-
|
|
260
|
+
A.set(this, (e => {
|
|
251
261
|
const {columnId: t, sortDirection: s} = e.detail;
|
|
252
262
|
const i = this.connectedServersData;
|
|
253
263
|
i.sort(((e, i) => {
|
|
@@ -261,14 +271,14 @@ const P = class {
|
|
|
261
271
|
}));
|
|
262
272
|
this.connectedServersData = [ ...i ];
|
|
263
273
|
}));
|
|
264
|
-
|
|
265
|
-
const s = e === "private" ?
|
|
274
|
+
H.set(this, (e => {
|
|
275
|
+
const s = e === "private" ? F : P;
|
|
266
276
|
return t("ch-image", {
|
|
267
277
|
class: "icon-md",
|
|
268
278
|
src: s
|
|
269
279
|
});
|
|
270
280
|
}));
|
|
271
|
-
|
|
281
|
+
U.set(this, (() => {
|
|
272
282
|
const e = this.selectedConnectionType === "select";
|
|
273
283
|
return t("footer", {
|
|
274
284
|
class: {
|
|
@@ -323,7 +333,7 @@ const P = class {
|
|
|
323
333
|
return t(s, {
|
|
324
334
|
class: `widget elevation-1 ${e} ${i}`
|
|
325
335
|
}, t("ch-theme", {
|
|
326
|
-
model:
|
|
336
|
+
model: L
|
|
327
337
|
}), t("main", {
|
|
328
338
|
class: "section"
|
|
329
339
|
}, t("header", {
|
|
@@ -335,7 +345,7 @@ const P = class {
|
|
|
335
345
|
}, n(this, u, "f").header.title), t("ch-radio-group-render", {
|
|
336
346
|
class: "radio-group",
|
|
337
347
|
model: n(this, h, "f"),
|
|
338
|
-
onChange: n(this,
|
|
348
|
+
onChange: n(this, I, "f"),
|
|
339
349
|
value: n(this, h, "f")[0].value
|
|
340
350
|
}), this.selectedConnectionType === "select" && t("ch-edit", {
|
|
341
351
|
class: "input search-server",
|
|
@@ -350,12 +360,12 @@ const P = class {
|
|
|
350
360
|
}, t("label", {
|
|
351
361
|
class: "label",
|
|
352
362
|
htmlFor: "recently-used-servers"
|
|
353
|
-
}, n(this, u, "f").recentlyUsed.title), n(this,
|
|
363
|
+
}, n(this, u, "f").recentlyUsed.title), n(this, R, "f").call(this, true)), t("div", {
|
|
354
364
|
class: "field field-block field-block-all-servers spacing-body-inline"
|
|
355
365
|
}, t("label", {
|
|
356
366
|
class: "label",
|
|
357
367
|
htmlFor: "all-servers"
|
|
358
|
-
}, n(this, u, "f").allServers.title), n(this,
|
|
368
|
+
}, n(this, u, "f").allServers.title), n(this, j, "f").call(this)) ], this.selectedConnectionType === "new" && t("section", {
|
|
359
369
|
class: "spacing-body-inline"
|
|
360
370
|
}, t("div", {
|
|
361
371
|
class: "layout layout--cols-2"
|
|
@@ -394,7 +404,7 @@ const P = class {
|
|
|
394
404
|
blockAlign: "outside-end",
|
|
395
405
|
inlineAlign: r.tooltipSettings.inlineAlign,
|
|
396
406
|
delay: r.tooltipSettings.delay
|
|
397
|
-
}, n(this, u, "f").errors.serverUrlInvalid))), n(this,
|
|
407
|
+
}, n(this, u, "f").errors.serverUrlInvalid))), n(this, U, "f").call(this)));
|
|
398
408
|
}
|
|
399
409
|
static get assetsDirs() {
|
|
400
410
|
return [ "gx-ide-assets/server-selector" ];
|
|
@@ -406,12 +416,12 @@ const P = class {
|
|
|
406
416
|
|
|
407
417
|
d = new WeakMap, h = new WeakMap, u = new WeakMap, b = new WeakMap, f = new WeakMap,
|
|
408
418
|
m = new WeakMap, g = new WeakMap, p = new WeakMap, w = new WeakMap, v = new WeakMap,
|
|
409
|
-
y = new WeakMap, k = new WeakMap, _ = new WeakMap, M = new WeakMap,
|
|
410
|
-
|
|
411
|
-
S = new WeakMap, T = new WeakMap, E = new WeakMap,
|
|
412
|
-
H = new WeakMap;
|
|
419
|
+
y = new WeakMap, k = new WeakMap, _ = new WeakMap, M = new WeakMap, W = new WeakMap,
|
|
420
|
+
x = new WeakMap, C = new WeakMap, z = new WeakMap, N = new WeakMap, I = new WeakMap,
|
|
421
|
+
S = new WeakMap, T = new WeakMap, E = new WeakMap, R = new WeakMap, j = new WeakMap,
|
|
422
|
+
A = new WeakMap, H = new WeakMap, U = new WeakMap;
|
|
413
423
|
|
|
414
|
-
|
|
424
|
+
$.style = o;
|
|
415
425
|
|
|
416
|
-
export {
|
|
417
|
-
//# sourceMappingURL=p-
|
|
426
|
+
export { $ as gx_ide_server_selector };
|
|
427
|
+
//# sourceMappingURL=p-970e89ac.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["serverSelectorCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","name","colorType","LOCK_ICON","LANGUAGE_ICON","GxIdeServerSelector","_GxIdeServerSelector_chSearchIcon","set","this","_GxIdeServerSelector_versionsSelect","value","caption","_GxIdeServerSelector__componentLocale","_GxIdeServerSelector_chGridRecentlyUsedServersEl","_GxIdeServerSelector_chGridConnectedServersEl","_GxIdeServerSelector_previousSelectedRowId","_GxIdeServerSelector_selectedRowId","_GxIdeServerSelector_serverUrlEL","_GxIdeServerSelector_cancelHandler","cancelCallback","_GxIdeServerSelector_confirmHandler","async","selectedConnectionType","selectServerCallback","uri","selectedServerUri","selectedServerName","isValidUrl","__classPrivateFieldGet","_GxIdeServerSelector_validateUrl","call","serverUrlInputValue","serverNameInputValue","_GxIdeServerSelector_filterValueChangedHandler","event","filterValue","detail","toLowerCase","filteredConnectedServersData","connectedServersData","filter","item","serverName","includes","_GxIdeServerSelector_inputHandler","field","enableConfirmButton","_GxIdeServerSelector_enableConfirmButton","url","serverUrl","URL","protocolValid","protocol","startsWith","ex","length","_GxIdeServerSelector_onConnectedServersRowDoubleClickHandler","_GxIdeServerSelector_selectConnectedServersHandler","_GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler","_GxIdeServerSelector_selectRecentlyUsedServersHandler","_GxIdeServerSelector_handleServerSelection","recentlyUsedServersData","serversData","otherGridEl","isFirstSelection","__classPrivateFieldSet","rowId","undefined","selectedServer","find","server","id","userName","gxServerUsername","selectRow","_GxIdeServerSelector_connectionTypeChangedHandler","_GxIdeServerSelector_renderTabularGridColumnSet","hideColumnName","h","class","columnId","columnName","settingable","columnNameHidden","size","config","tabularGrid","colSize","maxContent","resizable","sortable","onColumnSortChanged","_GxIdeServerSelector_handleColumnSortChanged","auto","_GxIdeServerSelector_renderTooltip","text","actionElement","blockAlign","inlineAlign","tooltipSettings","delay","_GxIdeServerSelector_renderTabularGridCommonCells","_GxIdeServerSelector_renderIcon","accessLevel","isConnected","_GxIdeServerSelector_renderRecentlyUsedServersGrid","rowSelectionMode","ref","el","allowColumnReorder","onRowClicked","onRowDoubleClicked","map","rowid","stateIconSrc","stateTitle","emptyConnectedServers","isAnimated","_GxIdeServerSelector_renderConnectedServersGrid","e","sortDirection","aux","sort","a","b","icon","src","_GxIdeServerSelector_renderFooter","isSelectionMode","onClick","footer","cancel","disabled","confirm","Map","componentWillLoad","Locale","getComponentStrings","_a","_b","render","connectionTypeClass","recentlyUsedEmptyClass","Host","model","header","title","onChange","startImgSrc","onInput","placeholder","placeholders","searchServers","accessibleName","type","htmlFor","recentlyUsed","allServers","labels","input","maxLength","errors","serverUrlInvalid"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n border-inline: 1px solid var(--grid-cell__border-color);\n --grid-cell__box-shadow-inline-block:\n inset 0 0px var(--grid-cell__border-color),\n inset 0 -1px var(--grid-cell__border-color);\n overflow: auto;\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n\n .tabular-grid-column:first-child::part(bar-name-icon) {\n background-image: var(\n --icon__system_order-alphabetically_on-elevation--enabled\n );\n block-size: var(--mer-icon__box--md);\n inline-size: var(--mer-icon__box--md);\n background-size: var(--mer-icon__size--md);\n }\n .tabular-grid-rowset-empty {\n border-block-end: none;\n overflow: hidden;\n }\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation\n // validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * State to track if the server URL is valid.\n */\n @State() isValidUrl: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void | ServerType> => {\n if (this.selectedConnectionType === \"select\") {\n await this.selectServerCallback({\n uri: this.selectedServerUri,\n name: this.selectedServerName\n });\n } else if (this.selectedConnectionType === \"new\") {\n this.isValidUrl = this.#validateUrl(this.serverUrlInputValue);\n if (this.isValidUrl) {\n await this.selectServerCallback({\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n });\n }\n }\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n this.#enableConfirmButton();\n };\n\n #validateUrl = (url: string): boolean => {\n try {\n const serverUrl = new URL(url);\n const protocolValid =\n (serverUrl.protocol === \"http:\" || serverUrl.protocol === \"https:\") &&\n url.startsWith(`${serverUrl.protocol}//`);\n return protocolValid;\n } catch (ex) {\n return false;\n }\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onConnectedServersRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectConnectedServersHandler(event);\n this.#confirmHandler();\n };\n\n #onRecentlyUsedRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectRecentlyUsedServersHandler(event);\n this.#confirmHandler();\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n onColumnSortChanged={this.#handleColumnSortChanged}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n onRowDoubleClicked={this.#onRecentlyUsedRowDoubleClickHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n onRowDoubleClicked={this.#onConnectedServersRowDoubleClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #handleColumnSortChanged = (e: CustomEvent) => {\n const { columnId, sortDirection } = e.detail;\n\n const aux = this.connectedServersData;\n aux.sort((a: any, b: any) => {\n if (a[columnId] < b[columnId]) {\n return sortDirection === \"asc\" ? -1 : 1;\n }\n if (a[columnId] > b[columnId]) {\n return sortDirection === \"asc\" ? 1 : -1;\n }\n return 0;\n });\n\n this.connectedServersData = [...aux];\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class={{ \"input\": true, \"input-error\": !this.isValidUrl }}\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n </div>\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ></ch-edit>\n </div>\n {!this.isValidUrl && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#serverUrlEL as unknown as HTMLButtonElement\n }\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#_componentLocale.errors.serverUrlInvalid}\n </ch-tooltip>\n )}\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerType = \"legacy\" | \"next\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"mappings":"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"}
|