openproject-primer_view_components 0.64.0 → 0.65.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/app/assets/javascripts/components/primer/open_project/collapsible.d.ts +2 -0
  4. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view.d.ts +29 -0
  5. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  6. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  7. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  8. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +38 -0
  9. data/app/assets/javascripts/components/primer/primer.d.ts +4 -0
  10. data/app/assets/javascripts/components/primer/shared_events.d.ts +15 -0
  11. data/app/assets/javascripts/primer_view_components.js +1 -1
  12. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  13. data/app/assets/styles/primer_view_components.css +1 -1
  14. data/app/assets/styles/primer_view_components.css.map +1 -1
  15. data/app/components/primer/alpha/select_panel.css +1 -1
  16. data/app/components/primer/alpha/select_panel.css.json +2 -2
  17. data/app/components/primer/alpha/select_panel.css.map +1 -1
  18. data/app/components/primer/alpha/select_panel.html.erb +1 -1
  19. data/app/components/primer/alpha/select_panel.pcss +5 -2
  20. data/app/components/primer/beta/spinner.html.erb +1 -1
  21. data/app/components/primer/beta/spinner.rb +2 -0
  22. data/app/components/primer/open_project/border_box/collapsible_header.css +1 -1
  23. data/app/components/primer/open_project/border_box/collapsible_header.css.json +2 -1
  24. data/app/components/primer/open_project/border_box/collapsible_header.css.map +1 -1
  25. data/app/components/primer/open_project/border_box/collapsible_header.html.erb +12 -1
  26. data/app/components/primer/open_project/border_box/collapsible_header.pcss +4 -0
  27. data/app/components/primer/open_project/border_box/collapsible_header.rb +16 -12
  28. data/app/components/primer/open_project/collapsible.d.ts +2 -0
  29. data/app/components/primer/open_project/collapsible.js +11 -0
  30. data/app/components/primer/open_project/collapsible.ts +10 -0
  31. data/app/components/primer/open_project/collapsible_section.html.erb +14 -2
  32. data/app/components/primer/open_project/collapsible_section.rb +5 -1
  33. data/app/components/primer/open_project/danger_dialog.html.erb +4 -0
  34. data/app/components/primer/open_project/feedback_dialog.html.erb +5 -0
  35. data/app/components/primer/open_project/file_tree_view/directory_node.html.erb +5 -0
  36. data/app/components/primer/open_project/file_tree_view/directory_node.rb +24 -0
  37. data/app/components/primer/open_project/file_tree_view/file_node.html.erb +2 -0
  38. data/app/components/primer/open_project/file_tree_view/file_node.rb +14 -0
  39. data/app/components/primer/open_project/file_tree_view.rb +15 -0
  40. data/app/components/primer/open_project/skeleton_box.css +1 -0
  41. data/app/components/primer/open_project/skeleton_box.css.json +6 -0
  42. data/app/components/primer/open_project/skeleton_box.css.map +1 -0
  43. data/app/components/primer/open_project/skeleton_box.html.erb +1 -0
  44. data/app/components/primer/open_project/skeleton_box.pcss +30 -0
  45. data/app/components/primer/open_project/skeleton_box.rb +27 -0
  46. data/app/components/primer/open_project/tree_view/icon.html.erb +1 -0
  47. data/app/components/primer/open_project/tree_view/icon.rb +22 -0
  48. data/app/components/primer/open_project/tree_view/icon_pair.html.erb +13 -0
  49. data/app/components/primer/open_project/tree_view/icon_pair.rb +42 -0
  50. data/app/components/primer/open_project/tree_view/leading_action.html.erb +3 -0
  51. data/app/components/primer/open_project/tree_view/leading_action.rb +18 -0
  52. data/app/components/primer/open_project/tree_view/leaf_node.html.erb +18 -0
  53. data/app/components/primer/open_project/tree_view/leaf_node.rb +96 -0
  54. data/app/components/primer/open_project/tree_view/loading_failure_message.html.erb +13 -0
  55. data/app/components/primer/open_project/tree_view/loading_failure_message.rb +31 -0
  56. data/app/components/primer/open_project/tree_view/node.html.erb +32 -0
  57. data/app/components/primer/open_project/tree_view/node.rb +155 -0
  58. data/app/components/primer/open_project/tree_view/skeleton_loader.html.erb +23 -0
  59. data/app/components/primer/open_project/tree_view/skeleton_loader.rb +36 -0
  60. data/app/components/primer/open_project/tree_view/spinner_loader.html.erb +20 -0
  61. data/app/components/primer/open_project/tree_view/spinner_loader.rb +33 -0
  62. data/app/components/primer/open_project/tree_view/sub_tree.html.erb +21 -0
  63. data/app/components/primer/open_project/tree_view/sub_tree.rb +106 -0
  64. data/app/components/primer/open_project/tree_view/sub_tree_container.html.erb +3 -0
  65. data/app/components/primer/open_project/tree_view/sub_tree_container.rb +39 -0
  66. data/app/components/primer/open_project/tree_view/sub_tree_node.html.erb +49 -0
  67. data/app/components/primer/open_project/tree_view/sub_tree_node.rb +172 -0
  68. data/app/components/primer/open_project/tree_view/tree_view.d.ts +29 -0
  69. data/app/components/primer/open_project/tree_view/tree_view.js +238 -0
  70. data/app/components/primer/open_project/tree_view/tree_view.ts +257 -0
  71. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  72. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.js +62 -0
  73. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.ts +56 -0
  74. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  75. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.js +29 -0
  76. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.ts +29 -0
  77. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  78. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.js +126 -0
  79. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.ts +156 -0
  80. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +38 -0
  81. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.js +362 -0
  82. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.ts +402 -0
  83. data/app/components/primer/open_project/tree_view/visual.html.erb +14 -0
  84. data/app/components/primer/open_project/tree_view/visual.rb +27 -0
  85. data/app/components/primer/open_project/tree_view.css +1 -0
  86. data/app/components/primer/open_project/tree_view.css.json +42 -0
  87. data/app/components/primer/open_project/tree_view.css.map +1 -0
  88. data/app/components/primer/open_project/tree_view.html.erb +7 -0
  89. data/app/components/primer/open_project/tree_view.pcss +319 -0
  90. data/app/components/primer/open_project/tree_view.rb +367 -0
  91. data/app/components/primer/primer.d.ts +4 -0
  92. data/app/components/primer/primer.js +4 -0
  93. data/app/components/primer/primer.pcss +2 -0
  94. data/app/components/primer/primer.ts +4 -0
  95. data/app/components/primer/shared_events.d.ts +15 -0
  96. data/app/components/primer/shared_events.ts +19 -0
  97. data/app/lib/primer/forms/acts_as_component.rb +1 -12
  98. data/lib/primer/view_components/version.rb +1 -1
  99. data/previews/primer/open_project/file_tree_view_preview/default.html.erb +16 -0
  100. data/previews/primer/open_project/file_tree_view_preview/playground.html.erb +4 -0
  101. data/previews/primer/open_project/file_tree_view_preview.rb +69 -0
  102. data/previews/primer/open_project/skeleton_box_preview.rb +20 -0
  103. data/previews/primer/open_project/tree_view_preview/default.html.erb +24 -0
  104. data/previews/primer/open_project/tree_view_preview/empty.html.erb +10 -0
  105. data/previews/primer/open_project/tree_view_preview/leaf_node_playground.html.erb +15 -0
  106. data/previews/primer/open_project/tree_view_preview/loading_failure.html.erb +36 -0
  107. data/previews/primer/open_project/tree_view_preview/loading_skeleton.html.erb +12 -0
  108. data/previews/primer/open_project/tree_view_preview/loading_spinner.html.erb +12 -0
  109. data/previews/primer/open_project/tree_view_preview/playground.html.erb +4 -0
  110. data/previews/primer/open_project/tree_view_preview.rb +139 -0
  111. data/static/arguments.json +400 -0
  112. data/static/audited_at.json +17 -0
  113. data/static/classes.json +18 -0
  114. data/static/constants.json +83 -0
  115. data/static/info_arch.json +1379 -0
  116. data/static/previews.json +167 -0
  117. data/static/statuses.json +17 -0
  118. metadata +75 -2
