@dso-toolkit/core 35.0.0 → 36.2.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.
- package/dist/cjs/dso-alert.cjs.entry.js +1 -1
- package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +2 -2
- package/dist/cjs/dso-badge.cjs.entry.js +1 -1
- package/dist/cjs/dso-banner.cjs.entry.js +1 -1
- package/dist/cjs/dso-date-picker.cjs.entry.js +21 -12
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +3 -3
- package/dist/cjs/dso-header.cjs.entry.js +16 -7
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
- package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +1 -1
- package/dist/cjs/dso-image-overlay.cjs.entry.js +4 -4
- package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
- package/dist/cjs/dso-label.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js +22 -19
- package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
- package/dist/cjs/dso-ozon-content.cjs.entry.js +36 -24
- package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +3 -3
- package/dist/cjs/dso-tooltip.cjs.entry.js +8 -4
- package/dist/cjs/dso-tree-view.cjs.entry.js +9 -9
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +4 -4
- package/dist/cjs/{focus-trap.esm-8d3e3fb6.js → focus-trap.esm-a85643b0.js} +102 -68
- package/dist/cjs/{index-5ea63531.js → index-0a7c679a.js} +73 -67
- package/dist/cjs/index.esm-3520a2a6.js +427 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/alert/alert.template.js +1 -1
- package/dist/collection/components/anchor/anchor.template.js +1 -1
- package/dist/collection/components/autosuggest/autosuggest.css +1 -1
- package/dist/collection/components/badge/badge.template.js +1 -1
- package/dist/collection/components/button/button.template.js +1 -1
- package/dist/collection/components/date-picker/date-picker.css +9 -6
- package/dist/collection/components/date-picker/date-picker.js +21 -11
- package/dist/collection/components/date-picker/date-picker.template.js +1 -1
- package/dist/collection/components/definition-list/definition-list.template.js +2 -2
- package/dist/collection/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist/collection/components/dropdown-menu/dropdown-menu.template.js +1 -1
- package/dist/collection/components/header/header.css +1 -1
- package/dist/collection/components/header/header.js +38 -9
- package/dist/collection/components/header/header.template.js +4 -2
- package/dist/collection/components/helpcenter-panel/helpcenter-panel.template.js +2 -2
- package/dist/collection/components/highlight-box/highlight-box.template.js +2 -2
- package/dist/collection/components/icon/icon.template.js +1 -1
- package/dist/collection/components/image-overlay/image-overlay.css +1 -1
- package/dist/collection/components/label/label.template.js +2 -2
- package/dist/collection/components/list/list.template.js +1 -1
- package/dist/collection/components/map-controls/map-controls.js +17 -19
- package/dist/collection/components/ozon-content/get-node-name.function.js +9 -0
- package/dist/collection/components/ozon-content/nodes/al.node.js +2 -1
- package/dist/collection/components/ozon-content/nodes/fallback.node.js +2 -1
- package/dist/collection/components/ozon-content/nodes/noot.node.js +15 -15
- package/dist/collection/components/ozon-content/ozon-content-mapper.js +9 -5
- package/dist/collection/components/ozon-content/ozon-content.css +76 -23
- package/dist/collection/components/progress-bar/progress-bar.template.js +1 -1
- package/dist/collection/components/progress-indicator/progress-indicator.template.js +1 -1
- package/dist/collection/components/selectable/selectable.css +7 -1
- package/dist/collection/components/selectable/selectable.template.js +1 -1
- package/dist/collection/components/toggletip/toggletip.template.js +2 -2
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/tooltip/tooltip.template.js +1 -1
- package/dist/collection/components/tree-view/tree-item.js +7 -7
- package/dist/collection/components/tree-view/tree-view.css +86 -15
- package/dist/collection/components/viewer-grid/viewer-grid.css +2 -2
- package/dist/custom-elements/index.js +460 -229
- package/dist/dso-toolkit/dso-toolkit.css +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/{p-5037944e.entry.js → p-121c3588.entry.js} +1 -1
- package/dist/dso-toolkit/p-131d54e3.js +5 -0
- package/dist/dso-toolkit/p-1a3db1cd.entry.js +1 -0
- package/dist/dso-toolkit/p-1fd3d18d.entry.js +1 -0
- package/dist/dso-toolkit/{p-ad540748.entry.js → p-2a611af3.entry.js} +1 -1
- package/dist/dso-toolkit/{p-2b6a3dfa.entry.js → p-3cb44a36.entry.js} +1 -1
- package/dist/dso-toolkit/{p-1fefbf8c.entry.js → p-4f904355.entry.js} +1 -1
- package/dist/dso-toolkit/p-5e5fbd41.js +5 -0
- package/dist/dso-toolkit/{p-4e573fc5.entry.js → p-5e614420.entry.js} +1 -1
- package/dist/dso-toolkit/p-72e47943.entry.js +1 -0
- package/dist/dso-toolkit/{p-50b63cf4.entry.js → p-746d70f9.entry.js} +1 -1
- package/dist/dso-toolkit/p-7abe091d.entry.js +1 -0
- package/dist/dso-toolkit/p-7b67e324.entry.js +1 -0
- package/dist/dso-toolkit/{p-3c4dbd89.entry.js → p-8bb8148f.entry.js} +1 -1
- package/dist/dso-toolkit/p-a58b3108.entry.js +1 -0
- package/dist/dso-toolkit/{p-225bbb28.entry.js → p-abd32847.entry.js} +1 -1
- package/dist/dso-toolkit/{p-c6f467b3.entry.js → p-af8a4337.entry.js} +1 -1
- package/dist/dso-toolkit/{p-348414bf.entry.js → p-b29184e1.entry.js} +1 -1
- package/dist/dso-toolkit/{p-bc14cafd.entry.js → p-b86128b3.entry.js} +1 -1
- package/dist/dso-toolkit/p-c62606a3.js +1 -0
- package/dist/dso-toolkit/{p-f0b67246.entry.js → p-d0d279cc.entry.js} +1 -1
- package/dist/dso-toolkit/{p-c95108fe.entry.js → p-d1f62081.entry.js} +1 -1
- package/dist/dso-toolkit/{p-3b493a2c.entry.js → p-d6c47662.entry.js} +1 -1
- package/dist/dso-toolkit/{p-c54ecae1.entry.js → p-daf049bd.entry.js} +1 -1
- package/dist/dso-toolkit/p-e01b1657.entry.js +1 -0
- package/dist/dso-toolkit/{p-94dffa65.entry.js → p-ea14647b.entry.js} +1 -1
- package/dist/dso-toolkit/{p-dc86d830.entry.js → p-efa4a33d.entry.js} +1 -1
- package/dist/dso-toolkit/{p-951f5872.entry.js → p-efb7575f.entry.js} +1 -1
- package/dist/esm/dso-alert.entry.js +1 -1
- package/dist/esm/dso-attachments-counter.entry.js +1 -1
- package/dist/esm/dso-autosuggest.entry.js +2 -2
- package/dist/esm/dso-badge.entry.js +1 -1
- package/dist/esm/dso-banner.entry.js +1 -1
- package/dist/esm/dso-date-picker.entry.js +21 -12
- package/dist/esm/dso-dropdown-menu.entry.js +3 -3
- package/dist/esm/dso-header.entry.js +16 -7
- package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js +1 -1
- package/dist/esm/dso-image-overlay.entry.js +4 -4
- package/dist/esm/dso-info-button.entry.js +1 -1
- package/dist/esm/dso-info_2.entry.js +2 -2
- package/dist/esm/dso-label.entry.js +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +1 -1
- package/dist/esm/dso-map-controls.entry.js +22 -19
- package/dist/esm/dso-map-overlays.entry.js +1 -1
- package/dist/esm/dso-ozon-content.entry.js +36 -24
- package/dist/esm/dso-progress-bar.entry.js +1 -1
- package/dist/esm/dso-progress-indicator.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +3 -3
- package/dist/esm/dso-tooltip.entry.js +8 -4
- package/dist/esm/dso-tree-view.entry.js +9 -9
- package/dist/esm/dso-viewer-grid.entry.js +4 -4
- package/dist/esm/{focus-trap.esm-299989f2.js → focus-trap.esm-a01ad6c9.js} +102 -68
- package/dist/esm/{index-d54cae76.js → index-1602fde1.js} +73 -67
- package/dist/esm/index.esm-45465af7.js +422 -0
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/date-picker/date-picker.d.ts +2 -0
- package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -1
- package/dist/types/components/header/header.d.ts +7 -1
- package/dist/types/components/header/header.template.d.ts +1 -1
- package/dist/types/components/ozon-content/get-node-name.function.d.ts +1 -0
- package/dist/types/components/ozon-content/nodes/noot.node.d.ts +2 -2
- package/dist/types/components/ozon-content/ozon-content-mapper.d.ts +0 -1
- package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +0 -1
- package/dist/types/components/ozon-content/ozon-content-node.interface.d.ts +0 -1
- package/dist/types/components/ozon-content/ozon-content.d.ts +0 -1
- package/dist/types/components.d.ts +3 -2
- package/dist/types/icon/dso-icon-sass-function.d.ts +1 -1
- package/package.json +30 -26
- package/dist/cjs/index.esm-2ac7081c.js +0 -267
- package/dist/dso-toolkit/p-44905fb1.js +0 -5
- package/dist/dso-toolkit/p-88bc5873.entry.js +0 -1
- package/dist/dso-toolkit/p-8b6e3abc.entry.js +0 -1
- package/dist/dso-toolkit/p-8bf3a60e.js +0 -5
- package/dist/dso-toolkit/p-94b79e43.entry.js +0 -1
- package/dist/dso-toolkit/p-a7306b7b.entry.js +0 -1
- package/dist/dso-toolkit/p-ad2210ad.entry.js +0 -1
- package/dist/dso-toolkit/p-daa1e29d.entry.js +0 -1
- package/dist/dso-toolkit/p-dad72605.js +0 -1
- package/dist/dso-toolkit/p-f193c258.entry.js +0 -1
- package/dist/esm/index.esm-a1362957.js +0 -262
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* tabbable 5.2.1
|
|
3
|
-
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
|
4
|
-
*/
|
|
5
|
-
var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
|
|
6
|
-
var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
|
|
7
|
-
var matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
8
|
-
|
|
9
|
-
var getCandidates = function getCandidates(el, includeContainer, filter) {
|
|
10
|
-
var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
|
|
11
|
-
|
|
12
|
-
if (includeContainer && matches.call(el, candidateSelector)) {
|
|
13
|
-
candidates.unshift(el);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
candidates = candidates.filter(filter);
|
|
17
|
-
return candidates;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
var isContentEditable = function isContentEditable(node) {
|
|
21
|
-
return node.contentEditable === 'true';
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
var getTabindex = function getTabindex(node) {
|
|
25
|
-
var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
|
|
26
|
-
|
|
27
|
-
if (!isNaN(tabindexAttr)) {
|
|
28
|
-
return tabindexAttr;
|
|
29
|
-
} // Browsers do not return `tabIndex` correctly for contentEditable nodes;
|
|
30
|
-
// so if they don't have a tabindex attribute specifically set, assume it's 0.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (isContentEditable(node)) {
|
|
34
|
-
return 0;
|
|
35
|
-
} // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
|
|
36
|
-
// `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
|
|
37
|
-
// yet they are still part of the regular tab order; in FF, they get a default
|
|
38
|
-
// `tabIndex` of 0; since Chrome still puts those elements in the regular tab
|
|
39
|
-
// order, consider their tab index to be 0.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {
|
|
43
|
-
return 0;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return node.tabIndex;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
var sortOrderedTabbables = function sortOrderedTabbables(a, b) {
|
|
50
|
-
return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var isInput = function isInput(node) {
|
|
54
|
-
return node.tagName === 'INPUT';
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
var isHiddenInput = function isHiddenInput(node) {
|
|
58
|
-
return isInput(node) && node.type === 'hidden';
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
var isDetailsWithSummary = function isDetailsWithSummary(node) {
|
|
62
|
-
var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {
|
|
63
|
-
return child.tagName === 'SUMMARY';
|
|
64
|
-
});
|
|
65
|
-
return r;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
var getCheckedRadio = function getCheckedRadio(nodes, form) {
|
|
69
|
-
for (var i = 0; i < nodes.length; i++) {
|
|
70
|
-
if (nodes[i].checked && nodes[i].form === form) {
|
|
71
|
-
return nodes[i];
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
var isTabbableRadio = function isTabbableRadio(node) {
|
|
77
|
-
if (!node.name) {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
var radioScope = node.form || node.ownerDocument;
|
|
82
|
-
|
|
83
|
-
var queryRadios = function queryRadios(name) {
|
|
84
|
-
return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
var radioSet;
|
|
88
|
-
|
|
89
|
-
if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {
|
|
90
|
-
radioSet = queryRadios(window.CSS.escape(node.name));
|
|
91
|
-
} else {
|
|
92
|
-
try {
|
|
93
|
-
radioSet = queryRadios(node.name);
|
|
94
|
-
} catch (err) {
|
|
95
|
-
// eslint-disable-next-line no-console
|
|
96
|
-
console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
var checked = getCheckedRadio(radioSet, node.form);
|
|
102
|
-
return !checked || checked === node;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
var isRadio = function isRadio(node) {
|
|
106
|
-
return isInput(node) && node.type === 'radio';
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
var isNonTabbableRadio = function isNonTabbableRadio(node) {
|
|
110
|
-
return isRadio(node) && !isTabbableRadio(node);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
var isHidden = function isHidden(node, displayCheck) {
|
|
114
|
-
if (getComputedStyle(node).visibility === 'hidden') {
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var isDirectSummary = matches.call(node, 'details>summary:first-of-type');
|
|
119
|
-
var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
|
|
120
|
-
|
|
121
|
-
if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (!displayCheck || displayCheck === 'full') {
|
|
126
|
-
while (node) {
|
|
127
|
-
if (getComputedStyle(node).display === 'none') {
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
node = node.parentElement;
|
|
132
|
-
}
|
|
133
|
-
} else if (displayCheck === 'non-zero-area') {
|
|
134
|
-
var _node$getBoundingClie = node.getBoundingClientRect(),
|
|
135
|
-
width = _node$getBoundingClie.width,
|
|
136
|
-
height = _node$getBoundingClie.height;
|
|
137
|
-
|
|
138
|
-
return width === 0 && height === 0;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return false;
|
|
142
|
-
}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable
|
|
143
|
-
// unless they are in the _first_ <legend> element of the top-most disabled
|
|
144
|
-
// fieldset
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
|
|
148
|
-
if (isInput(node) || node.tagName === 'SELECT' || node.tagName === 'TEXTAREA' || node.tagName === 'BUTTON') {
|
|
149
|
-
var parentNode = node.parentElement;
|
|
150
|
-
|
|
151
|
-
while (parentNode) {
|
|
152
|
-
if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {
|
|
153
|
-
// look for the first <legend> as an immediate child of the disabled
|
|
154
|
-
// <fieldset>: if the node is in that legend, it'll be enabled even
|
|
155
|
-
// though the fieldset is disabled; otherwise, the node is in a
|
|
156
|
-
// secondary/subsequent legend, or somewhere else within the fieldset
|
|
157
|
-
// (however deep nested) and it'll be disabled
|
|
158
|
-
for (var i = 0; i < parentNode.children.length; i++) {
|
|
159
|
-
var child = parentNode.children.item(i);
|
|
160
|
-
|
|
161
|
-
if (child.tagName === 'LEGEND') {
|
|
162
|
-
if (child.contains(node)) {
|
|
163
|
-
return false;
|
|
164
|
-
} // the node isn't in the first legend (in doc order), so no matter
|
|
165
|
-
// where it is now, it'll be disabled
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
return true;
|
|
169
|
-
}
|
|
170
|
-
} // the node isn't in a legend, so no matter where it is now, it'll be disabled
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
parentNode = parentNode.parentElement;
|
|
177
|
-
}
|
|
178
|
-
} // else, node's tabbable/focusable state should not be affected by a fieldset's
|
|
179
|
-
// enabled/disabled state
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
return false;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
|
|
186
|
-
if (node.disabled || isHiddenInput(node) || isHidden(node, options.displayCheck) || // For a details element with a summary, the summary element gets the focus
|
|
187
|
-
isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return true;
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
|
|
195
|
-
if (!isNodeMatchingSelectorFocusable(options, node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
return true;
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
var tabbable = function tabbable(el, options) {
|
|
203
|
-
options = options || {};
|
|
204
|
-
var regularTabbables = [];
|
|
205
|
-
var orderedTabbables = [];
|
|
206
|
-
var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
|
|
207
|
-
candidates.forEach(function (candidate, i) {
|
|
208
|
-
var candidateTabindex = getTabindex(candidate);
|
|
209
|
-
|
|
210
|
-
if (candidateTabindex === 0) {
|
|
211
|
-
regularTabbables.push(candidate);
|
|
212
|
-
} else {
|
|
213
|
-
orderedTabbables.push({
|
|
214
|
-
documentOrder: i,
|
|
215
|
-
tabIndex: candidateTabindex,
|
|
216
|
-
node: candidate
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {
|
|
221
|
-
return a.node;
|
|
222
|
-
}).concat(regularTabbables);
|
|
223
|
-
return tabbableNodes;
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
var focusable = function focusable(el, options) {
|
|
227
|
-
options = options || {};
|
|
228
|
-
var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
|
|
229
|
-
return candidates;
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
var isTabbable = function isTabbable(node, options) {
|
|
233
|
-
options = options || {};
|
|
234
|
-
|
|
235
|
-
if (!node) {
|
|
236
|
-
throw new Error('No node provided');
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (matches.call(node, candidateSelector) === false) {
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return isNodeMatchingSelectorTabbable(options, node);
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
var focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');
|
|
247
|
-
|
|
248
|
-
var isFocusable = function isFocusable(node, options) {
|
|
249
|
-
options = options || {};
|
|
250
|
-
|
|
251
|
-
if (!node) {
|
|
252
|
-
throw new Error('No node provided');
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
if (matches.call(node, focusableCandidateSelector) === false) {
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
return isNodeMatchingSelectorFocusable(options, node);
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
export { isFocusable as a, focusable as f, isTabbable as i, tabbable as t };
|