@cuby-ui/cdk 0.0.487 → 0.0.489

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 (210) hide show
  1. package/constants/empty.d.ts +10 -0
  2. package/constants/handlers.d.ts +8 -0
  3. package/constants/index.d.ts +4 -0
  4. package/constants/svg-node-filter.d.ts +1 -0
  5. package/constants/units.d.ts +17 -0
  6. package/date-time/index.d.ts +1 -0
  7. package/date-time/time.d.ts +14 -0
  8. package/directives/active-zone/active-zone.directive.d.ts +22 -0
  9. package/directives/active-zone/index.d.ts +1 -0
  10. package/directives/auto-resizing.directive.d.ts +18 -0
  11. package/directives/click-outside.directive.d.ts +9 -0
  12. package/directives/content-editable-value-accessor.directive.d.ts +17 -0
  13. package/directives/dimensions-observer.directive.d.ts +13 -0
  14. package/directives/drag-drop/drag-drop.directive.d.ts +42 -0
  15. package/directives/drag-drop/drag-drop.options.d.ts +11 -0
  16. package/directives/drag-drop/drag-list.directive.d.ts +10 -0
  17. package/directives/drag-drop/drag-pointer.directive.d.ts +8 -0
  18. package/directives/drag-drop/index.d.ts +4 -0
  19. package/directives/element.directive.d.ts +8 -0
  20. package/directives/focus-trap.directive.d.ts +14 -0
  21. package/directives/handle-scroll.directive.d.ts +23 -0
  22. package/directives/hovered/hovered.directive.d.ts +7 -0
  23. package/directives/hovered/hovered.service.d.ts +12 -0
  24. package/directives/hovered/index.d.ts +2 -0
  25. package/directives/index.d.ts +17 -0
  26. package/directives/item.directive.d.ts +5 -0
  27. package/directives/ladder-list.directive.d.ts +13 -0
  28. package/directives/let.context.d.ts +9 -0
  29. package/directives/let.directive.d.ts +9 -0
  30. package/directives/target.directive.d.ts +14 -0
  31. package/directives/typed-template.directive.d.ts +13 -0
  32. package/directives/typed-template.options.d.ts +3 -0
  33. package/esm2022/constants/empty.mjs +24 -0
  34. package/esm2022/constants/handlers.mjs +11 -0
  35. package/esm2022/constants/index.mjs +5 -0
  36. package/esm2022/constants/svg-node-filter.mjs +6 -0
  37. package/esm2022/constants/units.mjs +64 -0
  38. package/esm2022/cuby-ui-cdk.mjs +5 -0
  39. package/esm2022/date-time/index.mjs +2 -0
  40. package/esm2022/date-time/time.mjs +72 -0
  41. package/esm2022/directives/active-zone/active-zone.directive.mjs +75 -0
  42. package/esm2022/directives/active-zone/index.mjs +2 -0
  43. package/esm2022/directives/auto-resizing.directive.mjs +64 -0
  44. package/esm2022/directives/click-outside.directive.mjs +29 -0
  45. package/esm2022/directives/content-editable-value-accessor.directive.mjs +44 -0
  46. package/esm2022/directives/dimensions-observer.directive.mjs +32 -0
  47. package/esm2022/directives/drag-drop/drag-drop.directive.mjs +184 -0
  48. package/esm2022/directives/drag-drop/drag-drop.options.mjs +2 -0
  49. package/esm2022/directives/drag-drop/drag-list.directive.mjs +22 -0
  50. package/esm2022/directives/drag-drop/drag-pointer.directive.mjs +20 -0
  51. package/esm2022/directives/drag-drop/index.mjs +4 -0
  52. package/esm2022/directives/element.directive.mjs +19 -0
  53. package/esm2022/directives/focus-trap.directive.mjs +50 -0
  54. package/esm2022/directives/handle-scroll.directive.mjs +81 -0
  55. package/esm2022/directives/hovered/hovered.directive.mjs +21 -0
  56. package/esm2022/directives/hovered/hovered.service.mjs +32 -0
  57. package/esm2022/directives/hovered/index.mjs +3 -0
  58. package/esm2022/directives/index.mjs +18 -0
  59. package/esm2022/directives/item.directive.mjs +14 -0
  60. package/esm2022/directives/ladder-list.directive.mjs +42 -0
  61. package/esm2022/directives/let.context.mjs +12 -0
  62. package/esm2022/directives/let.directive.mjs +23 -0
  63. package/esm2022/directives/target.directive.mjs +36 -0
  64. package/esm2022/directives/typed-template.directive.mjs +27 -0
  65. package/esm2022/directives/typed-template.options.mjs +2 -0
  66. package/esm2022/index.mjs +12 -0
  67. package/esm2022/interfaces/dimensions.mjs +2 -0
  68. package/esm2022/interfaces/index.mjs +4 -0
  69. package/esm2022/interfaces/on-change.mjs +2 -0
  70. package/esm2022/interfaces/on-touched.mjs +2 -0
  71. package/esm2022/models/consumption-units.mjs +2 -0
  72. package/esm2022/models/index.mjs +2 -0
  73. package/esm2022/observables/if-map.mjs +5 -0
  74. package/esm2022/observables/index.mjs +5 -0
  75. package/esm2022/observables/typed-from-event.mjs +9 -0
  76. package/esm2022/observables/watch.mjs +6 -0
  77. package/esm2022/observables/zone.mjs +34 -0
  78. package/esm2022/pipes/filter.pipe.mjs +17 -0
  79. package/esm2022/pipes/index.mjs +2 -0
  80. package/esm2022/services/consumption-units.service.mjs +67 -0
  81. package/esm2022/services/destroy.service.mjs +15 -0
  82. package/esm2022/services/id.service.mjs +21 -0
  83. package/esm2022/services/index.mjs +5 -0
  84. package/esm2022/services/popover.service.mjs +41 -0
  85. package/esm2022/tokens/active-element.mjs +52 -0
  86. package/esm2022/tokens/animation-frame.mjs +21 -0
  87. package/esm2022/tokens/environment.mjs +47 -0
  88. package/esm2022/tokens/history.mjs +5 -0
  89. package/esm2022/tokens/index.mjs +11 -0
  90. package/esm2022/tokens/local-storage.mjs +5 -0
  91. package/esm2022/tokens/navigator.mjs +6 -0
  92. package/esm2022/tokens/removed-element.mjs +19 -0
  93. package/esm2022/tokens/session-storage.mjs +5 -0
  94. package/esm2022/tokens/user-agent.mjs +6 -0
  95. package/esm2022/tokens/window.mjs +11 -0
  96. package/esm2022/types/context.mjs +2 -0
  97. package/esm2022/types/date-time.mjs +2 -0
  98. package/esm2022/types/handler.mjs +2 -0
  99. package/esm2022/types/index.mjs +9 -0
  100. package/esm2022/types/input-type.mjs +2 -0
  101. package/esm2022/types/mapper.mjs +2 -0
  102. package/esm2022/types/matcher.mjs +2 -0
  103. package/esm2022/types/nullable.mjs +2 -0
  104. package/esm2022/types/value-of.mjs +2 -0
  105. package/esm2022/utils/dom/contains-or-after.mjs +9 -0
  106. package/esm2022/utils/dom/element-checks.mjs +20 -0
  107. package/esm2022/utils/dom/get-actual-target.mjs +7 -0
  108. package/esm2022/utils/dom/get-document-or-shadow-root.mjs +6 -0
  109. package/esm2022/utils/dom/get-element-obscurers.mjs +42 -0
  110. package/esm2022/utils/dom/index.mjs +8 -0
  111. package/esm2022/utils/dom/inject-element.mjs +5 -0
  112. package/esm2022/utils/dom/point-to-client-rect.mjs +17 -0
  113. package/esm2022/utils/files/files.uploader.mjs +19 -0
  114. package/esm2022/utils/files/index.mjs +3 -0
  115. package/esm2022/utils/files/take-capture-from-video.mjs +25 -0
  116. package/esm2022/utils/focus/blur-native-focused.mjs +9 -0
  117. package/esm2022/utils/focus/get-closest-focusable.mjs +22 -0
  118. package/esm2022/utils/focus/get-native-focused.mjs +11 -0
  119. package/esm2022/utils/focus/index.mjs +7 -0
  120. package/esm2022/utils/focus/is-native-focused.mjs +13 -0
  121. package/esm2022/utils/focus/is-native-keyboard-focusable.mjs +26 -0
  122. package/esm2022/utils/focus/is-native-mouse-focusable.mjs +6 -0
  123. package/esm2022/utils/index.mjs +8 -0
  124. package/esm2022/utils/math/clamp.mjs +11 -0
  125. package/esm2022/utils/math/index.mjs +2 -0
  126. package/esm2022/utils/miscellaneous/array-remove.mjs +4 -0
  127. package/esm2022/utils/miscellaneous/index.mjs +6 -0
  128. package/esm2022/utils/miscellaneous/is-present.mjs +4 -0
  129. package/esm2022/utils/miscellaneous/move-item-in-array.mjs +10 -0
  130. package/esm2022/utils/miscellaneous/pure.mjs +81 -0
  131. package/esm2022/utils/miscellaneous/px.mjs +7 -0
  132. package/esm2022/utils/platform/index.mjs +2 -0
  133. package/esm2022/utils/platform/is-ios.mjs +6 -0
  134. package/esm2022/utils/token/create-token.mjs +8 -0
  135. package/esm2022/utils/token/index.mjs +3 -0
  136. package/esm2022/utils/token/provide.mjs +4 -0
  137. package/fesm2022/cuby-ui-cdk.mjs +1644 -0
  138. package/fesm2022/cuby-ui-cdk.mjs.map +1 -0
  139. package/index.d.ts +11 -0
  140. package/interfaces/dimensions.d.ts +4 -0
  141. package/interfaces/index.d.ts +3 -0
  142. package/interfaces/on-change.d.ts +3 -0
  143. package/interfaces/on-touched.d.ts +3 -0
  144. package/models/consumption-units.d.ts +14 -0
  145. package/models/index.d.ts +1 -0
  146. package/observables/if-map.d.ts +3 -0
  147. package/observables/index.d.ts +4 -0
  148. package/observables/typed-from-event.d.ts +16 -0
  149. package/observables/watch.d.ts +3 -0
  150. package/observables/zone.d.ts +7 -0
  151. package/package.json +1 -4
  152. package/pipes/filter.pipe.d.ts +8 -0
  153. package/pipes/index.d.ts +1 -0
  154. package/services/consumption-units.service.d.ts +13 -0
  155. package/services/destroy.service.d.ts +8 -0
  156. package/services/id.service.d.ts +8 -0
  157. package/services/index.d.ts +4 -0
  158. package/services/popover.service.d.ts +23 -0
  159. package/tokens/active-element.d.ts +5 -0
  160. package/tokens/animation-frame.d.ts +3 -0
  161. package/tokens/environment.d.ts +19 -0
  162. package/tokens/history.d.ts +1 -0
  163. package/tokens/index.d.ts +10 -0
  164. package/tokens/local-storage.d.ts +1 -0
  165. package/tokens/navigator.d.ts +2 -0
  166. package/tokens/removed-element.d.ts +4 -0
  167. package/tokens/session-storage.d.ts +1 -0
  168. package/tokens/user-agent.d.ts +2 -0
  169. package/tokens/window.d.ts +1 -0
  170. package/types/context.d.ts +3 -0
  171. package/types/date-time.d.ts +1 -0
  172. package/types/handler.d.ts +4 -0
  173. package/types/index.d.ts +8 -0
  174. package/types/input-type.d.ts +1 -0
  175. package/types/mapper.d.ts +1 -0
  176. package/types/matcher.d.ts +2 -0
  177. package/types/nullable.d.ts +1 -0
  178. package/types/value-of.d.ts +1 -0
  179. package/utils/dom/contains-or-after.d.ts +1 -0
  180. package/utils/dom/element-checks.d.ts +6 -0
  181. package/utils/dom/get-actual-target.d.ts +4 -0
  182. package/utils/dom/get-document-or-shadow-root.d.ts +1 -0
  183. package/utils/dom/get-element-obscurers.d.ts +9 -0
  184. package/utils/dom/index.d.ts +7 -0
  185. package/utils/dom/inject-element.d.ts +1 -0
  186. package/utils/dom/point-to-client-rect.d.ts +1 -0
  187. package/utils/files/files.uploader.d.ts +5 -0
  188. package/utils/files/index.d.ts +2 -0
  189. package/utils/files/take-capture-from-video.d.ts +1 -0
  190. package/utils/focus/blur-native-focused.d.ts +1 -0
  191. package/utils/focus/get-closest-focusable.d.ts +7 -0
  192. package/utils/focus/get-native-focused.d.ts +1 -0
  193. package/utils/focus/index.d.ts +6 -0
  194. package/utils/focus/is-native-focused.d.ts +9 -0
  195. package/utils/focus/is-native-keyboard-focusable.d.ts +1 -0
  196. package/utils/focus/is-native-mouse-focusable.d.ts +1 -0
  197. package/utils/index.d.ts +7 -0
  198. package/utils/math/clamp.d.ts +8 -0
  199. package/utils/math/index.d.ts +1 -0
  200. package/utils/miscellaneous/array-remove.d.ts +1 -0
  201. package/utils/miscellaneous/index.d.ts +5 -0
  202. package/utils/miscellaneous/is-present.d.ts +1 -0
  203. package/utils/miscellaneous/move-item-in-array.d.ts +1 -0
  204. package/utils/miscellaneous/pure.d.ts +21 -0
  205. package/utils/miscellaneous/px.d.ts +4 -0
  206. package/utils/platform/index.d.ts +1 -0
  207. package/utils/platform/is-ios.d.ts +3 -0
  208. package/utils/token/create-token.d.ts +3 -0
  209. package/utils/token/index.d.ts +2 -0
  210. package/utils/token/provide.d.ts +3 -0