@@ -0,0 +1,362 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
+ if (kind === "m") throw new TypeError("Private method is not writable");
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
15
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
+ };
18
+ var _TreeViewSubTreeNodeElement_instances, _TreeViewSubTreeNodeElement_abortController, _TreeViewSubTreeNodeElement_activeElementIsLoader, _TreeViewSubTreeNodeElement_handleToggleEvent, _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent, _TreeViewSubTreeNodeElement_handleRetryButtonEvent, _TreeViewSubTreeNodeElement_handleKeyboardEvent, _TreeViewSubTreeNodeElement_handleCheckboxEvent, _TreeViewSubTreeNodeElement_update, _TreeViewSubTreeNodeElement_checkboxElement_get;
19
+ import { controller, target } from '@github/catalyst';
20
+ import { observeMutationsUntilConditionMet } from '../../utils';
21
+ let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLElement {
22
+ constructor() {
23
+ super(...arguments);
24
+ _TreeViewSubTreeNodeElement_instances.add(this);
25
+ _TreeViewSubTreeNodeElement_abortController.set(this, void 0);
26
+ _TreeViewSubTreeNodeElement_activeElementIsLoader.set(this, false);
27
+ }
28
+ connectedCallback() {
29
+ this.expanded = this.node.getAttribute('aria-expanded') === 'true';
30
+ this.loadingState = 'success';
31
+ observeMutationsUntilConditionMet(this, () => Boolean(this.node) && Boolean(this.subTree), () => {
32
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
33
+ });
34
+ const { signal } = (__classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_abortController, new AbortController(), "f"));
35
+ this.addEventListener('click', this, { signal });
36
+ this.addEventListener('keydown', this, { signal });
37
+ observeMutationsUntilConditionMet(this, () => Boolean(this.includeFragment), () => {
38
+ this.includeFragment.addEventListener('loadstart', this, { signal });
39
+ this.includeFragment.addEventListener('error', this, { signal });
40
+ this.includeFragment.addEventListener('include-fragment-replace', this, { signal });
41
+ this.includeFragment.addEventListener('include-fragment-replaced', (e) => {
42
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent).call(this, e);
43
+ }, { signal });
44
+ });
45
+ observeMutationsUntilConditionMet(this, () => Boolean(this.retryButton), () => {
46
+ this.retryButton.addEventListener('click', event => {
47
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleRetryButtonEvent).call(this, event);
48
+ }, { signal });
49
+ });
50
+ const checkedMutationObserver = new MutationObserver(() => {
51
+ if (this.selectStrategy !== 'descendants')
52
+ return;
53
+ let checkType = 'unknown';
54
+ for (const node of this.eachDirectDescendantNode()) {
55
+ switch (`${checkType} ${node.getAttribute('aria-checked') || 'false'}`) {
56
+ case 'unknown mixed':
57
+ case 'false mixed':
58
+ case 'true mixed':
59
+ case 'false true':
60
+ case 'true false':
61
+ checkType = 'mixed';
62
+ break;
63
+ case 'unknown false':
64
+ checkType = 'false';
65
+ break;
66
+ case 'unknown true':
67
+ checkType = 'true';
68
+ }
69
+ }
70
+ if (checkType !== 'unknown' && this.node?.getAttribute('aria-checked') !== checkType) {
71
+ this.node?.setAttribute('aria-checked', checkType);
72
+ }
73
+ });
74
+ checkedMutationObserver.observe(this, {
75
+ childList: true,
76
+ subtree: true,
77
+ attributeFilter: ['aria-checked'],
78
+ });
79
+ }
80
+ get selectStrategy() {
81
+ return this.node.getAttribute('data-select-strategy') || 'descendants';
82
+ }
83
+ disconnectedCallback() {
84
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_abortController, "f").abort();
85
+ }
86
+ handleEvent(event) {
87
+ const checkbox = event.target.closest('.TreeViewItemCheckbox');
88
+ if (checkbox && checkbox === __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "a", _TreeViewSubTreeNodeElement_checkboxElement_get)) {
89
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleCheckboxEvent).call(this, event);
90
+ }
91
+ else if (event.target === this.toggleButton) {
92
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleToggleEvent).call(this, event);
93
+ }
94
+ else if (event.target === this.includeFragment) {
95
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent).call(this, event);
96
+ }
97
+ else if (event instanceof KeyboardEvent) {
98
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_handleKeyboardEvent).call(this, event);
99
+ }
100
+ }
101
+ expand() {
102
+ const alreadyExpanded = this.expanded;
103
+ this.expanded = true;
104
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
105
+ if (!alreadyExpanded && this.treeView) {
106
+ this.treeView.dispatchEvent(new CustomEvent('treeViewNodeExpanded', {
107
+ bubbles: true,
108
+ detail: this.treeView?.infoFromNode(this.node),
109
+ }));
110
+ }
111
+ }
112
+ collapse() {
113
+ const alreadyCollapsed = !this.expanded;
114
+ this.expanded = false;
115
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
116
+ if (!alreadyCollapsed && this.treeView) {
117
+ // Prevent issue where currently focusable node is stuck inside a collapsed
118
+ // sub-tree and no node in the entire tree can be focused
119
+ const previousNode = this.subTree.querySelector("[tabindex='0']");
120
+ previousNode?.setAttribute('tabindex', '-1');
121
+ this.node.setAttribute('tabindex', '0');
122
+ this.treeView.dispatchEvent(new CustomEvent('treeViewNodeCollapsed', {
123
+ bubbles: true,
124
+ detail: this.treeView?.infoFromNode(this.node),
125
+ }));
126
+ }
127
+ }
128
+ toggle() {
129
+ if (this.expanded) {
130
+ this.collapse();
131
+ }
132
+ else {
133
+ this.expand();
134
+ }
135
+ }
136
+ get nodes() {
137
+ return this.querySelectorAll(':scope > [role=treeitem]');
138
+ }
139
+ *eachDirectDescendantNode() {
140
+ for (const leaf of this.subTree.querySelectorAll(':scope > [role=treeitem]')) {
141
+ yield leaf;
142
+ }
143
+ for (const subTree of this.subTree.querySelectorAll(':scope > tree-view-sub-tree-node > [role=treeitem]')) {
144
+ yield subTree;
145
+ }
146
+ }
147
+ *eachDescendantNode() {
148
+ for (const node of this.subTree.querySelectorAll('[role=treeitem]')) {
149
+ yield node;
150
+ }
151
+ }
152
+ get isEmpty() {
153
+ return this.nodes.length === 0;
154
+ }
155
+ get treeView() {
156
+ return this.closest('tree-view');
157
+ }
158
+ toggleChecked() {
159
+ const checkValue = this.node.getAttribute('aria-checked') || 'false';
160
+ const newCheckValue = checkValue === 'false' ? 'true' : 'false';
161
+ const nodeInfos = [];
162
+ const rootInfo = this.treeView?.infoFromNode(this.node, newCheckValue);
163
+ if (rootInfo)
164
+ nodeInfos.push(rootInfo);
165
+ if (this.selectStrategy === 'descendants') {
166
+ for (const node of this.eachDescendantNode()) {
167
+ const info = this.treeView?.infoFromNode(node, newCheckValue);
168
+ if (info)
169
+ nodeInfos.push(info);
170
+ }
171
+ }
172
+ const checkSuccess = this.dispatchEvent(new CustomEvent('treeViewBeforeNodeChecked', {
173
+ bubbles: true,
174
+ cancelable: true,
175
+ detail: nodeInfos,
176
+ }));
177
+ if (!checkSuccess)
178
+ return;
179
+ for (const nodeInfo of nodeInfos) {
180
+ nodeInfo.node.setAttribute('aria-checked', newCheckValue);
181
+ }
182
+ this.dispatchEvent(new CustomEvent('treeViewNodeChecked', {
183
+ bubbles: true,
184
+ cancelable: true,
185
+ detail: nodeInfos,
186
+ }));
187
+ }
188
+ };
189
+ _TreeViewSubTreeNodeElement_abortController = new WeakMap();
190
+ _TreeViewSubTreeNodeElement_activeElementIsLoader = new WeakMap();
191
+ _TreeViewSubTreeNodeElement_instances = new WeakSet();
192
+ _TreeViewSubTreeNodeElement_handleToggleEvent = function _TreeViewSubTreeNodeElement_handleToggleEvent(event) {
193
+ if (event.type === 'click') {
194
+ this.toggle();
195
+ }
196
+ };
197
+ _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent = function _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent(event) {
198
+ switch (event.type) {
199
+ // the request has started
200
+ case 'loadstart':
201
+ this.loadingState = 'loading';
202
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
203
+ break;
204
+ // the request failed
205
+ case 'error':
206
+ this.loadingState = 'error';
207
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
208
+ break;
209
+ // request succeeded but element has not yet been replaced
210
+ case 'include-fragment-replace':
211
+ this.loadingState = 'success';
212
+ __classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_activeElementIsLoader, document.activeElement === this.loadingIndicator.closest('li'), "f");
213
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
214
+ break;
215
+ case 'include-fragment-replaced':
216
+ if (__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_activeElementIsLoader, "f")) {
217
+ const firstItem = this.querySelector('[role=treeitem] [role=group] > :first-child');
218
+ if (!firstItem)
219
+ return;
220
+ if (firstItem.tagName.toLowerCase() === 'tree-view-sub-tree-node') {
221
+ const firstChild = firstItem.querySelector('[role=treeitem]');
222
+ firstChild?.focus();
223
+ }
224
+ else {
225
+ firstItem?.focus();
226
+ }
227
+ }
228
+ __classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_activeElementIsLoader, false, "f");
229
+ break;
230
+ }
231
+ };
232
+ _TreeViewSubTreeNodeElement_handleRetryButtonEvent = function _TreeViewSubTreeNodeElement_handleRetryButtonEvent(event) {
233
+ if (event.type === 'click') {
234
+ this.loadingState = 'loading';
235
+ __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
236
+ this.includeFragment.refetch();
237
+ }
238
+ };
239
+ _TreeViewSubTreeNodeElement_handleKeyboardEvent = function _TreeViewSubTreeNodeElement_handleKeyboardEvent(event) {
240
+ const node = event.target.closest('[role=treeitem]');
241
+ if (!node || this.treeView?.getNodeType(node) !== 'sub-tree') {
242
+ return;
243
+ }
244
+ switch (event.key) {
245
+ case 'Enter':
246
+ // eslint-disable-next-line no-restricted-syntax
247
+ event.stopPropagation();
248
+ this.toggle();
249
+ break;
250
+ case 'ArrowRight':
251
+ // eslint-disable-next-line no-restricted-syntax
252
+ event.stopPropagation();
253
+ this.expand();
254
+ break;
255
+ case 'ArrowLeft':
256
+ // eslint-disable-next-line no-restricted-syntax
257
+ event.stopPropagation();
258
+ this.collapse();
259
+ break;
260
+ case ' ':
261
+ // eslint-disable-next-line no-restricted-syntax
262
+ event.stopPropagation();
263
+ event.preventDefault();
264
+ this.toggleChecked();
265
+ break;
266
+ }
267
+ };
268
+ _TreeViewSubTreeNodeElement_handleCheckboxEvent = function _TreeViewSubTreeNodeElement_handleCheckboxEvent(event) {
269
+ if (event.type !== 'click')
270
+ return;
271
+ this.toggleChecked();
272
+ // prevent receiving this event twice
273
+ // eslint-disable-next-line no-restricted-syntax
274
+ event.stopPropagation();
275
+ };
276
+ _TreeViewSubTreeNodeElement_update = function _TreeViewSubTreeNodeElement_update() {
277
+ if (this.expanded) {
278
+ if (this.subTree)
279
+ this.subTree.hidden = false;
280
+ this.node.setAttribute('aria-expanded', 'true');
281
+ if (this.iconPair) {
282
+ this.iconPair.showExpanded();
283
+ }
284
+ if (this.expandedToggleIcon && this.collapsedToggleIcon) {
285
+ this.expandedToggleIcon.removeAttribute('hidden');
286
+ this.collapsedToggleIcon.setAttribute('hidden', 'hidden');
287
+ }
288
+ }
289
+ else {
290
+ if (this.subTree)
291
+ this.subTree.hidden = true;
292
+ this.node.setAttribute('aria-expanded', 'false');
293
+ if (this.iconPair) {
294
+ this.iconPair.showCollapsed();
295
+ }
296
+ if (this.expandedToggleIcon && this.collapsedToggleIcon) {
297
+ this.expandedToggleIcon.setAttribute('hidden', 'hidden');
298
+ this.collapsedToggleIcon.removeAttribute('hidden');
299
+ }
300
+ }
301
+ switch (this.loadingState) {
302
+ case 'loading':
303
+ if (this.loadingFailureMessage)
304
+ this.loadingFailureMessage.hidden = true;
305
+ if (this.loadingIndicator)
306
+ this.loadingIndicator.hidden = false;
307
+ break;
308
+ case 'error':
309
+ if (this.loadingIndicator)
310
+ this.loadingIndicator.hidden = true;
311
+ if (this.loadingFailureMessage)
312
+ this.loadingFailureMessage.hidden = false;
313
+ break;
314
+ // success/init case
315
+ default:
316
+ if (this.loadingIndicator)
317
+ this.loadingIndicator.hidden = true;
318
+ if (this.loadingFailureMessage)
319
+ this.loadingFailureMessage.hidden = true;
320
+ }
321
+ };
322
+ _TreeViewSubTreeNodeElement_checkboxElement_get = function _TreeViewSubTreeNodeElement_checkboxElement_get() {
323
+ return this.querySelector('.TreeViewItemCheckbox');
324
+ };
325
+ __decorate([
326
+ target
327
+ ], TreeViewSubTreeNodeElement.prototype, "node", void 0);
328
+ __decorate([
329
+ target
330
+ ], TreeViewSubTreeNodeElement.prototype, "subTree", void 0);
331
+ __decorate([
332
+ target
333
+ ], TreeViewSubTreeNodeElement.prototype, "iconPair", void 0);
334
+ __decorate([
335
+ target
336
+ ], TreeViewSubTreeNodeElement.prototype, "toggleButton", void 0);
337
+ __decorate([
338
+ target
339
+ ], TreeViewSubTreeNodeElement.prototype, "expandedToggleIcon", void 0);
340
+ __decorate([
341
+ target
342
+ ], TreeViewSubTreeNodeElement.prototype, "collapsedToggleIcon", void 0);
343
+ __decorate([
344
+ target
345
+ ], TreeViewSubTreeNodeElement.prototype, "includeFragment", void 0);
346
+ __decorate([
347
+ target
348
+ ], TreeViewSubTreeNodeElement.prototype, "loadingIndicator", void 0);
349
+ __decorate([
350
+ target
351
+ ], TreeViewSubTreeNodeElement.prototype, "loadingFailureMessage", void 0);
352
+ __decorate([
353
+ target
354
+ ], TreeViewSubTreeNodeElement.prototype, "retryButton", void 0);
355
+ TreeViewSubTreeNodeElement = __decorate([
356
+ controller
357
+ ], TreeViewSubTreeNodeElement);
358
+ export { TreeViewSubTreeNodeElement };
359
+ if (!window.customElements.get('tree-view-sub-tree-node')) {
360
+ window.TreeViewSubTreeNodeElement = TreeViewSubTreeNodeElement;
361
+ window.customElements.define('tree-view-sub-tree-node', TreeViewSubTreeNodeElement);
362
+ }