@neovici/cosmoz-treenode-navigator 6.0.2 → 7.0.0

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.
Files changed (33) hide show
  1. package/README.md +4 -12
  2. package/dist/cosmoz-treenode-button-view.d.ts +2 -0
  3. package/dist/cosmoz-treenode-button-view.d.ts.map +1 -0
  4. package/dist/cosmoz-treenode-button-view.js +203 -0
  5. package/dist/cosmoz-treenode-button-view.js.map +1 -0
  6. package/dist/cosmoz-treenode-button-view.styles.d.ts +3 -0
  7. package/dist/cosmoz-treenode-button-view.styles.d.ts.map +1 -0
  8. package/dist/cosmoz-treenode-button-view.styles.js +218 -0
  9. package/dist/cosmoz-treenode-button-view.styles.js.map +1 -0
  10. package/dist/cosmoz-treenode-navigator.d.ts +2 -0
  11. package/dist/cosmoz-treenode-navigator.d.ts.map +1 -0
  12. package/dist/cosmoz-treenode-navigator.js +233 -0
  13. package/dist/cosmoz-treenode-navigator.js.map +1 -0
  14. package/dist/cosmoz-treenode-navigator.styles.d.ts +3 -0
  15. package/dist/cosmoz-treenode-navigator.styles.d.ts.map +1 -0
  16. package/{cosmoz-treenode-navigator.styles.js → dist/cosmoz-treenode-navigator.styles.js} +11 -7
  17. package/dist/cosmoz-treenode-navigator.styles.js.map +1 -0
  18. package/dist/hooks/useKeyDown.d.ts +2 -0
  19. package/dist/hooks/useKeyDown.d.ts.map +1 -0
  20. package/dist/hooks/useKeyDown.js +16 -0
  21. package/dist/hooks/useKeyDown.js.map +1 -0
  22. package/dist/util/helpers.d.ts +51 -0
  23. package/dist/util/helpers.d.ts.map +1 -0
  24. package/dist/util/helpers.js +123 -0
  25. package/dist/util/helpers.js.map +1 -0
  26. package/package.json +61 -16
  27. package/test/data/basicTree.js +34 -34
  28. package/test/data/rtlTest.js +6 -7
  29. package/cosmoz-treenode-button-view.js +0 -445
  30. package/cosmoz-treenode-navigator.js +0 -297
  31. package/helpers.js +0 -124
  32. package/test/cosmoz-treenode-button-view.test.js +0 -52
  33. package/test/cosmoz-treenode-navigator.test.js +0 -102
package/README.md CHANGED
@@ -1,13 +1,11 @@
1
1
  # cosmoz-treenode-navigator
2
2
 
