@kaspernj/api-maker 1.0.2160 → 1.0.2161

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 (524) hide show
  1. package/build/api.d.ts +46 -34
  2. package/build/api.d.ts.map +1 -1
  3. package/build/api.js +32 -25
  4. package/build/attribute-not-loaded-error.d.ts.map +1 -1
  5. package/build/attribute-not-loaded-error.js +2 -1
  6. package/build/base-error.d.ts +49 -60
  7. package/build/base-error.d.ts.map +1 -1
  8. package/build/base-error.js +3 -2
  9. package/build/base-model/column.d.ts +2 -2
  10. package/build/base-model/column.d.ts.map +1 -1
  11. package/build/base-model/column.js +3 -2
  12. package/build/base-model/reflection.d.ts +8 -3
  13. package/build/base-model/reflection.d.ts.map +1 -1
  14. package/build/base-model/reflection.js +8 -3
  15. package/build/base-model/scope.d.ts +1 -1
  16. package/build/base-model/scope.d.ts.map +1 -1
  17. package/build/base-model/scope.js +3 -2
  18. package/build/base-model.d.ts +3801 -117
  19. package/build/base-model.d.ts.map +1 -1
  20. package/build/base-model.js +271 -143
  21. package/build/bootstrap/attribute-row.d.ts +12 -0
  22. package/build/bootstrap/attribute-row.d.ts.map +1 -1
  23. package/build/bootstrap/attribute-row.js +23 -5
  24. package/build/bootstrap/attribute-rows.d.ts +8 -0
  25. package/build/bootstrap/attribute-rows.d.ts.map +1 -1
  26. package/build/bootstrap/attribute-rows.js +14 -5
  27. package/build/bootstrap/card.d.ts +17 -0
  28. package/build/bootstrap/card.d.ts.map +1 -1
  29. package/build/bootstrap/card.js +30 -10
  30. package/build/bootstrap/checkbox.d.ts +16 -0
  31. package/build/bootstrap/checkbox.d.ts.map +1 -1
  32. package/build/bootstrap/checkbox.js +20 -2
  33. package/build/bootstrap/checkboxes.d.ts +31 -0
  34. package/build/bootstrap/checkboxes.d.ts.map +1 -1
  35. package/build/bootstrap/checkboxes.js +35 -3
  36. package/build/bootstrap/index.js +2 -1
  37. package/build/bootstrap/input.d.ts +24 -0
  38. package/build/bootstrap/input.d.ts.map +1 -1
  39. package/build/bootstrap/input.js +27 -2
  40. package/build/bootstrap/invalid-feedback.d.ts.map +1 -1
  41. package/build/bootstrap/invalid-feedback.js +2 -1
  42. package/build/bootstrap/paginate.d.ts +5 -0
  43. package/build/bootstrap/paginate.d.ts.map +1 -1
  44. package/build/bootstrap/paginate.js +9 -4
  45. package/build/bootstrap/radio-buttons.js +2 -1
  46. package/build/bootstrap/select.js +2 -1
  47. package/build/bootstrap/sort-link.d.ts +10 -0
  48. package/build/bootstrap/sort-link.d.ts.map +1 -1
  49. package/build/bootstrap/sort-link.js +15 -4
  50. package/build/cable-connection-pool.d.ts +201 -24
  51. package/build/cable-connection-pool.d.ts.map +1 -1
  52. package/build/cable-connection-pool.js +76 -16
  53. package/build/cable-subscription-pool.d.ts +186 -20
  54. package/build/cable-subscription-pool.d.ts.map +1 -1
  55. package/build/cable-subscription-pool.js +61 -22
  56. package/build/cable-subscription.d.ts.map +1 -1
  57. package/build/cable-subscription.js +3 -2
  58. package/build/cache-key-generator.d.ts +194 -20
  59. package/build/cache-key-generator.d.ts.map +1 -1
  60. package/build/cache-key-generator.js +63 -12
  61. package/build/can-can.d.ts +146 -29
  62. package/build/can-can.d.ts.map +1 -1
  63. package/build/can-can.js +105 -19
  64. package/build/channels-consumer.d.ts +23 -1
  65. package/build/channels-consumer.d.ts.map +1 -1
  66. package/build/channels-consumer.js +26 -8
  67. package/build/collection-loader.js +2 -1
  68. package/build/collection.d.ts +361 -370
  69. package/build/collection.d.ts.map +1 -1
  70. package/build/collection.js +59 -19
  71. package/build/command-execution.d.ts +50 -26
  72. package/build/command-execution.d.ts.map +1 -1
  73. package/build/command-execution.js +31 -13
  74. package/build/command-submit-data.d.ts +50 -37
  75. package/build/command-submit-data.d.ts.map +1 -1
  76. package/build/command-submit-data.js +35 -22
  77. package/build/commands-pool.d.ts +65 -27
  78. package/build/commands-pool.d.ts.map +1 -1
  79. package/build/commands-pool.js +67 -20
  80. package/build/compose.d.ts +8 -2
  81. package/build/compose.d.ts.map +1 -1
  82. package/build/compose.js +9 -2
  83. package/build/config.d.ts +31 -15
  84. package/build/config.d.ts.map +1 -1
  85. package/build/config.js +60 -23
  86. package/build/custom-error.d.ts.map +1 -1
  87. package/build/custom-error.js +2 -1
  88. package/build/data-set-to-attributes.d.ts +14 -2
  89. package/build/data-set-to-attributes.d.ts.map +1 -1
  90. package/build/data-set-to-attributes.js +12 -3
  91. package/build/deserializer.d.ts +116 -2
  92. package/build/deserializer.d.ts.map +1 -1
  93. package/build/deserializer.js +13 -2
  94. package/build/destroy-error.d.ts.map +1 -1
  95. package/build/destroy-error.js +2 -1
  96. package/build/devise.d.ts +638 -39
  97. package/build/devise.d.ts.map +1 -1
  98. package/build/devise.js +97 -28
  99. package/build/draggable-sort/controller.d.ts +126 -35
  100. package/build/draggable-sort/controller.d.ts.map +1 -1
  101. package/build/draggable-sort/controller.js +100 -28
  102. package/build/draggable-sort/index.d.ts +55 -0
  103. package/build/draggable-sort/index.d.ts.map +1 -1
  104. package/build/draggable-sort/index.js +71 -3
  105. package/build/draggable-sort/item.d.ts +54 -0
  106. package/build/draggable-sort/item.d.ts.map +1 -1
  107. package/build/draggable-sort/item.js +94 -6
  108. package/build/error-logger.d.ts +30 -14
  109. package/build/error-logger.d.ts.map +1 -1
  110. package/build/error-logger.js +22 -11
  111. package/build/event-connection.d.ts.map +1 -1
  112. package/build/event-connection.js +3 -2
  113. package/build/event-emitter-listener.d.ts.map +1 -1
  114. package/build/event-emitter-listener.js +2 -1
  115. package/build/event-model-class.d.ts.map +1 -1
  116. package/build/event-model-class.js +2 -1
  117. package/build/events.d.ts.map +1 -1
  118. package/build/events.js +2 -1
  119. package/build/form.d.ts +23 -0
  120. package/build/form.d.ts.map +1 -1
  121. package/build/form.js +16 -4
  122. package/build/history-expo.d.ts +6 -2
  123. package/build/history-expo.d.ts.map +1 -1
  124. package/build/history-expo.js +5 -2
  125. package/build/history-react-native.d.ts +6 -2
  126. package/build/history-react-native.d.ts.map +1 -1
  127. package/build/history-react-native.js +5 -2
  128. package/build/history.js +2 -1
  129. package/build/index.d.ts.map +1 -1
  130. package/build/index.js +2 -1
  131. package/build/inputs/attachment.d.ts +11 -0
  132. package/build/inputs/attachment.d.ts.map +1 -1
  133. package/build/inputs/attachment.js +17 -4
  134. package/build/inputs/auto-submit.d.ts +41 -13
  135. package/build/inputs/auto-submit.d.ts.map +1 -1
  136. package/build/inputs/auto-submit.js +16 -4
  137. package/build/inputs/checkbox.d.ts +15 -0
  138. package/build/inputs/checkbox.d.ts.map +1 -1
  139. package/build/inputs/checkbox.js +22 -6
  140. package/build/inputs/checkboxes.d.ts +16 -0
  141. package/build/inputs/checkboxes.d.ts.map +1 -1
  142. package/build/inputs/checkboxes.js +20 -4
  143. package/build/inputs/id-for-component.d.ts +21 -2
  144. package/build/inputs/id-for-component.d.ts.map +1 -1
  145. package/build/inputs/id-for-component.js +9 -2
  146. package/build/inputs/input-wrapper.d.ts.map +1 -1
  147. package/build/inputs/input-wrapper.js +2 -1
  148. package/build/inputs/input.d.ts +36 -0
  149. package/build/inputs/input.d.ts.map +1 -1
  150. package/build/inputs/input.js +26 -7
  151. package/build/inputs/money.d.ts +2 -0
  152. package/build/inputs/money.d.ts.map +1 -1
  153. package/build/inputs/money.js +6 -3
  154. package/build/inputs/name-for-component.d.ts +21 -2
  155. package/build/inputs/name-for-component.d.ts.map +1 -1
  156. package/build/inputs/name-for-component.js +9 -2
  157. package/build/inputs/select.d.ts +33 -0
  158. package/build/inputs/select.d.ts.map +1 -1
  159. package/build/inputs/select.js +21 -4
  160. package/build/instance-of-class-name.d.ts +7 -2
  161. package/build/instance-of-class-name.d.ts.map +1 -1
  162. package/build/instance-of-class-name.js +8 -4
  163. package/build/is-expo.d.ts.map +1 -1
  164. package/build/is-expo.js +2 -1
  165. package/build/key-value-store.d.ts +24 -14
  166. package/build/key-value-store.d.ts.map +1 -1
  167. package/build/key-value-store.js +22 -12
  168. package/build/link.d.ts +30 -0
  169. package/build/link.d.ts.map +1 -1
  170. package/build/link.js +76 -30
  171. package/build/logger.d.ts +10 -6
  172. package/build/logger.d.ts.map +1 -1
  173. package/build/logger.js +7 -4
  174. package/build/merge-styles.d.ts +10 -2
  175. package/build/merge-styles.d.ts.map +1 -1
  176. package/build/merge-styles.js +10 -3
  177. package/build/modal.d.ts +2 -0
  178. package/build/modal.d.ts.map +1 -1
  179. package/build/modal.js +6 -4
  180. package/build/model-class-require.d.ts +4 -2
  181. package/build/model-class-require.d.ts.map +1 -1
  182. package/build/model-class-require.js +4 -2
  183. package/build/model-events.d.ts +139 -346
  184. package/build/model-events.d.ts.map +1 -1
  185. package/build/model-events.js +21 -9
  186. package/build/model-name.d.ts +21 -7
  187. package/build/model-name.d.ts.map +1 -1
  188. package/build/model-name.js +12 -2
  189. package/build/model-prop-type.d.ts +533 -26
  190. package/build/model-prop-type.d.ts.map +1 -1
  191. package/build/model-prop-type.js +69 -11
  192. package/build/model-recipes-loader.d.ts +7 -3
  193. package/build/model-recipes-loader.d.ts.map +1 -1
  194. package/build/model-recipes-loader.js +4 -2
  195. package/build/model-recipes-model-loader.d.ts +189 -1493
  196. package/build/model-recipes-model-loader.d.ts.map +1 -1
  197. package/build/model-recipes-model-loader.js +119 -17
  198. package/build/models-response-reader.d.ts +600 -195
  199. package/build/models-response-reader.d.ts.map +1 -1
  200. package/build/models-response-reader.js +12 -4
  201. package/build/models.d.ts +438 -1
  202. package/build/models.d.ts.map +1 -1
  203. package/build/models.js +2 -1
  204. package/build/money-formatter.d.ts +25 -31
  205. package/build/money-formatter.d.ts.map +1 -1
  206. package/build/money-formatter.js +11 -8
  207. package/build/not-loaded-error.d.ts.map +1 -1
  208. package/build/not-loaded-error.js +2 -1
  209. package/build/params.d.ts +25 -17
  210. package/build/params.d.ts.map +1 -1
  211. package/build/params.js +19 -15
  212. package/build/preloaded.d.ts +61 -64
  213. package/build/preloaded.d.ts.map +1 -1
  214. package/build/preloaded.js +10 -4
  215. package/build/reset-realtime-runtime-state.d.ts.map +1 -1
  216. package/build/reset-realtime-runtime-state.js +2 -1
  217. package/build/resize-observer.d.ts.map +1 -1
  218. package/build/resize-observer.js +2 -1
  219. package/build/rest-props-validator.d.ts +2 -2
  220. package/build/rest-props-validator.d.ts.map +1 -1
  221. package/build/rest-props-validator.js +3 -2
  222. package/build/result.d.ts +142 -175
  223. package/build/result.d.ts.map +1 -1
  224. package/build/result.js +3 -2
  225. package/build/router/route.d.ts +50 -0
  226. package/build/router/route.d.ts.map +1 -1
  227. package/build/router/route.js +39 -10
  228. package/build/router/switch.d.ts +37 -1
  229. package/build/router/switch.d.ts.map +1 -1
  230. package/build/router/switch.js +29 -7
  231. package/build/router.d.ts +20 -0
  232. package/build/router.d.ts.map +1 -1
  233. package/build/router.js +15 -4
  234. package/build/routes-native.d.ts +13 -13
  235. package/build/routes-native.d.ts.map +1 -1
  236. package/build/routes-native.js +23 -11
  237. package/build/routes.d.ts +17 -9
  238. package/build/routes.d.ts.map +1 -1
  239. package/build/routes.js +7 -2
  240. package/build/run-last.d.ts.map +1 -1
  241. package/build/run-last.js +2 -1
  242. package/build/serializer.d.ts +44 -12
  243. package/build/serializer.d.ts.map +1 -1
  244. package/build/serializer.js +36 -7
  245. package/build/services.d.ts +29 -4
  246. package/build/services.d.ts.map +1 -1
  247. package/build/services.js +16 -4
  248. package/build/session-status-updater.d.ts +73 -25
  249. package/build/session-status-updater.d.ts.map +1 -1
  250. package/build/session-status-updater.js +52 -14
  251. package/build/source-maps-loader.d.ts +88 -33
  252. package/build/source-maps-loader.d.ts.map +1 -1
  253. package/build/source-maps-loader.js +74 -18
  254. package/build/super-admin/config-reader.d.ts.map +1 -1
  255. package/build/super-admin/config-reader.js +11 -16
  256. package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts +10 -0
  257. package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts.map +1 -1
  258. package/build/super-admin/edit-page/edit-attribute-checkbox.js +16 -4
  259. package/build/super-admin/edit-page/edit-attribute-content.d.ts +9 -0
  260. package/build/super-admin/edit-page/edit-attribute-content.d.ts.map +1 -1
  261. package/build/super-admin/edit-page/edit-attribute-content.js +15 -4
  262. package/build/super-admin/edit-page/edit-attribute-input.d.ts +8 -0
  263. package/build/super-admin/edit-page/edit-attribute-input.d.ts.map +1 -1
  264. package/build/super-admin/edit-page/edit-attribute-input.js +13 -4
  265. package/build/super-admin/edit-page/edit-attribute.d.ts +6 -0
  266. package/build/super-admin/edit-page/edit-attribute.d.ts.map +1 -1
  267. package/build/super-admin/edit-page/edit-attribute.js +11 -4
  268. package/build/super-admin/edit-page.d.ts +5 -0
  269. package/build/super-admin/edit-page.d.ts.map +1 -1
  270. package/build/super-admin/edit-page.js +11 -5
  271. package/build/super-admin/has-edit-config.d.ts.map +1 -1
  272. package/build/super-admin/has-edit-config.js +2 -1
  273. package/build/super-admin/index-page.d.ts +4 -0
  274. package/build/super-admin/index-page.d.ts.map +1 -1
  275. package/build/super-admin/index-page.js +9 -4
  276. package/build/super-admin/index.d.ts +4 -0
  277. package/build/super-admin/index.d.ts.map +1 -1
  278. package/build/super-admin/index.js +12 -6
  279. package/build/super-admin/layout/header/index.d.ts +4 -0
  280. package/build/super-admin/layout/header/index.d.ts.map +1 -1
  281. package/build/super-admin/layout/header/index.js +13 -8
  282. package/build/super-admin/layout/index.d.ts +24 -0
  283. package/build/super-admin/layout/index.d.ts.map +1 -1
  284. package/build/super-admin/layout/index.js +33 -5
  285. package/build/super-admin/layout/menu/index.d.ts +2 -0
  286. package/build/super-admin/layout/menu/index.d.ts.map +1 -1
  287. package/build/super-admin/layout/menu/index.js +8 -6
  288. package/build/super-admin/layout/menu/menu-content.d.ts +2 -0
  289. package/build/super-admin/layout/menu/menu-content.d.ts.map +1 -1
  290. package/build/super-admin/layout/menu/menu-content.js +6 -4
  291. package/build/super-admin/layout/menu/menu-item.d.ts +9 -0
  292. package/build/super-admin/layout/menu/menu-item.d.ts.map +1 -1
  293. package/build/super-admin/layout/menu/menu-item.js +15 -4
  294. package/build/super-admin/layout/no-access.d.ts +2 -0
  295. package/build/super-admin/layout/no-access.d.ts.map +1 -1
  296. package/build/super-admin/layout/no-access.js +7 -5
  297. package/build/super-admin/model-class-table.d.ts +4 -0
  298. package/build/super-admin/model-class-table.d.ts.map +1 -1
  299. package/build/super-admin/model-class-table.js +9 -4
  300. package/build/super-admin/models.d.ts.map +1 -1
  301. package/build/super-admin/models.js +2 -1
  302. package/build/super-admin/show-nav.d.ts +2 -0
  303. package/build/super-admin/show-nav.d.ts.map +1 -1
  304. package/build/super-admin/show-nav.js +6 -4
  305. package/build/super-admin/show-page/belongs-to-attribute-row.d.ts +17 -1
  306. package/build/super-admin/show-page/belongs-to-attribute-row.d.ts.map +1 -1
  307. package/build/super-admin/show-page/belongs-to-attribute-row.js +14 -5
  308. package/build/super-admin/show-page/index.d.ts +4 -0
  309. package/build/super-admin/show-page/index.d.ts.map +1 -1
  310. package/build/super-admin/show-page/index.js +9 -4
  311. package/build/super-admin/show-reflection-actions.d.ts +6 -0
  312. package/build/super-admin/show-reflection-actions.d.ts.map +1 -1
  313. package/build/super-admin/show-reflection-actions.js +11 -4
  314. package/build/super-admin/show-reflection-link.d.ts +4 -0
  315. package/build/super-admin/show-reflection-link.d.ts.map +1 -1
  316. package/build/super-admin/show-reflection-link.js +9 -4
  317. package/build/super-admin/show-reflection-page.d.ts +5 -0
  318. package/build/super-admin/show-reflection-page.d.ts.map +1 -1
  319. package/build/super-admin/show-reflection-page.js +10 -4
  320. package/build/table/column-content.d.ts +155 -19
  321. package/build/table/column-content.d.ts.map +1 -1
  322. package/build/table/column-content.js +55 -12
  323. package/build/table/column-identifier.d.ts +11 -2
  324. package/build/table/column-identifier.d.ts.map +1 -1
  325. package/build/table/column-identifier.js +7 -2
  326. package/build/table/column-visible.d.ts +11 -2
  327. package/build/table/column-visible.d.ts.map +1 -1
  328. package/build/table/column-visible.js +8 -2
  329. package/build/table/components/column.d.ts +2 -0
  330. package/build/table/components/column.d.ts.map +1 -1
  331. package/build/table/components/column.js +6 -4
  332. package/build/table/components/flat-list.d.ts +2 -0
  333. package/build/table/components/flat-list.d.ts.map +1 -1
  334. package/build/table/components/flat-list.js +6 -4
  335. package/build/table/components/header.d.ts +2 -0
  336. package/build/table/components/header.d.ts.map +1 -1
  337. package/build/table/components/header.js +6 -4
  338. package/build/table/components/row.d.ts +2 -0
  339. package/build/table/components/row.d.ts.map +1 -1
  340. package/build/table/components/row.js +6 -4
  341. package/build/table/filters/attribute-element.d.ts +2 -0
  342. package/build/table/filters/attribute-element.d.ts.map +1 -1
  343. package/build/table/filters/attribute-element.js +7 -7
  344. package/build/table/filters/filter-form.d.ts +58 -0
  345. package/build/table/filters/filter-form.d.ts.map +1 -1
  346. package/build/table/filters/filter-form.js +72 -9
  347. package/build/table/filters/filter.d.ts +2 -0
  348. package/build/table/filters/filter.d.ts.map +1 -1
  349. package/build/table/filters/filter.js +6 -4
  350. package/build/table/filters/index.d.ts +127 -0
  351. package/build/table/filters/index.d.ts.map +1 -1
  352. package/build/table/filters/index.js +21 -4
  353. package/build/table/filters/load-search-modal.d.ts +130 -0
  354. package/build/table/filters/load-search-modal.d.ts.map +1 -1
  355. package/build/table/filters/load-search-modal.js +28 -6
  356. package/build/table/filters/reflection-element.d.ts +2 -0
  357. package/build/table/filters/reflection-element.d.ts.map +1 -1
  358. package/build/table/filters/reflection-element.js +6 -4
  359. package/build/table/filters/save-search-modal.d.ts +134 -0
  360. package/build/table/filters/save-search-modal.d.ts.map +1 -1
  361. package/build/table/filters/save-search-modal.js +36 -5
  362. package/build/table/filters/scope-element.d.ts +6 -0
  363. package/build/table/filters/scope-element.d.ts.map +1 -1
  364. package/build/table/filters/scope-element.js +13 -8
  365. package/build/table/header-column-content.d.ts +7 -0
  366. package/build/table/header-column-content.d.ts.map +1 -1
  367. package/build/table/header-column-content.js +12 -4
  368. package/build/table/header-column.d.ts +50 -0
  369. package/build/table/header-column.d.ts.map +1 -1
  370. package/build/table/header-column.js +32 -5
  371. package/build/table/header-select.d.ts +18 -0
  372. package/build/table/header-select.d.ts.map +1 -1
  373. package/build/table/header-select.js +19 -4
  374. package/build/table/model-callback-args.d.ts +116 -3
  375. package/build/table/model-callback-args.d.ts.map +1 -1
  376. package/build/table/model-callback-args.js +10 -3
  377. package/build/table/model-column.d.ts +136 -0
  378. package/build/table/model-column.d.ts.map +1 -1
  379. package/build/table/model-column.js +27 -4
  380. package/build/table/model-row.d.ts +19 -0
  381. package/build/table/model-row.d.ts.map +1 -1
  382. package/build/table/model-row.js +24 -4
  383. package/build/table/select-calculator.d.ts +37 -2
  384. package/build/table/select-calculator.d.ts.map +1 -1
  385. package/build/table/select-calculator.js +29 -6
  386. package/build/table/settings/column-row.d.ts +6 -0
  387. package/build/table/settings/column-row.d.ts.map +1 -1
  388. package/build/table/settings/column-row.js +13 -12
  389. package/build/table/settings/download-action.d.ts +5 -0
  390. package/build/table/settings/download-action.d.ts.map +1 -1
  391. package/build/table/settings/download-action.js +10 -4
  392. package/build/table/settings/index.d.ts +5 -0
  393. package/build/table/settings/index.d.ts.map +1 -1
  394. package/build/table/settings/index.js +10 -4
  395. package/build/table/should-render-loading-content.d.ts +2 -2
  396. package/build/table/should-render-loading-content.d.ts.map +1 -1
  397. package/build/table/should-render-loading-content.js +3 -2
  398. package/build/table/table-settings.d.ts +236 -43
  399. package/build/table/table-settings.d.ts.map +1 -1
  400. package/build/table/table-settings.js +104 -20
  401. package/build/table/table.d.ts +271 -0
  402. package/build/table/table.d.ts.map +1 -1
  403. package/build/table/table.js +167 -16
  404. package/build/table/use-sorting.d.ts +10 -8
  405. package/build/table/use-sorting.d.ts.map +1 -1
  406. package/build/table/use-sorting.js +16 -8
  407. package/build/table/widths.d.ts +55 -8
  408. package/build/table/widths.d.ts.map +1 -1
  409. package/build/table/widths.js +25 -2
  410. package/build/table/worker-plugins-check-all-checkbox.d.ts +18 -0
  411. package/build/table/worker-plugins-check-all-checkbox.d.ts.map +1 -1
  412. package/build/table/worker-plugins-check-all-checkbox.js +25 -5
  413. package/build/table/worker-plugins-checkbox.d.ts +5 -0
  414. package/build/table/worker-plugins-checkbox.d.ts.map +1 -1
  415. package/build/table/worker-plugins-checkbox.js +10 -4
  416. package/build/translated-attributes.d.ts +7 -2
  417. package/build/translated-attributes.d.ts.map +1 -1
  418. package/build/translated-attributes.js +8 -2
  419. package/build/translated-collections.d.ts +11 -2
  420. package/build/translated-collections.d.ts.map +1 -1
  421. package/build/translated-collections.js +9 -3
  422. package/build/updated-attribute.d.ts.map +1 -1
  423. package/build/updated-attribute.js +2 -1
  424. package/build/url-encode.d.ts.map +1 -1
  425. package/build/url-encode.js +2 -1
  426. package/build/use-can-can.d.ts +2 -2
  427. package/build/use-can-can.d.ts.map +1 -1
  428. package/build/use-can-can.js +27 -12
  429. package/build/use-collection.d.ts +167 -121
  430. package/build/use-collection.d.ts.map +1 -1
  431. package/build/use-collection.js +113 -44
  432. package/build/use-created-event.d.ts +120 -11
  433. package/build/use-created-event.d.ts.map +1 -1
  434. package/build/use-created-event.js +10 -7
  435. package/build/use-current-user-context.d.ts +2 -2
  436. package/build/use-current-user-context.d.ts.map +1 -1
  437. package/build/use-current-user-context.js +3 -2
  438. package/build/use-current-user.d.ts +86 -70
  439. package/build/use-current-user.d.ts.map +1 -1
  440. package/build/use-current-user.js +36 -8
  441. package/build/use-destroyed-event.d.ts +117 -8
  442. package/build/use-destroyed-event.d.ts.map +1 -1
  443. package/build/use-destroyed-event.js +29 -22
  444. package/build/use-input.d.ts +74 -12
  445. package/build/use-input.d.ts.map +1 -1
  446. package/build/use-input.js +33 -5
  447. package/build/use-model-class-event.d.ts +124 -10
  448. package/build/use-model-class-event.d.ts.map +1 -1
  449. package/build/use-model-class-event.js +26 -16
  450. package/build/use-model-event.d.ts +121 -8
  451. package/build/use-model-event.d.ts.map +1 -1
  452. package/build/use-model-event.js +24 -19
  453. package/build/use-model.d.ts +162 -244
  454. package/build/use-model.d.ts.map +1 -1
  455. package/build/use-model.js +85 -32
  456. package/build/use-resize-observer.d.ts.map +1 -1
  457. package/build/use-resize-observer.js +2 -1
  458. package/build/use-router.d.ts.map +1 -1
  459. package/build/use-router.js +2 -1
  460. package/build/use-screen-layout.d.ts +7 -2
  461. package/build/use-screen-layout.d.ts.map +1 -1
  462. package/build/use-screen-layout.js +8 -5
  463. package/build/use-shape.js +2 -1
  464. package/build/use-styles.d.ts +11 -5
  465. package/build/use-styles.d.ts.map +1 -1
  466. package/build/use-styles.js +16 -9
  467. package/build/use-updated-event.d.ts +66 -182
  468. package/build/use-updated-event.d.ts.map +1 -1
  469. package/build/use-updated-event.js +22 -18
  470. package/build/use-validation-errors.d.ts.map +1 -1
  471. package/build/use-validation-errors.js +2 -1
  472. package/build/utils/button.d.ts +14 -0
  473. package/build/utils/button.d.ts.map +1 -1
  474. package/build/utils/button.js +24 -7
  475. package/build/utils/card.d.ts +9 -0
  476. package/build/utils/card.d.ts.map +1 -1
  477. package/build/utils/card.js +13 -2
  478. package/build/utils/checkbox.d.ts +12 -0
  479. package/build/utils/checkbox.d.ts.map +1 -1
  480. package/build/utils/checkbox.js +18 -4
  481. package/build/utils/checkboxes.d.ts +25 -0
  482. package/build/utils/checkboxes.d.ts.map +1 -1
  483. package/build/utils/checkboxes.js +29 -3
  484. package/build/utils/default-style.d.ts +10 -4
  485. package/build/utils/default-style.d.ts.map +1 -1
  486. package/build/utils/default-style.js +12 -4
  487. package/build/utils/header.d.ts +6 -1
  488. package/build/utils/header.d.ts.map +1 -1
  489. package/build/utils/header.js +4 -2
  490. package/build/utils/icon.d.ts +7 -6
  491. package/build/utils/icon.d.ts.map +1 -1
  492. package/build/utils/icon.js +12 -11
  493. package/build/utils/invalid-feedback.d.ts +4 -0
  494. package/build/utils/invalid-feedback.d.ts.map +1 -1
  495. package/build/utils/invalid-feedback.js +8 -2
  496. package/build/utils/modal.d.ts +2 -0
  497. package/build/utils/modal.d.ts.map +1 -1
  498. package/build/utils/modal.js +9 -7
  499. package/build/utils/text.d.ts +8 -1
  500. package/build/utils/text.d.ts.map +1 -1
  501. package/build/utils/text.js +9 -2
  502. package/build/validation-error.d.ts +5 -2
  503. package/build/validation-error.d.ts.map +1 -1
  504. package/build/validation-error.js +5 -2
  505. package/build/validation-errors.d.ts +57 -15
  506. package/build/validation-errors.d.ts.map +1 -1
  507. package/build/validation-errors.js +37 -8
  508. package/build/websocket-request-client.d.ts +61 -15
  509. package/build/websocket-request-client.d.ts.map +1 -1
  510. package/build/websocket-request-client.js +35 -9
  511. package/build/with-api-maker.d.ts.map +1 -1
  512. package/build/with-api-maker.js +2 -1
  513. package/build/with-collection.d.ts.map +1 -1
  514. package/build/with-collection.js +2 -1
  515. package/build/with-current-user.d.ts.map +1 -1
  516. package/build/with-current-user.js +2 -1
  517. package/build/with-model.d.ts.map +1 -1
  518. package/build/with-model.js +2 -1
  519. package/build/with-router.d.ts.map +1 -1
  520. package/build/with-router.js +2 -1
  521. package/package.json +4 -3
  522. package/build/base-component.d.ts +0 -5
  523. package/build/base-component.d.ts.map +0 -1
  524. package/build/base-component.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"AA0BA,sBAAsB;AACtB;IACE,wBAAwB;IACxB,yCAEC;IAED,gCAAgC;IAChC,kBADc,cAAc,CAO3B;IAED,cAAc;IACd,4EAEC;IAED,oBAAoB;IACpB,iDAaC;IAED,gBAAgB;IAChB,iCAKC;IAED,0BAA0B;IAC1B,2BADc,MAAM,EAAE,CAGrB;IAED;;;OA8BC;IAED;;;;;OAKG;IACH,6BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,GAAG,CAAC,CAgBxB;IAED,qBAAqB;IACrB,kDAMC;IASD,oBAAoB;IACpB,qCAEC;IAED,wCAqBC;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAaxC;IAED;;;OAGG;IACH,uDAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CASxC;IAED;;;;;OAKG;IACH,qCAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,GAAG,CAAC,CAIxB;IAED;;;;;OAKG;IACH,+CAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAIzB;IAtFD,uBAAuB;IACvB,qCAIC;IAqFC,aAAkB;IAGpB,uBAAuB;IACvB,iCAMC;IAED,6BAA6B;IAC7B,2CAMC;IAED,wBAAwB;IACxB,kCAkBC;CACF"}
