@dso-toolkit/core 45.0.1 → 45.1.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 (175) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +110 -0
  2. package/dist/cjs/dso-accordion.cjs.entry.js +297 -0
  3. package/dist/cjs/dso-alert.cjs.entry.js +3 -3
  4. package/dist/cjs/dso-attachments-counter.cjs.entry.js +3 -3
  5. package/dist/cjs/dso-autosuggest.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-badge.cjs.entry.js +1 -1
  7. package/dist/cjs/dso-banner.cjs.entry.js +2 -2
  8. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +3 -3
  10. package/dist/cjs/dso-header.cjs.entry.js +6 -6
  11. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +59 -3
  12. package/dist/cjs/dso-highlight-box.cjs.entry.js +2 -2
  13. package/dist/cjs/dso-icon.cjs.entry.js +2 -2
  14. package/dist/cjs/dso-image-overlay.cjs.entry.js +11 -5
  15. package/dist/cjs/dso-info-button.cjs.entry.js +4 -3
  16. package/dist/cjs/dso-info_2.cjs.entry.js +3 -3
  17. package/dist/cjs/dso-label.cjs.entry.js +1 -1
  18. package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
  19. package/dist/cjs/dso-map-controls.cjs.entry.js +2 -2
  20. package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-ozon-content.cjs.entry.js +44 -9
  22. package/dist/cjs/dso-pagination.cjs.entry.js +98 -6
  23. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  24. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  25. package/dist/cjs/dso-responsive-element.cjs.entry.js +6 -1
  26. package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
  27. package/dist/cjs/dso-toolkit.cjs.js +2 -2
  28. package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
  29. package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
  30. package/dist/cjs/dso-viewer-grid.cjs.entry.js +11 -5
  31. package/dist/cjs/{focus-trap.esm-a85643b0.js → focus-trap.esm-e2addb10.js} +28 -11
  32. package/dist/cjs/{index-0a7c679a.js → index-4066351a.js} +7 -0
  33. package/dist/cjs/{index.esm-3520a2a6.js → index.esm-50325ea2.js} +110 -12
  34. package/dist/cjs/loader.cjs.js +2 -2
  35. package/dist/collection/collection-manifest.json +2 -0
  36. package/dist/collection/components/accordion/accordion.css +9 -0
  37. package/dist/collection/components/accordion/accordion.interfaces.js +1 -0
  38. package/dist/collection/components/accordion/accordion.js +260 -0
  39. package/dist/collection/components/accordion/accordion.template.js +26 -0
  40. package/dist/collection/components/accordion/components/accordion-section.css +221 -0
  41. package/dist/collection/components/accordion/components/accordion-section.js +292 -0
  42. package/dist/collection/components/alert/alert.css +4 -41
  43. package/dist/collection/components/alert/alert.js +1 -0
  44. package/dist/collection/components/attachments-counter/attachments-counter.css +0 -12
  45. package/dist/collection/components/attachments-counter/attachments-counter.js +2 -1
  46. package/dist/collection/components/banner/banner.css +0 -4
  47. package/dist/collection/components/dropdown-menu/dropdown-menu.css +0 -7
  48. package/dist/collection/components/header/header.css +20 -379
  49. package/dist/collection/components/header/header.js +22 -24
  50. package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +3 -102
  51. package/dist/collection/components/helpcenter-panel/helpcenter-panel.js +71 -5
  52. package/dist/collection/components/highlight-box/highlight-box.css +0 -2
  53. package/dist/collection/components/image-overlay/image-overlay.css +37 -1134
  54. package/dist/collection/components/image-overlay/image-overlay.js +13 -3
  55. package/dist/collection/components/image-overlay/image-overlay.template.js +9 -1
  56. package/dist/collection/components/info/info.css +19 -1070
  57. package/dist/collection/components/info/info.js +1 -0
  58. package/dist/collection/components/info-button/info-button.css +8 -17
  59. package/dist/collection/components/info-button/info-button.js +9 -3
  60. package/dist/collection/components/map-controls/map-controls.css +20 -1172
  61. package/dist/collection/components/ozon-content/nodes/figuur.node.js +41 -6
  62. package/dist/collection/components/ozon-content/ozon-content.css +22 -41
  63. package/dist/collection/components/pagination/pagination.css +1 -0
  64. package/dist/collection/components/pagination/pagination.js +121 -13
  65. package/dist/collection/components/responsive-element/responsive-element.interfaces.js +1 -0
  66. package/dist/collection/components/responsive-element/responsive-element.js +48 -1
  67. package/dist/collection/components/responsive-element/responsive-element.template.js +4 -2
  68. package/dist/collection/components/toggletip/toggletip.css +4 -0
  69. package/dist/collection/components/viewer-grid/viewer-grid.css +34 -1220
  70. package/dist/collection/components/viewer-grid/viewer-grid.js +12 -1
  71. package/dist/custom-elements/index.d.ts +12 -0
  72. package/dist/custom-elements/index.js +1933 -1219
  73. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  74. package/dist/dso-toolkit/p-02b2e01c.entry.js +1 -0
  75. package/dist/dso-toolkit/{p-d780f9ff.entry.js → p-05a9e206.entry.js} +1 -1
  76. package/dist/dso-toolkit/p-22c35db5.js +5 -0
  77. package/dist/dso-toolkit/{p-361528b4.entry.js → p-2e74485e.entry.js} +1 -1
  78. package/dist/dso-toolkit/p-2f6b1092.entry.js +1 -0
  79. package/dist/dso-toolkit/{p-bf4d6f63.entry.js → p-3381c859.entry.js} +1 -1
  80. package/dist/dso-toolkit/{p-3799366e.entry.js → p-37a34037.entry.js} +1 -1
  81. package/dist/dso-toolkit/p-42450cfe.js +1 -0
  82. package/dist/dso-toolkit/p-4c44d27c.entry.js +1 -0
  83. package/dist/dso-toolkit/{p-91b6a181.entry.js → p-4fd140e9.entry.js} +1 -1
  84. package/dist/dso-toolkit/p-53c7bf4f.entry.js +1 -0
  85. package/dist/dso-toolkit/{p-d60876c2.entry.js → p-67b11174.entry.js} +1 -1
  86. package/dist/dso-toolkit/{p-e4bcafc4.entry.js → p-6cac0292.entry.js} +1 -1
  87. package/dist/dso-toolkit/p-7213783b.entry.js +1 -0
  88. package/dist/dso-toolkit/p-73bbb9a6.entry.js +1 -0
  89. package/dist/dso-toolkit/{p-16635f4b.entry.js → p-8515d157.entry.js} +1 -1
  90. package/dist/dso-toolkit/{p-375a2523.entry.js → p-93b53eb7.entry.js} +1 -1
  91. package/dist/dso-toolkit/p-ac0c0eee.entry.js +1 -0
  92. package/dist/dso-toolkit/p-b1a75b67.entry.js +1 -0
  93. package/dist/dso-toolkit/p-b6afe104.entry.js +1 -0
  94. package/dist/dso-toolkit/{p-590cbab6.entry.js → p-b9531adb.entry.js} +1 -1
  95. package/dist/dso-toolkit/p-c339891f.entry.js +1 -0
  96. package/dist/dso-toolkit/{p-6bc71e48.entry.js → p-d2255268.entry.js} +1 -1
  97. package/dist/dso-toolkit/p-d6192ab8.entry.js +1 -0
  98. package/dist/dso-toolkit/p-de50f5f1.entry.js +1 -0
  99. package/dist/dso-toolkit/p-e16b5d71.entry.js +1 -0
  100. package/dist/dso-toolkit/p-e2e2106e.entry.js +1 -0
  101. package/dist/dso-toolkit/p-ea1d4c81.entry.js +1 -0
  102. package/dist/dso-toolkit/{p-25f8dbc6.entry.js → p-ec3b8800.entry.js} +1 -1
  103. package/dist/dso-toolkit/p-efd815dc.entry.js +1 -0
  104. package/dist/dso-toolkit/p-f42d8240.entry.js +1 -0
  105. package/dist/dso-toolkit/p-f8b023c4.js +5 -0
  106. package/dist/esm/dso-accordion-section.entry.js +106 -0
  107. package/dist/esm/dso-accordion.entry.js +293 -0
  108. package/dist/esm/dso-alert.entry.js +3 -3
  109. package/dist/esm/dso-attachments-counter.entry.js +3 -3
  110. package/dist/esm/dso-autosuggest.entry.js +1 -1
  111. package/dist/esm/dso-badge.entry.js +1 -1
  112. package/dist/esm/dso-banner.entry.js +2 -2
  113. package/dist/esm/dso-date-picker.entry.js +1 -1
  114. package/dist/esm/dso-dropdown-menu.entry.js +3 -3
  115. package/dist/esm/dso-header.entry.js +6 -6
  116. package/dist/esm/dso-helpcenter-panel.entry.js +59 -3
  117. package/dist/esm/dso-highlight-box.entry.js +2 -2
  118. package/dist/esm/dso-icon.entry.js +2 -2
  119. package/dist/esm/dso-image-overlay.entry.js +11 -5
  120. package/dist/esm/dso-info-button.entry.js +4 -3
  121. package/dist/esm/dso-info_2.entry.js +3 -3
  122. package/dist/esm/dso-label.entry.js +1 -1
  123. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  124. package/dist/esm/dso-map-controls.entry.js +2 -2
  125. package/dist/esm/dso-map-overlays.entry.js +1 -1
  126. package/dist/esm/dso-ozon-content.entry.js +44 -9
  127. package/dist/esm/dso-pagination.entry.js +98 -6
  128. package/dist/esm/dso-progress-bar.entry.js +1 -1
  129. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  130. package/dist/esm/dso-responsive-element.entry.js +6 -1
  131. package/dist/esm/dso-toggletip.entry.js +2 -2
  132. package/dist/esm/dso-toolkit.js +2 -2
  133. package/dist/esm/dso-tooltip.entry.js +1 -1
  134. package/dist/esm/dso-tree-view.entry.js +1 -1
  135. package/dist/esm/dso-viewer-grid.entry.js +11 -5
  136. package/dist/esm/{focus-trap.esm-a01ad6c9.js → focus-trap.esm-e3b5bde3.js} +28 -11
  137. package/dist/esm/{index-1602fde1.js → index-771c1291.js} +7 -1
  138. package/dist/esm/{index.esm-45465af7.js → index.esm-4510c39e.js} +110 -12
  139. package/dist/esm/loader.js +2 -2
  140. package/dist/types/components/accordion/accordion.d.ts +32 -0
  141. package/dist/types/components/accordion/accordion.interfaces.d.ts +20 -0
  142. package/dist/types/components/accordion/accordion.template.d.ts +2 -0
  143. package/dist/types/components/accordion/components/accordion-section.d.ts +25 -0
  144. package/dist/types/components/helpcenter-panel/helpcenter-panel.d.ts +11 -0
  145. package/dist/types/components/image-overlay/image-overlay.d.ts +3 -0
  146. package/dist/types/components/info-button/info-button.d.ts +1 -0
  147. package/dist/types/components/ozon-content/nodes/figuur.node.d.ts +4 -1
  148. package/dist/types/components/pagination/pagination.d.ts +15 -0
  149. package/dist/types/components/responsive-element/responsive-element.d.ts +5 -2
  150. package/dist/types/components/responsive-element/responsive-element.interfaces.d.ts +5 -0
  151. package/dist/types/components/responsive-element/responsive-element.template.d.ts +1 -1
  152. package/dist/types/components.d.ts +99 -0
  153. package/package.json +4 -3
  154. package/readme.md +0 -7
  155. package/dist/collection/icon/dso-icon-sass-function.js +0 -42
  156. package/dist/dso-toolkit/dso-toolkit.css +0 -1
  157. package/dist/dso-toolkit/p-02272301.entry.js +0 -1
  158. package/dist/dso-toolkit/p-10a6db1a.entry.js +0 -1
  159. package/dist/dso-toolkit/p-131d54e3.js +0 -5
  160. package/dist/dso-toolkit/p-1450f113.entry.js +0 -1
  161. package/dist/dso-toolkit/p-15d0f2eb.entry.js +0 -1
  162. package/dist/dso-toolkit/p-3b5f957e.entry.js +0 -1
  163. package/dist/dso-toolkit/p-49938275.entry.js +0 -1
  164. package/dist/dso-toolkit/p-5a56d726.entry.js +0 -1
  165. package/dist/dso-toolkit/p-5e5fbd41.js +0 -5
  166. package/dist/dso-toolkit/p-68d49733.entry.js +0 -1
  167. package/dist/dso-toolkit/p-7b716383.entry.js +0 -1
  168. package/dist/dso-toolkit/p-b95bc2c7.entry.js +0 -1
  169. package/dist/dso-toolkit/p-c1070a58.entry.js +0 -1
  170. package/dist/dso-toolkit/p-c62606a3.js +0 -1
  171. package/dist/dso-toolkit/p-e7888d49.entry.js +0 -1
  172. package/dist/dso-toolkit/p-eb17d45e.entry.js +0 -1
  173. package/dist/dso-toolkit/p-f726111e.entry.js +0 -1
  174. package/dist/dso-toolkit/p-fd8a8509.entry.js +0 -1
  175. package/dist/types/icon/dso-icon-sass-function.d.ts +0 -4
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const index_esm = require('./index.esm-3520a2a6.js');
3
+ const index_esm = require('./index.esm-50325ea2.js');
4
4
 