3
-
4
3
  [![Build Status](https://github.com/Neovici/cosmoz-treenode-navigator/workflows/Github%20CI/badge.svg)](https://github.com/Neovici/cosmoz-treenode-navigator/actions?workflow=Github+CI)
5
4
  [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
6
5
 
7
- cosmoz-treenode-navigator is a Polymer component that lets you navigate and search through hierarchically structured data-nodes and select one of them.
8
-
6
+ cosmoz-treenode-navigator is a PionJS-based component that lets you navigate and search through hierarchically structured data-nodes and select one of them.
9
7
 
10
- It needs an object structure which looks for example like this in JSON:
8
+ It needs an object structure which looks, for example, like this in JSON:
11
9
 
12
10
  ```json
13
11
  {
@@ -16,18 +14,14 @@ It needs an object structure which looks for example like this in JSON:
16
14
  "children": {
17
15
  "7": {
18
16
  "name": "child seven",
19
- "children": {
20
-
21
- }
17
+ "children": {}
22
18
  },
23
19
  "8": {
24
20
  "name": "child eight",
25
21
  "children": {
26
22
  "9": {
27
23
  "name": "child nine",
28
- "children": {
29
-
30
- }
24
+ "children": {}
31
25
  }
32
26
  }
33
27
  }
@@ -37,5 +31,3 @@ It needs an object structure which looks for example like this in JSON:
37
31
  ```
38
32
 
39
33
  The property names "name" and "children" are configurable in the component through the setting of "childProperty" and "comparisonProperty".
40
-
41
-
@@ -0,0 +1,2 @@
1
+ import './cosmoz-treenode-navigator';
2
+ //# sourceMappingURL=cosmoz-treenode-button-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmoz-treenode-button-view.d.ts","sourceRoot":"","sources":["../src/cosmoz-treenode-button-view.ts"],"names":[],"mappings":"AAaA,OAAO,6BAA6B,CAAC"}
@@ -0,0 +1,203 @@
1
+ import { component, lift, useEffect, useMemo, useProperty, useRef, useState, } from '@pionjs/pion';
2
+ import { html } from 'lit-html';
3
+ import { ref } from 'lit/directives/ref.js';
4
+ import style from './cosmoz-treenode-button-view.styles';
5
+ import './cosmoz-treenode-navigator';
6
+ import { useKeyDown } from './hooks/useKeyDown';
7
+ import { getNode, getTreePathParts } from './util/helpers';
8
+ import { when } from 'lit-html/directives/when.js';
9
+ import { debounce$ } from '@neovici/cosmoz-utils/promise';
10
+ const CosmozNodeButtonView = ({ tree, multiSelection = false, dialogText, buttonTextPlaceholder, searchPlaceholder, noReset = false, searchGlobalPlaceholder, searchMinLength, nodePath, }) => {
11
+ const dialogRef = useRef(null);
12
+ const searchInputRef = useRef(null);
13
+ const [highlightedNode, setHighlightedNode] = useProperty('highlightedNode');
14
+ const [opened, setOpened] = useState(false);
15
+ const [nodesOnNodePath, setNodesOnNodePath] = useState([]);
16
+ const [selectedNodes, setSelectedNodes] = useState([]);
17
+ useEffect(() => {
18
+ if (nodePath && tree) {
19
+ setNodesOnNodePath(getTreePathParts(nodePath, tree));
20
+ }
21
+ }, [nodePath, tree]);
22
+ useEffect(() => {
23
+ if (dialogRef.current) {
24
+ searchInputRef.current = dialogRef.current
25
+ .querySelector('cosmoz-treenode-navigator')
26
+ ?.shadowRoot?.querySelector('cosmoz-input');
27
+ }
28
+ }, [dialogRef.current]);
29
+ const buttonLabel = useMemo(() => {
30
+ if (!Array.isArray(nodesOnNodePath) || nodesOnNodePath.length === 0) {
31
+ return buttonTextPlaceholder || '';
32
+ }
33
+ return nodesOnNodePath
34
+ .filter((n) => n)
35
+ .map((part) => part[tree.searchProperty])
36
+ .join(' / ');
37
+ }, [nodesOnNodePath, tree]);
38
+ const reset = () => {
39
+ setNodesOnNodePath([]);
40
+ setSelectedNodes([]);
41
+ setHighlightedNode(null);
42
+ };
43
+ const enableReset = !noReset && !!highlightedNode;
44
+ const clearItemSelection = ({ item, ev }) => {
45
+ setSelectedNodes(selectedNodes.filter((node) => node !== item));
46
+ ev.preventDefault();
47
+ ev.stopPropagation();
48
+ };
49
+ const getChipText = (node) => {
50
+ return node.name;
51
+ };
52
+ const showSelectedNodes = (multiSelection, selectedNodesLength) => {
53
+ return multiSelection && selectedNodesLength > 0;
54
+ };
55
+ const refit = debounce$(() => {
56
+ dialogRef.current?.fit?.();
57
+ }, 50);
58
+ const focusSearch = () => {
59
+ if (searchInputRef.current) {
60
+ searchInputRef.current.focus();
61
+ }
62
+ };
63
+ const onOpen = () => {
64
+ dialogRef.current?.showModal();
65
+ setOpened(true);
66
+ setTimeout(focusSearch, 0);
67
+ };
68
+ const onClose = () => {
69
+ setOpened(false);
70
+ dialogRef.current?.close();
71
+ };
72
+ useKeyDown('Escape', onClose);
73
+ const selectNode = () => {
74
+ if (!highlightedNode) {
75
+ return;
76
+ }
77
+ const path = highlightedNode.pathLocator;
78
+ const node = getNode(path, tree);
79
+ setNodesOnNodePath(getTreePathParts(path, tree));
80
+ if (multiSelection && node) {
81
+ if (!selectedNodes.some((n) => n.pathLocator === path)) {
82
+ setSelectedNodes([...selectedNodes, node]);
83
+ }
84
+ }
85
+ onClose();
86
+ };
87
+ return html `
88
+ <div class="actions" part="actions">
89
+ <button
90
+ class="actions__open-dialog"
91
+ type="button"
92
+ @click=${onOpen}
93
+ part="action-open"
94
+ >
95
+ ${buttonLabel}
96
+ </button>
97
+ ${when(enableReset, () => html ` <button
98
+ @click=${reset}
99
+ class="actions__clear"
100
+ part="action-reset"
101
+ >
102
+ <svg
103
+ width="10"
104
+ height="9"
105
+ viewBox="0 0 10 9"
106
+ stroke="currentColor"
107
+ xmlns="http://www.w3.org/2000/svg"
108
+ >
109
+ <line
110
+ x1="8.53033"
111
+ y1="0.53033"
112
+ x2="1.53033"
113
+ y2="7.53033"
114
+ stroke-width="1.5"
115
+ ></line>
116
+ <line
117
+ x1="8.46967"
118
+ y1="7.53033"
119
+ x2="1.46967"
120
+ y2="0.530331"
121
+ stroke-width="1.5"
122
+ ></line>
123
+ </svg>
124
+ </button>`)}
125
+ </div>
126
+ ${when(showSelectedNodes(multiSelection, selectedNodes.length), () => html `
127
+ <div id="chips" part="chips" class="row">
128
+ ${selectedNodes.map((item) => html `
129
+ <div class="chip">
130
+ <span>${getChipText(item)}</span>
131
+ <button
132
+ class="chip__clear"
133
+ @click=${(ev) => clearItemSelection({ item, ev })}
134
+ type="button"
135
+ >
136
+ &times;
137
+ </button>
138
+ </div>
139
+ `)}
140
+ </div>
141
+ `)}
142
+ <dialog
143
+ class="dialog"
144
+ part="dialog"
145
+ ${ref((el) => {
146
+ dialogRef.current = el;
147
+ })}
148
+ >
149
+ <header class="dialog-header" part="header">
150
+ <h1 class="dialog-heading" part="heading">${dialogText}</h1>
151
+ </header>
152
+ <main class="dialog-main" part="main">
153
+ <cosmoz-treenode-navigator
154
+ id="treeNavigator"
155
+ class="dialog-treenode-navigator no-padding"
156
+ .highlightedNode=${highlightedNode}
157
+ @highlighted-node-changed=${lift(setHighlightedNode)}
158
+ .searchPlaceholder=${searchPlaceholder}
159
+ .searchGlobalPlaceholder=${searchGlobalPlaceholder}
160
+ .searchMinLength=${searchMinLength}
161
+ .tree=${tree}
162
+ .opened=${opened}
163
+ @select-node=${selectNode}
164
+ @node-dblclicked=${selectNode}
165
+ @on-data-plane-changed=${refit}
166
+ >
167
+ <slot></slot>
168
+ </cosmoz-treenode-navigator>
169
+ </main>
170
+ <footer class="dialog-footer" part="footer">
171
+ <p class="dialog-footer-button-container">
172
+ <button
173
+ ?disabled=${!highlightedNode?.pathLocator}
174
+ autofocus
175
+ class="dialog-footer-button"
176
+ part="select-button"
177
+ @click=${selectNode}
178
+ >
179
+ Select
180
+ </button>
181
+ <button
182
+ class="dialog-footer-button"
183
+ part="cancel-button"
184
+ @click=${onClose}
185
+ >
186
+ Cancel
187
+ </button>
188
+ </p>
189
+ </footer>
190
+ </dialog>
191
+ `;
192
+ };
193
+ CosmozNodeButtonView.observedAttributes = [
194
+ 'button-text-placeholder',
195
+ 'dialog-text',
196
+ 'search-placeholder',
197
+ 'search-global-placeholder',
198
+ 'node-path',
199
+ ];
200
+ customElements.define('cosmoz-treenode-button-view', component(CosmozNodeButtonView, {
201
+ styleSheets: [style],
202
+ }));
203
+ //# sourceMappingURL=cosmoz-treenode-button-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmoz-treenode-button-view.js","sourceRoot":"","sources":["../src/cosmoz-treenode-button-view.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EACP,WAAW,EACX,MAAM,EACN,QAAQ,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,MAAM,sCAAsC,CAAC;AAEzD,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAiC1D,MAAM,oBAAoB,GAAG,CAAC,EAC7B,IAAI,EACJ,cAAc,GAAG,KAAK,EACtB,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,GAAG,KAAK,EACf,uBAAuB,EACvB,eAAe,EACf,QAAQ,GACS,EAAE,EAAE;IACrB,MAAM,SAAS,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAE7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,WAAW,CACxD,iBAAiB,CACjB,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACtB,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO;iBACxC,aAAa,CAAC,2BAA2B,CAAC;gBAC3C,EAAE,UAAU,EAAE,aAAa,CAAC,cAAc,CAA4B,CAAC;QACzE,CAAC;IACF,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,OAAO,qBAAqB,IAAI,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,eAAe;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACxC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvB,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,eAAe,CAAC;IAElD,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAA4B,EAAE,EAAE;QACrE,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,EAAE;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACzB,cAAuB,EACvB,mBAA2B,EAC1B,EAAE;QACH,OAAO,cAAc,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE;QAC5B,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACpB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEjC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjD,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;gBACxD,gBAAgB,CAAC,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,IAAI,CAAA;;;;;aAKC,MAAM;;;MAGb,WAAW;;KAEZ,IAAI,CACL,WAAW,EACX,GAAG,EAAE,CACJ,IAAI,CAAA;eACM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;eA0BL,CACX;;IAEA,IAAI,CACL,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,EACvD,GAAG,EAAE,CAAC,IAAI,CAAA;;OAEN,aAAa,CAAC,GAAG,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;gBAEJ,WAAW,CAAC,IAAI,CAAC;;;kBAGf,CAAC,EAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;;;;;;OAM1D,CACD;;IAEF,CACD;;;;KAIE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACZ,SAAS,CAAC,OAAO,GAAG,EAAsB,CAAC;IAC5C,CAAC,CAAC;;;gDAG2C,UAAU;;;;;;wBAMlC,eAAe;iCACN,IAAI,CAAC,kBAAkB,CAAC;0BAC/B,iBAAiB;gCACX,uBAAuB;wBAC/B,eAAe;aAC1B,IAAI;eACF,MAAM;oBACD,UAAU;wBACN,UAAU;8BACJ,KAAK;;;;;;;;kBAQjB,CAAC,eAAe,EAAE,WAAW;;;;eAIhC,UAAU;;;;;;;eAOV,OAAO;;;;;;;EAOpB,CAAC;AACH,CAAC,CAAC;AAEF,oBAAoB,CAAC,kBAAkB,GAAG;IACzC,yBAAyB;IACzB,aAAa;IACb,oBAAoB;IACpB,2BAA2B;IAC3B,WAAW;CACsB,CAAC;AAEnC,cAAc,CAAC,MAAM,CACpB,6BAA6B,EAC7B,SAAS,CAAC,oBAAoB,EAAE;IAC/B,WAAW,EAAE,CAAC,KAAK,CAAC;CACpB,CAAC,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: string;
2
+ export default _default;
3
+ //# sourceMappingURL=cosmoz-treenode-button-view.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmoz-treenode-button-view.styles.d.ts","sourceRoot":"","sources":["../src/cosmoz-treenode-button-view.styles.ts"],"names":[],"mappings":";AAEA,wBAuNE"}
@@ -0,0 +1,218 @@
1
+ import { css } from '@pionjs/pion';
2
+ export default css `
3
+ h1,
4
+ h2 {
5
+ font-weight: 500;
6
+ }
7
+
8
+ button {
9
+ position: relative;
10
+ overflow: hidden;
11
+ outline: none;
12
+
13
+ cursor: pointer;
14
+ border-radius: 500px;
15
+ }
16
+
17
+ button:after {
18
+ content: '';
19
+ position: absolute;
20
+ top: 50%;
21
+ left: 50%;
22
+ width: 5px;
23
+ height: 5px;
24
+ background: rgba(189, 195, 199, 0.5);
25
+ opacity: 0;
26
+ border-radius: 100%;
27
+ transform: scale(1, 1) translate(-50%);
28
+ transform-origin: 50% 50%;
29
+ }
30
+
31
+ @keyframes ripple {
32
+ 0% {
33
+ transform: scale(0, 0);
34
+ opacity: 1;
35
+ }
36
+ 20% {
37
+ transform: scale(25, 25);
38
+ opacity: 1;
39
+ }
40
+ 100% {
41
+ opacity: 0;
42
+ transform: scale(40, 40);
43
+ }
44
+ }
45
+
46
+ button:not(:disabled):active::after {
47
+ animation: ripple 1s ease-out;
48
+ }
49
+
50
+ .actions {
51
+ display: flex;
52
+ }
53
+
54
+ .actions button {
55
+ display: inline-block;
56
+
57
+ padding: 10px 16px 10px 16px;
58
+ margin: 14px 14px 12px 14px;
59
+
60
+ color: #101010;
61
+ font-size: 14px;
62
+
63
+ background-color: white;
64
+ border: 0px none rgb(16, 16, 16);
65
+ box-shadow: 0 2px 4px 0 #e5e5e5;
66
+
67
+ transition-behavior: normal, normal;
68
+ transition-delay: 0s, 0s;
69
+ transition-duration: 0.28s, 0.3s;
70
+ transition-property: box-shadow, background-color;
71
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), ease;
72
+ }
73
+
74
+ .actions button:hover {
75
+ box-shadow: 0 2px 3px 0 rgb(0 0 0 / 30%);
76
+ }
77
+
78
+ .actions__open-dialog {
79
+ min-width: 180px;
80
+ }
81
+
82
+ .actions__clear {
83
+ flex-basis: 100px;
84
+ flex-grow: 0;
85
+ flex-shrink: 0;
86
+ }
87
+
88
+ .actions__open-dialog + .actions__clear {
89
+ margin-left: 0;
90
+ }
91
+
92
+ .open {
93
+ flex: auto;
94
+ }
95
+
96
+ .pathToNode {
97
+ max-width: 320px;
98
+ overflow: hidden;
99
+ text-overflow: ellipsis;
100
+ white-space: nowrap;
101
+ direction: rtl;
102
+ text-align: left;
103
+ }
104
+
105
+ /* Safari only css fix */
106
+
107
+ _:matches(x),
108
+ _:lang(x) + _:-webkit-full-screen-document,
109
+ .pathToNode span {
110
+ display: inline-block;
111
+ }
112
+
113
+ #chips {
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ padding: 20px;
117
+ overflow-y: auto;
118
+ max-height: 30vh;
119
+ }
120
+
121
+ .chip {
122
+ display: flex;
123
+ margin: 1px 4px 1px 0;
124
+ padding: 0.25rem 0.45rem 0.25rem 0.5rem;
125
+
126
+ gap: 0.25rem;
127
+
128
+ border-radius: 500px;
129
+ background-color: #e0e0e0;
130
+ white-space: nowrap;
131
+ overflow: hidden;
132
+ align-items: center;
133
+ }
134
+
135
+ .chip .chip__clear {
136
+ margin: 0 0 0 0.5rem;
137
+
138
+ background: #a6a6a6;
139
+ border: none;
140
+ cursor: pointer;
141
+ font-size: 1rem;
142
+ color: white;
143
+ border-radius: 50%;
144
+ }
145
+
146
+ .chip > span {
147
+ color: #424242;
148
+ margin-left: 10px;
149
+ font-size: 13px;
150
+ overflow: hidden;
151
+ text-overflow: ellipsis;
152
+ }
153
+
154
+ .chip iron-icon {
155
+ margin: 2px 4px;
156
+ color: #cdcdcd;
157
+ background-color: #a6a6a6;
158
+ border-radius: 500px;
159
+ cursor: pointer;
160
+ min-width: 16px;
161
+ width: 16px;
162
+ min-height: 16px;
163
+ height: 16px;
164
+ }
165
+
166
+ .dialog {
167
+ width: 550px;
168
+ min-width: 250px;
169
+
170
+ padding: 0;
171
+ border-radius: 10px;
172
+ }
173
+
174
+ .dialog::backdrop {
175
+ background: rgba(0, 0, 0, 0.5);
176
+ }
177
+
178
+ .dialog-header {
179
+ padding: 10px 10px 0 10px;
180
+ }
181
+
182
+ .dialog-heading {
183
+ margin-bottom: 2rem;
184
+ padding: 0 8px;
185
+ font-size: 1.25rem;
186
+ font-weight: normal;
187
+ }
188
+
189
+ .dialog-footer {
190
+ padding: 0 10px 10px 10px;
191
+ text-align: right;
192
+ }
193
+
194
+ .dialog-footer-button-container {
195
+ margin: 0;
196
+ }
197
+
198
+ .dialog-footer-button {
199
+ margin: 0 0.25rem;
200
+ padding: 8px 14px;
201
+ background: none;
202
+ border: 1px solid rgb(164, 171, 174);
203
+ font-size: 15px;
204
+ cursor: pointer;
205
+ }
206
+
207
+ .dialog-footer-button:not(:disabled):active {
208
+ border: 1px outset rgb(164, 171, 174);
209
+ }
210
+
211
+ .dialog-footer-button:disabled {
212
+ color: #a8a8a8;
213
+ background-color: #f2f2f2;
214
+ cursor: default;
215
+ user-select: none;
216
+ }
217
+ `;
218
+ //# sourceMappingURL=cosmoz-treenode-button-view.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmoz-treenode-button-view.styles.js","sourceRoot":"","sources":["../src/cosmoz-treenode-button-view.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuNjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@neovici/cosmoz-input';
2
+ //# sourceMappingURL=cosmoz-treenode-navigator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmoz-treenode-navigator.d.ts","sourceRoot":"","sources":["../src/cosmoz-treenode-navigator.ts"],"names":[],"mappings":"AAeA,OAAO,uBAAuB,CAAC"}