@api-client/ui 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/amf/lib/AmfParameters.js +0 -4
- package/dist/amf/lib/AmfParameters.js.map +1 -1
- package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
- package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
- package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
- package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
- package/dist/amf/store/AmfGraphStore.js +0 -2
- package/dist/amf/store/AmfGraphStore.js.map +1 -1
- package/dist/amf/store/AmfStore.js +0 -7
- package/dist/amf/store/AmfStore.js.map +1 -1
- package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
- package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/base/PlatformBindings.js +6 -10
- package/dist/bindings/base/PlatformBindings.js.map +1 -1
- package/dist/bindings/base/ProxyBindings.js +9 -6
- package/dist/bindings/base/ProxyBindings.js.map +1 -1
- package/dist/bindings/base/SharedWorkerThread.js +4 -1
- package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
- package/dist/bindings/base/StoreBindings.js +162 -170
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebConfigurationBindings.js +22 -24
- package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +7 -4
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
- package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/web/WebNavigationBindings.js +4 -1
- package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
- package/dist/bindings/web/WebProxyBindings.js +5 -6
- package/dist/bindings/web/WebProxyBindings.js.map +1 -1
- package/dist/bindings/web/WebStoreBindings.js +39 -44
- package/dist/bindings/web/WebStoreBindings.js.map +1 -1
- package/dist/contextual-menu/ContextualMenu.js +10 -19
- package/dist/contextual-menu/ContextualMenu.js.map +1 -1
- package/dist/contextual-menu/ContextualMenuElement.js +4 -32
- package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
- package/dist/contextual-menu/MenuItem.js +0 -12
- package/dist/contextual-menu/MenuItem.js.map +1 -1
- package/dist/define/amf/api-annotation-document.js +1 -1
- package/dist/define/amf/api-annotation-document.js.map +1 -1
- package/dist/define/amf/api-authorization-editor.js +1 -1
- package/dist/define/amf/api-authorization-editor.js.map +1 -1
- package/dist/define/amf/api-channel-document.js +1 -1
- package/dist/define/amf/api-channel-document.js.map +1 -1
- package/dist/define/amf/api-documentation-document.js +1 -1
- package/dist/define/amf/api-documentation-document.js.map +1 -1
- package/dist/define/amf/api-documentation.js +1 -1
- package/dist/define/amf/api-documentation.js.map +1 -1
- package/dist/define/amf/api-navigation.js +1 -1
- package/dist/define/amf/api-navigation.js.map +1 -1
- package/dist/define/amf/api-operation-document.js +1 -1
- package/dist/define/amf/api-operation-document.js.map +1 -1
- package/dist/define/amf/api-parameter-document.js +1 -1
- package/dist/define/amf/api-parameter-document.js.map +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
- package/dist/define/amf/api-payload-document.js +1 -1
- package/dist/define/amf/api-payload-document.js.map +1 -1
- package/dist/define/amf/api-request-document.js +1 -1
- package/dist/define/amf/api-request-document.js.map +1 -1
- package/dist/define/amf/api-request-editor.js +1 -1
- package/dist/define/amf/api-request-editor.js.map +1 -1
- package/dist/define/amf/api-request.js +1 -1
- package/dist/define/amf/api-request.js.map +1 -1
- package/dist/define/amf/api-resource-document.js +1 -1
- package/dist/define/amf/api-resource-document.js.map +1 -1
- package/dist/define/amf/api-response-document.js +1 -1
- package/dist/define/amf/api-response-document.js.map +1 -1
- package/dist/define/amf/api-schema-document.js +1 -1
- package/dist/define/amf/api-schema-document.js.map +1 -1
- package/dist/define/amf/api-security-document.js +1 -1
- package/dist/define/amf/api-security-document.js.map +1 -1
- package/dist/define/amf/api-security-requirement-document.js +1 -1
- package/dist/define/amf/api-security-requirement-document.js.map +1 -1
- package/dist/define/amf/api-server-picker.js +1 -1
- package/dist/define/amf/api-server-picker.js.map +1 -1
- package/dist/define/amf/api-summary.js +1 -1
- package/dist/define/amf/api-summary.js.map +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
- package/dist/define/authorization/apikey-authorization.js +1 -1
- package/dist/define/authorization/apikey-authorization.js.map +1 -1
- package/dist/define/authorization/basic-authorization.js +1 -1
- package/dist/define/authorization/basic-authorization.js.map +1 -1
- package/dist/define/authorization/bearer-authorization.js +1 -1
- package/dist/define/authorization/bearer-authorization.js.map +1 -1
- package/dist/define/authorization/cc-authorization.js +1 -1
- package/dist/define/authorization/cc-authorization.js.map +1 -1
- package/dist/define/authorization/ntlm-authorization.js +1 -1
- package/dist/define/authorization/ntlm-authorization.js.map +1 -1
- package/dist/define/authorization/oauth2-authorization.js +1 -1
- package/dist/define/authorization/oauth2-authorization.js.map +1 -1
- package/dist/define/authorization/oidc-authorization.js +1 -1
- package/dist/define/authorization/oidc-authorization.js.map +1 -1
- package/dist/define/contextual-menu/contextual-menu.js +1 -1
- package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
- package/dist/define/dialog/rename-dialog.js +1 -1
- package/dist/define/dialog/rename-dialog.js.map +1 -1
- package/dist/define/files/share-file.js +1 -1
- package/dist/define/files/share-file.js.map +1 -1
- package/dist/define/har/har-viewer.js +1 -1
- package/dist/define/har/har-viewer.js.map +1 -1
- package/dist/define/highlight/marked-highlight.js +1 -1
- package/dist/define/highlight/marked-highlight.js.map +1 -1
- package/dist/define/highlight/prism-highlight.js +1 -1
- package/dist/define/highlight/prism-highlight.js.map +1 -1
- package/dist/define/http/http-assertions.js +1 -1
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-body-editor.js +1 -1
- package/dist/define/http/http-body-editor.js.map +1 -1
- package/dist/define/http/http-body-multipart-editor.js +1 -1
- package/dist/define/http/http-body-multipart-editor.js.map +1 -1
- package/dist/define/http/http-body-text-editor.js +1 -1
- package/dist/define/http/http-body-text-editor.js.map +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
- package/dist/define/http/http-headers-form.js +1 -1
- package/dist/define/http/http-headers-form.js.map +1 -1
- package/dist/define/http/http-log-body.js +1 -1
- package/dist/define/http/http-log-body.js.map +1 -1
- package/dist/define/http/http-log-headers.js +1 -1
- package/dist/define/http/http-log-headers.js.map +1 -1
- package/dist/define/http/http-log-timings.js +1 -1
- package/dist/define/http/http-log-timings.js.map +1 -1
- package/dist/define/http/http-request-config.js +1 -1
- package/dist/define/http/http-request-config.js.map +1 -1
- package/dist/define/http/http-request-editor.js +1 -1
- package/dist/define/http/http-request-editor.js.map +1 -1
- package/dist/define/http/http-request-log.js +1 -1
- package/dist/define/http/http-request-log.js.map +1 -1
- package/dist/define/http/http-snippets.js +1 -1
- package/dist/define/http/http-snippets.js.map +1 -1
- package/dist/define/http/http-url-input.js +1 -1
- package/dist/define/http/http-url-input.js.map +1 -1
- package/dist/define/http/http-url-params-form.js +1 -1
- package/dist/define/http/http-url-params-form.js.map +1 -1
- package/dist/define/http-project/http-project-request-history.js +1 -1
- package/dist/define/http-project/http-project-request-history.js.map +1 -1
- package/dist/define/http-project/http-project-request.js +2 -2
- package/dist/define/http-project/http-project-request.js.map +1 -1
- package/dist/define/http-project/project-navigation.js +1 -1
- package/dist/define/http-project/project-navigation.js.map +1 -1
- package/dist/define/http-project/project-run-report.js +1 -1
- package/dist/define/http-project/project-run-report.js.map +1 -1
- package/dist/define/http-project/project-runner.js +2 -2
- package/dist/define/http-project/project-runner.js.map +1 -1
- package/dist/define/layout/split-view.js +1 -1
- package/dist/define/layout/split-view.js.map +1 -1
- package/dist/define/schema-design/schema-design-navigation.js +1 -1
- package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
- package/dist/define/ui/ui-button.js +1 -1
- package/dist/define/ui/ui-button.js.map +1 -1
- package/dist/define/ui/ui-chip.js +1 -1
- package/dist/define/ui/ui-chip.js.map +1 -1
- package/dist/define/ui/ui-collapse.js +1 -1
- package/dist/define/ui/ui-collapse.js.map +1 -1
- package/dist/define/ui/ui-dialog.js +1 -1
- package/dist/define/ui/ui-dialog.js.map +1 -1
- package/dist/define/ui/ui-dropdown-list.js +1 -1
- package/dist/define/ui/ui-dropdown-list.js.map +1 -1
- package/dist/define/ui/ui-icon-button.js +1 -1
- package/dist/define/ui/ui-icon-button.js.map +1 -1
- package/dist/define/ui/ui-icon.js +1 -1
- package/dist/define/ui/ui-icon.js.map +1 -1
- package/dist/define/ui/ui-list-item.js +1 -1
- package/dist/define/ui/ui-list-item.js.map +1 -1
- package/dist/define/ui/ui-list.js +1 -1
- package/dist/define/ui/ui-list.js.map +1 -1
- package/dist/define/ui/ui-listbox.js +1 -1
- package/dist/define/ui/ui-listbox.js.map +1 -1
- package/dist/define/ui/ui-progress.js +1 -1
- package/dist/define/ui/ui-progress.js.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/define/ui/ui-segmented-button.js +1 -1
- package/dist/define/ui/ui-segmented-button.js.map +1 -1
- package/dist/define/ui/ui-snackbar.js +1 -1
- package/dist/define/ui/ui-snackbar.js.map +1 -1
- package/dist/define/ui/ui-tab.js +1 -1
- package/dist/define/ui/ui-tab.js.map +1 -1
- package/dist/define/ui/ui-tabs.js +1 -1
- package/dist/define/ui/ui-tabs.js.map +1 -1
- package/dist/directives/data-attr.js +0 -1
- package/dist/directives/data-attr.js.map +1 -1
- package/dist/elements/ApiElement.js +0 -7
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
- package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentation.element.js +0 -91
- package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationBase.js +0 -9
- package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiNavigation.element.js +0 -97
- package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
- package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +0 -78
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
- package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
- package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
- package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
- package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
- package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiServerPicker.element.js +2 -65
- package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
- package/dist/elements/amf/ApiSummary.element.js +0 -26
- package/dist/elements/amf/ApiSummary.element.js.map +1 -1
- package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
- package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBasic.js +0 -4
- package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBearer.js +0 -4
- package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
- package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOidc.js +0 -4
- package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
- package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
- package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
- package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
- package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
- package/dist/elements/authorization/OAuth2Authorize.js +0 -14
- package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
- package/dist/elements/authorization/OidcAuthorize.js +0 -14
- package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +18 -32
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
- package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
- package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/dist/elements/code/HttpSnippets.js +9 -8
- package/dist/elements/code/HttpSnippets.js.map +1 -1
- package/dist/elements/dialog/ConfirmDelete.js +0 -12
- package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
- package/dist/elements/dialog/Rename.js +0 -6
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +8 -11
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/ServerEditor.js +7 -45
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +7 -12
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/files/ShareFile.js +19 -57
- package/dist/elements/files/ShareFile.js.map +1 -1
- package/dist/elements/har/HarViewer.js +6 -7
- package/dist/elements/har/HarViewer.js.map +1 -1
- package/dist/elements/highlight/MarkedHighlight.js +4 -56
- package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
- package/dist/elements/highlight/PrismHighlight.js +9 -18
- package/dist/elements/highlight/PrismHighlight.js.map +1 -1
- package/dist/elements/highlight/PrismHighlighter.js +4 -6
- package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
- package/dist/elements/http/BodyEditor.js +21 -33
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +17 -18
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +2 -15
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.js +16 -17
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.js +8 -6
- package/dist/elements/http/HttpAssertions.js.map +1 -1
- package/dist/elements/http/LogBody.js +10 -21
- package/dist/elements/http/LogBody.js.map +1 -1
- package/dist/elements/http/LogHeaders.js +4 -23
- package/dist/elements/http/LogHeaders.js.map +1 -1
- package/dist/elements/http/LogTimings.js +11 -13
- package/dist/elements/http/LogTimings.js.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +7 -4
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.js +54 -88
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/RequestLog.js +9 -14
- package/dist/elements/http/RequestLog.js.map +1 -1
- package/dist/elements/http/UrlInput.js +15 -25
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +16 -13
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/LayoutManager.js +16 -24
- package/dist/elements/layout/LayoutManager.js.map +1 -1
- package/dist/elements/layout/LayoutPanelElement.js +17 -23
- package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
- package/dist/elements/layout/SplitItem.js +4 -12
- package/dist/elements/layout/SplitItem.js.map +1 -1
- package/dist/elements/layout/SplitLayout.js +18 -24
- package/dist/elements/layout/SplitLayout.js.map +1 -1
- package/dist/elements/layout/SplitPanel.js +10 -16
- package/dist/elements/layout/SplitPanel.js.map +1 -1
- package/dist/elements/layout/SplitView.js +17 -26
- package/dist/elements/layout/SplitView.js.map +1 -1
- package/dist/elements/navigation/AppNavigationElement.js +8 -47
- package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
- package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +0 -38
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
- package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/dist/elements/project/ProjectNavigation.js +0 -4
- package/dist/elements/project/ProjectNavigation.js.map +1 -1
- package/dist/elements/project/ProjectRunReport.js +4 -15
- package/dist/elements/project/ProjectRunReport.js.map +1 -1
- package/dist/elements/project/ProjectRunner.js +2 -47
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +0 -13
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
- package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +0 -18
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +0 -12
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
- package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
- package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
- package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
- package/dist/elements/user/UserAvatarElement.js +0 -9
- package/dist/elements/user/UserAvatarElement.js.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.js +2 -2
- package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
- package/dist/http-client/idb/Base.js +5 -10
- package/dist/http-client/idb/Base.js.map +1 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
- package/dist/http-client/idb/MockedStore.js +3 -1
- package/dist/http-client/idb/MockedStore.js.map +1 -1
- package/dist/http-client/store/DataImportProcessor.js +0 -3
- package/dist/http-client/store/DataImportProcessor.js.map +1 -1
- package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
- package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
- package/dist/http-client/store/IdbThread.js +23 -20
- package/dist/http-client/store/IdbThread.js.map +1 -1
- package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
- package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
- package/dist/http-client/store/idb/IdbStore.js +0 -2
- package/dist/http-client/store/idb/IdbStore.js.map +1 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
- package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
- package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
- package/dist/lib/chart/HttpHistoryChart.js +7 -8
- package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
- package/dist/mixins/FileDropMixin.js +0 -1
- package/dist/mixins/FileDropMixin.js.map +1 -1
- package/dist/mixins/RenderableMixin.js +11 -15
- package/dist/mixins/RenderableMixin.js.map +1 -1
- package/dist/pages/ApplicationScreen.js +34 -55
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +11 -20
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +4 -6
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +21 -37
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/Telemetry.screen.js +1 -2
- package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +6 -27
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Settings.page.js +2 -4
- package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
- package/dist/pages/api-client/pages/Trash.page.js +2 -13
- package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.js +13 -13
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +25 -35
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
- package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
- package/dist/store/HttpStore.js +0 -3
- package/dist/store/HttpStore.js.map +1 -1
- package/dist/store/UserCache.js +5 -5
- package/dist/store/UserCache.js.map +1 -1
- package/dist/ui/UiElement.js +4 -5
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.js +9 -11
- package/dist/ui/button/SegmentedButton.js.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.js +6 -7
- package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
- package/dist/ui/button/UiButton.js +17 -39
- package/dist/ui/button/UiButton.js.map +1 -1
- package/dist/ui/button/UiIconButton.js +9 -35
- package/dist/ui/button/UiIconButton.js.map +1 -1
- package/dist/ui/chip/UiChip.js +9 -49
- package/dist/ui/chip/UiChip.js.map +1 -1
- package/dist/ui/collapse/UiCollapse.js +15 -20
- package/dist/ui/collapse/UiCollapse.js.map +1 -1
- package/dist/ui/controllers/ActionController.js +143 -144
- package/dist/ui/controllers/ActionController.js.map +1 -1
- package/dist/ui/controllers/RadioSelectionController.js +0 -1
- package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
- package/dist/ui/date/DateTime.js +3 -3
- package/dist/ui/date/DateTime.js.map +1 -1
- package/dist/ui/dialog/UiDialog.js +14 -38
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.js +20 -18
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/effects/rippleDirective.js +6 -7
- package/dist/ui/effects/rippleDirective.js.map +1 -1
- package/dist/ui/icons/UiIcon.js +4 -3
- package/dist/ui/icons/UiIcon.js.map +1 -1
- package/dist/ui/input/CheckboxElement.js +12 -10
- package/dist/ui/input/CheckboxElement.js.map +1 -1
- package/dist/ui/input/CheckedElement.js +2 -13
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +169 -234
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/input/RadioElement.js +13 -11
- package/dist/ui/input/RadioElement.js.map +1 -1
- package/dist/ui/input/SwitchElement.js +0 -18
- package/dist/ui/input/SwitchElement.js.map +1 -1
- package/dist/ui/input/TextAreaElement.js +0 -15
- package/dist/ui/input/TextAreaElement.js.map +1 -1
- package/dist/ui/list/DividerElement.js +5 -10
- package/dist/ui/list/DividerElement.js.map +1 -1
- package/dist/ui/list/UiDropdownList.js +7 -48
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.js +3 -15
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/list/UiListItem.js +4 -17
- package/dist/ui/list/UiListItem.js.map +1 -1
- package/dist/ui/list/UiListbox.js +0 -1
- package/dist/ui/list/UiListbox.js.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +1 -2
- package/dist/ui/notification/SnackNotifications.js.map +1 -1
- package/dist/ui/notification/Snackbar.js +27 -51
- package/dist/ui/notification/Snackbar.js.map +1 -1
- package/dist/ui/progress/Range.js +24 -23
- package/dist/ui/progress/Range.js.map +1 -1
- package/dist/ui/progress/UiProgress.js +0 -11
- package/dist/ui/progress/UiProgress.js.map +1 -1
- package/dist/ui/table/DataTable.js +7 -12
- package/dist/ui/table/DataTable.js.map +1 -1
- package/dist/ui/tabs/UiTab.js +24 -25
- package/dist/ui/tabs/UiTab.js.map +1 -1
- package/dist/ui/tabs/UiTabs.js +21 -35
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
- package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
- package/dist/visualization/lib/AssociationAnchors.js +16 -28
- package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
- package/dist/visualization/lib/Point.js +0 -2
- package/dist/visualization/lib/Point.js.map +1 -1
- package/dist/visualization/lib/SelectionManager.js +10 -11
- package/dist/visualization/lib/SelectionManager.js.map +1 -1
- package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
- package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
- package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
- package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
- package/dist/visualization/lib/WorkspaceEdges.js +17 -19
- package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
- package/dist/visualization/lib/WorkspaceGestures.js +0 -3
- package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
- package/dist/visualization/lib/WorkspaceSizing.js +4 -6
- package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
- package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
- package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
- package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
- package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
- package/dist/visualization/lib/tips/TipArtist.js +0 -3
- package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
- package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
- package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
- package/package.json +3 -2
- package/tsconfig.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/ui/input/Input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { SupportedAutocapitalize, SupportedAutocomplete, SupportedInputTypes } from \"../../types/input.js\";\nimport { ARIAAutoComplete, ARIAExpanded, ARIARole } from \"../../types/role.js\";\nimport { isDisabled, setDisabled } from \"../lib/disabled.js\";\nimport { UiElement } from \"../UiElement.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\n\n// export type SupportedInputTypes = \"text\" | \"search\" | \"tel\" | \"url\" | \"email\" | \"password\" | \n// \"datetime\" | \"date\" | \"month\" | \"week\" | \"time\" | \"datetime-local\" | \"number\" | \"color\" | \"file\";\n\nconst floatTypes = [\n 'date',\n 'color',\n 'datetime-local',\n 'file',\n 'month',\n 'time',\n 'week',\n];\n\n/**\n * @slot prefix - A slot in which to render prefixes of the input\n * @slot suffix - A slot in which to render suffixes of the input\n */\nexport default abstract class Input extends UiElement {\n #_userInteracted: boolean;\n\n // static override shadowRootOptions: ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n static get formAssociated(): boolean {\n return true;\n }\n\n #_internals = this.attachInternals();\n\n get form(): HTMLFormElement | null {\n return this.#_internals && this.#_internals.form;\n }\n\n /**\n * @attribute\n */\n @property({type: String, reflect: true}) type: SupportedInputTypes;\n\n /**\n * Disables the input.\n * @attribute\n */\n get disabled(): boolean {\n return isDisabled(this);\n }\n\n @property({ reflect: true, type: Boolean })\n set disabled(value: boolean) {\n const old = isDisabled(this);\n setDisabled(this, value);\n this.requestUpdate('disabled', old);\n this._updateFormValue();\n if (value) {\n this.dataset.tabindex = this.getAttribute('tabindex') || '0';\n this.removeAttribute('tabindex');\n } else {\n const index = this.dataset.tabindex || '0';\n this.setAttribute('tabindex', index);\n this.blur();\n }\n }\n\n /**\n * The name of the form control, submitted as a pair with the control's value as part of the form data.\n * @attribute\n */\n @property({ type: String }) name?: string;\n\n /**\n * When a form is submitted, only checkboxes which are currently checked are submitted to the server, \n * and the reported value is the `value` of the value attribute. \n * If the `value` is not otherwise specified, it is the string `on` by default. \n * @attribute\n */\n @property({ type: String }) value = '';\n\n #_required?: boolean;\n\n /**\n * Set to true to mark the input element as required. \n * @attribute\n */\n @property({ reflect: true, type: Boolean })\n get required(): boolean | undefined {\n return this.#_required;\n }\n\n set required(value: boolean | undefined) {\n const old = this.#_required;\n if (old === value) {\n return;\n }\n this.#_required = value;\n this.requestUpdate('required', 'old');\n this._updateFormValue();\n }\n\n /**\n * While the element can be easily styled with the `:valid` and `:invalid` pseudo classes\n * it also exposes an attribute to style the element as invalid. This attribute changes \n * when the element validation is performed.\n * \n * Calling `reportValidity()` will automatically update `invalid`.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * Calling `reportValidity()` will automatically update `errorText` to the\n * native `validationMessage`.\n * @attribute\n */\n @property({ type: String }) invalidText = '';\n\n /**\n * The label to be rendered with the input.\n * @attribute\n */\n @property({ type: String }) label?: string;\n\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n * @attribute\n */\n @property({ type: Boolean }) hasPrefix = false;\n\n /**\n * Whether or not the text field has a trailing icon. Used for SSR.\n * @attribute\n */\n @property({ type: Boolean }) hasSuffix = false;\n\n /**\n * Conveys additional information below the text field, such as how it should\n * be used.\n * @attribute\n */\n @property({ type: String }) supportingText = '';\n\n /**\n * Override the input text CSS `direction`. Useful for RTL languages that use\n * LTR notation for fractions.\n * @attribute\n */\n @property({ type: String }) textDirection = '';\n\n /**\n * When set the label of the input disappears after input rather than float over the input.\n * @attribute\n */\n @property({ type: Boolean }) noFloating?: boolean;\n\n /**\n * Defines the greatest value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#max\n * @attribute\n */\n @property({ type: String }) max = '';\n\n /**\n * The maximum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength\n * @attribute\n */\n @property({ type: Number }) maxLength = -1;\n\n /**\n * Defines the most negative value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#min\n * @attribute\n */\n @property({ type: String }) min = '';\n\n /**\n * The minimum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength\n * @attribute\n */\n @property({ type: Number }) minLength = -1;\n\n /**\n * A regular expression that the text field's value must match to pass\n * constraint validation.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#pattern\n * @attribute\n */\n @property({ type: String }) pattern = '';\n\n /**\n * @attribute\n */\n @property({ type: String }) placeholder = '';\n\n /**\n * Indicates whether or not a user should be able to edit the text field's\n * value.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#readonly\n * \n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Bind the `<input>`'s `autocomplete` property.\n * @default off\n * @attribute\n */\n @property({ type: String }) autocomplete: SupportedAutocomplete = 'off';\n\n /**\n * Binds this to the `<input>`'s `inputMode` property.\n * @attribute\n */\n @property({ type: String }) override inputMode = '';\n\n /**\n * Binds this to the `<input>`'s `autocapitalize` property.\n *\n * Possible values are:\n *\n * - `off` or `none`: No autocapitalization is applied (all letters default to lowercase)\n * - `on` or `sentences`: The first letter of each sentence defaults to a capital letter;\n * all other letters default to lowercase\n * - `words`: The first letter of each word defaults to a capital letter; all other letters default to lowercase\n * - `characters`: All letters should default to uppercase\n *\n * @default off\n * @attr\n */\n override autocapitalize: SupportedAutocapitalize = 'off';\n\n /**\n * Binds this to the `<input>`'s `autocorrect` property.\n * @default off\n * @attribute\n */\n @property({ type: String }) autocorrect = 'off';\n\n /**\n * Binds this to the `<input>`'s `results` property,\n * used with type=search.\n *\n * The maximum number of items that should be displayed in the\n * drop-down list of previous search queries. Safari only.\n * @attribute\n */\n @property({ type: Number }) results?: number;\n\n /**\n * Binds this to the `<input>`'s `accept` property,\n * used with type=file.\n * @attribute\n */\n @property({ type: String }) accept?: string;\n\n /**\n * Binds this to the`<input>`'s `multiple` property,\n * used with type=file.\n * @attribute\n */\n @property({ type: Boolean }) multiple?: boolean;\n\n /**\n * Binds this to the `<input>`'s `size` property.\n * @attribute\n */\n @property({ type: Number }) size?: number;\n\n protected pendingSetters = new Map<keyof HTMLInputElement, unknown>();\n\n private setNativeValue(key: keyof HTMLInputElement, value: unknown): void {\n const { input } = this;\n if (input) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (input as any)[key] = value;\n } else {\n this.pendingSetters.set(key, value);\n }\n }\n\n private getNativeValue(key: keyof HTMLInputElement): unknown {\n const { input } = this;\n if (input) {\n return input[key];\n }\n return this.pendingSetters.get(key) || null;\n }\n\n /**\n * Gets or sets the direction in which selection occurred.\n */\n get selectionDirection(): 'forward' | 'backward' | 'none' | null {\n return this.getNativeValue('selectionDirection') as 'forward' | 'backward' | 'none' | null;\n }\n\n set selectionDirection(value: 'forward' | 'backward' | 'none' | null) {\n this.setNativeValue('selectionDirection', value);\n }\n\n /**\n * Gets or sets the end position or offset of a text selection.\n */\n get selectionEnd(): number | null {\n return this.getNativeValue('selectionEnd') as number | null;\n }\n\n set selectionEnd(value: number | null) {\n this.setNativeValue('selectionEnd', value);\n }\n\n /**\n * Gets or sets the starting position or offset of a text selection.\n */\n get selectionStart(): number | null {\n return this.getNativeValue('selectionStart') as number | null;\n }\n\n set selectionStart(value: number | null) {\n this.setNativeValue('selectionStart', value);\n }\n\n /**\n * Returns or sets the element's step attribute, which works with min and max\n * to limit the increments at which a numeric or date-time value can be set.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n * @attribute\n */\n @property({ type: String }) step = '';\n\n /**\n * Returns the native validation error message that would be displayed upon\n * calling `reportValidity()`.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validationMessage\n */\n get validationMessage(): string {\n return this.getNativeValue('validationMessage') as string | null ?? '';\n }\n\n /**\n * Returns a ValidityState object that represents the validity states of the\n * text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validity\n */\n get validity(): ValidityState {\n return this.getNativeValue('validity') as ValidityState | null ?? this.#_internals.validity;\n }\n\n /**\n * The text field's value as a number.\n */\n get valueAsNumber(): number {\n return this.getNativeValue('valueAsNumber') as number | null ?? 0;\n }\n \n set valueAsNumber(value: number) {\n this.setNativeValue('valueAsNumber', value);\n }\n\n /**\n * The text field's value as a Date.\n */\n get valueAsDate(): Date | null {\n return this.getNativeValue('valueAsDate') as Date | null;\n }\n\n set valueAsDate(value: Date | null) {\n this.setNativeValue('valueAsDate', value);\n }\n\n /**\n * Returns whether an element will successfully validate based on forms\n * validation rules and constraints.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/willValidate\n */\n get willValidate(): boolean {\n return this.getNativeValue('willValidate') as boolean | null ?? false;\n }\n\n /**\n * Returns true when the text field has been interacted with. Native\n * validation errors only display in response to user interactions.\n */\n @state() protected dirty = false;\n\n @state() protected focused = false;\n\n @query('.input') protected readonly input?: HTMLInputElement | null;\n\n @queryAssignedElements({ slot: 'prefix' }) private readonly prefixes!: Element[];\n\n @queryAssignedElements({ slot: 'suffix' }) private readonly suffixes!: Element[];\n\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n @state() protected nativeErrorText = '';\n\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n @state() protected nativeError = false;\n\n private readonly counterId = 'counter';\n\n private readonly supportingTextId = 'support';\n\n private readonly labelId = 'support';\n\n @property({ type: String, attribute: 'data-aria-autocomplete', noAccessor: true })\n override ariaAutoComplete: ARIAAutoComplete | null = null;\n\n @property({ type: String, attribute: 'data-aria-controls', noAccessor: true })\n ariaControls: string | null = null;\n\n @property({ type: String, attribute: 'data-aria-activedescendant', noAccessor: true })\n ariaActiveDescendant: string | null = null;\n\n @property({ type: String, attribute: 'data-aria-expanded', noAccessor: true })\n override ariaExpanded: ARIAExpanded | null = null;\n\n /**\n * The `aria-label` of the text field's input.\n */\n @property({ type: String, attribute: 'data-aria-label', noAccessor: true })\n override ariaLabel!: string;\n\n /**\n * The `aria-labelledby` of the text field's input.\n *\n * Note: currently only usable in SSR light DOM.\n */\n @property({ type: String, attribute: 'data-aria-labelledby', noAccessor: true })\n ariaLabelledBy!: string;\n\n @property({ type: String, attribute: 'data-role', noAccessor: true })\n dataRole: ARIARole | null = null;\n\n /**\n * When set to true, the error text's `role=\"alert\"` will be removed, then\n * re-added after an animation frame. This will re-announce an error message\n * to screen readers.\n */\n @state() protected refreshErrorAlert = false;\n\n /** \n * When set is shows password in the `password` input.\n * This is private so the password can be viewed only through user interaction.\n */\n #showPassword = false;\n\n protected removingTabindex = false;\n\n get files(): FileList | null {\n return this.getNativeValue('files') as FileList | null;\n }\n\n /**\n * When set it adds a `<datalist>` element to the input.\n */\n @property({ type: Array }) list?: string[];\n\n constructor() {\n super();\n this.type = 'text';\n this.#_userInteracted = false;\n this.actionController.cancelKeyboardEvents = false;\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('tabindex') && !this.disabled) {\n this.setAttribute('tabindex', '0');\n }\n this.handleSlotChange();\n }\n\n /**\n * When form-associated custom elements are supported in the browser it\n * is called when the form has been reset\n */\n formResetCallback(): void {\n this.value = '';\n }\n\n /**\n * When form-associated custom elements are supported in the browser it\n * is called when the form state has been restored\n *\n * @param formState Restored value\n */\n formStateRestoreCallback(formState?: string): void {\n this.value = formState ?? '';\n }\n\n protected override updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n this._updateFormValue();\n }\n if (this.refreshErrorAlert) {\n // The past render cycle removed the role=\"alert\" from the error message.\n // Re-add it after an animation frame to re-announce the error.\n requestAnimationFrame(() => {\n this.refreshErrorAlert = false;\n });\n }\n }\n\n protected _updateFormValue(): void {\n const { value = '', disabled } = this;\n if (!value || disabled) {\n this.#_internals.setFormValue(null);\n } else {\n this.#_internals.setFormValue(value);\n }\n this._updateValidationState();\n }\n\n protected _updateValidationState(): void {\n const { input } = this;\n if (!input) {\n return;\n }\n const { validationMessage, validity } = input;\n if (!validity.valid) {\n this.#_internals.setValidity({\n valueMissing: validity.valueMissing,\n badInput: validity.badInput,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n customError: validity.customError,\n }, validationMessage);\n return;\n }\n\n this.#_internals.setValidity({});\n }\n\n protected invalidHandler(e: Event): void {\n this.retargetEvent(e);\n if (!this.#_userInteracted) {\n return;\n }\n this.invalid = true;\n }\n\n protected handleSlotChange(): void {\n this.hasPrefix = this.prefixes.length > 0;\n this.hasSuffix = this.suffixes.length > 0;\n }\n\n protected getInputValue(): string {\n return this.value || '';\n }\n\n /**\n * Checks the text field's native validation and returns whether or not the\n * element is valid.\n *\n * If invalid, this method will dispatch the `invalid` event.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity\n *\n * @return true if the text field is valid, or false if not.\n */\n checkValidity(): boolean {\n this.#_userInteracted = true;\n const { valid } = this.checkValidityAndDispatch();\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Focuses the text field's input text.\n */\n override focus(): void {\n if (this.disabled || this.matches(':focus-within')) {\n return;\n }\n this.input?.focus();\n }\n\n /**\n * Unfocuses the text field.\n */\n override blur(): void {\n this.input?.blur();\n }\n\n /**\n * Checks the text field's native validation and returns whether or not the\n * element is valid.\n *\n * If invalid, this method will dispatch the `invalid` event.\n *\n * This method will display or clear an error text message equal to the text\n * field's `validationMessage`, unless the invalid event is canceled.\n *\n * Use `setCustomValidity()` to customize the `validationMessage`.\n *\n * This method can also be used to re-announce error messages to screen\n * readers.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity\n *\n * @return true if the text field is valid, or false if not.\n */\n reportValidity(): boolean {\n this.#_userInteracted = true;\n const { valid, canceled } = this.checkValidityAndDispatch();\n this._updateValidationState();\n if (!canceled) {\n this.invalid = !valid;\n const prevMessage = this.getErrorText();\n this.nativeError = !valid;\n this.nativeErrorText = this.validationMessage;\n\n const needsRefresh = this.shouldErrorAnnounce() && prevMessage === this.getErrorText();\n if (needsRefresh) {\n this.refreshErrorAlert = true;\n }\n }\n\n return valid;\n }\n\n protected shouldErrorAnnounce(): boolean {\n // Announce if there is an error and error text visible.\n // If refreshErrorAlert is true, do not announce. This will remove the\n // role=\"alert\" attribute. Another render cycle will happen after an\n // animation frame to re-add the role.\n return this.getError() && !!this.getErrorText() && !this.refreshErrorAlert;\n }\n\n protected getErrorText(): string {\n return this.invalid ? this.invalidText : this.nativeErrorText;\n }\n\n /**\n * Selects all the text in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select\n */\n select(): void {\n this.input?.select();\n }\n\n /**\n * Sets the text field's native validation error message. This is used to\n * customize `validationMessage`.\n *\n * When the error is not an empty string, the text field is considered invalid\n * and `validity.customError` will be true.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setCustomValidity\n *\n * @param error The error message to display.\n */\n setCustomValidity(error: string): void {\n this.input?.setCustomValidity(error);\n }\n\n /**\n * Replaces a range of text with a new string.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setRangeText\n */\n setRangeText(replacement: string): void;\n\n setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\n\n setRangeText(...args: unknown[]): void {\n const { input } = this;\n if (!input) {\n return;\n }\n // Calling setRangeText with 1 vs 3-4 arguments has different behavior.\n // Use spread syntax and type casting to ensure correct usage.\n input.setRangeText(...args as Parameters<HTMLInputElement['setRangeText']>);\n this.value = input.value;\n }\n\n /**\n * Sets the start and end positions of a selection in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n *\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n * @param direction The direction in which the selection is performed.\n */\n setSelectionRange(start: number | null, end: number | null, direction?: 'forward' | 'backward' | 'none'): void {\n this.input?.setSelectionRange(start, end, direction);\n }\n\n /**\n * Decrements the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepDown\n *\n * @param stepDecrement The number of steps to decrement, defaults to 1.\n */\n stepDown(stepDecrement?: number): void {\n const { input } = this;\n if (!input) {\n return;\n }\n input.stepDown(stepDecrement);\n this.value = input.value;\n }\n\n /**\n * Increments the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepUp\n *\n * @param stepIncrement The number of steps to increment, defaults to 1.\n */\n stepUp(stepIncrement?: number): void {\n const { input } = this;\n if (!input) {\n return;\n }\n input.stepUp(stepIncrement);\n this.value = input.value;\n }\n\n /**\n * Reset the text field to its default value.\n */\n reset(): void {\n this.dirty = false;\n this.value = '';\n }\n\n override handleClick(): void {\n this.focus();\n }\n\n protected handleFocus(): void {\n const { input } = this;\n if (this.disabled || !input) {\n return;\n }\n this.focused = true;\n this.#_userInteracted = true;\n this.removingTabindex = true;\n // Note, the input is automatically focused when form is being submitted and\n // it won't pass validation. In this case the form will throw an error \n // as the input is not focusable. In overall, this still works with forms and validation.\n this.dataset.tabindex = this.getAttribute('tabindex') || '0';\n this.removeAttribute('tabindex');\n input.focus();\n setTimeout(() => {\n this.removingTabindex = false;\n }, 1);\n }\n\n protected handleBlur(): void {\n if (this.matches(':focus-within') || this.removingTabindex) {\n // Changing focus to another child within the text field, like a button\n return;\n }\n this.focused = false;\n const index = this.dataset.tabindex || '0';\n delete this.dataset.tabindex;\n this.setAttribute('tabindex', index);\n }\n\n private checkValidityAndDispatch(): { valid: boolean, canceled: boolean } {\n const { input } = this;\n const valid = input?.checkValidity() ?? true;\n let canceled = false;\n if (!valid) {\n canceled = !this.dispatchEvent(new Event('invalid', { cancelable: true }));\n }\n return { valid, canceled };\n }\n\n /**\n * @returns `true` when the label is in resting state.\n */\n protected labelResting(): boolean {\n const { value } = this;\n if (!!value || String(value) === '0') {\n return false;\n }\n if (floatTypes.includes(this.type || '')) {\n return false;\n }\n return !this.placeholder && !this.focused;\n }\n\n /**\n * @returns `true` when the label should be hidden\n */\n protected labelHidden(): boolean {\n const { noFloating } = this;\n return !this.labelResting() && !!noFloating;\n }\n\n protected renderLabelText(): string {\n const labelText = this.label ?? '';\n const optionalAsterisk = this.required && labelText ? '*' : '';\n return labelText + optionalAsterisk;\n }\n\n protected getSupportingText(): string {\n const errorText = this.getErrorText();\n return this.getError() && errorText ? errorText : this.supportingText;\n }\n\n protected getError(): boolean {\n return this.invalid || this.nativeError;\n }\n\n protected retargetEvent(event: Event): boolean {\n if (event.bubbles && (!this.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = this.dispatchEvent(copy);\n if (!dispatched) {\n event.preventDefault();\n }\n\n return dispatched;\n }\n\n protected handleInput(event: InputEvent): void {\n this.dirty = true;\n this.value = (event.target as HTMLInputElement).value;\n this.retargetEvent(event);\n this.reportValidity();\n }\n\n protected hasCounter(): boolean {\n return this.maxLength > -1;\n }\n\n protected getCounterText(): string {\n const { length } = (this.value || '');\n return `${length} / ${this.maxLength || 0}`;\n }\n\n protected getAriaDescribedBy(): string {\n const hasSupport = !!this.getSupportingText();\n const hasCounter = this.hasCounter();\n if (hasSupport) {\n return this.supportingTextId;\n }\n if (hasCounter) {\n return this.counterId;\n }\n return '';\n }\n\n #handlePasswordToggle(): void {\n this.#showPassword = !this.#showPassword;\n this.requestUpdate();\n }\n\n protected get effectiveType(): SupportedInputTypes {\n const { type } = this;\n if (type !== 'password') {\n return type;\n }\n const visible = this.#showPassword;\n return visible ? 'text' : 'password';\n }\n\n protected override render(): TemplateResult {\n const { pressed=false } = this;\n const containerClasses = classMap({\n surface: true,\n pressed,\n labelResting: this.labelResting(),\n labelHidden: this.labelHidden(),\n });\n return html`\n <div class=\"${containerClasses}\">\n <div class=\"container\"></div>\n <div class=\"content\">\n ${this.renderPrefix()}\n ${this.renderBody()}\n ${this.renderPasswordControl()}\n ${this.renderSuffix()}\n ${this.renderHighlight()}\n </div>\n </div>\n ${this.renderSupportingText()}\n ${this.renderDataList()}\n `;\n }\n\n protected renderPrefix(): TemplateResult {\n const classes = classMap({\n start: true,\n prefixed: this.hasPrefix,\n });\n return html`\n <div class=\"${classes}\">\n <slot name=\"prefix\" @slotchange=${this.handleSlotChange}></slot>\n </div>`;\n }\n\n protected renderSuffix(): TemplateResult {\n const classes = classMap({\n end: true,\n suffixed: this.hasSuffix,\n });\n return html`\n <div class=\"${classes}\">\n <slot name=\"suffix\" @slotchange=${this.handleSlotChange}></slot>\n </div>`;\n }\n\n protected renderBody(): TemplateResult {\n return html`\n <div class=\"body\">\n ${this.renderLabel()}\n ${this.renderInput()}\n </div>\n `;\n }\n\n protected renderLabel(): TemplateResult {\n const label = this.renderLabelText();\n if (!label) {\n return html``;\n }\n return html`\n <span class=\"label\" id=\"${this.labelId}\">${this.renderLabelText()}</span>\n `;\n }\n\n protected renderHighlight(): TemplateResult {\n return html`\n <span class=\"highlight\"></span>\n `;\n }\n\n protected abstract renderInput(): TemplateResult;\n\n protected renderSupportingText(): TemplateResult {\n return html`\n <span class=\"supporting-text\">\n ${this.renderSupportingTextValue()}\n ${this.renderCounter()}\n </span>\n `;\n }\n\n protected renderSupportingTextValue(): TemplateResult {\n const text = this.getSupportingText();\n if (!text) {\n return html``;\n }\n const shouldAlert = this.shouldErrorAnnounce();\n return html`\n <span \n class=\"supporting-text-start\" \n id=\"${this.supportingTextId}\" \n role=${ifDefined(shouldAlert ? 'alert' : undefined)}\n >\n ${text}\n </span>\n `;\n }\n\n protected renderCounter(): TemplateResult {\n if (!this.hasCounter()) {\n return html``;\n }\n // TODO: add aria-label and announcements\n return html`<span id=${this.counterId} class=\"supporting-text-end\">${this.getCounterText()}</span>`;\n }\n\n protected renderPasswordControl(): TemplateResult | typeof nothing {\n const { type } = this;\n if (type !== 'password') {\n return nothing;\n }\n const visible = this.#showPassword;\n const icon = visible ? 'visibilityOff' : 'visibility';\n return html`\n <ui-icon-button \n aria-label=\"Toggle password visibility\" \n @click=\"${this.#handlePasswordToggle}\"\n title=\"Shows or hides the password\"\n >\n <ui-icon icon=\"${icon}\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderDataList(): TemplateResult | typeof nothing {\n const { list } = this;\n if (!Array.isArray(list) || !list.length) {\n return nothing;\n }\n return html`\n <datalist id=\"input-list\">\n ${list.map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/ui/input/Input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { SupportedAutocapitalize, SupportedAutocomplete, SupportedInputTypes } from \"../../types/input.js\";\nimport { ARIAAutoComplete, ARIAExpanded, ARIARole } from \"../../types/role.js\";\nimport { isDisabled, setDisabled } from \"../lib/disabled.js\";\nimport { UiElement } from \"../UiElement.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\n\n// export type SupportedInputTypes = \"text\" | \"search\" | \"tel\" | \"url\" | \"email\" | \"password\" | \n// \"datetime\" | \"date\" | \"month\" | \"week\" | \"time\" | \"datetime-local\" | \"number\" | \"color\" | \"file\";\n\nconst floatTypes = [\n 'date',\n 'color',\n 'datetime-local',\n 'file',\n 'month',\n 'time',\n 'week',\n];\n\n/**\n * @slot prefix - A slot in which to render prefixes of the input\n * @slot suffix - A slot in which to render suffixes of the input\n */\nexport default abstract class Input extends UiElement {\n #_userInteracted: boolean;\n\n // static override shadowRootOptions: ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n static get formAssociated(): boolean {\n return true;\n }\n\n #_internals = this.attachInternals();\n\n get form(): HTMLFormElement | null {\n return this.#_internals && this.#_internals.form;\n }\n\n /**\n * @attribute\n */\n @property({type: String, reflect: true}) type: SupportedInputTypes;\n\n /**\n * Disables the input.\n * @attribute\n */\n get disabled(): boolean {\n return isDisabled(this);\n }\n\n @property({ reflect: true, type: Boolean })\n set disabled(value: boolean) {\n const old = isDisabled(this);\n setDisabled(this, value);\n this.requestUpdate('disabled', old);\n this._updateFormValue();\n if (value) {\n this.dataset.tabindex = this.getAttribute('tabindex') || '0';\n this.removeAttribute('tabindex');\n } else {\n const index = this.dataset.tabindex || '0';\n this.setAttribute('tabindex', index);\n this.blur();\n }\n }\n\n /**\n * The name of the form control, submitted as a pair with the control's value as part of the form data.\n * @attribute\n */\n @property({ type: String }) name?: string;\n\n /**\n * When a form is submitted, only checkboxes which are currently checked are submitted to the server, \n * and the reported value is the `value` of the value attribute. \n * If the `value` is not otherwise specified, it is the string `on` by default. \n * @attribute\n */\n @property({ type: String }) value = '';\n\n #_required?: boolean;\n\n /**\n * Set to true to mark the input element as required. \n * @attribute\n */\n @property({ reflect: true, type: Boolean })\n get required(): boolean | undefined {\n return this.#_required;\n }\n\n set required(value: boolean | undefined) {\n const old = this.#_required;\n if (old === value) {\n return;\n }\n this.#_required = value;\n this.requestUpdate('required', 'old');\n this._updateFormValue();\n }\n\n /**\n * While the element can be easily styled with the `:valid` and `:invalid` pseudo classes\n * it also exposes an attribute to style the element as invalid. This attribute changes \n * when the element validation is performed.\n * \n * Calling `reportValidity()` will automatically update `invalid`.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * The error message that replaces supporting text when `error` is true. If\n * `errorText` is an empty string, then the supporting text will continue to\n * show.\n *\n * Calling `reportValidity()` will automatically update `errorText` to the\n * native `validationMessage`.\n * @attribute\n */\n @property({ type: String }) invalidText = '';\n\n /**\n * The label to be rendered with the input.\n * @attribute\n */\n @property({ type: String }) label?: string;\n\n /**\n * Whether or not the text field has a leading icon. Used for SSR.\n * @attribute\n */\n @property({ type: Boolean }) hasPrefix = false;\n\n /**\n * Whether or not the text field has a trailing icon. Used for SSR.\n * @attribute\n */\n @property({ type: Boolean }) hasSuffix = false;\n\n /**\n * Conveys additional information below the text field, such as how it should\n * be used.\n * @attribute\n */\n @property({ type: String }) supportingText = '';\n\n /**\n * Override the input text CSS `direction`. Useful for RTL languages that use\n * LTR notation for fractions.\n * @attribute\n */\n @property({ type: String }) textDirection = '';\n\n /**\n * When set the label of the input disappears after input rather than float over the input.\n * @attribute\n */\n @property({ type: Boolean }) noFloating?: boolean;\n\n /**\n * Defines the greatest value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#max\n * @attribute\n */\n @property({ type: String }) max = '';\n\n /**\n * The maximum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength\n * @attribute\n */\n @property({ type: Number }) maxLength = -1;\n\n /**\n * Defines the most negative value in the range of permitted values.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#min\n * @attribute\n */\n @property({ type: String }) min = '';\n\n /**\n * The minimum number of characters a user can enter into the text field. Set\n * to -1 for none.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength\n * @attribute\n */\n @property({ type: Number }) minLength = -1;\n\n /**\n * A regular expression that the text field's value must match to pass\n * constraint validation.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#pattern\n * @attribute\n */\n @property({ type: String }) pattern = '';\n\n /**\n * @attribute\n */\n @property({ type: String }) placeholder = '';\n\n /**\n * Indicates whether or not a user should be able to edit the text field's\n * value.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#readonly\n * \n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Bind the `<input>`'s `autocomplete` property.\n * @default off\n * @attribute\n */\n @property({ type: String }) autocomplete: SupportedAutocomplete = 'off';\n\n /**\n * Binds this to the `<input>`'s `inputMode` property.\n * @attribute\n */\n @property({ type: String }) override inputMode = '';\n\n /**\n * Binds this to the `<input>`'s `autocapitalize` property.\n *\n * Possible values are:\n *\n * - `off` or `none`: No autocapitalization is applied (all letters default to lowercase)\n * - `on` or `sentences`: The first letter of each sentence defaults to a capital letter;\n * all other letters default to lowercase\n * - `words`: The first letter of each word defaults to a capital letter; all other letters default to lowercase\n * - `characters`: All letters should default to uppercase\n *\n * @default off\n * @attr\n */\n override autocapitalize: SupportedAutocapitalize = 'off';\n\n /**\n * Binds this to the `<input>`'s `autocorrect` property.\n * @default off\n * @attribute\n */\n @property({ type: String }) autocorrect = 'off';\n\n /**\n * Binds this to the `<input>`'s `results` property,\n * used with type=search.\n *\n * The maximum number of items that should be displayed in the\n * drop-down list of previous search queries. Safari only.\n * @attribute\n */\n @property({ type: Number }) results?: number;\n\n /**\n * Binds this to the `<input>`'s `accept` property,\n * used with type=file.\n * @attribute\n */\n @property({ type: String }) accept?: string;\n\n /**\n * Binds this to the`<input>`'s `multiple` property,\n * used with type=file.\n * @attribute\n */\n @property({ type: Boolean }) multiple?: boolean;\n\n /**\n * Binds this to the `<input>`'s `size` property.\n * @attribute\n */\n @property({ type: Number }) size?: number;\n\n protected pendingSetters = new Map<keyof HTMLInputElement, unknown>();\n\n private setNativeValue(key: keyof HTMLInputElement, value: unknown): void {\n const { input } = this;\n if (input) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (input as any)[key] = value;\n } else {\n this.pendingSetters.set(key, value);\n }\n }\n\n private getNativeValue(key: keyof HTMLInputElement): unknown {\n const { input } = this;\n if (input) {\n return input[key];\n }\n return this.pendingSetters.get(key) || null;\n }\n\n /**\n * Gets or sets the direction in which selection occurred.\n */\n get selectionDirection(): 'forward' | 'backward' | 'none' | null {\n return this.getNativeValue('selectionDirection') as 'forward' | 'backward' | 'none' | null;\n }\n\n set selectionDirection(value: 'forward' | 'backward' | 'none' | null) {\n this.setNativeValue('selectionDirection', value);\n }\n\n /**\n * Gets or sets the end position or offset of a text selection.\n */\n get selectionEnd(): number | null {\n return this.getNativeValue('selectionEnd') as number | null;\n }\n\n set selectionEnd(value: number | null) {\n this.setNativeValue('selectionEnd', value);\n }\n\n /**\n * Gets or sets the starting position or offset of a text selection.\n */\n get selectionStart(): number | null {\n return this.getNativeValue('selectionStart') as number | null;\n }\n\n set selectionStart(value: number | null) {\n this.setNativeValue('selectionStart', value);\n }\n\n /**\n * Returns or sets the element's step attribute, which works with min and max\n * to limit the increments at which a numeric or date-time value can be set.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n * @attribute\n */\n @property({ type: String }) step = '';\n\n /**\n * Returns the native validation error message that would be displayed upon\n * calling `reportValidity()`.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validationMessage\n */\n get validationMessage(): string {\n return this.getNativeValue('validationMessage') as string | null ?? '';\n }\n\n /**\n * Returns a ValidityState object that represents the validity states of the\n * text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/validity\n */\n get validity(): ValidityState {\n return this.getNativeValue('validity') as ValidityState | null ?? this.#_internals.validity;\n }\n\n /**\n * The text field's value as a number.\n */\n get valueAsNumber(): number {\n return this.getNativeValue('valueAsNumber') as number | null ?? 0;\n }\n \n set valueAsNumber(value: number) {\n this.setNativeValue('valueAsNumber', value);\n }\n\n /**\n * The text field's value as a Date.\n */\n get valueAsDate(): Date | null {\n return this.getNativeValue('valueAsDate') as Date | null;\n }\n\n set valueAsDate(value: Date | null) {\n this.setNativeValue('valueAsDate', value);\n }\n\n /**\n * Returns whether an element will successfully validate based on forms\n * validation rules and constraints.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/willValidate\n */\n get willValidate(): boolean {\n return this.getNativeValue('willValidate') as boolean | null ?? false;\n }\n\n /**\n * Returns true when the text field has been interacted with. Native\n * validation errors only display in response to user interactions.\n */\n @state() protected dirty = false;\n\n @state() protected focused = false;\n\n @query('.input') protected readonly input?: HTMLInputElement | null;\n\n @queryAssignedElements({ slot: 'prefix' }) private readonly prefixes!: Element[];\n\n @queryAssignedElements({ slot: 'suffix' }) private readonly suffixes!: Element[];\n\n /**\n * The validation message displayed from a native error via\n * `reportValidity()`.\n */\n @state() protected nativeErrorText = '';\n\n /**\n * Whether or not a native error has been reported via `reportValidity()`.\n */\n @state() protected nativeError = false;\n\n private readonly counterId = 'counter';\n\n private readonly supportingTextId = 'support';\n\n private readonly labelId = 'support';\n\n @property({ type: String, attribute: 'data-aria-autocomplete', noAccessor: true })\n override ariaAutoComplete: ARIAAutoComplete | null = null;\n\n @property({ type: String, attribute: 'data-aria-controls', noAccessor: true })\n ariaControls: string | null = null;\n\n @property({ type: String, attribute: 'data-aria-activedescendant', noAccessor: true })\n ariaActiveDescendant: string | null = null;\n\n @property({ type: String, attribute: 'data-aria-expanded', noAccessor: true })\n override ariaExpanded: ARIAExpanded | null = null;\n\n /**\n * The `aria-label` of the text field's input.\n */\n @property({ type: String, attribute: 'data-aria-label', noAccessor: true })\n override ariaLabel!: string;\n\n /**\n * The `aria-labelledby` of the text field's input.\n *\n * Note: currently only usable in SSR light DOM.\n */\n @property({ type: String, attribute: 'data-aria-labelledby', noAccessor: true })\n ariaLabelledBy!: string;\n\n @property({ type: String, attribute: 'data-role', noAccessor: true })\n dataRole: ARIARole | null = null;\n\n /**\n * When set to true, the error text's `role=\"alert\"` will be removed, then\n * re-added after an animation frame. This will re-announce an error message\n * to screen readers.\n */\n @state() protected refreshErrorAlert = false;\n\n /** \n * When set is shows password in the `password` input.\n * This is private so the password can be viewed only through user interaction.\n */\n #showPassword = false;\n\n protected removingTabindex = false;\n\n get files(): FileList | null {\n return this.getNativeValue('files') as FileList | null;\n }\n\n /**\n * When set it adds a `<datalist>` element to the input.\n */\n @property({ type: Array }) list?: string[];\n\n constructor() {\n super();\n this.type = 'text';\n this.#_userInteracted = false;\n this.actionController.cancelKeyboardEvents = false;\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('tabindex') && !this.disabled) {\n this.setAttribute('tabindex', '0');\n }\n this.handleSlotChange();\n }\n\n /**\n * When form-associated custom elements are supported in the browser it\n * is called when the form has been reset\n */\n formResetCallback(): void {\n this.value = '';\n }\n\n /**\n * When form-associated custom elements are supported in the browser it\n * is called when the form state has been restored\n *\n * @param formState Restored value\n */\n formStateRestoreCallback(formState?: string): void {\n this.value = formState ?? '';\n }\n\n protected override updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n this._updateFormValue();\n }\n if (this.refreshErrorAlert) {\n // The past render cycle removed the role=\"alert\" from the error message.\n // Re-add it after an animation frame to re-announce the error.\n requestAnimationFrame(() => {\n this.refreshErrorAlert = false;\n });\n }\n }\n\n protected _updateFormValue(): void {\n const { value = '', disabled } = this;\n if (!value || disabled) {\n this.#_internals.setFormValue(null);\n } else {\n this.#_internals.setFormValue(value);\n }\n this._updateValidationState();\n }\n\n protected _updateValidationState(): void {\n const { input } = this;\n if (!input) {\n return;\n }\n const { validationMessage, validity } = input;\n if (!validity.valid) {\n this.#_internals.setValidity({\n valueMissing: validity.valueMissing,\n badInput: validity.badInput,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n customError: validity.customError,\n }, validationMessage);\n return;\n }\n\n this.#_internals.setValidity({});\n }\n\n protected invalidHandler(e: Event): void {\n this.retargetEvent(e);\n if (!this.#_userInteracted) {\n return;\n }\n this.invalid = true;\n }\n\n protected handleSlotChange(): void {\n this.hasPrefix = this.prefixes.length > 0;\n this.hasSuffix = this.suffixes.length > 0;\n }\n\n protected getInputValue(): string {\n return this.value || '';\n }\n\n /**\n * Checks the text field's native validation and returns whether or not the\n * element is valid.\n *\n * If invalid, this method will dispatch the `invalid` event.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity\n *\n * @return true if the text field is valid, or false if not.\n */\n checkValidity(): boolean {\n this.#_userInteracted = true;\n const { valid } = this.checkValidityAndDispatch();\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Focuses the text field's input text.\n */\n override focus(): void {\n if (this.disabled || this.matches(':focus-within')) {\n return;\n }\n this.input?.focus();\n }\n\n /**\n * Unfocuses the text field.\n */\n override blur(): void {\n this.input?.blur();\n }\n\n /**\n * Checks the text field's native validation and returns whether or not the\n * element is valid.\n *\n * If invalid, this method will dispatch the `invalid` event.\n *\n * This method will display or clear an error text message equal to the text\n * field's `validationMessage`, unless the invalid event is canceled.\n *\n * Use `setCustomValidity()` to customize the `validationMessage`.\n *\n * This method can also be used to re-announce error messages to screen\n * readers.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity\n *\n * @return true if the text field is valid, or false if not.\n */\n reportValidity(): boolean {\n this.#_userInteracted = true;\n const { valid, canceled } = this.checkValidityAndDispatch();\n this._updateValidationState();\n if (!canceled) {\n this.invalid = !valid;\n const prevMessage = this.getErrorText();\n this.nativeError = !valid;\n this.nativeErrorText = this.validationMessage;\n\n const needsRefresh = this.shouldErrorAnnounce() && prevMessage === this.getErrorText();\n if (needsRefresh) {\n this.refreshErrorAlert = true;\n }\n }\n\n return valid;\n }\n\n protected shouldErrorAnnounce(): boolean {\n // Announce if there is an error and error text visible.\n // If refreshErrorAlert is true, do not announce. This will remove the\n // role=\"alert\" attribute. Another render cycle will happen after an\n // animation frame to re-add the role.\n return this.getError() && !!this.getErrorText() && !this.refreshErrorAlert;\n }\n\n protected getErrorText(): string {\n return this.invalid ? this.invalidText : this.nativeErrorText;\n }\n\n /**\n * Selects all the text in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select\n */\n select(): void {\n this.input?.select();\n }\n\n /**\n * Sets the text field's native validation error message. This is used to\n * customize `validationMessage`.\n *\n * When the error is not an empty string, the text field is considered invalid\n * and `validity.customError` will be true.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setCustomValidity\n *\n * @param error The error message to display.\n */\n setCustomValidity(error: string): void {\n this.input?.setCustomValidity(error);\n }\n\n /**\n * Replaces a range of text with a new string.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setRangeText\n */\n setRangeText(replacement: string): void;\n\n setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\n\n setRangeText(...args: unknown[]): void {\n const { input } = this;\n if (!input) {\n return;\n }\n // Calling setRangeText with 1 vs 3-4 arguments has different behavior.\n // Use spread syntax and type casting to ensure correct usage.\n input.setRangeText(...args as Parameters<HTMLInputElement['setRangeText']>);\n this.value = input.value;\n }\n\n /**\n * Sets the start and end positions of a selection in the text field.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n *\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n * @param direction The direction in which the selection is performed.\n */\n setSelectionRange(start: number | null, end: number | null, direction?: 'forward' | 'backward' | 'none'): void {\n this.input?.setSelectionRange(start, end, direction);\n }\n\n /**\n * Decrements the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepDown\n *\n * @param stepDecrement The number of steps to decrement, defaults to 1.\n */\n stepDown(stepDecrement?: number): void {\n const { input } = this;\n if (!input) {\n return;\n }\n input.stepDown(stepDecrement);\n this.value = input.value;\n }\n\n /**\n * Increments the value of a numeric type text field by `step` or `n` `step`\n * number of times.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/stepUp\n *\n * @param stepIncrement The number of steps to increment, defaults to 1.\n */\n stepUp(stepIncrement?: number): void {\n const { input } = this;\n if (!input) {\n return;\n }\n input.stepUp(stepIncrement);\n this.value = input.value;\n }\n\n /**\n * Reset the text field to its default value.\n */\n reset(): void {\n this.dirty = false;\n this.value = '';\n }\n\n override handleClick(): void {\n this.focus();\n }\n\n protected handleFocus(): void {\n const { input } = this;\n if (this.disabled || !input) {\n return;\n }\n this.focused = true;\n this.#_userInteracted = true;\n this.removingTabindex = true;\n // Note, the input is automatically focused when form is being submitted and\n // it won't pass validation. In this case the form will throw an error \n // as the input is not focusable. In overall, this still works with forms and validation.\n this.dataset.tabindex = this.getAttribute('tabindex') || '0';\n this.removeAttribute('tabindex');\n input.focus();\n setTimeout(() => {\n this.removingTabindex = false;\n }, 1);\n }\n\n protected handleBlur(): void {\n if (this.matches(':focus-within') || this.removingTabindex) {\n // Changing focus to another child within the text field, like a button\n return;\n }\n this.focused = false;\n const index = this.dataset.tabindex || '0';\n delete this.dataset.tabindex;\n this.setAttribute('tabindex', index);\n }\n\n private checkValidityAndDispatch(): { valid: boolean, canceled: boolean } {\n const { input } = this;\n const valid = input?.checkValidity() ?? true;\n let canceled = false;\n if (!valid) {\n canceled = !this.dispatchEvent(new Event('invalid', { cancelable: true }));\n }\n return { valid, canceled };\n }\n\n /**\n * @returns `true` when the label is in resting state.\n */\n protected labelResting(): boolean {\n const { value } = this;\n if (!!value || String(value) === '0') {\n return false;\n }\n if (floatTypes.includes(this.type || '')) {\n return false;\n }\n return !this.placeholder && !this.focused;\n }\n\n /**\n * @returns `true` when the label should be hidden\n */\n protected labelHidden(): boolean {\n const { noFloating } = this;\n return !this.labelResting() && !!noFloating;\n }\n\n protected renderLabelText(): string {\n const labelText = this.label ?? '';\n const optionalAsterisk = this.required && labelText ? '*' : '';\n return labelText + optionalAsterisk;\n }\n\n protected getSupportingText(): string {\n const errorText = this.getErrorText();\n return this.getError() && errorText ? errorText : this.supportingText;\n }\n\n protected getError(): boolean {\n return this.invalid || this.nativeError;\n }\n\n protected retargetEvent(event: Event): boolean {\n if (event.bubbles && (!this.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = this.dispatchEvent(copy);\n if (!dispatched) {\n event.preventDefault();\n }\n\n return dispatched;\n }\n\n protected handleInput(event: InputEvent): void {\n this.dirty = true;\n this.value = (event.target as HTMLInputElement).value;\n this.retargetEvent(event);\n this.reportValidity();\n }\n\n protected hasCounter(): boolean {\n return this.maxLength > -1;\n }\n\n protected getCounterText(): string {\n const { length } = (this.value || '');\n return `${length} / ${this.maxLength || 0}`;\n }\n\n protected getAriaDescribedBy(): string {\n const hasSupport = !!this.getSupportingText();\n const hasCounter = this.hasCounter();\n if (hasSupport) {\n return this.supportingTextId;\n }\n if (hasCounter) {\n return this.counterId;\n }\n return '';\n }\n\n #handlePasswordToggle(): void {\n this.#showPassword = !this.#showPassword;\n this.requestUpdate();\n }\n\n protected get effectiveType(): SupportedInputTypes {\n const { type } = this;\n if (type !== 'password') {\n return type;\n }\n const visible = this.#showPassword;\n return visible ? 'text' : 'password';\n }\n\n protected override render(): TemplateResult {\n const { pressed=false } = this;\n const containerClasses = classMap({\n surface: true,\n pressed,\n labelResting: this.labelResting(),\n labelHidden: this.labelHidden(),\n });\n return html`\n <div class=\"${containerClasses}\">\n <div class=\"container\"></div>\n <div class=\"content\">\n ${this.renderPrefix()}\n ${this.renderBody()}\n ${this.renderPasswordControl()}\n ${this.renderSuffix()}\n ${this.renderHighlight()}\n </div>\n </div>\n ${this.renderSupportingText()}\n ${this.renderDataList()}\n `;\n }\n\n protected renderPrefix(): TemplateResult {\n const classes = classMap({\n start: true,\n prefixed: this.hasPrefix,\n });\n return html`\n <div class=\"${classes}\">\n <slot name=\"prefix\" @slotchange=${this.handleSlotChange}></slot>\n </div>`;\n }\n\n protected renderSuffix(): TemplateResult {\n const classes = classMap({\n end: true,\n suffixed: this.hasSuffix,\n });\n return html`\n <div class=\"${classes}\">\n <slot name=\"suffix\" @slotchange=${this.handleSlotChange}></slot>\n </div>`;\n }\n\n protected renderBody(): TemplateResult {\n return html`\n <div class=\"body\">\n ${this.renderLabel()}\n ${this.renderInput()}\n </div>\n `;\n }\n\n protected renderLabel(): TemplateResult {\n const label = this.renderLabelText();\n if (!label) {\n return html``;\n }\n return html`\n <span class=\"label\" id=\"${this.labelId}\">${this.renderLabelText()}</span>\n `;\n }\n\n protected renderHighlight(): TemplateResult {\n return html`\n <span class=\"highlight\"></span>\n `;\n }\n\n protected abstract renderInput(): TemplateResult;\n\n protected renderSupportingText(): TemplateResult {\n return html`\n <span class=\"supporting-text\">\n ${this.renderSupportingTextValue()}\n ${this.renderCounter()}\n </span>\n `;\n }\n\n protected renderSupportingTextValue(): TemplateResult {\n const text = this.getSupportingText();\n if (!text) {\n return html``;\n }\n const shouldAlert = this.shouldErrorAnnounce();\n return html`\n <span \n class=\"supporting-text-start\" \n id=\"${this.supportingTextId}\" \n role=${ifDefined(shouldAlert ? 'alert' : undefined)}\n >\n ${text}\n </span>\n `;\n }\n\n protected renderCounter(): TemplateResult {\n if (!this.hasCounter()) {\n return html``;\n }\n // TODO: add aria-label and announcements\n return html`<span id=${this.counterId} class=\"supporting-text-end\">${this.getCounterText()}</span>`;\n }\n\n protected renderPasswordControl(): TemplateResult | typeof nothing {\n const { type } = this;\n if (type !== 'password') {\n return nothing;\n }\n const visible = this.#showPassword;\n const icon = visible ? 'visibilityOff' : 'visibility';\n return html`\n <ui-icon-button \n aria-label=\"Toggle password visibility\" \n @click=\"${this.#handlePasswordToggle}\"\n title=\"Shows or hides the password\"\n >\n <ui-icon icon=\"${icon}\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderDataList(): TemplateResult | typeof nothing {\n const { list } = this;\n if (!Array.isArray(list) || !list.length) {\n return nothing;\n }\n return html`\n <datalist id=\"input-list\">\n ${list.map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `;\n }\n}\n"]}
|
|
@@ -33,19 +33,25 @@ import '../../define/ui/ui-ripple.js';
|
|
|
33
33
|
* The grouping only affects inputs inside the form.
|
|
34
34
|
*/
|
|
35
35
|
export default class RadioElement extends CheckedElement {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
this.selection = new RadioSelectionController(this);
|
|
39
|
+
this.showRipple = false;
|
|
40
|
+
this.getRipple = () => {
|
|
41
|
+
this.showRipple = true;
|
|
42
|
+
return this.ripple;
|
|
43
|
+
};
|
|
44
|
+
this.renderRipple = () => {
|
|
45
|
+
const { disabled } = this;
|
|
46
|
+
return html `<ui-ripple class="ripple" ?disabled="${disabled}"></ui-ripple>`;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
36
49
|
static get styles() {
|
|
37
50
|
return elementStyles;
|
|
38
51
|
}
|
|
39
|
-
selection = new RadioSelectionController(this);
|
|
40
52
|
get _validationError() {
|
|
41
53
|
return 'Please select one of these options.';
|
|
42
54
|
}
|
|
43
|
-
ripple;
|
|
44
|
-
showRipple = false;
|
|
45
|
-
getRipple = () => {
|
|
46
|
-
this.showRipple = true;
|
|
47
|
-
return this.ripple;
|
|
48
|
-
};
|
|
49
55
|
endPress(config) {
|
|
50
56
|
const downConfig = { ...config };
|
|
51
57
|
if (this.checked) {
|
|
@@ -112,10 +118,6 @@ export default class RadioElement extends CheckedElement {
|
|
|
112
118
|
</div>
|
|
113
119
|
`;
|
|
114
120
|
}
|
|
115
|
-
renderRipple = () => {
|
|
116
|
-
const { disabled } = this;
|
|
117
|
-
return html `<ui-ripple class="ripple" ?disabled="${disabled}"></ui-ripple>`;
|
|
118
|
-
};
|
|
119
121
|
}
|
|
120
122
|
__decorate([
|
|
121
123
|
queryAsync('ui-ripple')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioElement.js","sourceRoot":"","sources":["../../../src/ui/input/RadioElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,IAAI,EAAkB,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,8BAA8B,CAAC;AAItC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"RadioElement.js","sourceRoot":"","sources":["../../../src/ui/input/RadioElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { queryAsync, state } from \"lit/decorators.js\";\nimport { when } from 'lit/directives/when.js';\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { RadioSelectionController } from \"../controllers/RadioSelectionController.js\";\nimport CheckedElement from \"./CheckedElement.js\";\nimport elementStyles from './Radio.styles.js';\nimport { ripple } from \"../effects/rippleDirective.js\";\nimport '../../define/ui/ui-ripple.js';\nimport UiRipple from \"../effects/ripple.js\";\nimport { EndPressConfig } from \"../controllers/ActionController.js\";\n\n/**\n * A form-associated radio button.\n * \n * ```html\n * <label>\n * <api-radio name=\"fruit\" value=\"apple\"></api-radio>\n * Apple\n * </label>\n * <label>\n * <api-radio name=\"fruit\" value=\"banana\"></api-radio>\n * Banana\n * </label>\n * <label>\n * <api-radio name=\"fruit\" value=\"mango\"></api-radio>\n * Mango\n * </label>\n * ```\n * \n * The radio supports keyboard navigation as the `<input type=\"radio\"/>` does. \n * Radio buttons are grouped by name. This means if another button with the same name\n * is selected, all other with the same name are deselected. It is possible to use \n * two radio inputs with the same name in different forms in the same document.\n * The grouping only affects inputs inside the form.\n */\nexport default class RadioElement extends CheckedElement {\n static override get styles(): CSSResult | CSSResult[] {\n return elementStyles;\n }\n\n protected selection = new RadioSelectionController(this);\n\n protected override get _validationError(): string {\n return 'Please select one of these options.';\n }\n\n @queryAsync('ui-ripple') protected ripple!: Promise<UiRipple | null>;\n\n @state() protected showRipple = false;\n\n protected readonly getRipple = (): Promise<UiRipple | null> => {\n this.showRipple = true;\n return this.ripple;\n };\n\n override endPress(config: EndPressConfig): void {\n const downConfig: EndPressConfig = { ...config };\n if (this.checked) {\n // prohibits toggling of the radio button.\n downConfig.cancelled = true;\n }\n super.endPress(downConfig);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.selection.clearRequired();\n this.selection.clearTabindex();\n }\n\n override handleClick(e: MouseEvent): void {\n super.handleClick(e);\n this.selection.handleSelection();\n this.focus();\n }\n\n protected override _setChecked(value = false): void {\n if (value) {\n this.selection.handleSelection();\n }\n this._updateFormValue();\n this.setAttribute('aria-checked', String(value));\n }\n\n override async handleKeyDown(e: KeyboardEvent): Promise<void> {\n super.handleKeyDown(e);\n this.selection.handleKeyDown(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.beginPress();\n }\n }\n\n override async handleKeyUp(e: KeyboardEvent): Promise<void> {\n super.handleKeyUp(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.endPress();\n }\n }\n\n protected override async handleFocus(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.beginFocus();\n }\n\n protected override async handleBlur(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.endFocus();\n }\n\n protected override render(): TemplateResult {\n const { pressed=false } = this;\n const surfaceClasses = classMap({\n surface: true,\n pressed,\n });\n return html`\n <div class=\"${surfaceClasses}\" ${ripple(this.getRipple)}>\n <div class=\"container\"></div>\n <div class=\"state\"></div>\n ${when(this.showRipple, this.renderRipple)}\n <div class=\"content\">\n <div class=\"outer\"></div>\n <div class=\"inner\"></div>\n </div>\n </div>\n `;\n }\n\n protected renderRipple = (): TemplateResult => {\n const { disabled } = this;\n return html`<ui-ripple class=\"ripple\" ?disabled=\"${disabled}\"></ui-ripple>`;\n };\n}\n"]}
|
|
@@ -15,24 +15,6 @@ export default class SwitchElement extends CheckedElement {
|
|
|
15
15
|
renderOffIcon() {
|
|
16
16
|
return close;
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
19
|
-
* When true it renders the "on" icon
|
|
20
|
-
* @attribute
|
|
21
|
-
*/
|
|
22
|
-
onIcon;
|
|
23
|
-
/**
|
|
24
|
-
* When true it renders the "off" icon
|
|
25
|
-
* @attribute
|
|
26
|
-
*/
|
|
27
|
-
offIcon;
|
|
28
|
-
/**
|
|
29
|
-
* An instance of the `SVGTemplateResult` passed as a property that describes the `off` icon.
|
|
30
|
-
*/
|
|
31
|
-
offIconInstance;
|
|
32
|
-
/**
|
|
33
|
-
* An instance of the `SVGTemplateResult` passed as a property that describes the `on` icon.
|
|
34
|
-
*/
|
|
35
|
-
onIconInstance;
|
|
36
18
|
/**
|
|
37
19
|
* Whether any icon is rendered.
|
|
38
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchElement.js","sourceRoot":"","sources":["../../../src/ui/input/SwitchElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,IAAI,EAAqC,MAAM,KAAK,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,KAAc,MAAM;QACxB,OAAO,aAAa,CAAC;IACvB,CAAC;IAES,YAAY;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAES,aAAa;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;
|
|
1
|
+
{"version":3,"file":"SwitchElement.js","sourceRoot":"","sources":["../../../src/ui/input/SwitchElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,IAAI,EAAqC,MAAM,KAAK,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,KAAc,MAAM;QACxB,OAAO,aAAa,CAAC;IACvB,CAAC;IAES,YAAY;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAES,aAAa;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAwBD;;OAEG;IACH,IAAc,aAAa;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACtB;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAc,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO,IAAI,CAAA,EAAE,CAAC;SACf;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YAChC,OAAO,cAAc,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;SAC9C;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QACjC,OAAO,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC;IAEkB,MAAM;QACvB,MAAM,EAAE,OAAO,GAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC;YAC9B,OAAO,EAAE,IAAI;YACb,OAAO;YACP,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAA;kBACG,cAAc;;;;;YAKpB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE;;;;KAI1D,CAAC;IACJ,CAAC;IAES,cAAc;QACtB,OAAO,IAAI,CAAA;wBACS,IAAI,CAAC,YAAY;KACpC,CAAC;IACJ,CAAC;CACF;AAjE6C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAMjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAmB;AAKlC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDAAqC;AAKpC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDAAoC","sourcesContent":["import { CSSResult, html, SVGTemplateResult, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport elementStyles from './Switch.styles.js';\nimport CheckedElement from \"./CheckedElement.js\";\nimport { check, close } from '../icons/Icons.js';\n\nexport default class SwitchElement extends CheckedElement {\n static override get styles(): CSSResult | CSSResult[] {\n return elementStyles;\n }\n\n protected renderOnIcon(): SVGTemplateResult {\n return check;\n }\n\n protected renderOffIcon(): SVGTemplateResult {\n return close;\n }\n\n /**\n * When true it renders the \"on\" icon\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) onIcon?: boolean;\n\n /**\n * When true it renders the \"off\" icon\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) offIcon?: boolean;\n\n /**\n * An instance of the `SVGTemplateResult` passed as a property that describes the `off` icon.\n */\n @property({ type: Object }) offIconInstance?: SVGTemplateResult;\n\n /**\n * An instance of the `SVGTemplateResult` passed as a property that describes the `on` icon.\n */\n @property({ type: Object }) onIconInstance?: SVGTemplateResult;\n\n /**\n * Whether any icon is rendered.\n */\n protected get _rendersIcons(): boolean {\n if (this.checked) {\n return !!this.onIcon;\n }\n return !!this.offIcon;\n }\n\n protected get _currentIcon(): SVGTemplateResult | TemplateResult {\n if (!this._rendersIcons) {\n return html``;\n }\n if (this.checked) {\n const { onIconInstance } = this;\n return onIconInstance || this.renderOnIcon();\n }\n const { offIconInstance } = this;\n return offIconInstance || this.renderOffIcon();\n }\n\n protected override render(): TemplateResult {\n const { pressed=false, _rendersIcons } = this;\n const surfaceClasses = classMap({\n surface: true,\n pressed,\n withIcon: _rendersIcons,\n });\n return html`\n <div class=\"${surfaceClasses}\">\n <div class=\"container track\"></div>\n <div class=\"state\"></div>\n <div class=\"content\">\n <div class=\"thumb\">\n ${this._rendersIcons ? this._iconsTemplate() : html``}\n </div>\n </div>\n </div>\n `;\n }\n\n protected _iconsTemplate(): TemplateResult {\n return html`\n <div class=\"icon\">${this._currentIcon}</div>\n `;\n }\n}\n"]}
|
|
@@ -6,21 +6,6 @@ import { live } from "lit/directives/live.js";
|
|
|
6
6
|
import { styleMap } from "lit/directives/style-map.js";
|
|
7
7
|
import Input from "./Input.js";
|
|
8
8
|
export default class TextAreaElement extends Input {
|
|
9
|
-
/**
|
|
10
|
-
* Binds this to the `<textarea>`'s `cols` property.
|
|
11
|
-
* @attr
|
|
12
|
-
*/
|
|
13
|
-
cols;
|
|
14
|
-
/**
|
|
15
|
-
* Binds this to the `<textarea>`'s `rows` property.
|
|
16
|
-
* @attr
|
|
17
|
-
*/
|
|
18
|
-
rows;
|
|
19
|
-
/**
|
|
20
|
-
* Binds this to the `<textarea>`'s `wrap` property.
|
|
21
|
-
* @attr
|
|
22
|
-
*/
|
|
23
|
-
wrap;
|
|
24
9
|
connectedCallback() {
|
|
25
10
|
super.connectedCallback();
|
|
26
11
|
this.setAttribute('aria-multiline', 'true');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAreaElement.js","sourceRoot":"","sources":["../../../src/ui/input/TextAreaElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAa,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"TextAreaElement.js","sourceRoot":"","sources":["../../../src/ui/input/TextAreaElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { StyleInfo, styleMap } from \"lit/directives/style-map.js\";\nimport Input from \"./Input.js\";\n\nexport default class TextAreaElement extends Input {\n /**\n * Binds this to the `<textarea>`'s `cols` property.\n * @attr\n */\n @property({ type: Number })\n cols?: number;\n\n /**\n * Binds this to the `<textarea>`'s `rows` property.\n * @attr\n */\n @property({ type: Number })\n rows?: number;\n\n /**\n * Binds this to the `<textarea>`'s `wrap` property.\n * @attr\n */\n @property({ type: String })\n wrap?: \"soft\" | \"hard\";\n \n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-multiline', 'true');\n }\n\n protected override renderInput(): TemplateResult {\n const placeholderValue = this.placeholder || undefined;\n const maxLengthValue = this.maxLength > -1 ? this.maxLength : undefined;\n const minLengthValue = this.minLength > -1 ? this.minLength : undefined;\n const patternValue = this.pattern || undefined;\n const roleValue = this.dataRole || undefined;\n const stepValue = this.step || undefined;\n const { disabled } = this;\n\n const style: StyleInfo = {};\n if (this.textDirection) {\n style.direction = this.textDirection;\n }\n\n const ariaActiveDescendantValue = this.ariaActiveDescendant || undefined;\n const ariaAutoCompleteValue = this.ariaAutoComplete || undefined;\n const ariaControlsValue = this.ariaControls || undefined;\n const ariaDescribedByValue = this.getAriaDescribedBy() || undefined;\n const ariaExpandedValue = this.ariaExpanded || undefined;\n const ariaLabelValue = this.ariaLabel || this.label || undefined;\n const ariaLabelledByValue = this.ariaLabelledBy || undefined;\n\n return html`\n <textarea\n class=\"input\"\n style=${styleMap(style)}\n name=\"${ifDefined(this.name)}\" \n .value=${live(this.getInputValue())}\n maxlength=${ifDefined(maxLengthValue)}\n minlength=${ifDefined(minLengthValue)}\n pattern=${ifDefined(patternValue)}\n placeholder=${ifDefined(placeholderValue)}\n role=${ifDefined(roleValue as 'textbox')}\n ?disabled=${disabled}\n ?readonly=${this.readOnly}\n ?required=${this.required}\n step=${ifDefined(stepValue as unknown as number)}\n autocomplete=\"${ifDefined(this.autocomplete)}\"\n autocapitalize=\"${ifDefined(this.autocapitalize)}\"\n autocorrect=\"${ifDefined(this.autocorrect)}\"\n inputmode=\"${ifDefined(this.inputMode)}\"\n cols=\"${ifDefined(this.cols)}\"\n rows=\"${ifDefined(this.rows)}\"\n wrap=\"${ifDefined(this.wrap)}\"\n spellcheck=\"${ifDefined(this.spellcheck)}\"\n @change=${this.retargetEvent}\n @input=${this.handleInput}\n @select=${this.retargetEvent}\n @invalid=${this.invalidHandler}\n aria-activedescendant=${ifDefined(ariaActiveDescendantValue)}\n aria-autocomplete=${ifDefined(ariaAutoCompleteValue)}\n aria-controls=${ifDefined(ariaControlsValue)}\n aria-describedby=${ifDefined(ariaDescribedByValue)}\n aria-expanded=${ifDefined(ariaExpandedValue)}\n aria-invalid=${this.getError()}\n aria-label=${ifDefined(ariaLabelValue)}\n aria-labelledby=${ifDefined(ariaLabelledByValue)}\n ></textarea>\n `;\n }\n}\n"]}
|
|
@@ -60,18 +60,13 @@ export default class DividerElement extends LitElement {
|
|
|
60
60
|
}
|
|
61
61
|
`;
|
|
62
62
|
}
|
|
63
|
-
/**
|
|
64
|
-
* The predefined type of the divider.
|
|
65
|
-
* @attribute
|
|
66
|
-
*/
|
|
67
|
-
type;
|
|
68
|
-
/**
|
|
69
|
-
* Whether to render the divider as a horizontal separation.
|
|
70
|
-
* @attribute
|
|
71
|
-
*/
|
|
72
|
-
horizontal = false;
|
|
73
63
|
constructor() {
|
|
74
64
|
super();
|
|
65
|
+
/**
|
|
66
|
+
* Whether to render the divider as a horizontal separation.
|
|
67
|
+
* @attribute
|
|
68
|
+
*/
|
|
69
|
+
this.horizontal = false;
|
|
75
70
|
this.type = DividerType.full;
|
|
76
71
|
}
|
|
77
72
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DividerElement.js","sourceRoot":"","sources":["../../../src/ui/list/DividerElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAa,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU;IACpD,MAAM,KAAc,MAAM;QACxB,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8CT,CAAC;IACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"DividerElement.js","sourceRoot":"","sources":["../../../src/ui/list/DividerElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAa,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU;IACpD,MAAM,KAAc,MAAM;QACxB,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8CT,CAAC;IACJ,CAAC;IAcD;QACE,KAAK,EAAE,CAAC;QAPV;;;WAGG;QACyC,eAAU,GAAG,KAAK,CAAC;QAI7D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,+BAA+B,CAAC;IAC7C,CAAC;CACF;AAhB4C;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAmB;AAMjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAoB","sourcesContent":["import { css, CSSResult, html, LitElement, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nexport enum DividerType {\n 'full' = 'full',\n 'inset' = 'inset',\n 'middle' = 'middle',\n}\n\n/**\n * A divider element.\n */\nexport default class DividerElement extends LitElement {\n static override get styles(): CSSResult | CSSResult[] {\n return css`\n :host {\n display: block;\n margin-top: 8px;\n margin-bottom: 8px;\n\n --ui-divider-padding: 16px;\n --ui-divider-horizontal-separation: 8px;\n }\n\n .container {\n height: 1px;\n width: 100%;\n box-sizing: border-box;\n }\n\n .container::before {\n content: '';\n height: inherit;\n background-color: var(--md-sys-color-outline-variant);\n display: block;\n }\n\n :host([type=\"inset\"]) .container {\n padding-left: var(--ui-divider-padding);\n }\n\n :host([type=\"middle\"]) .container {\n padding-left: var(--ui-divider-padding);\n padding-right: var(--ui-divider-padding);\n }\n\n :host([horizontal]) {\n margin: 0;\n height: 100%;\n }\n\n :host([horizontal]) .container {\n width: 1px;\n height: 100%;\n margin: 0 var(--ui-divider-horizontal-separation);\n }\n\n :host([horizontal][type=\"middle\"]) .container {\n padding: var(--ui-divider-padding) 0 var(--ui-divider-padding) 0;\n }\n `;\n }\n\n /**\n * The predefined type of the divider.\n * @attribute\n */\n @property({ type: String, reflect: true }) type: DividerType;\n\n /**\n * Whether to render the divider as a horizontal separation.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) horizontal = false;\n\n constructor() {\n super();\n this.type = DividerType.full;\n }\n\n protected override render(): TemplateResult {\n return html`<div class=\"container\"></div>`;\n }\n}\n"]}
|
|
@@ -27,53 +27,6 @@ const itemRole = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
|
|
|
27
27
|
* @fires open - An event dispatched when the open state change through a user interaction
|
|
28
28
|
*/
|
|
29
29
|
export default class UiDropdownList extends LitElement {
|
|
30
|
-
triggers;
|
|
31
|
-
dropdowns;
|
|
32
|
-
triggerId = `ui-trigger-${randomString(4)}`;
|
|
33
|
-
menuId = `ui-menu-${randomString(4)}`;
|
|
34
|
-
/**
|
|
35
|
-
* Whether the menu is opened.
|
|
36
|
-
* @attribute
|
|
37
|
-
*/
|
|
38
|
-
open = false;
|
|
39
|
-
/**
|
|
40
|
-
* The vertical (y-axis) alignment of the dropdown content.
|
|
41
|
-
* - top
|
|
42
|
-
* - bottom
|
|
43
|
-
* - middle
|
|
44
|
-
*
|
|
45
|
-
* No value means the natural position according to the box model.
|
|
46
|
-
* @attribute
|
|
47
|
-
*/
|
|
48
|
-
verticalAlign;
|
|
49
|
-
/**
|
|
50
|
-
* The horizontal (x-axis) alignment of the dropdown content.
|
|
51
|
-
* - top
|
|
52
|
-
* - bottom
|
|
53
|
-
* - middle
|
|
54
|
-
*
|
|
55
|
-
* No value means the natural position according to the box model.
|
|
56
|
-
* @attribute
|
|
57
|
-
*/
|
|
58
|
-
horizontalAlign;
|
|
59
|
-
/**
|
|
60
|
-
* Affects the `horizontal` and `vertical` positioning so that the target element does not overlap with the anchor.
|
|
61
|
-
* For example, when the `vertical` align is `top`, the top edge of the target will be rendered at the bottom
|
|
62
|
-
* of the anchor down to the edge of the viewport.
|
|
63
|
-
* @attribute
|
|
64
|
-
*/
|
|
65
|
-
noOverlap;
|
|
66
|
-
/**
|
|
67
|
-
* When set it closes the opened list when registering a click outside the list.
|
|
68
|
-
* @attribute
|
|
69
|
-
*/
|
|
70
|
-
closeOnOutsideClick;
|
|
71
|
-
/**
|
|
72
|
-
* When set it makes the drop-down to match the width of the trigger.
|
|
73
|
-
* Be careful as this may crop the content when the trigger is not wide enough.
|
|
74
|
-
* @attribute
|
|
75
|
-
*/
|
|
76
|
-
matchTriggerWidth;
|
|
77
30
|
/**
|
|
78
31
|
* The first element located in the default slot.
|
|
79
32
|
*/
|
|
@@ -96,9 +49,15 @@ export default class UiDropdownList extends LitElement {
|
|
|
96
49
|
const [content] = dropdowns;
|
|
97
50
|
return content;
|
|
98
51
|
}
|
|
99
|
-
overlayPositioning;
|
|
100
52
|
constructor() {
|
|
101
53
|
super();
|
|
54
|
+
this.triggerId = `ui-trigger-${randomString(4)}`;
|
|
55
|
+
this.menuId = `ui-menu-${randomString(4)}`;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the menu is opened.
|
|
58
|
+
* @attribute
|
|
59
|
+
*/
|
|
60
|
+
this.open = false;
|
|
102
61
|
this.dropdownOpenHandler = this.dropdownOpenHandler.bind(this);
|
|
103
62
|
this.scrollHandler = this.scrollHandler.bind(this);
|
|
104
63
|
this.clickHandler = this.clickHandler.bind(this);
|