5
5
  /*!
6
- * focus-trap 6.8.1
6
+ * focus-trap 7.0.0
7
7
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
8
8
  */
9
9
 
@@ -250,6 +250,10 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
250
250
  optionValue = optionValue.apply(void 0, params);
251
251
  }
252
252
 
253
+ if (optionValue === true) {
254
+ optionValue = undefined; // use default value
255
+ }
256
+
253
257
  if (!optionValue) {
254
258
  if (optionValue === undefined || optionValue === false) {
255
259
  return optionValue;
@@ -553,16 +557,16 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
553
557
  };
554
558
 
555
559
  var checkClick = function checkClick(e) {
556
- if (valueOrHandler(config.clickOutsideDeactivates, e)) {
557
- return;
558
- }
559
-
560
560
  var target = getActualTarget(e);
561
561
 
562
562
  if (findContainerIndex(target) >= 0) {
563
563
  return;
564
564
  }
565
565
 
566
+ if (valueOrHandler(config.clickOutsideDeactivates, e)) {
567
+ return;
568
+ }
569
+
566
570
  if (valueOrHandler(config.allowOutsideClick, e)) {
567
571
  return;
568
572
  }
@@ -623,6 +627,14 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
623
627
 
624
628
 
625
629
  trap = {
630
+ get active() {
631
+ return state.active;
632
+ },
633
+
634
+ get paused() {
635
+ return state.paused;
636
+ },
637
+
626
638
  activate: function activate(activateOptions) {
627
639
  if (state.active) {
628
640
  return this;
@@ -669,6 +681,12 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
669
681
  return this;
670
682
  }
671
683
 
684
+ var options = _objectSpread2({
685
+ onDeactivate: config.onDeactivate,
686
+ onPostDeactivate: config.onPostDeactivate,
687
+ checkCanReturnFocus: config.checkCanReturnFocus
688
+ }, deactivateOptions);
689
+
672
690
  clearTimeout(state.delayInitialFocusTimer); // noop if undefined
673
691
 
674
692
  state.delayInitialFocusTimer = undefined;
@@ -676,16 +694,15 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
676
694
  state.active = false;
677
695
  state.paused = false;
678
696
  activeFocusTraps.deactivateTrap(trap);
679
- var onDeactivate = getOption(deactivateOptions, 'onDeactivate');
680
- var onPostDeactivate = getOption(deactivateOptions, 'onPostDeactivate');
681
- var checkCanReturnFocus = getOption(deactivateOptions, 'checkCanReturnFocus');
697
+ var onDeactivate = getOption(options, 'onDeactivate');
698
+ var onPostDeactivate = getOption(options, 'onPostDeactivate');
699
+ var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
700
+ var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
682
701
 
683
702
  if (onDeactivate) {
684
703
  onDeactivate();
685
704
  }
686
705
 
687
- var returnFocus = getOption(deactivateOptions, 'returnFocus', 'returnFocusOnDeactivate');
688
-
689
706
  var finishDeactivation = function finishDeactivation() {
690
707
  delay(function () {
691
708
  if (returnFocus) {
@@ -29,6 +29,7 @@ let useNativeShadowDom = false;
29
29
  let checkSlotFallbackVisibility = false;
30
30
  let checkSlotRelocate = false;
31
31
  let isSvgMode = false;
32
+ let renderingRef = null;
32
33
  let queuePending = false;
33
34
  const win = typeof window !== 'undefined' ? window : {};
34
35
  const doc = win.document || { head: {} };
@@ -82,6 +83,8 @@ const hostListenerProxy = (hostRef, methodName) => (ev) => {
82
83
  const getHostListenerTarget = (elm, flags) => {
83
84
  if (flags & 4 /* TargetDocument */)
84
85
  return doc;
86
+ if (flags & 8 /* TargetWindow */)
87
+ return win;
85
88
  return elm;
86
89
  };
87
90
  // prettier-ignore
@@ -1177,6 +1180,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1177
1180
  };
1178
1181
  const callRender = (hostRef, instance, elm) => {
1179
1182
  try {
1183
+ renderingRef = instance;
1180
1184
  instance = instance.render() ;
1181
1185
  {
1182
1186
  hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
@@ -1198,8 +1202,10 @@ const callRender = (hostRef, instance, elm) => {
1198
1202
  catch (e) {
1199
1203
  consoleError(e, hostRef.$hostElement$);
1200
1204
  }
1205
+ renderingRef = null;
1201
1206
  return null;
1202
1207
  };
1208
+ const getRenderingRef = () => renderingRef;
1203
1209
  const postUpdateComponent = (hostRef) => {
1204
1210
  const tagName = hostRef.$cmpMeta$.$tagName$;
1205
1211
  const elm = hostRef.$hostElement$;
@@ -2047,6 +2053,7 @@ exports.bootstrapLazy = bootstrapLazy;
2047
2053
  exports.createEvent = createEvent;
2048
2054
  exports.forceUpdate = forceUpdate;
2049
2055
  exports.getElement = getElement;
2056
+ exports.getRenderingRef = getRenderingRef;
2050
2057
  exports.h = h;
2051
2058
  exports.promiseResolve = promiseResolve;
2052
2059
  exports.registerInstance = registerInstance;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  /*!
4
- * tabbable 5.3.1
4
+ * tabbable 6.0.0
5
5
  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
6
6
  */
7
7
  var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
@@ -36,6 +36,12 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
36
36
  * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.
37
37
  */
38
38
 
39
+ /**
40
+ * @callback ShadowRootFilter
41
+ * @param {Element} shadowHostNode the element which contains shadow content
42
+ * @returns {boolean} true if a shadow root could potentially contain valid candidates.
43
+ */
44
+
39
45
  /**
40
46
  * @typedef {Object} CandidatesScope
41
47
  * @property {Element} scope contains inner candidates
@@ -49,6 +55,7 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
49
55
  * or a boolean stating if it has an undisclosed shadow root
50
56
  * @property {(node: Element) => boolean} filter filter candidates
51
57
  * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list
58
+ * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;
52
59
  */
53
60
 
54
61
  /**
@@ -91,8 +98,9 @@ var getCandidatesIteratively = function getCandidatesIteratively(elements, inclu
91
98
 
92
99
  var shadowRoot = element.shadowRoot || // check for an undisclosed shadow
93
100
  typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);
101
+ var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);
94
102
 
95
- if (shadowRoot) {
103
+ if (shadowRoot && validShadowRoot) {
96
104
  // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
97
105
  // shadow exists, so look at light dom children as fallback BUT create a scope for any
98
106
  // child candidates found because they're likely slotted elements (elements that are
@@ -203,6 +211,45 @@ var isRadio = function isRadio(node) {
203
211
 
204
212
  var isNonTabbableRadio = function isNonTabbableRadio(node) {
205
213
  return isRadio(node) && !isTabbableRadio(node);
214
+ }; // determines if a node is ultimately attached to the window's document
215
+
216
+
217
+ var isNodeAttached = function isNodeAttached(node) {
218
+ var _nodeRootHost;
219
+
220
+ // The root node is the shadow root if the node is in a shadow DOM; some document otherwise
221
+ // (but NOT _the_ document; see second 'If' comment below for more).
222
+ // If rootNode is shadow root, it'll have a host, which is the element to which the shadow
223
+ // is attached, and the one we need to check if it's in the document or not (because the
224
+ // shadow, and all nodes it contains, is never considered in the document since shadows
225
+ // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,
226
+ // is hidden, or is not in the document itself but is detached, it will affect the shadow's
227
+ // visibility, including all the nodes it contains). The host could be any normal node,
228
+ // or a custom element (i.e. web component). Either way, that's the one that is considered
229
+ // part of the document, not the shadow root, nor any of its children (i.e. the node being
230
+ // tested).
231
+ // To further complicate things, we have to look all the way up until we find a shadow HOST
232
+ // that is attached (or find none) because the node might be in nested shadows...
233
+ // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the
234
+ // document (per the docs) and while it's a Document-type object, that document does not
235
+ // appear to be the same as the node's `ownerDocument` for some reason, so it's safer
236
+ // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,
237
+ // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when
238
+ // node is actually detached.
239
+ var nodeRootHost = getRootNode(node).host;
240
+ var attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && _nodeRootHost.ownerDocument.contains(nodeRootHost) || node.ownerDocument.contains(node));
241
+
242
+ while (!attached && nodeRootHost) {
243
+ var _nodeRootHost2;
244
+
245
+ // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,
246
+ // which means we need to get the host's host and check if that parent host is contained
247
+ // in (i.e. attached to) the document
248
+ nodeRootHost = getRootNode(nodeRootHost).host;
249
+ attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && _nodeRootHost2.ownerDocument.contains(nodeRootHost));
250
+ }
251
+
252
+ return attached;
206
253
  };
207
254
 
208
255
  var isZeroArea = function isZeroArea(node) {
@@ -217,6 +264,11 @@ var isHidden = function isHidden(node, _ref) {
217
264
  var displayCheck = _ref.displayCheck,
218
265
  getShadowRoot = _ref.getShadowRoot;
219
266
 
267
+ // NOTE: visibility will be `undefined` if node is detached from the document
268
+ // (see notes about this further down), which means we will consider it visible
269
+ // (this is legacy behavior from a very long way back)
270
+ // NOTE: we check this regardless of `displayCheck="none"` because this is a
271
+ // _visibility_ check, not a _display_ check
220
272
  if (getComputedStyle(node).visibility === 'hidden') {
221
273
  return true;
222
274
  }
@@ -228,7 +280,7 @@ var isHidden = function isHidden(node, _ref) {
228
280
  return true;
229
281
  }
230
282
 
231
- if (!displayCheck || displayCheck === 'full') {
283
+ if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {
232
284
  if (typeof getShadowRoot === 'function') {
233
285
  // figure out if we should consider the node to be in an undisclosed shadow and use the
234
286
  // 'non-zero-area' fallback
@@ -259,18 +311,51 @@ var isHidden = function isHidden(node, _ref) {
259
311
  } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
260
312
  // (i.e. it does not also presume that all nodes might have undisclosed shadows); or
261
313
  // it might be a falsy value, which means shadow DOM support is disabled
262
- // didn't find it sitting in an undisclosed shadow (or shadows are disabled) so now we
263
- // can just test to see if it would normally be visible or not
264
- // this works wherever the node is: if there's at least one client rect, it's
265
- // somehow displayed; it also covers the CSS 'display: contents' case where the
266
- // node itself is hidden in place of its contents; and there's no need to search
267
- // up the hierarchy either
314
+ // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)
315
+ // now we can just test to see if it would normally be visible or not, provided it's
316
+ // attached to the main document.
317
+ // NOTE: We must consider case where node is inside a shadow DOM and given directly to
318
+ // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.
319
+
320
+
321
+ if (isNodeAttached(node)) {
322
+ // this works wherever the node is: if there's at least one client rect, it's
323
+ // somehow displayed; it also covers the CSS 'display: contents' case where the
324
+ // node itself is hidden in place of its contents; and there's no need to search
325
+ // up the hierarchy either
326
+ return !node.getClientRects().length;
327
+ } // Else, the node isn't attached to the document, which means the `getClientRects()`
328
+ // API will __always__ return zero rects (this can happen, for example, if React
329
+ // is used to render nodes onto a detached tree, as confirmed in this thread:
330
+ // https://github.com/facebook/react/issues/9117#issuecomment-284228870)
331
+ //
332
+ // It also means that even window.getComputedStyle(node).display will return `undefined`
333
+ // because styles are only computed for nodes that are in the document.
334
+ //
335
+ // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable
336
+ // somehow. Though it was never stated officially, anyone who has ever used tabbable
337
+ // APIs on nodes in detached containers has actually implicitly used tabbable in what
338
+ // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck="none"` mode -- essentially
339
+ // considering __everything__ to be visible because of the innability to determine styles.
340
+ //
341
+ // v6.0.0: As of this major release, the default 'full' option __no longer treats detached
342
+ // nodes as visible with the 'none' fallback.__
268
343
 
269
344
 
270
- return !node.getClientRects().length;
345
+ if (displayCheck !== 'legacy-full') {
346
+ return true; // hidden
347
+ } // else, fallback to 'none' mode and consider the node visible
348
+
271
349
  } else if (displayCheck === 'non-zero-area') {
350
+ // NOTE: Even though this tests that the node's client rect is non-zero to determine
351
+ // whether it's displayed, and that a detached node will __always__ have a zero-area
352
+ // client rect, we don't special-case for whether the node is attached or not. In
353
+ // this mode, we do want to consider nodes that have a zero area to be hidden at all
354
+ // times, and that includes attached or not.
272
355
  return isZeroArea(node);
273
- }
356
+ } // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume
357
+ // it's visible
358
+
274
359
 
275
360
  return false;
276
361
  }; // form fields (nested) inside a disabled fieldset are not focusable/tabbable
@@ -324,6 +409,18 @@ var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(opt
324
409
 
325
410
  return true;
326
411
  };
412
+
413
+ var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
414
+ var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
415
+
416
+ if (isNaN(tabIndex) || tabIndex >= 0) {
417
+ return true;
418
+ } // If a custom element has an explicit negative tabindex,
419
+ // browsers will not allow tab targeting said element's children.
420
+
421
+
422
+ return false;
423
+ };
327
424
  /**
328
425
  * @param {Array.<Element|CandidatesScope>} candidates
329
426
  * @returns Element[]
@@ -365,7 +462,8 @@ var tabbable = function tabbable(el, options) {
365
462
  candidates = getCandidatesIteratively([el], options.includeContainer, {
366
463
  filter: isNodeMatchingSelectorTabbable.bind(null, options),
367
464
  flatten: false,
368
- getShadowRoot: options.getShadowRoot
465
+ getShadowRoot: options.getShadowRoot,
466
+ shadowRootFilter: isValidShadowRootTabbable
369
467
  });
370
468
  } else {
371
469
  candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-0a7c679a.js');
5
+ const index = require('./index-4066351a.js');
6
6
 
7
7
  /*
8
8
  Stencil Client Patch Esm v2.10.0 | MIT Licensed | https://stenciljs.com
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"group":[1],"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"group":[1],"overlays":[16]}]]],["dso-header.cjs",[[1,"dso-header",{"mainMenu":[16],"useDropDownMenu":[1,"use-drop-down-menu"],"authStatus":[1,"auth-status"],"loginUrl":[1,"login-url"],"logoutUrl":[1,"logout-url"],"userProfileName":[1,"user-profile-name"],"userProfileUrl":[1,"user-profile-url"],"userHomeUrl":[1,"user-home-url"],"showDropDown":[32],"hasSubLogo":[32],"overflowMenuItems":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"truncate":[4],"removeHover":[32],"removeFocus":[32],"textHover":[32],"textFocus":[32],"truncatedContent":[32],"labelText":[32]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16],"focusItem":[64]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"loading":[4],"loadingLabel":[1,"loading-label"],"loadingDelayed":[2,"loading-delayed"],"notFoundLabel":[1,"not-found-label"],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32],"notFound":[32],"showLoading":[32]},[[4,"click","onDocumentClick"]]]]],["dso-date-picker.cjs",[[2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"visible":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]}]]],["dso-image-overlay.cjs",[[1,"dso-image-overlay",{"active":[32],"focused":[32],"zoomable":[32]},[[2,"load","loadListener"]]]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-pagination.cjs",[[1,"dso-pagination",{"totalPages":[2,"total-pages"],"currentPage":[2,"current-page"],"formatHref":[16]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"filterpanelOpen":[516,"filterpanel-open"],"overlayOpen":[516,"overlay-open"],"initialMainSize":[1,"initial-main-size"],"mainSize":[32]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[1]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[6,"dso-ozon-content",{"content":[1],"inline":[516],"deleted":[516],"interactive":[520],"state":[32]}]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-responsive-element.cjs",[[1,"dso-responsive-element",{"sizeAlias":[32],"sizeWidth":[32]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"descriptive":[516],"position":[1],"strategy":[1],"for":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1],"setFocus":[64]}]]],["dso-info_2.cjs",[[6,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32],"toggleInfo":[64]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]],["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]]], options);
17
+ return index.bootstrapLazy([["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]],["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"group":[1],"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"group":[1],"overlays":[16]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-accordion-section.cjs",[[1,"dso-accordion-section",{"handleTitle":[1,"handle-title"],"heading":[1],"handleUrl":[1,"handle-url"],"state":[1],"attachmentCount":[2,"attachment-count"],"icon":[1],"status":[1],"open":[1540],"hasNestedSection":[32],"toggleSection":[64]}]]],["dso-header.cjs",[[6,"dso-header",{"mainMenu":[16],"useDropDownMenu":[1,"use-drop-down-menu"],"authStatus":[1,"auth-status"],"loginUrl":[1,"login-url"],"logoutUrl":[1,"logout-url"],"userProfileName":[1,"user-profile-name"],"userProfileUrl":[1,"user-profile-url"],"userHomeUrl":[1,"user-home-url"],"showDropDown":[32],"hasSubLogo":[32],"overflowMenuItems":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"truncate":[4],"removeHover":[32],"removeFocus":[32],"textHover":[32],"textFocus":[32],"truncatedContent":[32],"labelText":[32]}]]],["dso-pagination.cjs",[[1,"dso-pagination",{"totalPages":[2,"total-pages"],"currentPage":[2,"current-page"],"formatHref":[16],"availablePositions":[32]},[[0,"dsoSizeChange","sizeChangeHandler"]]]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16],"focusItem":[64]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"loading":[4],"loadingLabel":[1,"loading-label"],"loadingDelayed":[2,"loading-delayed"],"notFoundLabel":[1,"not-found-label"],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32],"notFound":[32],"showLoading":[32]},[[4,"click","onDocumentClick"]]]]],["dso-date-picker.cjs",[[2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"visible":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]},[[8,"keydown","keyDownListener"]]]]],["dso-image-overlay.cjs",[[1,"dso-image-overlay",{"active":[32],"focused":[32],"zoomable":[32]},[[2,"load","loadListener"]]]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"filterpanelOpen":[516,"filterpanel-open"],"overlayOpen":[516,"overlay-open"],"initialMainSize":[1,"initial-main-size"],"mainSize":[32]}]]],["dso-accordion.cjs",[[1,"dso-accordion",{"variant":[513],"reverseAlign":[516,"reverse-align"],"allowMultipleOpen":[516,"allow-multiple-open"],"getState":[64],"toggleSection":[64],"closeOpenSections":[64]}]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[1]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[6,"dso-ozon-content",{"content":[1],"inline":[516],"deleted":[516],"interactive":[520],"state":[32]}]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-responsive-element.cjs",[[1,"dso-responsive-element",{"sizeAlias":[32],"sizeWidth":[32],"getSize":[64]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"descriptive":[516],"position":[1],"strategy":[1],"for":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1],"hover":[32],"setFocus":[64]}]]],["dso-info_2.cjs",[[6,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32],"toggleInfo":[64]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -5,6 +5,8 @@
5
5
  "./components/info-button/info-button.js",
6
6
  "./components/selectable/selectable.js",
7
7
  "./components/viewer-grid/viewer-grid.js",
8
+ "./components/accordion/accordion.js",
9
+ "./components/accordion/components/accordion-section.js",
8
10
  "./components/alert/alert.js",
9
11
  "./components/attachments-counter/attachments-counter.js",
10
12
  "./components/badge/badge.js",
@@ -0,0 +1,9 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ *,
6
+ *::after,
7
+ *::before {
8
+ box-sizing: border-box;
9
+ }
@@ -0,0 +1,260 @@
1
+ import { h, Component, Prop, Host, Method, Watch, Element, Event } from '@stencil/core';
2
+ import { createStore } from '@stencil/store';
3
+ export class Accordion {
4
+ constructor() {
5
+ this.variant = 'default';
6
+ /** Places the chevron at the opposite side. Note: this mode does not display `state`, `attachmentCount` or `status` props on child `<dso-accordion-section>` elements */
7
+ this.reverseAlign = false;
8
+ /** Allows multiple sections to be open at the same time. */
9
+ this.allowMultipleOpen = false;
10
+ const { state } = createStore({
11
+ variant: this.variant || 'default',
12
+ reverseAlign: this.reverseAlign,
13
+ });
14
+ this.accordionState = state;
15
+ }
16
+ updateVariant(variant = 'default') {
17
+ this.accordionState.variant = variant || 'default';
18
+ }
19
+ updateReverseAlign(reverseAlign) {
20
+ this.accordionState.reverseAlign = reverseAlign;
21
+ }
22
+ watchAllowMultiple(allowMultipleOpen) {
23
+ if (!allowMultipleOpen) {
24
+ const openSections = Array.from(this.host.querySelectorAll(':scope > dso-accordion-section[open]'));
25
+ // By removing the first section, it is kept open;
26
+ openSections.shift();
27
+ openSections.forEach(section => this.controlOpenAttribute(section, false));
28
+ }
29
+ }
30
+ async getState() {
31
+ return this.accordionState;
32
+ }
33
+ /** Toggle a section. Pass the `<dso-accordion-section>` element or the index of the section. */
34
+ async toggleSection(sectionElement, event) {
35
+ const sections = Array.from(this.host.querySelectorAll(':scope > dso-accordion-section'));
36
+ if (typeof sectionElement === 'number') {
37
+ sectionElement = sections[sectionElement];
38
+ }
39
+ if (!(sectionElement instanceof HTMLElement) || !sections.includes(sectionElement)) {
40
+ return;
41
+ }
42
+ const sectionIsOpen = this.isSectionOpen(sectionElement);
43
+ if (this.allowMultipleOpen) {
44
+ this.controlOpenAttribute(sectionElement, !sectionIsOpen);
45
+ this.emitToggleEvent(sectionElement, sections, event);
46
+ return;
47
+ }
48
+ if (sectionIsOpen) {
49
+ this.controlOpenAttribute(sectionElement, false);
50
+ this.emitToggleEvent(sectionElement, sections, event);
51
+ return;
52
+ }
53
+ await this.closeOpenSections();
54
+ this.controlOpenAttribute(sectionElement, true);
55
+ this.emitToggleEvent(sectionElement, sections, event);
56
+ }
57
+ /** Closes all sections belonging to this accordion. */
58
+ async closeOpenSections() {
59
+ const sections = Array.from(this.host.querySelectorAll(':scope > dso-accordion-section'));
60
+ const openSections = sections.filter(s => this.isSectionOpen(s));
61
+ openSections.forEach(section => this.controlOpenAttribute(section, false));
62
+ }
63
+ render() {
64
+ return (h(Host, { class: {
65
+ 'dso-accordion': true
66
+ } },
67
+ h("slot", null)));
68
+ }
69
+ emitToggleEvent(sectionElement, sections, e) {
70
+ this.dsoToggleSection.emit({
71
+ originalEvent: e,
72
+ section: {
73
+ element: sectionElement,
74
+ open: this.isSectionOpen(sectionElement),
75
+ },
76
+ sections,
77
+ });
78
+ }
79
+ isSectionOpen(sectionElement) {
80
+ return typeof sectionElement.getAttribute('open') === 'string';
81
+ }
82
+ controlOpenAttribute(sectionElement, setAttribute) {
83
+ if (setAttribute) {
84
+ sectionElement.setAttribute('open', '');
85
+ }
86
+ else {
87
+ sectionElement.removeAttribute('open');
88
+ }
89
+ }
90
+ static get is() { return "dso-accordion"; }
91
+ static get encapsulation() { return "shadow"; }
92
+ static get originalStyleUrls() { return {
93
+ "$": ["accordion.scss"]
94
+ }; }
95
+ static get styleUrls() { return {
96
+ "$": ["accordion.css"]
97
+ }; }
98
+ static get properties() { return {
99
+ "variant": {
100
+ "type": "string",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "AccordionVariant",
104
+ "resolved": "\"compact\" | \"conclusion\" | \"default\" | undefined",
105
+ "references": {
106
+ "AccordionVariant": {
107
+ "location": "import",
108
+ "path": "./accordion.interfaces"
109
+ }
110
+ }
111
+ },
112
+ "required": false,
113
+ "optional": true,
114
+ "docs": {
115
+ "tags": [],
116
+ "text": ""
117
+ },
118
+ "attribute": "variant",
119
+ "reflect": true,
120
+ "defaultValue": "'default'"
121
+ },
122
+ "reverseAlign": {
123
+ "type": "boolean",
124
+ "mutable": false,
125
+ "complexType": {
126
+ "original": "boolean",
127
+ "resolved": "boolean",
128
+ "references": {}
129
+ },
130
+ "required": false,
131
+ "optional": false,
132
+ "docs": {
133
+ "tags": [],
134
+ "text": "Places the chevron at the opposite side. Note: this mode does not display `state`, `attachmentCount` or `status` props on child `<dso-accordion-section>` elements"
135
+ },
136
+ "attribute": "reverse-align",
137
+ "reflect": true,
138
+ "defaultValue": "false"
139
+ },
140
+ "allowMultipleOpen": {
141
+ "type": "boolean",
142
+ "mutable": false,
143
+ "complexType": {
144
+ "original": "boolean",
145
+ "resolved": "boolean",
146
+ "references": {}
147
+ },
148
+ "required": false,
149
+ "optional": false,
150
+ "docs": {
151
+ "tags": [],
152
+ "text": "Allows multiple sections to be open at the same time."
153
+ },
154
+ "attribute": "allow-multiple-open",
155
+ "reflect": true,
156
+ "defaultValue": "false"
157
+ }
158
+ }; }
159
+ static get events() { return [{
160
+ "method": "dsoToggleSection",
161
+ "name": "dsoToggleSection",
162
+ "bubbles": true,
163
+ "cancelable": true,
164
+ "composed": true,
165
+ "docs": {
166
+ "tags": [],
167
+ "text": "Emitted when a section is toggled.\n\n`event.detail.originalEvent` contains the original `MouseEvent` when the section is toggled by clicking on the header\n`event.detail.section` contains the toggled section and its new opened value.\\\n`event.detail.sections` contains all `<dso-accordion-section>` elements belonging to this accordion."
168
+ },
169
+ "complexType": {
170
+ "original": "AccordionSectionToggleEvent",
171
+ "resolved": "AccordionSectionToggleEvent",
172
+ "references": {
173
+ "AccordionSectionToggleEvent": {
174
+ "location": "import",
175
+ "path": "./accordion.interfaces"
176
+ }
177
+ }
178
+ }
179
+ }]; }
180
+ static get methods() { return {
181
+ "getState": {
182
+ "complexType": {
183
+ "signature": "() => Promise<AccordionInternalState>",
184
+ "parameters": [],
185
+ "references": {
186
+ "Promise": {
187
+ "location": "global"
188
+ },
189
+ "AccordionInternalState": {
190
+ "location": "import",
191
+ "path": "./accordion.interfaces"
192
+ }
193
+ },
194
+ "return": "Promise<AccordionInternalState>"
195
+ },
196
+ "docs": {
197
+ "text": "",
198
+ "tags": []
199
+ }
200
+ },
201
+ "toggleSection": {
202
+ "complexType": {
203
+ "signature": "(sectionElement: HTMLElement | number, event?: MouseEvent | undefined) => Promise<void>",
204
+ "parameters": [{
205
+ "tags": [],
206
+ "text": ""
207
+ }, {
208
+ "tags": [],
209
+ "text": ""
210
+ }],
211
+ "references": {
212
+ "Promise": {
213
+ "location": "global"
214
+ },
215
+ "HTMLElement": {
216
+ "location": "global"
217
+ },
218
+ "MouseEvent": {
219
+ "location": "global"
220
+ }
221
+ },
222
+ "return": "Promise<void>"
223
+ },
224
+ "docs": {
225
+ "text": "Toggle a section. Pass the `<dso-accordion-section>` element or the index of the section.",
226
+ "tags": []
227
+ }
228
+ },
229
+ "closeOpenSections": {
230
+ "complexType": {
231
+ "signature": "() => Promise<void>",
232
+ "parameters": [],
233
+ "references": {
234
+ "Promise": {
235
+ "location": "global"
236
+ },
237
+ "HTMLElement": {
238
+ "location": "global"
239
+ }
240
+ },
241
+ "return": "Promise<void>"
242
+ },
243
+ "docs": {
244
+ "text": "Closes all sections belonging to this accordion.",
245
+ "tags": []
246
+ }
247
+ }
248
+ }; }
249
+ static get elementRef() { return "host"; }
250
+ static get watchers() { return [{
251
+ "propName": "variant",
252
+ "methodName": "updateVariant"
253
+ }, {
254
+ "propName": "reverseAlign",
255
+ "methodName": "updateReverseAlign"
256
+ }, {
257
+ "propName": "allowMultipleOpen",
258
+ "methodName": "watchAllowMultiple"
259
+ }]; }
260
+ }