@api-client/ui 0.2.2 → 0.2.4
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/.vscode/settings.json +3 -3
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.js +7 -7
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/Authorization.styles.js +4 -4
- package/build/src/elements/authorization/ui/Authorization.styles.js.map +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.js +5 -5
- package/build/src/elements/authorization/ui/BasicAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.js +3 -3
- package/build/src/elements/authorization/ui/BearerAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.js +7 -7
- package/build/src/elements/authorization/ui/NtlmAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.js +32 -27
- package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.js +4 -4
- package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/build/src/elements/autocomplete/autocomplete-input.d.ts +10 -0
- package/build/src/elements/autocomplete/autocomplete-input.d.ts.map +1 -0
- package/build/src/{md/text-field/ui-text-field.js → elements/autocomplete/autocomplete-input.js} +9 -9
- package/build/src/elements/autocomplete/autocomplete-input.js.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.d.ts +209 -0
- package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.js +493 -0
- package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts +3 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.js +25 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.js.map +1 -0
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts +1 -1
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.js +5 -5
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.js.map +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/Rename.js +3 -3
- package/build/src/elements/dialog/internals/Rename.js.map +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.js +9 -9
- package/build/src/elements/dialog/internals/SetCookieAction.element.js.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.js +3 -3
- package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.styles.js +1 -1
- package/build/src/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/build/src/elements/environment/ServerEditor.d.ts +1 -1
- package/build/src/elements/environment/ServerEditor.d.ts.map +1 -1
- package/build/src/elements/environment/ServerEditor.js +7 -7
- package/build/src/elements/environment/ServerEditor.js.map +1 -1
- package/build/src/elements/environment/ServerEditor.styles.js +1 -1
- package/build/src/elements/environment/ServerEditor.styles.js.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.js +4 -0
- package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.js +8 -8
- package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.styles.js +1 -1
- package/build/src/elements/http/CertificateAdd.styles.js.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.js +3 -3
- package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
- package/build/src/elements/http/HttpFlows.element.js +3 -3
- package/build/src/elements/http/HttpFlows.element.js.map +1 -1
- package/build/src/elements/http/HttpFlowsUi.d.ts +1 -1
- package/build/src/elements/http/HttpFlowsUi.d.ts.map +1 -1
- package/build/src/elements/http/HttpFlowsUi.js +31 -31
- package/build/src/elements/http/HttpFlowsUi.js.map +1 -1
- package/build/src/elements/http/RequestConfigElement.d.ts +1 -1
- package/build/src/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/build/src/elements/http/RequestConfigElement.js +7 -7
- package/build/src/elements/http/RequestConfigElement.js.map +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/build/src/elements/http/UrlParamsForm.js +1 -1
- package/build/src/elements/http/UrlParamsForm.js.map +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunner.js +5 -5
- package/build/src/elements/project/ProjectRunner.js.map +1 -1
- package/build/src/md/input/Input.d.ts +0 -15
- package/build/src/md/input/Input.d.ts.map +1 -1
- package/build/src/md/input/Input.js +7 -42
- package/build/src/md/input/Input.js.map +1 -1
- package/build/src/md/list/internals/List.d.ts +7 -2
- package/build/src/md/list/internals/List.d.ts.map +1 -1
- package/build/src/md/list/internals/List.js +6 -0
- package/build/src/md/list/internals/List.js.map +1 -1
- package/build/src/md/list/internals/ListItem.styles.d.ts.map +1 -1
- package/build/src/md/list/internals/ListItem.styles.js +8 -0
- package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
- package/build/src/md/listbox/internals/Listbox.d.ts +2 -2
- package/build/src/md/listbox/internals/Listbox.d.ts.map +1 -1
- package/build/src/md/listbox/internals/Listbox.js.map +1 -1
- package/build/src/md/text-area/internals/TextAreaElement.d.ts.map +1 -1
- package/build/src/md/text-area/internals/TextAreaElement.js +0 -5
- package/build/src/md/text-area/internals/TextAreaElement.js.map +1 -1
- package/build/src/md/text-area/ui-text-area.d.ts.map +1 -1
- package/build/src/md/text-area/ui-text-area.js +3 -2
- package/build/src/md/text-area/ui-text-area.js.map +1 -1
- package/build/src/md/text-field/internals/{TextFieldElement.d.ts → TextField.d.ts} +2 -2
- package/build/src/md/text-field/internals/TextField.d.ts.map +1 -0
- package/build/src/md/text-field/internals/{TextFieldElement.js → TextField.js} +2 -5
- package/build/src/md/text-field/internals/TextField.js.map +1 -0
- package/build/src/{visualization/elements/WorkspaceStyles.d.ts → md/text-field/internals/common.styles.d.ts} +1 -1
- package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/{TextField.styles.js → common.styles.js} +8 -94
- package/build/src/md/text-field/internals/common.styles.js.map +1 -0
- package/build/src/md/text-field/internals/{TextField.styles.d.ts → filled.styles.d.ts} +1 -1
- package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/filled.styles.js +107 -0
- package/build/src/md/text-field/internals/filled.styles.js.map +1 -0
- package/build/src/md/text-field/internals/outlined.styles.d.ts +3 -0
- package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/outlined.styles.js +43 -0
- package/build/src/md/text-field/internals/outlined.styles.js.map +1 -0
- package/build/src/md/text-field/ui-filled-text-field.d.ts +11 -0
- package/build/src/md/text-field/ui-filled-text-field.d.ts.map +1 -0
- package/build/src/md/text-field/ui-filled-text-field.js +28 -0
- package/build/src/md/text-field/ui-filled-text-field.js.map +1 -0
- package/build/src/md/text-field/ui-outlined-text-field.d.ts +11 -0
- package/build/src/md/text-field/ui-outlined-text-field.d.ts.map +1 -0
- package/build/src/md/text-field/ui-outlined-text-field.js +28 -0
- package/build/src/md/text-field/ui-outlined-text-field.js.map +1 -0
- package/build/src/types/input.d.ts +1 -1
- package/build/src/types/input.d.ts.map +1 -1
- package/build/src/types/input.js.map +1 -1
- package/demo/elements/authorization/oauth-authorize.html +4 -4
- package/demo/elements/authorization/oauth-authorize.ts +1 -1
- package/demo/elements/autocomplete/index.html +24 -0
- package/demo/elements/autocomplete/index.ts +123 -0
- package/demo/elements/http/body-editor.ts +3 -3
- package/demo/elements/index.html +15 -11
- package/demo/md/index.html +1 -1
- package/demo/md/inputs/input.html +10 -15
- package/demo/md/inputs/input.ts +389 -101
- package/demo/page.css +4 -0
- package/package.json +7 -2
- package/src/elements/authorization/ui/ApiKeyAuthorization.ts +7 -7
- package/src/elements/authorization/ui/Authorization.styles.ts +4 -4
- package/src/elements/authorization/ui/BasicAuthorization.ts +5 -5
- package/src/elements/authorization/ui/BearerAuthorization.ts +3 -3
- package/src/elements/authorization/ui/NtlmAuthorization.ts +7 -7
- package/src/elements/authorization/ui/OAuth2Authorization.ts +32 -27
- package/src/elements/authorization/ui/OidcAuthorization.ts +4 -4
- package/src/elements/autocomplete/autocomplete-input.ts +14 -0
- package/src/elements/autocomplete/internals/autocomplete.styles.ts +25 -0
- package/src/elements/autocomplete/internals/autocomplete.ts +490 -0
- package/src/elements/dialog/internals/DeleteCookieAction.element.ts +5 -5
- package/src/elements/dialog/internals/Rename.ts +3 -3
- package/src/elements/dialog/internals/SetCookieAction.element.ts +9 -9
- package/src/elements/environment/EnvironmentEditor.styles.ts +1 -1
- package/src/elements/environment/EnvironmentEditor.ts +3 -3
- package/src/elements/environment/ServerEditor.styles.ts +1 -1
- package/src/elements/environment/ServerEditor.ts +7 -7
- package/src/elements/http/BodyMultipartEditor.ts +4 -0
- package/src/elements/http/CertificateAdd.element.ts +8 -8
- package/src/elements/http/CertificateAdd.styles.ts +1 -1
- package/src/elements/http/HttpAssertions.element.ts +3 -3
- package/src/elements/http/HttpFlows.element.ts +3 -3
- package/src/elements/http/HttpFlowsUi.ts +31 -31
- package/src/elements/http/RequestConfigElement.ts +7 -7
- package/src/elements/http/UrlParamsForm.ts +1 -1
- package/src/elements/project/ProjectRunner.ts +5 -5
- package/src/md/input/Input.ts +6 -21
- package/src/md/list/internals/List.ts +14 -2
- package/src/md/list/internals/ListItem.styles.ts +8 -0
- package/src/md/listbox/internals/Listbox.ts +2 -2
- package/src/md/text-area/internals/TextAreaElement.ts +0 -5
- package/src/md/text-area/ui-text-area.ts +3 -2
- package/src/md/text-field/internals/{TextFieldElement.ts → TextField.ts} +1 -4
- package/src/md/text-field/internals/{TextField.styles.ts → common.styles.ts} +7 -93
- package/src/md/text-field/internals/filled.styles.ts +107 -0
- package/src/md/text-field/internals/outlined.styles.ts +43 -0
- package/src/md/text-field/ui-filled-text-field.ts +16 -0
- package/src/md/text-field/ui-outlined-text-field.ts +16 -0
- package/src/types/input.ts +0 -1
- package/test/elements/authorization/basic-method.test.ts +3 -3
- package/test/elements/authorization/bearer-method.test.ts +2 -2
- package/test/elements/authorization/ntlm-method.test.ts +4 -4
- package/test/elements/autocomplete/autocomplete-input.spec.ts +448 -0
- package/test/elements/http/BodyMultipartEditorElement.test.ts +15 -16
- package/test/elements/http/CertificateAdd.test.ts +11 -11
- package/test/elements/http/HttpAssertions.test.ts +9 -9
- package/test/elements/http/HttpFlows.test.ts +4 -4
- package/test/env.ts +15 -0
- package/test/tsconfig.json +1 -7
- package/web-test-runner.config.js +5 -1
- package/build/src/md/text-field/internals/TextField.styles.d.ts.map +0 -1
- package/build/src/md/text-field/internals/TextField.styles.js.map +0 -1
- package/build/src/md/text-field/internals/TextFieldElement.d.ts.map +0 -1
- package/build/src/md/text-field/internals/TextFieldElement.js.map +0 -1
- package/build/src/md/text-field/ui-text-field.d.ts +0 -11
- package/build/src/md/text-field/ui-text-field.d.ts.map +0 -1
- package/build/src/md/text-field/ui-text-field.js.map +0 -1
- package/build/src/visualization/elements/VizAssociationElement.d.ts +0 -4
- package/build/src/visualization/elements/VizAssociationElement.d.ts.map +0 -1
- package/build/src/visualization/elements/VizAssociationElement.js +0 -4
- package/build/src/visualization/elements/VizAssociationElement.js.map +0 -1
- package/build/src/visualization/elements/VizWorkspaceElement.d.ts +0 -110
- package/build/src/visualization/elements/VizWorkspaceElement.d.ts.map +0 -1
- package/build/src/visualization/elements/VizWorkspaceElement.js +0 -321
- package/build/src/visualization/elements/VizWorkspaceElement.js.map +0 -1
- package/build/src/visualization/elements/WorkspaceStyles.d.ts.map +0 -1
- package/build/src/visualization/elements/WorkspaceStyles.js +0 -168
- package/build/src/visualization/elements/WorkspaceStyles.js.map +0 -1
- package/build/src/visualization/lib/AnchorFinder.d.ts +0 -64
- package/build/src/visualization/lib/AnchorFinder.d.ts.map +0 -1
- package/build/src/visualization/lib/AnchorFinder.js +0 -107
- package/build/src/visualization/lib/AnchorFinder.js.map +0 -1
- package/build/src/visualization/lib/AnchorUtils.d.ts +0 -10
- package/build/src/visualization/lib/AnchorUtils.d.ts.map +0 -1
- package/build/src/visualization/lib/AnchorUtils.js +0 -44
- package/build/src/visualization/lib/AnchorUtils.js.map +0 -1
- package/build/src/visualization/lib/AssociationAnchors.d.ts +0 -134
- package/build/src/visualization/lib/AssociationAnchors.d.ts.map +0 -1
- package/build/src/visualization/lib/AssociationAnchors.js +0 -351
- package/build/src/visualization/lib/AssociationAnchors.js.map +0 -1
- package/build/src/visualization/lib/LabelSketch.d.ts +0 -16
- package/build/src/visualization/lib/LabelSketch.d.ts.map +0 -1
- package/build/src/visualization/lib/LabelSketch.js +0 -53
- package/build/src/visualization/lib/LabelSketch.js.map +0 -1
- package/build/src/visualization/lib/LineSketch.d.ts +0 -26
- package/build/src/visualization/lib/LineSketch.d.ts.map +0 -1
- package/build/src/visualization/lib/LineSketch.js +0 -55
- package/build/src/visualization/lib/LineSketch.js.map +0 -1
- package/build/src/visualization/lib/Point.d.ts +0 -74
- package/build/src/visualization/lib/Point.d.ts.map +0 -1
- package/build/src/visualization/lib/Point.js +0 -121
- package/build/src/visualization/lib/Point.js.map +0 -1
- package/build/src/visualization/lib/PositionUtils.d.ts +0 -65
- package/build/src/visualization/lib/PositionUtils.d.ts.map +0 -1
- package/build/src/visualization/lib/PositionUtils.js +0 -205
- package/build/src/visualization/lib/PositionUtils.js.map +0 -1
- package/build/src/visualization/lib/SelectionManager.d.ts +0 -183
- package/build/src/visualization/lib/SelectionManager.d.ts.map +0 -1
- package/build/src/visualization/lib/SelectionManager.js +0 -481
- package/build/src/visualization/lib/SelectionManager.js.map +0 -1
- package/build/src/visualization/lib/ShapeArtist.d.ts +0 -45
- package/build/src/visualization/lib/ShapeArtist.d.ts.map +0 -1
- package/build/src/visualization/lib/ShapeArtist.js +0 -209
- package/build/src/visualization/lib/ShapeArtist.js.map +0 -1
- package/build/src/visualization/lib/SvgMarkers.d.ts +0 -14
- package/build/src/visualization/lib/SvgMarkers.d.ts.map +0 -1
- package/build/src/visualization/lib/SvgMarkers.js +0 -77
- package/build/src/visualization/lib/SvgMarkers.js.map +0 -1
- package/build/src/visualization/lib/TipSketch.d.ts +0 -26
- package/build/src/visualization/lib/TipSketch.d.ts.map +0 -1
- package/build/src/visualization/lib/TipSketch.js +0 -77
- package/build/src/visualization/lib/TipSketch.js.map +0 -1
- package/build/src/visualization/lib/TouchSupport.d.ts +0 -14
- package/build/src/visualization/lib/TouchSupport.d.ts.map +0 -1
- package/build/src/visualization/lib/TouchSupport.js +0 -55
- package/build/src/visualization/lib/TouchSupport.js.map +0 -1
- package/build/src/visualization/lib/Utils.d.ts +0 -25
- package/build/src/visualization/lib/Utils.d.ts.map +0 -1
- package/build/src/visualization/lib/Utils.js +0 -59
- package/build/src/visualization/lib/Utils.js.map +0 -1
- package/build/src/visualization/lib/VisualizationTypes.d.ts +0 -216
- package/build/src/visualization/lib/VisualizationTypes.d.ts.map +0 -1
- package/build/src/visualization/lib/VisualizationTypes.js +0 -3
- package/build/src/visualization/lib/VisualizationTypes.js.map +0 -1
- package/build/src/visualization/lib/WorkspaceAlignment.d.ts +0 -51
- package/build/src/visualization/lib/WorkspaceAlignment.d.ts.map +0 -1
- package/build/src/visualization/lib/WorkspaceAlignment.js +0 -243
- package/build/src/visualization/lib/WorkspaceAlignment.js.map +0 -1
- package/build/src/visualization/lib/WorkspaceDebugging.d.ts +0 -104
- package/build/src/visualization/lib/WorkspaceDebugging.d.ts.map +0 -1
- package/build/src/visualization/lib/WorkspaceDebugging.js +0 -286
- package/build/src/visualization/lib/WorkspaceDebugging.js.map +0 -1
- package/build/src/visualization/lib/WorkspaceEdges.d.ts +0 -293
- package/build/src/visualization/lib/WorkspaceEdges.d.ts.map +0 -1
- package/build/src/visualization/lib/WorkspaceEdges.js +0 -1073
- package/build/src/visualization/lib/WorkspaceEdges.js.map +0 -1
- package/build/src/visualization/lib/WorkspaceGestures.d.ts +0 -119
- package/build/src/visualization/lib/WorkspaceGestures.d.ts.map +0 -1
- package/build/src/visualization/lib/WorkspaceGestures.js +0 -376
- package/build/src/visualization/lib/WorkspaceGestures.js.map +0 -1
- package/build/src/visualization/lib/WorkspaceSizing.d.ts +0 -66
- package/build/src/visualization/lib/WorkspaceSizing.d.ts.map +0 -1
- package/build/src/visualization/lib/WorkspaceSizing.js +0 -168
- package/build/src/visualization/lib/WorkspaceSizing.js.map +0 -1
- package/build/src/visualization/lib/lines/RectilinearLine.d.ts +0 -114
- package/build/src/visualization/lib/lines/RectilinearLine.d.ts.map +0 -1
- package/build/src/visualization/lib/lines/RectilinearLine.js +0 -605
- package/build/src/visualization/lib/lines/RectilinearLine.js.map +0 -1
- package/build/src/visualization/lib/tips/RectilinearTip.d.ts +0 -26
- package/build/src/visualization/lib/tips/RectilinearTip.d.ts.map +0 -1
- package/build/src/visualization/lib/tips/RectilinearTip.js +0 -149
- package/build/src/visualization/lib/tips/RectilinearTip.js.map +0 -1
- package/build/src/visualization/lib/tips/TipArtist.d.ts +0 -22
- package/build/src/visualization/lib/tips/TipArtist.d.ts.map +0 -1
- package/build/src/visualization/lib/tips/TipArtist.js +0 -31
- package/build/src/visualization/lib/tips/TipArtist.js.map +0 -1
- package/build/src/visualization/lib/types.d.ts +0 -164
- package/build/src/visualization/lib/types.d.ts.map +0 -1
- package/build/src/visualization/lib/types.js +0 -2
- package/build/src/visualization/lib/types.js.map +0 -1
- package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts +0 -126
- package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts.map +0 -1
- package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js +0 -260
- package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js.map +0 -1
- package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts +0 -93
- package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts.map +0 -1
- package/build/src/visualization/plugin/group-selection/GroupSelection.js +0 -250
- package/build/src/visualization/plugin/group-selection/GroupSelection.js.map +0 -1
- package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts +0 -10
- package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts.map +0 -1
- package/build/src/visualization/plugin/positioning/DataModelLayout.js +0 -105
- package/build/src/visualization/plugin/positioning/DataModelLayout.js.map +0 -1
- package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts +0 -93
- package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts.map +0 -1
- package/build/src/visualization/plugin/positioning/WorkspaceLayout.js +0 -96
- package/build/src/visualization/plugin/positioning/WorkspaceLayout.js.map +0 -1
- package/build/src/visualization/viz-association.d.ts +0 -7
- package/build/src/visualization/viz-association.d.ts.map +0 -1
- package/build/src/visualization/viz-association.js +0 -3
- package/build/src/visualization/viz-association.js.map +0 -1
- package/build/src/visualization/viz-workspace.d.ts +0 -7
- package/build/src/visualization/viz-workspace.d.ts.map +0 -1
- package/build/src/visualization/viz-workspace.js +0 -3
- package/build/src/visualization/viz-workspace.js.map +0 -1
- package/src/md/text-field/ui-text-field.ts +0 -15
- package/src/visualization/elements/VizAssociationElement.ts +0 -3
- package/src/visualization/elements/VizWorkspaceElement.ts +0 -302
- package/src/visualization/elements/WorkspaceStyles.ts +0 -168
- package/src/visualization/lib/AnchorFinder.ts +0 -112
- package/src/visualization/lib/AnchorUtils.ts +0 -53
- package/src/visualization/lib/AssociationAnchors.ts +0 -418
- package/src/visualization/lib/LabelSketch.ts +0 -67
- package/src/visualization/lib/LineSketch.ts +0 -62
- package/src/visualization/lib/Point.ts +0 -134
- package/src/visualization/lib/PositionUtils.ts +0 -218
- package/src/visualization/lib/SelectionManager.ts +0 -513
- package/src/visualization/lib/ShapeArtist.ts +0 -222
- package/src/visualization/lib/SvgMarkers.ts +0 -80
- package/src/visualization/lib/TipSketch.ts +0 -91
- package/src/visualization/lib/TouchSupport.ts +0 -72
- package/src/visualization/lib/Utils.ts +0 -63
- package/src/visualization/lib/VisualizationTypes.ts +0 -232
- package/src/visualization/lib/WorkspaceAlignment.ts +0 -261
- package/src/visualization/lib/WorkspaceDebugging.ts +0 -313
- package/src/visualization/lib/WorkspaceEdges.ts +0 -1153
- package/src/visualization/lib/WorkspaceGestures.ts +0 -400
- package/src/visualization/lib/WorkspaceSizing.ts +0 -181
- package/src/visualization/lib/lines/RectilinearLine.ts +0 -589
- package/src/visualization/lib/tips/RectilinearTip.ts +0 -156
- package/src/visualization/lib/tips/TipArtist.ts +0 -34
- package/src/visualization/lib/types.ts +0 -173
- package/src/visualization/plugin/dnd/DragAndDropPlugin.ts +0 -294
- package/src/visualization/plugin/group-selection/GroupSelection.ts +0 -271
- package/src/visualization/plugin/positioning/DataModelLayout.ts +0 -114
- package/src/visualization/plugin/positioning/WorkspaceLayout.ts +0 -149
- package/src/visualization/viz-association.ts +0 -9
- package/src/visualization/viz-workspace.ts +0 -9
- package/test/env.d.ts +0 -9
- package/test/env.js +0 -7
- package/test/visualization/lib/AnchorFinder.test.ts +0 -313
- package/test/visualization/lib/AnchorUtils.test.ts +0 -178
- package/test/visualization/lib/PositionUtils.test.ts +0 -406
- package/test/visualization/lib/test-styles.css +0 -80
|
@@ -1,513 +0,0 @@
|
|
|
1
|
-
import VizWorkspaceElement from '../elements/VizWorkspaceElement.js'
|
|
2
|
-
import { ISelectedDomain } from './types.js'
|
|
3
|
-
|
|
4
|
-
export const clickHandler = Symbol('clickHandler')
|
|
5
|
-
export const observeItems = Symbol('observeItems')
|
|
6
|
-
export const mutationHandler = Symbol('mutationHandler')
|
|
7
|
-
export const mutationObserver = Symbol('mutationObserver')
|
|
8
|
-
export const processAddedNodes = Symbol('processAddedNodes')
|
|
9
|
-
export const processRemovedNodes = Symbol('processRemovedNodes')
|
|
10
|
-
export const processAttributeChanged = Symbol('processAttributeChanged')
|
|
11
|
-
export const propagateSelection = Symbol('propagateSelection')
|
|
12
|
-
export const selectAssociations = Symbol('selectAssociation')
|
|
13
|
-
export const selectReverseAssociations = Symbol('selectReverseAssociations')
|
|
14
|
-
export const propagateDeselection = Symbol('propagateDeselection')
|
|
15
|
-
export const deselectAssociations = Symbol('deselectAssociations')
|
|
16
|
-
export const deselectReverseAssociations = Symbol('deselectReverseAssociations')
|
|
17
|
-
export const notifyChanged = Symbol('notifyChanged')
|
|
18
|
-
export const selectedItemsValue = Symbol('selectedItemsValue')
|
|
19
|
-
export const selectedIdsValue = Symbol('selectedIdsValue')
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A class that takes care of selection in the visualization workspace.
|
|
23
|
-
*/
|
|
24
|
-
export class SelectionManager {
|
|
25
|
-
/**
|
|
26
|
-
* The list of currently selected elements
|
|
27
|
-
*/
|
|
28
|
-
[selectedItemsValue] = new Set<Element>();
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* The list of currently selected domain ids
|
|
32
|
-
*/
|
|
33
|
-
[selectedIdsValue]: ISelectedDomain[] = [];
|
|
34
|
-
|
|
35
|
-
[mutationObserver]?: MutationObserver
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @returns A set of currently selected items.
|
|
39
|
-
*/
|
|
40
|
-
get selectedItems(): Set<Element> {
|
|
41
|
-
return this[selectedItemsValue]
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @returns A list of currently selected domain ids.
|
|
46
|
-
*/
|
|
47
|
-
get selected(): ISelectedDomain[] {
|
|
48
|
-
return this[selectedIdsValue]
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* @returns A list of all selectable items
|
|
53
|
-
*/
|
|
54
|
-
get selectable(): Element[] {
|
|
55
|
-
const nodes = this.target.querySelectorAll('[data-selectable]')
|
|
56
|
-
return Array.from(nodes) as Element[]
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
constructor(public target: VizWorkspaceElement) {
|
|
60
|
-
this[clickHandler] = this[clickHandler].bind(this)
|
|
61
|
-
this[mutationHandler] = this[mutationHandler].bind(this)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Initializes the library. Should be called when the workspace is ready to render content.
|
|
66
|
-
*/
|
|
67
|
-
connect(): void {
|
|
68
|
-
this.target.addEventListener('click', this[clickHandler] as EventListener)
|
|
69
|
-
this[mutationObserver] = this[observeItems]()
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Cleans up and removes listeners
|
|
74
|
-
*/
|
|
75
|
-
disconnect(): void {
|
|
76
|
-
const mo = this[mutationObserver]
|
|
77
|
-
if (mo) {
|
|
78
|
-
mo.disconnect()
|
|
79
|
-
this[mutationObserver] = undefined
|
|
80
|
-
}
|
|
81
|
-
this.target.removeEventListener('click', this[clickHandler] as EventListener)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Checks if given element is marked as selectable target
|
|
86
|
-
* @param selectable The element to test for `selectable` or `data-selectable` attribute
|
|
87
|
-
* @returns True if the element can be selected
|
|
88
|
-
*/
|
|
89
|
-
isSelectable(selectable: Element): boolean {
|
|
90
|
-
return selectable.hasAttribute('data-selectable')
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Checks if given element is marked as selected
|
|
95
|
-
* @param selectable The element to test for `selected` or `data-selected` attribute
|
|
96
|
-
* @returns True if the element is marked as selected
|
|
97
|
-
*/
|
|
98
|
-
isSelected(selectable: Element): boolean {
|
|
99
|
-
return selectable.hasAttribute('data-selected')
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Marks an element as selected
|
|
104
|
-
* @param selectable The element to add the selected mark to.
|
|
105
|
-
*/
|
|
106
|
-
setSelected(selectable: Element): void {
|
|
107
|
-
selectable.setAttribute('data-selected', '')
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Marks an element as not selected
|
|
112
|
-
* @param selectable The element to remove the selected mark from.
|
|
113
|
-
*/
|
|
114
|
-
setUnselected(selectable: Element): void {
|
|
115
|
-
selectable.removeAttribute('data-selected')
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Deselects all currently selected items.
|
|
120
|
-
*/
|
|
121
|
-
selectAll(): void {
|
|
122
|
-
this.selectable.forEach((node) => {
|
|
123
|
-
if (!this.isSelected(node)) {
|
|
124
|
-
this.setSelected(node)
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Deselects all currently selected items.
|
|
131
|
-
*/
|
|
132
|
-
deselectAll(): void {
|
|
133
|
-
this.selectable.forEach((node) => {
|
|
134
|
-
if (this.isSelected(node)) {
|
|
135
|
-
this.setUnselected(node)
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
const ids = [...this[selectedIdsValue]]
|
|
139
|
-
ids.forEach((info) => {
|
|
140
|
-
const elm = this.getDomainTarget(info.id)
|
|
141
|
-
if (!elm) {
|
|
142
|
-
const index = this[selectedIdsValue].indexOf(info)
|
|
143
|
-
this[selectedIdsValue].splice(index, 1)
|
|
144
|
-
} else if (this.isSelected(elm)) {
|
|
145
|
-
this.setUnselected(elm)
|
|
146
|
-
}
|
|
147
|
-
})
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Selects objects that are selectable by their `key`.
|
|
152
|
-
*
|
|
153
|
-
* The `addToSelection` argument is equivalent of calling `deselectAll()` and then `select(...)`.
|
|
154
|
-
*
|
|
155
|
-
* @param keys The list of domain ids of objects to select.
|
|
156
|
-
* @param addToSelection If true it adds to the current selection rather than replacing it.
|
|
157
|
-
*/
|
|
158
|
-
select(keys: string[], addToSelection = false): void {
|
|
159
|
-
if (!addToSelection) {
|
|
160
|
-
this.deselectAll()
|
|
161
|
-
}
|
|
162
|
-
keys.forEach((id) => {
|
|
163
|
-
const node = this.getSelectableDomainTarget(id)
|
|
164
|
-
if (!node) {
|
|
165
|
-
return
|
|
166
|
-
}
|
|
167
|
-
if (this.isSelectable(node) && !this.isSelected(node)) {
|
|
168
|
-
this.setSelected(node)
|
|
169
|
-
}
|
|
170
|
-
})
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Removes objects from selection.
|
|
175
|
-
*
|
|
176
|
-
* @param keys The list of domain ids of objects to deselect.
|
|
177
|
-
*/
|
|
178
|
-
deselect(keys: string[]): void {
|
|
179
|
-
keys.forEach((id) => {
|
|
180
|
-
const node = this.getSelectableDomainTarget(id)
|
|
181
|
-
if (!node) {
|
|
182
|
-
return
|
|
183
|
-
}
|
|
184
|
-
if (this.isSelectable(node) && this.isSelected(node)) {
|
|
185
|
-
this.setUnselected(node)
|
|
186
|
-
}
|
|
187
|
-
})
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Synchronizes the selection state with the view
|
|
192
|
-
*/
|
|
193
|
-
syncView(): void {
|
|
194
|
-
const nodes = this.target.querySelectorAll(`[data-selectable][data-selected]`)
|
|
195
|
-
if (this[selectedItemsValue].size !== nodes.length) {
|
|
196
|
-
// eslint-disable-next-line no-console
|
|
197
|
-
console.log('invalid selection', this[selectedItemsValue], nodes)
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Reads the attribute value to get the `key` property.
|
|
203
|
-
* @param selectable
|
|
204
|
-
* @returns The domain id of the object or `null` when not found
|
|
205
|
-
*/
|
|
206
|
-
readKey(selectable: Element): string | null {
|
|
207
|
-
if (selectable.hasAttribute('data-key')) {
|
|
208
|
-
return selectable.getAttribute('data-key')
|
|
209
|
-
}
|
|
210
|
-
return null
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Finds a workspace element that has the domain id.
|
|
215
|
-
* @param id Target domain id
|
|
216
|
-
*/
|
|
217
|
-
getDomainTarget(id: string): Element | null {
|
|
218
|
-
return this.target.querySelector(`[data-key="${id}"]`)
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Finds a workspace element that has the domain id and is selectable.
|
|
223
|
-
* @param id Target domain id
|
|
224
|
-
*/
|
|
225
|
-
getSelectableDomainTarget(id: string): Element | null {
|
|
226
|
-
const node = this.target.querySelector(`[data-key="${id}"][data-selectable]`)
|
|
227
|
-
return node
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// PRIVATE APIS
|
|
231
|
-
|
|
232
|
-
[clickHandler](e: PointerEvent): void {
|
|
233
|
-
const path = e.composedPath()
|
|
234
|
-
const svg = this.target.associationSvg
|
|
235
|
-
if (path[0] !== svg && path.includes(svg)) {
|
|
236
|
-
// Selection of the edges is managed by the workspace edges manager.
|
|
237
|
-
return
|
|
238
|
-
}
|
|
239
|
-
let selectableTarget
|
|
240
|
-
while (path.length > 0) {
|
|
241
|
-
const tmp = path.shift() as Node
|
|
242
|
-
if (tmp.nodeType !== Node.ELEMENT_NODE) {
|
|
243
|
-
continue
|
|
244
|
-
}
|
|
245
|
-
const typed = tmp as Element
|
|
246
|
-
if (this.isSelectable(typed)) {
|
|
247
|
-
selectableTarget = typed
|
|
248
|
-
break
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (!selectableTarget) {
|
|
252
|
-
this.deselectAll()
|
|
253
|
-
return
|
|
254
|
-
}
|
|
255
|
-
const isSelected = this.isSelected(selectableTarget)
|
|
256
|
-
// note: if toggle mode is required then this should toggle the attribute
|
|
257
|
-
if (isSelected) {
|
|
258
|
-
if (e.shiftKey) {
|
|
259
|
-
this.setUnselected(selectableTarget)
|
|
260
|
-
}
|
|
261
|
-
return
|
|
262
|
-
}
|
|
263
|
-
if (!e.shiftKey) {
|
|
264
|
-
this.deselectAll()
|
|
265
|
-
}
|
|
266
|
-
this.setSelected(selectableTarget)
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Observe items change in the element's light DOM
|
|
271
|
-
* @returns The observer handler
|
|
272
|
-
*/
|
|
273
|
-
[observeItems](): MutationObserver {
|
|
274
|
-
const config = { attributes: true, childList: true, subtree: true }
|
|
275
|
-
const observer = new MutationObserver(this[mutationHandler])
|
|
276
|
-
observer.observe(this.target, config)
|
|
277
|
-
return observer
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Processes mutations in the workspace and manages selection state.
|
|
282
|
-
* @param mutationsList List of mutations.
|
|
283
|
-
*/
|
|
284
|
-
[mutationHandler](mutationsList: MutationRecord[]): void {
|
|
285
|
-
for (const mutation of mutationsList) {
|
|
286
|
-
if (mutation.type === 'childList') {
|
|
287
|
-
this[processAddedNodes](mutation.addedNodes)
|
|
288
|
-
this[processRemovedNodes](mutation.removedNodes)
|
|
289
|
-
} else if (mutation.type === 'attributes') {
|
|
290
|
-
const { attributeName, target } = mutation
|
|
291
|
-
this[processAttributeChanged](target as Element, attributeName as string)
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
requestAnimationFrame(() => this.syncView())
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Processes added to the canvas elements.
|
|
299
|
-
* @param nodes The list of added nodes
|
|
300
|
-
*/
|
|
301
|
-
[processAddedNodes](nodes: NodeList): void {
|
|
302
|
-
nodes.forEach((node) => {
|
|
303
|
-
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
304
|
-
return
|
|
305
|
-
}
|
|
306
|
-
const typed = node as Element
|
|
307
|
-
const children = typed.querySelectorAll('*')
|
|
308
|
-
this[processAddedNodes](children)
|
|
309
|
-
if (!this.isSelectable(typed)) {
|
|
310
|
-
return
|
|
311
|
-
}
|
|
312
|
-
if (this.isSelected(typed)) {
|
|
313
|
-
this[propagateSelection](typed)
|
|
314
|
-
}
|
|
315
|
-
})
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Processes removed from the canvas elements.
|
|
320
|
-
* @param nodes The list of removed nodes
|
|
321
|
-
*/
|
|
322
|
-
[processRemovedNodes](nodes: NodeList): void {
|
|
323
|
-
nodes.forEach((node) => {
|
|
324
|
-
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
325
|
-
return
|
|
326
|
-
}
|
|
327
|
-
const typed = node as Element
|
|
328
|
-
const children = typed.querySelectorAll('*')
|
|
329
|
-
this[processRemovedNodes](children)
|
|
330
|
-
// An item might not be selectable but it may have a secondary selection
|
|
331
|
-
// through association.
|
|
332
|
-
// if (!this.isSelectable(typed)) {
|
|
333
|
-
// return;
|
|
334
|
-
// }
|
|
335
|
-
if (this.isSelected(typed)) {
|
|
336
|
-
this[propagateDeselection](typed)
|
|
337
|
-
}
|
|
338
|
-
})
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Processes changed attribute on any element in the canvas
|
|
343
|
-
* @param node Changed element
|
|
344
|
-
* @param prop Changed property
|
|
345
|
-
*/
|
|
346
|
-
[processAttributeChanged](node: Element, prop: string): void {
|
|
347
|
-
if (!['data-selected'].includes(prop)) {
|
|
348
|
-
return
|
|
349
|
-
}
|
|
350
|
-
if (node.hasAttribute(prop)) {
|
|
351
|
-
this[propagateSelection](node)
|
|
352
|
-
} else {
|
|
353
|
-
this[propagateDeselection](node)
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* Sets selection to the elements that are related to the `selectable` element.
|
|
359
|
-
*
|
|
360
|
-
* A related element is an element that is an association target to the `selectable`
|
|
361
|
-
* ot the `selectable` has `parent` attribute.
|
|
362
|
-
*
|
|
363
|
-
* The related are not added to the `selectedItems` set and does not have `selected` attribute.
|
|
364
|
-
* They are marked with `second-selected` attribute.
|
|
365
|
-
*/
|
|
366
|
-
[propagateSelection](selectable: Element): void {
|
|
367
|
-
if (this.selectedItems.has(selectable)) {
|
|
368
|
-
return
|
|
369
|
-
}
|
|
370
|
-
this.selectedItems.add(selectable)
|
|
371
|
-
const id = this.readKey(selectable)
|
|
372
|
-
if (!id) {
|
|
373
|
-
this[notifyChanged]()
|
|
374
|
-
return
|
|
375
|
-
}
|
|
376
|
-
const selected = this[selectedIdsValue]
|
|
377
|
-
const index = selected.findIndex((item) => item.id === id)
|
|
378
|
-
if (index === -1) {
|
|
379
|
-
selected.push({
|
|
380
|
-
id,
|
|
381
|
-
name: selectable.localName,
|
|
382
|
-
node: selectable,
|
|
383
|
-
})
|
|
384
|
-
}
|
|
385
|
-
this[selectAssociations](selectable)
|
|
386
|
-
this[selectReverseAssociations](selectable)
|
|
387
|
-
this[notifyChanged]()
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Marks `viz-association` and referenced targets of the `selectable` as a secondary selection.
|
|
392
|
-
*/
|
|
393
|
-
[selectAssociations](selectable: Element): void {
|
|
394
|
-
const nodes = selectable.querySelectorAll('viz-association')
|
|
395
|
-
if (!nodes.length) {
|
|
396
|
-
return
|
|
397
|
-
}
|
|
398
|
-
Array.from(nodes).forEach((node) => {
|
|
399
|
-
const target = node.getAttribute('data-target')
|
|
400
|
-
if (!target) {
|
|
401
|
-
return
|
|
402
|
-
}
|
|
403
|
-
node.setAttribute('secondary-selected', '')
|
|
404
|
-
const targetElement = this.getDomainTarget(target)
|
|
405
|
-
if (targetElement) {
|
|
406
|
-
targetElement.setAttribute('secondary-selected', '')
|
|
407
|
-
}
|
|
408
|
-
})
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Similar to `[selectAssociations]()` but it selects associations where
|
|
413
|
-
* the `selectable` is the target.
|
|
414
|
-
*/
|
|
415
|
-
[selectReverseAssociations](selectable: Element): void {
|
|
416
|
-
const id = this.readKey(selectable)
|
|
417
|
-
if (!id) {
|
|
418
|
-
return
|
|
419
|
-
}
|
|
420
|
-
const nodes = this.target.querySelectorAll(`viz-association[data-target="${id}"]`)
|
|
421
|
-
if (!nodes.length) {
|
|
422
|
-
return
|
|
423
|
-
}
|
|
424
|
-
Array.from(nodes).forEach((node) => {
|
|
425
|
-
const target = node.getAttribute('data-target')
|
|
426
|
-
if (!target) {
|
|
427
|
-
return
|
|
428
|
-
}
|
|
429
|
-
node.setAttribute('secondary-selected', '')
|
|
430
|
-
const targetElement = node.parentElement
|
|
431
|
-
if (targetElement) {
|
|
432
|
-
targetElement.setAttribute('secondary-selected', '')
|
|
433
|
-
}
|
|
434
|
-
})
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
/**
|
|
438
|
-
* Removes secondary selection from the elements that are related to the `selectable` element.
|
|
439
|
-
*
|
|
440
|
-
* A related element is an element that is an association target to the `selectable`
|
|
441
|
-
* ot the `selectable` has `parent` attribute.
|
|
442
|
-
*/
|
|
443
|
-
[propagateDeselection](selectable: Element): void {
|
|
444
|
-
if (!this.selectedItems.has(selectable)) {
|
|
445
|
-
return
|
|
446
|
-
}
|
|
447
|
-
this.selectedItems.delete(selectable)
|
|
448
|
-
const id = this.readKey(selectable)
|
|
449
|
-
if (!id) {
|
|
450
|
-
this[notifyChanged]()
|
|
451
|
-
return
|
|
452
|
-
}
|
|
453
|
-
const selected = this[selectedIdsValue]
|
|
454
|
-
const index = selected.findIndex((item) => item.id === id)
|
|
455
|
-
if (index !== -1) {
|
|
456
|
-
this[selectedIdsValue].splice(index, 1)
|
|
457
|
-
}
|
|
458
|
-
this[deselectAssociations](selectable)
|
|
459
|
-
this[deselectReverseAssociations](selectable)
|
|
460
|
-
this[notifyChanged]()
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Removes secondary selection mark from `viz-association`
|
|
465
|
-
*/
|
|
466
|
-
[deselectAssociations](selectable: Element): void {
|
|
467
|
-
const nodes = selectable.querySelectorAll('viz-association')
|
|
468
|
-
if (!nodes.length) {
|
|
469
|
-
return
|
|
470
|
-
}
|
|
471
|
-
Array.from(nodes).forEach((node) => {
|
|
472
|
-
const target = node.getAttribute('data-target')
|
|
473
|
-
if (!target) {
|
|
474
|
-
return
|
|
475
|
-
}
|
|
476
|
-
node.removeAttribute('secondary-selected')
|
|
477
|
-
const targetElement = this.getDomainTarget(target)
|
|
478
|
-
if (targetElement) {
|
|
479
|
-
targetElement.removeAttribute('secondary-selected')
|
|
480
|
-
}
|
|
481
|
-
})
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/**
|
|
485
|
-
* Similar to `[selectAssociation]()` but it selects associations where
|
|
486
|
-
* the `selectable` is the target.
|
|
487
|
-
*/
|
|
488
|
-
[deselectReverseAssociations](selectable: Element): void {
|
|
489
|
-
const id = this.readKey(selectable)
|
|
490
|
-
if (!id) {
|
|
491
|
-
return
|
|
492
|
-
}
|
|
493
|
-
const nodes = this.target.querySelectorAll(`viz-association[data-target="${id}"]`)
|
|
494
|
-
if (!nodes.length) {
|
|
495
|
-
return
|
|
496
|
-
}
|
|
497
|
-
Array.from(nodes).forEach((node) => {
|
|
498
|
-
const target = node.getAttribute('data-target')
|
|
499
|
-
if (!target) {
|
|
500
|
-
return
|
|
501
|
-
}
|
|
502
|
-
node.removeAttribute('secondary-selected')
|
|
503
|
-
const targetElement = node.parentElement
|
|
504
|
-
if (targetElement) {
|
|
505
|
-
targetElement.removeAttribute('secondary-selected')
|
|
506
|
-
}
|
|
507
|
-
})
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
[notifyChanged](): void {
|
|
511
|
-
this.target.dispatchEvent(new Event('selectedchange'))
|
|
512
|
-
}
|
|
513
|
-
}
|