@@ -0,0 +1,20 @@
1
+ export function cuiIsInput(element) {
2
+ return element.matches('input');
3
+ }
4
+ export function cuiIsTextarea(element) {
5
+ return element.matches('textarea');
6
+ }
7
+ export function cuiIsTextfield(element) {
8
+ return cuiIsInput(element) || cuiIsTextarea(element);
9
+ }
10
+ export function cuiIsElement(node) {
11
+ return !!node && 'nodeType' in node && node.nodeType === Node.ELEMENT_NODE;
12
+ }
13
+ export function cuiIsHTMLElement(node) {
14
+ const defaultView = node?.ownerDocument.defaultView;
15
+ return !!node && !!defaultView && node instanceof defaultView.HTMLElement;
16
+ }
17
+ export function cuiIsTextNode(node) {
18
+ return node.nodeType === Node.TEXT_NODE;
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGVja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2VsZW1lbnQtY2hlY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZ0I7SUFDdkMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQjtJQUMzQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBMEM7SUFDbkUsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9FLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBYTtJQUMxQyxNQUFNLFdBQVcsR0FBSSxJQUE0QixFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFFN0UsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxZQUFZLFdBQVcsQ0FBQyxXQUFXLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBVTtJQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUlzSW5wdXQoZWxlbWVudDogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcygnaW5wdXQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUlzVGV4dGFyZWEoZWxlbWVudDogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcygndGV4dGFyZWEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUlzVGV4dGZpZWxkKGVsZW1lbnQ6IEVsZW1lbnQpOiBlbGVtZW50IGlzIEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICByZXR1cm4gY3VpSXNJbnB1dChlbGVtZW50KSB8fCBjdWlJc1RleHRhcmVhKGVsZW1lbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpSXNFbGVtZW50KG5vZGU/OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBOb2RlIHwgbnVsbCk6IG5vZGUgaXMgRWxlbWVudCB7XG4gICAgcmV0dXJuICEhbm9kZSAmJiAnbm9kZVR5cGUnIGluIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc0hUTUxFbGVtZW50KG5vZGU6IHVua25vd24pOiBub2RlIGlzIEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBkZWZhdWx0VmlldyA9IChub2RlIGFzIEVsZW1lbnQgfCB1bmRlZmluZWQpPy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xuXG4gICAgcmV0dXJuICEhbm9kZSAmJiAhIWRlZmF1bHRWaWV3ICYmIG5vZGUgaW5zdGFuY2VvZiBkZWZhdWx0Vmlldy5IVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUlzVGV4dE5vZGUobm9kZTogTm9kZSk6IG5vZGUgaXMgVGV4dCB7XG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Gets actual target from open Shadow DOM if event happened within it
3
+ */
4
+ export function cuiGetActualTarget(event) {
5
+ return event.composedPath()[0];
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFjdHVhbC10YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2dldC1hY3R1YWwtdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFTLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0cyBhY3R1YWwgdGFyZ2V0IGZyb20gb3BlbiBTaGFkb3cgRE9NIGlmIGV2ZW50IGhhcHBlbmVkIHdpdGhpbiBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50OiBFdmVudCk6IE5vZGUge1xuICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGgoKVswXSBhcyBOb2RlO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ export function cuiGetDocumentOrShadowRoot(node) {
2
+ return 'getRootNode' in node && node.isConnected
3
+ ? node.getRootNode()
4
+ : node.ownerDocument;
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRvY3VtZW50LW9yLXNoYWRvdy1yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2RvbS9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQVU7SUFDakQsT0FBTyxhQUFhLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXO1FBQzVDLENBQUMsQ0FBRSxJQUFJLENBQUMsV0FBVyxFQUFlO1FBQ2xDLENBQUMsQ0FBRSxJQUFJLENBQUMsYUFBc0MsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUdldERvY3VtZW50T3JTaGFkb3dSb290KG5vZGU6IE5vZGUpOiBEb2N1bWVudE9yU2hhZG93Um9vdCB7XG4gICAgcmV0dXJuICdnZXRSb290Tm9kZScgaW4gbm9kZSAmJiBub2RlLmlzQ29ubmVjdGVkXG4gICAgICAgID8gKG5vZGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudClcbiAgICAgICAgOiAobm9kZS5vd25lckRvY3VtZW50IGFzIERvY3VtZW50T3JTaGFkb3dSb290KTtcbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { cuiClamp } from '../math';
2
+ import { cuiIsPresent } from '../miscellaneous';
3
+ import { cuiGetDocumentOrShadowRoot } from './get-document-or-shadow-root';
4
+ /**
5
+ * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible
6
+ *
7
+ * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered
8
+ * ```ts
9
+ * function cuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null
10
+ * ```
11
+ */
12
+ export function cuiGetElementObscures(element) {
13
+ const { ownerDocument } = element;
14
+ if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {
15
+ return null;
16
+ }
17
+ const { innerWidth, innerHeight } = ownerDocument.defaultView;
18
+ const doc = cuiGetDocumentOrShadowRoot(element);
19
+ const rect = element.getBoundingClientRect();
20
+ if (rect.width === 0 && rect.height === 0) {
21
+ return null;
22
+ }
23
+ const left = cuiClamp(Math.round(rect.left) + 2, 0, innerWidth);
24
+ const top = cuiClamp(Math.round(rect.top) + 2, 0, innerHeight);
25
+ const right = cuiClamp(Math.round(rect.right) - 2, 0, innerWidth);
26
+ const bottom = cuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);
27
+ const horizontalMiddle = cuiClamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);
28
+ const verticalMiddle = cuiClamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);
29
+ const elements = [
30
+ doc.elementFromPoint(horizontalMiddle, top),
31
+ doc.elementFromPoint(horizontalMiddle, bottom),
32
+ doc.elementFromPoint(left, verticalMiddle),
33
+ doc.elementFromPoint(right, verticalMiddle)
34
+ ];
35
+ const nonNull = elements.filter(cuiIsPresent);
36
+ if (!nonNull.length) {
37
+ return [];
38
+ }
39
+ const filtered = nonNull.filter((el) => !element.contains(el) && !el.contains(element));
40
+ return filtered.length === 4 ? filtered : null;
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVsZW1lbnQtb2JzY3VyZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2RvbS9nZXQtZWxlbWVudC1vYnNjdXJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0U7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFnQjtJQUNsRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRWxDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUU3QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sUUFBUSxHQUFHO1FBQ2IsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztRQUMzQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDO1FBQzFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDO0tBQzlDLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXhGLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQWlELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM3RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VpQ2xhbXAgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IGN1aUlzUHJlc2VudCB9IGZyb20gJy4uL21pc2NlbGxhbmVvdXMnO1xuXG5pbXBvcnQgeyBjdWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCB9IGZyb20gJy4vZ2V0LWRvY3VtZW50LW9yLXNoYWRvdy1yb290JztcblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IG9mIEVsZW1lbnRzIGNvdmVyaW5nIGVkZ2VzIG9mIGdpdmVuIGVsZW1lbnQgb3IgbnVsbCBpZiBhdCBsZWFzdCBvbmUgZWRnZSBtaWRkbGUgcG9pbnQgaXMgdmlzaWJsZVxuICpcbiAqIENBVVRJT046IEVtcHR5IGFycmF5IG1lYW5zIGVsZW1lbnQgaWYgb2Zmc2NyZWVuIGkuZS4gY292ZXJlZCBieSBubyBlbGVtZW50cywgcmF0aGVyIHRoYW4gbm90IGNvdmVyZWRcbiAqIGBgYHRzXG4gKiBmdW5jdGlvbiBjdWlHZXRFbGVtZW50T2JzY3VyZXMoZWxlbWVudDogRWxlbWVudCk6IHJlYWRvbmx5IFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSB8IFtdIHwgbnVsbFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdWlHZXRFbGVtZW50T2JzY3VyZXMoZWxlbWVudDogRWxlbWVudCk6IHJlYWRvbmx5IFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSB8IFtdIHwgbnVsbCB7XG4gICAgY29uc3QgeyBvd25lckRvY3VtZW50IH0gPSBlbGVtZW50O1xuXG4gICAgaWYgKCFvd25lckRvY3VtZW50Py5kZWZhdWx0VmlldyB8fCAhZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgeyBpbm5lcldpZHRoLCBpbm5lckhlaWdodCB9ID0gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICBjb25zdCBkb2MgPSBjdWlHZXREb2N1bWVudE9yU2hhZG93Um9vdChlbGVtZW50KTtcbiAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChyZWN0LndpZHRoID09PSAwICYmIHJlY3QuaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGxlZnQgPSBjdWlDbGFtcChNYXRoLnJvdW5kKHJlY3QubGVmdCkgKyAyLCAwLCBpbm5lcldpZHRoKTtcbiAgICBjb25zdCB0b3AgPSBjdWlDbGFtcChNYXRoLnJvdW5kKHJlY3QudG9wKSArIDIsIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCByaWdodCA9IGN1aUNsYW1wKE1hdGgucm91bmQocmVjdC5yaWdodCkgLSAyLCAwLCBpbm5lcldpZHRoKTtcbiAgICBjb25zdCBib3R0b20gPSBjdWlDbGFtcChNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSAtIDIsIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCBob3Jpem9udGFsTWlkZGxlID0gY3VpQ2xhbXAoTWF0aC5yb3VuZChyZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMiksIDAsIGlubmVyV2lkdGgpO1xuICAgIGNvbnN0IHZlcnRpY2FsTWlkZGxlID0gY3VpQ2xhbXAoTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMiksIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQoaG9yaXpvbnRhbE1pZGRsZSwgdG9wKSxcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQoaG9yaXpvbnRhbE1pZGRsZSwgYm90dG9tKSxcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQobGVmdCwgdmVydGljYWxNaWRkbGUpLFxuICAgICAgICBkb2MuZWxlbWVudEZyb21Qb2ludChyaWdodCwgdmVydGljYWxNaWRkbGUpXG4gICAgXTtcbiAgICBjb25zdCBub25OdWxsID0gZWxlbWVudHMuZmlsdGVyKGN1aUlzUHJlc2VudCk7XG5cbiAgICBpZiAoIW5vbk51bGwubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZCA9IG5vbk51bGwuZmlsdGVyKChlbCkgPT4gIWVsZW1lbnQuY29udGFpbnMoZWwpICYmICFlbC5jb250YWlucyhlbGVtZW50KSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWQubGVuZ3RoID09PSA0ID8gKGZpbHRlcmVkIGFzIFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSkgOiBudWxsO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './contains-or-after';
2
+ export * from './element-checks';
3
+ export * from './get-actual-target';
4
+ export * from './get-document-or-shadow-root';
5
+ export * from './get-element-obscurers';
6
+ export * from './inject-element';
7
+ export * from './point-to-client-rect';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRhaW5zLW9yLWFmdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudC1jaGVja3MnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtYWN0dWFsLXRhcmdldCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1kb2N1bWVudC1vci1zaGFkb3ctcm9vdCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1lbGVtZW50LW9ic2N1cmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnQtdG8tY2xpZW50LXJlY3QnO1xuIl19
@@ -0,0 +1,5 @@
1
+ import { ElementRef, inject } from '@angular/core';
2
+ export function cuiInjectElement() {
3
+ return inject(ElementRef).nativeElement;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2luamVjdC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUluamVjdEVsZW1lbnQ8VCA9IEhUTUxFbGVtZW50PigpOiBUIHtcbiAgICByZXR1cm4gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ export function cuiPointToClientRect(x = 0, y = 0) {
2
+ const rect = {
3
+ x,
4
+ y,
5
+ left: x,
6
+ right: x,
7
+ top: y,
8
+ bottom: y,
9
+ width: 0,
10
+ height: 0
11
+ };
12
+ return {
13
+ ...rect,
14
+ toJSON: () => rect
15
+ };
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQtdG8tY2xpZW50LXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL3BvaW50LXRvLWNsaWVudC1yZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQzdDLE1BQU0sSUFBSSxHQUFHO1FBQ1QsQ0FBQztRQUNELENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztRQUNULEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUM7S0FDSCxDQUFDO0lBRVgsT0FBTztRQUNILEdBQUcsSUFBSTtRQUNQLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0tBQ3JCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aVBvaW50VG9DbGllbnRSZWN0KHggPSAwLCB5ID0gMCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IHJlY3QgPSB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIGxlZnQ6IHgsXG4gICAgICAgIHJpZ2h0OiB4LFxuICAgICAgICB0b3A6IHksXG4gICAgICAgIGJvdHRvbTogeSxcbiAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgIGhlaWdodDogMFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZWN0LFxuICAgICAgICB0b0pTT046ICgpID0+IHJlY3RcbiAgICB9O1xufVxuIl19
@@ -0,0 +1,19 @@
1
+ class FilesUploaderImpl {
2
+ uploadFile(types = '*') {
3
+ const input = document.createElement('input');
4
+ input.type = 'file';
5
+ input.accept = types;
6
+ return new Promise((resolve) => {
7
+ input.onchange = () => {
8
+ const files = input.files;
9
+ if (!files?.length) {
10
+ return;
11
+ }
12
+ resolve(files);
13
+ };
14
+ input.click();
15
+ });
16
+ }
17
+ }
18
+ export const FilesUploader = new FilesUploaderImpl();
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMudXBsb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZmlsZXMvZmlsZXMudXBsb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxpQkFBaUI7SUFDWixVQUFVLENBQUMsS0FBSyxHQUFHLEdBQUc7UUFDekIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVyQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0IsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFTLEVBQUU7Z0JBQ3hCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDO1lBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEZpbGVzVXBsb2FkZXJJbXBsIHtcbiAgICBwdWJsaWMgdXBsb2FkRmlsZSh0eXBlcyA9ICcqJyk6IFByb21pc2U8RmlsZUxpc3Q+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuXG4gICAgICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgICAgIGlucHV0LmFjY2VwdCA9IHR5cGVzO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgaW5wdXQub25jaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBpbnB1dC5maWxlcztcblxuICAgICAgICAgICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShmaWxlcyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpbnB1dC5jbGljaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBGaWxlc1VwbG9hZGVyID0gbmV3IEZpbGVzVXBsb2FkZXJJbXBsKCk7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { FilesUploader } from './files.uploader';
2
+ export { takeCaptureFromVideo } from './take-capture-from-video';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZmlsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRmlsZXNVcGxvYWRlciB9IGZyb20gJy4vZmlsZXMudXBsb2FkZXInO1xuZXhwb3J0IHsgdGFrZUNhcHR1cmVGcm9tVmlkZW8gfSBmcm9tICcuL3Rha2UtY2FwdHVyZS1mcm9tLXZpZGVvJztcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ export function takeCaptureFromVideo(url, time = 1) {
2
+ const canvas = document.createElement('canvas');
3
+ const video = document.createElement('video');
4
+ video.src = url;
5
+ video.currentTime = time;
6
+ canvas.width = 184;
7
+ canvas.height = 120;
8
+ return new Promise((resolve) => {
9
+ video.onloadeddata = () => {
10
+ const context = canvas.getContext('2d');
11
+ if (!context) {
12
+ return;
13
+ }
14
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
15
+ canvas.toBlob((blob) => {
16
+ if (!blob) {
17
+ return;
18
+ }
19
+ resolve(URL.createObjectURL(blob));
20
+ });
21
+ };
22
+ video.load();
23
+ });
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS1jYXB0dXJlLWZyb20tdmlkZW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZmlsZXMvdGFrZS1jYXB0dXJlLWZyb20tdmlkZW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztJQUNyRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBcUIsQ0FBQztJQUVsRSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNoQixLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUN6QixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUVwQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDM0IsS0FBSyxDQUFDLFlBQVksR0FBRyxHQUFTLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBTztZQUNYLENBQUM7WUFFRCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNSLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBRUYsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiB0YWtlQ2FwdHVyZUZyb21WaWRlbyh1cmw6IHN0cmluZywgdGltZSA9IDEpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIGFzIEhUTUxDYW52YXNFbGVtZW50O1xuICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKSBhcyBIVE1MVmlkZW9FbGVtZW50O1xuXG4gICAgdmlkZW8uc3JjID0gdXJsO1xuICAgIHZpZGVvLmN1cnJlbnRUaW1lID0gdGltZTtcbiAgICBjYW52YXMud2lkdGggPSAxODQ7XG4gICAgY2FudmFzLmhlaWdodCA9IDEyMDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICB2aWRlby5vbmxvYWRlZGRhdGEgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICAgICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAgICAgICAgIGNhbnZhcy50b0Jsb2IoKGJsb2IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICB2aWRlby5sb2FkKCk7XG4gICAgfSk7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { cuiGetNativeFocused } from './get-native-focused';
2
+ import { cuiIsHTMLElement } from '../dom';
3
+ export function cuiBlurNativeFocused(document) {
4
+ const activeElement = cuiGetNativeFocused(document);
5
+ if (cuiIsHTMLElement(activeElement)) {
6
+ activeElement.blur();
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ci1uYXRpdmUtZm9jdXNlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9mb2N1cy9ibHVyLW5hdGl2ZS1mb2N1c2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUxQyxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBa0I7SUFDbkQsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEQsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ2xDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1aUdldE5hdGl2ZUZvY3VzZWQgfSBmcm9tICcuL2dldC1uYXRpdmUtZm9jdXNlZCc7XG5pbXBvcnQgeyBjdWlJc0hUTUxFbGVtZW50IH0gZnJvbSAnLi4vZG9tJztcblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUJsdXJOYXRpdmVGb2N1c2VkKGRvY3VtZW50OiBEb2N1bWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBjdWlHZXROYXRpdmVGb2N1c2VkKGRvY3VtZW50KTtcblxuICAgIGlmIChjdWlJc0hUTUxFbGVtZW50KGFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { cuiIsNativeKeyboardFocusable } from './is-native-keyboard-focusable';
2
+ import { cuiIsNativeMouseFocusable } from './is-native-mouse-focusable';
3
+ import { cuiIsHTMLElement } from '../dom';
4
+ import { svgNodeFilter } from '../../constants';
5
+ export function cuiGetClosestFocusable({ initial, root, previous = false, keyboard = true }) {
6
+ if (!root.ownerDocument) {
7
+ return null;
8
+ }
9
+ const check = keyboard ? cuiIsNativeKeyboardFocusable : cuiIsNativeMouseFocusable;
10
+ const treeWalker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, svgNodeFilter);
11
+ treeWalker.currentNode = initial;
12
+ while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {
13
+ if (cuiIsHTMLElement(treeWalker.currentNode)) {
14
+ initial = treeWalker.currentNode;
15
+ }
16
+ if (cuiIsHTMLElement(initial) && check(initial)) {
17
+ return initial;
18
+ }
19
+ }
20
+ return null;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3QtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2ZvY3VzL2dldC1jbG9zZXN0LWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU2hELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUNuQyxPQUFPLEVBQ1AsSUFBSSxFQUNKLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLFFBQVEsR0FBRyxJQUFJLEVBQ2E7SUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUM7SUFDbEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUVyRyxVQUFVLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUVqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNsRSxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1aUlzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGUgfSBmcm9tICcuL2lzLW5hdGl2ZS1rZXlib2FyZC1mb2N1c2FibGUnO1xuaW1wb3J0IHsgY3VpSXNOYXRpdmVNb3VzZUZvY3VzYWJsZSB9IGZyb20gJy4vaXMtbmF0aXZlLW1vdXNlLWZvY3VzYWJsZSc7XG5pbXBvcnQgeyBjdWlJc0hUTUxFbGVtZW50IH0gZnJvbSAnLi4vZG9tJztcbmltcG9ydCB7IHN2Z05vZGVGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUdldENsb3Nlc3RGb2N1c2FibGVPcHRpb25zIHtcbiAgICBpbml0aWFsOiBFbGVtZW50O1xuICAgIGtleWJvYXJkPzogYm9vbGVhbjtcbiAgICBwcmV2aW91cz86IGJvb2xlYW47XG4gICAgcm9vdDogTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUdldENsb3Nlc3RGb2N1c2FibGUoe1xuICAgIGluaXRpYWwsXG4gICAgcm9vdCxcbiAgICBwcmV2aW91cyA9IGZhbHNlLFxuICAgIGtleWJvYXJkID0gdHJ1ZVxufTogQ3VpR2V0Q2xvc2VzdEZvY3VzYWJsZU9wdGlvbnMpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghcm9vdC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrID0ga2V5Ym9hcmQgPyBjdWlJc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlIDogY3VpSXNOYXRpdmVNb3VzZUZvY3VzYWJsZTtcbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gcm9vdC5vd25lckRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHN2Z05vZGVGaWx0ZXIpO1xuXG4gICAgdHJlZVdhbGtlci5jdXJyZW50Tm9kZSA9IGluaXRpYWw7XG5cbiAgICB3aGlsZSAocHJldmlvdXMgPyB0cmVlV2Fsa2VyLnByZXZpb3VzTm9kZSgpIDogdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIGlmIChjdWlJc0hUTUxFbGVtZW50KHRyZWVXYWxrZXIuY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgICBpbml0aWFsID0gdHJlZVdhbGtlci5jdXJyZW50Tm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdWlJc0hUTUxFbGVtZW50KGluaXRpYWwpICYmIGNoZWNrKGluaXRpYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ export function cuiGetNativeFocused({ activeElement }) {
2
+ if (!activeElement?.shadowRoot) {
3
+ return activeElement;
4
+ }
5
+ let element = activeElement.shadowRoot.activeElement;
6
+ while (element?.shadowRoot) {
7
+ element = element.shadowRoot.activeElement;
8
+ }
9
+ return element;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5hdGl2ZS1mb2N1c2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2ZvY3VzL2dldC1uYXRpdmUtZm9jdXNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBRSxhQUFhLEVBQVk7SUFDM0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUM3QixPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFFckQsT0FBTyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUdldE5hdGl2ZUZvY3VzZWQoeyBhY3RpdmVFbGVtZW50IH06IERvY3VtZW50KTogRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghYWN0aXZlRWxlbWVudD8uc2hhZG93Um9vdCkge1xuICAgICAgICByZXR1cm4gYWN0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBsZXQgZWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O1xuXG4gICAgd2hpbGUgKGVsZW1lbnQ/LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './blur-native-focused';
2
+ export * from './get-closest-focusable';
3
+ export * from './get-native-focused';
4
+ export * from './is-native-focused';
5
+ export * from './is-native-keyboard-focusable';
6
+ export * from './is-native-mouse-focusable';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZm9jdXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JsdXItbmF0aXZlLWZvY3VzZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtY2xvc2VzdC1mb2N1c2FibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtbmF0aXZlLWZvY3VzZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1uYXRpdmUtZm9jdXNlZCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLW5hdGl2ZS1rZXlib2FyZC1mb2N1c2FibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlJztcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { cuiGetNativeFocused } from './get-native-focused';
2
+ /**
3
+ * Checks if element is focused.
4
+ *
5
+ * Could return true even after blur since element remains focused if you switch away from a browser tab.
6
+ *
7
+ * @param node or null (as a common return value of DOM nodes walking)
8
+ * @return true if focused
9
+ */
10
+ export function cuiIsNativeFocused(node) {
11
+ return !!node?.ownerDocument && cuiGetNativeFocused(node.ownerDocument) === node && node.ownerDocument.hasFocus();
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmF0aXZlLWZvY3VzZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZm9jdXMvaXMtbmF0aXZlLWZvY3VzZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0Q7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFrQjtJQUNqRCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN0SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VpR2V0TmF0aXZlRm9jdXNlZCB9IGZyb20gJy4vZ2V0LW5hdGl2ZS1mb2N1c2VkJztcblxuLyoqXG4gKiBDaGVja3MgaWYgZWxlbWVudCBpcyBmb2N1c2VkLlxuICpcbiAqIENvdWxkIHJldHVybiB0cnVlIGV2ZW4gYWZ0ZXIgYmx1ciBzaW5jZSBlbGVtZW50IHJlbWFpbnMgZm9jdXNlZCBpZiB5b3Ugc3dpdGNoIGF3YXkgZnJvbSBhIGJyb3dzZXIgdGFiLlxuICpcbiAqIEBwYXJhbSBub2RlIG9yIG51bGwgKGFzIGEgY29tbW9uIHJldHVybiB2YWx1ZSBvZiBET00gbm9kZXMgd2Fsa2luZylcbiAqIEByZXR1cm4gdHJ1ZSBpZiBmb2N1c2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc05hdGl2ZUZvY3VzZWQobm9kZT86IE5vZGUgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhbm9kZT8ub3duZXJEb2N1bWVudCAmJiBjdWlHZXROYXRpdmVGb2N1c2VkKG5vZGUub3duZXJEb2N1bWVudCkgPT09IG5vZGUgJiYgbm9kZS5vd25lckRvY3VtZW50Lmhhc0ZvY3VzKCk7XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { cuiIsHTMLElement } from '../dom';
2
+ export function cuiIsNativeKeyboardFocusable(element) {
3
+ if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
4
+ return false;
5
+ }
6
+ if ((cuiIsHTMLElement(element) && element.isContentEditable) || element.getAttribute('tabIndex') === '0') {
7
+ return true;
8
+ }
9
+ switch (element.tagName) {
10
+ case 'BUTTON':
11
+ case 'SELECT':
12
+ case 'TEXTAREA':
13
+ return true;
14
+ case 'VIDEO':
15
+ case 'AUDIO':
16
+ return element.hasAttribute('controls');
17
+ case 'INPUT':
18
+ return element.getAttribute('type') !== 'hidden';
19
+ case 'A':
20
+ case 'LINK':
21
+ return element.hasAttribute('href');
22
+ default:
23
+ return false;
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmF0aXZlLWtleWJvYXJkLWZvY3VzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9mb2N1cy9pcy1uYXRpdmUta2V5Ym9hcmQtZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUxQyxNQUFNLFVBQVUsNEJBQTRCLENBQUMsT0FBZ0I7SUFDekQsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEYsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3ZHLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDaEIsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU87WUFDUixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsS0FBSyxPQUFPO1lBQ1IsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUNyRCxLQUFLLEdBQUcsQ0FBQztRQUNULEtBQUssTUFBTTtZQUNQLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QztZQUNJLE9BQU8sS0FBSyxDQUFDO0lBQ3JCLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VpSXNIVE1MRWxlbWVudCB9IGZyb20gJy4uL2RvbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYkluZGV4JykgPT09ICctMScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgoY3VpSXNIVE1MRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKSB8fCBlbGVtZW50LmdldEF0dHJpYnV0ZSgndGFiSW5kZXgnKSA9PT0gJzAnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZWxlbWVudC50YWdOYW1lKSB7XG4gICAgICAgIGNhc2UgJ0JVVFRPTic6XG4gICAgICAgIGNhc2UgJ1NFTEVDVCc6XG4gICAgICAgIGNhc2UgJ1RFWFRBUkVBJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlICdWSURFTyc6XG4gICAgICAgIGNhc2UgJ0FVRElPJzpcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKTtcbiAgICAgICAgY2FzZSAnSU5QVVQnOlxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgIT09ICdoaWRkZW4nO1xuICAgICAgICBjYXNlICdBJzpcbiAgICAgICAgY2FzZSAnTElOSyc6XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import { cuiIsNativeKeyboardFocusable } from './is-native-keyboard-focusable';
2
+ export function cuiIsNativeMouseFocusable(element) {
3
+ return (!element.hasAttribute('disabled') &&
4
+ (element.getAttribute('tabIndex') === '-1' || cuiIsNativeKeyboardFocusable(element)));
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmF0aXZlLW1vdXNlLWZvY3VzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9mb2N1cy9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxPQUFnQjtJQUN0RCxPQUFPLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3ZGLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VpSXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSB9IGZyb20gJy4vaXMtbmF0aXZlLWtleWJvYXJkLWZvY3VzYWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc05hdGl2ZU1vdXNlRm9jdXNhYmxlKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgICAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICAgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YWJJbmRleCcpID09PSAnLTEnIHx8IGN1aUlzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGUoZWxlbWVudCkpXG4gICAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from './dom';
2
+ export * from './focus';
3
+ export * from './math';
4
+ export * from './miscellaneous';
5
+ export * from './platform';
6
+ export * from './token';
7
+ export * from './files';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vbWlzY2VsbGFuZW91cyc7XG5leHBvcnQgKiBmcm9tICcuL3BsYXRmb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlcyc7XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Clamps a value between two inclusive limits
3
+ *
4
+ * @param value
5
+ * @param min lower limit
6
+ * @param max upper limit
7
+ */
8
+ export function cuiClamp(value, min, max) {
9
+ return Math.min(max, Math.max(min, value));
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWF0aC9jbGFtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUM1RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhbXBzIGEgdmFsdWUgYmV0d2VlbiB0d28gaW5jbHVzaXZlIGxpbWl0c1xuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICogQHBhcmFtIG1pbiBsb3dlciBsaW1pdFxuICogQHBhcmFtIG1heCB1cHBlciBsaW1pdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpQ2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIHZhbHVlKSk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './clamp';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWF0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xhbXAnO1xuIl19
@@ -0,0 +1,4 @@
1
+ export function cuiArrayRemove(array, index) {
2
+ return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktcmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvYXJyYXktcmVtb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxjQUFjLENBQUksS0FBbUIsRUFBRSxLQUFhO0lBQ2hFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3VpQXJyYXlSZW1vdmU8VD4oYXJyYXk6IHJlYWRvbmx5IFRbXSwgaW5kZXg6IG51bWJlcik6IFRbXSB7XG4gICAgcmV0dXJuIGFycmF5LnNsaWNlKDAsIE1hdGgubWF4KGluZGV4LCAwKSkuY29uY2F0KGFycmF5LnNsaWNlKE1hdGgubWF4KGluZGV4ICsgMSwgMCkpKTtcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './move-item-in-array';
2
+ export * from './array-remove';
3
+ export * from './is-present';
4
+ export * from './pure';
5
+ export * from './px';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vdmUtaXRlbS1pbi1hcnJheSc7XG5leHBvcnQgKiBmcm9tICcuL2FycmF5LXJlbW92ZSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLXByZXNlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wdXJlJztcbmV4cG9ydCAqIGZyb20gJy4vcHgnO1xuIl19
@@ -0,0 +1,4 @@
1
+ export function cuiIsPresent(value) {
2
+ return value !== null && value !== undefined;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcHJlc2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9taXNjZWxsYW5lb3VzL2lzLXByZXNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFnQjtJQUM1QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUlzUHJlc2VudDxUPih2YWx1ZT86IFQgfCBudWxsKTogdmFsdWUgaXMgVCB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export function cuiMoveItemInArray(array, fromIndex, toIndex) {
2
+ const resultArray = [...array];
3
+ if (fromIndex === toIndex) {
4
+ return resultArray;
5
+ }
6
+ const [item] = resultArray.splice(fromIndex, 1);
7
+ resultArray.splice(toIndex, 0, item);
8
+ return resultArray;
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1pdGVtLWluLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvbW92ZS1pdGVtLWluLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxrQkFBa0IsQ0FBSSxLQUFVLEVBQUUsU0FBaUIsRUFBRSxPQUFlO0lBQ2hGLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUUvQixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN4QixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhELFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyQyxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aU1vdmVJdGVtSW5BcnJheTxUPihhcnJheTogVFtdLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogVFtdIHtcbiAgICBjb25zdCByZXN1bHRBcnJheSA9IFsuLi5hcnJheV07XG5cbiAgICBpZiAoZnJvbUluZGV4ID09PSB0b0luZGV4KSB7XG4gICAgICAgIHJldHVybiByZXN1bHRBcnJheTtcbiAgICB9XG5cbiAgICBjb25zdCBbaXRlbV0gPSByZXN1bHRBcnJheS5zcGxpY2UoZnJvbUluZGV4LCAxKTtcblxuICAgIHJlc3VsdEFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBpdGVtKTtcblxuICAgIHJldHVybiByZXN1bHRBcnJheTtcbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ function decorateMethod(originalMethod) {
2
+ let previousArgs = [];
3
+ let originalFnWasCalledLeastAtOnce = false;
4
+ let pureValue;
5
+ return function cuiPureMethodPatched(...args) {
6
+ const isPure = originalFnWasCalledLeastAtOnce &&
7
+ previousArgs.length === args.length &&
8
+ args.every((arg, index) => arg === previousArgs[index]);
9
+ if (isPure) {
10
+ return pureValue;
11
+ }
12
+ previousArgs = args;
13
+ pureValue = originalMethod.apply(this, args);
14
+ originalFnWasCalledLeastAtOnce = true;
15
+ return pureValue;
16
+ };
17
+ }
18
+ function decorateGetter(originalGetter, propertyKey, enumerable = true) {
19
+ return function cuiPureGetterPatched() {
20
+ const value = originalGetter.call(this);
21
+ Object.defineProperty(this, propertyKey, { enumerable, value });
22
+ return value;
23
+ };
24
+ }
25
+ export function cuiPure(target, propertyKeyOrContext, descriptor) {
26
+ if (typeof target === 'function') {
27
+ const context = propertyKeyOrContext;
28
+ if (context.kind === 'getter') {
29
+ return decorateGetter(target, context.name);
30
+ }
31
+ if (context.kind === 'method') {
32
+ return decorateMethod(target);
33
+ }
34
+ throw new CuiPureException();
35
+ }
36
+ const { get, enumerable, value } = descriptor;
37
+ const propertyKey = propertyKeyOrContext;
38
+ if (get) {
39
+ return {
40
+ configurable: true,
41
+ enumerable,
42
+ get: decorateGetter(get, propertyKey, enumerable)
43
+ };
44
+ }
45
+ if (typeof value !== 'function') {
46
+ throw new CuiPureException();
47
+ }
48
+ const original = value;
49
+ return {
50
+ configurable: true,
51
+ enumerable,
52
+ get() {
53
+ let previousArgs = [];
54
+ let originalFnWasCalledLeastAtOnce = false;
55
+ let pureValue;
56
+ const patched = (...args) => {
57
+ const isPure = originalFnWasCalledLeastAtOnce &&
58
+ previousArgs.length === args.length &&
59
+ args.every((arg, index) => arg === previousArgs[index]);
60
+ if (isPure) {
61
+ return pureValue;
62
+ }
63
+ previousArgs = args;
64
+ pureValue = original.apply(this, args);
65
+ originalFnWasCalledLeastAtOnce = true;
66
+ return pureValue;
67
+ };
68
+ Object.defineProperty(this, propertyKey, {
69
+ configurable: true,
70
+ value: patched
71
+ });
72
+ return patched;
73
+ }
74
+ };
75
+ }
76
+ export class CuiPureException extends Error {
77
+ constructor() {
78
+ super('cuiPure can only be used with functions or getters');
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9taXNjZWxsYW5lb3VzL3B1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxjQUFjLENBQ25CLGNBQStDO0lBRS9DLElBQUksWUFBWSxHQUF1QixFQUFFLENBQUM7SUFDMUMsSUFBSSw4QkFBOEIsR0FBRyxLQUFLLENBQUM7SUFDM0MsSUFBSSxTQUFrQixDQUFDO0lBRXZCLE9BQU8sU0FBUyxvQkFBb0IsQ0FBZSxHQUFHLElBQWU7UUFDakUsTUFBTSxNQUFNLEdBQ1IsOEJBQThCO1lBQzlCLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU1RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELFlBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsU0FBUyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLDhCQUE4QixHQUFHLElBQUksQ0FBQztRQUV0QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQ25CLGNBQTZCLEVBQzdCLFdBQTRCLEVBQzVCLFVBQVUsR0FBRyxJQUFJO0lBRWpCLE9BQU8sU0FBUyxvQkFBb0I7UUFDaEMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVoRSxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDLENBQUM7QUFDTixDQUFDO0FBMEJELE1BQU0sVUFBVSxPQUFPLENBQ25CLE1BQWtELEVBQ2xELG9CQUFrQyxFQUNsQyxVQUFxRTtJQUVyRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLG9CQUEyQixDQUFDO1FBRTVDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLGNBQWMsQ0FBQyxNQUF1QixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sY0FBYyxDQUFDLE1BQXlDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVcsQ0FBQztJQUMvQyxNQUFNLFdBQVcsR0FBRyxvQkFBOEIsQ0FBQztJQUVuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ04sT0FBTztZQUNILFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVU7WUFDVixHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO1NBQ3BELENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXZCLE9BQU87UUFDSCxZQUFZLEVBQUUsSUFBSTtRQUNsQixVQUFVO1FBQ1YsR0FBRztZQUNDLElBQUksWUFBWSxHQUF1QixFQUFFLENBQUM7WUFDMUMsSUFBSSw4QkFBOEIsR0FBRyxLQUFLLENBQUM7WUFDM0MsSUFBSSxTQUFrQixDQUFDO1lBRXZCLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFlLEVBQVcsRUFBRTtnQkFDNUMsTUFBTSxNQUFNLEdBQ1IsOEJBQThCO29CQUM5QixZQUFZLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUU1RCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNULE9BQU8sU0FBUyxDQUFDO2dCQUNyQixDQUFDO2dCQUVELFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO2dCQUV0QyxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDLENBQUM7WUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ3JDLFlBQVksRUFBRSxJQUFJO2dCQUNsQixLQUFLLEVBQUUsT0FBTzthQUNqQixDQUFDLENBQUM7WUFFSCxPQUFPLE9BQWtCLENBQUM7UUFDOUIsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFDdkM7UUFDSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBkZWNvcmF0ZU1ldGhvZChcbiAgICBvcmlnaW5hbE1ldGhvZDogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93blxuKTogKHRoaXM6IG9iamVjdCwgLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duIHtcbiAgICBsZXQgcHJldmlvdXNBcmdzOiByZWFkb25seSB1bmtub3duW10gPSBbXTtcbiAgICBsZXQgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlID0gZmFsc2U7XG4gICAgbGV0IHB1cmVWYWx1ZTogdW5rbm93bjtcblxuICAgIHJldHVybiBmdW5jdGlvbiBjdWlQdXJlTWV0aG9kUGF0Y2hlZCh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IHVua25vd25bXSk6IHVua25vd24ge1xuICAgICAgICBjb25zdCBpc1B1cmUgPVxuICAgICAgICAgICAgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlICYmXG4gICAgICAgICAgICBwcmV2aW91c0FyZ3MubGVuZ3RoID09PSBhcmdzLmxlbmd0aCAmJlxuICAgICAgICAgICAgYXJncy5ldmVyeSgoYXJnLCBpbmRleCkgPT4gYXJnID09PSBwcmV2aW91c0FyZ3NbaW5kZXhdKTtcblxuICAgICAgICBpZiAoaXNQdXJlKSB7XG4gICAgICAgICAgICByZXR1cm4gcHVyZVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNBcmdzID0gYXJncztcbiAgICAgICAgcHVyZVZhbHVlID0gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIG9yaWdpbmFsRm5XYXNDYWxsZWRMZWFzdEF0T25jZSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHB1cmVWYWx1ZTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZUdldHRlcihcbiAgICBvcmlnaW5hbEdldHRlcjogKCkgPT4gdW5rbm93bixcbiAgICBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGVudW1lcmFibGUgPSB0cnVlXG4pOiAodGhpczogb2JqZWN0KSA9PiB1bmtub3duIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gY3VpUHVyZUdldHRlclBhdGNoZWQodGhpczogb2JqZWN0KTogdW5rbm93biB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gb3JpZ2luYWxHZXR0ZXIuY2FsbCh0aGlzKTtcblxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgcHJvcGVydHlLZXksIHsgZW51bWVyYWJsZSwgdmFsdWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBsYXp5IGluaXRpYWxpemF0aW9uIGZvciBnZXR0ZXIgb3IgbWVtb2l6YXRpb24gb2YgYSBmdW5jdGlvbiBjYWxsIHNpbWlsYXIgdG8gcHVyZSB7QGxpbms6IFBpcGV9LlxuICogUmVwbGFjZXMgZ2V0dGVyIHdpdGggaXRzIGNhbGN1bGF0ZWQgdmFsdWUgdXBvbiBmaXJzdCBjYWxsIG9yIGtlZXBzIHRyYWNrIG9mIGxhc3QgY2FsbCBhcmd1bWVudHMgYW5kIHJldHVybmVkXG4gKiB2YWx1ZSBmb3IgZnVuY3Rpb24sIHNraXBwaW5nIGNhbGN1bGF0aW9uIHdoZW4gYXJndW1lbnRzIGFyZSBzdHJpY3RseSB0aGUgc2FtZS5cbiAqXG4gKiBAdGhyb3dzIGVycm9yIGlmIHVzZWQgbm90IG9uIGdldHRlciBvciBmdW5jdGlvblxuICpcbiAqIENBVVRJT046IHRoZXkgbXVzdCBiZSBwdXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpUHVyZTxUPihcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleTogc3RyaW5nLFxuICAgIHsgZ2V0LCBlbnVtZXJhYmxlLCB2YWx1ZSB9OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPlxuKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8VD47XG5cbi8qKlxuICogSW1wbGVtZW50cyBsYXp5IGluaXRpYWxpemF0aW9uIGZvciBnZXR0ZXIgb3IgbWVtb2l6YXRpb24gb2YgYSBmdW5jdGlvbiBjYWxsIHNpbWlsYXIgdG8gcHVyZSB7QGxpbms6IFBpcGV9LlxuICogUmVwbGFjZXMgZ2V0dGVyIHdpdGggaXRzIGNhbGN1bGF0ZWQgdmFsdWUgdXBvbiBmaXJzdCBjYWxsIG9yIGtlZXBzIHRyYWNrIG9mIGxhc3QgY2FsbCBhcmd1bWVudHMgYW5kIHJldHVybmVkXG4gKiB2YWx1ZSBmb3IgZnVuY3Rpb24sIHNraXBwaW5nIGNhbGN1bGF0aW9uIHdoZW4gYXJndW1lbnRzIGFyZSBzdHJpY3RseSB0aGUgc2FtZS5cbiAqXG4gKiBDQVVUSU9OOiB0aGV5IG11c3QgYmUgcHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1aVB1cmU8QSBleHRlbmRzIHVua25vd25bXSwgUj4odGFyZ2V0OiAoLi4uYXJnczogQSkgPT4gUiwgY29udGV4dDogYW55KTogKC4uLmFyZ3M6IEEpID0+IFI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlQdXJlKFxuICAgIHRhcmdldDogb2JqZWN0IHwgKCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24pLFxuICAgIHByb3BlcnR5S2V5T3JDb250ZXh0OiBhbnkgfCBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24+XG4pOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjx1bmtub3duPiB8ICgoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duKSB7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHByb3BlcnR5S2V5T3JDb250ZXh0IGFzIGFueTtcblxuICAgICAgICBpZiAoY29udGV4dC5raW5kID09PSAnZ2V0dGVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRlR2V0dGVyKHRhcmdldCBhcyAoKSA9PiB1bmtub3duLCBjb250ZXh0Lm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQua2luZCA9PT0gJ21ldGhvZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWNvcmF0ZU1ldGhvZCh0YXJnZXQgYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bik7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgQ3VpUHVyZUV4Y2VwdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZ2V0LCBlbnVtZXJhYmxlLCB2YWx1ZSB9ID0gZGVzY3JpcHRvciE7XG4gICAgY29uc3QgcHJvcGVydHlLZXkgPSBwcm9wZXJ0eUtleU9yQ29udGV4dCBhcyBzdHJpbmc7XG5cbiAgICBpZiAoZ2V0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlLFxuICAgICAgICAgICAgZ2V0OiBkZWNvcmF0ZUdldHRlcihnZXQsIHByb3BlcnR5S2V5LCBlbnVtZXJhYmxlKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEN1aVB1cmVFeGNlcHRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbCA9IHZhbHVlO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlLFxuICAgICAgICBnZXQoKTogdW5rbm93biB7XG4gICAgICAgICAgICBsZXQgcHJldmlvdXNBcmdzOiByZWFkb25seSB1bmtub3duW10gPSBbXTtcbiAgICAgICAgICAgIGxldCBvcmlnaW5hbEZuV2FzQ2FsbGVkTGVhc3RBdE9uY2UgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBwdXJlVmFsdWU6IHVua25vd247XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGNoZWQgPSAoLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNQdXJlID1cbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlICYmXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQXJncy5sZW5ndGggPT09IGFyZ3MubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgIGFyZ3MuZXZlcnkoKGFyZywgaW5kZXgpID0+IGFyZyA9PT0gcHJldmlvdXNBcmdzW2luZGV4XSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNQdXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJlVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcHJldmlvdXNBcmdzID0gYXJncztcbiAgICAgICAgICAgICAgICBwdXJlVmFsdWUgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEZuV2FzQ2FsbGVkTGVhc3RBdE9uY2UgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHB1cmVWYWx1ZTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eUtleSwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcGF0Y2hlZFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBwYXRjaGVkIGFzIHVua25vd247XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ3VpUHVyZUV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2N1aVB1cmUgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGZ1bmN0aW9ucyBvciBnZXR0ZXJzJyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Adds 'px' to the number and turns it into a string
3
+ */
4
+ export function cuiPx(value) {
5
+ return `${value}px`;
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9weC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsS0FBYTtJQUMvQixPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkcyAncHgnIHRvIHRoZSBudW1iZXIgYW5kIHR1cm5zIGl0IGludG8gYSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1aVB4KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt2YWx1ZX1weGA7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './is-ios';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvcGxhdGZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLWlvcyc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export const CUI_SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;
2
+ export const CUI_IOS_REG_EXP = /ipad|iphone|ipod/i;
3
+ export function cuiIsIos({ userAgent, maxTouchPoints }) {
4
+ return CUI_SAFARI_REG_EXP.test(userAgent) || (CUI_IOS_REG_EXP.test(userAgent) && maxTouchPoints > 1);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL3BsYXRmb3JtL2lzLWlvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQWE7SUFDN0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENVSV9TQUZBUklfUkVHX0VYUCA9IC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pO1xuZXhwb3J0IGNvbnN0IENVSV9JT1NfUkVHX0VYUCA9IC9pcGFkfGlwaG9uZXxpcG9kL2k7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc0lvcyh7IHVzZXJBZ2VudCwgbWF4VG91Y2hQb2ludHMgfTogTmF2aWdhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENVSV9TQUZBUklfUkVHX0VYUC50ZXN0KHVzZXJBZ2VudCkgfHwgKENVSV9JT1NfUkVHX0VYUC50ZXN0KHVzZXJBZ2VudCkgJiYgbWF4VG91Y2hQb2ludHMgPiAxKTtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export function cuiCreateToken(defaults) {
3
+ return cuiCreateTokenFromFactory(() => defaults);
4
+ }
5
+ export function cuiCreateTokenFromFactory(factory) {
6
+ return new InjectionToken('', { factory });
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL3Rva2VuL2NyZWF0ZS10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sVUFBVSxjQUFjLENBQUksUUFBVztJQUN6QyxPQUFPLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUksT0FBZ0I7SUFDekQsT0FBTyxJQUFJLGNBQWMsQ0FBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VpQ3JlYXRlVG9rZW48VD4oZGVmYXVsdHM6IFQpOiBJbmplY3Rpb25Ub2tlbjxUPiB7XG4gICAgcmV0dXJuIGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4gZGVmYXVsdHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTxUPihmYWN0b3J5OiAoKSA9PiBUKTogSW5qZWN0aW9uVG9rZW48VD4ge1xuICAgIHJldHVybiBuZXcgSW5qZWN0aW9uVG9rZW48VD4oJycsIHsgZmFjdG9yeSB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './create-token';
2
+ export * from './provide';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvdG9rZW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZSc7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export function cuiProvide(provide, useExisting, multi = false) {
2
+ return { provide, useExisting, multi };
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy90b2tlbi9wcm92aWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sVUFBVSxVQUFVLENBQ3RCLE9BQXlCLEVBQ3pCLFdBQTZCLEVBQzdCLEtBQUssR0FBRyxLQUFLO0lBRWIsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXhpc3RpbmdQcm92aWRlciwgUHJvdmlkZXJUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VpUHJvdmlkZTxUPihwcm92aWRlOiBQcm92aWRlclRva2VuPFQ+LCB1c2VFeGlzdGluZzogUHJvdmlkZXJUb2tlbjxUPik6IEV4aXN0aW5nUHJvdmlkZXI7XG5leHBvcnQgZnVuY3Rpb24gY3VpUHJvdmlkZTxUPihcbiAgICBwcm92aWRlOiBQcm92aWRlclRva2VuPFQgfCBUW10+LFxuICAgIHVzZUV4aXN0aW5nOiBQcm92aWRlclRva2VuPFQ+LFxuICAgIG11bHRpOiBib29sZWFuXG4pOiBFeGlzdGluZ1Byb3ZpZGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGN1aVByb3ZpZGU8VD4oXG4gICAgcHJvdmlkZTogUHJvdmlkZXJUb2tlbjxUPixcbiAgICB1c2VFeGlzdGluZzogUHJvdmlkZXJUb2tlbjxUPixcbiAgICBtdWx0aSA9IGZhbHNlXG4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcbiAgICByZXR1cm4geyBwcm92aWRlLCB1c2VFeGlzdGluZywgbXVsdGkgfTtcbn1cbiJdfQ==