@api-client/ui 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/elements/http/http-assertions.html +3 -0
- package/demo/elements/http/http-assertions.ts +1 -1
- package/demo/elements/http/http-flows.html +23 -0
- package/demo/elements/http/http-flows.ts +92 -0
- package/demo/elements/http/index.html +3 -0
- package/demo/pages/http-project/main.ts +5 -6
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
- package/dist/define/http/http-assertions.d.ts +1 -1
- package/dist/define/http/http-assertions.d.ts.map +1 -1
- package/dist/define/http/http-assertions.js +3 -3
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-flows.d.ts +10 -0
- package/dist/define/http/http-flows.d.ts.map +1 -0
- package/dist/define/http/http-flows.js +13 -0
- package/dist/define/http/http-flows.js.map +1 -0
- package/dist/define/ui/ui-divider.d.ts +4 -1
- package/dist/define/ui/ui-divider.d.ts.map +1 -1
- package/dist/define/ui/ui-divider.js +11 -2
- package/dist/define/ui/ui-divider.js.map +1 -1
- package/dist/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -0
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -1
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -1
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -3
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
- package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +0 -3
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
- package/dist/elements/dialog/Rename.d.ts +7 -6
- package/dist/elements/dialog/Rename.d.ts.map +1 -1
- package/dist/elements/dialog/Rename.js +7 -6
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
- package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/SetCookieAction.element.js +173 -0
- package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
- package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
- package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +69 -23
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
- package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/dist/elements/environment/ServerEditor.d.ts +3 -3
- package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
- package/dist/elements/environment/ServerEditor.js +3 -6
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.d.ts +0 -1
- package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +3 -6
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
- package/dist/elements/highlight/Prism.styles.js +12 -5
- package/dist/elements/highlight/Prism.styles.js.map +1 -1
- package/dist/elements/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +10 -16
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
- package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +3 -19
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.d.ts +0 -1
- package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +0 -3
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +3 -5
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.d.ts +0 -4
- package/dist/elements/http/HeadersForm.d.ts.map +1 -1
- package/dist/elements/http/HeadersForm.js +0 -6
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
- package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
- package/dist/elements/http/HttpAssertions.element.js +264 -0
- package/dist/elements/http/HttpAssertions.element.js.map +1 -0
- package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
- package/dist/elements/http/HttpAssertions.styles.js +7 -156
- package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
- package/dist/elements/http/HttpFlows.common.d.ts +3 -0
- package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.common.js +181 -0
- package/dist/elements/http/HttpFlows.common.js.map +1 -0
- package/dist/elements/http/HttpFlows.element.d.ts +97 -0
- package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.element.js +684 -0
- package/dist/elements/http/HttpFlows.element.js.map +1 -0
- package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
- package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.styles.js +28 -0
- package/dist/elements/http/HttpFlows.styles.js.map +1 -0
- package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
- package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
- package/dist/elements/http/HttpFlowsUi.js +1256 -0
- package/dist/elements/http/HttpFlowsUi.js.map +1 -0
- package/dist/elements/http/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +8 -11
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.d.ts +10 -10
- package/dist/elements/http/RequestEditor.d.ts.map +1 -1
- package/dist/elements/http/RequestEditor.js +62 -23
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/UrlInput.d.ts +3 -3
- package/dist/elements/http/UrlInput.d.ts.map +1 -1
- package/dist/elements/http/UrlInput.js +2 -2
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.d.ts +0 -1
- package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +0 -3
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.styles.js +1 -0
- package/dist/elements/layout/SplitView.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
- package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -5
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +0 -1
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +1 -4
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +2 -5
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +5 -5
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +4 -7
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +4 -7
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
- package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +8 -11
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +1 -1
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +22 -3
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +19 -3
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +4 -2
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.js +5 -0
- package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +2 -1
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +14 -15
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/types.d.ts +8 -6
- package/dist/pages/http-project/types.d.ts.map +1 -1
- package/dist/pages/http-project/types.js.map +1 -1
- package/dist/styles/m3/surface.module.d.ts.map +1 -1
- package/dist/styles/m3/surface.module.js +11 -27
- package/dist/styles/m3/surface.module.js.map +1 -1
- package/dist/ui/UiElement.d.ts +4 -0
- package/dist/ui/UiElement.d.ts.map +1 -1
- package/dist/ui/UiElement.js +6 -0
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.js +3 -1
- package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
- package/dist/ui/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +3 -0
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.d.ts.map +1 -1
- package/dist/ui/effects/ripple.js +5 -1
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +3 -2
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +2 -1
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +3 -3
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +1 -1
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
- package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.element.js +39 -0
- package/dist/ui/list/UiDivider.element.js.map +1 -0
- package/dist/ui/list/UiDivider.styles.d.ts +3 -0
- package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.styles.js +49 -0
- package/dist/ui/list/UiDivider.styles.js.map +1 -0
- package/dist/ui/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +42 -13
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/package.json +1 -1
- package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
- package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
- package/src/define/http/http-assertions.ts +3 -3
- package/src/define/http/http-flows.ts +15 -0
- package/src/define/ui/ui-divider.ts +7 -2
- package/src/elements/ApiElement.ts +7 -0
- package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
- package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
- package/src/elements/amf/ApiRequest.element.ts +1 -1
- package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
- package/src/elements/authorization/ui/Authorization.ts +3 -5
- package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
- package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
- package/src/elements/dialog/Rename.ts +8 -7
- package/src/elements/dialog/SetCookieAction.element.ts +183 -0
- package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
- package/src/elements/environment/EnvironmentEditor.ts +81 -22
- package/src/elements/environment/ServerEditor.ts +4 -8
- package/src/elements/environment/VariablesEditor.ts +3 -7
- package/src/elements/highlight/Prism.styles.ts +12 -5
- package/src/elements/http/BodyEditor.ts +10 -17
- package/src/elements/http/BodyMultipartEditor.ts +3 -20
- package/src/elements/http/BodyTextEditor.ts +0 -4
- package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
- package/src/elements/http/HeadersForm.ts +2 -9
- package/src/elements/http/HttpAssertions.element.ts +286 -0
- package/src/elements/http/HttpAssertions.styles.ts +7 -156
- package/src/elements/http/HttpFlows.common.ts +181 -0
- package/src/elements/http/HttpFlows.element.ts +722 -0
- package/src/elements/http/HttpFlows.styles.ts +29 -0
- package/src/elements/http/HttpFlowsUi.ts +1327 -0
- package/src/elements/http/RequestConfigElement.ts +10 -14
- package/src/elements/http/RequestEditor.ts +77 -35
- package/src/elements/http/UrlInput.ts +6 -6
- package/src/elements/http/UrlParamsForm.ts +2 -6
- package/src/elements/layout/SplitView.styles.ts +1 -0
- package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
- package/src/elements/project/HttpProjectRequest.ts +16 -5
- package/src/elements/project/ProjectRunner.ts +3 -7
- package/src/elements/schema-design/AssociationFormElement.ts +4 -8
- package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
- package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
- package/src/elements/schema-design/EntityFormElement.ts +6 -10
- package/src/elements/schema-design/PropertyFormElement.ts +11 -15
- package/src/pages/ApplicationScreen.ts +1 -1
- package/src/pages/api-client/ApiClient.styles.ts +22 -3
- package/src/pages/api-client/Authenticate.screen.ts +19 -3
- package/src/pages/api-client/StoreConfig.screen.ts +4 -2
- package/src/pages/api-client/StoreConfig.styles.ts +5 -0
- package/src/pages/api-client/pages/Files.page.ts +2 -1
- package/src/pages/http-project/HttpProject.screen.ts +14 -26
- package/src/pages/http-project/types.ts +8 -6
- package/src/styles/m3/surface.module.ts +11 -27
- package/src/styles/m3/theme.css +36 -0
- package/src/styles/m3/tokens.css +11 -0
- package/src/ui/UiElement.ts +7 -0
- package/src/ui/button/SegmentedButton.styles.ts +3 -1
- package/src/ui/dialog/UiDialog.ts +3 -0
- package/src/ui/effects/ripple.ts +6 -1
- package/src/ui/icons/Icons.ts +3 -2
- package/src/ui/input/CheckedElement.ts +3 -3
- package/src/ui/input/Input.ts +1 -1
- package/src/ui/list/UiDivider.element.ts +41 -0
- package/src/ui/list/UiDivider.styles.ts +49 -0
- package/src/ui/tabs/UiTabs.ts +55 -13
- package/test/amf/authorization/OAuth2Method.test.ts +1 -1
- package/test/elements/http/HttpAssertions.test.ts +5 -6
- package/test/elements/http/HttpFlows.test.ts +485 -0
- package/dist/elements/http/HttpAssertions.d.ts +0 -114
- package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
- package/dist/elements/http/HttpAssertions.js +0 -1146
- package/dist/elements/http/HttpAssertions.js.map +0 -1
- package/dist/elements/http/internals.d.ts +0 -150
- package/dist/elements/http/internals.d.ts.map +0 -1
- package/dist/elements/http/internals.js +0 -150
- package/dist/elements/http/internals.js.map +0 -1
- package/dist/ui/list/DividerElement.d.ts.map +0 -1
- package/dist/ui/list/DividerElement.js +0 -82
- package/dist/ui/list/DividerElement.js.map +0 -1
- package/src/elements/http/HttpAssertions.ts +0 -1187
- package/src/elements/http/internals.ts +0 -151
- package/src/http-client/docs/Files.md +0 -28
- package/src/ui/list/DividerElement.ts +0 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlInput.js","sourceRoot":"","sources":["../../../src/elements/http/UrlInput.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable lit-a11y/click-events-have-key-events */\n/**\n @license\nCopyright 2018 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { html, TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { IUrl } from '@api-client/core/build/browser.js';\nimport { sortUrls } from '../../lib/http/Url.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport ApiElement from '../ApiElement.js';\nimport { ElementPositioning } from '../../ui/lib/ElementPositioning.js';\nimport UiList from '../../ui/list/UiList.js';\nimport UiListItem from '../../ui/list/UiListItem.js';\nimport '../../define/ui/ui-listbox.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\n\nconst NAVIGATION_KEYS = {\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n Home: 'Home',\n End: 'End',\n Escape: 'Escape',\n Enter: 'Enter',\n Space: ' ',\n};\n\n/**\n * The request URL editor\n *\n * The element renders an editor for a HTTP request editor.\n * \n * @fires change - When the value change through user interaction. This event does not bubble.\n * @fires requeststateurlchange - When the value change through user interaction. This even bubbles and is cancelable.\n * @fires requestsend - A bubbling event when the user pressed Enter to send the request.\n */\nexport default class UrlInput extends ApiElement {\n /** \n * The current URL value.\n * @attribute\n */\n @property({ type: String }) value = 'http://';\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the URL suggestions are rendered.\n */\n @state() protected suggestionsOpened = false;\n\n @state() protected suggestions?: IUrl[];\n\n @state() protected renderedSuggestions?: IUrl[];\n\n protected previousValue?: string;\n\n protected isFocused = false;\n\n @query('.main-input')\n protected input!: HTMLInputElement;\n\n @query('.suggestions')\n protected suggestionsContainer!: HTMLDivElement;\n\n @query('ui-listbox.url-autocomplete')\n protected suggestionsList!: UiList;\n\n /**\n * Computed positioning styles for the suggestion box.\n */\n protected suggestionStyles?: StyleInfo;\n\n constructor() {\n super();\n this.handleUrlChange = this.handleUrlChange.bind(this);\n this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);\n this.handleHistoryClear = this.handleHistoryClear.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n const { eventsTarget } = this;\n eventsTarget.addEventListener(EventTypes.Http.Request.State.urlChange, this.handleUrlChange);\n eventsTarget.addEventListener(EventTypes.HttpClient.Model.UrlHistory.State.delete, this.handleHistoryDeleted);\n eventsTarget.addEventListener(EventTypes.HttpClient.Model.UrlHistory.State.clear, this.handleHistoryClear);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n const { eventsTarget } = this;\n eventsTarget.removeEventListener(EventTypes.Http.Request.State.urlChange, this.handleUrlChange);\n eventsTarget.removeEventListener(EventTypes.HttpClient.Model.UrlHistory.State.delete, this.handleHistoryDeleted);\n eventsTarget.removeEventListener(EventTypes.HttpClient.Model.UrlHistory.State.clear, this.handleHistoryClear);\n }\n\n /**\n * A handler that is called on input\n */\n protected notifyChange(): void {\n Events.Http.Request.State.urlChange(this.value, this);\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * A handler for the `url-value-changed` event.\n * If this element is not the source of the event then it will update the `value` property.\n * It's to be used besides the Polymer's data binding system.\n */\n protected handleUrlChange(e: Event): void {\n if (e.composedPath()[0] === this || this.readOnly) {\n return;\n }\n const { value } = (e as CustomEvent).detail;\n if (value !== this.value) {\n this.value = value;\n this.dispatchEvent(new Event('change'));\n }\n }\n\n /**\n * Queries the data model for history data and sets the suggestions\n * @param q User query from the input field\n */\n protected async readAutocomplete(q: string): Promise<void> {\n try {\n const value = await Events.HttpClient.Model.UrlHistory.query(q, this);\n this.suggestions = value && value.items.filter(i => !!i).map(i => i.doc);\n } catch (e) {\n this.suggestions = undefined;\n }\n }\n\n /**\n * Validates the element.\n */\n checkValidity(): boolean {\n const element = this.input;\n if (!element) {\n return true;\n }\n return element.validity.valid;\n }\n\n /**\n * @param e A handler for either main input or the details editor value change\n */\n protected handleInput(e: Event): void {\n if (this.readOnly) {\n return;\n }\n const node = e.target as HTMLInputElement;\n this.previousValue = this.value;\n this.value = node.value;\n this.renderSuggestions();\n }\n \n protected handleInputChange(): void {\n if (this.readOnly) {\n return;\n }\n this.notifyChange();\n }\n\n protected handlerFocusBlur(e: Event): void {\n this.isFocused = e.type === 'focus';\n // this.requestUpdate();\n if (this.isFocused && !this.suggestionsOpened) {\n this.renderSuggestions();\n } else if (!this.isFocused && this.suggestionsOpened) {\n // requestAnimationFrame(() => {\n // this.suggestionsOpened = false;\n // });\n }\n }\n\n /**\n * Triggers URL suggestions rendering.\n * If there are suggestions to render this will enable the dropdown.\n */\n async renderSuggestions(): Promise<void> {\n const { value = '' } = this;\n if (this.previousValue && value.startsWith(this.previousValue || '')) {\n this.filterSuggestions();\n return;\n }\n await this.readAutocomplete(value);\n this.filterSuggestions();\n }\n\n /**\n * Performs the query on the current suggestions and, if any, renders them.\n */\n protected async filterSuggestions(): Promise<void> {\n const items = this.suggestions;\n if (!Array.isArray(items) || !items.length) {\n this.toggleSuggestions(false);\n return;\n }\n const { value = '' } = this;\n const q = String(value).toLowerCase();\n const rendered = items.filter(i => i.key.toLowerCase().includes(q));\n if (!rendered.length) {\n this.toggleSuggestions(false);\n return;\n }\n if (rendered.length === 1 && rendered[0].key.toLowerCase() === q) {\n this.toggleSuggestions(false);\n return;\n }\n sortUrls(rendered, q);\n this.renderedSuggestions = rendered;\n this.toggleSuggestions(true);\n this.requestUpdate();\n }\n\n protected toggleSuggestions(opened: boolean): void {\n if (!opened) {\n this.suggestionsOpened = false;\n this.input.focus();\n } else {\n this.suggestionStyles = ElementPositioning.positionOverlay(this.suggestionsContainer, this.input, {\n vertical: 'top',\n noOverlap: true,\n constrain: true,\n matchAnchorWidth: true,\n });\n this.suggestionsOpened = true;\n }\n }\n\n @eventOptions({ capture: true })\n protected handleSuggestionClick(e: Event): void {\n const path = e.composedPath() as HTMLElement[];\n const target = path.find(i => !!i.classList && i.classList.contains('remove-suggestion'));\n if (!target) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n const { key } = target.dataset;\n if (!key) {\n return;\n }\n\n Events.HttpClient.Model.UrlHistory.delete(key, this);\n }\n\n protected handleSuggestionSelect(e: CustomEvent): void {\n const item = e.detail.item as UiListItem;\n const { key } = item.dataset;\n if (!key) {\n return;\n }\n this.selectSuggestion(key);\n }\n\n protected selectSuggestion(key: string): void {\n this.value = key;\n this.toggleSuggestions(false);\n this.notifyChange();\n }\n\n /**\n * Removes all stored history URLs.\n */\n protected clearSuggestionsHandler(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n Events.HttpClient.Model.UrlHistory.clear(this);\n }\n\n \n protected handleHistoryDeleted(e: Event): void {\n const items = this.suggestions;\n if (!Array.isArray(items)) {\n return;\n }\n const url = (e as CustomEvent).detail;\n const index = items.findIndex(i => i.key === url);\n if (index >= 0) {\n items.splice(index, 1);\n }\n if (this.suggestionsOpened && this.renderedSuggestions) {\n const renderedIndex = this.renderedSuggestions.findIndex((i) => i.key === url);\n if (renderedIndex >= 0) {\n this.renderedSuggestions.splice(renderedIndex, 1);\n this.requestUpdate();\n }\n }\n }\n\n protected handleHistoryClear(): void {\n this.suggestions = undefined;\n this.renderedSuggestions = undefined;\n this.toggleSuggestions(false);\n }\n\n /**\n * We handle key events here as we never focus on the list.\n */\n protected handleKeydown(event: KeyboardEvent): void {\n if (Object.values(NAVIGATION_KEYS).indexOf(event.key) === -1) return;\n\n if (event.key === NAVIGATION_KEYS.Escape) {\n this.toggleSuggestions(false);\n } else if (event.key === NAVIGATION_KEYS.ArrowDown) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n this.suggestionsList.highlightNext();\n } else {\n this.filterSuggestions();\n }\n } else if (event.key === NAVIGATION_KEYS.ArrowUp) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n this.suggestionsList.highlightPrevious();\n } else {\n this.filterSuggestions();\n }\n } else if (event.key === NAVIGATION_KEYS.Home) {\n if (this.suggestionsOpened) {\n event.preventDefault();\n this.suggestionsList.highlightFirst();\n }\n } else if (event.key === NAVIGATION_KEYS.End) {\n if (this.suggestionsOpened) {\n event.preventDefault();\n this.suggestionsList.highlightLast();\n }\n } else if (event.key === NAVIGATION_KEYS.Enter) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n const list = this.suggestionsList;\n const item = list.highlightListItem;\n if (item) {\n list.notifySelect(item);\n }\n } else {\n Events.Http.Request.send(this);\n }\n }\n }\n\n override render(): TemplateResult {\n const classes = {\n container: true,\n autocomplete: this.suggestionsOpened,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderInput()}\n ${this.renderAutocomplete()}\n </div>`;\n }\n\n /**\n * @returns A template for the main input element\n */\n protected renderInput(): TemplateResult {\n const { value } = this;\n return html`\n <div class=\"input-wrapper\">\n <input \n .value=\"${value}\" \n class=\"main-input\"\n required\n placeholder=\"Request URL\"\n id=\"mainInput\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n @focus=\"${this.handlerFocusBlur}\"\n @blur=\"${this.handlerFocusBlur}\"\n @input=\"${this.handleInput}\"\n @change=\"${this.handleInputChange}\"\n @keydown=\"${this.handleKeydown}\"\n aria-label=\"The URL value\"\n ?readonly=\"${this.readOnly}\"\n />\n </div>\n `;\n }\n\n /**\n * @returns A template for the autocomplete element\n */\n protected renderAutocomplete(): TemplateResult {\n let opened = this.suggestionsOpened;\n const items = this.renderedSuggestions;\n if (opened && (!items || !items.length)) {\n opened = false;\n }\n const classes = {\n suggestions: true,\n opened,\n };\n return html`\n <div class=\"${classMap(classes)}\" style=\"${styleMap(this.suggestionStyles || {})}\">\n <ui-listbox \n class=\"url-autocomplete\" \n role=\"listbox\" \n aria-label=\"Suggested URLs from your history.\"\n tabindex=\"-1\"\n @select=\"${this.handleSuggestionSelect}\"\n @click=\"${this.handleSuggestionClick}\"\n >\n ${this.renderSuggestionList()}\n </ui-listbox>\n <ui-divider></ui-divider>\n <p class=\"clear-all-history\">\n <span class=\"clear-all-history-label\" @click=\"${this.clearSuggestionsHandler}\">Clear all history</span>\n </p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the suggestions list.\n */\n protected renderSuggestionList(): TemplateResult[] | string {\n const items = this.renderedSuggestions;\n if (!Array.isArray(items) || !items.length) {\n return '';\n }\n return items.map(i => this.renderSuggestionItem(i));\n }\n\n /**\n * @returns The template for an URL suggestion item.\n */\n protected renderSuggestionItem(item: IUrl): TemplateResult {\n const { key } = item;\n return html`\n <ui-list-item \n class=\"suggestion-item\" \n data-key=\"${item.key}\"\n role=\"option\"\n aria-selected=\"false\"\n >\n <div>${key}</div>\n <span \n slot=\"end-text\"\n class=\"remove-suggestion\" \n data-key=\"${key}\"\n >Remove</span>\n </ui-list-item>`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UrlInput.js","sourceRoot":"","sources":["../../../src/elements/http/UrlInput.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable lit-a11y/click-events-have-key-events */\n/**\n @license\nCopyright 2018 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { html, TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport type { IUrl } from '@api-client/core/build/browser.js';\nimport { sortUrls } from '../../lib/http/Url.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport ApiElement from '../ApiElement.js';\nimport { ElementPositioning } from '../../ui/lib/ElementPositioning.js';\nimport type UiList from '../../ui/list/UiList.js';\nimport type UiListItem from '../../ui/list/UiListItem.js';\nimport '../../define/ui/ui-listbox.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\n\nconst NAVIGATION_KEYS = {\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n Home: 'Home',\n End: 'End',\n Escape: 'Escape',\n Enter: 'Enter',\n Space: ' ',\n};\n\n/**\n * The request URL editor\n *\n * The element renders an editor for a HTTP request editor.\n * \n * @fires change - When the value change through user interaction. This event does not bubble.\n * @fires requeststateurlchange - When the value change through user interaction. This even bubbles and is cancelable.\n * @fires requestsend - A bubbling event when the user pressed Enter to send the request.\n */\nexport default class UrlInput extends ApiElement {\n /** \n * The current URL value.\n * @attribute\n */\n @property({ type: String }) value = 'http://';\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the URL suggestions are rendered.\n */\n @state() protected suggestionsOpened = false;\n\n @state() protected suggestions?: IUrl[];\n\n @state() protected renderedSuggestions?: IUrl[];\n\n protected previousValue?: string;\n\n protected isFocused = false;\n\n @query('.main-input')\n protected input!: HTMLInputElement;\n\n @query('.suggestions')\n protected suggestionsContainer!: HTMLDivElement;\n\n @query('ui-listbox.url-autocomplete')\n protected suggestionsList!: UiList;\n\n /**\n * Computed positioning styles for the suggestion box.\n */\n protected suggestionStyles?: StyleInfo;\n\n constructor() {\n super();\n this.handleUrlChange = this.handleUrlChange.bind(this);\n this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);\n this.handleHistoryClear = this.handleHistoryClear.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n const { eventsTarget } = this;\n eventsTarget.addEventListener(EventTypes.Http.Request.State.urlChange, this.handleUrlChange);\n eventsTarget.addEventListener(EventTypes.HttpClient.Model.UrlHistory.State.delete, this.handleHistoryDeleted);\n eventsTarget.addEventListener(EventTypes.HttpClient.Model.UrlHistory.State.clear, this.handleHistoryClear);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n const { eventsTarget } = this;\n eventsTarget.removeEventListener(EventTypes.Http.Request.State.urlChange, this.handleUrlChange);\n eventsTarget.removeEventListener(EventTypes.HttpClient.Model.UrlHistory.State.delete, this.handleHistoryDeleted);\n eventsTarget.removeEventListener(EventTypes.HttpClient.Model.UrlHistory.State.clear, this.handleHistoryClear);\n }\n\n /**\n * A handler that is called on input\n */\n override notifyChange(): void {\n Events.Http.Request.State.urlChange(this.value, this);\n super.notifyChange();\n }\n\n /**\n * A handler for the `url-value-changed` event.\n * If this element is not the source of the event then it will update the `value` property.\n * It's to be used besides the Polymer's data binding system.\n */\n protected handleUrlChange(e: Event): void {\n if (e.composedPath()[0] === this || this.readOnly) {\n return;\n }\n const { value } = (e as CustomEvent).detail;\n if (value !== this.value) {\n this.value = value;\n super.notifyChange();\n }\n }\n\n /**\n * Queries the data model for history data and sets the suggestions\n * @param q User query from the input field\n */\n protected async readAutocomplete(q: string): Promise<void> {\n try {\n const value = await Events.HttpClient.Model.UrlHistory.query(q, this);\n this.suggestions = value && value.items.filter(i => !!i).map(i => i.doc);\n } catch (e) {\n this.suggestions = undefined;\n }\n }\n\n /**\n * Validates the element.\n */\n checkValidity(): boolean {\n const element = this.input;\n if (!element) {\n return true;\n }\n return element.validity.valid;\n }\n\n /**\n * @param e A handler for either main input or the details editor value change\n */\n protected handleInput(e: Event): void {\n if (this.readOnly) {\n return;\n }\n const node = e.target as HTMLInputElement;\n this.previousValue = this.value;\n this.value = node.value;\n this.renderSuggestions();\n }\n \n protected handleInputChange(): void {\n if (this.readOnly) {\n return;\n }\n this.notifyChange();\n }\n\n protected handlerFocusBlur(e: Event): void {\n this.isFocused = e.type === 'focus';\n // this.requestUpdate();\n if (this.isFocused && !this.suggestionsOpened) {\n this.renderSuggestions();\n } else if (!this.isFocused && this.suggestionsOpened) {\n // requestAnimationFrame(() => {\n // this.suggestionsOpened = false;\n // });\n }\n }\n\n /**\n * Triggers URL suggestions rendering.\n * If there are suggestions to render this will enable the dropdown.\n */\n async renderSuggestions(): Promise<void> {\n const { value = '' } = this;\n if (this.previousValue && value.startsWith(this.previousValue || '')) {\n this.filterSuggestions();\n return;\n }\n await this.readAutocomplete(value);\n this.filterSuggestions();\n }\n\n /**\n * Performs the query on the current suggestions and, if any, renders them.\n */\n protected async filterSuggestions(): Promise<void> {\n const items = this.suggestions;\n if (!Array.isArray(items) || !items.length) {\n this.toggleSuggestions(false);\n return;\n }\n const { value = '' } = this;\n const q = String(value).toLowerCase();\n const rendered = items.filter(i => i.key.toLowerCase().includes(q));\n if (!rendered.length) {\n this.toggleSuggestions(false);\n return;\n }\n if (rendered.length === 1 && rendered[0].key.toLowerCase() === q) {\n this.toggleSuggestions(false);\n return;\n }\n sortUrls(rendered, q);\n this.renderedSuggestions = rendered;\n this.toggleSuggestions(true);\n this.requestUpdate();\n }\n\n protected toggleSuggestions(opened: boolean): void {\n if (!opened) {\n this.suggestionsOpened = false;\n this.input.focus();\n } else {\n this.suggestionStyles = ElementPositioning.positionOverlay(this.suggestionsContainer, this.input, {\n vertical: 'top',\n noOverlap: true,\n constrain: true,\n matchAnchorWidth: true,\n });\n this.suggestionsOpened = true;\n }\n }\n\n @eventOptions({ capture: true })\n protected handleSuggestionClick(e: Event): void {\n const path = e.composedPath() as HTMLElement[];\n const target = path.find(i => !!i.classList && i.classList.contains('remove-suggestion'));\n if (!target) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n const { key } = target.dataset;\n if (!key) {\n return;\n }\n\n Events.HttpClient.Model.UrlHistory.delete(key, this);\n }\n\n protected handleSuggestionSelect(e: CustomEvent): void {\n const item = e.detail.item as UiListItem;\n const { key } = item.dataset;\n if (!key) {\n return;\n }\n this.selectSuggestion(key);\n }\n\n protected selectSuggestion(key: string): void {\n this.value = key;\n this.toggleSuggestions(false);\n this.notifyChange();\n }\n\n /**\n * Removes all stored history URLs.\n */\n protected clearSuggestionsHandler(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n Events.HttpClient.Model.UrlHistory.clear(this);\n }\n\n \n protected handleHistoryDeleted(e: Event): void {\n const items = this.suggestions;\n if (!Array.isArray(items)) {\n return;\n }\n const url = (e as CustomEvent).detail;\n const index = items.findIndex(i => i.key === url);\n if (index >= 0) {\n items.splice(index, 1);\n }\n if (this.suggestionsOpened && this.renderedSuggestions) {\n const renderedIndex = this.renderedSuggestions.findIndex((i) => i.key === url);\n if (renderedIndex >= 0) {\n this.renderedSuggestions.splice(renderedIndex, 1);\n this.requestUpdate();\n }\n }\n }\n\n protected handleHistoryClear(): void {\n this.suggestions = undefined;\n this.renderedSuggestions = undefined;\n this.toggleSuggestions(false);\n }\n\n /**\n * We handle key events here as we never focus on the list.\n */\n protected handleKeydown(event: KeyboardEvent): void {\n if (Object.values(NAVIGATION_KEYS).indexOf(event.key) === -1) return;\n\n if (event.key === NAVIGATION_KEYS.Escape) {\n this.toggleSuggestions(false);\n } else if (event.key === NAVIGATION_KEYS.ArrowDown) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n this.suggestionsList.highlightNext();\n } else {\n this.filterSuggestions();\n }\n } else if (event.key === NAVIGATION_KEYS.ArrowUp) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n this.suggestionsList.highlightPrevious();\n } else {\n this.filterSuggestions();\n }\n } else if (event.key === NAVIGATION_KEYS.Home) {\n if (this.suggestionsOpened) {\n event.preventDefault();\n this.suggestionsList.highlightFirst();\n }\n } else if (event.key === NAVIGATION_KEYS.End) {\n if (this.suggestionsOpened) {\n event.preventDefault();\n this.suggestionsList.highlightLast();\n }\n } else if (event.key === NAVIGATION_KEYS.Enter) {\n event.preventDefault();\n if (this.suggestionsOpened) {\n const list = this.suggestionsList;\n const item = list.highlightListItem;\n if (item) {\n list.notifySelect(item);\n }\n } else {\n Events.Http.Request.send(this);\n }\n }\n }\n\n override render(): TemplateResult {\n const classes = {\n container: true,\n autocomplete: this.suggestionsOpened,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderInput()}\n ${this.renderAutocomplete()}\n </div>`;\n }\n\n /**\n * @returns A template for the main input element\n */\n protected renderInput(): TemplateResult {\n const { value } = this;\n return html`\n <div class=\"input-wrapper\">\n <input \n .value=\"${value}\" \n class=\"main-input\"\n required\n placeholder=\"Request URL\"\n id=\"mainInput\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n @focus=\"${this.handlerFocusBlur}\"\n @blur=\"${this.handlerFocusBlur}\"\n @input=\"${this.handleInput}\"\n @change=\"${this.handleInputChange}\"\n @keydown=\"${this.handleKeydown}\"\n aria-label=\"The URL value\"\n ?readonly=\"${this.readOnly}\"\n />\n </div>\n `;\n }\n\n /**\n * @returns A template for the autocomplete element\n */\n protected renderAutocomplete(): TemplateResult {\n let opened = this.suggestionsOpened;\n const items = this.renderedSuggestions;\n if (opened && (!items || !items.length)) {\n opened = false;\n }\n const classes = {\n suggestions: true,\n opened,\n };\n return html`\n <div class=\"${classMap(classes)}\" style=\"${styleMap(this.suggestionStyles || {})}\">\n <ui-listbox \n class=\"url-autocomplete\" \n role=\"listbox\" \n aria-label=\"Suggested URLs from your history.\"\n tabindex=\"-1\"\n @select=\"${this.handleSuggestionSelect}\"\n @click=\"${this.handleSuggestionClick}\"\n >\n ${this.renderSuggestionList()}\n </ui-listbox>\n <ui-divider></ui-divider>\n <p class=\"clear-all-history\">\n <span class=\"clear-all-history-label\" @click=\"${this.clearSuggestionsHandler}\">Clear all history</span>\n </p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the suggestions list.\n */\n protected renderSuggestionList(): TemplateResult[] | string {\n const items = this.renderedSuggestions;\n if (!Array.isArray(items) || !items.length) {\n return '';\n }\n return items.map(i => this.renderSuggestionItem(i));\n }\n\n /**\n * @returns The template for an URL suggestion item.\n */\n protected renderSuggestionItem(item: IUrl): TemplateResult {\n const { key } = item;\n return html`\n <ui-list-item \n class=\"suggestion-item\" \n data-key=\"${item.key}\"\n role=\"option\"\n aria-selected=\"false\"\n >\n <div>${key}</div>\n <span \n slot=\"end-text\"\n class=\"remove-suggestion\" \n data-key=\"${key}\"\n >Remove</span>\n </ui-list-item>`;\n }\n}\n"]}
|
|
@@ -35,7 +35,6 @@ export default class UrlParamsForm extends ApiElement {
|
|
|
35
35
|
protected handleAdd(): void;
|
|
36
36
|
addParameter(): void;
|
|
37
37
|
protected focusLast(): Promise<void>;
|
|
38
|
-
protected notifyChange(): void;
|
|
39
38
|
protected handleOption(e: CustomEvent): void;
|
|
40
39
|
/**
|
|
41
40
|
* Toggles the state between form and text editors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlParamsForm.d.ts","sourceRoot":"","sources":["../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAc,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAG5F,OAAO,UAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"UrlParamsForm.d.ts","sourceRoot":"","sources":["../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAc,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAG5F,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAG1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AACzC,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;;IACnD,SAAS,CAAC,MAAM,eAAyB;IAEzC;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyC,IAAI,UAAS;IAIzD;;;OAGG;IACH,IACI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAOtB;IAEQ,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;cAEnB,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWzD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,YAAY,IAAI,IAAI;cASJ,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB1C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAa5C;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAU3E;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASnC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQrD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAgBxB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAgBxB,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAU1C,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAU3C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAStC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAStC,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;cAOjB,MAAM,IAAI,cAAc;IAO3C,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAwB/C,SAAS,CAAC,YAAY,IAAI,cAAc;IAOxC,SAAS,CAAC,UAAU,IAAI,cAAc;IAetC,SAAS,CAAC,UAAU,IAAI,cAAc;IAQtC,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAM9C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,cAAc;IAM9D,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAWzE,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAYhF,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAa9D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAoB7E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;CAkB/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlParamsForm.js","sourceRoot":"","sources":["../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, PropertyValues, TemplateResult } from \"lit\";\nimport { IUrlParamPart, UrlEncoder, UrlProcessor } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport Input from \"../../ui/input/Input.js\";\nimport SwitchElement from \"../../ui/input/SwitchElement.js\";\n\nexport default class UrlParamsForm extends ApiElement {\n protected parser = new UrlProcessor('/');\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) text = false;\n\n #value = '';\n\n /**\n * The current value of the editor.\n * @attribute\n */\n @property({ type: String })\n get value(): string {\n return this.#value;\n }\n\n set value(value: string) {\n const old = this.#value;\n if (old === value) {\n return;\n }\n this.#value = value;\n this.setupParser(value);\n }\n\n @state() protected textValue?: string;\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n } else {\n this.textValue = undefined;\n }\n }\n super.update(cp);\n }\n \n protected setupParser(value: string): void {\n if (value) {\n this.parser = new UrlProcessor(value);\n } else {\n this.parser = new UrlProcessor('/');\n }\n this.requestUpdate();\n }\n\n protected handleAdd(): void {\n this.addParameter();\n }\n\n addParameter(): void {\n if (this.readOnly) {\n return;\n }\n this.parser.search.append('', '');\n this.requestUpdate();\n this.focusLast();\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.clear();\n } else if (option === 'text-editor') {\n this.toggle();\n }\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text;\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.parser.search.clear();\n this.updateValue();\n this.requestUpdate();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const list = this.parser.search.list();\n list[index][field] = value;\n this.parser.search.update(index, list[index]);\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n this.parser.search.delete(index);\n this.updateValue();\n this.requestUpdate();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n this.parser.search.toggle(index, enabled);\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Encodes all parameters.\n */\n encodeProperties(): void {\n const { search } = this.parser;\n const list = search.list();\n list.forEach((part, index) => {\n part.name = UrlEncoder.encodeQueryString(part.name, true);\n part.value = UrlEncoder.encodeQueryString(part.value, true);\n search.update(index, part);\n });\n // TODO: UrlEncoder.decodeQueryString(part, false) on each path segment\n this.requestUpdate();\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Decodes all parameters.\n */\n decodeProperties(): void {\n const { search } = this.parser;\n const list = search.list();\n list.forEach((part, index) => {\n part.name = UrlEncoder.decodeQueryString(part.name, true);\n part.value = UrlEncoder.decodeQueryString(part.value, true);\n search.update(index, part);\n });\n // TODO: UrlEncoder.encodeQueryString(part, false) on each path segment\n this.requestUpdate();\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n protected updateValue(): void {\n this.#value = this.parser.toString();\n this.notifyChange();\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n protected handleEncode(): void {\n this.encodeProperties();\n }\n\n protected handleDecode(): void {\n this.decodeProperties();\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement;\n const { value } = input;\n this.parser.search.fromParamsString(value);\n this.updateValue();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n ${this.renderEditor()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\">Add</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleEncode}\">URL encode</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleDecode}\">URL decode</ui-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"text-editor\" image=\"icon\" title=\"Toggles between a text editor and a form\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Removes all parameters from the editor\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText();\n }\n return this.renderList();\n }\n\n protected renderText(): TemplateResult {\n const { textValue='' } = this;\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea \n .value=\"${live(textValue)}\"\n data-enable-grammarly=\"false\"\n @change=\"${this.handleText}\"\n ></textarea>\n </div>\n `;\n }\n\n protected renderList(): TemplateResult {\n const items = this.parser.search.list();\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage();\n }\n return this.renderParams(items);\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: IUrlParamPart[]): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n `;\n }\n\n protected renderParam(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Delete this parameter\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UrlParamsForm.js","sourceRoot":"","sources":["../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, PropertyValues, TemplateResult } from \"lit\";\nimport { IUrlParamPart, UrlEncoder, UrlProcessor } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport type Input from \"../../ui/input/Input.js\";\nimport type SwitchElement from \"../../ui/input/SwitchElement.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\n\nexport default class UrlParamsForm extends ApiElement {\n protected parser = new UrlProcessor('/');\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) text = false;\n\n #value = '';\n\n /**\n * The current value of the editor.\n * @attribute\n */\n @property({ type: String })\n get value(): string {\n return this.#value;\n }\n\n set value(value: string) {\n const old = this.#value;\n if (old === value) {\n return;\n }\n this.#value = value;\n this.setupParser(value);\n }\n\n @state() protected textValue?: string;\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n } else {\n this.textValue = undefined;\n }\n }\n super.update(cp);\n }\n \n protected setupParser(value: string): void {\n if (value) {\n this.parser = new UrlProcessor(value);\n } else {\n this.parser = new UrlProcessor('/');\n }\n this.requestUpdate();\n }\n\n protected handleAdd(): void {\n this.addParameter();\n }\n\n addParameter(): void {\n if (this.readOnly) {\n return;\n }\n this.parser.search.append('', '');\n this.requestUpdate();\n this.focusLast();\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.clear();\n } else if (option === 'text-editor') {\n this.toggle();\n }\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text;\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.parser.search.clear();\n this.updateValue();\n this.requestUpdate();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const list = this.parser.search.list();\n list[index][field] = value;\n this.parser.search.update(index, list[index]);\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n this.parser.search.delete(index);\n this.updateValue();\n this.requestUpdate();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n this.parser.search.toggle(index, enabled);\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Encodes all parameters.\n */\n encodeProperties(): void {\n const { search } = this.parser;\n const list = search.list();\n list.forEach((part, index) => {\n part.name = UrlEncoder.encodeQueryString(part.name, true);\n part.value = UrlEncoder.encodeQueryString(part.value, true);\n search.update(index, part);\n });\n // TODO: UrlEncoder.decodeQueryString(part, false) on each path segment\n this.requestUpdate();\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n /**\n * Decodes all parameters.\n */\n decodeProperties(): void {\n const { search } = this.parser;\n const list = search.list();\n list.forEach((part, index) => {\n part.name = UrlEncoder.decodeQueryString(part.name, true);\n part.value = UrlEncoder.decodeQueryString(part.value, true);\n search.update(index, part);\n });\n // TODO: UrlEncoder.encodeQueryString(part, false) on each path segment\n this.requestUpdate();\n this.updateValue();\n if (this.text) {\n this.textValue = this.parser.search.toParamsString();\n }\n }\n\n protected updateValue(): void {\n this.#value = this.parser.toString();\n this.notifyChange();\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n protected handleEncode(): void {\n this.encodeProperties();\n }\n\n protected handleDecode(): void {\n this.decodeProperties();\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement;\n const { value } = input;\n this.parser.search.fromParamsString(value);\n this.updateValue();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n ${this.renderEditor()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\">Add</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleEncode}\">URL encode</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleDecode}\">URL decode</ui-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"text-editor\" image=\"icon\" title=\"Toggles between a text editor and a form\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Removes all parameters from the editor\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText();\n }\n return this.renderList();\n }\n\n protected renderText(): TemplateResult {\n const { textValue='' } = this;\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea \n .value=\"${live(textValue)}\"\n data-enable-grammarly=\"false\"\n @change=\"${this.handleText}\"\n ></textarea>\n </div>\n `;\n }\n\n protected renderList(): TemplateResult {\n const items = this.parser.search.list();\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage();\n }\n return this.renderParams(items);\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: IUrlParamPart[]): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n `;\n }\n\n protected renderParam(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Delete this parameter\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitView.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":";AAGA,
|
|
1
|
+
{"version":3,"file":"SplitView.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":";AAGA,wBAsLG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitView.styles.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAE9D,eAAe,CAAC,aAAa,EAAE,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"SplitView.styles.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAE9D,eAAe,CAAC,aAAa,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsLjC,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\n\nexport default [surfaceStyles, css`\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n flex: 1;\n}\n\n.content {\n display: flex;\n flex: 1;\n}\n\n:host([constrain]) .content {\n overflow: hidden;\n}\n\n:host([layout=horizontal]) .content {\n flex-direction: row;\n}\n\n:host([layout=vertical]) .content {\n flex-direction: column;\n}\n\n:host ::slotted(*) {\n flex: 1;\n}\n\n:host([layout=vertical]) ::slotted(split-view) {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n:host([layout=vertical]) ::slotted(split-view:last-of-type) {\n margin-bottom: 0;\n}\n\n:host([layout=vertical]) ::slotted(split-view:first-of-type) {\n margin-top: 0;\n}\n\n.layout-tabs {\n display: flex;\n align-items: center;\n /* background: var(--layout-tabs-background, var(--secondary-background-color)); */\n}\n\n.layout-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex: 1 1 200px;\n max-width: 200px;\n min-width: 40px;\n width: 200px;\n height: 100%;\n font-size: 0.94rem;\n padding: 0px 12px;\n border-radius: var(--md-sys-shape-corner-small-top);\n height: 40px; \n outline: none;\n justify-content: flex-start;\n text-transform: none;\n color: var(--md-sys-color-on-surface);\n\n font-family: var(--md-sys-typescale-body-medium-font-family-name);\n font-style: var(--md-sys-typescale-body-medium-font-family-style);\n font-weight: var(--md-sys-typescale-body-medium-font-weight);\n font-size: var(--md-sys-typescale-body-medium-font-size);\n letter-spacing: var(--md-sys-typescale-body-medium-tracking);\n line-height: var(--md-sys-typescale-body-medium-height);\n text-transform: var(--md-sys-typescale-body-medium-text-transform);\n text-decoration: var(--md-sys-typescale-body-medium-text-decoration);\n}\n\n.tab-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.is-dirty .tab-label {\n font-style: italic;\n}\n\n.is-dirty .tab-label::after {\n content: '*';\n user-select: none;\n}\n\n/* .layout-tab.selected {\n background: var(--layout-tab-select-background, var(--primary-background-color));\n} */\n\n.layout-tab:hover::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.layout-tab:focus::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.tab-favicon {\n width: 16px;\n height: 16px;\n margin-right: 8px;\n}\n\n.close-icon {\n width: 16px;\n height: 16px;\n margin-left: auto;\n z-index: 2;\n}\n\n.close-icon:hover {\n background-color: var(--md-sys-color-outline-variant);\n border-radius: 50%;\n}\n\n.tab-divider {\n width: 1px;\n min-width: 1px;\n height: 20px;\n background-color: var(--md-sys-color-outline-variant);\n}\n\n.tab-divider.hidden {\n background-color: transparent;\n}\n\n.drag-region {\n position: absolute;\n /* background-color: var(--md-sys-color-surface); */\n inset: 0;\n z-index: 10;\n border-radius: 12px;\n}\n\n.drag-region::before {\n content: '';\n background-color: var(--md-sys-color-scrim);\n opacity: .16;\n inset: 0;\n z-index: 10;\n position: absolute;\n border-radius: inherit;\n}\n\n/* .drag-region.center {\n top: 0;\n bottom: 0;\n left: 0;\n right:0;\n} */\n\n.drag-region.west {\n right: 50%;\n}\n\n.drag-region.east {\n left: 50%;\n}\n\n.drag-region.north {\n bottom: 50%;\n}\n\n.drag-region.south {\n top: 50%;\n}\n`];\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppNavigationItem.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"AppNavigationItem.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":";AAEA,wBAoIE"}
|
|
@@ -53,6 +53,7 @@ export default css `
|
|
|
53
53
|
.container {
|
|
54
54
|
z-index: 1;
|
|
55
55
|
transition: box-shadow 160ms cubic-bezier(.4,0,.2,1), background-color 230ms cubic-bezier(.4,0,.2,1);
|
|
56
|
+
background-color: var(--md-sys-color-surface);
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
:host([selected]) .container {
|
|
@@ -79,6 +80,7 @@ export default css `
|
|
|
79
80
|
position: relative;
|
|
80
81
|
padding: 16px 24px 16px 16px;
|
|
81
82
|
width: inherit;
|
|
83
|
+
color: var(--md-sys-color-on-surface);
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
.ripple {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppNavigationItem.styles.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"AppNavigationItem.styles.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n:host {\n display: block;\n box-sizing: content-box;\n /* outline: none; */\n writing-mode: horizontal-tb !important;\n text-rendering: auto;\n cursor: default;\n user-select: none;\n height: 56px;\n width: fit-content;\n -webkit-tap-highlight-color: transparent;\n\n border-radius: 100px;\n width: 100%;\n\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n letter-spacing: var(--md-sys-typescale-label-large-tracking);\n line-height: var(--md-sys-typescale-label-large-height);\n text-transform: var(--md-sys-typescale-label-large-text-transform);\n text-decoration: var(--md-sys-typescale-label-large-text-decoration);\n\n --md-ripple-hover-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-focus-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-pressed-state-layer-color: var(--md-sys-color-primary);\n}\n\n.surface {\n width: inherit;\n height: inherit;\n position: relative;\n border-radius: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n /* color: var(--md-sys-color-primary); */\n}\n\n.container,\n.state {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n}\n\n.container {\n z-index: 1;\n transition: box-shadow 160ms cubic-bezier(.4,0,.2,1), background-color 230ms cubic-bezier(.4,0,.2,1);\n background-color: var(--md-sys-color-surface);\n}\n\n:host([selected]) .container {\n background-color: var(--md-sys-color-secondary-container);\n}\n\n:host([selected]) .content,\n:host([selected]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-secondary-container);\n fill: var(--md-sys-color-on-secondary-container);\n}\n\n.state {\n z-index: 2;\n opacity: 0;\n transition: opacity 260ms cubic-bezier(.4,0,.2,1);\n}\n\n.content {\n z-index: 3;\n display: flex;\n justify-content: start;\n align-items: center;\n position: relative;\n padding: 16px 24px 16px 16px;\n width: inherit;\n color: var(--md-sys-color-on-surface);\n}\n\n.ripple {\n border-radius: inherit;\n z-index: 3;\n}\n\n/* .surface.withIcon .content {\n padding: 0 24px 0 16px;\n} */\n\n.surface.withIcon slot[name=\"icon\"]::slotted(*) {\n margin-right: 12px;\n margin-left: 0px;\n}\n\n.content slot::slotted(*) {\n color: var(--md-sys-color-on-surface-variant);\n fill: var(--md-sys-color-on-surface-variant);\n}\n\n:host([disabled]) {\n pointer-events: none;\n}\n\n:host([disabled]) .content {\n opacity: 0.38;\n}\n\n:host([disabled]) .content,\n:host([disabled]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-surface) !important;\n fill: var(--md-sys-color-on-surface) !important;\n}\n\n:host(:hover) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n}\n\n:host(:focus) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n}\n\n:host(:active) .state,\n.pressed .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-pressed-state-layer-opacity);\n}\n`;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { nothing, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
-
import { ProjectRequest, HttpRequest, HttpProject, IRequestLog, IApplication, DeserializedPayload, IHttpProjectProxyInit, Environment, IProperty, RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, IProjectExecutionLog, IHttpAssertion, IRequestConfig } from '@api-client/core/build/browser.js';
|
|
2
|
+
import { ProjectRequest, HttpRequest, HttpProject, IRequestLog, IApplication, DeserializedPayload, IHttpProjectProxyInit, Environment, IProperty, RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, IProjectExecutionLog, IHttpAssertion, IRequestConfig, IHttpFlow } from '@api-client/core/build/browser.js';
|
|
3
3
|
import { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';
|
|
4
4
|
import { JsonPatchOperation } from '@api-client/json';
|
|
5
5
|
import RequestEditor from '../http/RequestEditor.js';
|
|
@@ -67,6 +67,7 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
67
67
|
selectUrl(value: string): void;
|
|
68
68
|
selectHeaders(model: IProperty[]): void;
|
|
69
69
|
selectAssertions(assertions?: IHttpAssertion[]): void;
|
|
70
|
+
selectFlows(flows?: IHttpFlow[]): void;
|
|
70
71
|
selectRequestConfig(config: IRequestConfig): void;
|
|
71
72
|
protected updatePayload(value: DeserializedPayload, mime?: string): Promise<void>;
|
|
72
73
|
addAuthorization(type: AuthorizationType): RequestAuthorization;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAEpE,OAAO,EACL,cAAc,EAAE,WAAW,EAAE,WAAW,EACT,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAC7E,qBAAqB,EAAmB,WAAW,EAAE,SAAS,EAC9D,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,YAAY,EACrF,oBAAoB,EACpB,cAAc,EACd,cAAc,
|
|
1
|
+
{"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,7 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
74
74
|
this.request = expects.toJSON();
|
|
75
75
|
this.authorization = request.authorization?.map(i => i.toJSON());
|
|
76
76
|
this.assertions = request.assertions;
|
|
77
|
+
this.flows = request.flows;
|
|
77
78
|
if (request.config) {
|
|
78
79
|
this.config = request.config.toJSON();
|
|
79
80
|
}
|
|
@@ -121,6 +122,14 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
121
122
|
projectRequest.assertions = assertions;
|
|
122
123
|
super.selectAssertions(assertions);
|
|
123
124
|
}
|
|
125
|
+
selectFlows(flows) {
|
|
126
|
+
const { projectRequest } = this;
|
|
127
|
+
if (!projectRequest) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
projectRequest.flows = flows;
|
|
131
|
+
super.selectFlows(flows);
|
|
132
|
+
}
|
|
124
133
|
selectRequestConfig(config) {
|
|
125
134
|
const { projectRequest } = this;
|
|
126
135
|
if (!projectRequest) {
|
|
@@ -145,7 +154,7 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
145
154
|
this.projectRequest.authorization = [];
|
|
146
155
|
}
|
|
147
156
|
this.projectRequest.authorization.push(schema);
|
|
148
|
-
this.
|
|
157
|
+
this.notifyChange();
|
|
149
158
|
}
|
|
150
159
|
return schema;
|
|
151
160
|
}
|
|
@@ -164,7 +173,7 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
164
173
|
return;
|
|
165
174
|
}
|
|
166
175
|
projectRequest.authorization[index] = new RequestAuthorization(schema);
|
|
167
|
-
this.
|
|
176
|
+
this.notifyChange();
|
|
168
177
|
}
|
|
169
178
|
removeAuthorization(type) {
|
|
170
179
|
super.removeAuthorization(type);
|
|
@@ -180,7 +189,7 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
180
189
|
return;
|
|
181
190
|
}
|
|
182
191
|
projectRequest.authorization.splice(index, 1);
|
|
183
|
-
this.
|
|
192
|
+
this.notifyChange();
|
|
184
193
|
}
|
|
185
194
|
notifySend() {
|
|
186
195
|
this.execute();
|
|
@@ -265,8 +274,8 @@ export default class HttpProjectRequest extends RequestEditor {
|
|
|
265
274
|
this.computeEnvironmentLabel();
|
|
266
275
|
projectRequest.environment = key;
|
|
267
276
|
this.computeSnippetsRequest();
|
|
268
|
-
this.
|
|
269
|
-
this.
|
|
277
|
+
this.notifyChange();
|
|
278
|
+
this.notifyPropertyChanged('environment', key);
|
|
270
279
|
}
|
|
271
280
|
computeEnvironmentLabel() {
|
|
272
281
|
const { projectRequest } = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { \n ProjectRequest, HttpRequest, HttpProject, Events as CoreEvents, IProjectRunnerOptions, \n IHttpHistory, HttpHistoryKind, IRequestLog, IApplication, DeserializedPayload, \n IHttpProjectProxyInit, HttpProjectKind, Environment, IProperty, HeadersArray, \n RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, \n IProjectExecutionLog,\n IHttpAssertion,\n IRequestConfig,\n RequestConfig,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport { JsonPatchOperation } from '@api-client/json';\nimport RequestEditor from '../http/RequestEditor.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { midnightTimestamp } from '../../lib/time/Conversion.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation();\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n * \n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * The source project\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) appInfo?: IApplication;\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest;\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest;\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected environments?: Environment[];\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected environmentLabel?: string;\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request \n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) useNetStore?: boolean;\n\n constructor() {\n super();\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this;\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent);\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest();\n }\n super.willUpdate(cp);\n }\n\n applyPatch(info: JsonPatchOperation): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest);\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4);\n const [root] = parts;\n if (root === 'expects' || root === 'log') {\n this.setupRequest();\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined;\n this.environments = undefined;\n this.ui = undefined;\n }\n\n protected setupRequest(): void {\n const { project, key } = this;\n if (!project || !key) {\n this.cleanup();\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.cleanup();\n return;\n }\n this.projectRequest = request;\n const expects = request.getExpects();\n this.expects = expects;\n this.request = expects.toJSON();\n this.authorization = request.authorization?.map(i => i.toJSON());\n this.assertions = request.assertions;\n if (request.config) {\n this.config = request.config.toJSON();\n }\n\n this.setupRequestEnvironments(request);\n this.computeSnippetsRequest();\n this.requestUpdate();\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments();\n this.computeEnvironmentLabel();\n this.computeSnippetsRequest();\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.method = verb;\n super.selectVerb(verb);\n }\n\n override selectUrl(value: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.url = value;\n super.selectUrl(value);\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.headersModel = HeadersArray.from(model);\n super.selectHeaders(model);\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.assertions = assertions;\n super.selectAssertions(assertions);\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.config = new RequestConfig(config);\n super.selectRequestConfig(config);\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this;\n if (!expects) {\n return;\n }\n await expects.writePayload(value);\n this.setPayloadMimeOption(expects, mime);\n await super.updatePayload(value, mime);\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type);\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = [];\n }\n this.projectRequest.authorization.push(schema)\n this.notifyRequestChanged();\n }\n return schema;\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === schema.type)\n if (index === -1) {\n return;\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema);\n this.notifyRequestChanged();\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n projectRequest.authorization.splice(index, 1);\n this.notifyRequestChanged();\n }\n\n protected override notifySend(): void {\n this.execute();\n }\n\n protected prepareProxyInit(project: HttpProject, key: string, request: ProjectRequest): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n };\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit;\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n };\n }\n\n protected async proxyRequest(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined;\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this);\n } catch (e) {\n // ...\n }\n return result;\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this;\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`);\n }\n const init = this.prepareProxyInit(project, key, projectRequest);\n this.loading = true;\n const result = await this.proxyRequest(init);\n const report = result?.result?.iterations[0]?.executed[0];\n if (report) {\n this.requestUpdate();\n this.addHistory(report);\n }\n this.loading = false;\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this;\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`);\n }\n if (!project || !key) {\n return;\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n space: '', // will be filled by the bindings.\n };\n \n Events.Store.History.create(item);\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this;\n const target = e.detail.item as HTMLElement | undefined;\n if (!target || !projectRequest) {\n return;\n }\n const { key } = target.dataset;\n if (projectRequest.environment === key) {\n return;\n }\n projectRequest.environment = key;\n this.computeEnvironmentLabel();\n projectRequest.environment = key;\n this.computeSnippetsRequest();\n this.notifyRequestChanged();\n this.notifyChanged('environment', key);\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n this.environmentLabel = undefined;\n return;\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true });\n this.environmentLabel = url || 'No server defined';\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest();\n if (this.snippets) {\n const url = this.projectRequest?.readUrl();\n if (url) {\n this.snippets.url = url;\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderEnvironmentSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this;\n if (!environments?.length) {\n return nothing;\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" title=\"Selects the environment in the request's folder or inherited from a parent\">Inherited environment</ui-list-item>\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env));\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer();\n const srvUri = srv?.readUri();\n const label = srvUri || 'Server not defined';\n // note, we don't disable items without server because it may still apply variables \n // from it.\n return html`\n <ui-list-item \n role=\"menuitem\" \n data-key=\"${env.key}\" \n lines=\"two\" \n >\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `;\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br/>\n Add an authorization to this request to override.\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { \n ProjectRequest, HttpRequest, HttpProject, Events as CoreEvents, IProjectRunnerOptions, \n IHttpHistory, HttpHistoryKind, IRequestLog, IApplication, DeserializedPayload, \n IHttpProjectProxyInit, HttpProjectKind, Environment, IProperty, HeadersArray, \n RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, \n IProjectExecutionLog,\n IHttpAssertion,\n IRequestConfig,\n RequestConfig,\n IHttpFlow,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport { JsonPatchOperation } from '@api-client/json';\nimport RequestEditor from '../http/RequestEditor.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { midnightTimestamp } from '../../lib/time/Conversion.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation();\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n * \n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * The source project\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) appInfo?: IApplication;\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest;\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest;\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected environments?: Environment[];\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected environmentLabel?: string;\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request \n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) useNetStore?: boolean;\n\n constructor() {\n super();\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this;\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent);\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest();\n }\n super.willUpdate(cp);\n }\n\n applyPatch(info: JsonPatchOperation): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest);\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4);\n const [root] = parts;\n if (root === 'expects' || root === 'log') {\n this.setupRequest();\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined;\n this.environments = undefined;\n this.ui = undefined;\n }\n\n protected setupRequest(): void {\n const { project, key } = this;\n if (!project || !key) {\n this.cleanup();\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.cleanup();\n return;\n }\n this.projectRequest = request;\n const expects = request.getExpects();\n this.expects = expects;\n this.request = expects.toJSON();\n this.authorization = request.authorization?.map(i => i.toJSON());\n this.assertions = request.assertions;\n this.flows = request.flows;\n if (request.config) {\n this.config = request.config.toJSON();\n }\n\n this.setupRequestEnvironments(request);\n this.computeSnippetsRequest();\n this.requestUpdate();\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments();\n this.computeEnvironmentLabel();\n this.computeSnippetsRequest();\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.method = verb;\n super.selectVerb(verb);\n }\n\n override selectUrl(value: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.url = value;\n super.selectUrl(value);\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.headersModel = HeadersArray.from(model);\n super.selectHeaders(model);\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.assertions = assertions;\n super.selectAssertions(assertions);\n }\n\n override selectFlows(flows?: IHttpFlow[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.flows = flows;\n super.selectFlows(flows);\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.config = new RequestConfig(config);\n super.selectRequestConfig(config);\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this;\n if (!expects) {\n return;\n }\n await expects.writePayload(value);\n this.setPayloadMimeOption(expects, mime);\n await super.updatePayload(value, mime);\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type);\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = [];\n }\n this.projectRequest.authorization.push(schema)\n this.notifyChange();\n }\n return schema;\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === schema.type)\n if (index === -1) {\n return;\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema);\n this.notifyChange();\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n projectRequest.authorization.splice(index, 1);\n this.notifyChange();\n }\n\n protected override notifySend(): void {\n this.execute();\n }\n\n protected prepareProxyInit(project: HttpProject, key: string, request: ProjectRequest): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n };\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit;\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n };\n }\n\n protected async proxyRequest(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined;\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this);\n } catch (e) {\n // ...\n }\n return result;\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this;\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`);\n }\n const init = this.prepareProxyInit(project, key, projectRequest);\n this.loading = true;\n const result = await this.proxyRequest(init);\n const report = result?.result?.iterations[0]?.executed[0];\n if (report) {\n this.requestUpdate();\n this.addHistory(report);\n }\n this.loading = false;\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this;\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`);\n }\n if (!project || !key) {\n return;\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n space: '', // will be filled by the bindings.\n };\n \n Events.Store.History.create(item);\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this;\n const target = e.detail.item as HTMLElement | undefined;\n if (!target || !projectRequest) {\n return;\n }\n const { key } = target.dataset;\n if (projectRequest.environment === key) {\n return;\n }\n projectRequest.environment = key;\n this.computeEnvironmentLabel();\n projectRequest.environment = key;\n this.computeSnippetsRequest();\n this.notifyChange();\n this.notifyPropertyChanged('environment', key);\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n this.environmentLabel = undefined;\n return;\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true });\n this.environmentLabel = url || 'No server defined';\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest();\n if (this.snippets) {\n const url = this.projectRequest?.readUrl();\n if (url) {\n this.snippets.url = url;\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderEnvironmentSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this;\n if (!environments?.length) {\n return nothing;\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" title=\"Selects the environment in the request's folder or inherited from a parent\">Inherited environment</ui-list-item>\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env));\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer();\n const srvUri = srv?.readUri();\n const label = srvUri || 'Server not defined';\n // note, we don't disable items without server because it may still apply variables \n // from it.\n return html`\n <ui-list-item \n role=\"menuitem\" \n data-key=\"${env.key}\" \n lines=\"two\" \n >\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `;\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br/>\n Add an authorization to this request to override.\n </div>\n `;\n }\n}\n"]}
|
|
@@ -83,7 +83,6 @@ export default class ProjectRunner extends ApiElement {
|
|
|
83
83
|
setParallel(value: boolean): void;
|
|
84
84
|
setIterations(value: number): void;
|
|
85
85
|
setIterationDelay(value: number): void;
|
|
86
|
-
notifyChange(): void;
|
|
87
86
|
protected handleRecursiveChecked(e: Event): void;
|
|
88
87
|
protected handleParallelChecked(e: Event): void;
|
|
89
88
|
protected handleIterationsChange(e: Event): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGpE,OAAO,EACL,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAC3B,oBAAoB,EAC1C,YAAY,EAGZ,iBAAiB,EAEjB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGpE,OAAO,EACL,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAC3B,oBAAoB,EAC1C,YAAY,EAGZ,iBAAiB,EAEjB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAK1C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iDAAiD,CAAC;AACzD,OAAO,gCAAgC,CAAC;AACxC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,gCAAgC,CAAC;AACxC,OAAO,4BAA4B,CAAC;AACpC,OAAO,qCAAqC,CAAC;AAC7C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;IACnD;;OAEG;IACyB,OAAO,CAAC,EAAE,WAAW,CAAC;IAElD;;;OAGG;IACyB,OAAO,CAAC,EAAE,YAAY,CAAC;IAEnD;;;;OAIG;IACwC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE3D;;OAEG;IACM,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IAEtD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAErC;;OAEG;IACM,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACyB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAElD,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEtC,SAAS,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAE5C,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAEtC,eAAe,SAAO;IAEtB;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACM,cAAc,CAAC,EAAE,iBAAiB,CAAC;;IASnC,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOnD,SAAS,CAAC,SAAS,IAAI,IAAI;IAe3B,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAiBtF,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAkBnE,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;cA6Bd,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1E,YAAY,IAAI,IAAI;IAUpB,iBAAiB,IAAI,IAAI;IAUnB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ChC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAIzE,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAOlC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAOjC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOlC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAKhD,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAK/C,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAMhD,SAAS,CAAC,0BAA0B,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAMpD,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAStD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;cAWb,MAAM,IAAI,cAAc;IAuB3C,SAAS,CAAC,qBAAqB,IAAI,cAAc;IAuBjD,SAAS,CAAC,oBAAoB,IAAI,cAAc;IAwBhD,SAAS,CAAC,qBAAqB,IAAI,cAAc;IAuBjD,SAAS,CAAC,0BAA0B,IAAI,cAAc;IAuBtD,SAAS,CAAC,YAAY,IAAI,cAAc;IAQxC,SAAS,CAAC,YAAY,IAAI,cAAc,GAAG,MAAM;IASjD,SAAS,CAAC,WAAW,IAAI,cAAc,GAAG,MAAM;IAQhD,SAAS,CAAC,YAAY,IAAI,cAAc,GAAG,OAAO,OAAO;IAczD,SAAS,CAAC,qBAAqB,IAAI,cAAc;IAwBjD,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc;CAa7D"}
|