1
+ {"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"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"}
package/build/devise.js CHANGED
@@ -1,3 +1,4 @@
1
+ // @ts-check
1
2
  import * as inflection from "inflection"; // eslint-disable-line sort-imports
2
3
  import CableConnectionPool from "./cable-connection-pool.js";
3
4
  import { createContext } from "react";
@@ -6,23 +7,44 @@ import events from "./events.js";
6
7
  import modelClassRequire from "./model-class-require.js";
7
8
  import SessionStatusUpdater from "./session-status-updater.js"; // eslint-disable-line sort-imports
8
9
  import Services from "./services.js"; // eslint-disable-line sort-imports
10
+ /** @typedef {{scopes?: Record<string, boolean>, currentApiMakerDevise?: ApiMakerDevise}} ApiMakerDeviseShared */
11
+ /** @typedef {{signed_in: boolean}} DeviseSessionStatusScope */
12
+ /**
13
+ * @typedef {object} DeviseSessionStatusResult
14
+ * @property {string} [csrf_token]
15
+ * @property {Record<string, DeviseSessionStatusScope>} scopes
16
+ * @property {string} [shadow_session_token]
17
+ * @property {DeviseSessionStatusResult} [session_status]
18
+ */
19
+ /** @typedef {{rememberMe?: boolean, scope?: string, signedIn?: boolean, skipSignInEvent?: boolean}} DeviseScopeArgs */
20
+ /** @typedef {DeviseSessionStatusResult & {model?: import("./base-model.js").default | import("./base-model.js").default[]}} DeviseSignInResponse */
21
+ /** @typedef {{httpResponse: DeviseSessionStatusResult, scope: string, websocketArgs: DeviseScopeArgs}} SyncSessionArgs */
22
+ /** @typedef {import("./base-model.js").default | null} DeviseCurrentScope */
9
23
  if (!globalThis.ApiMakerDevise)
10
24
  globalThis.ApiMakerDevise = { scopes: {} };
11
- const shared = globalThis.ApiMakerDevise;
25
+ const shared = /** @type {ApiMakerDeviseShared} */ (globalThis.ApiMakerDevise);
12
26
  /** DeviseScope. */
13
27
  class DeviseScope {
14
- /** Constructor. */
28
+ /**
29
+ * Constructor.
30
+ * @param {string} scope
31
+ * @param {DeviseScopeArgs} args
32
+ */
15
33
  constructor(scope, args) {
16
34
  this.args = args;
17
35
  this.context = createContext(undefined);
18
36
  this.scope = scope;
19
37
  }
20
- /** getContext. */
38
+ /** @returns {import("react").Context<DeviseCurrentScope | undefined>} */
21
39
  getContext = () => this.context;
22
40
  }
23
41
  /** ApiMakerDevise. */
24
42
  export default class ApiMakerDevise {
25
- /** callSignOutEvent. */
43
+ /**
44
+ * Emits the shared sign-out event payload for one scope.
45
+ * @param {DeviseScopeArgs} args
46
+ * @returns {void}
47
+ */
26
48
  static callSignOutEvent(args) {
27
49
  events.emit("onDeviseSignOut", { args });
28
50
  }
@@ -33,11 +55,18 @@ export default class ApiMakerDevise {
33
55
  }
34
56
  return shared.currentApiMakerDevise;
35
57
  }
36
- /** events. */
58
+ /**
59
+ * Returns the shared event emitter used for Devise lifecycle events.
60
+ * @returns {typeof events}
61
+ */
37
62
  static events() {
38
63
  return events;
39
64
  }
40
- /** addUserScope. */
65
+ /**
66
+ * Registers one Devise scope and its helper accessors.
67
+ * @param {string} scope
68
+ * @param {DeviseScopeArgs} args
69
+ */
41
70
  static addUserScope(scope, args = {}) {
42
71
  const scopeCamelized = inflection.camelize(scope);
43
72
  const currentMethodName = `current${scopeCamelized}`;
@@ -51,7 +80,11 @@ export default class ApiMakerDevise {
51
80
  ApiMakerDevise[getArgsMethodName] = () => args;
52
81
  ApiMakerDevise[getScopeName] = () => scopeInstance;
53
82
  }
54
- /** getScope. */
83
+ /**
84
+ * Returns the registered scope helper for one scope name.
85
+ * @param {string} scope
86
+ * @returns {DeviseScope}
87
+ */
55
88
  static getScope(scope) {
56
89
  const scopeCamelized = inflection.camelize(scope);
57
90
  const getScopeName = `get${scopeCamelized}Scope`;
@@ -61,13 +94,20 @@ export default class ApiMakerDevise {
61
94
  static registeredScopes() {
62
95
  return Object.keys(shared.scopes);
63
96
  }
97
+ /**
98
+ * Signs in one scope over HTTP and refreshes websocket auth state.
99
+ * @param {string} username
100
+ * @param {string} password
101
+ * @param {DeviseScopeArgs} args
102
+ * @returns {Promise<{model: import("./base-model.js").default | undefined, response: DeviseSignInResponse}>}
103
+ */
64
104
  static async signIn(username, password, args = {}) {
65
105
  if (!args.scope)
66
106
  args.scope = "user";
67
107
  const postData = { username, password, args };
68
108
  // Sign in over HTTP first so Devise can write the real session cookie and
69
109
  // remember-me token in the HTTP response.
70
- const response = await Services.current().sendRequest("Devise::SignIn", postData, { forceHttp: true });
110
+ const response = /** @type {DeviseSignInResponse} */ (await Services.current().sendRequest("Devise::SignIn", postData, { forceHttp: true }));
71
111
  let model = response.model;
72
112
  if (Array.isArray(model))
73
113
  model = model[0];
@@ -89,13 +129,13 @@ export default class ApiMakerDevise {
89
129
  /**
90
130
  * Synchronizes the current backend auth state into real HTTP response cookies.
91
131
  *
92
- * @param {Record<string, any>} [args]
93
- * @returns {Promise<any>}
132
+ * @param {DeviseScopeArgs} [args]
133
+ * @returns {Promise<DeviseSessionStatusResult>}
94
134
  */
95
135
  static async persistSession(args = {}) {
96
136
  if (!args.scope)
97
137
  args.scope = "user";
98
- const response = await Services.current().sendRequest("Devise::PersistSession", args, { forceHttp: true });
138
+ const response = /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::PersistSession", args, { forceHttp: true }));
99
139
  const sessionStatusUpdater = SessionStatusUpdater.current();
100
140
  if (response.session_status) {
101
141
  sessionStatusUpdater.applyResult(response.session_status);
@@ -105,27 +145,43 @@ export default class ApiMakerDevise {
105
145
  }
106
146
  return response;
107
147
  }
108
- /** updateSession. */
148
+ /**
149
+ * Updates the locally cached current model for one scope.
150
+ * @param {DeviseCurrentScope} model
151
+ * @param {DeviseScopeArgs} args
152
+ */
109
153
  static updateSession(model, args = {}) {
110
154
  if (!args.scope)
111
155
  args.scope = "user";
112
156
  const camelizedScopeName = inflection.camelize(args.scope, true);
113
157
  ApiMakerDevise.current().currents[camelizedScopeName] = model;
114
158
  }
115
- /** hasCurrentScope. */
159
+ /**
160
+ * Returns whether the current scope cache has been initialized locally.
161
+ * @param {string} scope
162
+ * @returns {boolean}
163
+ */
116
164
  hasCurrentScope(scope) {
117
165
  const camelizedScopeName = inflection.camelize(scope, true);
118
166
  return camelizedScopeName in ApiMakerDevise.current().currents;
119
167
  }
120
- /** setSignedOut. */
168
+ /**
169
+ * Marks one scope as signed out in the local current-model cache.
170
+ * @param {DeviseScopeArgs} args
171
+ */
121
172
  static setSignedOut(args) {
122
173
  ApiMakerDevise.current().currents[inflection.camelize(args.scope, true)] = null;
123
174
  }
175
+ /**
176
+ * Signs out one scope over HTTP and refreshes websocket auth state.
177
+ * @param {DeviseScopeArgs} args
178
+ * @returns {Promise<DeviseSessionStatusResult>}
179
+ */
124
180
  static async signOut(args = {}) {
125
181
  if (!args.scope) {
126
182
  args.scope = "user";
127
183
  }
128
- const response = await Services.current().sendRequest("Devise::SignOut", { args }, { forceHttp: true });
184
+ const response = /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::SignOut", { args }, { forceHttp: true }));
129
185
  const sessionStatus = await ApiMakerDevise.syncSessionStatusAndRefreshWebsocket({
130
186
  httpResponse: response,
131
187
  scope: args.scope,
@@ -144,8 +200,8 @@ export default class ApiMakerDevise {
144
200
  * Applies the latest HTTP session status locally, then refreshes the
145
201
  * existing websocket connection so ApiMaker commands use the same auth.
146
202
  *
147
- * @param {Record<string, any>} args
148
- * @returns {Promise<Record<string, any>>}
203
+ * @param {SyncSessionArgs} args
204
+ * @returns {Promise<DeviseSessionStatusResult>}
149
205
  */
150
206
  static async syncSessionStatusAndRefreshWebsocket(args) {
151
207
  const sessionStatus = await ApiMakerDevise.syncSessionStatusFromHttpResponse(args.httpResponse);
@@ -158,8 +214,9 @@ export default class ApiMakerDevise {
158
214
  return sessionStatus;
159
215
  }
160
216
  /**
161
- * @param {Record<string, any>} httpResponse
162
- * @returns {Promise<Record<string, any>>}
217
+ * Updates local session status from one HTTP response payload.
218
+ * @param {DeviseSessionStatusResult} httpResponse
219
+ * @returns {Promise<DeviseSessionStatusResult>}
163
220
  */
164
221
  static async syncSessionStatusFromHttpResponse(httpResponse) {
165
222
  const sessionStatusUpdater = SessionStatusUpdater.current();
@@ -170,16 +227,16 @@ export default class ApiMakerDevise {
170
227
  /**
171
228
  * Refreshes ApiMaker auth inside the existing websocket connection.
172
229
  *
173
- * @param {Record<string, any>} args
174
- * @returns {Promise<any>}
230
+ * @param {DeviseScopeArgs & {shadowSessionToken?: string}} args
231
+ * @returns {Promise<DeviseSessionStatusResult>}
175
232
  */
176
233
  static async refreshWebsocketSession(args) {
177
- return Services.current().sendRequest("Devise::PersistSession", args);
234
+ return /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::PersistSession", args));
178
235
  }
179
236
  /**
180
237
  * Refreshes auth on the existing subscriptions channel pools.
181
238
  *
182
- * @param {Record<string, any>} args
239
+ * @param {DeviseScopeArgs & {shadowSessionToken?: string}} args
183
240
  * @returns {Promise<void>}
184
241
  */
185
242
  static async refreshSubscriptionAuthentication(args) {
@@ -187,23 +244,35 @@ export default class ApiMakerDevise {
187
244
  }
188
245
  /** Constructor. */
189
246
  constructor() {
190
- this.currents = {};
247
+ this.currents = /** @type {Record<string, DeviseCurrentScope>} */ ({});
191
248
  }
192
- /** getCurrentScope. */
249
+ /**
250
+ * Returns the current model cached for one scope.
251
+ * @param {string} scope
252
+ * @returns {DeviseCurrentScope}
253
+ */
193
254
  getCurrentScope(scope) {
194
255
  if (!(scope in this.currents)) {
195
256
  this.currents[scope] = this.loadCurrentScope(scope);
196
257
  }
197
258
  return this.currents[scope];
198
259
  }
199
- /** hasGlobalCurrentScope. */
260
+ /**
261
+ * Returns whether the server rendered current-scope payload for one scope.
262
+ * @param {string} scope
263
+ * @returns {boolean}
264
+ */
200
265
  hasGlobalCurrentScope(scope) {
201
266
  if (globalThis.apiMakerDeviseCurrent && scope in globalThis.apiMakerDeviseCurrent) {
202
267
  return true;
203
268
  }
204
269
  return false;
205
270
  }
206
- /** loadCurrentScope. */
271
+ /**
272
+ * Hydrates the current scope model from the server rendered payload.
273
+ * @param {string} scope
274
+ * @returns {DeviseCurrentScope}
275
+ */
207
276
  loadCurrentScope(scope) {
208
277
  if (!this.hasGlobalCurrentScope(scope)) {
209
278
  return null;
@@ -220,4 +289,4 @@ export default class ApiMakerDevise {
220
289
  return modelInstance;
221
290
  }
222
291
  }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUEsQ0FBQyxtQ0FBbUM7QUFDNUUsT0FBTyxtQkFBbUIsTUFBTSw0QkFBNEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ25DLE9BQU8sWUFBWSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbUNBQW1DO0FBQ2hGLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGlCQUFpQixNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sb0JBQW9CLE1BQU0sNkJBQTZCLENBQUEsQ0FBQyxtQ0FBbUM7QUFDbEcsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFBLENBQUMsbUNBQW1DO0FBRXhFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYztJQUFFLFVBQVUsQ0FBQyxjQUFjLEdBQUcsRUFBQyxNQUFNLEVBQUUsRUFBRSxFQUFDLENBQUE7QUFFeEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQTtBQUV4QyxtQkFBbUI7QUFDbkIsTUFBTSxXQUFXO0lBQ2YsbUJBQW1CO0lBQ25CLFlBQVksS0FBSyxFQUFFLElBQUk7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtDQUNoQztBQUVELHNCQUFzQjtBQUN0QixNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMsd0JBQXdCO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0Is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SSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV6RCxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRTNCLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckQscURBQXFEO1FBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IENhYmxlQ29ubmVjdGlvblBvb2wgZnJvbSBcIi4vY2FibGUtY29ubmVjdGlvbi1wb29sLmpzXCJcbmltcG9ydCB7Y3JlYXRlQ29udGV4dH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXNlcmlhbGl6ZXIgZnJvbSBcIi4vZGVzZXJpYWxpemVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBldmVudHMgZnJvbSBcIi4vZXZlbnRzLmpzXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcbmltcG9ydCBTZXNzaW9uU3RhdHVzVXBkYXRlciBmcm9tIFwiLi9zZXNzaW9uLXN0YXR1cy11cGRhdGVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlcy5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSBnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlXG5cbi8qKiBEZXZpc2VTY29wZS4gKi9cbmNsYXNzIERldmlzZVNjb3BlIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3RvcihzY29wZSwgYXJncykge1xuICAgIHRoaXMuYXJncyA9IGFyZ3NcbiAgICB0aGlzLmNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLnNjb3BlID0gc2NvcGVcbiAgfVxuXG4gIC8qKiBnZXRDb250ZXh0LiAqL1xuICBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5jb250ZXh0XG59XG5cbi8qKiBBcGlNYWtlckRldmlzZS4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyRGV2aXNlIHtcbiAgLyoqIGNhbGxTaWduT3V0RXZlbnQuICovXG4gIHN0YXRpYyBjYWxsU2lnbk91dEV2ZW50KGFyZ3MpIHtcbiAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbk91dFwiLCB7YXJnc30pXG4gIH1cblxuICAvKiogQHJldHVybnMge0FwaU1ha2VyRGV2aXNlfSAqL1xuICBzdGF0aWMgY3VycmVudCgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UpIHtcbiAgICAgIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UgPSBuZXcgQXBpTWFrZXJEZXZpc2UoKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlXG4gIH1cblxuICAvKiogZXZlbnRzLiAqL1xuICBzdGF0aWMgZXZlbnRzKCkge1xuICAgIHJldHVybiBldmVudHNcbiAgfVxuXG4gIC8qKiBhZGRVc2VyU2NvcGUuICovXG4gIHN0YXRpYyBhZGRVc2VyU2NvcGUoc2NvcGUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IHNjb3BlQ2FtZWxpemVkID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSlcbiAgICBjb25zdCBjdXJyZW50TWV0aG9kTmFtZSA9IGBjdXJyZW50JHtzY29wZUNhbWVsaXplZH1gXG4gICAgY29uc3QgaXNTaWduZWRJbk1ldGhvZE5hbWUgPSBgaXMke3Njb3BlQ2FtZWxpemVkfVNpZ25lZEluYFxuICAgIGNvbnN0IGdldEFyZ3NNZXRob2ROYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9QXJnc2BcbiAgICBjb25zdCBnZXRTY29wZU5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1TY29wZWBcbiAgICBjb25zdCBzY29wZUluc3RhbmNlID0gbmV3IERldmlzZVNjb3BlKHNjb3BlLCBhcmdzKVxuXG4gICAgc2hhcmVkLnNjb3Blc1tzY29wZV0gPSB0cnVlXG4gICAgQXBpTWFrZXJEZXZpc2VbY3VycmVudE1ldGhvZE5hbWVdID0gKCkgPT4gQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmdldEN1cnJlbnRTY29wZShzY29wZSlcbiAgICBBcGlNYWtlckRldmlzZVtpc1NpZ25lZEluTWV0aG9kTmFtZV0gPSAoKSA9PiBCb29sZWFuKEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpKVxuICAgIEFwaU1ha2VyRGV2aXNlW2dldEFyZ3NNZXRob2ROYW1lXSA9ICgpID0+IGFyZ3NcbiAgICBBcGlNYWtlckRldmlzZVtnZXRTY29wZU5hbWVdID0gKCkgPT4gc2NvcGVJbnN0YW5jZVxuICB9XG5cbiAgLyoqIGdldFNjb3BlLiAqL1xuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ1tdfSAqL1xuICBzdGF0aWMgcmVnaXN0ZXJlZFNjb3BlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2hhcmVkLnNjb3BlcylcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBzaWduSW4odXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgY29uc3QgcG9zdERhdGEgPSB7dXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzfVxuXG4gICAgLy8gU2lnbiBpbiBvdmVyIEhUVFAgZmlyc3Qgc28gRGV2aXNlIGNhbiB3cml0ZSB0aGUgcmVhbCBzZXNzaW9uIGNvb2tpZSBhbmRcbiAgICAvLyByZW1lbWJlci1tZSB0b2tlbiBpbiB0aGUgSFRUUCByZXNwb25zZS5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbkluXCIsIHBvc3REYXRhLCB7Zm9yY2VIdHRwOiB0cnVlfSlcblxuICAgIGxldCBtb2RlbCA9IHJlc3BvbnNlLm1vZGVsXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RlbCkpIG1vZGVsID0gbW9kZWxbMF1cblxuICAgIGF3YWl0IEFwaU1ha2VyRGV2aXNlLnN5bmNTZXNzaW9uU3RhdHVzQW5kUmVmcmVzaFdlYnNvY2tldCh7XG4gICAgICBodHRwUmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICB3ZWJzb2NrZXRBcmdzOiB7XG4gICAgICAgIHJlbWVtYmVyTWU6IGFyZ3MucmVtZW1iZXJNZSxcbiAgICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICAgIHNpZ25lZEluOiB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIEFwaU1ha2VyRGV2aXNlLnVwZGF0ZVNlc3Npb24obW9kZWwpXG5cbiAgICBpZiAoIWFyZ3Muc2tpcFNpZ25JbkV2ZW50KSB7XG4gICAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbkluXCIsIHt1c2VybmFtZSwgLi4uYXJnc30pXG4gICAgfVxuXG4gICAgcmV0dXJuIHttb2RlbCwgcmVzcG9uc2V9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pemVzIHRoZSBjdXJyZW50IGJhY2tlbmQgYXV0aCBzdGF0ZSBpbnRvIHJlYWwgSFRUUCByZXNwb25zZSBjb29raWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHBlcnNpc3RTZXNzaW9uKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6UGVyc2lzdFNlc3Npb25cIiwgYXJncywge2ZvcmNlSHR0cDogdHJ1ZX0pXG5cbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzVXBkYXRlciA9IFNlc3Npb25TdGF0dXNVcGRhdGVyLmN1cnJlbnQoKVxuXG4gICAgaWYgKHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKSB7XG4gICAgICBzZXNzaW9uU3RhdHVzVXBkYXRlci5hcHBseVJlc3VsdChyZXNwb25zZS5zZXNzaW9uX3N0YXR1cylcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgc2Vzc2lvblN0YXR1c1VwZGF0ZXIudXBkYXRlU2Vzc2lvblN0YXR1cygpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH1cblxuICAvKiogdXBkYXRlU2Vzc2lvbi4gKi9cbiAgc3RhdGljIHVwZGF0ZVNlc3Npb24obW9kZWwsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXG5cbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbY2FtZWxpemVkU2NvcGVOYW1lXSA9IG1vZGVsXG4gIH1cblxuICAvKiogaGFzQ3VycmVudFNjb3BlLiAqL1xuICBoYXNDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlLCB0cnVlKVxuXG4gICAgcmV0dXJuIGNhbWVsaXplZFNjb3BlTmFtZSBpbiBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNcbiAgfVxuXG4gIC8qKiBzZXRTaWduZWRPdXQuICovXG4gIHN0YXRpYyBzZXRTaWduZWRPdXQoYXJncykge1xuICAgIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1tpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXSA9IG51bGxcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBzaWduT3V0KGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkge1xuICAgICAgYXJncy5zY29wZSA9IFwidXNlclwiXG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlNpZ25PdXRcIiwge2FyZ3N9LCB7Zm9yY2VIdHRwOiB0cnVlfSlcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICAgIHNpZ25lZEluOiBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoIXNlc3Npb25TdGF0dXMuc2NvcGVzPy5bYXJncy5zY29wZV0/LnNpZ25lZF9pbikge1xuICAgICAgQXBpTWFrZXJEZXZpc2Uuc2V0U2lnbmVkT3V0KGFyZ3MpXG4gICAgICBBcGlNYWtlckRldmlzZS5jYWxsU2lnbk91dEV2ZW50KGFyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgbGF0ZXN0IEhUVFAgc2Vzc2lvbiBzdGF0dXMgbG9jYWxseSwgdGhlbiByZWZyZXNoZXMgdGhlXG4gICAqIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uIHNvIEFwaU1ha2VyIGNvbW1hbmRzIHVzZSB0aGUgc2FtZSBhdXRoLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KGFyZ3MpIHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNGcm9tSHR0cFJlc3BvbnNlKGFyZ3MuaHR0cFJlc3BvbnNlKVxuICAgIGNvbnN0IHdlYnNvY2tldEFyZ3MgPSB7XG4gICAgICAuLi5hcmdzLndlYnNvY2tldEFyZ3MsXG4gICAgICBzaGFkb3dTZXNzaW9uVG9rZW46IHNlc3Npb25TdGF0dXMuc2hhZG93X3Nlc3Npb25fdG9rZW5cbiAgICB9XG5cbiAgICBhd2FpdCBBcGlNYWtlckRldmlzZS5yZWZyZXNoV2Vic29ja2V0U2Vzc2lvbih3ZWJzb2NrZXRBcmdzKVxuICAgIGF3YWl0IEFwaU1ha2VyRGV2aXNlLnJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbih3ZWJzb2NrZXRBcmdzKVxuXG4gICAgcmV0dXJuIHNlc3Npb25TdGF0dXNcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGh0dHBSZXNwb25zZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzeW5jU2Vzc2lvblN0YXR1c0Zyb21IdHRwUmVzcG9uc2UoaHR0cFJlc3BvbnNlKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1c1VwZGF0ZXIgPSBTZXNzaW9uU3RhdHVzVXBkYXRlci5jdXJyZW50KClcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gaHR0cFJlc3BvbnNlLnNlc3Npb25fc3RhdHVzIHx8IGF3YWl0IHNlc3Npb25TdGF0dXNVcGRhdGVyLnNlc3Npb25TdGF0dXMoKVxuXG4gICAgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuYXBwbHlSZXN1bHQoc2Vzc2lvblN0YXR1cylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIEFwaU1ha2VyIGF1dGggaW5zaWRlIHRoZSBleGlzdGluZyB3ZWJzb2NrZXQgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcmVmcmVzaFdlYnNvY2tldFNlc3Npb24oYXJncykge1xuICAgIHJldHVybiBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIGF1dGggb24gdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgY2hhbm5lbCBwb29scy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbihhcmdzKSB7XG4gICAgYXdhaXQgQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkucmVmcmVzaEF1dGhlbnRpY2F0aW9uKGFyZ3MpXG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSB7fVxuICB9XG5cbiAgLyoqIGdldEN1cnJlbnRTY29wZS4gKi9cbiAgZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKCEoc2NvcGUgaW4gdGhpcy5jdXJyZW50cykpIHtcbiAgICAgIHRoaXMuY3VycmVudHNbc2NvcGVdID0gdGhpcy5sb2FkQ3VycmVudFNjb3BlKHNjb3BlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRzW3Njb3BlXVxuICB9XG5cbiAgLyoqIGhhc0dsb2JhbEN1cnJlbnRTY29wZS4gKi9cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqIGxvYWRDdXJyZW50U2NvcGUuICovXG4gIGxvYWRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZURhdGEgPSBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudFtzY29wZV1cblxuICAgIGlmICghc2NvcGVEYXRhKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGFyc2VkU2NvcGVEYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHNjb3BlRGF0YSlcblxuICAgIC8vIE1pZ2h0IGJlIGEgY29sbGVjdGlvbiB3aXRoIHByZWxvYWRlZCByZWxhdGlvbnNoaXBzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkU2NvcGVEYXRhKSkgcmV0dXJuIHBhcnNlZFNjb3BlRGF0YVswXVxuXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKHNjb3BlKVxuICAgIGNvbnN0IG1vZGVsSW5zdGFuY2UgPSBuZXcgTW9kZWxDbGFzcyh7ZGF0YTogcGFyc2VkU2NvcGVEYXRhfSlcblxuICAgIHJldHVybiBtb2RlbEluc3RhbmNlXG4gIH1cbn1cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBLENBQUMsbUNBQW1DO0FBQzVFLE9BQU8sbUJBQW1CLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQSxDQUFDLG1DQUFtQztBQUNoRixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBLENBQUMsbUNBQW1DO0FBQ2xHLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQSxDQUFDLG1DQUFtQztBQUV4RSxpSEFBaUg7QUFDakgsK0RBQStEO0FBQy9EOzs7Ozs7R0FNRztBQUNILHVIQUF1SDtBQUN2SCxvSkFBb0o7QUFDcEosMEhBQTBIO0FBQzFILDZFQUE2RTtBQUU3RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7SUFBRSxVQUFVLENBQUMsY0FBYyxHQUFHLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFBO0FBRXhFLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTlFLG1CQUFtQjtBQUNuQixNQUFNLFdBQVc7SUFDZjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLFVBQVUs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RCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsS0FBSztRQUN6QixJQUFJLFVBQVUsQ0FBQyxxQkFBcUIsSUFBSSxLQUFLLElBQUksVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbEYsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV6RCxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRTNCLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckQscURBQXFEO1FBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgQ2FibGVDb25uZWN0aW9uUG9vbCBmcm9tIFwiLi9jYWJsZS1jb25uZWN0aW9uLXBvb2wuanNcIlxuaW1wb3J0IHtjcmVhdGVDb250ZXh0fSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IGV2ZW50cyBmcm9tIFwiLi9ldmVudHMuanNcIlxuaW1wb3J0IG1vZGVsQ2xhc3NSZXF1aXJlIGZyb20gXCIuL21vZGVsLWNsYXNzLXJlcXVpcmUuanNcIlxuaW1wb3J0IFNlc3Npb25TdGF0dXNVcGRhdGVyIGZyb20gXCIuL3Nlc3Npb24tc3RhdHVzLXVwZGF0ZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IFNlcnZpY2VzIGZyb20gXCIuL3NlcnZpY2VzLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcblxuLyoqIEB0eXBlZGVmIHt7c2NvcGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sIGN1cnJlbnRBcGlNYWtlckRldmlzZT86IEFwaU1ha2VyRGV2aXNlfX0gQXBpTWFrZXJEZXZpc2VTaGFyZWQgKi9cbi8qKiBAdHlwZWRlZiB7e3NpZ25lZF9pbjogYm9vbGVhbn19IERldmlzZVNlc3Npb25TdGF0dXNTY29wZSAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NzcmZfdG9rZW5dXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIERldmlzZVNlc3Npb25TdGF0dXNTY29wZT59IHNjb3Blc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzaGFkb3dfc2Vzc2lvbl90b2tlbl1cbiAqIEBwcm9wZXJ0eSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gW3Nlc3Npb25fc3RhdHVzXVxuICovXG4vKiogQHR5cGVkZWYge3tyZW1lbWJlck1lPzogYm9vbGVhbiwgc2NvcGU/OiBzdHJpbmcsIHNpZ25lZEluPzogYm9vbGVhbiwgc2tpcFNpZ25JbkV2ZW50PzogYm9vbGVhbn19IERldmlzZVNjb3BlQXJncyAqL1xuLyoqIEB0eXBlZGVmIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0ICYge21vZGVsPzogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfCBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdFtdfX0gRGV2aXNlU2lnbkluUmVzcG9uc2UgKi9cbi8qKiBAdHlwZWRlZiB7e2h0dHBSZXNwb25zZTogRGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdCwgc2NvcGU6IHN0cmluZywgd2Vic29ja2V0QXJnczogRGV2aXNlU2NvcGVBcmdzfX0gU3luY1Nlc3Npb25BcmdzICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IHwgbnVsbH0gRGV2aXNlQ3VycmVudFNjb3BlICovXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSAvKiogQHR5cGUge0FwaU1ha2VyRGV2aXNlU2hhcmVkfSAqLyAoZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSlcblxuLyoqIERldmlzZVNjb3BlLiAqL1xuY2xhc3MgRGV2aXNlU2NvcGUge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGUsIGFyZ3MpIHtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlXG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcInJlYWN0XCIpLkNvbnRleHQ8RGV2aXNlQ3VycmVudFNjb3BlIHwgdW5kZWZpbmVkPn0gKi9cbiAgZ2V0Q29udGV4dCA9ICgpID0+IHRoaXMuY29udGV4dFxufVxuXG4vKiogQXBpTWFrZXJEZXZpc2UuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckRldmlzZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2hhcmVkIHNpZ24tb3V0IGV2ZW50IHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgY2FsbFNpZ25PdXRFdmVudChhcmdzKSB7XG4gICAgZXZlbnRzLmVtaXQoXCJvbkRldmlzZVNpZ25PdXRcIiwge2FyZ3N9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcGlNYWtlckRldmlzZX0gKi9cbiAgc3RhdGljIGN1cnJlbnQoKSB7XG4gICAgaWYgKCFzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlKSB7XG4gICAgICBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlID0gbmV3IEFwaU1ha2VyRGV2aXNlKClcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNoYXJlZCBldmVudCBlbWl0dGVyIHVzZWQgZm9yIERldmlzZSBsaWZlY3ljbGUgZXZlbnRzLlxuICAgKiBAcmV0dXJucyB7dHlwZW9mIGV2ZW50c31cbiAgICovXG4gIHN0YXRpYyBldmVudHMoKSB7XG4gICAgcmV0dXJuIGV2ZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBvbmUgRGV2aXNlIHNjb3BlIGFuZCBpdHMgaGVscGVyIGFjY2Vzc29ycy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqL1xuICBzdGF0aWMgYWRkVXNlclNjb3BlKHNjb3BlLCBhcmdzID0ge30pIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgY3VycmVudE1ldGhvZE5hbWUgPSBgY3VycmVudCR7c2NvcGVDYW1lbGl6ZWR9YFxuICAgIGNvbnN0IGlzU2lnbmVkSW5NZXRob2ROYW1lID0gYGlzJHtzY29wZUNhbWVsaXplZH1TaWduZWRJbmBcbiAgICBjb25zdCBnZXRBcmdzTWV0aG9kTmFtZSA9IGBnZXQke3Njb3BlQ2FtZWxpemVkfUFyZ3NgXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG4gICAgY29uc3Qgc2NvcGVJbnN0YW5jZSA9IG5ldyBEZXZpc2VTY29wZShzY29wZSwgYXJncylcblxuICAgIHNoYXJlZC5zY29wZXNbc2NvcGVdID0gdHJ1ZVxuICAgIEFwaU1ha2VyRGV2aXNlW2N1cnJlbnRNZXRob2ROYW1lXSA9ICgpID0+IEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG4gICAgQXBpTWFrZXJEZXZpc2VbaXNTaWduZWRJbk1ldGhvZE5hbWVdID0gKCkgPT4gQm9vbGVhbihBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSlcbiAgICBBcGlNYWtlckRldmlzZVtnZXRBcmdzTWV0aG9kTmFtZV0gPSAoKSA9PiBhcmdzXG4gICAgQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSA9ICgpID0+IHNjb3BlSW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZWdpc3RlcmVkIHNjb3BlIGhlbHBlciBmb3Igb25lIHNjb3BlIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7RGV2aXNlU2NvcGV9XG4gICAqL1xuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ1tdfSAqL1xuICBzdGF0aWMgcmVnaXN0ZXJlZFNjb3BlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2hhcmVkLnNjb3BlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBpbiBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VybmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFzc3dvcmRcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8e21vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZCwgcmVzcG9uc2U6IERldmlzZVNpZ25JblJlc3BvbnNlfT59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2lnbkluKHVzZXJuYW1lLCBwYXNzd29yZCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHBvc3REYXRhID0ge3VzZXJuYW1lLCBwYXNzd29yZCwgYXJnc31cblxuICAgIC8vIFNpZ24gaW4gb3ZlciBIVFRQIGZpcnN0IHNvIERldmlzZSBjYW4gd3JpdGUgdGhlIHJlYWwgc2Vzc2lvbiBjb29raWUgYW5kXG4gICAgLy8gcmVtZW1iZXItbWUgdG9rZW4gaW4gdGhlIEhUVFAgcmVzcG9uc2UuXG4gICAgY29uc3QgcmVzcG9uc2UgPSAvKiogQHR5cGUge0RldmlzZVNpZ25JblJlc3BvbnNlfSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlNpZ25JblwiLCBwb3N0RGF0YSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuXG4gICAgbGV0IG1vZGVsID0gcmVzcG9uc2UubW9kZWxcblxuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgbW9kZWwgPSBtb2RlbFswXVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgcmVtZW1iZXJNZTogYXJncy5yZW1lbWJlck1lLFxuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcblxuICAgIGlmICghYXJncy5za2lwU2lnbkluRXZlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduSW5cIiwge3VzZXJuYW1lLCAuLi5hcmdzfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbml6ZXMgdGhlIGN1cnJlbnQgYmFja2VuZCBhdXRoIHN0YXRlIGludG8gcmVhbCBIVFRQIHJlc3BvbnNlIGNvb2tpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdD59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcGVyc2lzdFNlc3Npb24oYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MsIHtmb3JjZUh0dHA6IHRydWV9KVxuICAgIClcblxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXNVcGRhdGVyID0gU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpXG5cbiAgICBpZiAocmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMpIHtcbiAgICAgIHNlc3Npb25TdGF0dXNVcGRhdGVyLmFwcGx5UmVzdWx0KHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsb2NhbGx5IGNhY2hlZCBjdXJyZW50IG1vZGVsIGZvciBvbmUgc2NvcGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlQ3VycmVudFNjb3BlfSBtb2RlbFxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHVwZGF0ZVNlc3Npb24obW9kZWwsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXG5cbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbY2FtZWxpemVkU2NvcGVOYW1lXSA9IG1vZGVsXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBjdXJyZW50IHNjb3BlIGNhY2hlIGhhcyBiZWVuIGluaXRpYWxpemVkIGxvY2FsbHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0N1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGNvbnN0IGNhbWVsaXplZFNjb3BlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUsIHRydWUpXG5cbiAgICByZXR1cm4gY2FtZWxpemVkU2NvcGVOYW1lIGluIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIG9uZSBzY29wZSBhcyBzaWduZWQgb3V0IGluIHRoZSBsb2NhbCBjdXJyZW50LW1vZGVsIGNhY2hlLlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHNldFNpZ25lZE91dChhcmdzKSB7XG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2luZmxlY3Rpb24uY2FtZWxpemUoYXJncy5zY29wZSwgdHJ1ZSldID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIG91dCBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHNpZ25PdXQoYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSB7XG4gICAgICBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IC8qKiBAdHlwZSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gKi8gKFxuICAgICAgYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpTaWduT3V0XCIsIHthcmdzfSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBhd2FpdCBBcGlNYWtlckRldmlzZS5zeW5jU2Vzc2lvblN0YXR1c0FuZFJlZnJlc2hXZWJzb2NrZXQoe1xuICAgICAgaHR0cFJlc3BvbnNlOiByZXNwb25zZSxcbiAgICAgIHNjb3BlOiBhcmdzLnNjb3BlLFxuICAgICAgd2Vic29ja2V0QXJnczoge1xuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IGZhbHNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICghc2Vzc2lvblN0YXR1cy5zY29wZXM/LlthcmdzLnNjb3BlXT8uc2lnbmVkX2luKSB7XG4gICAgICBBcGlNYWtlckRldmlzZS5zZXRTaWduZWRPdXQoYXJncylcbiAgICAgIEFwaU1ha2VyRGV2aXNlLmNhbGxTaWduT3V0RXZlbnQoYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBsYXRlc3QgSFRUUCBzZXNzaW9uIHN0YXR1cyBsb2NhbGx5LCB0aGVuIHJlZnJlc2hlcyB0aGVcbiAgICogZXhpc3Rpbmcgd2Vic29ja2V0IGNvbm5lY3Rpb24gc28gQXBpTWFrZXIgY29tbWFuZHMgdXNlIHRoZSBzYW1lIGF1dGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3luY1Nlc3Npb25BcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzQW5kUmVmcmVzaFdlYnNvY2tldChhcmdzKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1cyA9IGF3YWl0IEFwaU1ha2VyRGV2aXNlLnN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShhcmdzLmh0dHBSZXNwb25zZSlcbiAgICBjb25zdCB3ZWJzb2NrZXRBcmdzID0ge1xuICAgICAgLi4uYXJncy53ZWJzb2NrZXRBcmdzLFxuICAgICAgc2hhZG93U2Vzc2lvblRva2VuOiBzZXNzaW9uU3RhdHVzLnNoYWRvd19zZXNzaW9uX3Rva2VuXG4gICAgfVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2UucmVmcmVzaFdlYnNvY2tldFNlc3Npb24od2Vic29ja2V0QXJncylcbiAgICBhd2FpdCBBcGlNYWtlckRldmlzZS5yZWZyZXNoU3Vic2NyaXB0aW9uQXV0aGVudGljYXRpb24od2Vic29ja2V0QXJncylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBsb2NhbCBzZXNzaW9uIHN0YXR1cyBmcm9tIG9uZSBIVFRQIHJlc3BvbnNlIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gaHR0cFJlc3BvbnNlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShodHRwUmVzcG9uc2UpIHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzVXBkYXRlciA9IFNlc3Npb25TdGF0dXNVcGRhdGVyLmN1cnJlbnQoKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBodHRwUmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMgfHwgYXdhaXQgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuc2Vzc2lvblN0YXR1cygpXG5cbiAgICBzZXNzaW9uU3RhdHVzVXBkYXRlci5hcHBseVJlc3VsdChzZXNzaW9uU3RhdHVzKVxuXG4gICAgcmV0dXJuIHNlc3Npb25TdGF0dXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgQXBpTWFrZXIgYXV0aCBpbnNpZGUgdGhlIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hXZWJzb2NrZXRTZXNzaW9uKGFyZ3MpIHtcbiAgICByZXR1cm4gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpQZXJzaXN0U2Vzc2lvblwiLCBhcmdzKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgYXV0aCBvbiB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9ucyBjaGFubmVsIHBvb2xzLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbihhcmdzKSB7XG4gICAgYXdhaXQgQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkucmVmcmVzaEF1dGhlbnRpY2F0aW9uKGFyZ3MpXG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIERldmlzZUN1cnJlbnRTY29wZT59ICovICh7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsIGNhY2hlZCBmb3Igb25lIHNjb3BlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGdldEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmICghKHNjb3BlIGluIHRoaXMuY3VycmVudHMpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRzW3Njb3BlXSA9IHRoaXMubG9hZEN1cnJlbnRTY29wZShzY29wZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50c1tzY29wZV1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNlcnZlciByZW5kZXJlZCBjdXJyZW50LXNjb3BlIHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHRoZSBjdXJyZW50IHNjb3BlIG1vZGVsIGZyb20gdGhlIHNlcnZlciByZW5kZXJlZCBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGxvYWRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZURhdGEgPSBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudFtzY29wZV1cblxuICAgIGlmICghc2NvcGVEYXRhKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGFyc2VkU2NvcGVEYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHNjb3BlRGF0YSlcblxuICAgIC8vIE1pZ2h0IGJlIGEgY29sbGVjdGlvbiB3aXRoIHByZWxvYWRlZCByZWxhdGlvbnNoaXBzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkU2NvcGVEYXRhKSkgcmV0dXJuIHBhcnNlZFNjb3BlRGF0YVswXVxuXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKHNjb3BlKVxuICAgIGNvbnN0IG1vZGVsSW5zdGFuY2UgPSBuZXcgTW9kZWxDbGFzcyh7ZGF0YTogcGFyc2VkU2NvcGVEYXRhfSlcblxuICAgIHJldHVybiBtb2RlbEluc3RhbmNlXG4gIH1cbn1cbiJdfQ==
@@ -1,53 +1,144 @@
1
+ /** @typedef {import("eventemitter3").EventEmitter} DraggableSortEventEmitter */
2
+ /** @typedef {import("react-native").LayoutRectangle} DraggableSortLayout */
3
+ /** @typedef {import("react-native").PanResponderGestureState} DraggableSortGestureState */
4
+ /** @typedef {{x: number, y: number}} DraggableSortPosition */
5
+ /** @typedef {(item: object) => string} DraggableSortKeyExtractor */
6
+ /**
7
+ * @typedef {object} DraggableSortItemData
8
+ * @property {number} index
9
+ * @property {object} item
10
+ * @property {number} position
11
+ * @property {number} [baseX]
12
+ * @property {DraggableSortEventEmitter} [events]
13
+ * @property {DraggableSortLayout} [initialLayout]
14
+ * @property {string} [key]
15
+ * @property {DraggableSortLayout} [layout]
16
+ */
17
+ /**
18
+ * @typedef {object} DraggableSortDragEndArgs
19
+ * @property {number} fromIndex
20
+ * @property {object} fromItem
21
+ * @property {number} fromPosition
22
+ * @property {object} item
23
+ * @property {DraggableSortItemData} itemData
24
+ * @property {object|null} toItem
25
+ * @property {number|null} toPosition
26
+ */
1
27
  /** Controller for drag-sort row state and events. */
2
28
  export default class DraggableSortController {
3
- /** Constructor. */
29
+ /**
30
+ * Set up drag-sort state for a list of draggable items.
31
+ * @param {object} root0
32
+ * @param {object[]} root0.data
33
+ * @param {DraggableSortEventEmitter} [root0.events]
34
+ * @param {DraggableSortKeyExtractor} root0.keyExtractor
35
+ */
4
36
  constructor({ data, events, keyExtractor }: {
5
- data: any;
6
- events: any;
7
- keyExtractor: any;
37
+ data: object[];
38
+ events?: DraggableSortEventEmitter;
39
+ keyExtractor: DraggableSortKeyExtractor;
8
40
  });
9
- data: any;
41
+ data: any[];
10
42
  currentOrder: any[];
11
- events: any;
12
- keyExtractor: any;
43
+ events: EventEmitter<string | symbol, any>;
44
+ keyExtractor: DraggableSortKeyExtractor;
13
45
  draggedItem: any;
14
- draggedItemData: any;
46
+ draggedItemData: DraggableSortItemData;
15
47
  draggedItemNewPosition: number;
16
48
  draggedOverItem: any;
17
- draggedOverItemData: any;
18
- itemData: {};
19
- /** getEvents. */
20
- getEvents: () => any;
21
- /** getItemDataForItem. */
22
- getItemDataForItem: (item: any) => any;
23
- /** getItemDataForKey. */
24
- getItemDataForKey: (key: any) => any;
25
- /** getItemDataForIndex. */
26
- getItemDataForIndex: (index: any) => any;
27
- /** onDragStart. */
49
+ draggedOverItemData: DraggableSortItemData;
50
+ itemData: Record<number, DraggableSortItemData>;
51
+ /** @returns {DraggableSortEventEmitter} */
52
+ getEvents: () => DraggableSortEventEmitter;
53
+ /**
54
+ * Return the tracked drag metadata for the given item instance.
55
+ * @param {object} item
56
+ * @returns {DraggableSortItemData|undefined}
57
+ */
58
+ getItemDataForItem: (item: object) => DraggableSortItemData | undefined;
59
+ /**
60
+ * Look up item metadata by its extracted stable key.
61
+ * @param {string} key
62
+ * @returns {DraggableSortItemData|undefined}
63
+ */
64
+ getItemDataForKey: (key: string) => DraggableSortItemData | undefined;
65
+ /**
66
+ * Return the tracked drag metadata stored for a list index.
67
+ * @param {number} index
68
+ * @returns {DraggableSortItemData|undefined}
69
+ */
70
+ getItemDataForIndex: (index: number) => DraggableSortItemData | undefined;
71
+ /**
72
+ * Mark an item as the active dragged row and publish the drag-start event.
73
+ * @param {object} root0
74
+ * @param {object} root0.item
75
+ * @param {number} root0.itemIndex
76
+ */
28
77
  onDragStart: ({ item, itemIndex }: {
29
- item: any;
30
- itemIndex: any;
78
+ item: object;
79
+ itemIndex: number;
31
80
  }) => void;
32
- draggedItemIndex: any;
33
- draggedItemPosition: any;
34
- /** onDragEnd. */
81
+ draggedItemIndex: number;
82
+ draggedItemPosition: number;
83
+ /** Finish the current drag and notify listeners about the final ordering. */
35
84
  onDragEnd: () => void;
36
- /** onItemLayout. */
85
+ /**
86
+ * Store layout data and event bindings for a rendered draggable item.
87
+ * @param {object} root0
88
+ * @param {DraggableSortEventEmitter} root0.events
89
+ * @param {number} root0.index
90
+ * @param {object} root0.item
91
+ * @param {DraggableSortLayout} root0.layout
92
+ */
37
93
  onItemLayout: ({ events, index, item, layout }: {
38
- events: any;
39
- index: any;
40
- item: any;
41
- layout: any;
94
+ events: DraggableSortEventEmitter;
95
+ index: number;
96
+ item: object;
97
+ layout: DraggableSortLayout;
42
98
  }) => void;
43
- /** onMove. */
99
+ /**
100
+ * Update ordering as the active dragged item crosses other item positions.
101
+ * @param {object} root0
102
+ * @param {DraggableSortGestureState} root0.gestate
103
+ */
44
104
  onMove: ({ gestate }: {
45
- gestate: any;
105
+ gestate: DraggableSortGestureState;
46
106
  }) => void;
47
- /** setInitialDragPosition. */
48
- setInitialDragPosition: (initialDragPosition: any) => void;
49
- initialDragPosition: any;
50
- /** updatePositionOfItems. */
107
+ /**
108
+ * Store the touch position where the current drag gesture started.
109
+ * @param {DraggableSortPosition} initialDragPosition
110
+ */
111
+ setInitialDragPosition: (initialDragPosition: DraggableSortPosition) => void;
112
+ initialDragPosition: DraggableSortPosition;
113
+ /** Animate non-dragged items into their current ordered positions. */
51
114
  updatePositionOfItems(): void;
52
115
  }
116
+ export type DraggableSortEventEmitter = import("eventemitter3").EventEmitter;
117
+ export type DraggableSortLayout = import("react-native").LayoutRectangle;
118
+ export type DraggableSortGestureState = import("react-native").PanResponderGestureState;
119
+ export type DraggableSortPosition = {
120
+ x: number;
121
+ y: number;
122
+ };
123
+ export type DraggableSortKeyExtractor = (item: object) => string;
124
+ export type DraggableSortItemData = {
125
+ index: number;
126
+ item: object;
127
+ position: number;
128
+ baseX?: number;
129
+ events?: DraggableSortEventEmitter;
130
+ initialLayout?: DraggableSortLayout;
131
+ key?: string;
132
+ layout?: DraggableSortLayout;
133
+ };
134
+ export type DraggableSortDragEndArgs = {
135
+ fromIndex: number;
136
+ fromItem: object;
137
+ fromPosition: number;
138
+ item: object;
139
+ itemData: DraggableSortItemData;
140
+ toItem: object | null;
141
+ toPosition: number | null;
142
+ };
143
+ import { EventEmitter } from "eventemitter3";
53
144
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"/src/","sources":["draggable-sort/controller.js"],"names":[],"mappings":"AAGA,qDAAqD;AACrD;IACE,mBAAmB;IACnB;;;;OAsBC;IArBC,UAAgB;IAChB,oBAA6B;IAC7B,YAA0C;IAC1C,kBAAgC;IAEhC,iBAAuB;IACvB,qBAA2B;IAC3B,+BAAkC;IAElC,qBAA2B;IAC3B,yBAA+B;IAE/B,aAAkB;IAWpB,iBAAiB;IACjB,qBAA6B;IAE7B,0BAA0B;IAC1B,qBAAsB,SAAI,SAAsD;IAEhF,yBAAyB;IACzB,oBAAqB,QAAG,SAAqE;IAE7F,2BAA2B;IAC3B,sBAAuB,UAAK,SAAkC;IAE9D,mBAAmB;IACnB,cAAe;;;KAAiB,UAQ/B;IAJG,sBAAiC;IACjC,yBAAwD;IAK5D,iBAAiB;IACjB,sBAuBC;IAED,oBAAoB;IACpB,eAAgB;;;;;KAA6B,UAa5C;IAED,cAAc;IACd,SAAU;;KAAS,UA8BlB;IAED,8BAA8B;IAC9B,yBAA0B,wBAAmB,UAE5C;IADC,yBAA8C;IAGhD,6BAA6B;IAC7B,8BAiBC;CACF"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"/src/","sources":["draggable-sort/controller.js"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,4EAA4E;AAC5E,2FAA2F;AAC3F,8DAA8D;AAC9D,oEAAoE;AACpE;;;;;;;;;;GAUG;AACH;;;;;;;;;GASG;AAEH,qDAAqD;AACrD;IACE;;;;;;OAMG;IACH,4CAJG;QAAwB,IAAI,EAApB,MAAM,EAAE;QAC0B,MAAM,GAAxC,yBAAyB;QACQ,YAAY,EAA7C,yBAAyB;KACnC,EAoBA;IAlBC,YAA0C;IAC1C,oBAAuD;IACvD,2CAAqF;IACrF,wCAA2E;IAC3E,iBAAoD;IACpD,uCAAuE;IACvE,+BAA+D;IAC/D,qBAAwD;IACxD,2CAA2E;IAC3E,gDAAyE;IAW3E,2CAA2C;IAC3C,iBADc,yBAAyB,CACV;IAE7B;;;;OAIG;IACH,qBAAsB,MAHX,MAGe,KAFb,qBAAqB,GAAC,SAAS,CAEoC;IAEhF;;;;OAIG;IACH,oBAAqB,KAHV,MAGa,KAFX,qBAAqB,GAAC,SAAS,CAEgE;IAE5G;;;;OAIG;IACH,sBAAuB,OAHZ,MAGiB,KAFf,qBAAqB,GAAC,SAAS,CAEkB;IAE9D;;;;;OAKG;IACH,cAAe,qBAHZ;QAAsB,IAAI,EAAlB,MAAM;QACQ,SAAS,EAAvB,MAAM;KAEe,UAU/B;IAJG,yBAAiC;IACjC,4BAAwD;IAK5D,6EAA6E;IAC7E,sBA2BC;IAED;;;;;;;OAOG;IACH,eAAgB,iCALb;QAAyC,MAAM,EAAvC,yBAAyB;QACX,KAAK,EAAnB,MAAM;QACQ,IAAI,EAAlB,MAAM;QACqB,MAAM,EAAjC,mBAAmB;KAEe,UAa5C;IAED;;;;OAIG;IACH,SAAU,aAFP;QAAyC,OAAO,EAAxC,yBAAyB;KAEjB,UA+BlB;IAED;;;OAGG;IACH,yBAA0B,qBAFf,qBAEkC,UAE5C;IADC,2CAA8C;IAGhD,sEAAsE;IACtE,8BAmBC;CACF;wCA3Na,OAAO,eAAe,EAAE,YAAY;kCACpC,OAAO,cAAc,EAAE,eAAe;wCACtC,OAAO,cAAc,EAAE,wBAAwB;oCAC/C;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC;wCACtB,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;;WAGxB,MAAM;UACN,MAAM;cACN,MAAM;YACN,MAAM;aACN,yBAAyB;oBACzB,mBAAmB;UACnB,MAAM;aACN,mBAAmB;;;eAInB,MAAM;cACN,MAAM;kBACN,MAAM;UACN,MAAM;cACN,qBAAqB;YACrB,MAAM,GAAC,IAAI;gBACX,MAAM,GAAC,IAAI;;6BA1BE,eAAe"}