@skbkontur/react-ui 4.0.3 → 4.0.6

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 (290) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +2 -9
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +2 -2
  6. package/cjs/components/Button/Button.js.map +1 -1
  7. package/cjs/components/Button/Button.styles.js +1 -1
  8. package/cjs/components/Button/Button.styles.js.map +1 -1
  9. package/cjs/components/Checkbox/Checkbox.d.ts +2 -2
  10. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  11. package/cjs/components/ComboBox/ComboBox.d.ts +3 -3
  12. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  13. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  14. package/cjs/components/CurrencyInput/CurrencyInput.js +3 -3
  15. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  16. package/cjs/components/DateInput/DateInput.d.ts +2 -2
  17. package/cjs/components/DateInput/DateInput.js.map +1 -1
  18. package/cjs/components/DateInput/DateInput.styles.js +2 -2
  19. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  20. package/cjs/components/DatePicker/DatePicker.d.ts +3 -3
  21. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  22. package/cjs/components/Dropdown/Dropdown.d.ts +2 -2
  23. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  24. package/cjs/components/Hint/Hint.d.ts +6 -2
  25. package/cjs/components/Hint/Hint.js +9 -1
  26. package/cjs/components/Hint/Hint.js.map +1 -1
  27. package/cjs/components/Input/Input.d.ts +3 -3
  28. package/cjs/components/Input/Input.js +1 -1
  29. package/cjs/components/Input/Input.js.map +1 -1
  30. package/cjs/components/Loader/Loader.js +7 -7
  31. package/cjs/components/Loader/Loader.js.map +1 -1
  32. package/cjs/components/Modal/Modal.d.ts +1 -1
  33. package/cjs/components/Modal/Modal.js +1 -1
  34. package/cjs/components/Modal/Modal.js.map +1 -1
  35. package/cjs/components/Modal/ModalFooter.js +0 -1
  36. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  37. package/cjs/components/Modal/ModalHeader.js +0 -1
  38. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  39. package/cjs/components/Radio/Radio.d.ts +2 -2
  40. package/cjs/components/Radio/Radio.js.map +1 -1
  41. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
  42. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  43. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  44. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  45. package/cjs/components/ScrollContainer/ScrollContainer.js +3 -2
  46. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  47. package/cjs/components/Select/Select.d.ts +10 -8
  48. package/cjs/components/Select/Select.js +12 -2
  49. package/cjs/components/Select/Select.js.map +1 -1
  50. package/cjs/components/SidePage/SidePage.d.ts +0 -1
  51. package/cjs/components/SidePage/SidePage.js +1 -15
  52. package/cjs/components/SidePage/SidePage.js.map +1 -1
  53. package/cjs/components/SidePage/SidePageFooter.js +4 -3
  54. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  55. package/cjs/components/SidePage/SidePageHeader.js +3 -2
  56. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  57. package/cjs/components/Sticky/Sticky.js +4 -3
  58. package/cjs/components/Sticky/Sticky.js.map +1 -1
  59. package/cjs/components/Switcher/Switcher.d.ts +2 -1
  60. package/cjs/components/Switcher/Switcher.js +1 -0
  61. package/cjs/components/Switcher/Switcher.js.map +1 -1
  62. package/cjs/components/Tabs/Indicator.js +2 -1
  63. package/cjs/components/Tabs/Indicator.js.map +1 -1
  64. package/cjs/components/Tabs/Tab.d.ts +2 -2
  65. package/cjs/components/Tabs/Tab.js.map +1 -1
  66. package/cjs/components/Tabs/Tabs.d.ts +3 -1
  67. package/cjs/components/Tabs/Tabs.js +8 -4
  68. package/cjs/components/Tabs/Tabs.js.map +1 -1
  69. package/cjs/components/Textarea/Textarea.d.ts +4 -4
  70. package/cjs/components/Textarea/Textarea.js.map +1 -1
  71. package/cjs/components/Toggle/Toggle.d.ts +2 -2
  72. package/cjs/components/Toggle/Toggle.js.map +1 -1
  73. package/cjs/components/Token/Token.d.ts +2 -2
  74. package/cjs/components/Token/Token.js.map +1 -1
  75. package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
  76. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  77. package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
  78. package/cjs/components/TokenInput/TokenInput.js +1 -1
  79. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  80. package/cjs/components/Tooltip/Tooltip.d.ts +4 -2
  81. package/cjs/components/Tooltip/Tooltip.js +10 -7
  82. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  83. package/cjs/internal/BGRuler.js +3 -1
  84. package/cjs/internal/BGRuler.js.map +1 -1
  85. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  86. package/cjs/internal/CommonWrapper/CommonWrapper.js +15 -1
  87. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  88. package/cjs/internal/ComponentTable.d.ts +4 -2
  89. package/cjs/internal/ComponentTable.js +1 -0
  90. package/cjs/internal/ComponentTable.js.map +1 -1
  91. package/cjs/internal/DateSelect/DateSelect.js +2 -1
  92. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  93. package/cjs/internal/DropdownContainer/DropdownContainer.js +5 -10
  94. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  95. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +3 -2
  96. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  97. package/cjs/internal/InternalMenu/InternalMenu.js +3 -2
  98. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  99. package/cjs/internal/Popup/Popup.d.ts +1 -2
  100. package/cjs/internal/Popup/Popup.js +16 -13
  101. package/cjs/internal/Popup/Popup.js.map +1 -1
  102. package/cjs/internal/Popup/PopupHelper.js +4 -2
  103. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  104. package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
  105. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  106. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  107. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
  108. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  109. package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
  110. package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
  111. package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
  112. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +3 -12
  113. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  114. package/cjs/internal/ThemePlayground/ThemeEditor.js +2 -0
  115. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  116. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  117. package/cjs/internal/themes/DefaultTheme.d.ts +1 -0
  118. package/cjs/internal/themes/DefaultTheme.js +3 -0
  119. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  120. package/cjs/lib/ConditionalHandler.d.ts +3 -2
  121. package/cjs/lib/ConditionalHandler.js +5 -3
  122. package/cjs/lib/ConditionalHandler.js.map +1 -1
  123. package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
  124. package/cjs/lib/InstanceWithAnchorElement.js +9 -0
  125. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
  126. package/cjs/lib/ModalStack.d.ts +1 -1
  127. package/cjs/lib/ModalStack.js.map +1 -1
  128. package/cjs/lib/SSRSafe.d.ts +1 -0
  129. package/cjs/lib/SSRSafe.js +9 -1
  130. package/cjs/lib/SSRSafe.js.map +1 -1
  131. package/cjs/lib/dom/getDOMRect.d.ts +5 -2
  132. package/cjs/lib/dom/getDOMRect.js +30 -18
  133. package/cjs/lib/dom/getDOMRect.js.map +1 -1
  134. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  135. package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
  136. package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  137. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  138. package/cjs/lib/rootNode/getRootNode.js +12 -9
  139. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  140. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +11 -0
  141. package/cjs/lib/rootNode/rootNodeDecorator.js +32 -4
  142. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  143. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  144. package/cjs/lib/theming/ThemeFactory.js +4 -3
  145. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  146. package/cjs/lib/theming/ThemeHelpers.d.ts +1 -0
  147. package/cjs/lib/theming/ThemeHelpers.js +11 -2
  148. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  149. package/components/Autocomplete/Autocomplete/Autocomplete.js +2 -9
  150. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  151. package/components/Autocomplete/Autocomplete.d.ts +0 -1
  152. package/components/Button/Button/Button.js.map +1 -1
  153. package/components/Button/Button.d.ts +2 -2
  154. package/components/Button/Button.styles/Button.styles.js +1 -1
  155. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  156. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  157. package/components/Checkbox/Checkbox.d.ts +2 -2
  158. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  159. package/components/ComboBox/ComboBox.d.ts +3 -3
  160. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +3 -3
  161. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  162. package/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  163. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  164. package/components/DateInput/DateInput.d.ts +2 -2
  165. package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
  166. package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
  167. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  168. package/components/DatePicker/DatePicker.d.ts +3 -3
  169. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  170. package/components/Dropdown/Dropdown.d.ts +2 -2
  171. package/components/Hint/Hint/Hint.js +9 -1
  172. package/components/Hint/Hint/Hint.js.map +1 -1
  173. package/components/Hint/Hint.d.ts +6 -2
  174. package/components/Input/Input/Input.js +1 -1
  175. package/components/Input/Input/Input.js.map +1 -1
  176. package/components/Input/Input.d.ts +3 -3
  177. package/components/Loader/Loader/Loader.js +11 -12
  178. package/components/Loader/Loader/Loader.js.map +1 -1
  179. package/components/Modal/Modal/Modal.js +1 -1
  180. package/components/Modal/Modal/Modal.js.map +1 -1
  181. package/components/Modal/Modal.d.ts +1 -1
  182. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  183. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  184. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  185. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  186. package/components/Radio/Radio/Radio.js.map +1 -1
  187. package/components/Radio/Radio.d.ts +2 -2
  188. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  189. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  190. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  191. package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  192. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +3 -2
  193. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  194. package/components/Select/Select/Select.js +12 -6
  195. package/components/Select/Select/Select.js.map +1 -1
  196. package/components/Select/Select.d.ts +10 -8
  197. package/components/SidePage/SidePage/SidePage.js +0 -19
  198. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  199. package/components/SidePage/SidePage.d.ts +0 -1
  200. package/components/SidePage/SidePageFooter/SidePageFooter.js +4 -4
  201. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  202. package/components/SidePage/SidePageHeader/SidePageHeader.js +3 -3
  203. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  204. package/components/Sticky/Sticky/Sticky.js +9 -8
  205. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  206. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  207. package/components/Switcher/Switcher.d.ts +2 -1
  208. package/components/Tabs/Indicator/Indicator.js +2 -1
  209. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  210. package/components/Tabs/Tab/Tab.js.map +1 -1
  211. package/components/Tabs/Tab.d.ts +2 -2
  212. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  213. package/components/Tabs/Tabs.d.ts +3 -1
  214. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  215. package/components/Textarea/Textarea.d.ts +4 -4
  216. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  217. package/components/Toggle/Toggle.d.ts +2 -2
  218. package/components/Token/Token/Token.js.map +1 -1
  219. package/components/Token/Token.d.ts +2 -2
  220. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
  221. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  222. package/components/TokenInput/TokenInput/TokenInput.js +1 -1
  223. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  224. package/components/TokenInput/TokenInput.d.ts +2 -2
  225. package/components/Tooltip/Tooltip/Tooltip.js +11 -8
  226. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  227. package/components/Tooltip/Tooltip.d.ts +4 -2
  228. package/internal/BGRuler/BGRuler.js +2 -1
  229. package/internal/BGRuler/BGRuler.js.map +1 -1
  230. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +17 -3
  231. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  232. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  233. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  234. package/internal/ComponentTable.d.ts +4 -2
  235. package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
  236. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  237. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +5 -12
  238. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  239. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +3 -2
  240. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  241. package/internal/InternalMenu/InternalMenu/InternalMenu.js +2 -1
  242. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  243. package/internal/Popup/Popup/Popup.js +22 -21
  244. package/internal/Popup/Popup/Popup.js.map +1 -1
  245. package/internal/Popup/Popup.d.ts +1 -2
  246. package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
  247. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  248. package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
  249. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  250. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  251. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +3 -4
  252. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
  253. package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
  254. package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
  255. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -11
  256. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  257. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  258. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  259. package/internal/themes/DefaultTheme/DefaultTheme.js +5 -0
  260. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  261. package/internal/themes/DefaultTheme.d.ts +1 -0
  262. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  263. package/lib/ConditionalHandler.d.ts +3 -2
  264. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
  265. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
  266. package/lib/InstanceWithAnchorElement/package.json +6 -0
  267. package/lib/InstanceWithAnchorElement.d.ts +5 -0
  268. package/lib/ModalStack/ModalStack.js.map +1 -1
  269. package/lib/ModalStack.d.ts +1 -1
  270. package/lib/SSRSafe/SSRSafe.js +7 -0
  271. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  272. package/lib/SSRSafe.d.ts +1 -0
  273. package/lib/dom/getDOMRect/getDOMRect.js +32 -15
  274. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
  275. package/lib/dom/getDOMRect.d.ts +5 -2
  276. package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
  277. package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  278. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  279. package/lib/rootNode/getRootNode/getRootNode.js +10 -10
  280. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  281. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +24 -2
  282. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  283. package/lib/rootNode/rootNodeDecorator.d.ts +11 -0
  284. package/lib/theming/ThemeFactory/ThemeFactory.js +3 -2
  285. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  286. package/lib/theming/ThemeFactory.d.ts +1 -1
  287. package/lib/theming/ThemeHelpers/ThemeHelpers.js +10 -1
  288. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  289. package/lib/theming/ThemeHelpers.d.ts +1 -0
  290. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["ConditionalHandler.ts"],"names":["ConditionalHandler","actions","add","condition","handler","push","build","reference","args","found","forEach"],"mappings":"2EAAA,gC;;;;;AAKaA,kB;AACMC,IAAAA,O;;;AAGZ,M;;AAEEC,EAAAA,G,GAAP,aAAWC,SAAX,EAAoCC,OAApC,EAAmF;AACjF,SAAKH,OAAL,CAAaI,IAAb,CAAkB,EAAEF,SAAS,EAATA,SAAF,EAAaC,OAAO,EAAPA,OAAb,EAAlB;AACA,WAAO,IAAP;AACD;;AAED;AACF;AACA,K;AACSE,EAAAA,K,GAAP,iBAAsD;AACpD,WAAO,UAACC,SAAD,EAAwB,mCAATC,IAAS,uEAATA,IAAS;AAC7B,UAAIC,KAAK,GAAG,KAAZ;AACA,MAAA,KAAI,CAACR,OAAL,CAAaS,OAAb,CAAqB,gBAA4B,KAAzBP,SAAyB,QAAzBA,SAAyB,CAAdC,OAAc,QAAdA,OAAc;AAC/C,YAAI,uBAAWD,SAAX,IAAwBA,SAAS,CAACI,SAAD,CAAjC,GAA+CJ,SAAS,KAAKI,SAAjE,EAA4E;AAC1EH,UAAAA,OAAO,MAAP,SAAWI,IAAX;AACAC,UAAAA,KAAK,GAAG,IAAR;AACD;AACF,OALD;;AAOA,aAAOA,KAAP;AACD,KAVD;AAWD,G","sourcesContent":["import { isFunction } from './utils';\n\ntype Handler<K extends any[]> = (...args: K) => void;\ntype Condition<T> = T | ((reference: T) => boolean);\n\nexport class ConditionalHandler<T, K extends any[] = any[]> {\n private readonly actions: Array<{\n condition: Condition<T>;\n handler: Handler<K>;\n }> = [];\n\n public add(condition: Condition<T>, handler: Handler<K>): ConditionalHandler<T, K> {\n this.actions.push({ condition, handler });\n return this;\n }\n\n /**\n * @returns {Boolean} found - был ли найден и вызван хоть один обработчик\n */\n public build(): (reference: T, ...args: K) => boolean {\n return (reference, ...args) => {\n let found = false;\n this.actions.forEach(({ condition, handler }) => {\n if (isFunction(condition) ? condition(reference) : condition === reference) {\n handler(...args);\n found = true;\n }\n });\n\n return found;\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["ConditionalHandler.ts"],"names":["ConditionalHandler","actions","add","condition","handler","push","build","reference","args","found","forEach"],"mappings":"2EAAA,gC;;;;;;;;;;AAUaA,kB;AACMC,IAAAA,O,GAAmC,E;;AAE7CC,EAAAA,G,GAAP,aAAWC,SAAX,EAAoCC,OAApC,EAAmF;AACjF,SAAKH,OAAL,CAAaI,IAAb,CAAkB,EAAEF,SAAS,EAATA,SAAF,EAAaC,OAAO,EAAPA,OAAb,EAAlB;AACA,WAAO,IAAP;AACD;;AAED;AACF;AACA,K;AACSE,EAAAA,K,GAAP,iBAAsD;AACpD,WAAO,UAACC,SAAD,EAAwB,mCAATC,IAAS,uEAATA,IAAS;AAC7B,UAAIC,KAAK,GAAG,KAAZ;AACA,MAAA,KAAI,CAACR,OAAL,CAAaS,OAAb,CAAqB,gBAA4B,KAAzBP,SAAyB,QAAzBA,SAAyB,CAAdC,OAAc,QAAdA,OAAc;AAC/C,YAAI,uBAAWD,SAAX,IAAwBA,SAAS,CAACI,SAAD,CAAjC,GAA+CJ,SAAS,KAAKI,SAAjE,EAA4E;AAC1EH,UAAAA,OAAO,MAAP,SAAWI,IAAX;AACAC,UAAAA,KAAK,GAAG,IAAR;AACD;AACF,OALD;;AAOA,aAAOA,KAAP;AACD,KAVD;AAWD,G","sourcesContent":["import { isFunction } from './utils';\n\ntype ArgsBaseType = any[];\ntype Handler<K extends ArgsBaseType> = (...args: K) => void;\ntype Condition<T> = T | ((reference: T) => boolean);\ntype ActionFunc<T, K extends ArgsBaseType> = {\n condition: Condition<T>;\n handler: Handler<K>;\n};\n\nexport class ConditionalHandler<T, K extends ArgsBaseType = any[]> {\n private readonly actions: Array<ActionFunc<T, K>> = [];\n\n public add(condition: Condition<T>, handler: Handler<K>): ConditionalHandler<T, K> {\n this.actions.push({ condition, handler });\n return this;\n }\n\n /**\n * @returns {Boolean} found - был ли найден и вызван хоть один обработчик\n */\n public build(): (reference: T, ...args: K) => boolean {\n return (reference, ...args) => {\n let found = false;\n this.actions.forEach(({ condition, handler }) => {\n if (isFunction(condition) ? condition(reference) : condition === reference) {\n handler(...args);\n found = true;\n }\n });\n\n return found;\n };\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { Nullable } from '../typings/utility-types';
2
+ export interface InstanceWithAnchorElement {
3
+ getAnchorElement: () => Nullable<HTMLElement>;
4
+ }
5
+ export declare const isInstanceWithAnchorElement: (instance: unknown) => instance is InstanceWithAnchorElement;
@@ -0,0 +1,9 @@
1
+ "use strict";exports.__esModule = true;exports.isInstanceWithAnchorElement = void 0;
2
+
3
+
4
+
5
+
6
+
7
+ var isInstanceWithAnchorElement = function isInstanceWithAnchorElement(instance) {
8
+ return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getAnchorElement');
9
+ };exports.isInstanceWithAnchorElement = isInstanceWithAnchorElement;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["InstanceWithAnchorElement.ts"],"names":["isInstanceWithAnchorElement","instance","Boolean","Object","prototype","hasOwnProperty","call"],"mappings":";;;;;;AAMO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,QAAD,EAA8D;AACvG,SAAOC,OAAO,CAACD,QAAD,CAAP,IAAqBE,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,QAArC,EAA+C,kBAA/C,CAA5B;AACD,CAFM,C","sourcesContent":["import { Nullable } from '../typings/utility-types';\n\nexport interface InstanceWithAnchorElement {\n getAnchorElement: () => Nullable<HTMLElement>;\n}\n\nexport const isInstanceWithAnchorElement = (instance: unknown): instance is InstanceWithAnchorElement => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getAnchorElement');\n};\n"]}
@@ -3,7 +3,7 @@ export interface ModalStackSubscription {
3
3
  remove: () => void;
4
4
  }
5
5
  export declare class ModalStack {
6
- static add(component: React.Component, onChange: (stack: ReadonlyArray<React.Component>) => void): ModalStackSubscription;
6
+ static add(component: React.Component, onChange: (stack: readonly React.Component[]) => void): ModalStackSubscription;
7
7
  static remove(component: React.Component): void;
8
8
  /**
9
9
  * Determines if stack component is allowed to block background
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: ReadonlyArray<React.Component>) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
1
+ {"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: readonly React.Component[]) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
@@ -1,4 +1,5 @@
1
1
  import * as PropTypes from 'prop-types';
2
2
  export declare function safePropTypesInstanceOf<T>(getExpectedClass: () => new (...args: any[]) => T): PropTypes.Requireable<T>;
3
3
  export declare function isHTMLElement(el: any): el is HTMLElement;
4
+ export declare function isNode(node: unknown): node is Node;
4
5
  export declare const globalThat: typeof globalThis;
@@ -1,4 +1,4 @@
1
- "use strict";exports.__esModule = true;exports.globalThat = void 0;exports.isHTMLElement = isHTMLElement;exports.safePropTypesInstanceOf = safePropTypesInstanceOf;var PropTypes = _interopRequireWildcard(require("prop-types"));
1
+ "use strict";exports.__esModule = true;exports.globalThat = void 0;exports.isHTMLElement = isHTMLElement;exports.isNode = isNode;exports.safePropTypesInstanceOf = safePropTypesInstanceOf;var PropTypes = _interopRequireWildcard(require("prop-types"));
2
2
 
3
3
  var _client = require("./client");function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
4
4
 
@@ -20,6 +20,14 @@ function isHTMLElement(el) {
20
20
  return false;
21
21
  }
22
22
 
23
+ function isNode(node) {
24
+ if (_client.isBrowser) {
25
+ return node instanceof Node;
26
+ }
27
+
28
+ return false;
29
+ }
30
+
23
31
  var globalThat =
24
32
  typeof globalThis === 'object' && globalThis ||
25
33
  typeof global === 'object' && global ||
@@ -1 +1 @@
1
- {"version":3,"sources":["SSRSafe.ts"],"names":["safePropTypesInstanceOf","getExpectedClass","isBrowser","PropTypes","instanceOf","any","isHTMLElement","el","HTMLElement","globalThat","globalThis","global","window","Function"],"mappings":"mKAAA;;AAEA,kC;;AAEO,SAASA,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIC,iBAAJ,EAAe;AACb,WAAOC,SAAS,CAACC,UAAV,CAAqBH,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOE,SAAS,CAACE,GAAjB;AACD;;AAEM,SAASC,aAAT,CAAuBC,EAAvB,EAAmD;AACxD,MAAIL,iBAAJ,EAAe;AACb,WAAOK,EAAE,YAAYC,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAEM,IAAMC,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAC,QAAQ,CAAC,aAAD,CAAR,EAJK,C","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isHTMLElement(el: any): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
1
+ {"version":3,"sources":["SSRSafe.ts"],"names":["safePropTypesInstanceOf","getExpectedClass","isBrowser","PropTypes","instanceOf","any","isHTMLElement","el","HTMLElement","isNode","node","Node","globalThat","globalThis","global","window","Function"],"mappings":"2LAAA;;AAEA,kC;;AAEO,SAASA,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIC,iBAAJ,EAAe;AACb,WAAOC,SAAS,CAACC,UAAV,CAAqBH,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOE,SAAS,CAACE,GAAjB;AACD;;AAEM,SAASC,aAAT,CAAuBC,EAAvB,EAAmD;AACxD,MAAIL,iBAAJ,EAAe;AACb,WAAOK,EAAE,YAAYC,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAEM,SAASC,MAAT,CAAgBC,IAAhB,EAA6C;AAClD,MAAIR,iBAAJ,EAAe;AACb,WAAOQ,IAAI,YAAYC,IAAvB;AACD;;AAED,SAAO,KAAP;AACD;;AAEM,IAAMC,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAC,QAAQ,CAAC,aAAD,CAAR,EAJK,C","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isHTMLElement(el: any): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport function isNode(node: unknown): node is Node {\n if (isBrowser) {\n return node instanceof Node;\n }\n\n return false;\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
@@ -1,8 +1,11 @@
1
1
  /// <reference types="react" />
2
+ import { Nullable } from '../../typings/utility-types';
3
+ declare type DOMRectDefaultValues = Omit<DOMRect, 'toJSON'>;
2
4
  /**
3
5
  * Возвращает размер элемента и его позицию относительно viewport
4
6
  *
5
- * @param ref - ref элемента
7
+ * @param element - ref элемента или сам элемент
6
8
  * @returns - возвращает размер элемента и его позицию относительно viewport
7
9
  */
8
- export declare const getDOMRect: <T extends HTMLElement>(ref: import("react").RefObject<T>) => Omit<DOMRect, 'toJSON'>;
10
+ export declare const getDOMRect: <T extends Element>(element: Nullable<T> | import("react").RefObject<T>) => DOMRectDefaultValues;
11
+ export {};
@@ -1,24 +1,36 @@
1
- "use strict";exports.__esModule = true;exports.getDOMRect = void 0; /**
1
+ "use strict";exports.__esModule = true;exports.getDOMRect = void 0;
2
+
3
+ /**
2
4
  * Возвращает размер элемента и его позицию относительно viewport
3
5
  *
4
- * @param ref - ref элемента
6
+ * @param element - ref элемента или сам элемент
5
7
  * @returns - возвращает размер элемента и его позицию относительно viewport
6
8
  */
7
- var getDOMRect = function getDOMRect(ref) {
8
- if (!ref.current) {
9
- var defaultValues = {
10
- width: 0,
11
- height: 0,
12
- x: 0,
13
- y: 0,
14
- bottom: 0,
15
- left: 0,
16
- right: 0,
17
- top: 0 };
18
-
9
+ var getDOMRect = function getDOMRect(element) {
10
+ var defaultValues = {
11
+ width: 0,
12
+ height: 0,
13
+ x: 0,
14
+ y: 0,
15
+ bottom: 0,
16
+ left: 0,
17
+ right: 0,
18
+ top: 0 };
19
19
 
20
- return defaultValues;
20
+ if (element && 'current' in element) {
21
+ return getRefRect(defaultValues, element);
21
22
  }
22
-
23
- return ref.current.getBoundingClientRect();
24
- };exports.getDOMRect = getDOMRect;
23
+ return getElementRect(defaultValues, element);
24
+ };exports.getDOMRect = getDOMRect;
25
+ var getElementRect = function getElementRect(defaultValues, element) {
26
+ if (element) {
27
+ return element.getBoundingClientRect();
28
+ }
29
+ return defaultValues;
30
+ };
31
+ var getRefRect = function getRefRect(defaultValues, ref) {
32
+ if (ref != null && ref.current) {
33
+ return ref.current.getBoundingClientRect();
34
+ }
35
+ return defaultValues;
36
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["getDOMRect.ts"],"names":["getDOMRect","ref","current","defaultValues","width","height","x","y","bottom","left","right","top","getBoundingClientRect"],"mappings":"oEAAA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAwBC,GAAxB,EAA6E;AACrG,MAAI,CAACA,GAAG,CAACC,OAAT,EAAkB;AAChB,QAAMC,aAAa,GAAG;AACpBC,MAAAA,KAAK,EAAE,CADa;AAEpBC,MAAAA,MAAM,EAAE,CAFY;AAGpBC,MAAAA,CAAC,EAAE,CAHiB;AAIpBC,MAAAA,CAAC,EAAE,CAJiB;AAKpBC,MAAAA,MAAM,EAAE,CALY;AAMpBC,MAAAA,IAAI,EAAE,CANc;AAOpBC,MAAAA,KAAK,EAAE,CAPa;AAQpBC,MAAAA,GAAG,EAAE,CARe,EAAtB;;;AAWA,WAAOR,aAAP;AACD;;AAED,SAAOF,GAAG,CAACC,OAAJ,CAAYU,qBAAZ,EAAP;AACD,CAjBM,C","sourcesContent":["/**\n * Возвращает размер элемента и его позицию относительно viewport\n *\n * @param ref - ref элемента\n * @returns - возвращает размер элемента и его позицию относительно viewport\n */\nexport const getDOMRect = <T extends HTMLElement>(ref: React.RefObject<T>): Omit<DOMRect, 'toJSON'> => {\n if (!ref.current) {\n const defaultValues = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n\n return defaultValues;\n }\n\n return ref.current.getBoundingClientRect();\n};\n"]}
1
+ {"version":3,"sources":["getDOMRect.ts"],"names":["getDOMRect","element","defaultValues","width","height","x","y","bottom","left","right","top","getRefRect","getElementRect","getBoundingClientRect","ref","current"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAoBC,OAApB,EAAwF;AAChH,MAAMC,aAAmC,GAAG;AAC1CC,IAAAA,KAAK,EAAE,CADmC;AAE1CC,IAAAA,MAAM,EAAE,CAFkC;AAG1CC,IAAAA,CAAC,EAAE,CAHuC;AAI1CC,IAAAA,CAAC,EAAE,CAJuC;AAK1CC,IAAAA,MAAM,EAAE,CALkC;AAM1CC,IAAAA,IAAI,EAAE,CANoC;AAO1CC,IAAAA,KAAK,EAAE,CAPmC;AAQ1CC,IAAAA,GAAG,EAAE,CARqC,EAA5C;;AAUA,MAAIT,OAAO,IAAI,aAAaA,OAA5B,EAAqC;AACnC,WAAOU,UAAU,CAACT,aAAD,EAAgBD,OAAhB,CAAjB;AACD;AACD,SAAOW,cAAc,CAACV,aAAD,EAAgBD,OAAhB,CAArB;AACD,CAfM,C;AAgBP,IAAMW,cAAc,GAAG,SAAjBA,cAAiB,CAACV,aAAD,EAAsCD,OAAtC,EAAqE;AAC1F,MAAIA,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACY,qBAAR,EAAP;AACD;AACD,SAAOX,aAAP;AACD,CALD;AAMA,IAAMS,UAAU,GAAG,SAAbA,UAAa,CAAoBT,aAApB,EAAyDY,GAAzD,EAAqF;AACtG,MAAIA,GAAJ,YAAIA,GAAG,CAAEC,OAAT,EAAkB;AAChB,WAAOD,GAAG,CAACC,OAAJ,CAAYF,qBAAZ,EAAP;AACD;AACD,SAAOX,aAAP;AACD,CALD","sourcesContent":["import { Nullable } from '../../typings/utility-types';\ntype DOMRectDefaultValues = Omit<DOMRect, 'toJSON'>;\n/**\n * Возвращает размер элемента и его позицию относительно viewport\n *\n * @param element - ref элемента или сам элемент\n * @returns - возвращает размер элемента и его позицию относительно viewport\n */\nexport const getDOMRect = <T extends Element>(element: Nullable<T> | React.RefObject<T>): DOMRectDefaultValues => {\n const defaultValues: DOMRectDefaultValues = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n if (element && 'current' in element) {\n return getRefRect(defaultValues, element);\n }\n return getElementRect(defaultValues, element);\n};\nconst getElementRect = (defaultValues: DOMRectDefaultValues, element: Nullable<Element>) => {\n if (element) {\n return element.getBoundingClientRect();\n }\n return defaultValues;\n};\nconst getRefRect = <T extends Element>(defaultValues: DOMRectDefaultValues, ref: React.RefObject<T>) => {\n if (ref?.current) {\n return ref.current.getBoundingClientRect();\n }\n return defaultValues;\n};\n"]}
@@ -1,6 +1,7 @@
1
1
  import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';
2
2
  export declare type Location = number;
3
3
  export declare type KeyCode = number;
4
+ export declare type KeyboardKey = [KeyCode, Location];
4
5
  export declare const KeyboardMapKeys: {
5
- [code in Codes]: Array<[KeyCode, Location]>;
6
+ [code in Codes]: KeyboardKey[];
6
7
  };
@@ -3,6 +3,7 @@
3
3
 
4
4
 
5
5
 
6
+
6
7
  var STANDARD = 0; //KeyboardEvent.DOM_KEY_LOCATION_STANDARD;
7
8
  var NUMPAD = 3; //KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;
8
9
 
@@ -1 +1 @@
1
- {"version":3,"sources":["KeyboardMapKeys.ts"],"names":["STANDARD","NUMPAD","KeyboardMapKeys","Codes","Unidentified","End","Escape","Equal","Backspace","Enter","NumpadEnter","Home","Delete","Insert","PageUp","PageDown","Tab","CapsLock","KeyA","KeyC","KeyV","KeyX","NumpadDecimal","NumpadSubtract","NumpadDivide","Comma","Minus","Period","Slash","Backslash","IntlBackslash","Space"],"mappings":"wEAAA,0D;;;;;AAKA,IAAMA,QAAQ,GAAG,CAAjB,C,CAAoB;AACpB,IAAMC,MAAM,GAAG,CAAf,C,CAAkB;;AAEX,IAAMC,eAAgE;AAC1EC,uCAAMC,YADoE,IACrD,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CADqD;AAE1ED,uCAAME,GAFoE,IAE9D,CAAC,CAAC,EAAD,EAAKL,QAAL,CAAD,CAF8D;AAG1EG,uCAAMG,MAHoE,IAG3D,CAAC,CAAC,EAAD,EAAKN,QAAL,CAAD,CAH2D;AAI1EG,uCAAMI,KAJoE,IAI5D,CAAC,CAAC,GAAD,EAAMP,QAAN,CAAD,CAJ4D;AAK1EG,uCAAMK,SALoE,IAKxD,CAAC,CAAC,CAAD,EAAIR,QAAJ,CAAD,CALwD;AAM1EG,uCAAMM,KANoE,IAM5D,CAAC,CAAC,EAAD,EAAKT,QAAL,CAAD,CAN4D;AAO1EG,uCAAMO,WAPoE,IAOtD,CAAC,CAAC,EAAD,EAAKT,MAAL,CAAD,CAPsD;AAQ1EE,uCAAMQ,IARoE,IAQ7D,CAAC,CAAC,EAAD,EAAKX,QAAL,CAAD,CAR6D;AAS1EG,uCAAMS,MAToE,IAS3D,CAAC,CAAC,EAAD,EAAKZ,QAAL,CAAD,CAT2D;AAU1EG,uCAAMU,MAVoE,IAU3D,CAAC,CAAC,EAAD,EAAKb,QAAL,CAAD,CAV2D;AAW1EG,uCAAMW,MAXoE,IAW3D,CAAC,CAAC,EAAD,EAAKd,QAAL,CAAD,CAX2D;AAY1EG,uCAAMY,QAZoE,IAYzD,CAAC,CAAC,EAAD,EAAKf,QAAL,CAAD,CAZyD;AAa1EG,uCAAMa,GAboE,IAa9D,CAAC,CAAC,CAAD,EAAIhB,QAAJ,CAAD,CAb8D;AAc1EG,uCAAMc,QAdoE,IAczD,CAAC,CAAC,EAAD,EAAKjB,QAAL,CAAD,CAdyD;AAe1EG,uCAAMe,IAfoE,IAe7D,CAAC,CAAC,EAAD,EAAKlB,QAAL,CAAD,CAf6D;AAgB1EG,uCAAMgB,IAhBoE,IAgB7D,CAAC,CAAC,EAAD,EAAKnB,QAAL,CAAD,CAhB6D;AAiB1EG,uCAAMiB,IAjBoE,IAiB7D,CAAC,CAAC,EAAD,EAAKpB,QAAL,CAAD,CAjB6D;AAkB1EG,uCAAMkB,IAlBoE,IAkB7D,CAAC,CAAC,EAAD,EAAKrB,QAAL,CAAD,CAlB6D;AAmB1EG,uCAAMmB,aAnBoE,IAmBpD;AACrB,CAAC,GAAD,EAAMrB,MAAN,CADqB;AAErB,CAAC,EAAD,EAAKA,MAAL,CAFqB,CAnBoD;;AAuB1EE,uCAAMoB,cAvBoE,IAuBnD,CAAC,CAAC,GAAD,EAAMtB,MAAN,CAAD,CAvBmD;AAwB1EE,uCAAMqB,YAxBoE,IAwBrD,CAAC,CAAC,GAAD,EAAMvB,MAAN,CAAD,CAxBqD;AAyB1EE,uCAAMsB,KAzBoE,IAyB5D,CAAC,CAAC,GAAD,EAAMzB,QAAN,CAAD,CAzB4D;AA0B1EG,uCAAMuB,KA1BoE,IA0B5D,CAAC,CAAC,GAAD,EAAM1B,QAAN,CAAD,CA1B4D;AA2B1EG,uCAAMwB,MA3BoE,IA2B3D,CAAC,CAAC,GAAD,EAAM3B,QAAN,CAAD,CA3B2D;AA4B1EG,uCAAMyB,KA5BoE,IA4B5D,CAAC,CAAC,GAAD,EAAM5B,QAAN,CAAD,CA5B4D;AA6B1EG,uCAAM0B,SA7BoE,IA6BxD,CAAC,CAAC,GAAD,EAAM7B,QAAN,CAAD,CA7BwD;AA8B1EG,uCAAM2B,aA9BoE,IA8BpD,CAAC,CAAC,GAAD,EAAM9B,QAAN,CAAD,CA9BoD;AA+B1EG,uCAAM4B,KA/BoE,IA+B5D,CAAC,CAAC,EAAD,EAAK/B,QAAL,CAAD,CA/B4D,mBAAtE,C","sourcesContent":["import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\n\nexport type Location = number;\nexport type KeyCode = number;\n\nconst STANDARD = 0; //KeyboardEvent.DOM_KEY_LOCATION_STANDARD;\nconst NUMPAD = 3; //KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;\n\nexport const KeyboardMapKeys: { [code in Codes]: Array<[KeyCode, Location]> } = {\n [Codes.Unidentified]: [[0, 0]],\n [Codes.End]: [[35, STANDARD]],\n [Codes.Escape]: [[27, STANDARD]],\n [Codes.Equal]: [[187, STANDARD]],\n [Codes.Backspace]: [[8, STANDARD]],\n [Codes.Enter]: [[13, STANDARD]],\n [Codes.NumpadEnter]: [[13, NUMPAD]],\n [Codes.Home]: [[36, STANDARD]],\n [Codes.Delete]: [[46, STANDARD]],\n [Codes.Insert]: [[45, STANDARD]],\n [Codes.PageUp]: [[33, STANDARD]],\n [Codes.PageDown]: [[34, STANDARD]],\n [Codes.Tab]: [[9, STANDARD]],\n [Codes.CapsLock]: [[20, STANDARD]],\n [Codes.KeyA]: [[65, STANDARD]],\n [Codes.KeyC]: [[67, STANDARD]],\n [Codes.KeyV]: [[86, STANDARD]],\n [Codes.KeyX]: [[88, STANDARD]],\n [Codes.NumpadDecimal]: [\n [110, NUMPAD],\n [46, NUMPAD],\n ],\n [Codes.NumpadSubtract]: [[109, NUMPAD]],\n [Codes.NumpadDivide]: [[111, NUMPAD]],\n [Codes.Comma]: [[188, STANDARD]],\n [Codes.Minus]: [[189, STANDARD]],\n [Codes.Period]: [[190, STANDARD]],\n [Codes.Slash]: [[191, STANDARD]],\n [Codes.Backslash]: [[220, STANDARD]],\n [Codes.IntlBackslash]: [[226, STANDARD]],\n [Codes.Space]: [[32, STANDARD]],\n};\n"]}
1
+ {"version":3,"sources":["KeyboardMapKeys.ts"],"names":["STANDARD","NUMPAD","KeyboardMapKeys","Codes","Unidentified","End","Escape","Equal","Backspace","Enter","NumpadEnter","Home","Delete","Insert","PageUp","PageDown","Tab","CapsLock","KeyA","KeyC","KeyV","KeyX","NumpadDecimal","NumpadSubtract","NumpadDivide","Comma","Minus","Period","Slash","Backslash","IntlBackslash","Space"],"mappings":"wEAAA,0D;;;;;;AAMA,IAAMA,QAAQ,GAAG,CAAjB,C,CAAoB;AACpB,IAAMC,MAAM,GAAG,CAAf,C,CAAkB;;AAEX,IAAMC,eAAmD;AAC7DC,uCAAMC,YADuD,IACxC,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CADwC;AAE7DD,uCAAME,GAFuD,IAEjD,CAAC,CAAC,EAAD,EAAKL,QAAL,CAAD,CAFiD;AAG7DG,uCAAMG,MAHuD,IAG9C,CAAC,CAAC,EAAD,EAAKN,QAAL,CAAD,CAH8C;AAI7DG,uCAAMI,KAJuD,IAI/C,CAAC,CAAC,GAAD,EAAMP,QAAN,CAAD,CAJ+C;AAK7DG,uCAAMK,SALuD,IAK3C,CAAC,CAAC,CAAD,EAAIR,QAAJ,CAAD,CAL2C;AAM7DG,uCAAMM,KANuD,IAM/C,CAAC,CAAC,EAAD,EAAKT,QAAL,CAAD,CAN+C;AAO7DG,uCAAMO,WAPuD,IAOzC,CAAC,CAAC,EAAD,EAAKT,MAAL,CAAD,CAPyC;AAQ7DE,uCAAMQ,IARuD,IAQhD,CAAC,CAAC,EAAD,EAAKX,QAAL,CAAD,CARgD;AAS7DG,uCAAMS,MATuD,IAS9C,CAAC,CAAC,EAAD,EAAKZ,QAAL,CAAD,CAT8C;AAU7DG,uCAAMU,MAVuD,IAU9C,CAAC,CAAC,EAAD,EAAKb,QAAL,CAAD,CAV8C;AAW7DG,uCAAMW,MAXuD,IAW9C,CAAC,CAAC,EAAD,EAAKd,QAAL,CAAD,CAX8C;AAY7DG,uCAAMY,QAZuD,IAY5C,CAAC,CAAC,EAAD,EAAKf,QAAL,CAAD,CAZ4C;AAa7DG,uCAAMa,GAbuD,IAajD,CAAC,CAAC,CAAD,EAAIhB,QAAJ,CAAD,CAbiD;AAc7DG,uCAAMc,QAduD,IAc5C,CAAC,CAAC,EAAD,EAAKjB,QAAL,CAAD,CAd4C;AAe7DG,uCAAMe,IAfuD,IAehD,CAAC,CAAC,EAAD,EAAKlB,QAAL,CAAD,CAfgD;AAgB7DG,uCAAMgB,IAhBuD,IAgBhD,CAAC,CAAC,EAAD,EAAKnB,QAAL,CAAD,CAhBgD;AAiB7DG,uCAAMiB,IAjBuD,IAiBhD,CAAC,CAAC,EAAD,EAAKpB,QAAL,CAAD,CAjBgD;AAkB7DG,uCAAMkB,IAlBuD,IAkBhD,CAAC,CAAC,EAAD,EAAKrB,QAAL,CAAD,CAlBgD;AAmB7DG,uCAAMmB,aAnBuD,IAmBvC;AACrB,CAAC,GAAD,EAAMrB,MAAN,CADqB;AAErB,CAAC,EAAD,EAAKA,MAAL,CAFqB,CAnBuC;;AAuB7DE,uCAAMoB,cAvBuD,IAuBtC,CAAC,CAAC,GAAD,EAAMtB,MAAN,CAAD,CAvBsC;AAwB7DE,uCAAMqB,YAxBuD,IAwBxC,CAAC,CAAC,GAAD,EAAMvB,MAAN,CAAD,CAxBwC;AAyB7DE,uCAAMsB,KAzBuD,IAyB/C,CAAC,CAAC,GAAD,EAAMzB,QAAN,CAAD,CAzB+C;AA0B7DG,uCAAMuB,KA1BuD,IA0B/C,CAAC,CAAC,GAAD,EAAM1B,QAAN,CAAD,CA1B+C;AA2B7DG,uCAAMwB,MA3BuD,IA2B9C,CAAC,CAAC,GAAD,EAAM3B,QAAN,CAAD,CA3B8C;AA4B7DG,uCAAMyB,KA5BuD,IA4B/C,CAAC,CAAC,GAAD,EAAM5B,QAAN,CAAD,CA5B+C;AA6B7DG,uCAAM0B,SA7BuD,IA6B3C,CAAC,CAAC,GAAD,EAAM7B,QAAN,CAAD,CA7B2C;AA8B7DG,uCAAM2B,aA9BuD,IA8BvC,CAAC,CAAC,GAAD,EAAM9B,QAAN,CAAD,CA9BuC;AA+B7DG,uCAAM4B,KA/BuD,IA+B/C,CAAC,CAAC,EAAD,EAAK/B,QAAL,CAAD,CA/B+C,mBAAzD,C","sourcesContent":["import { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\n\nexport type Location = number;\nexport type KeyCode = number;\nexport type KeyboardKey = [KeyCode, Location];\n\nconst STANDARD = 0; //KeyboardEvent.DOM_KEY_LOCATION_STANDARD;\nconst NUMPAD = 3; //KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;\n\nexport const KeyboardMapKeys: { [code in Codes]: KeyboardKey[] } = {\n [Codes.Unidentified]: [[0, 0]],\n [Codes.End]: [[35, STANDARD]],\n [Codes.Escape]: [[27, STANDARD]],\n [Codes.Equal]: [[187, STANDARD]],\n [Codes.Backspace]: [[8, STANDARD]],\n [Codes.Enter]: [[13, STANDARD]],\n [Codes.NumpadEnter]: [[13, NUMPAD]],\n [Codes.Home]: [[36, STANDARD]],\n [Codes.Delete]: [[46, STANDARD]],\n [Codes.Insert]: [[45, STANDARD]],\n [Codes.PageUp]: [[33, STANDARD]],\n [Codes.PageDown]: [[34, STANDARD]],\n [Codes.Tab]: [[9, STANDARD]],\n [Codes.CapsLock]: [[20, STANDARD]],\n [Codes.KeyA]: [[65, STANDARD]],\n [Codes.KeyC]: [[67, STANDARD]],\n [Codes.KeyV]: [[86, STANDARD]],\n [Codes.KeyX]: [[88, STANDARD]],\n [Codes.NumpadDecimal]: [\n [110, NUMPAD],\n [46, NUMPAD],\n ],\n [Codes.NumpadSubtract]: [[109, NUMPAD]],\n [Codes.NumpadDivide]: [[111, NUMPAD]],\n [Codes.Comma]: [[188, STANDARD]],\n [Codes.Minus]: [[189, STANDARD]],\n [Codes.Period]: [[190, STANDARD]],\n [Codes.Slash]: [[191, STANDARD]],\n [Codes.Backslash]: [[220, STANDARD]],\n [Codes.IntlBackslash]: [[226, STANDARD]],\n [Codes.Space]: [[32, STANDARD]],\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["extractCode.ts"],"names":["extractCode","e","nativeEvent","code","keyCode","which","location","mapped","Object","entries","KeyboardMapKeys","find","set","some","_keyCode","_location","Codes","Unidentified"],"mappings":";;AAEA;AACA;;AAEO,SAASA,WAAT,CAAqBC,CAArB,EAAiF;AACtFA,EAAAA,CAAC,GAAIA,CAAD,CAAwCC,WAAxC,IAAuDD,CAA3D;AACA,MAAIA,CAAC,CAACE,IAAN,EAAY;AACV,WAAOF,CAAC,CAACE,IAAT;AACD;AACD,MAAMC,OAAO,GAAGH,CAAC,CAACG,OAAF,IAAaH,CAAC,CAACI,KAA/B;AACA,MAAMC,QAAQ,GAAGL,CAAC,CAACK,QAAnB;AACA,MAAMC,MAAM,GAAIC,MAAM,CAACC,OAAR,CAA+DC,gCAA/D,EAAgFC,IAAhF,CAAqF,qBAAIC,GAAJ;AAClGA,MAAAA,GAAG,CAACC,IAAJ,CAAS,sBAAEC,QAAF,YAAYC,SAAZ,mBAA2BD,QAAQ,KAAKV,OAAb,IAAwBW,SAAS,KAAKT,QAAjE,EAAT,CADkG,GAArF,CAAf;;AAGA,SAAOC,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAeS,uCAAMC,YAAlC;AACD","sourcesContent":["import { Entries } from '../../../typings/utility-types';\n\nimport { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\nimport { KeyboardMapKeys, KeyCode, Location } from './KeyboardMapKeys';\n\nexport function extractCode(e: React.KeyboardEvent<HTMLElement> | KeyboardEvent): Codes {\n e = (e as React.KeyboardEvent<HTMLElement>).nativeEvent || e;\n if (e.code) {\n return e.code as Codes;\n }\n const keyCode = e.keyCode || e.which;\n const location = e.location;\n const mapped = (Object.entries as Entries<Codes, Array<[KeyCode, Location]>>)(KeyboardMapKeys).find(([, set]) =>\n set.some(([_keyCode, _location]) => _keyCode === keyCode && _location === location),\n );\n return mapped ? mapped[0] : Codes.Unidentified;\n}\n"]}
1
+ {"version":3,"sources":["extractCode.ts"],"names":["extractCode","e","nativeEvent","code","keyCode","which","location","mapped","Object","entries","KeyboardMapKeys","find","set","some","_keyCode","_location","Codes","Unidentified"],"mappings":";;AAEA;AACA;;AAEO,SAASA,WAAT,CAAqBC,CAArB,EAAiF;AACtFA,EAAAA,CAAC,GAAIA,CAAD,CAAwCC,WAAxC,IAAuDD,CAA3D;AACA,MAAIA,CAAC,CAACE,IAAN,EAAY;AACV,WAAOF,CAAC,CAACE,IAAT;AACD;AACD,MAAMC,OAAO,GAAGH,CAAC,CAACG,OAAF,IAAaH,CAAC,CAACI,KAA/B;AACA,MAAMC,QAAQ,GAAGL,CAAC,CAACK,QAAnB;AACA,MAAMC,MAAM,GAAIC,MAAM,CAACC,OAAR,CAAkDC,gCAAlD,EAAmEC,IAAnE,CAAwE,qBAAIC,GAAJ;AACrFA,MAAAA,GAAG,CAACC,IAAJ,CAAS,sBAAEC,QAAF,YAAYC,SAAZ,mBAA2BD,QAAQ,KAAKV,OAAb,IAAwBW,SAAS,KAAKT,QAAjE,EAAT,CADqF,GAAxE,CAAf;;AAGA,SAAOC,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAeS,uCAAMC,YAAlC;AACD","sourcesContent":["import { Entries } from '../../../typings/utility-types';\n\nimport { KeyboardEventCodes as Codes } from './KeyboardEventCodes';\nimport { KeyboardKey, KeyboardMapKeys } from './KeyboardMapKeys';\n\nexport function extractCode(e: React.KeyboardEvent<HTMLElement> | KeyboardEvent): Codes {\n e = (e as React.KeyboardEvent<HTMLElement>).nativeEvent || e;\n if (e.code) {\n return e.code as Codes;\n }\n const keyCode = e.keyCode || e.which;\n const location = e.location;\n const mapped = (Object.entries as Entries<Codes, KeyboardKey[]>)(KeyboardMapKeys).find(([, set]) =>\n set.some(([_keyCode, _location]) => _keyCode === keyCode && _location === location),\n );\n return mapped ? mapped[0] : Codes.Unidentified;\n}\n"]}
@@ -4,7 +4,8 @@
4
4
 
5
5
  var _SSRSafe = require("../SSRSafe");
6
6
  var _client = require("../client");
7
- var _utils = require("../utils");
7
+
8
+ var _rootNodeDecorator = require("./rootNodeDecorator");
8
9
 
9
10
  var getRootNode = function getRootNode(instance) {
10
11
  if (!_client.canUseDOM) return null;
@@ -12,16 +13,18 @@ var getRootNode = function getRootNode(instance) {
12
13
  return instance;
13
14
  }
14
15
 
15
- var instanceAsAny = instance;
16
- var node;
17
- if (instanceAsAny && (0, _utils.isFunction)(instanceAsAny.getRootNode)) {
18
- node = instanceAsAny.getRootNode();
16
+ var rootNode;
17
+
18
+ // it happened to be that native Node interface also has
19
+ // the "getRootNode" method, but we dont expect it here
20
+ if ((0, _rootNodeDecorator.isInstanceWithRootNode)(instance) && !(0, _SSRSafe.isNode)(instance)) {
21
+ rootNode = instance.getRootNode();
19
22
  }
20
23
 
21
- if (node !== undefined) {
22
- return node;
24
+ if (rootNode !== undefined) {
25
+ return rootNode;
23
26
  }
24
27
 
25
- node = (0, _reactDom.findDOMNode)(instance);
26
- return node instanceof HTMLElement ? node : null;
28
+ rootNode = (0, _reactDom.findDOMNode)(instance);
29
+ return (0, _SSRSafe.isHTMLElement)(rootNode) ? rootNode : null;
27
30
  };exports.getRootNode = getRootNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["getRootNode.ts"],"names":["getRootNode","instance","canUseDOM","instanceAsAny","node","undefined","HTMLElement"],"mappings":"oEAAA;;;;AAIA;AACA;AACA;;AAEO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAoE;AAC7F,MAAI,CAACC,iBAAL,EAAgB,OAAO,IAAP;AAChB,MAAI,4BAAcD,QAAd,KAA2BA,QAAQ,KAAK,IAA5C,EAAkD;AAChD,WAAOA,QAAP;AACD;;AAED,MAAME,aAAa,GAAGF,QAAtB;AACA,MAAIG,IAAJ;AACA,MAAID,aAAa,IAAI,uBAAWA,aAAa,CAACH,WAAzB,CAArB,EAA4D;AAC1DI,IAAAA,IAAI,GAAGD,aAAa,CAACH,WAAd,EAAP;AACD;;AAED,MAAII,IAAI,KAAKC,SAAb,EAAwB;AACtB,WAAOD,IAAP;AACD;;AAEDA,EAAAA,IAAI,GAAG,2BAAYH,QAAZ,CAAP;AACA,SAAOG,IAAI,YAAYE,WAAhB,GAA8BF,IAA9B,GAAqC,IAA5C;AACD,CAlBM,C","sourcesContent":["import { findDOMNode } from 'react-dom';\nimport React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isHTMLElement } from '../SSRSafe';\nimport { canUseDOM } from '../client';\nimport { isFunction } from '../utils';\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<HTMLElement> => {\n if (!canUseDOM) return null;\n if (isHTMLElement(instance) || instance === null) {\n return instance;\n }\n\n const instanceAsAny = instance as any;\n let node;\n if (instanceAsAny && isFunction(instanceAsAny.getRootNode)) {\n node = instanceAsAny.getRootNode();\n }\n\n if (node !== undefined) {\n return node;\n }\n\n node = findDOMNode(instance);\n return node instanceof HTMLElement ? node : null;\n};\n"]}
1
+ {"version":3,"sources":["getRootNode.ts"],"names":["getRootNode","instance","canUseDOM","rootNode","undefined"],"mappings":"oEAAA;;;;AAIA;AACA;;AAEA;;AAEO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAoE;AAC7F,MAAI,CAACC,iBAAL,EAAgB,OAAO,IAAP;AAChB,MAAI,4BAAcD,QAAd,KAA2BA,QAAQ,KAAK,IAA5C,EAAkD;AAChD,WAAOA,QAAP;AACD;;AAED,MAAIE,QAAJ;;AAEA;AACA;AACA,MAAI,+CAAuBF,QAAvB,KAAoC,CAAC,qBAAOA,QAAP,CAAzC,EAA2D;AACzDE,IAAAA,QAAQ,GAAGF,QAAQ,CAACD,WAAT,EAAX;AACD;;AAED,MAAIG,QAAQ,KAAKC,SAAjB,EAA4B;AAC1B,WAAOD,QAAP;AACD;;AAEDA,EAAAA,QAAQ,GAAG,2BAAYF,QAAZ,CAAX;AACA,SAAO,4BAAcE,QAAd,IAA0BA,QAA1B,GAAqC,IAA5C;AACD,CApBM,C","sourcesContent":["import { findDOMNode } from 'react-dom';\nimport React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isHTMLElement, isNode } from '../SSRSafe';\nimport { canUseDOM } from '../client';\n\nimport { isInstanceWithRootNode } from './rootNodeDecorator';\n\nexport const getRootNode = (instance: Nullable<React.ReactInstance>): Nullable<HTMLElement> => {\n if (!canUseDOM) return null;\n if (isHTMLElement(instance) || instance === null) {\n return instance;\n }\n\n let rootNode;\n\n // it happened to be that native Node interface also has\n // the \"getRootNode\" method, but we dont expect it here\n if (isInstanceWithRootNode(instance) && !isNode(instance)) {\n rootNode = instance.getRootNode();\n }\n\n if (rootNode !== undefined) {\n return rootNode;\n }\n\n rootNode = findDOMNode(instance);\n return isHTMLElement(rootNode) ? rootNode : null;\n};\n"]}
@@ -1,11 +1,21 @@
1
1
  import React from 'react';
2
+ import EventEmitter from 'eventemitter3';
2
3
  import { Nullable } from '../../typings/utility-types';
3
4
  export declare type TSetRootNode = (e: Nullable<React.ReactNode>) => void;
5
+ export declare type TRootNodeSubscription = {
6
+ remove: () => void;
7
+ };
8
+ export interface InstanceWithRootNode {
9
+ getRootNode: () => Nullable<HTMLElement>;
10
+ addRootNodeChangeListener?: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;
11
+ }
4
12
  export declare function rootNode<T extends new (...args: any[]) => React.Component>(Component: T): {
5
13
  new (...args: any[]): {
6
14
  rootNode: Nullable<HTMLElement>;
15
+ rootNodeEmitter: EventEmitter<string | symbol, any>;
7
16
  setRootNode: (instance: Nullable<React.ReactInstance>) => void;
8
17
  getRootNode: () => Nullable<HTMLElement>;
18
+ addRootNodeChangeListener: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;
9
19
  context: any;
10
20
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<{}>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
11
21
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -31,3 +41,4 @@ export declare function rootNode<T extends new (...args: any[]) => React.Compone
31
41
  UNSAFE_componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void;
32
42
  };
33
43
  } & T;
44
+ export declare const isInstanceWithRootNode: (instance: unknown) => instance is InstanceWithRootNode;
@@ -1,4 +1,5 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.rootNode = rootNode;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.isInstanceWithRootNode = void 0;exports.rootNode = rootNode;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
2
+ var _eventemitter = _interopRequireDefault(require("eventemitter3"));
2
3
 
3
4
 
4
5
 
@@ -6,19 +7,42 @@ var _getRootNode = require("./getRootNode");
6
7
 
7
8
 
8
9
 
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
9
19
  function rootNode(Component) {
10
20
  var rootNode = /*#__PURE__*/function (_Component) {(0, _inheritsLoose2.default)(rootNode, _Component);
11
21
 
22
+
12
23
  function rootNode() {var _this;
13
- _this = _Component.call(this, arguments.length <= 0 ? undefined : arguments[0]) || this;_this.
24
+ _this = _Component.call(this, arguments.length <= 0 ? undefined : arguments[0]) || this;_this.rootNode = null;_this.rootNodeEmitter = new _eventemitter.default();_this.
14
25
 
15
26
 
16
27
  setRootNode = function (instance) {
17
- _this.rootNode = (0, _getRootNode.getRootNode)(instance);
28
+ var _rootNode = (0, _getRootNode.getRootNode)(instance);
29
+ if (_rootNode !== _this.rootNode) {
30
+ _this.rootNode = _rootNode;
31
+ _this.rootNodeEmitter.emit('change', _rootNode);
32
+ }
18
33
  };_this.
19
34
 
20
35
  getRootNode = function () {
21
36
  return _this.rootNode;
37
+ };_this.
38
+
39
+ addRootNodeChangeListener = function (callback) {
40
+ _this.rootNodeEmitter.addListener('change', callback);
41
+ return {
42
+ remove: function remove() {
43
+ _this.rootNodeEmitter.removeListener('change', callback);
44
+ } };
45
+
22
46
  };return _this;}return rootNode;}(Component);
23
47
 
24
48
 
@@ -28,4 +52,8 @@ function rootNode(Component) {
28
52
  }
29
53
 
30
54
  return rootNode;
31
- }
55
+ }
56
+
57
+ var isInstanceWithRootNode = function isInstanceWithRootNode(instance) {
58
+ return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');
59
+ };exports.isInstanceWithRootNode = isInstanceWithRootNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["rootNodeDecorator.tsx"],"names":["rootNode","Component","setRootNode","instance","getRootNode","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name"],"mappings":";;;;AAIA;;;;AAIO,SAASA,QAAT,CAAqEC,SAArE,EAAmF;AACxF,MAAMD,QAAQ;;AAEZ,wBAAmC;AACjC,8FADiC;;;AAI5BE,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,cAAKH,QAAL,GAAgB,8BAAYG,QAAZ,CAAhB;AACD,OANkC;;AAQ5BC,MAAAA,WAR4B,GAQd,YAA6B;AAChD,eAAO,MAAKJ,QAAZ;AACD,OAVkC,cAElC,CAJW,kBAAiBC,SAAjB,CAAd;;;AAeA,MAAMI,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgCP,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACK,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBT,QAAtB,EAAgC,MAAhC,EAAwC,EAAEU,KAAK,EAAET,SAAS,CAACU,IAAnB,EAAxC;AACD;;AAED,SAAOX,QAAP;AACD","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport function rootNode<T extends new (...args: any[]) => React.Component>(Component: T) {\n const rootNode = class extends Component {\n public rootNode: Nullable<HTMLElement>;\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n this.rootNode = getRootNode(instance);\n };\n\n public getRootNode = (): Nullable<HTMLElement> => {\n return this.rootNode;\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n"]}
1
+ {"version":3,"sources":["rootNodeDecorator.tsx"],"names":["rootNode","Component","rootNodeEmitter","EventEmitter","setRootNode","instance","emit","getRootNode","addRootNodeChangeListener","callback","addListener","remove","removeListener","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name","isInstanceWithRootNode","Boolean","prototype","hasOwnProperty","call"],"mappings":";AACA;;;;AAIA;;;;;;;;;;;;;AAaO,SAASA,QAAT,CAAqEC,SAArE,EAAmF;AACxF,MAAMD,QAAQ;;;AAGZ,wBAAmC;AACjC,8FADiC,MAF5BA,QAE4B,GAFM,IAEN,OAD5BE,eAC4B,GADV,IAAIC,qBAAJ,EACU;;;AAI5BC,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,YAAML,SAAQ,GAAG,8BAAYK,QAAZ,CAAjB;AACA,YAAIL,SAAQ,KAAK,MAAKA,QAAtB,EAAgC;AAC9B,gBAAKA,QAAL,GAAgBA,SAAhB;AACA,gBAAKE,eAAL,CAAqBI,IAArB,CAA0B,QAA1B,EAAoCN,SAApC;AACD;AACF,OAVkC;;AAY5BO,MAAAA,WAZ4B,GAYd,YAA6B;AAChD,eAAO,MAAKP,QAAZ;AACD,OAdkC;;AAgB5BQ,MAAAA,yBAhB4B,GAgBA,UAACC,QAAD,EAA4E;AAC7G,cAAKP,eAAL,CAAqBQ,WAArB,CAAiC,QAAjC,EAA2CD,QAA3C;AACA,eAAO;AACLE,UAAAA,MAAM,EAAE,kBAAM;AACZ,kBAAKT,eAAL,CAAqBU,cAArB,CAAoC,QAApC,EAA8CH,QAA9C;AACD,WAHI,EAAP;;AAKD,OAvBkC,cAElC,CALW,kBAAiBR,SAAjB,CAAd;;;AA6BA,MAAMY,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgCf,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACa,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBjB,QAAtB,EAAgC,MAAhC,EAAwC,EAAEkB,KAAK,EAAEjB,SAAS,CAACkB,IAAnB,EAAxC;AACD;;AAED,SAAOnB,QAAP;AACD;;AAEM,IAAMoB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACf,QAAD,EAAyD;AAC7F,SAAOgB,OAAO,CAAChB,QAAD,CAAP,IAAqBS,MAAM,CAACQ,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCnB,QAArC,EAA+C,aAA/C,CAA5B;AACD,CAFM,C","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport type TRootNodeSubscription = {\n remove: () => void;\n};\n\nexport interface InstanceWithRootNode {\n getRootNode: () => Nullable<HTMLElement>;\n addRootNodeChangeListener?: (callback: (node: Nullable<HTMLElement>) => void) => TRootNodeSubscription;\n}\n\nexport function rootNode<T extends new (...args: any[]) => React.Component>(Component: T) {\n const rootNode = class extends Component implements InstanceWithRootNode {\n public rootNode: Nullable<HTMLElement> = null;\n public rootNodeEmitter = new EventEmitter();\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n const rootNode = getRootNode(instance);\n if (rootNode !== this.rootNode) {\n this.rootNode = rootNode;\n this.rootNodeEmitter.emit('change', rootNode);\n }\n };\n\n public getRootNode = (): Nullable<HTMLElement> => {\n return this.rootNode;\n };\n\n public addRootNodeChangeListener = (callback: (node: Nullable<HTMLElement>) => void): TRootNodeSubscription => {\n this.rootNodeEmitter.addListener('change', callback);\n return {\n remove: () => {\n this.rootNodeEmitter.removeListener('change', callback);\n },\n };\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n\nexport const isInstanceWithRootNode = (instance: unknown): instance is InstanceWithRootNode => {\n return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Theme, ThemeIn } from './Theme';
2
2
  export declare class ThemeFactory {
3
3
  static create<T extends {}>(theme: ThemeIn & T, baseTheme?: Theme): Readonly<Theme & T>;
4
- static overrideDefaultTheme(theme: ThemeIn): void;
4
+ static overrideDefaultTheme(theme: Theme): void;
5
5
  static getKeys<T extends Theme>(theme: T): (keyof T)[];
6
6
  private static constructTheme;
7
7
  }
@@ -1,6 +1,7 @@
1
- "use strict";exports.__esModule = true;exports.ThemeFactory = void 0;var _DefaultTheme = require("../../internal/themes/DefaultTheme");var
1
+ "use strict";exports.__esModule = true;exports.ThemeFactory = void 0;var _DefaultTheme = require("../../internal/themes/DefaultTheme");
2
2
 
3
3
 
4
+ var _ThemeHelpers = require("./ThemeHelpers");var
4
5
 
5
6
  ThemeFactory = /*#__PURE__*/function () {function ThemeFactory() {}ThemeFactory.
6
7
  create = function create(theme, baseTheme) {
@@ -9,8 +10,8 @@ ThemeFactory = /*#__PURE__*/function () {function ThemeFactory() {}ThemeFactory.
9
10
  };ThemeFactory.
10
11
 
11
12
  overrideDefaultTheme = function overrideDefaultTheme(theme) {
12
- Object.keys(theme).forEach(function (variableName) {
13
- var descriptor = Object.getOwnPropertyDescriptor(theme, variableName);
13
+ ThemeFactory.getKeys(_DefaultTheme.DefaultThemeInternal).forEach(function (variableName) {
14
+ var descriptor = (0, _ThemeHelpers.findPropertyDescriptor)(theme, variableName);
14
15
  Object.defineProperty(_DefaultTheme.DefaultThemeInternal, variableName, descriptor);
15
16
  });
16
17
  };ThemeFactory.
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeFactory.ts"],"names":["ThemeFactory","create","theme","baseTheme","base","DefaultThemeInternal","constructTheme","overrideDefaultTheme","Object","keys","forEach","variableName","descriptor","getOwnPropertyDescriptor","defineProperty","getKeys","key","includes","push","getPrototypeOf","sort","newTheme","propName","freeze"],"mappings":"qEAAA,kE;;;;AAIaA,Y;AACGC,EAAAA,M,GAAd,gBAAmCC,KAAnC,EAAuDC,SAAvD,EAA+F;AAC7F,QAAMC,IAAI,GAAGD,SAAS,IAAIE,kCAA1B;AACA,WAAO,KAAKC,cAAL,CAAoBF,IAApB,EAA0BF,KAA1B,CAAP;AACD,G;;AAEaK,EAAAA,oB,GAAd,8BAAmCL,KAAnC,EAAmD;AACjDM,IAAAA,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBQ,OAAnB,CAA2B,UAACC,YAAD,EAAkB;AAC3C,UAAMC,UAAU,GAAGJ,MAAM,CAACK,wBAAP,CAAgCX,KAAhC,EAAuCS,YAAvC,CAAnB;AACAH,MAAAA,MAAM,CAACM,cAAP,CAAsBT,kCAAtB,EAA4CM,YAA5C,EAA0DC,UAA1D;AACD,KAHD;AAID,G;;AAEaG,EAAAA,O,GAAd,iBAAuCb,KAAvC,EAAiD;AAC/C,QAAMO,IAAoB,GAAG,EAA7B;AACA,WAAOP,KAAK,IAAI,IAAhB,EAAsB;AACnBM,MAAAA,MAAM,CAACC,IAAP,CAAYP,KAAZ,CAAD,CAAuCQ,OAAvC,CAA+C,UAACM,GAAD,EAAS;AACtD,YAAI,CAACP,IAAI,CAACQ,QAAL,CAAcD,GAAd,CAAL,EAAyB;AACvBP,UAAAA,IAAI,CAACS,IAAL,CAAUF,GAAV;AACD;AACF,OAJD;AAKAd,MAAAA,KAAK,GAAGM,MAAM,CAACW,cAAP,CAAsBjB,KAAtB,CAAR;AACD;AACD,WAAOO,IAAI,CAACW,IAAL,EAAP;AACD,G;;AAEcd,EAAAA,c,GAAf,wBAA8BF,IAA9B,EAA2CF,KAA3C,EAA2D;AACzD,QAAMmB,QAAQ,GAAGb,MAAM,CAACP,MAAP,CAAcG,IAAd,CAAjB;AACAI,IAAAA,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBQ,OAAnB,CAA2B,UAACY,QAAD,EAAc;AACvC,UAAMV,UAAU,GAAGJ,MAAM,CAACK,wBAAP,CAAgCX,KAAhC,EAAuCoB,QAAvC,CAAnB;AACAd,MAAAA,MAAM,CAACM,cAAP,CAAsBO,QAAtB,EAAgCC,QAAhC,EAA0CV,UAA1C;AACD,KAHD;;AAKA,WAAOJ,MAAM,CAACe,MAAP,CAAcF,QAAd,CAAP;AACD,G","sourcesContent":["import { DefaultThemeInternal } from '../../internal/themes/DefaultTheme';\n\nimport { Theme, ThemeIn } from './Theme';\n\nexport class ThemeFactory {\n public static create<T extends {}>(theme: ThemeIn & T, baseTheme?: Theme): Readonly<Theme & T> {\n const base = baseTheme || DefaultThemeInternal;\n return this.constructTheme(base, theme);\n }\n\n public static overrideDefaultTheme(theme: ThemeIn) {\n Object.keys(theme).forEach((variableName) => {\n const descriptor = Object.getOwnPropertyDescriptor(theme, variableName)!;\n Object.defineProperty(DefaultThemeInternal, variableName, descriptor);\n });\n }\n\n public static getKeys<T extends Theme>(theme: T) {\n const keys: Array<keyof T> = [];\n while (theme != null) {\n (Object.keys(theme) as Array<keyof T>).forEach((key) => {\n if (!keys.includes(key)) {\n keys.push(key);\n }\n });\n theme = Object.getPrototypeOf(theme);\n }\n return keys.sort();\n }\n\n private static constructTheme(base: Theme, theme: ThemeIn) {\n const newTheme = Object.create(base);\n Object.keys(theme).forEach((propName) => {\n const descriptor = Object.getOwnPropertyDescriptor(theme, propName)!;\n Object.defineProperty(newTheme, propName, descriptor);\n });\n\n return Object.freeze(newTheme);\n }\n}\n"]}
1
+ {"version":3,"sources":["ThemeFactory.ts"],"names":["ThemeFactory","create","theme","baseTheme","base","DefaultThemeInternal","constructTheme","overrideDefaultTheme","getKeys","forEach","variableName","descriptor","Object","defineProperty","keys","key","includes","push","getPrototypeOf","sort","newTheme","propName","getOwnPropertyDescriptor","freeze"],"mappings":"qEAAA;;;AAGA,8C;;AAEaA,Y;AACGC,EAAAA,M,GAAd,gBAAmCC,KAAnC,EAAuDC,SAAvD,EAA+F;AAC7F,QAAMC,IAAI,GAAGD,SAAS,IAAIE,kCAA1B;AACA,WAAO,KAAKC,cAAL,CAAoBF,IAApB,EAA0BF,KAA1B,CAAP;AACD,G;;AAEaK,EAAAA,oB,GAAd,8BAAmCL,KAAnC,EAAiD;AAC/CF,IAAAA,YAAY,CAACQ,OAAb,CAAqBH,kCAArB,EAA2CI,OAA3C,CAAmD,UAACC,YAAD,EAAkB;AACnE,UAAMC,UAAU,GAAG,0CAAuBT,KAAvB,EAA8BQ,YAA9B,CAAnB;AACAE,MAAAA,MAAM,CAACC,cAAP,CAAsBR,kCAAtB,EAA4CK,YAA5C,EAA0DC,UAA1D;AACD,KAHD;AAID,G;;AAEaH,EAAAA,O,GAAd,iBAAuCN,KAAvC,EAAiD;AAC/C,QAAMY,IAAoB,GAAG,EAA7B;AACA,WAAOZ,KAAK,IAAI,IAAhB,EAAsB;AACnBU,MAAAA,MAAM,CAACE,IAAP,CAAYZ,KAAZ,CAAD,CAAoCO,OAApC,CAA4C,UAACM,GAAD,EAAS;AACnD,YAAI,CAACD,IAAI,CAACE,QAAL,CAAcD,GAAd,CAAL,EAAyB;AACvBD,UAAAA,IAAI,CAACG,IAAL,CAAUF,GAAV;AACD;AACF,OAJD;AAKAb,MAAAA,KAAK,GAAGU,MAAM,CAACM,cAAP,CAAsBhB,KAAtB,CAAR;AACD;AACD,WAAOY,IAAI,CAACK,IAAL,EAAP;AACD,G;;AAEcb,EAAAA,c,GAAf,wBAA8BF,IAA9B,EAA2CF,KAA3C,EAA2D;AACzD,QAAMkB,QAAQ,GAAGR,MAAM,CAACX,MAAP,CAAcG,IAAd,CAAjB;AACAQ,IAAAA,MAAM,CAACE,IAAP,CAAYZ,KAAZ,EAAmBO,OAAnB,CAA2B,UAACY,QAAD,EAAc;AACvC,UAAMV,UAAU,GAAGC,MAAM,CAACU,wBAAP,CAAgCpB,KAAhC,EAAuCmB,QAAvC,CAAnB;AACAT,MAAAA,MAAM,CAACC,cAAP,CAAsBO,QAAtB,EAAgCC,QAAhC,EAA0CV,UAA1C;AACD,KAHD;;AAKA,WAAOC,MAAM,CAACW,MAAP,CAAcH,QAAd,CAAP;AACD,G","sourcesContent":["import { DefaultThemeInternal } from '../../internal/themes/DefaultTheme';\n\nimport { Theme, ThemeIn } from './Theme';\nimport { findPropertyDescriptor } from './ThemeHelpers';\n\nexport class ThemeFactory {\n public static create<T extends {}>(theme: ThemeIn & T, baseTheme?: Theme): Readonly<Theme & T> {\n const base = baseTheme || DefaultThemeInternal;\n return this.constructTheme(base, theme);\n }\n\n public static overrideDefaultTheme(theme: Theme) {\n ThemeFactory.getKeys(DefaultThemeInternal).forEach((variableName) => {\n const descriptor = findPropertyDescriptor(theme, variableName);\n Object.defineProperty(DefaultThemeInternal, variableName, descriptor);\n });\n }\n\n public static getKeys<T extends Theme>(theme: T) {\n const keys: Array<keyof T> = [];\n while (theme != null) {\n (Object.keys(theme) as typeof keys).forEach((key) => {\n if (!keys.includes(key)) {\n keys.push(key);\n }\n });\n theme = Object.getPrototypeOf(theme);\n }\n return keys.sort();\n }\n\n private static constructTheme(base: Theme, theme: ThemeIn) {\n const newTheme = Object.create(base);\n Object.keys(theme).forEach((propName) => {\n const descriptor = Object.getOwnPropertyDescriptor(theme, propName)!;\n Object.defineProperty(newTheme, propName, descriptor);\n });\n\n return Object.freeze(newTheme);\n }\n}\n"]}
@@ -3,3 +3,4 @@ export declare const exposeGetters: <T extends object>(theme: T) => T;
3
3
  export declare const REACT_UI_DARK_THEME_KEY = "__IS_REACT_UI_DARK_THEME__";
4
4
  export declare const isDarkTheme: (theme: Theme | ThemeIn) => boolean;
5
5
  export declare const markAsDarkTheme: <T extends object>(theme: T) => T;
6
+ export declare function findPropertyDescriptor(theme: Theme, propName: keyof Theme): PropertyDescriptor;
@@ -1,4 +1,4 @@
1
- "use strict";exports.__esModule = true;exports.markAsDarkTheme = exports.isDarkTheme = exports.exposeGetters = exports.REACT_UI_DARK_THEME_KEY = void 0;
1
+ "use strict";exports.__esModule = true;exports.exposeGetters = exports.REACT_UI_DARK_THEME_KEY = void 0;exports.findPropertyDescriptor = findPropertyDescriptor;exports.markAsDarkTheme = exports.isDarkTheme = void 0;
2
2
 
3
3
  var exposeGetters = function exposeGetters(theme) {
4
4
  var descriptors = Object.getOwnPropertyDescriptors(theme);
@@ -28,4 +28,13 @@ var markAsDarkTheme = function markAsDarkTheme(theme) {var _Object$create;
28
28
  configurable: false }, _Object$create));
29
29
 
30
30
 
31
- };exports.markAsDarkTheme = markAsDarkTheme;
31
+ };exports.markAsDarkTheme = markAsDarkTheme;
32
+
33
+ function findPropertyDescriptor(theme, propName) {
34
+ for (; theme != null; theme = Object.getPrototypeOf(theme)) {
35
+ if (Object.prototype.hasOwnProperty.call(theme, propName)) {
36
+ return Object.getOwnPropertyDescriptor(theme, propName) || {};
37
+ }
38
+ }
39
+ return {};
40
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["ThemeHelpers.ts"],"names":["exposeGetters","theme","descriptors","Object","getOwnPropertyDescriptors","keys","forEach","key","descriptor","get","configurable","enumerable","defineProperty","REACT_UI_DARK_THEME_KEY","isDarkTheme","markAsDarkTheme","create","value","writable"],"mappings":";;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAmBC,KAAnB,EAAmC;AAC9D,MAAMC,WAAW,GAAGC,MAAM,CAACC,yBAAP,CAAiCH,KAAjC,CAApB;AACAE,EAAAA,MAAM,CAACE,IAAP,CAAYH,WAAZ,EAAyBI,OAAzB,CAAiC,UAACC,GAAD,EAAS;AACxC,QAAMC,UAAU,GAAGN,WAAW,CAACK,GAAD,CAA9B;AACA,QAAI,OAAOC,UAAU,CAACC,GAAlB,KAA0B,UAA1B,IAAwCD,UAAU,CAACE,YAAvD,EAAqE;AACnEF,MAAAA,UAAU,CAACG,UAAX,GAAwB,IAAxB;AACAR,MAAAA,MAAM,CAACS,cAAP,CAAsBX,KAAtB,EAA6BM,GAA7B,EAAkCC,UAAlC;AACD;AACF,GAND;AAOA,SAAOP,KAAP;AACD,CAVM,C;;AAYA,IAAMY,uBAAuB,GAAG,4BAAhC,C;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACb,KAAD,EAAqC;AAC9D;AACA,SAAOA,KAAK,CAACY,uBAAD,CAAL,KAAmC,IAA1C;AACD,CAHM,C;;AAKA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAAmBd,KAAnB,EAAmC;AAChE,SAAOE,MAAM,CAACa,MAAP,CAAcf,KAAd;AACJY,EAAAA,uBADI,IACsB;AACzBI,IAAAA,KAAK,EAAE,IADkB;AAEzBC,IAAAA,QAAQ,EAAE,KAFe;AAGzBP,IAAAA,UAAU,EAAE,KAHa;AAIzBD,IAAAA,YAAY,EAAE,KAJW,EADtB,kBAAP;;;AAQD,CATM,C","sourcesContent":["import { Theme, ThemeIn } from './Theme';\n\nexport const exposeGetters = <T extends object>(theme: T): T => {\n const descriptors = Object.getOwnPropertyDescriptors(theme);\n Object.keys(descriptors).forEach((key) => {\n const descriptor = descriptors[key];\n if (typeof descriptor.get === 'function' && descriptor.configurable) {\n descriptor.enumerable = true;\n Object.defineProperty(theme, key, descriptor);\n }\n });\n return theme;\n};\n\nexport const REACT_UI_DARK_THEME_KEY = '__IS_REACT_UI_DARK_THEME__';\n\nexport const isDarkTheme = (theme: Theme | ThemeIn): boolean => {\n //@ts-ignore\n return theme[REACT_UI_DARK_THEME_KEY] === true;\n};\n\nexport const markAsDarkTheme = <T extends object>(theme: T): T => {\n return Object.create(theme, {\n [REACT_UI_DARK_THEME_KEY]: {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n"]}
1
+ {"version":3,"sources":["ThemeHelpers.ts"],"names":["exposeGetters","theme","descriptors","Object","getOwnPropertyDescriptors","keys","forEach","key","descriptor","get","configurable","enumerable","defineProperty","REACT_UI_DARK_THEME_KEY","isDarkTheme","markAsDarkTheme","create","value","writable","findPropertyDescriptor","propName","getPrototypeOf","prototype","hasOwnProperty","call","getOwnPropertyDescriptor"],"mappings":";;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAmBC,KAAnB,EAAmC;AAC9D,MAAMC,WAAW,GAAGC,MAAM,CAACC,yBAAP,CAAiCH,KAAjC,CAApB;AACAE,EAAAA,MAAM,CAACE,IAAP,CAAYH,WAAZ,EAAyBI,OAAzB,CAAiC,UAACC,GAAD,EAAS;AACxC,QAAMC,UAAU,GAAGN,WAAW,CAACK,GAAD,CAA9B;AACA,QAAI,OAAOC,UAAU,CAACC,GAAlB,KAA0B,UAA1B,IAAwCD,UAAU,CAACE,YAAvD,EAAqE;AACnEF,MAAAA,UAAU,CAACG,UAAX,GAAwB,IAAxB;AACAR,MAAAA,MAAM,CAACS,cAAP,CAAsBX,KAAtB,EAA6BM,GAA7B,EAAkCC,UAAlC;AACD;AACF,GAND;AAOA,SAAOP,KAAP;AACD,CAVM,C;;AAYA,IAAMY,uBAAuB,GAAG,4BAAhC,C;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACb,KAAD,EAAqC;AAC9D;AACA,SAAOA,KAAK,CAACY,uBAAD,CAAL,KAAmC,IAA1C;AACD,CAHM,C;;AAKA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAAmBd,KAAnB,EAAmC;AAChE,SAAOE,MAAM,CAACa,MAAP,CAAcf,KAAd;AACJY,EAAAA,uBADI,IACsB;AACzBI,IAAAA,KAAK,EAAE,IADkB;AAEzBC,IAAAA,QAAQ,EAAE,KAFe;AAGzBP,IAAAA,UAAU,EAAE,KAHa;AAIzBD,IAAAA,YAAY,EAAE,KAJW,EADtB,kBAAP;;;AAQD,CATM,C;;AAWA,SAASS,sBAAT,CAAgClB,KAAhC,EAA8CmB,QAA9C,EAAqE;AAC1E,SAAOnB,KAAK,IAAI,IAAhB,EAAsBA,KAAK,GAAGE,MAAM,CAACkB,cAAP,CAAsBpB,KAAtB,CAA9B,EAA4D;AAC1D,QAAIE,MAAM,CAACmB,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCvB,KAArC,EAA4CmB,QAA5C,CAAJ,EAA2D;AACzD,aAAOjB,MAAM,CAACsB,wBAAP,CAAgCxB,KAAhC,EAAuCmB,QAAvC,KAAoD,EAA3D;AACD;AACF;AACD,SAAO,EAAP;AACD","sourcesContent":["import { Theme, ThemeIn } from './Theme';\n\nexport const exposeGetters = <T extends object>(theme: T): T => {\n const descriptors = Object.getOwnPropertyDescriptors(theme);\n Object.keys(descriptors).forEach((key) => {\n const descriptor = descriptors[key];\n if (typeof descriptor.get === 'function' && descriptor.configurable) {\n descriptor.enumerable = true;\n Object.defineProperty(theme, key, descriptor);\n }\n });\n return theme;\n};\n\nexport const REACT_UI_DARK_THEME_KEY = '__IS_REACT_UI_DARK_THEME__';\n\nexport const isDarkTheme = (theme: Theme | ThemeIn): boolean => {\n //@ts-ignore\n return theme[REACT_UI_DARK_THEME_KEY] === true;\n};\n\nexport const markAsDarkTheme = <T extends object>(theme: T): T => {\n return Object.create(theme, {\n [REACT_UI_DARK_THEME_KEY]: {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n },\n });\n};\n\nexport function findPropertyDescriptor(theme: Theme, propName: keyof Theme) {\n for (; theme != null; theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, propName)) {\n return Object.getOwnPropertyDescriptor(theme, propName) || {};\n }\n }\n return {};\n}\n"]}
@@ -21,6 +21,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
21
21
  import { MobilePopup } from "../../../internal/MobilePopup";
22
22
  import { responsiveLayout } from "../../ResponsiveLayout/decorator";
23
23
  import { getRootNode, rootNode } from "../../../lib/rootNode";
24
+ import { getDOMRect } from "../../../lib/dom/getDOMRect";
24
25
  import { styles } from "../Autocomplete.styles";
25
26
 
26
27
  function match(pattern, items) {
@@ -147,14 +148,6 @@ var Autocomplete = responsiveLayout(_class = rootNode(_class = (_temp = _class2
147
148
  }) : null;
148
149
  };
149
150
 
150
- _this.getInputWidth = function (target) {
151
- if (target instanceof Element) {
152
- return target.getBoundingClientRect().width;
153
- }
154
-
155
- return 0;
156
- };
157
-
158
151
  _this.handleValueChange = function (value) {
159
152
  _this.opened = true;
160
153
 
@@ -333,7 +326,7 @@ var Autocomplete = responsiveLayout(_class = rootNode(_class = (_temp = _class2
333
326
  ref: this.refMenu,
334
327
  maxHeight: this.props.menuMaxHeight,
335
328
  hasShadow: this.props.hasShadow,
336
- width: this.props.menuWidth || this.props.width && this.getInputWidth(this.rootSpan),
329
+ width: this.props.menuWidth || this.props.width && getDOMRect(this.rootSpan).width,
337
330
  preventWindowScroll: this.props.preventWindowScroll
338
331
  };
339
332