@api-client/ui 0.0.5 → 0.0.8
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/demo/elements/http/http-assertions.html +3 -0
- package/demo/elements/http/http-assertions.ts +1 -1
- package/demo/elements/http/http-flows.html +23 -0
- package/demo/elements/http/http-flows.ts +92 -0
- package/demo/elements/http/index.html +3 -0
- package/demo/pages/http-project/main.ts +5 -6
- package/dist/bindings/base/StoreBindings.js +4 -4
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
- package/dist/define/http/http-assertions.d.ts +1 -1
- package/dist/define/http/http-assertions.d.ts.map +1 -1
- package/dist/define/http/http-assertions.js +3 -3
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-flows.d.ts +10 -0
- package/dist/define/http/http-flows.d.ts.map +1 -0
- package/dist/define/http/http-flows.js +13 -0
- package/dist/define/http/http-flows.js.map +1 -0
- package/dist/define/ui/ui-divider.d.ts +4 -1
- package/dist/define/ui/ui-divider.d.ts.map +1 -1
- package/dist/define/ui/ui-divider.js +11 -2
- package/dist/define/ui/ui-divider.js.map +1 -1
- package/dist/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -0
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -1
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -1
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -3
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
- package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +0 -3
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
- package/dist/elements/dialog/Rename.d.ts +7 -6
- package/dist/elements/dialog/Rename.d.ts.map +1 -1
- package/dist/elements/dialog/Rename.js +7 -6
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
- package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/SetCookieAction.element.js +173 -0
- package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
- package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
- package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +69 -23
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
- package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/dist/elements/environment/ServerEditor.d.ts +3 -3
- package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
- package/dist/elements/environment/ServerEditor.js +3 -6
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.d.ts +0 -1
- package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +3 -6
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
- package/dist/elements/highlight/Prism.styles.js +12 -5
- package/dist/elements/highlight/Prism.styles.js.map +1 -1
- package/dist/elements/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +10 -16
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
- package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +3 -19
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.d.ts +0 -1
- package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +0 -3
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +3 -5
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.d.ts +0 -4
- package/dist/elements/http/HeadersForm.d.ts.map +1 -1
- package/dist/elements/http/HeadersForm.js +0 -6
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
- package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
- package/dist/elements/http/HttpAssertions.element.js +264 -0
- package/dist/elements/http/HttpAssertions.element.js.map +1 -0
- package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
- package/dist/elements/http/HttpAssertions.styles.js +7 -156
- package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
- package/dist/elements/http/HttpFlows.common.d.ts +3 -0
- package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.common.js +181 -0
- package/dist/elements/http/HttpFlows.common.js.map +1 -0
- package/dist/elements/http/HttpFlows.element.d.ts +97 -0
- package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.element.js +684 -0
- package/dist/elements/http/HttpFlows.element.js.map +1 -0
- package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
- package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.styles.js +28 -0
- package/dist/elements/http/HttpFlows.styles.js.map +1 -0
- package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
- package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
- package/dist/elements/http/HttpFlowsUi.js +1256 -0
- package/dist/elements/http/HttpFlowsUi.js.map +1 -0
- package/dist/elements/http/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +8 -11
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.d.ts +10 -10
- package/dist/elements/http/RequestEditor.d.ts.map +1 -1
- package/dist/elements/http/RequestEditor.js +62 -23
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/UrlInput.d.ts +3 -3
- package/dist/elements/http/UrlInput.d.ts.map +1 -1
- package/dist/elements/http/UrlInput.js +2 -2
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.d.ts +0 -1
- package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +0 -3
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.styles.js +1 -0
- package/dist/elements/layout/SplitView.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
- package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -5
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +0 -1
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +1 -4
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +2 -5
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +5 -5
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +4 -7
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +4 -7
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
- package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +8 -11
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +1 -1
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +22 -3
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +19 -3
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +4 -2
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.js +5 -0
- package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +2 -1
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +14 -15
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/types.d.ts +8 -6
- package/dist/pages/http-project/types.d.ts.map +1 -1
- package/dist/pages/http-project/types.js.map +1 -1
- package/dist/styles/m3/surface.module.d.ts.map +1 -1
- package/dist/styles/m3/surface.module.js +11 -27
- package/dist/styles/m3/surface.module.js.map +1 -1
- package/dist/ui/UiElement.d.ts +4 -0
- package/dist/ui/UiElement.d.ts.map +1 -1
- package/dist/ui/UiElement.js +6 -0
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.js +3 -1
- package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
- package/dist/ui/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +3 -0
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.d.ts.map +1 -1
- package/dist/ui/effects/ripple.js +5 -1
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +3 -2
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +2 -1
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +3 -3
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +1 -1
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
- package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.element.js +39 -0
- package/dist/ui/list/UiDivider.element.js.map +1 -0
- package/dist/ui/list/UiDivider.styles.d.ts +3 -0
- package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.styles.js +49 -0
- package/dist/ui/list/UiDivider.styles.js.map +1 -0
- package/dist/ui/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +42 -13
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/package.json +1 -1
- package/src/bindings/base/StoreBindings.ts +4 -4
- package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
- package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
- package/src/define/http/http-assertions.ts +3 -3
- package/src/define/http/http-flows.ts +15 -0
- package/src/define/ui/ui-divider.ts +7 -2
- package/src/elements/ApiElement.ts +7 -0
- package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
- package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
- package/src/elements/amf/ApiRequest.element.ts +1 -1
- package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
- package/src/elements/authorization/ui/Authorization.ts +3 -5
- package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
- package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
- package/src/elements/dialog/Rename.ts +8 -7
- package/src/elements/dialog/SetCookieAction.element.ts +183 -0
- package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
- package/src/elements/environment/EnvironmentEditor.ts +81 -22
- package/src/elements/environment/ServerEditor.ts +4 -8
- package/src/elements/environment/VariablesEditor.ts +3 -7
- package/src/elements/highlight/Prism.styles.ts +12 -5
- package/src/elements/http/BodyEditor.ts +10 -17
- package/src/elements/http/BodyMultipartEditor.ts +3 -20
- package/src/elements/http/BodyTextEditor.ts +0 -4
- package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
- package/src/elements/http/HeadersForm.ts +2 -9
- package/src/elements/http/HttpAssertions.element.ts +286 -0
- package/src/elements/http/HttpAssertions.styles.ts +7 -156
- package/src/elements/http/HttpFlows.common.ts +181 -0
- package/src/elements/http/HttpFlows.element.ts +722 -0
- package/src/elements/http/HttpFlows.styles.ts +29 -0
- package/src/elements/http/HttpFlowsUi.ts +1327 -0
- package/src/elements/http/RequestConfigElement.ts +10 -14
- package/src/elements/http/RequestEditor.ts +77 -35
- package/src/elements/http/UrlInput.ts +6 -6
- package/src/elements/http/UrlParamsForm.ts +2 -6
- package/src/elements/layout/SplitView.styles.ts +1 -0
- package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
- package/src/elements/project/HttpProjectRequest.ts +16 -5
- package/src/elements/project/ProjectRunner.ts +3 -7
- package/src/elements/schema-design/AssociationFormElement.ts +4 -8
- package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
- package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
- package/src/elements/schema-design/EntityFormElement.ts +6 -10
- package/src/elements/schema-design/PropertyFormElement.ts +11 -15
- package/src/pages/ApplicationScreen.ts +1 -1
- package/src/pages/api-client/ApiClient.styles.ts +22 -3
- package/src/pages/api-client/Authenticate.screen.ts +19 -3
- package/src/pages/api-client/StoreConfig.screen.ts +4 -2
- package/src/pages/api-client/StoreConfig.styles.ts +5 -0
- package/src/pages/api-client/pages/Files.page.ts +2 -1
- package/src/pages/http-project/HttpProject.screen.ts +14 -26
- package/src/pages/http-project/types.ts +8 -6
- package/src/styles/m3/surface.module.ts +11 -27
- package/src/styles/m3/theme.css +36 -0
- package/src/styles/m3/tokens.css +11 -0
- package/src/ui/UiElement.ts +7 -0
- package/src/ui/button/SegmentedButton.styles.ts +3 -1
- package/src/ui/dialog/UiDialog.ts +3 -0
- package/src/ui/effects/ripple.ts +6 -1
- package/src/ui/icons/Icons.ts +3 -2
- package/src/ui/input/CheckedElement.ts +3 -3
- package/src/ui/input/Input.ts +1 -1
- package/src/ui/list/UiDivider.element.ts +41 -0
- package/src/ui/list/UiDivider.styles.ts +49 -0
- package/src/ui/tabs/UiTabs.ts +55 -13
- package/test/amf/authorization/OAuth2Method.test.ts +1 -1
- package/test/elements/http/HttpAssertions.test.ts +5 -6
- package/test/elements/http/HttpFlows.test.ts +485 -0
- package/dist/elements/http/HttpAssertions.d.ts +0 -114
- package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
- package/dist/elements/http/HttpAssertions.js +0 -1146
- package/dist/elements/http/HttpAssertions.js.map +0 -1
- package/dist/elements/http/internals.d.ts +0 -150
- package/dist/elements/http/internals.d.ts.map +0 -1
- package/dist/elements/http/internals.js +0 -150
- package/dist/elements/http/internals.js.map +0 -1
- package/dist/ui/list/DividerElement.d.ts.map +0 -1
- package/dist/ui/list/DividerElement.js +0 -82
- package/dist/ui/list/DividerElement.js.map +0 -1
- package/src/elements/http/HttpAssertions.ts +0 -1187
- package/src/elements/http/internals.ts +0 -151
- package/src/http-client/docs/Files.md +0 -28
- package/src/ui/list/DividerElement.ts +0 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyFormElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/PropertyFormElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataNamespace, DataProperty, DataPropertyType, DataPropertyTypes, EventUtils } from \"@api-client/core/build/browser.js\";\nimport { css, CSSResult, html, TemplateResult, nothing, PropertyValues } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { IPropertySchema } from \"@api-client/core/build/src/models/data/Bindings.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport EditorCommon from './CommonStyles.js';\nimport theme from '../theme.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport { SupportedInputTypes } from \"../../types/input.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-icon.js';\n\ninterface IInputTemplateOptions {\n type: DataPropertyType;\n name: string;\n label: string;\n handler: (e: Event) => void;\n value?: unknown;\n addButton?: boolean;\n}\n\nexport default class PropertyFormElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n\n .no-description {\n margin: 1.2rem 20px;\n }\n\n .enum-values {\n margin: 0px 0px 20px;\n padding: 0px 0px 20px;\n }\n\n .input-item {\n display: flex;\n list-style: none;\n margin: 4px 20px;\n }\n\n .input.list-input {\n margin: 0;\n flex: 1;\n }\n `\n ]\n }\n \n /**\n * The key of the property to edit.\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The computed entity when the key or root change.\n */\n @state() protected _property?: DataProperty;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeProperty();\n }\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeProperty(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._property = undefined;\n return;\n }\n this._property = root.definitions.properties.find(i => i.key === key);\n }\n\n protected _infoChangeHandler(e: Event): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const node = e.target as Input;\n const { name, value } = node;\n if (!['name', 'description', 'displayName'].includes(name as string)) {\n return;\n }\n if (name === 'name' && !value) {\n return;\n }\n _property.info[name as 'name' | 'description' | 'displayName'] = value;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n setType(value: DataPropertyType): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n if (_property.type === value) {\n return;\n }\n _property.type = value;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected typeSelectHandler(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const value = target.dataset.value as DataPropertyType | undefined;\n if (value) {\n this.setType(value);\n }\n }\n\n protected _checkedHandler(e: Event): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const input = e.target as CheckboxElement;\n const name = input.name as 'multiple' | 'required' | 'primary' | 'index';\n const { checked } = input;\n if (_property[name] === checked) {\n return;\n }\n _property[name] = checked;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected defaultValueHandler(e: CustomEvent): void {\n const target = e.target as HTMLElement;\n let value: string | undefined;\n if (target.localName === 'ui-dropdown-list') {\n const item = e.detail.item as HTMLElement;\n value = item.dataset.value;\n this.requestUpdate();\n } else {\n const input = e.target as Input;\n value = input.value;\n }\n this.setDefaultValue(value);\n }\n\n /**\n * Sets a new defaultValue on the property schema\n * @param value The default value to set. Empty to remove.\n */\n setDefaultValue(value?: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (value === schema.defaultValue) {\n return;\n }\n if (value) {\n schema.defaultValue = value;\n } else {\n delete schema.defaultValue;\n }\n this._notifyChanged();\n }\n\n /**\n * Adds an example value to the current property's schema.\n * @param value The example value to add\n */\n addExample(value: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.examples) {\n schema.examples = [];\n }\n const list = schema.examples as string[];\n list.push(value as string);\n this._notifyChanged();\n this.requestUpdate();\n }\n\n /**\n * Removes an example value at position.\n * @param index The position from which to remove the example value.\n */\n removeExample(index: number): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.examples) {\n return;\n }\n schema.examples.splice(index, 1);\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected exampleAddHandler(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input;\n const { value } = input;\n if (!value) {\n return;\n }\n this.addExample(value);\n input.value = '';\n }\n\n protected exampleRemoveHandler(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const { dataset } = node;\n if (!dataset.index) {\n return;\n }\n const index = Number(dataset.index);\n this.removeExample(index);\n }\n\n /**\n * Adds an enum value to the current property's schema.\n * @param value The enum value to add\n */\n addEnum(value: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.enum) {\n schema.enum = [];\n }\n const list = schema.enum as string[];\n list.push(value as string);\n this._notifyChanged();\n this.requestUpdate();\n }\n\n /**\n * Removes an enum value at position.\n * @param index The position from which to remove the enum value.\n */\n removeEnum(index: number): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.enum) {\n return;\n }\n schema.enum.splice(index, 1);\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected enumAddHandler(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input;\n const { value } = input;\n if (!value) {\n return;\n }\n this.addEnum(value);\n input.value = '';\n }\n\n protected enumRemoveHandler(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const { dataset } = node;\n if (!dataset.index) {\n return;\n }\n const index = Number(dataset.index);\n this.removeEnum(index);\n }\n\n protected _getAdapted(dataProperty: DataProperty): DataProperty {\n let adapted: DataProperty;\n if (!dataProperty.adapts) {\n adapted = dataProperty.createAdapted();\n } else {\n adapted = dataProperty.readAdapted() as DataProperty;\n }\n if (!adapted.schema) {\n adapted.schema = {};\n }\n return adapted;\n }\n\n protected override render(): TemplateResult {\n const { _property: item } = this;\n if (!item) {\n return html``;\n }\n const { info, multiple = false, required = false, primary = false, index = false, readOnly = false, writeOnly = false, deprecated = false } = item;\n // const allTags = this.root?.definitions.tags;\n return html`\n <form name=\"data-property\" @submit=\"${EventUtils.cancelEvent}\" data-key=\"${item.key}\">\n <ui-text-field class=\"input\" name=\"name\" .value=\"${live(info.name || '')}\" label=\"Property name\" required @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"displayName\" .value=\"${live(info.displayName || '')}\" label=\"Display name (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"description\" .value=\"${live(info.description || '')}\" label=\"Property description (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n ${this.renderTypeSelector(item)}\n\n <div class=\"checkbox-group\">\n <label class=\"label-large\">\n <ui-checkbox name=\"required\" .checked=\"${required}\" title=\"Whether the property is required in the schema\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Required\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"multiple\" .checked=\"${multiple}\" title=\"When set it declares this property as an array. Multiple instances of the value are permitted.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Multiple\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"primary\" .checked=\"${primary}\" title=\"Makes this property a primary key for the schema. This is optional for a schema.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Primary key\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"index\" .checked=\"${index}\" title=\"Indicates the property is a key and should be indexed.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Indexed key\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"readOnly\" .checked=\"${readOnly}\" title=\"The value cannot be changed.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Read only\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"writeOnly\" .checked=\"${writeOnly}\" title=\"The value cannot be read.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Write only\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"deprecated\" .checked=\"${deprecated}\" title=\"Makes this property deprecated.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Deprecated\n </label>\n </div>\n \n ${this.renderSchemaEditor(item)}\n </form>\n `;\n }\n\n protected renderSchemaEditor(item: DataProperty): TemplateResult | typeof nothing {\n if (['binary'].includes(item.type)) {\n return nothing;\n }\n const adapted = item.readAdapted();\n const schema = adapted && adapted.schema;\n let examples: string[] | undefined;\n let values: string[] | undefined;\n if (schema) {\n examples = schema.examples;\n values = schema.enum;\n }\n return html`\n <ui-divider type=\"full\"></ui-divider>\n <div class=\"editor-title title-medium\">Schema</div>\n ${this.renderDefaultValueInput(item)}\n ${this.renderExamplesEditor(item, examples)}\n ${this.renderEnumEditor(item, values)}\n `;\n }\n\n protected renderDefaultValueInput(item: DataProperty): TemplateResult | typeof nothing {\n const adapted = item.readAdapted();\n const schema = adapted && adapted.schema;\n return this.renderTypedInput({\n name: 'defaultValue',\n label: 'Enter default value (optional)',\n type: item.type,\n handler: this.defaultValueHandler as (e: Event) => void,\n value: schema?.defaultValue,\n });\n }\n\n protected renderExamplesEditor(item: DataProperty, examples?: string[]): TemplateResult | typeof nothing {\n if (['nil', 'boolean', 'binary'].includes(item.type)) {\n return nothing;\n }\n return html`\n <ui-divider type=\"middle\"></ui-divider>\n <div class=\"editor-title title-small\">Examples</div>\n ${this.renderExampleInput(item)}\n ${this.renderExampleList(examples)}\n `;\n }\n\n protected renderExampleInput(item: DataProperty): TemplateResult {\n return this.renderTypedInput({\n name: 'example',\n label: 'Enter example value',\n type: item.type,\n handler: this.exampleAddHandler,\n addButton: true,\n });\n }\n\n protected renderExampleList(examples?: string[]): TemplateResult {\n if (!examples || !examples.length) {\n return html`<div class=\"no-description\">No examples.</div>`;\n }\n return html`\n <ul class=\"value-list\">\n ${examples.map((label, index) => html`\n <li>\n <span class=\"label-medium value\" title=\"${label}\">${label}</span>\n <ui-icon-button aria-label=\"Remove example\" title=\"Removes the example\" data-index=\"${index}\" @click=\"${this.exampleRemoveHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </li>\n `)}\n </ul>\n `;\n }\n\n protected renderEnumEditor(item: DataProperty, values?: string[]): TemplateResult | typeof nothing {\n if (['nil', 'boolean', 'binary'].includes(item.type)) {\n return nothing;\n }\n return html`\n <ui-divider type=\"middle\"></ui-divider>\n <div class=\"editor-title title-small\">Enum values</div>\n ${this.renderEnumInput(item)}\n ${this.renderEnumList(values)}\n `;\n }\n\n protected renderEnumInput(item: DataProperty): TemplateResult {\n return this.renderTypedInput({\n name: 'enum',\n label: 'Enter enum value',\n type: item.type,\n handler: this.enumAddHandler,\n addButton: true,\n });\n }\n\n protected renderEnumList(values?: string[]): TemplateResult {\n if (!values || !values.length) {\n return html`\n <div class=\"no-description\">No enum values.</div>\n `;\n }\n return html`\n <ul class=\"value-list\">\n ${values.map((label, index) => html`\n <li>\n <span class=\"label-medium value\" title=\"${label}\">${label}</span>\n <ui-icon-button aria-label=\"Remove enum value\" title=\"Removes the enum value\" data-index=\"${index}\" @click=\"${this.enumRemoveHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </li>\n `)}\n </ul>\n `;\n }\n\n protected propertyToInputType(type: DataPropertyType): SupportedInputTypes {\n switch (type) {\n // for `number` type we use text with `inputmode=numeric` attribute to mitigate the use of `step`.\n case 'integer': return 'number'; \n case 'date': return 'date';\n case 'time': return 'time';\n case 'datetime': return 'datetime-local';\n default: return 'text';\n }\n }\n\n /**\n * Renders an input that depends on the property type.\n */\n protected renderTypedInput(opts: IInputTemplateOptions): TemplateResult {\n if (opts.type === 'boolean') {\n return this.renderBooleanInput(opts);\n }\n if (opts.type === 'nil') {\n return this.renderNilInput(opts);\n }\n return this.renderTextField(opts);\n }\n\n protected renderTextField(opts: IInputTemplateOptions): TemplateResult {\n const inputType = this.propertyToInputType(opts.type);\n let step: string | undefined;\n let inputMode: string | undefined;\n let pattern: string | undefined;\n if (['time', 'datetime-local'].includes(opts.type) || opts.type === 'integer') {\n step = '1';\n } else if (opts.type === 'number') {\n inputMode = 'numeric';\n pattern = '^\\\\d*\\\\.?\\\\d*$';\n }\n const changeListener = opts.addButton ? undefined : opts.handler;\n return html`\n <ui-text-field \n class=\"input\" \n name=\"${opts.name}\" \n .value=\"${live(opts.value as string || '')}\" \n label=\"${opts.label}\" \n type=\"${inputType}\" \n step=\"${ifDefined(step)}\"\n inputMode=\"${ifDefined(inputMode)}\"\n pattern=\"${ifDefined(pattern)}\"\n @change=\"${changeListener}\"\n >\n ${opts.addButton ? html`\n <ui-icon-button type=\"outlined\" slot=\"suffix\" aria-label=\"Add value\" title=\"Click this button to accept the value\" @click=\"${opts.handler}\">\n <ui-icon icon=\"add\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n ` : ''}\n </ui-text-field>\n `;\n }\n\n protected renderNilInput(opts: IInputTemplateOptions): TemplateResult {\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${opts.handler}\" closeOnOutsideClick>\n <ui-text-field readOnly label=\"${opts.label}\" name=\"${opts.name}\" .value=\"${opts.value as string || ''}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item data-value=\"\" role=\"menuitem\">None</ui-list-item>\n <ui-list-item data-value=\"null\" role=\"menuitem\">Nil</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderBooleanInput(opts: IInputTemplateOptions): TemplateResult {\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${opts.handler}\" closeOnOutsideClick>\n <ui-text-field readOnly label=\"${opts.label}\" name=\"${opts.name}\" .value=\"${opts.value as string || ''}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item data-value=\"\" role=\"menuitem\">None</ui-list-item>\n <ui-list-item data-value=\"true\" role=\"menuitem\">True</ui-list-item>\n <ui-list-item data-value=\"false\" role=\"menuitem\">False</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderTypeSelector(item: DataProperty): TemplateResult {\n const { type = 'any' } = item;\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${this.typeSelectHandler}\" closeOnOutsideClick>\n <ui-text-field readOnly title=\"Property data type\" label=\"Data type\" .value=\"${type}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${DataPropertyTypes.map(value => html`<ui-list-item data-value=\"${value}\" role=\"menuitem\">${value}</ui-list-item>`)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PropertyFormElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/PropertyFormElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataNamespace, DataProperty, DataPropertyType, DataPropertyTypes, EventUtils } from \"@api-client/core/build/browser.js\";\nimport { css, CSSResult, html, TemplateResult, nothing, PropertyValues } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { IPropertySchema } from \"@api-client/core/build/src/models/data/Bindings.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport EditorCommon from './CommonStyles.js';\nimport theme from '../theme.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport type CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport type { SupportedInputTypes } from \"../../types/input.js\";\nimport type Input from \"../../ui/input/Input.js\";\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-icon.js';\n\ninterface IInputTemplateOptions {\n type: DataPropertyType;\n name: string;\n label: string;\n handler: (e: Event) => void;\n value?: unknown;\n addButton?: boolean;\n}\n\nexport default class PropertyFormElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n\n .no-description {\n margin: 1.2rem 20px;\n }\n\n .enum-values {\n margin: 0px 0px 20px;\n padding: 0px 0px 20px;\n }\n\n .input-item {\n display: flex;\n list-style: none;\n margin: 4px 20px;\n }\n\n .input.list-input {\n margin: 0;\n flex: 1;\n }\n `\n ]\n }\n \n /**\n * The key of the property to edit.\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The computed entity when the key or root change.\n */\n @state() protected _property?: DataProperty;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeProperty();\n }\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeProperty(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._property = undefined;\n return;\n }\n this._property = root.definitions.properties.find(i => i.key === key);\n }\n\n protected _infoChangeHandler(e: Event): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const node = e.target as Input;\n const { name, value } = node;\n if (!['name', 'description', 'displayName'].includes(name as string)) {\n return;\n }\n if (name === 'name' && !value) {\n return;\n }\n _property.info[name as 'name' | 'description' | 'displayName'] = value;\n this.notifyChange();\n this.requestUpdate();\n }\n\n setType(value: DataPropertyType): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n if (_property.type === value) {\n return;\n }\n _property.type = value;\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected typeSelectHandler(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const value = target.dataset.value as DataPropertyType | undefined;\n if (value) {\n this.setType(value);\n }\n }\n\n protected _checkedHandler(e: Event): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const input = e.target as CheckboxElement;\n const name = input.name as 'multiple' | 'required' | 'primary' | 'index';\n const { checked } = input;\n if (_property[name] === checked) {\n return;\n }\n _property[name] = checked;\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected defaultValueHandler(e: CustomEvent): void {\n const target = e.target as HTMLElement;\n let value: string | undefined;\n if (target.localName === 'ui-dropdown-list') {\n const item = e.detail.item as HTMLElement;\n value = item.dataset.value;\n this.requestUpdate();\n } else {\n const input = e.target as Input;\n value = input.value;\n }\n this.setDefaultValue(value);\n }\n\n /**\n * Sets a new defaultValue on the property schema\n * @param value The default value to set. Empty to remove.\n */\n setDefaultValue(value?: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (value === schema.defaultValue) {\n return;\n }\n if (value) {\n schema.defaultValue = value;\n } else {\n delete schema.defaultValue;\n }\n this.notifyChange();\n }\n\n /**\n * Adds an example value to the current property's schema.\n * @param value The example value to add\n */\n addExample(value: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.examples) {\n schema.examples = [];\n }\n const list = schema.examples as string[];\n list.push(value as string);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Removes an example value at position.\n * @param index The position from which to remove the example value.\n */\n removeExample(index: number): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.examples) {\n return;\n }\n schema.examples.splice(index, 1);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected exampleAddHandler(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input;\n const { value } = input;\n if (!value) {\n return;\n }\n this.addExample(value);\n input.value = '';\n }\n\n protected exampleRemoveHandler(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const { dataset } = node;\n if (!dataset.index) {\n return;\n }\n const index = Number(dataset.index);\n this.removeExample(index);\n }\n\n /**\n * Adds an enum value to the current property's schema.\n * @param value The enum value to add\n */\n addEnum(value: string): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.enum) {\n schema.enum = [];\n }\n const list = schema.enum as string[];\n list.push(value as string);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Removes an enum value at position.\n * @param index The position from which to remove the enum value.\n */\n removeEnum(index: number): void {\n const { _property } = this;\n if (!_property) {\n return;\n }\n const adapted = this._getAdapted(_property);\n const schema = adapted.schema as IPropertySchema;\n if (!schema.enum) {\n return;\n }\n schema.enum.splice(index, 1);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected enumAddHandler(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input;\n const { value } = input;\n if (!value) {\n return;\n }\n this.addEnum(value);\n input.value = '';\n }\n\n protected enumRemoveHandler(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const { dataset } = node;\n if (!dataset.index) {\n return;\n }\n const index = Number(dataset.index);\n this.removeEnum(index);\n }\n\n protected _getAdapted(dataProperty: DataProperty): DataProperty {\n let adapted: DataProperty;\n if (!dataProperty.adapts) {\n adapted = dataProperty.createAdapted();\n } else {\n adapted = dataProperty.readAdapted() as DataProperty;\n }\n if (!adapted.schema) {\n adapted.schema = {};\n }\n return adapted;\n }\n\n protected override render(): TemplateResult {\n const { _property: item } = this;\n if (!item) {\n return html``;\n }\n const { info, multiple = false, required = false, primary = false, index = false, readOnly = false, writeOnly = false, deprecated = false } = item;\n // const allTags = this.root?.definitions.tags;\n return html`\n <form name=\"data-property\" @submit=\"${EventUtils.cancelEvent}\" data-key=\"${item.key}\">\n <ui-text-field class=\"input\" name=\"name\" .value=\"${live(info.name || '')}\" label=\"Property name\" required @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"displayName\" .value=\"${live(info.displayName || '')}\" label=\"Display name (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"description\" .value=\"${live(info.description || '')}\" label=\"Property description (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n ${this.renderTypeSelector(item)}\n\n <div class=\"checkbox-group\">\n <label class=\"label-large\">\n <ui-checkbox name=\"required\" .checked=\"${required}\" title=\"Whether the property is required in the schema\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Required\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"multiple\" .checked=\"${multiple}\" title=\"When set it declares this property as an array. Multiple instances of the value are permitted.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Multiple\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"primary\" .checked=\"${primary}\" title=\"Makes this property a primary key for the schema. This is optional for a schema.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Primary key\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"index\" .checked=\"${index}\" title=\"Indicates the property is a key and should be indexed.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Indexed key\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"readOnly\" .checked=\"${readOnly}\" title=\"The value cannot be changed.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Read only\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"writeOnly\" .checked=\"${writeOnly}\" title=\"The value cannot be read.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Write only\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"deprecated\" .checked=\"${deprecated}\" title=\"Makes this property deprecated.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Deprecated\n </label>\n </div>\n \n ${this.renderSchemaEditor(item)}\n </form>\n `;\n }\n\n protected renderSchemaEditor(item: DataProperty): TemplateResult | typeof nothing {\n if (['binary'].includes(item.type)) {\n return nothing;\n }\n const adapted = item.readAdapted();\n const schema = adapted && adapted.schema;\n let examples: string[] | undefined;\n let values: string[] | undefined;\n if (schema) {\n examples = schema.examples;\n values = schema.enum;\n }\n return html`\n <ui-divider type=\"full\"></ui-divider>\n <div class=\"editor-title title-medium\">Schema</div>\n ${this.renderDefaultValueInput(item)}\n ${this.renderExamplesEditor(item, examples)}\n ${this.renderEnumEditor(item, values)}\n `;\n }\n\n protected renderDefaultValueInput(item: DataProperty): TemplateResult | typeof nothing {\n const adapted = item.readAdapted();\n const schema = adapted && adapted.schema;\n return this.renderTypedInput({\n name: 'defaultValue',\n label: 'Enter default value (optional)',\n type: item.type,\n handler: this.defaultValueHandler as (e: Event) => void,\n value: schema?.defaultValue,\n });\n }\n\n protected renderExamplesEditor(item: DataProperty, examples?: string[]): TemplateResult | typeof nothing {\n if (['nil', 'boolean', 'binary'].includes(item.type)) {\n return nothing;\n }\n return html`\n <ui-divider type=\"middle\"></ui-divider>\n <div class=\"editor-title title-small\">Examples</div>\n ${this.renderExampleInput(item)}\n ${this.renderExampleList(examples)}\n `;\n }\n\n protected renderExampleInput(item: DataProperty): TemplateResult {\n return this.renderTypedInput({\n name: 'example',\n label: 'Enter example value',\n type: item.type,\n handler: this.exampleAddHandler,\n addButton: true,\n });\n }\n\n protected renderExampleList(examples?: string[]): TemplateResult {\n if (!examples || !examples.length) {\n return html`<div class=\"no-description\">No examples.</div>`;\n }\n return html`\n <ul class=\"value-list\">\n ${examples.map((label, index) => html`\n <li>\n <span class=\"label-medium value\" title=\"${label}\">${label}</span>\n <ui-icon-button aria-label=\"Remove example\" title=\"Removes the example\" data-index=\"${index}\" @click=\"${this.exampleRemoveHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </li>\n `)}\n </ul>\n `;\n }\n\n protected renderEnumEditor(item: DataProperty, values?: string[]): TemplateResult | typeof nothing {\n if (['nil', 'boolean', 'binary'].includes(item.type)) {\n return nothing;\n }\n return html`\n <ui-divider type=\"middle\"></ui-divider>\n <div class=\"editor-title title-small\">Enum values</div>\n ${this.renderEnumInput(item)}\n ${this.renderEnumList(values)}\n `;\n }\n\n protected renderEnumInput(item: DataProperty): TemplateResult {\n return this.renderTypedInput({\n name: 'enum',\n label: 'Enter enum value',\n type: item.type,\n handler: this.enumAddHandler,\n addButton: true,\n });\n }\n\n protected renderEnumList(values?: string[]): TemplateResult {\n if (!values || !values.length) {\n return html`\n <div class=\"no-description\">No enum values.</div>\n `;\n }\n return html`\n <ul class=\"value-list\">\n ${values.map((label, index) => html`\n <li>\n <span class=\"label-medium value\" title=\"${label}\">${label}</span>\n <ui-icon-button aria-label=\"Remove enum value\" title=\"Removes the enum value\" data-index=\"${index}\" @click=\"${this.enumRemoveHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </li>\n `)}\n </ul>\n `;\n }\n\n protected propertyToInputType(type: DataPropertyType): SupportedInputTypes {\n switch (type) {\n // for `number` type we use text with `inputmode=numeric` attribute to mitigate the use of `step`.\n case 'integer': return 'number'; \n case 'date': return 'date';\n case 'time': return 'time';\n case 'datetime': return 'datetime-local';\n default: return 'text';\n }\n }\n\n /**\n * Renders an input that depends on the property type.\n */\n protected renderTypedInput(opts: IInputTemplateOptions): TemplateResult {\n if (opts.type === 'boolean') {\n return this.renderBooleanInput(opts);\n }\n if (opts.type === 'nil') {\n return this.renderNilInput(opts);\n }\n return this.renderTextField(opts);\n }\n\n protected renderTextField(opts: IInputTemplateOptions): TemplateResult {\n const inputType = this.propertyToInputType(opts.type);\n let step: string | undefined;\n let inputMode: string | undefined;\n let pattern: string | undefined;\n if (['time', 'datetime-local'].includes(opts.type) || opts.type === 'integer') {\n step = '1';\n } else if (opts.type === 'number') {\n inputMode = 'numeric';\n pattern = '^\\\\d*\\\\.?\\\\d*$';\n }\n const changeListener = opts.addButton ? undefined : opts.handler;\n return html`\n <ui-text-field \n class=\"input\" \n name=\"${opts.name}\" \n .value=\"${live(opts.value as string || '')}\" \n label=\"${opts.label}\" \n type=\"${inputType}\" \n step=\"${ifDefined(step)}\"\n inputMode=\"${ifDefined(inputMode)}\"\n pattern=\"${ifDefined(pattern)}\"\n @change=\"${changeListener}\"\n >\n ${opts.addButton ? html`\n <ui-icon-button type=\"outlined\" slot=\"suffix\" aria-label=\"Add value\" title=\"Click this button to accept the value\" @click=\"${opts.handler}\">\n <ui-icon icon=\"add\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n ` : ''}\n </ui-text-field>\n `;\n }\n\n protected renderNilInput(opts: IInputTemplateOptions): TemplateResult {\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${opts.handler}\" closeOnOutsideClick>\n <ui-text-field readOnly label=\"${opts.label}\" name=\"${opts.name}\" .value=\"${opts.value as string || ''}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item data-value=\"\" role=\"menuitem\">None</ui-list-item>\n <ui-list-item data-value=\"null\" role=\"menuitem\">Nil</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderBooleanInput(opts: IInputTemplateOptions): TemplateResult {\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${opts.handler}\" closeOnOutsideClick>\n <ui-text-field readOnly label=\"${opts.label}\" name=\"${opts.name}\" .value=\"${opts.value as string || ''}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item data-value=\"\" role=\"menuitem\">None</ui-list-item>\n <ui-list-item data-value=\"true\" role=\"menuitem\">True</ui-list-item>\n <ui-list-item data-value=\"false\" role=\"menuitem\">False</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderTypeSelector(item: DataProperty): TemplateResult {\n const { type = 'any' } = item;\n return html`\n <ui-dropdown-list class=\"input dropdown\" @select=\"${this.typeSelectHandler}\" closeOnOutsideClick>\n <ui-text-field readOnly title=\"Property data type\" label=\"Data type\" .value=\"${type}\" role=\"button\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${DataPropertyTypes.map(value => html`<ui-list-item data-value=\"${value}\" role=\"menuitem\">${value}</ui-list-item>`)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { TemplateResult } from 'lit';
|
|
2
2
|
import { IUser, IBackendInfo } from '@api-client/core/build/browser.js';
|
|
3
3
|
import { IConfigEnvironment, ThemeType } from '../lib/config/Config.js';
|
|
4
|
-
import '../define/ui/ui-button.js';
|
|
5
4
|
import { StoreBindings } from '../bindings/base/StoreBindings.js';
|
|
6
5
|
import type { AddConfigEnvironmentInit, ConfigurationBindings } from '../bindings/base/ConfigurationBindings.js';
|
|
7
6
|
import { PlatformBindings } from '../bindings/base/PlatformBindings.js';
|
|
7
|
+
import '../define/ui/ui-button.js';
|
|
8
8
|
export interface ApplicationInit {
|
|
9
9
|
/**
|
|
10
10
|
* A reference to the store bindings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationScreen.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationScreen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAwB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAM9F,OAAO,EAA2C,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGjH,OAAO,
|
|
1
|
+
{"version":3,"file":"ApplicationScreen.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationScreen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAwB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAM9F,OAAO,EAA2C,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGjH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,2BAA2B,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,UAAU,mBAAmB;IAC3B;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;;;;;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,iBAAkB,SAAQ,sBAAwC;IAC1E,WAAW,EAAE,WAAW,CAAU;IAE9C;;OAEG;IACS,QAAQ,UAAS;IAE7B;;OAEG;IACS,aAAa,SAAqC;IAE9D;;;;;OAKG;IACS,WAAW,UAAS;IAEhC;;OAEG;IACS,IAAI,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACS,IAAI,CAAC,EAAE,KAAK,CAAC;IAEzB;;OAEG;IACS,SAAS,CAAC,WAAW,UAAS;IAE9B,SAAS,CAAC,aAAa,UAAS;IAE5C;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAEnC;;;OAGG;IACH,IAAI,YAAY,IAAI,OAAO,CAM1B;IAED,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAEtE;;OAEG;IACH,WAAW,EAAE,OAAO,GAAG,MAAM,CAAW;IAExC;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAa;IAEjC;;OAEG;IACH,eAAe,mBAAgD;IAE/D,QAAQ,EAAE,mBAAmB,CAAC;IAE9B;;;OAGG;IACH,GAAG,CAAC,EAAE,kBAAkB,CAAC;gBAEb,IAAI,EAAE,eAAe;IAYjC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAiBxB,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAWrC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAgB/C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ7C,eAAe,IAAI,IAAI;IAQvB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjD;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAwC1C,yBAAyB,CAAC,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAMzD,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAYtD,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOrE,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAUpE,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,GAAE,wBAA6B,GAAG,IAAI;IAOlG;;;OAGG;cACa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7C,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC;;;;;;;;;;;;OAYG;cACa,eAAe,CAAC,YAAY,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC7D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,+BAA+B;IAQvC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;cAOjB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAerD,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,cAAc,IAAI,cAAc;IASvB,YAAY,IAAI,cAAc;IAavC,SAAS,CAAC,cAAc,IAAI,cAAc;IAM1C,SAAS,CAAC,YAAY,IAAI,cAAc;IAIxC,SAAS,CAAC,cAAc,IAAI,cAAc;IAI1C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAI9C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAU9C;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAU9C,SAAS,CAAC,iBAAiB,IAAI,cAAc;IAa7C,SAAS,CAAC,0BAA0B,IAAI,cAAc;IAYtD,SAAS,CAAC,sBAAsB,IAAI,cAAc;CAenD"}
|
|
@@ -11,8 +11,8 @@ import { EventTypes } from '../events/EventTypes.js';
|
|
|
11
11
|
import { ConfigBroadcastChannel } from '../lib/config/Config.js';
|
|
12
12
|
import supportedPlatform from '../lib/SupportedPlatform.js';
|
|
13
13
|
import { ButtonType } from '../ui/button/UiButton.js';
|
|
14
|
-
import '../define/ui/ui-button.js';
|
|
15
14
|
import { SnackNotifications } from '../ui/notification/SnackNotifications.js';
|
|
15
|
+
import '../define/ui/ui-button.js';
|
|
16
16
|
/**
|
|
17
17
|
* A base class for pages build outside the LitElement. It uses `lit-html`
|
|
18
18
|
* as the template renderer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationScreen.js","sourceRoot":"","sources":["../../src/pages/ApplicationScreen.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult } from 'lit';\nimport { IUser, Events as CoreEvents, IBackendInfo } from '@api-client/core/build/browser.js';\nimport { RenderableMixin } from '../mixins/RenderableMixin.js';\nimport { RouteMixin } from '../mixins/RouteMixin.js';\nimport { reactive } from '../lib/decorators.js';\nimport { Events } from '../events/Events.js';\nimport { EventTypes } from '../events/EventTypes.js';\nimport { ConfigBroadcast, ConfigBroadcastChannel, IConfigEnvironment, ThemeType } from '../lib/config/Config.js';\nimport supportedPlatform from '../lib/SupportedPlatform.js';\nimport { ButtonType } from '../ui/button/UiButton.js';\nimport '../define/ui/ui-button.js';\nimport { StoreBindings } from '../bindings/base/StoreBindings.js';\nimport type { AddConfigEnvironmentInit, ConfigurationBindings } from '../bindings/base/ConfigurationBindings.js';\nimport { PlatformBindings } from '../bindings/base/PlatformBindings.js';\nimport { SnackNotifications } from '../ui/notification/SnackNotifications.js';\n\nexport interface ApplicationInit {\n /**\n * A reference to the store bindings.\n */\n store: StoreBindings;\n /**\n * A reference to the config bindings.\n */\n config: ConfigurationBindings;\n}\n\ninterface ApplicationBindings {\n /**\n * A reference to the store bindings.\n */\n store: StoreBindings;\n /**\n * A reference to the config bindings.\n */\n config: ConfigurationBindings;\n [key: string]: PlatformBindings;\n}\n\n/**\n * A base class for pages build outside the LitElement. It uses `lit-html` \n * as the template renderer.\n * \n * The implementation (extending this class) should override the `pageTemplate()`\n * function that returns the `TemplateResult` from the `lit-html` library.\n * \n * To reflect the changed state call the `render()` function. The function schedules\n * a micro task (through `requestAnimationFrame`) to call the render function on the template.\n * \n * Use the `@reactive()` decorator from `src/lib/decorators.js` to mark a property as reactive,\n * meaning, when the property change it calls the `render()` function.\n */\nexport abstract class ApplicationScreen extends RouteMixin(RenderableMixin(EventTarget)) {\n @reactive() eventTarget: EventTarget = window;\n\n /** \n * True when the app should render mobile friendly view.\n */\n @reactive() isMobile = false;\n\n /** \n * The loading state information.\n */\n @reactive() loadingStatus = 'Initializing the application...';\n\n /**\n * A flag telling the application screen that the logic is initialized.\n * \n * The page can request different initialization logics. When the logic is\n * loaded the flag is set to true.\n */\n @reactive() initialized = false;\n\n /**\n * The page on the screen currently being rendered.\n */\n @reactive() page?: string;\n\n /**\n * The current user.\n * Call the `loadUser()` to populate this.\n */\n @reactive() user?: IUser;\n\n /**\n * True when the user meta is being loaded.\n */\n @reactive() protected loadingUser = false;\n \n @reactive() protected authenticated = false;\n\n /**\n * This is automatically set when initializing the store.\n * Basic information about the store.\n */\n protected storeInfo?: IBackendInfo;\n\n /**\n * Checks whether the store is in the single user mode.\n * It also returns true when the store info is not set (before the backend was initialized).\n */\n get isSingleUser(): boolean {\n const { storeInfo } = this;\n if (!storeInfo) {\n return true;\n }\n return storeInfo.mode === 'single-user';\n }\n\n protected pendingResolver?: (value: void | PromiseLike<void>) => void;\n\n /**\n * Detected system theme.\n */\n systemTheme: 'light' | 'dark' = 'light';\n\n /**\n * The theme to use as selected by the user.\n * Default to system default.\n */\n userTheme: ThemeType = 'default';\n\n /**\n * Application configuration broadcast channel.\n */\n configBroadcast = new BroadcastChannel(ConfigBroadcastChannel);\n\n bindings: ApplicationBindings;\n\n /**\n * The store environment in use.\n * This is set after the `initializeStore()` was called.\n */\n env?: IConfigEnvironment;\n\n constructor(init: ApplicationInit) {\n super();\n this.bindings = {\n config: init.config,\n store: init.store,\n };\n window.onunhandledrejection = this.unhandledRejectionHandler.bind(this);\n this.initMediaQueries();\n this.initStoreChange();\n this.configBroadcast.addEventListener('message', this.handleConfigBroadcast.bind(this))\n }\n\n /**\n * Called once when the page is being initialized.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * Initializes configuration that is relevant to all application windows.\n */\n async initializeConfig(): Promise<void> {\n const { config } = this.bindings;\n const theme = await config.local.get('theme') as ThemeType | undefined;\n if (theme) {\n this.userTheme = theme;\n }\n this.themeActiveCallback();\n }\n\n /**\n * Initializes media queries and observers.\n */\n initMediaQueries(): void {\n const mql = window.matchMedia('(max-width: 600px)');\n this.isMobile = mql.matches;\n mql.addEventListener('change', (e) => {\n this.isMobile = e.matches;\n });\n\n const dark = window.matchMedia('(prefers-color-scheme: dark)');\n if (dark.matches) {\n this.systemTheme = 'dark';\n }\n dark.addEventListener('change', (e) => {\n this.systemTheme = e.matches ? 'dark' : 'light';\n this.themeActiveCallback();\n });\n }\n\n protected themeActiveCallback(): void {\n const { systemTheme, userTheme } = this;\n let theme: 'light' | 'dark';\n if (userTheme === 'default') {\n theme = systemTheme;\n } else {\n theme = userTheme;\n }\n this.activateTheme(theme);\n }\n\n protected activateTheme(type: 'light' | 'dark'): void {\n const root = document.querySelector('html');\n if (!root) {\n return;\n }\n const { classList } = root;\n // clear all themes\n classList.forEach((value) => {\n if (value.startsWith('theme-')) {\n classList.remove(value);\n }\n });\n const name = `theme-${type}`;\n classList.add(name);\n }\n\n async isPlatformSupported(): Promise<boolean> {\n const result = await supportedPlatform();\n if (!result) {\n this.page = 'unsupported-platform';\n }\n return result;\n }\n\n initStoreChange(): void {\n window.addEventListener(EventTypes.Config.Environment.State.defaultChange, (e: Event) => {\n const event = e as CustomEvent;\n const id = event.detail.id as string;\n this.storeChanged(id);\n });\n }\n\n /**\n * Override in a child class to implement a logic that runs when the default \n * store change in the configuration.\n * \n * @param id The id of the activated environment. When missing it means there's no default environment.\n */\n abstract storeChanged(id?: string): Promise<void>;\n\n /**\n * Creates a modal dialog with the error details.\n * @param message The message to render\n */\n reportCriticalError(message: string): void {\n try {\n const dialog = document.createElement('dialog');\n const form = document.createElement('form');\n const title = document.createElement('h2');\n const content = document.createElement('div');\n const messageContainer = document.createElement('p');\n const buttons = document.createElement('div');\n const button = document.createElement('ui-button');\n dialog.classList.add('error-dialog');\n form.method = 'method';\n title.innerText = `An error ocurred`;\n messageContainer.classList.add('body-medium');\n messageContainer.textContent = message;\n content.appendChild(messageContainer);\n button.textContent = 'Dismiss';\n button.type = ButtonType.filled;\n button.value = 'submit';\n button.submit = true;\n buttons.classList.add('dialog-buttons');\n buttons.appendChild(button);\n form.appendChild(title);\n form.appendChild(content);\n form.appendChild(buttons);\n dialog.appendChild(form);\n document.body.appendChild(dialog);\n dialog.showModal();\n form.addEventListener('submit', (e: SubmitEvent) => {\n e.preventDefault();\n dialog.close();\n });\n dialog.addEventListener('close', () => {\n dialog.parentElement?.removeChild(dialog);\n });\n } catch (e) {\n /* eslint-disable-next-line no-console */ \n console.error(e);\n }\n }\n\n unhandledRejectionHandler(e: PromiseRejectionEvent): void {\n /* eslint-disable-next-line no-console */\n console.error(e);\n this.reportCriticalError(e.reason);\n }\n\n protected handleConfigBroadcast(e: MessageEvent): void {\n const event = e.data as ConfigBroadcast;\n const { path } = event;\n if (path === 'local.set') {\n this.handleLocalConfigUpdated(event.key as string, event.value as unknown);\n } else if (path === 'environment.setDefault') {\n this.handleDefaultEnvironmentSet(event.env as IConfigEnvironment);\n } else if (path === 'environment.add') {\n this.handleEnvironmentAdd(event.env as IConfigEnvironment, event.init as AddConfigEnvironmentInit);\n }\n }\n\n protected handleLocalConfigUpdated(key: string, value: unknown): void {\n if (key === 'theme') {\n this.userTheme = value as ThemeType;\n this.themeActiveCallback();\n }\n }\n\n protected handleDefaultEnvironmentSet(env: IConfigEnvironment): void {\n const { initialized, bindings } = this;\n this.env = env;\n bindings.store.global.set(env);\n this.resolvePending();\n if (initialized) {\n this.storeChanged(env.key);\n }\n }\n\n protected handleEnvironmentAdd(env: IConfigEnvironment, init: AddConfigEnvironmentInit = {}): void {\n if (!init.asDefault) {\n return;\n }\n this.handleDefaultEnvironmentSet(env);\n }\n\n /**\n * Called from the initialize store init flow when the user is not authenticated\n * and the auth screen is rendered.\n */\n protected async _authHandler(): Promise<void> {\n const { store } = this.bindings;\n await store.auth.authenticate({ updateEnvironment: true });\n this.authenticated = true;\n this.resolvePending();\n }\n\n protected handleOpenStoreConfig(): void {\n Events.Navigation.Store.config();\n }\n\n /**\n * Initializes the flow where an environment is required.\n * This checks for the default environment.\n * When it doesn't exists it asks the user to pick existing environment \n * or to create one.\n * When a default environment exists, it performs authentication\n * when necessary. \n * \n * Eventually it returns the HTTP store with an authenticated environment.\n * \n * @param defaultFlows When set to `true` is renders default pages for env selector \n * or when to authenticate. When false it throws errors instead. Default to `true`.\n */\n protected async initializeStore(defaultFlows = true): Promise<void> {\n const { store, config } = this.bindings;\n let env: IConfigEnvironment | undefined;\n try {\n env = await config.environment.read();\n } catch (e) { \n if (!defaultFlows) {\n throw e;\n }\n }\n if (!env || !env.location) {\n await this.enterEnvironmentMissingFlow();\n }\n if (!env || !env.location) {\n return;\n }\n this.env = env;\n await store.global.set(env);\n try {\n this.storeInfo = await store.environment.readStoreInfo(env.location);\n } catch (e) {\n if (!defaultFlows) {\n throw e;\n }\n await this.enterStoreUnavailableFlow();\n }\n const authStatus = await store.auth.isAuthenticated();\n if (!authStatus) {\n if (!defaultFlows) {\n throw new Error(`Not authenticated.`);\n }\n await this.enterAuthenticationRequiredFlow();\n }\n this.authenticated = true;\n }\n\n async loadUser(): Promise<void> {\n this.loadingUser = true;\n try {\n this.user = await this.bindings.store.users.me();\n } catch (e) {\n CoreEvents.Telemetry.exception(`Loading user: ${(e as Error).message}`, undefined, this.eventTarget || window);\n } finally {\n this.loadingUser = false;\n }\n }\n\n private enterEnvironmentMissingFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'env-required';\n });\n }\n\n private enterAuthenticationRequiredFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'auth-required';\n });\n }\n \n\n /**\n * Enters into the flow where the application is unable to connect to the data store.\n * It asks user to retry or re-configure.\n * \n * Note, this is called from withing the `initializeStore()` method and this is expected to\n * eventually finish.\n */\n private enterStoreUnavailableFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'store-unavailable';\n });\n }\n\n protected async handleRetryStoreInfo(): Promise<void> {\n const { bindings, env } = this;\n const { store } = bindings;\n if (!env) {\n // this should not happen as we enter this flow after the env is set.\n return;\n }\n try {\n this.storeInfo = await store.environment.readStoreInfo(env.location);\n this.resolvePending();\n } catch (_) {\n SnackNotifications.notify(`Unable to connect.`);\n }\n }\n\n private resolvePending(): void {\n const { pendingResolver } = this;\n if (pendingResolver) {\n this.pendingResolver = undefined;\n pendingResolver();\n }\n }\n\n /**\n * @returns A template for the page loader\n */\n loaderTemplate(): TemplateResult {\n return html`\n <div class=\"app-loader body-large\">\n <p class=\"message\">Preparing something spectacular</p>\n <p class=\"sub-message\">${this.loadingStatus}</p>\n </div>\n `;\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n if (this.page) {\n return html`\n ${this.renderInitFlowPage()}\n `;\n }\n return this.loaderTemplate();\n }\n return html``;\n }\n\n protected headerTemplate(): TemplateResult {\n return html`\n <header>Welcome</header>\n `;\n }\n\n protected mainTemplate(): TemplateResult {\n return html`<main></main>`;\n }\n\n protected footerTemplate(): TemplateResult {\n return html`<footer>Credits: Pawel Uchida-Psztyc</footer>`;\n }\n\n protected navigationTemplate(): TemplateResult {\n return html`<nav></nav>`;\n }\n\n protected renderInitFlowPage(): TemplateResult {\n switch (this.page) {\n case 'auth-required': return this.renderAuthRequired();\n case 'env-required': return this.renderEnvRequired();\n case 'unsupported-platform': return this.renderPlatformNotSupported();\n case 'store-unavailable': return this.renderStoreUnavailable();\n default: return html`<p class=\"general-error\">Unknown state. Did you set the <i>initialized</i> flag?</p>`;\n }\n }\n\n /**\n * Renders a full page overlay with the authentication required message.\n */\n protected renderAuthRequired(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Authentication required</h1>\n <p class=\"body-large\">You are not authenticated. To continue, please, authenticate your account.</p>\n <ui-button type=\"tonal\" @click=\"${this._authHandler}\">Authenticate</ui-button>\n </div>\n `;\n }\n\n protected renderEnvRequired(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Environment configuration missing</h1>\n <p class=\"body-large\">\n The application is unable to determine which environment to use.\n Open the <b>store configuration</b> screen to configure the connection.\n </p>\n <ui-button type=\"tonal\" @click=\"${this.handleOpenStoreConfig}\">Configure store</ui-button>\n </div>\n `;\n }\n\n protected renderPlatformNotSupported(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Unsupported platform</h1>\n <p class=\"body-large\">\n It looks like your browser does not support one of the crucial features needed to run\n this application. Accept our apologies, we work hard to support as many browsers as possible. \n </p>\n </div>\n `;\n }\n\n protected renderStoreUnavailable(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Unable to connect</h1>\n <p class=\"body-large\">\n It looks like you or the data store are offline. The application is unable to continue\n without a connection to the backend.\n </p>\n <div class=\"actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleRetryStoreInfo}\">Retry</ui-button>\n <ui-button type=\"outlined\" @click=\"${this.handleOpenStoreConfig}\">Configure store</ui-button>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApplicationScreen.js","sourceRoot":"","sources":["../../src/pages/ApplicationScreen.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,2CAA2C;AAC3C,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAS,MAAM,IAAI,UAAU,EAAgB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAmB,sBAAsB,EAAiC,MAAM,yBAAyB,CAAC;AACjH,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,2BAA2B,CAAC;AAyBnC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IA6CtF;;;OAGG;IACH,IAAI,YAAY;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QACD,OAAO,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC;IAC1C,CAAC;IA4BD,YAAY,IAAqB;QAC/B,KAAK,EAAE,CAAC;QAnFE,gBAAW,GAAgB,MAAM,CAAC;QAE9C;;WAEG;QACS,aAAQ,GAAG,KAAK,CAAC;QAE7B;;WAEG;QACS,kBAAa,GAAG,iCAAiC,CAAC;QAE9D;;;;;WAKG;QACS,gBAAW,GAAG,KAAK,CAAC;QAahC;;WAEG;QACmB,gBAAW,GAAG,KAAK,CAAC;QAEpB,kBAAa,GAAG,KAAK,CAAC;QAsB5C;;WAEG;QACH,gBAAW,GAAqB,OAAO,CAAC;QAExC;;;WAGG;QACH,cAAS,GAAc,SAAS,CAAC;QAEjC;;WAEG;QACH,oBAAe,GAAG,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;QAY7D,IAAI,CAAC,QAAQ,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QACF,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzF,CAAC;IAOD;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAA0B,CAAC;QACvE,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;SAC3B;QACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAES,mBAAmB;QAC3B,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACxC,IAAI,KAAuB,CAAC;QAC5B,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,KAAK,GAAG,WAAW,CAAC;SACrB;aAAM;YACL,KAAK,GAAG,SAAS,CAAC;SACnB;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAES,aAAa,CAAC,IAAsB;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,mBAAmB;QACnB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC9B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe;QACb,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAQ,EAAE,EAAE;YACtF,MAAM,KAAK,GAAG,CAAgB,CAAC;YAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAY,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAUD;;;OAGG;IACH,mBAAmB,CAAC,OAAe;QACjC,IAAI;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACrC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9C,gBAAgB,CAAC,WAAW,GAAG,OAAO,CAAC;YACvC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;YACxB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAc,EAAE,EAAE;gBACjD,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,yCAAyC;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;IACH,CAAC;IAED,yBAAyB,CAAC,CAAwB;QAChD,yCAAyC;QACzC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,qBAAqB,CAAC,CAAe;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAuB,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,KAAK,WAAW,EAAE;YACxB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAa,EAAE,KAAK,CAAC,KAAgB,CAAC,CAAC;SAC5E;aAAM,IAAI,IAAI,KAAK,wBAAwB,EAAE;YAC5C,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAyB,CAAC,CAAC;SACnE;aAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;YACrC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAyB,EAAE,KAAK,CAAC,IAAgC,CAAC,CAAC;SACpG;IACH,CAAC;IAES,wBAAwB,CAAC,GAAW,EAAE,KAAc;QAC5D,IAAI,GAAG,KAAK,OAAO,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,KAAkB,CAAC;YACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;IACH,CAAC;IAES,2BAA2B,CAAC,GAAuB;QAC3D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,oBAAoB,CAAC,GAAuB,EAAE,OAAiC,EAAE;QACzF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,YAAY;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAES,qBAAqB;QAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,KAAK,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI;QACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxC,IAAI,GAAmC,CAAC;QACxC,IAAI;YACF,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,CAAC,CAAC;aACT;SACF;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACzB,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACzB,OAAO;SACR;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI;YACF,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACtE;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,CAAC,CAAC;aACT;YACD,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACxC;QACD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;YACD,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;SAC9C;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI;YACF,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;SAClD;QAAC,OAAO,CAAC,EAAE;YACV,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAkB,CAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC;SAChH;gBAAS;YACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAEO,2BAA2B;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,+BAA+B;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD;;;;;;OAMG;IACK,yBAAyB;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,oBAAoB;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE;YACR,qEAAqE;YACrE,OAAO;SACR;QACD,IAAI;YACF,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACV,kBAAkB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACjD;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,eAAe,EAAE,CAAC;SACnB;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAA;;;+BAGgB,IAAI,CAAC,aAAa;;KAE5C,CAAC;IACJ,CAAC;IAEQ,YAAY;QACnB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,OAAO,IAAI,CAAA;UACT,IAAI,CAAC,kBAAkB,EAAE;SAC1B,CAAC;aACH;YACD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAC9B;QACD,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;IAES,cAAc;QACtB,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAES,YAAY;QACpB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;IAES,cAAc;QACtB,OAAO,IAAI,CAAA,+CAA+C,CAAC;IAC7D,CAAC;IAES,kBAAkB;QAC1B,OAAO,IAAI,CAAA,aAAa,CAAC;IAC3B,CAAC;IAES,kBAAkB;QAC1B,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvD,KAAK,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrD,KAAK,sBAAsB,CAAC,CAAC,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACtE,KAAK,mBAAmB,CAAC,CAAC,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/D,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA,sFAAsF,CAAC;SAC5G;IACH,CAAC;IAED;;OAEG;IACO,kBAAkB;QAC1B,OAAO,IAAI,CAAA;;;;wCAIyB,IAAI,CAAC,YAAY;;KAEpD,CAAC;IACJ,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAA;;;;;;;wCAOyB,IAAI,CAAC,qBAAqB;;KAE7D,CAAC;IACJ,CAAC;IAES,0BAA0B;QAClC,OAAO,IAAI,CAAA;;;;;;;;KAQV,CAAC;IACJ,CAAC;IAES,sBAAsB;QAC9B,OAAO,IAAI,CAAA;;;;;;;;0CAQ2B,IAAI,CAAC,oBAAoB;6CACtB,IAAI,CAAC,qBAAqB;;;KAGlE,CAAC;IACJ,CAAC;CACF;AArfa;IAAX,QAAQ,EAAE;sDAAmC;AAKlC;IAAX,QAAQ,EAAE;mDAAkB;AAKjB;IAAX,QAAQ,EAAE;wDAAmD;AAQlD;IAAX,QAAQ,EAAE;sDAAqB;AAKpB;IAAX,QAAQ,EAAE;+CAAe;AAMd;IAAX,QAAQ,EAAE;+CAAc;AAKb;IAAX,QAAQ,EAAE;sDAA+B;AAE9B;IAAX,QAAQ,EAAE;wDAAiC","sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult } from 'lit';\nimport { IUser, Events as CoreEvents, IBackendInfo } from '@api-client/core/build/browser.js';\nimport { RenderableMixin } from '../mixins/RenderableMixin.js';\nimport { RouteMixin } from '../mixins/RouteMixin.js';\nimport { reactive } from '../lib/decorators.js';\nimport { Events } from '../events/Events.js';\nimport { EventTypes } from '../events/EventTypes.js';\nimport { ConfigBroadcast, ConfigBroadcastChannel, IConfigEnvironment, ThemeType } from '../lib/config/Config.js';\nimport supportedPlatform from '../lib/SupportedPlatform.js';\nimport { ButtonType } from '../ui/button/UiButton.js';\nimport { StoreBindings } from '../bindings/base/StoreBindings.js';\nimport type { AddConfigEnvironmentInit, ConfigurationBindings } from '../bindings/base/ConfigurationBindings.js';\nimport { PlatformBindings } from '../bindings/base/PlatformBindings.js';\nimport { SnackNotifications } from '../ui/notification/SnackNotifications.js';\nimport '../define/ui/ui-button.js';\n\nexport interface ApplicationInit {\n /**\n * A reference to the store bindings.\n */\n store: StoreBindings;\n /**\n * A reference to the config bindings.\n */\n config: ConfigurationBindings;\n}\n\ninterface ApplicationBindings {\n /**\n * A reference to the store bindings.\n */\n store: StoreBindings;\n /**\n * A reference to the config bindings.\n */\n config: ConfigurationBindings;\n [key: string]: PlatformBindings;\n}\n\n/**\n * A base class for pages build outside the LitElement. It uses `lit-html` \n * as the template renderer.\n * \n * The implementation (extending this class) should override the `pageTemplate()`\n * function that returns the `TemplateResult` from the `lit-html` library.\n * \n * To reflect the changed state call the `render()` function. The function schedules\n * a micro task (through `requestAnimationFrame`) to call the render function on the template.\n * \n * Use the `@reactive()` decorator from `src/lib/decorators.js` to mark a property as reactive,\n * meaning, when the property change it calls the `render()` function.\n */\nexport abstract class ApplicationScreen extends RouteMixin(RenderableMixin(EventTarget)) {\n @reactive() eventTarget: EventTarget = window;\n\n /** \n * True when the app should render mobile friendly view.\n */\n @reactive() isMobile = false;\n\n /** \n * The loading state information.\n */\n @reactive() loadingStatus = 'Initializing the application...';\n\n /**\n * A flag telling the application screen that the logic is initialized.\n * \n * The page can request different initialization logics. When the logic is\n * loaded the flag is set to true.\n */\n @reactive() initialized = false;\n\n /**\n * The page on the screen currently being rendered.\n */\n @reactive() page?: string;\n\n /**\n * The current user.\n * Call the `loadUser()` to populate this.\n */\n @reactive() user?: IUser;\n\n /**\n * True when the user meta is being loaded.\n */\n @reactive() protected loadingUser = false;\n \n @reactive() protected authenticated = false;\n\n /**\n * This is automatically set when initializing the store.\n * Basic information about the store.\n */\n protected storeInfo?: IBackendInfo;\n\n /**\n * Checks whether the store is in the single user mode.\n * It also returns true when the store info is not set (before the backend was initialized).\n */\n get isSingleUser(): boolean {\n const { storeInfo } = this;\n if (!storeInfo) {\n return true;\n }\n return storeInfo.mode === 'single-user';\n }\n\n protected pendingResolver?: (value: void | PromiseLike<void>) => void;\n\n /**\n * Detected system theme.\n */\n systemTheme: 'light' | 'dark' = 'light';\n\n /**\n * The theme to use as selected by the user.\n * Default to system default.\n */\n userTheme: ThemeType = 'default';\n\n /**\n * Application configuration broadcast channel.\n */\n configBroadcast = new BroadcastChannel(ConfigBroadcastChannel);\n\n bindings: ApplicationBindings;\n\n /**\n * The store environment in use.\n * This is set after the `initializeStore()` was called.\n */\n env?: IConfigEnvironment;\n\n constructor(init: ApplicationInit) {\n super();\n this.bindings = {\n config: init.config,\n store: init.store,\n };\n window.onunhandledrejection = this.unhandledRejectionHandler.bind(this);\n this.initMediaQueries();\n this.initStoreChange();\n this.configBroadcast.addEventListener('message', this.handleConfigBroadcast.bind(this))\n }\n\n /**\n * Called once when the page is being initialized.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * Initializes configuration that is relevant to all application windows.\n */\n async initializeConfig(): Promise<void> {\n const { config } = this.bindings;\n const theme = await config.local.get('theme') as ThemeType | undefined;\n if (theme) {\n this.userTheme = theme;\n }\n this.themeActiveCallback();\n }\n\n /**\n * Initializes media queries and observers.\n */\n initMediaQueries(): void {\n const mql = window.matchMedia('(max-width: 600px)');\n this.isMobile = mql.matches;\n mql.addEventListener('change', (e) => {\n this.isMobile = e.matches;\n });\n\n const dark = window.matchMedia('(prefers-color-scheme: dark)');\n if (dark.matches) {\n this.systemTheme = 'dark';\n }\n dark.addEventListener('change', (e) => {\n this.systemTheme = e.matches ? 'dark' : 'light';\n this.themeActiveCallback();\n });\n }\n\n protected themeActiveCallback(): void {\n const { systemTheme, userTheme } = this;\n let theme: 'light' | 'dark';\n if (userTheme === 'default') {\n theme = systemTheme;\n } else {\n theme = userTheme;\n }\n this.activateTheme(theme);\n }\n\n protected activateTheme(type: 'light' | 'dark'): void {\n const root = document.querySelector('html');\n if (!root) {\n return;\n }\n const { classList } = root;\n // clear all themes\n classList.forEach((value) => {\n if (value.startsWith('theme-')) {\n classList.remove(value);\n }\n });\n const name = `theme-${type}`;\n classList.add(name);\n }\n\n async isPlatformSupported(): Promise<boolean> {\n const result = await supportedPlatform();\n if (!result) {\n this.page = 'unsupported-platform';\n }\n return result;\n }\n\n initStoreChange(): void {\n window.addEventListener(EventTypes.Config.Environment.State.defaultChange, (e: Event) => {\n const event = e as CustomEvent;\n const id = event.detail.id as string;\n this.storeChanged(id);\n });\n }\n\n /**\n * Override in a child class to implement a logic that runs when the default \n * store change in the configuration.\n * \n * @param id The id of the activated environment. When missing it means there's no default environment.\n */\n abstract storeChanged(id?: string): Promise<void>;\n\n /**\n * Creates a modal dialog with the error details.\n * @param message The message to render\n */\n reportCriticalError(message: string): void {\n try {\n const dialog = document.createElement('dialog');\n const form = document.createElement('form');\n const title = document.createElement('h2');\n const content = document.createElement('div');\n const messageContainer = document.createElement('p');\n const buttons = document.createElement('div');\n const button = document.createElement('ui-button');\n dialog.classList.add('error-dialog');\n form.method = 'method';\n title.innerText = `An error ocurred`;\n messageContainer.classList.add('body-medium');\n messageContainer.textContent = message;\n content.appendChild(messageContainer);\n button.textContent = 'Dismiss';\n button.type = ButtonType.filled;\n button.value = 'submit';\n button.submit = true;\n buttons.classList.add('dialog-buttons');\n buttons.appendChild(button);\n form.appendChild(title);\n form.appendChild(content);\n form.appendChild(buttons);\n dialog.appendChild(form);\n document.body.appendChild(dialog);\n dialog.showModal();\n form.addEventListener('submit', (e: SubmitEvent) => {\n e.preventDefault();\n dialog.close();\n });\n dialog.addEventListener('close', () => {\n dialog.parentElement?.removeChild(dialog);\n });\n } catch (e) {\n /* eslint-disable-next-line no-console */ \n console.error(e);\n }\n }\n\n unhandledRejectionHandler(e: PromiseRejectionEvent): void {\n /* eslint-disable-next-line no-console */\n console.error(e);\n this.reportCriticalError(e.reason);\n }\n\n protected handleConfigBroadcast(e: MessageEvent): void {\n const event = e.data as ConfigBroadcast;\n const { path } = event;\n if (path === 'local.set') {\n this.handleLocalConfigUpdated(event.key as string, event.value as unknown);\n } else if (path === 'environment.setDefault') {\n this.handleDefaultEnvironmentSet(event.env as IConfigEnvironment);\n } else if (path === 'environment.add') {\n this.handleEnvironmentAdd(event.env as IConfigEnvironment, event.init as AddConfigEnvironmentInit);\n }\n }\n\n protected handleLocalConfigUpdated(key: string, value: unknown): void {\n if (key === 'theme') {\n this.userTheme = value as ThemeType;\n this.themeActiveCallback();\n }\n }\n\n protected handleDefaultEnvironmentSet(env: IConfigEnvironment): void {\n const { initialized, bindings } = this;\n this.env = env;\n bindings.store.global.set(env);\n this.resolvePending();\n if (initialized) {\n this.storeChanged(env.key);\n }\n }\n\n protected handleEnvironmentAdd(env: IConfigEnvironment, init: AddConfigEnvironmentInit = {}): void {\n if (!init.asDefault) {\n return;\n }\n this.handleDefaultEnvironmentSet(env);\n }\n\n /**\n * Called from the initialize store init flow when the user is not authenticated\n * and the auth screen is rendered.\n */\n protected async _authHandler(): Promise<void> {\n const { store } = this.bindings;\n await store.auth.authenticate({ updateEnvironment: true });\n this.authenticated = true;\n this.resolvePending();\n }\n\n protected handleOpenStoreConfig(): void {\n Events.Navigation.Store.config();\n }\n\n /**\n * Initializes the flow where an environment is required.\n * This checks for the default environment.\n * When it doesn't exists it asks the user to pick existing environment \n * or to create one.\n * When a default environment exists, it performs authentication\n * when necessary. \n * \n * Eventually it returns the HTTP store with an authenticated environment.\n * \n * @param defaultFlows When set to `true` is renders default pages for env selector \n * or when to authenticate. When false it throws errors instead. Default to `true`.\n */\n protected async initializeStore(defaultFlows = true): Promise<void> {\n const { store, config } = this.bindings;\n let env: IConfigEnvironment | undefined;\n try {\n env = await config.environment.read();\n } catch (e) { \n if (!defaultFlows) {\n throw e;\n }\n }\n if (!env || !env.location) {\n await this.enterEnvironmentMissingFlow();\n }\n if (!env || !env.location) {\n return;\n }\n this.env = env;\n await store.global.set(env);\n try {\n this.storeInfo = await store.environment.readStoreInfo(env.location);\n } catch (e) {\n if (!defaultFlows) {\n throw e;\n }\n await this.enterStoreUnavailableFlow();\n }\n const authStatus = await store.auth.isAuthenticated();\n if (!authStatus) {\n if (!defaultFlows) {\n throw new Error(`Not authenticated.`);\n }\n await this.enterAuthenticationRequiredFlow();\n }\n this.authenticated = true;\n }\n\n async loadUser(): Promise<void> {\n this.loadingUser = true;\n try {\n this.user = await this.bindings.store.users.me();\n } catch (e) {\n CoreEvents.Telemetry.exception(`Loading user: ${(e as Error).message}`, undefined, this.eventTarget || window);\n } finally {\n this.loadingUser = false;\n }\n }\n\n private enterEnvironmentMissingFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'env-required';\n });\n }\n\n private enterAuthenticationRequiredFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'auth-required';\n });\n }\n \n\n /**\n * Enters into the flow where the application is unable to connect to the data store.\n * It asks user to retry or re-configure.\n * \n * Note, this is called from withing the `initializeStore()` method and this is expected to\n * eventually finish.\n */\n private enterStoreUnavailableFlow(): Promise<void> {\n return new Promise((resolve) => {\n this.pendingResolver = resolve;\n this.page = 'store-unavailable';\n });\n }\n\n protected async handleRetryStoreInfo(): Promise<void> {\n const { bindings, env } = this;\n const { store } = bindings;\n if (!env) {\n // this should not happen as we enter this flow after the env is set.\n return;\n }\n try {\n this.storeInfo = await store.environment.readStoreInfo(env.location);\n this.resolvePending();\n } catch (_) {\n SnackNotifications.notify(`Unable to connect.`);\n }\n }\n\n private resolvePending(): void {\n const { pendingResolver } = this;\n if (pendingResolver) {\n this.pendingResolver = undefined;\n pendingResolver();\n }\n }\n\n /**\n * @returns A template for the page loader\n */\n loaderTemplate(): TemplateResult {\n return html`\n <div class=\"app-loader body-large\">\n <p class=\"message\">Preparing something spectacular</p>\n <p class=\"sub-message\">${this.loadingStatus}</p>\n </div>\n `;\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n if (this.page) {\n return html`\n ${this.renderInitFlowPage()}\n `;\n }\n return this.loaderTemplate();\n }\n return html``;\n }\n\n protected headerTemplate(): TemplateResult {\n return html`\n <header>Welcome</header>\n `;\n }\n\n protected mainTemplate(): TemplateResult {\n return html`<main></main>`;\n }\n\n protected footerTemplate(): TemplateResult {\n return html`<footer>Credits: Pawel Uchida-Psztyc</footer>`;\n }\n\n protected navigationTemplate(): TemplateResult {\n return html`<nav></nav>`;\n }\n\n protected renderInitFlowPage(): TemplateResult {\n switch (this.page) {\n case 'auth-required': return this.renderAuthRequired();\n case 'env-required': return this.renderEnvRequired();\n case 'unsupported-platform': return this.renderPlatformNotSupported();\n case 'store-unavailable': return this.renderStoreUnavailable();\n default: return html`<p class=\"general-error\">Unknown state. Did you set the <i>initialized</i> flag?</p>`;\n }\n }\n\n /**\n * Renders a full page overlay with the authentication required message.\n */\n protected renderAuthRequired(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Authentication required</h1>\n <p class=\"body-large\">You are not authenticated. To continue, please, authenticate your account.</p>\n <ui-button type=\"tonal\" @click=\"${this._authHandler}\">Authenticate</ui-button>\n </div>\n `;\n }\n\n protected renderEnvRequired(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Environment configuration missing</h1>\n <p class=\"body-large\">\n The application is unable to determine which environment to use.\n Open the <b>store configuration</b> screen to configure the connection.\n </p>\n <ui-button type=\"tonal\" @click=\"${this.handleOpenStoreConfig}\">Configure store</ui-button>\n </div>\n `;\n }\n\n protected renderPlatformNotSupported(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Unsupported platform</h1>\n <p class=\"body-large\">\n It looks like your browser does not support one of the crucial features needed to run\n this application. Accept our apologies, we work hard to support as many browsers as possible. \n </p>\n </div>\n `;\n }\n\n protected renderStoreUnavailable(): TemplateResult {\n return html`\n <div class=\"auth-required-screen\">\n <h1 class=\"display-large\">Unable to connect</h1>\n <p class=\"body-large\">\n It looks like you or the data store are offline. The application is unable to continue\n without a connection to the backend.\n </p>\n <div class=\"actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleRetryStoreInfo}\">Retry</ui-button>\n <ui-button type=\"outlined\" @click=\"${this.handleOpenStoreConfig}\">Configure store</ui-button>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.styles.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"ApiClient.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.styles.ts"],"names":[],"mappings":";AAEA,wBAsSE"}
|
|
@@ -46,6 +46,7 @@ main {
|
|
|
46
46
|
padding: 8px 8px 8px 16px;
|
|
47
47
|
margin: 0px;
|
|
48
48
|
box-sizing: border-box;
|
|
49
|
+
color: var(--md-sys-color-on-surface);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
/* Header */
|
|
@@ -55,12 +56,27 @@ main {
|
|
|
55
56
|
background-color: var(--md-ref-palette-neutral95);
|
|
56
57
|
display: flex;
|
|
57
58
|
align-items: center;
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
padding: 8px 24px;
|
|
61
61
|
box-sizing: border-box;
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
width: calc(33.3333%); /* 4 columns */
|
|
64
|
+
|
|
65
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
66
|
+
background-color: var(--md-sys-color-surface-variant);
|
|
67
|
+
|
|
68
|
+
position: relative;
|
|
69
|
+
z-index: 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.search-box::before {
|
|
73
|
+
content: "";
|
|
74
|
+
position: absolute;
|
|
75
|
+
inset: 0px;
|
|
76
|
+
opacity: 0;
|
|
77
|
+
background-color: var(--md-sys-color-on-surface-variant);
|
|
78
|
+
transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
|
|
79
|
+
z-index: -1;
|
|
64
80
|
}
|
|
65
81
|
|
|
66
82
|
.search-icon {
|
|
@@ -78,6 +94,8 @@ main {
|
|
|
78
94
|
border: none;
|
|
79
95
|
flex: 1;
|
|
80
96
|
outline: none;
|
|
97
|
+
caret-color: var(--md-sys-color-primary);
|
|
98
|
+
color: var(--md-sys-color-on-surface);
|
|
81
99
|
}
|
|
82
100
|
|
|
83
101
|
.search-box > input::placeholder {
|
|
@@ -94,6 +112,7 @@ main {
|
|
|
94
112
|
|
|
95
113
|
.workspace-dropdown {
|
|
96
114
|
margin-right: 12px;
|
|
115
|
+
color: var(--md-sys-color-on-surface);
|
|
97
116
|
}
|
|
98
117
|
|
|
99
118
|
.workspace-selector {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.styles.js","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"ApiClient.styles.js","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsSjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n#app {\n display: grid;\n grid-template:\n \"nav header\" 64px\n \"nav content\" calc(100vh - 64px) / minmax(360px, 2fr) 10fr;\n}\n\nheader {\n grid-area: header;\n display: flex;\n align-items: center;\n justify-content: start;\n}\n\nnav {\n grid-area: nav;\n padding: 12px;\n margin-right: 24px;\n}\n\nmain {\n overflow: auto;\n grid-area: content;\n margin: 8px 12px 12px 0;\n box-sizing: border-box;\n}\n\n#app.inactive header,\n#app.inactive nav,\n#app.inactive main {\n pointer-events: none;\n}\n\n.nav-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.nav-title {\n height: 56px;\n display: flex;\n align-items: center;\n padding: 8px 8px 8px 16px;\n margin: 0px;\n box-sizing: border-box;\n color: var(--md-sys-color-on-surface);\n}\n\n/* Header */\n.search-box {\n height: 48px;\n border-radius: var(--md-sys-shape-corner-medium);\n background-color: var(--md-ref-palette-neutral95);\n display: flex;\n align-items: center;\n \n padding: 8px 24px;\n box-sizing: border-box;\n \n width: calc(33.3333%); /* 4 columns */\n \n color: var(--md-sys-color-on-surface-variant);\n background-color: var(--md-sys-color-surface-variant);\n\n position: relative;\n z-index: 0;\n}\n\n.search-box::before {\n content: \"\";\n position: absolute;\n inset: 0px;\n opacity: 0;\n background-color: var(--md-sys-color-on-surface-variant);\n transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;\n z-index: -1;\n}\n\n.search-icon {\n margin-right: 20px;\n}\n\n.search-box:focus-within {\n outline: -webkit-focus-ring-color auto 1px;\n outline-offset: 0px;\n}\n\n.search-box > input {\n align-self: stretch;\n background: transparent;\n border: none;\n flex: 1;\n outline: none;\n caret-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-surface);\n}\n\n.search-box > input::placeholder {\n color: var(--md-sys-color-on-surface-variant);\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n}\n\n.spaced-right {\n margin-left: auto;\n}\n\n.workspace-dropdown {\n margin-right: 12px;\n color: var(--md-sys-color-on-surface);\n}\n\n.workspace-selector {\n height: 56px;\n outline: none;\n}\n\n.workspace-selector .surface {\n border-color: var(--md-ref-palette-neutral40);\n border-width: 1px;\n border-style: solid;\n border-radius: var(--md-sys-shape-corner-medium);\n height: inherit;\n min-width: 160px;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.workspace-selector .surface::before {\n content: '';\n position: absolute;\n border-radius: inherit;\n background-color: var(--md-sys-color-primary);\n}\n\n.workspace-selector:hover .surface::before {\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n inset: 0;\n}\n\n.workspace-selector:focus-within .surface::before {\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n inset: 0;\n}\n\n.workspace-selector .content {\n display: flex;\n flex-direction: row;\n flex: 1;\n padding: 0 12px;\n}\n\n.workspace-selector .body {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\nmain {\n background-color: var(--md-sys-color-surface);\n border-radius: var(--md-sys-shape-corner-medium);\n color: var(--md-sys-color-on-primary-container);\n\n overflow: hidden;\n display: flex;\n}\n\nmain .content {\n padding: 20px;\n position: relative;\n z-index: 0;\n border-radius: inherit;\n\n flex: 1;\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n}\n\nmain .content::before {\n content: '';\n background-color: var(--md-sys-color-primary);\n opacity: .05;\n position: absolute;\n inset: 0;\n border-radius: inherit;\n}\n\nmain .content > * {\n position: relative;\n z-index: 1;\n}\n\n.section-header {\n display: flex;\n align-items: center;\n z-index: 2 !important;\n}\n\n.spacer {\n flex: 1;\n}\n\n/* data table */\n\n.name-cell {\n flex: 1;\n}\n\n.updated-cell {\n width: 200px;\n}\n\n.owner-cell {\n width: 200px;\n}\n\n.menu-cell {\n width: 48px;\n}\n\n.data-table-body-cell.menu-cell {\n padding: 0;\n}\n\n.cell-icon {\n margin-right: 12px;\n min-width: 24px;\n}\n\ndialog {\n min-width: 360px;\n}\n\ndialog .input {\n width: 100%;\n}\n\n.workspace-dialog-info {\n max-width: 460px;\n}\n\n.workspace-intro-form {\n display: flex;\n align-items: center;\n}\n\n.workspace-intro-form .input {\n flex: 1;\n margin-right: 20px;\n}\n\n.breadcrumbs {\n margin: 0 20px;\n padding: 0;\n}\n\n.breadcrumbs ol {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.breadcrumbs .separator {\n display: inline-block;\n margin: 0 8px;\n}\n\n.breadcrumbs a {\n color: var(--md-sys-color-on-surface-variant);\n}\n\n.breadcrumbs li:last-of-type a {\n text-decoration: none;\n color: var(--md-sys-color-on-surface);\n}\n\n.import-error {\n background-color: var(--md-sys-color-error);\n color: var(--md-sys-color-on-error);\n padding: 12px;\n margin-top: 20px;\n border-radius: 12px;\n white-space: pre-wrap;\n}\n`;\n"]}
|
|
@@ -16,8 +16,10 @@ export default class AuthenticateScreen extends ApplicationScreen {
|
|
|
16
16
|
* Whether the application is performing the store validation.
|
|
17
17
|
*/
|
|
18
18
|
authenticating: boolean;
|
|
19
|
+
isSessionStore: boolean;
|
|
19
20
|
constructor(init: ApplicationInit);
|
|
20
21
|
initialize(): Promise<void>;
|
|
22
|
+
readEnvironment(): Promise<IConfigEnvironment | undefined>;
|
|
21
23
|
protected handleAuthenticate(): void;
|
|
22
24
|
protected handleBack(): void;
|
|
23
25
|
protected authenticate(env: IConfigEnvironment): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authenticate.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,KAAK,MAAM,IAAI,SAAS,EAAE,CAE/B;IAEW,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEtC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;OAEG;IACS,cAAc,UAAS;
|
|
1
|
+
{"version":3,"file":"Authenticate.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,KAAK,MAAM,IAAI,SAAS,EAAE,CAE/B;IAEW,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEtC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;OAEG;IACS,cAAc,UAAS;IAEnC,cAAc,UAAS;gBAEX,IAAI,EAAE,eAAe;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAUhE,SAAS,CAAC,kBAAkB,IAAI,IAAI;IASpC,SAAS,CAAC,UAAU,IAAI,IAAI;cAIZ,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE;;;OAGG;IACM,YAAY,IAAI,cAAc;IAUvC,iBAAiB,IAAI,cAAc;IASnC,eAAe,IAAI,cAAc;IAQjC,WAAW,IAAI,cAAc;IAI7B,kBAAkB,IAAI,cAAc;IAQpC,cAAc,IAAI,cAAc;IAWhC,YAAY,IAAI,cAAc;IAM9B,gBAAgB,IAAI,cAAc,GAAG,MAAM;CAS5C"}
|
|
@@ -27,13 +27,14 @@ export default class AuthenticateScreen extends ApplicationScreen {
|
|
|
27
27
|
* Whether the application is performing the store validation.
|
|
28
28
|
*/
|
|
29
29
|
this.authenticating = false;
|
|
30
|
+
this.isSessionStore = false;
|
|
30
31
|
}
|
|
31
32
|
async initialize() {
|
|
32
33
|
try {
|
|
33
34
|
await this.bindings.store.initialize();
|
|
34
35
|
await this.bindings.store.initializeStore();
|
|
35
36
|
await this.bindings.config.initialize();
|
|
36
|
-
const env = await this.
|
|
37
|
+
const env = await this.readEnvironment();
|
|
37
38
|
if (env) {
|
|
38
39
|
this.environment = env;
|
|
39
40
|
}
|
|
@@ -45,6 +46,16 @@ export default class AuthenticateScreen extends ApplicationScreen {
|
|
|
45
46
|
this.environmentError = e.message;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
49
|
+
async readEnvironment() {
|
|
50
|
+
let env = await this.bindings.config.session.get(`${EnvironmentsKey}.creating`);
|
|
51
|
+
if (!env) {
|
|
52
|
+
env = await this.bindings.config.environment.read();
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.isSessionStore = true;
|
|
56
|
+
}
|
|
57
|
+
return env;
|
|
58
|
+
}
|
|
48
59
|
handleAuthenticate() {
|
|
49
60
|
const { environment } = this;
|
|
50
61
|
if (!environment) {
|
|
@@ -67,8 +78,13 @@ export default class AuthenticateScreen extends ApplicationScreen {
|
|
|
67
78
|
this.authenticating = false;
|
|
68
79
|
}
|
|
69
80
|
if (info) {
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
if (this.isSessionStore) {
|
|
82
|
+
await this.bindings.config.environment.add(env, { asDefault: true });
|
|
83
|
+
await this.bindings.config.session.delete(`${EnvironmentsKey}.creating`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
await this.bindings.config.environment.update(env);
|
|
87
|
+
}
|
|
72
88
|
}
|
|
73
89
|
}
|
|
74
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authenticate.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAA6B,MAAM,KAAK,CAAC;AACtD,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,sCAAsC,CAAC;AAC9D,OAAO,MAAM,MAAM,kCAAkC,CAAC;AACtD,OAAO,MAAM,MAAM,kCAAkC,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IACtD,KAAK,CAAC,YAAY;QACzB,MAAM;IACR,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;
|
|
1
|
+
{"version":3,"file":"Authenticate.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, CSSResult } from 'lit';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport { reactive } from '../../lib/decorators.js';\nimport styles from './Authenticate.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport colors from '../../styles/m3/colors.module.js';\nimport dialog from '../../styles/m3/dialog.module.js';\nimport { IConfigEnvironment } from '../../lib/config/Config.js';\nimport { ISessionInitInfo } from '../../store/HttpStore.js';\nimport { EnvironmentsKey } from '../../bindings/base/ConfigurationBindings.js';\nimport '../../define/ui/ui-progress.js';\nimport '../../define/ui/ui-button.js';\n\n/**\n * When the user is redirected here it means that the user provided a configuration\n * that requires user authentication.\n */\nexport default class AuthenticateScreen extends ApplicationScreen {\n override async storeChanged(): Promise<void> {\n // ...\n }\n\n static get styles(): CSSResult[] {\n return [styles, globalStyles, typography, colors, dialog];\n }\n\n @reactive() environmentError?: string;\n\n environment?: IConfigEnvironment;\n\n /**\n * Whether the application is performing the store validation.\n */\n @reactive() authenticating = false;\n\n isSessionStore = false;\n\n constructor(init: ApplicationInit) {\n super(init);\n }\n\n async initialize(): Promise<void> {\n try {\n await this.bindings.store.initialize();\n await this.bindings.store.initializeStore();\n await this.bindings.config.initialize();\n const env = await this.readEnvironment();\n if (env) {\n this.environment = env;\n } else {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n }\n } catch (e) {\n this.environmentError = (e as Error).message;\n }\n }\n\n async readEnvironment(): Promise<IConfigEnvironment | undefined> {\n let env = await this.bindings.config.session.get(`${EnvironmentsKey}.creating`) as IConfigEnvironment | undefined;\n if (!env) {\n env = await this.bindings.config.environment.read();\n } else {\n this.isSessionStore = true;\n }\n return env;\n }\n\n protected handleAuthenticate(): void {\n const { environment } = this;\n if (!environment) {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n return;\n }\n this.authenticate(environment);\n }\n\n protected handleBack(): void {\n window.history.back();\n }\n\n protected async authenticate(env: IConfigEnvironment): Promise<void> {\n this.authenticating = true;\n let info: ISessionInitInfo | undefined;\n try {\n await this.bindings.store.global.set(env);\n info = await this.bindings.store.auth.authenticate({ force: false });\n } finally {\n this.authenticating = false;\n }\n if (info) {\n if (this.isSessionStore) {\n await this.bindings.config.environment.add(env, { asDefault: true });\n await this.bindings.config.session.delete(`${EnvironmentsKey}.creating`);\n } else {\n await this.bindings.config.environment.update(env);\n }\n }\n }\n\n /**\n * This to be used by the child classes to render page template.\n * @returns Application page template\n */\n override pageTemplate(): TemplateResult {\n return html`\n <main class=\"config-init\">\n ${this.renderTitle()}\n ${this.renderIntroMessage()}\n ${this.environmentError ? this.initErrorTemplate() : this.contentTemplate()}\n </main>\n `;\n }\n\n initErrorTemplate(): TemplateResult {\n return html`\n <p class=\"general-error error on-error-text body-large\">${this.environmentError}</p>\n <div class=\"action\">\n <ui-button type=\"filled\" @click=\"${this.handleBack}\">Back</ui-button>\n </div>\n `;\n }\n\n contentTemplate(): TemplateResult {\n return html`\n ${this.actionTemplate()}\n ${this.infoTemplate()}\n ${this.progressTemplate()}\n `;\n }\n\n renderTitle(): TemplateResult {\n return html`<h1 class=\"display-large\">Store authentication</h1>`;\n }\n\n renderIntroMessage(): TemplateResult {\n return html`\n <div class=\"description body-medium\">\n <p id=\"authenticationMessage\">The network store requires authentication.</p>\n </div>\n `;\n }\n\n actionTemplate(): TemplateResult {\n return html`\n <div class=\"action\">\n <ui-button \n type=\"filled\"\n @click=\"${this.handleAuthenticate}\"\n >Authenticate</ui-button>\n </div>\n `;\n }\n\n infoTemplate(): TemplateResult {\n return html`\n <p class=\"description body-medium\" id=\"authenticationMessage\">This will open a new tab with the authentication options.</p>\n `;\n }\n\n progressTemplate(): TemplateResult | string {\n const { authenticating } = this;\n if (!authenticating) {\n return '';\n }\n return html`\n <ui-progress indeterminate></ui-progress>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreConfig.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/StoreConfig.screen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StoreConfig.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/StoreConfig.screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -673,12 +673,13 @@ export default class StoreConfigScreen extends ApplicationScreen {
|
|
|
673
673
|
`;
|
|
674
674
|
}
|
|
675
675
|
renderActions() {
|
|
676
|
+
const canCancel = this.initReason !== 'first-run';
|
|
676
677
|
return html `
|
|
677
678
|
<div class="actions">
|
|
678
|
-
|
|
679
|
+
${canCancel ? html `<ui-button
|
|
679
680
|
type="text"
|
|
680
681
|
@click="${this.handleCancel}"
|
|
681
|
-
>Cancel</ui-button
|
|
682
|
+
>Cancel</ui-button>` : nothing}
|
|
682
683
|
<ui-button
|
|
683
684
|
type="filled"
|
|
684
685
|
?disabled="${!this.storeType}"
|
|
@@ -693,6 +694,7 @@ export default class StoreConfigScreen extends ApplicationScreen {
|
|
|
693
694
|
?open="${this.infoDialogOpened}"
|
|
694
695
|
@close="${this.handleDialogClose}"
|
|
695
696
|
class="help-dialog"
|
|
697
|
+
modal
|
|
696
698
|
>
|
|
697
699
|
<ui-icon slot="icon" icon="help"></ui-icon>
|
|
698
700
|
|