@kaspernj/api-maker 1.0.2054 → 1.0.2056

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 (386) hide show
  1. package/build/api.js +65 -213
  2. package/build/attribute-not-loaded-error.js +3 -26
  3. package/build/base-component.js +4 -27
  4. package/build/base-error.js +21 -46
  5. package/build/base-model/attribute.js +15 -22
  6. package/build/base-model/column.js +5 -9
  7. package/build/base-model/reflection.js +12 -52
  8. package/build/base-model/scope.js +9 -46
  9. package/build/base-model.js +584 -837
  10. package/build/bootstrap/attribute-row.js +88 -173
  11. package/build/bootstrap/attribute-rows.js +22 -51
  12. package/build/bootstrap/card.js +77 -160
  13. package/build/bootstrap/checkbox.js +54 -103
  14. package/build/bootstrap/checkboxes.js +117 -203
  15. package/build/bootstrap/index.js +1 -1
  16. package/build/bootstrap/input.js +81 -132
  17. package/build/bootstrap/invalid-feedback.js +19 -47
  18. package/build/bootstrap/paginate.js +100 -165
  19. package/build/bootstrap/radio-buttons.js +44 -81
  20. package/build/bootstrap/select.js +44 -91
  21. package/build/bootstrap/sort-link.js +69 -152
  22. package/build/cable-connection-pool.js +44 -66
  23. package/build/cable-subscription-pool.js +105 -162
  24. package/build/cable-subscription.js +10 -17
  25. package/build/cache-key-generator.js +28 -37
  26. package/build/can-can.js +81 -202
  27. package/build/channels-consumer.js +6 -11
  28. package/build/collection-loader.js +36 -54
  29. package/build/collection.d.ts.map +1 -1
  30. package/build/collection.js +160 -308
  31. package/build/command-submit-data.d.ts +1 -1
  32. package/build/command-submit-data.d.ts.map +1 -1
  33. package/build/command-submit-data.js +30 -39
  34. package/build/commands-pool.js +140 -216
  35. package/build/compose.js +4 -12
  36. package/build/config.js +21 -68
  37. package/build/custom-error.js +5 -30
  38. package/build/data-set-to-attributes.js +6 -42
  39. package/build/deserializer.js +27 -80
  40. package/build/destroy-error.js +5 -30
  41. package/build/devise.js +84 -188
  42. package/build/draggable-sort/controller.js +88 -111
  43. package/build/draggable-sort/index.js +68 -145
  44. package/build/draggable-sort/item.js +132 -198
  45. package/build/error-logger.js +79 -164
  46. package/build/error-messages.js +5 -8
  47. package/build/event-connection.js +24 -62
  48. package/build/event-emitter-listener.js +7 -24
  49. package/build/event-model-class.js +20 -47
  50. package/build/events.js +4 -9
  51. package/build/form.js +66 -154
  52. package/build/history-expo.js +13 -25
  53. package/build/history-react-native.js +15 -27
  54. package/build/history.js +3 -5
  55. package/build/index.js +3 -6
  56. package/build/inputs/attachment.js +72 -123
  57. package/build/inputs/auto-submit.js +16 -55
  58. package/build/inputs/checkbox.js +78 -167
  59. package/build/inputs/checkboxes.js +76 -159
  60. package/build/inputs/id-for-component.js +5 -41
  61. package/build/inputs/input-wrapper.js +8 -27
  62. package/build/inputs/input.js +159 -245
  63. package/build/inputs/money.js +124 -186
  64. package/build/inputs/name-for-component.js +5 -41
  65. package/build/inputs/select.js +69 -123
  66. package/build/instance-of-class-name.js +16 -21
  67. package/build/is-expo.js +9 -11
  68. package/build/key-value-store.js +52 -128
  69. package/build/link.js +52 -115
  70. package/build/logger.js +20 -26
  71. package/build/merge-styles.js +6 -10
  72. package/build/modal.js +15 -62
  73. package/build/model-class-require.js +9 -44
  74. package/build/model-events.js +25 -34
  75. package/build/model-name.js +16 -57
  76. package/build/model-prop-type.js +52 -63
  77. package/build/model-recipes-loader.js +17 -25
  78. package/build/model-recipes-model-loader.d.ts +1 -1
  79. package/build/model-recipes-model-loader.js +130 -208
  80. package/build/models-response-reader.js +25 -66
  81. package/build/models.js +6 -11
  82. package/build/money-formatter.d.ts +2 -2
  83. package/build/money-formatter.d.ts.map +1 -1
  84. package/build/money-formatter.js +46 -56
  85. package/build/not-loaded-error.js +3 -26
  86. package/build/params.js +32 -42
  87. package/build/preloaded.js +19 -59
  88. package/build/resize-observer.js +6 -12
  89. package/build/rest-props-validator.js +5 -7
  90. package/build/result.js +11 -15
  91. package/build/router/route.js +179 -312
  92. package/build/router/switch.js +56 -130
  93. package/build/router.js +34 -94
  94. package/build/routes-native.js +64 -148
  95. package/build/routes.js +26 -80
  96. package/build/run-last.js +20 -25
  97. package/build/serializer.js +29 -34
  98. package/build/services.js +10 -19
  99. package/build/session-status-updater.js +85 -184
  100. package/build/source-maps-loader.d.ts +37 -0
  101. package/build/source-maps-loader.d.ts.map +1 -0
  102. package/build/source-maps-loader.js +103 -225
  103. package/build/super-admin/config-reader.d.ts +2 -2
  104. package/build/super-admin/config-reader.js +42 -83
  105. package/build/super-admin/edit-page/edit-attribute-checkbox.js +53 -115
  106. package/build/super-admin/edit-page/edit-attribute-content.js +47 -77
  107. package/build/super-admin/edit-page/edit-attribute-input.js +57 -119
  108. package/build/super-admin/edit-page/edit-attribute.js +40 -104
  109. package/build/super-admin/edit-page.js +88 -201
  110. package/build/super-admin/has-edit-config.js +7 -13
  111. package/build/super-admin/index-page.js +17 -44
  112. package/build/super-admin/index.js +87 -210
  113. package/build/super-admin/layout/header/index.js +91 -152
  114. package/build/super-admin/layout/index.js +70 -153
  115. package/build/super-admin/layout/menu/index.js +85 -161
  116. package/build/super-admin/layout/menu/menu-content.js +25 -85
  117. package/build/super-admin/layout/menu/menu-item.js +52 -102
  118. package/build/super-admin/layout/no-access.js +19 -45
  119. package/build/super-admin/model-class-table.js +45 -129
  120. package/build/super-admin/models.js +6 -42
  121. package/build/super-admin/show-nav.js +27 -89
  122. package/build/super-admin/show-page/belongs-to-attribute-row.js +18 -76
  123. package/build/super-admin/show-page/index.js +101 -187
  124. package/build/super-admin/show-reflection-actions.js +39 -100
  125. package/build/super-admin/show-reflection-link.js +27 -99
  126. package/build/super-admin/show-reflection-page.js +34 -97
  127. package/build/table/column-content.js +77 -121
  128. package/build/table/column-identifier.js +7 -11
  129. package/build/table/column-visible.js +2 -5
  130. package/build/table/components/column.js +13 -60
  131. package/build/table/components/flat-list.js +13 -60
  132. package/build/table/components/header.js +15 -62
  133. package/build/table/components/row.js +16 -63
  134. package/build/table/filters/attribute-element.js +34 -62
  135. package/build/table/filters/filter-form.js +280 -483
  136. package/build/table/filters/filter.js +45 -73
  137. package/build/table/filters/index.js +95 -139
  138. package/build/table/filters/load-search-modal.js +64 -212
  139. package/build/table/filters/reflection-element.js +27 -55
  140. package/build/table/filters/save-search-modal.js +44 -140
  141. package/build/table/filters/scope-element.js +28 -56
  142. package/build/table/header-column-content.js +33 -71
  143. package/build/table/header-column.js +89 -218
  144. package/build/table/header-select.js +45 -77
  145. package/build/table/model-callback-args.js +5 -41
  146. package/build/table/model-column.js +59 -144
  147. package/build/table/model-row.js +75 -187
  148. package/build/table/select-calculator.js +27 -86
  149. package/build/table/settings/column-row.js +66 -186
  150. package/build/table/settings/download-action.js +38 -74
  151. package/build/table/settings/index.js +38 -102
  152. package/build/table/table-settings.js +185 -323
  153. package/build/table/table.js +583 -781
  154. package/build/table/use-sorting.js +16 -35
  155. package/build/table/widths.js +32 -38
  156. package/build/table/worker-plugins-check-all-checkbox.js +77 -225
  157. package/build/table/worker-plugins-checkbox.js +74 -185
  158. package/build/translated-attributes.js +6 -11
  159. package/build/translated-collections.js +11 -20
  160. package/build/updated-attribute.js +47 -120
  161. package/build/url-encode.js +6 -12
  162. package/build/use-breakpoint.js +43 -95
  163. package/build/use-can-can.js +30 -92
  164. package/build/use-collection.js +119 -229
  165. package/build/use-created-event.js +27 -44
  166. package/build/use-current-user-context.js +57 -151
  167. package/build/use-current-user.js +14 -32
  168. package/build/use-destroyed-event.js +22 -43
  169. package/build/use-event-emitter.d.ts +1 -2
  170. package/build/use-event-emitter.d.ts.map +1 -1
  171. package/build/use-event-emitter.js +10 -16
  172. package/build/use-event-listener.js +13 -22
  173. package/build/use-input.js +49 -69
  174. package/build/use-model-event.js +22 -43
  175. package/build/use-model.js +96 -199
  176. package/build/use-resize-observer.js +11 -21
  177. package/build/use-router.js +65 -107
  178. package/build/use-screen-layout.js +17 -19
  179. package/build/use-styles.js +24 -75
  180. package/build/use-updated-event.js +22 -44
  181. package/build/use-validation-errors.js +12 -18
  182. package/build/utils/button.js +86 -136
  183. package/build/utils/card.js +31 -106
  184. package/build/utils/checkbox.js +51 -112
  185. package/build/utils/checkboxes.js +109 -182
  186. package/build/utils/default-style.js +29 -103
  187. package/build/utils/header.js +8 -35
  188. package/build/utils/icon.js +36 -117
  189. package/build/utils/invalid-feedback.js +16 -43
  190. package/build/utils/modal.js +25 -108
  191. package/build/utils/text.js +10 -37
  192. package/build/validation-error.js +31 -89
  193. package/build/validation-errors.js +61 -111
  194. package/build/with-api-maker.js +15 -67
  195. package/build/with-collection.js +14 -64
  196. package/build/with-current-user.js +7 -23
  197. package/build/with-model.js +11 -27
  198. package/build/with-router.js +8 -35
  199. package/package.json +4 -3
  200. package/build/api.js.map +0 -1
  201. package/build/attribute-not-loaded-error.js.map +0 -1
  202. package/build/base-component.js.map +0 -1
  203. package/build/base-error.js.map +0 -1
  204. package/build/base-model/attribute.js.map +0 -1
  205. package/build/base-model/column.js.map +0 -1
  206. package/build/base-model/reflection.js.map +0 -1
  207. package/build/base-model/scope.js.map +0 -1
  208. package/build/base-model.js.map +0 -1
  209. package/build/bootstrap/attribute-row.js.map +0 -1
  210. package/build/bootstrap/attribute-rows.js.map +0 -1
  211. package/build/bootstrap/card.js.map +0 -1
  212. package/build/bootstrap/checkbox.js.map +0 -1
  213. package/build/bootstrap/checkboxes.js.map +0 -1
  214. package/build/bootstrap/index.js.map +0 -1
  215. package/build/bootstrap/input.js.map +0 -1
  216. package/build/bootstrap/invalid-feedback.js.map +0 -1
  217. package/build/bootstrap/paginate.js.map +0 -1
  218. package/build/bootstrap/radio-buttons.js.map +0 -1
  219. package/build/bootstrap/select.js.map +0 -1
  220. package/build/bootstrap/sort-link.js.map +0 -1
  221. package/build/cable-connection-pool.js.map +0 -1
  222. package/build/cable-subscription-pool.js.map +0 -1
  223. package/build/cable-subscription.js.map +0 -1
  224. package/build/cache-key-generator.js.map +0 -1
  225. package/build/can-can.js.map +0 -1
  226. package/build/channels-consumer.js.map +0 -1
  227. package/build/collection-loader.js.map +0 -1
  228. package/build/collection.js.map +0 -1
  229. package/build/command-submit-data.js.map +0 -1
  230. package/build/commands-pool.js.map +0 -1
  231. package/build/compose.js.map +0 -1
  232. package/build/config.js.map +0 -1
  233. package/build/custom-error.js.map +0 -1
  234. package/build/data-set-to-attributes.js.map +0 -1
  235. package/build/deserializer.js.map +0 -1
  236. package/build/destroy-error.js.map +0 -1
  237. package/build/devise.js.map +0 -1
  238. package/build/draggable-sort/controller.js.map +0 -1
  239. package/build/draggable-sort/index.js.map +0 -1
  240. package/build/draggable-sort/item.js.map +0 -1
  241. package/build/error-logger.js.map +0 -1
  242. package/build/error-messages.js.map +0 -1
  243. package/build/event-connection.js.map +0 -1
  244. package/build/event-emitter-listener.js.map +0 -1
  245. package/build/event-model-class.js.map +0 -1
  246. package/build/events.js.map +0 -1
  247. package/build/form.js.map +0 -1
  248. package/build/history-expo.js.map +0 -1
  249. package/build/history-react-native.js.map +0 -1
  250. package/build/history.js.map +0 -1
  251. package/build/index.js.map +0 -1
  252. package/build/inputs/attachment.js.map +0 -1
  253. package/build/inputs/auto-submit.js.map +0 -1
  254. package/build/inputs/checkbox.js.map +0 -1
  255. package/build/inputs/checkboxes.js.map +0 -1
  256. package/build/inputs/id-for-component.js.map +0 -1
  257. package/build/inputs/input-wrapper.js.map +0 -1
  258. package/build/inputs/input.js.map +0 -1
  259. package/build/inputs/money.js.map +0 -1
  260. package/build/inputs/name-for-component.js.map +0 -1
  261. package/build/inputs/select.js.map +0 -1
  262. package/build/instance-of-class-name.js.map +0 -1
  263. package/build/is-expo.js.map +0 -1
  264. package/build/key-value-store.js.map +0 -1
  265. package/build/link.js.map +0 -1
  266. package/build/logger.js.map +0 -1
  267. package/build/merge-styles.js.map +0 -1
  268. package/build/modal.js.map +0 -1
  269. package/build/model-class-require.js.map +0 -1
  270. package/build/model-events.js.map +0 -1
  271. package/build/model-name.js.map +0 -1
  272. package/build/model-prop-type.js.map +0 -1
  273. package/build/model-recipes-loader.js.map +0 -1
  274. package/build/model-recipes-model-loader.js.map +0 -1
  275. package/build/models-response-reader.js.map +0 -1
  276. package/build/models.js.map +0 -1
  277. package/build/money-formatter.js.map +0 -1
  278. package/build/not-loaded-error.js.map +0 -1
  279. package/build/params.js.map +0 -1
  280. package/build/preloaded.js.map +0 -1
  281. package/build/resize-observer.js.map +0 -1
  282. package/build/rest-props-validator.js.map +0 -1
  283. package/build/result.js.map +0 -1
  284. package/build/router/route.js.map +0 -1
  285. package/build/router/switch.js.map +0 -1
  286. package/build/router.js.map +0 -1
  287. package/build/routes-native.js.map +0 -1
  288. package/build/routes.js.map +0 -1
  289. package/build/run-last.js.map +0 -1
  290. package/build/serializer.js.map +0 -1
  291. package/build/services.js.map +0 -1
  292. package/build/session-status-updater.js.map +0 -1
  293. package/build/source-maps-loader.js.map +0 -1
  294. package/build/super-admin/config-reader.js.map +0 -1
  295. package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +0 -1
  296. package/build/super-admin/edit-page/edit-attribute-content.js.map +0 -1
  297. package/build/super-admin/edit-page/edit-attribute-input.js.map +0 -1
  298. package/build/super-admin/edit-page/edit-attribute.js.map +0 -1
  299. package/build/super-admin/edit-page.js.map +0 -1
  300. package/build/super-admin/has-edit-config.js.map +0 -1
  301. package/build/super-admin/index-page.js.map +0 -1
  302. package/build/super-admin/index.js.map +0 -1
  303. package/build/super-admin/layout/header/index.js.map +0 -1
  304. package/build/super-admin/layout/index.js.map +0 -1
  305. package/build/super-admin/layout/menu/index.js.map +0 -1
  306. package/build/super-admin/layout/menu/menu-content.js.map +0 -1
  307. package/build/super-admin/layout/menu/menu-item.js.map +0 -1
  308. package/build/super-admin/layout/no-access.js.map +0 -1
  309. package/build/super-admin/model-class-table.js.map +0 -1
  310. package/build/super-admin/models.js.map +0 -1
  311. package/build/super-admin/show-nav.js.map +0 -1
  312. package/build/super-admin/show-page/belongs-to-attribute-row.js.map +0 -1
  313. package/build/super-admin/show-page/index.js.map +0 -1
  314. package/build/super-admin/show-reflection-actions.js.map +0 -1
  315. package/build/super-admin/show-reflection-link.js.map +0 -1
  316. package/build/super-admin/show-reflection-page.js.map +0 -1
  317. package/build/table/column-content.js.map +0 -1
  318. package/build/table/column-identifier.js.map +0 -1
  319. package/build/table/column-visible.js.map +0 -1
  320. package/build/table/components/column.js.map +0 -1
  321. package/build/table/components/flat-list.js.map +0 -1
  322. package/build/table/components/header.js.map +0 -1
  323. package/build/table/components/row.js.map +0 -1
  324. package/build/table/filters/attribute-element.js.map +0 -1
  325. package/build/table/filters/filter-form.js.map +0 -1
  326. package/build/table/filters/filter.js.map +0 -1
  327. package/build/table/filters/index.js.map +0 -1
  328. package/build/table/filters/load-search-modal.js.map +0 -1
  329. package/build/table/filters/reflection-element.js.map +0 -1
  330. package/build/table/filters/save-search-modal.js.map +0 -1
  331. package/build/table/filters/scope-element.js.map +0 -1
  332. package/build/table/header-column-content.js.map +0 -1
  333. package/build/table/header-column.js.map +0 -1
  334. package/build/table/header-select.js.map +0 -1
  335. package/build/table/model-callback-args.js.map +0 -1
  336. package/build/table/model-column.js.map +0 -1
  337. package/build/table/model-row.js.map +0 -1
  338. package/build/table/select-calculator.js.map +0 -1
  339. package/build/table/settings/column-row.js.map +0 -1
  340. package/build/table/settings/download-action.js.map +0 -1
  341. package/build/table/settings/index.js.map +0 -1
  342. package/build/table/table-settings.js.map +0 -1
  343. package/build/table/table.js.map +0 -1
  344. package/build/table/use-sorting.js.map +0 -1
  345. package/build/table/widths.js.map +0 -1
  346. package/build/table/worker-plugins-check-all-checkbox.js.map +0 -1
  347. package/build/table/worker-plugins-checkbox.js.map +0 -1
  348. package/build/translated-attributes.js.map +0 -1
  349. package/build/translated-collections.js.map +0 -1
  350. package/build/updated-attribute.js.map +0 -1
  351. package/build/url-encode.js.map +0 -1
  352. package/build/use-breakpoint.js.map +0 -1
  353. package/build/use-can-can.js.map +0 -1
  354. package/build/use-collection.js.map +0 -1
  355. package/build/use-created-event.js.map +0 -1
  356. package/build/use-current-user-context.js.map +0 -1
  357. package/build/use-current-user.js.map +0 -1
  358. package/build/use-destroyed-event.js.map +0 -1
  359. package/build/use-event-emitter.js.map +0 -1
  360. package/build/use-event-listener.js.map +0 -1
  361. package/build/use-input.js.map +0 -1
  362. package/build/use-model-event.js.map +0 -1
  363. package/build/use-model.js.map +0 -1
  364. package/build/use-resize-observer.js.map +0 -1
  365. package/build/use-router.js.map +0 -1
  366. package/build/use-screen-layout.js.map +0 -1
  367. package/build/use-styles.js.map +0 -1
  368. package/build/use-updated-event.js.map +0 -1
  369. package/build/use-validation-errors.js.map +0 -1
  370. package/build/utils/button.js.map +0 -1
  371. package/build/utils/card.js.map +0 -1
  372. package/build/utils/checkbox.js.map +0 -1
  373. package/build/utils/checkboxes.js.map +0 -1
  374. package/build/utils/default-style.js.map +0 -1
  375. package/build/utils/header.js.map +0 -1
  376. package/build/utils/icon.js.map +0 -1
  377. package/build/utils/invalid-feedback.js.map +0 -1
  378. package/build/utils/modal.js.map +0 -1
  379. package/build/utils/text.js.map +0 -1
  380. package/build/validation-error.js.map +0 -1
  381. package/build/validation-errors.js.map +0 -1
  382. package/build/with-api-maker.js.map +0 -1
  383. package/build/with-collection.js.map +0 -1
  384. package/build/with-current-user.js.map +0 -1
  385. package/build/with-model.js.map +0 -1
  386. package/build/with-router.js.map +0 -1
package/build/devise.js CHANGED
@@ -1,221 +1,117 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __generator = (this && this.__generator) || function (thisArg, body) {
45
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
- function verb(n) { return function (v) { return step([n, v]); }; }
48
- function step(op) {
49
- if (f) throw new TypeError("Generator is already executing.");
50
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
- if (y = 0, t) op = [op[0] & 2, t.value];
53
- switch (op[0]) {
54
- case 0: case 1: t = op; break;
55
- case 4: _.label++; return { value: op[1], done: false };
56
- case 5: _.label++; y = op[1]; op = [0]; continue;
57
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
- default:
59
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
- if (t[2]) _.ops.pop();
64
- _.trys.pop(); continue;
65
- }
66
- op = body.call(thisArg, _);
67
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
- }
70
- };
71
- var __importDefault = (this && this.__importDefault) || function (mod) {
72
- return (mod && mod.__esModule) ? mod : { "default": mod };
73
- };
74
- Object.defineProperty(exports, "__esModule", { value: true });
75
- var react_1 = require("react");
76
- var deserializer_js_1 = __importDefault(require("./deserializer.js"));
77
- var events_js_1 = __importDefault(require("./events.js"));
78
- var inflection = __importStar(require("inflection"));
79
- var model_class_require_js_1 = __importDefault(require("./model-class-require.js"));
80
- var services_js_1 = __importDefault(require("./services.js"));
1
+ import { createContext } from "react";
2
+ import Deserializer from "./deserializer.js";
3
+ import events from "./events.js";
4
+ import * as inflection from "inflection";
5
+ import modelClassRequire from "./model-class-require.js";
6
+ import Services from "./services.js";
81
7
  if (!globalThis.ApiMakerDevise)
82
8
  globalThis.ApiMakerDevise = { scopes: {} };
83
- var shared = globalThis.ApiMakerDevise;
84
- var DeviseScope = /** @class */ (function () {
85
- function DeviseScope(scope, args) {
86
- var _this = this;
87
- this.getContext = function () { return _this.context; };
9
+ const shared = globalThis.ApiMakerDevise;
10
+ class DeviseScope {
11
+ constructor(scope, args) {
88
12
  this.args = args;
89
- this.context = (0, react_1.createContext)();
13
+ this.context = createContext();
90
14
  this.scope = scope;
91
15
  }
92
- return DeviseScope;
93
- }());
94
- var ApiMakerDevise = /** @class */ (function () {
95
- function ApiMakerDevise() {
96
- this.currents = {};
16
+ getContext = () => this.context;
17
+ }
18
+ export default class ApiMakerDevise {
19
+ static callSignOutEvent(args) {
20
+ events.emit("onDeviseSignOut", { args });
97
21
  }
98
- ApiMakerDevise.callSignOutEvent = function (args) {
99
- events_js_1.default.emit("onDeviseSignOut", { args: args });
100
- };
101
- ApiMakerDevise.current = function () {
22
+ static current() {
102
23
  if (!shared.currentApiMakerDevise) {
103
24
  shared.currentApiMakerDevise = new ApiMakerDevise();
104
25
  }
105
26
  return shared.currentApiMakerDevise;
106
- };
107
- ApiMakerDevise.events = function () {
108
- return events_js_1.default;
109
- };
110
- ApiMakerDevise.addUserScope = function (scope, args) {
111
- if (args === void 0) { args = {}; }
112
- var scopeCamelized = inflection.camelize(scope);
113
- var currentMethodName = "current".concat(scopeCamelized);
114
- var isSignedInMethodName = "is".concat(scopeCamelized, "SignedIn");
115
- var getArgsMethodName = "get".concat(scopeCamelized, "Args");
116
- var getScopeName = "get".concat(scopeCamelized, "Scope");
117
- var scopeInstance = new DeviseScope(scope, args);
118
- ApiMakerDevise[currentMethodName] = function () { return ApiMakerDevise.current().getCurrentScope(scope); };
119
- ApiMakerDevise[isSignedInMethodName] = function () { return Boolean(ApiMakerDevise.current().getCurrentScope(scope)); };
120
- ApiMakerDevise[getArgsMethodName] = function () { return args; };
121
- ApiMakerDevise[getScopeName] = function () { return scopeInstance; };
122
- };
123
- ApiMakerDevise.getScope = function (scope) {
124
- var scopeCamelized = inflection.camelize(scope);
125
- var getScopeName = "get".concat(scopeCamelized, "Scope");
27
+ }
28
+ static events() {
29
+ return events;
30
+ }
31
+ static addUserScope(scope, args = {}) {
32
+ const scopeCamelized = inflection.camelize(scope);
33
+ const currentMethodName = `current${scopeCamelized}`;
34
+ const isSignedInMethodName = `is${scopeCamelized}SignedIn`;
35
+ const getArgsMethodName = `get${scopeCamelized}Args`;
36
+ const getScopeName = `get${scopeCamelized}Scope`;
37
+ const scopeInstance = new DeviseScope(scope, args);
38
+ ApiMakerDevise[currentMethodName] = () => ApiMakerDevise.current().getCurrentScope(scope);
39
+ ApiMakerDevise[isSignedInMethodName] = () => Boolean(ApiMakerDevise.current().getCurrentScope(scope));
40
+ ApiMakerDevise[getArgsMethodName] = () => args;
41
+ ApiMakerDevise[getScopeName] = () => scopeInstance;
42
+ }
43
+ static getScope(scope) {
44
+ const scopeCamelized = inflection.camelize(scope);
45
+ const getScopeName = `get${scopeCamelized}Scope`;
126
46
  return ApiMakerDevise[getScopeName]();
127
- };
128
- ApiMakerDevise.signIn = function (username_1, password_1) {
129
- return __awaiter(this, arguments, void 0, function (username, password, args) {
130
- var postData, response, model;
131
- if (args === void 0) { args = {}; }
132
- return __generator(this, function (_a) {
133
- switch (_a.label) {
134
- case 0:
135
- if (!args.scope)
136
- args.scope = "user";
137
- postData = { username: username, password: password, args: args };
138
- return [4 /*yield*/, services_js_1.default.current().sendRequest("Devise::SignIn", postData)];
139
- case 1:
140
- response = _a.sent();
141
- model = response.model;
142
- if (Array.isArray(model))
143
- model = model[0];
144
- ApiMakerDevise.updateSession(model);
145
- events_js_1.default.emit("onDeviseSignIn", Object.assign({ username: username }, args));
146
- return [2 /*return*/, { model: model, response: response }];
147
- }
148
- });
149
- });
150
- };
151
- ApiMakerDevise.updateSession = function (model, args) {
152
- if (args === void 0) { args = {}; }
47
+ }
48
+ static async signIn(username, password, args = {}) {
153
49
  if (!args.scope)
154
50
  args.scope = "user";
155
- var camelizedScopeName = inflection.camelize(args.scope, true);
51
+ const postData = { username, password, args };
52
+ const response = await Services.current().sendRequest("Devise::SignIn", postData);
53
+ let model = response.model;
54
+ if (Array.isArray(model))
55
+ model = model[0];
56
+ ApiMakerDevise.updateSession(model);
57
+ events.emit("onDeviseSignIn", Object.assign({ username }, args));
58
+ return { model, response };
59
+ }
60
+ static updateSession(model, args = {}) {
61
+ if (!args.scope)
62
+ args.scope = "user";
63
+ const camelizedScopeName = inflection.camelize(args.scope, true);
156
64
  ApiMakerDevise.current().currents[camelizedScopeName] = model;
157
- };
158
- ApiMakerDevise.prototype.hasCurrentScope = function (scope) {
159
- var camelizedScopeName = inflection.camelize(scope, true);
65
+ }
66
+ hasCurrentScope(scope) {
67
+ const camelizedScopeName = inflection.camelize(scope, true);
160
68
  return camelizedScopeName in ApiMakerDevise.current().currents;
161
- };
162
- ApiMakerDevise.setSignedOut = function (args) {
69
+ }
70
+ static setSignedOut(args) {
163
71
  ApiMakerDevise.current().currents[inflection.camelize(args.scope, true)] = null;
164
- };
165
- ApiMakerDevise.signOut = function () {
166
- return __awaiter(this, arguments, void 0, function (args) {
167
- var response;
168
- if (args === void 0) { args = {}; }
169
- return __generator(this, function (_a) {
170
- switch (_a.label) {
171
- case 0:
172
- if (!args.scope) {
173
- args.scope = "user";
174
- }
175
- return [4 /*yield*/, services_js_1.default.current().sendRequest("Devise::SignOut", { args: args })
176
- // Cannot use the class because they would both import each other
177
- ];
178
- case 1:
179
- response = _a.sent();
180
- // Cannot use the class because they would both import each other
181
- if (shared.apiMakerSessionStatusUpdater) {
182
- shared.apiMakerSessionStatusUpdater.updateSessionStatus();
183
- }
184
- ApiMakerDevise.setSignedOut(args);
185
- ApiMakerDevise.callSignOutEvent(args);
186
- return [2 /*return*/, response];
187
- }
188
- });
189
- });
190
- };
191
- ApiMakerDevise.prototype.getCurrentScope = function (scope) {
72
+ }
73
+ static async signOut(args = {}) {
74
+ if (!args.scope) {
75
+ args.scope = "user";
76
+ }
77
+ const response = await Services.current().sendRequest("Devise::SignOut", { args });
78
+ // Cannot use the class because they would both import each other
79
+ if (shared.apiMakerSessionStatusUpdater) {
80
+ shared.apiMakerSessionStatusUpdater.updateSessionStatus();
81
+ }
82
+ ApiMakerDevise.setSignedOut(args);
83
+ ApiMakerDevise.callSignOutEvent(args);
84
+ return response;
85
+ }
86
+ constructor() {
87
+ this.currents = {};
88
+ }
89
+ getCurrentScope(scope) {
192
90
  if (!(scope in this.currents)) {
193
91
  this.currents[scope] = this.loadCurrentScope(scope);
194
92
  }
195
93
  return this.currents[scope];
196
- };
197
- ApiMakerDevise.prototype.hasGlobalCurrentScope = function (scope) {
94
+ }
95
+ hasGlobalCurrentScope(scope) {
198
96
  if (globalThis.apiMakerDeviseCurrent && scope in globalThis.apiMakerDeviseCurrent) {
199
97
  return true;
200
98
  }
201
99
  return false;
202
- };
203
- ApiMakerDevise.prototype.loadCurrentScope = function (scope) {
100
+ }
101
+ loadCurrentScope(scope) {
204
102
  if (!this.hasGlobalCurrentScope(scope)) {
205
103
  return null;
206
104
  }
207
- var scopeData = globalThis.apiMakerDeviseCurrent[scope];
105
+ const scopeData = globalThis.apiMakerDeviseCurrent[scope];
208
106
  if (!scopeData)
209
107
  return null;
210
- var parsedScopeData = deserializer_js_1.default.parse(scopeData);
108
+ const parsedScopeData = Deserializer.parse(scopeData);
211
109
  // Might be a collection with preloaded relationships
212
110
  if (Array.isArray(parsedScopeData))
213
111
  return parsedScopeData[0];
214
- var ModelClass = (0, model_class_require_js_1.default)(scope);
215
- var modelInstance = new ModelClass({ data: parsedScopeData });
112
+ const ModelClass = modelClassRequire(scope);
113
+ const modelInstance = new ModelClass({ data: parsedScopeData });
216
114
  return modelInstance;
217
- };
218
- return ApiMakerDevise;
219
- }());
220
- exports.default = ApiMakerDevise;
221
- //# sourceMappingURL=devise.js.map
115
+ }
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQTtBQUM1QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjO0lBQUUsVUFBVSxDQUFDLGNBQWMsR0FBRyxFQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQTtBQUV4RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFBO0FBRXhDLE1BQU0sV0FBVztJQUNmLFlBQVksS0FBSyxFQUFFLElBQUk7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7Q0FDaEM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUk7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFB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RGVzZXJpYWxpemVyIGZyb20gXCIuL2Rlc2VyaWFsaXplci5qc1wiXG5pbXBvcnQgZXZlbnRzIGZyb20gXCIuL2V2ZW50cy5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlcy5qc1wiXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSBnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlXG5cbmNsYXNzIERldmlzZVNjb3BlIHtcbiAgY29uc3RydWN0b3Ioc2NvcGUsIGFyZ3MpIHtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb250ZXh0ID0gY3JlYXRlQ29udGV4dCgpXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlXG4gIH1cblxuICBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5jb250ZXh0XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyRGV2aXNlIHtcbiAgc3RhdGljIGNhbGxTaWduT3V0RXZlbnQoYXJncykge1xuICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduT3V0XCIsIHthcmdzfSlcbiAgfVxuXG4gIHN0YXRpYyBjdXJyZW50KCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZSkge1xuICAgICAgc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZSA9IG5ldyBBcGlNYWtlckRldmlzZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2VcbiAgfVxuXG4gIHN0YXRpYyBldmVudHMoKSB7XG4gICAgcmV0dXJuIGV2ZW50c1xuICB9XG5cbiAgc3RhdGljIGFkZFVzZXJTY29wZShzY29wZSwgYXJncyA9IHt9KSB7XG4gICAgY29uc3Qgc2NvcGVDYW1lbGl6ZWQgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKVxuICAgIGNvbnN0IGN1cnJlbnRNZXRob2ROYW1lID0gYGN1cnJlbnQke3Njb3BlQ2FtZWxpemVkfWBcbiAgICBjb25zdCBpc1NpZ25lZEluTWV0aG9kTmFtZSA9IGBpcyR7c2NvcGVDYW1lbGl6ZWR9U2lnbmVkSW5gXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1BcmdzYFxuICAgIGNvbnN0IGdldFNjb3BlTmFtZSA9IGBnZXQke3Njb3BlQ2FtZWxpemVkfVNjb3BlYFxuICAgIGNvbnN0IHNjb3BlSW5zdGFuY2UgPSBuZXcgRGV2aXNlU2NvcGUoc2NvcGUsIGFyZ3MpXG5cbiAgICBBcGlNYWtlckRldmlzZVtjdXJyZW50TWV0aG9kTmFtZV0gPSAoKSA9PiBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuZ2V0Q3VycmVudFNjb3BlKHNjb3BlKVxuICAgIEFwaU1ha2VyRGV2aXNlW2lzU2lnbmVkSW5NZXRob2ROYW1lXSA9ICgpID0+IEJvb2xlYW4oQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmdldEN1cnJlbnRTY29wZShzY29wZSkpXG4gICAgQXBpTWFrZXJEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdID0gKCkgPT4gYXJnc1xuICAgIEFwaU1ha2VyRGV2aXNlW2dldFNjb3BlTmFtZV0gPSAoKSA9PiBzY29wZUluc3RhbmNlXG4gIH1cblxuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2lnbkluKHVzZXJuYW1lLCBwYXNzd29yZCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHBvc3REYXRhID0ge3VzZXJuYW1lLCBwYXNzd29yZCwgYXJnc31cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbkluXCIsIHBvc3REYXRhKVxuXG4gICAgbGV0IG1vZGVsID0gcmVzcG9uc2UubW9kZWxcblxuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgbW9kZWwgPSBtb2RlbFswXVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcbiAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbkluXCIsIE9iamVjdC5hc3NpZ24oe3VzZXJuYW1lfSwgYXJncykpXG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVTZXNzaW9uKG1vZGVsLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgY29uc3QgY2FtZWxpemVkU2NvcGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhcmdzLnNjb3BlLCB0cnVlKVxuXG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2NhbWVsaXplZFNjb3BlTmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgaGFzQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgY29uc3QgY2FtZWxpemVkU2NvcGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSwgdHJ1ZSlcblxuICAgIHJldHVybiBjYW1lbGl6ZWRTY29wZU5hbWUgaW4gQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzXG4gIH1cblxuICBzdGF0aWMgc2V0U2lnbmVkT3V0KGFyZ3MpIHtcbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbaW5mbGVjdGlvbi5jYW1lbGl6ZShhcmdzLnNjb3BlLCB0cnVlKV0gPSBudWxsXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2lnbk91dChhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIHtcbiAgICAgIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpTaWduT3V0XCIsIHthcmdzfSlcblxuICAgIC8vIENhbm5vdCB1c2UgdGhlIGNsYXNzIGJlY2F1c2UgdGhleSB3b3VsZCBib3RoIGltcG9ydCBlYWNoIG90aGVyXG4gICAgaWYgKHNoYXJlZC5hcGlNYWtlclNlc3Npb25TdGF0dXNVcGRhdGVyKSB7XG4gICAgICBzaGFyZWQuYXBpTWFrZXJTZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICBBcGlNYWtlckRldmlzZS5zZXRTaWduZWRPdXQoYXJncylcbiAgICBBcGlNYWtlckRldmlzZS5jYWxsU2lnbk91dEV2ZW50KGFyZ3MpXG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSB7fVxuICB9XG5cbiAgZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKCEoc2NvcGUgaW4gdGhpcy5jdXJyZW50cykpIHtcbiAgICAgIHRoaXMuY3VycmVudHNbc2NvcGVdID0gdGhpcy5sb2FkQ3VycmVudFNjb3BlKHNjb3BlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRzW3Njb3BlXVxuICB9XG5cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbG9hZEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmICghdGhpcy5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlRGF0YSA9IGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50W3Njb3BlXVxuXG4gICAgaWYgKCFzY29wZURhdGEpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwYXJzZWRTY29wZURhdGEgPSBEZXNlcmlhbGl6ZXIucGFyc2Uoc2NvcGVEYXRhKVxuXG4gICAgLy8gTWlnaHQgYmUgYSBjb2xsZWN0aW9uIHdpdGggcHJlbG9hZGVkIHJlbGF0aW9uc2hpcHNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWRTY29wZURhdGEpKSByZXR1cm4gcGFyc2VkU2NvcGVEYXRhWzBdXG5cbiAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1JlcXVpcmUoc2NvcGUpXG4gICAgY29uc3QgbW9kZWxJbnN0YW5jZSA9IG5ldyBNb2RlbENsYXNzKHtkYXRhOiBwYXJzZWRTY29wZURhdGF9KVxuXG4gICAgcmV0dXJuIG1vZGVsSW5zdGFuY2VcbiAgfVxufVxuIl19
@@ -1,102 +1,10 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- var diggerize_1 = require("diggerize");
16
- var events_1 = __importDefault(require("events"));
17
- var DraggableSortController = /** @class */ (function () {
18
- function DraggableSortController(_a) {
19
- var data = _a.data, events = _a.events, keyExtractor = _a.keyExtractor;
20
- var _this = this;
21
- this.getEvents = function () { return _this.events; };
22
- this.getItemDataForItem = function (item) { return _this.getItemDataForIndex(_this.data.indexOf(item)); };
23
- this.getItemDataForKey = function (key) { return _this.itemData.find(function (itemDataI) { return (0, diggerize_1.digg)(itemDataI, "key") == key; }); };
24
- this.getItemDataForIndex = function (index) { return (0, diggerize_1.digg)(_this, "itemData", index); };
25
- this.onDragStart = function (_a) {
26
- var item = _a.item, itemIndex = _a.itemIndex;
27
- if (item) {
28
- _this.draggedItem = item;
29
- _this.draggedItemData = _this.getItemDataForIndex(itemIndex);
30
- _this.draggedItemIndex = itemIndex;
31
- _this.draggedItemPosition = _this.draggedItemData.position;
32
- _this.events.emit("onDragStart", { item: item, itemData: _this.draggedItemData });
33
- }
34
- };
35
- this.onDragEnd = function () {
36
- var itemData = _this.draggedItemData;
37
- var fromIndex = itemData.index;
38
- var fromPosition = (0, diggerize_1.digg)(_this, "draggedItemPosition");
39
- var toPosition = _this.draggedItemNewPosition;
40
- var fromItem = _this.draggedItem;
41
- var toItem = _this.draggedOverItem;
42
- var callbackArgs = { item: itemData.item, itemData: itemData, fromIndex: fromIndex, fromItem: fromItem, fromPosition: fromPosition, toItem: toItem, toPosition: toPosition };
43
- _this.draggedItemData.events.emit("resetPosition", {
44
- callback: function () {
45
- _this.events.emit("onDragEndAnimation", callbackArgs);
46
- }
47
- });
48
- _this.draggedItem = null;
49
- _this.draggedItemData = null;
50
- _this.draggedItemNewPosition = null;
51
- _this.draggedOverItem = null;
52
- _this.draggedOverItemData = null;
53
- _this.events.emit("onDragEnd", callbackArgs);
54
- };
55
- this.onItemLayout = function (_a) {
56
- var events = _a.events, index = _a.index, item = _a.item, layout = _a.layout;
57
- if (!(index in _this.itemData))
58
- throw new Error("Item not found for index ".concat(index));
59
- var itemData = _this.itemData[index];
60
- itemData.layout = layout;
61
- if (!itemData.initialLayout) {
62
- itemData.baseX = layout.x;
63
- itemData.events = events;
64
- itemData.initialLayout = layout;
65
- itemData.key = _this.keyExtractor(item);
66
- }
67
- };
68
- this.onMove = function (_a) {
69
- var _b, _c;
70
- var gestate = _a.gestate;
71
- // Send move-event to the item being dragged so it will actually move around
72
- (_c = (_b = _this.draggedItemData) === null || _b === void 0 ? void 0 : _b.events) === null || _c === void 0 ? void 0 : _c.emit("move", { gestate: gestate });
73
- var moveX = gestate.dx + _this.initialDragPosition.x;
74
- for (var itemIndex in _this.itemData) {
75
- var itemData = _this.getItemDataForIndex(itemIndex);
76
- var baseX = (0, diggerize_1.digg)(itemData, "baseX");
77
- var smallestWidth = _this.draggedItemData.layout.width;
78
- if (itemData.layout.width < smallestWidth)
79
- smallestWidth = itemData.layout.width;
80
- if (moveX > baseX && moveX < (baseX + smallestWidth) && itemIndex != _this.draggedItemData.index) {
81
- _this.draggedOverItem = itemData.item;
82
- _this.draggedOverItemData = itemData;
83
- var positionOfDraggedItem = _this.currentOrder.indexOf(_this.draggedItemData.item);
84
- var positionOfOverItem = _this.currentOrder.indexOf(_this.draggedOverItemData.item);
85
- _this.currentOrder[positionOfDraggedItem] = _this.draggedOverItemData.item;
86
- _this.currentOrder[positionOfOverItem] = _this.draggedItemData.item;
87
- _this.draggedItemData.position = positionOfOverItem;
88
- _this.draggedOverItemData.position = positionOfDraggedItem;
89
- _this.updatePositionOfItems();
90
- _this.draggedItemNewPosition = positionOfOverItem;
91
- }
92
- }
93
- };
94
- this.setInitialDragPosition = function (initialDragPosition) {
95
- _this.initialDragPosition = initialDragPosition;
96
- };
1
+ import { digg } from "diggerize";
2
+ import EventEmitter from "events";
3
+ export default class DraggableSortController {
4
+ constructor({ data, events, keyExtractor }) {
97
5
  this.data = data;
98
- this.currentOrder = __spreadArray([], data, true);
99
- this.events = events || new events_1.default();
6
+ this.currentOrder = [...data];
7
+ this.events = events || new EventEmitter();
100
8
  this.keyExtractor = keyExtractor;
101
9
  this.draggedItem = null;
102
10
  this.draggedItemData = null;
@@ -104,7 +12,7 @@ var DraggableSortController = /** @class */ (function () {
104
12
  this.draggedOverItem = null;
105
13
  this.draggedOverItemData = null;
106
14
  this.itemData = {};
107
- for (var itemIndex in data) {
15
+ for (const itemIndex in data) {
108
16
  this.itemData[itemIndex] = {
109
17
  index: itemIndex,
110
18
  item: data[itemIndex],
@@ -112,22 +20,91 @@ var DraggableSortController = /** @class */ (function () {
112
20
  };
113
21
  }
114
22
  }
115
- DraggableSortController.prototype.updatePositionOfItems = function () {
116
- var currentPosition = 0;
117
- for (var _i = 0, _a = this.currentOrder; _i < _a.length; _i++) {
118
- var item = _a[_i];
119
- var itemData = this.getItemDataForItem(item);
120
- if ((0, diggerize_1.digg)(itemData, "index") != (0, diggerize_1.digg)(this, "draggedItemData", "index")) { // Dont animate dragged element to a new position because it is currently being dragged
23
+ getEvents = () => this.events;
24
+ getItemDataForItem = (item) => this.getItemDataForIndex(this.data.indexOf(item));
25
+ getItemDataForKey = (key) => this.itemData.find((itemDataI) => digg(itemDataI, "key") == key);
26
+ getItemDataForIndex = (index) => digg(this, "itemData", index);
27
+ onDragStart = ({ item, itemIndex }) => {
28
+ if (item) {
29
+ this.draggedItem = item;
30
+ this.draggedItemData = this.getItemDataForIndex(itemIndex);
31
+ this.draggedItemIndex = itemIndex;
32
+ this.draggedItemPosition = this.draggedItemData.position;
33
+ this.events.emit("onDragStart", { item, itemData: this.draggedItemData });
34
+ }
35
+ };
36
+ onDragEnd = () => {
37
+ const itemData = this.draggedItemData;
38
+ const fromIndex = itemData.index;
39
+ const fromPosition = digg(this, "draggedItemPosition");
40
+ const toPosition = this.draggedItemNewPosition;
41
+ const fromItem = this.draggedItem;
42
+ const toItem = this.draggedOverItem;
43
+ const callbackArgs = { item: itemData.item, itemData, fromIndex, fromItem, fromPosition, toItem, toPosition };
44
+ this.draggedItemData.events.emit("resetPosition", {
45
+ callback: () => {
46
+ this.events.emit("onDragEndAnimation", callbackArgs);
47
+ }
48
+ });
49
+ this.draggedItem = null;
50
+ this.draggedItemData = null;
51
+ this.draggedItemNewPosition = null;
52
+ this.draggedOverItem = null;
53
+ this.draggedOverItemData = null;
54
+ this.events.emit("onDragEnd", callbackArgs);
55
+ };
56
+ onItemLayout = ({ events, index, item, layout }) => {
57
+ if (!(index in this.itemData))
58
+ throw new Error(`Item not found for index ${index}`);
59
+ const itemData = this.itemData[index];
60
+ itemData.layout = layout;
61
+ if (!itemData.initialLayout) {
62
+ itemData.baseX = layout.x;
63
+ itemData.events = events;
64
+ itemData.initialLayout = layout;
65
+ itemData.key = this.keyExtractor(item);
66
+ }
67
+ };
68
+ onMove = ({ gestate }) => {
69
+ // Send move-event to the item being dragged so it will actually move around
70
+ this.draggedItemData?.events?.emit("move", { gestate });
71
+ const moveX = gestate.dx + this.initialDragPosition.x;
72
+ for (const itemIndex in this.itemData) {
73
+ const itemData = this.getItemDataForIndex(itemIndex);
74
+ const baseX = digg(itemData, "baseX");
75
+ let smallestWidth = this.draggedItemData.layout.width;
76
+ if (itemData.layout.width < smallestWidth)
77
+ smallestWidth = itemData.layout.width;
78
+ if (moveX > baseX && moveX < (baseX + smallestWidth) && itemIndex != this.draggedItemData.index) {
79
+ this.draggedOverItem = itemData.item;
80
+ this.draggedOverItemData = itemData;
81
+ const positionOfDraggedItem = this.currentOrder.indexOf(this.draggedItemData.item);
82
+ const positionOfOverItem = this.currentOrder.indexOf(this.draggedOverItemData.item);
83
+ this.currentOrder[positionOfDraggedItem] = this.draggedOverItemData.item;
84
+ this.currentOrder[positionOfOverItem] = this.draggedItemData.item;
85
+ this.draggedItemData.position = positionOfOverItem;
86
+ this.draggedOverItemData.position = positionOfDraggedItem;
87
+ this.updatePositionOfItems();
88
+ this.draggedItemNewPosition = positionOfOverItem;
89
+ }
90
+ }
91
+ };
92
+ setInitialDragPosition = (initialDragPosition) => {
93
+ this.initialDragPosition = initialDragPosition;
94
+ };
95
+ updatePositionOfItems() {
96
+ let currentPosition = 0;
97
+ for (const item of this.currentOrder) {
98
+ const itemData = this.getItemDataForItem(item);
99
+ if (digg(itemData, "index") != digg(this, "draggedItemData", "index")) { // Dont animate dragged element to a new position because it is currently being dragged
121
100
  itemData.events.emit("moveToPosition", {
122
101
  x: currentPosition,
123
102
  y: 0
124
103
  });
125
104
  }
126
105
  itemData.baseX = currentPosition;
127
- currentPosition += (0, diggerize_1.digg)(itemData, "layout", "width");
106
+ currentPosition += digg(itemData, "layout", "width");
128
107
  }
129
- };
130
- return DraggableSortController;
131
- }());
132
- exports.default = DraggableSortController;
133
- //# sourceMappingURL=controller.js.map
108
+ }
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiZHJhZ2dhYmxlLXNvcnQvY29udHJvbGxlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQTtBQUVqQyxNQUFNLENBQUMsT0FBTyxPQUFPLHVCQUF1QjtJQUMxQyxZQUFZLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUVoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFBO1FBRWxDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUE7UUFFL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHO2dCQUN6QixLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3JCLFFBQVEsRUFBRSxTQUFTO2FBQ3BCLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJ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UUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUU5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsdUZBQXVGO2dCQUM5SixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDckMsQ0FBQyxFQUFFLGVBQWU7b0JBQ2xCLENBQUMsRUFBRSxDQUFDO2lCQUNMLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxRQUFRLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQTtZQUNoQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDdEQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gXCJldmVudHNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcmFnZ2FibGVTb3J0Q29udHJvbGxlciB7XG4gIGNvbnN0cnVjdG9yKHtkYXRhLCBldmVudHMsIGtleUV4dHJhY3Rvcn0pIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5jdXJyZW50T3JkZXIgPSBbLi4uZGF0YV1cbiAgICB0aGlzLmV2ZW50cyA9IGV2ZW50cyB8fCBuZXcgRXZlbnRFbWl0dGVyKClcbiAgICB0aGlzLmtleUV4dHJhY3RvciA9IGtleUV4dHJhY3RvclxuXG4gICAgdGhpcy5kcmFnZ2VkSXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtTmV3UG9zaXRpb24gPSBudWxsXG5cbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEgPSBudWxsXG5cbiAgICB0aGlzLml0ZW1EYXRhID0ge31cblxuICAgIGZvciAoY29uc3QgaXRlbUluZGV4IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuaXRlbURhdGFbaXRlbUluZGV4XSA9IHtcbiAgICAgICAgaW5kZXg6IGl0ZW1JbmRleCxcbiAgICAgICAgaXRlbTogZGF0YVtpdGVtSW5kZXhdLFxuICAgICAgICBwb3NpdGlvbjogaXRlbUluZGV4XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RXZlbnRzID0gKCkgPT4gdGhpcy5ldmVudHNcbiAgZ2V0SXRlbURhdGFGb3JJdGVtID0gKGl0ZW0pID0+IHRoaXMuZ2V0SXRlbURhdGFGb3JJbmRleCh0aGlzLmRhdGEuaW5kZXhPZihpdGVtKSlcbiAgZ2V0SXRlbURhdGFGb3JLZXkgPSAoa2V5KSA9PiB0aGlzLml0ZW1EYXRhLmZpbmQoKGl0ZW1EYXRhSSkgPT4gZGlnZyhpdGVtRGF0YUksIFwia2V5XCIpID09IGtleSlcbiAgZ2V0SXRlbURhdGFGb3JJbmRleCA9IChpbmRleCkgPT4gZGlnZyh0aGlzLCBcIml0ZW1EYXRhXCIsIGluZGV4KVxuXG4gIG9uRHJhZ1N0YXJ0ID0gKHtpdGVtLCBpdGVtSW5kZXh9KSA9PiB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuZHJhZ2dlZEl0ZW0gPSBpdGVtXG4gICAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IHRoaXMuZ2V0SXRlbURhdGFGb3JJbmRleChpdGVtSW5kZXgpXG4gICAgICB0aGlzLmRyYWdnZWRJdGVtSW5kZXggPSBpdGVtSW5kZXhcbiAgICAgIHRoaXMuZHJhZ2dlZEl0ZW1Qb3NpdGlvbiA9IHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLnBvc2l0aW9uXG4gICAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnU3RhcnRcIiwge2l0ZW0sIGl0ZW1EYXRhOiB0aGlzLmRyYWdnZWRJdGVtRGF0YX0pXG4gICAgfVxuICB9XG5cbiAgb25EcmFnRW5kID0gKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5kcmFnZ2VkSXRlbURhdGFcbiAgICBjb25zdCBmcm9tSW5kZXggPSBpdGVtRGF0YS5pbmRleFxuICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IGRpZ2codGhpcywgXCJkcmFnZ2VkSXRlbVBvc2l0aW9uXCIpXG4gICAgY29uc3QgdG9Qb3NpdGlvbiA9IHRoaXMuZHJhZ2dlZEl0ZW1OZXdQb3NpdGlvblxuICAgIGNvbnN0IGZyb21JdGVtID0gdGhpcy5kcmFnZ2VkSXRlbVxuICAgIGNvbnN0IHRvSXRlbSA9IHRoaXMuZHJhZ2dlZE92ZXJJdGVtXG4gICAgY29uc3QgY2FsbGJhY2tBcmdzID0ge2l0ZW06IGl0ZW1EYXRhLml0ZW0sIGl0ZW1EYXRhLCBmcm9tSW5kZXgsIGZyb21JdGVtLCBmcm9tUG9zaXRpb24sIHRvSXRlbSwgdG9Qb3NpdGlvbn1cblxuICAgIHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLmV2ZW50cy5lbWl0KFwicmVzZXRQb3NpdGlvblwiLCB7XG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnRW5kQW5pbWF0aW9uXCIsIGNhbGxiYWNrQXJncylcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5kcmFnZ2VkSXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtTmV3UG9zaXRpb24gPSBudWxsXG5cbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEgPSBudWxsXG5cbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnRW5kXCIsIGNhbGxiYWNrQXJncylcbiAgfVxuXG4gIG9uSXRlbUxheW91dCA9ICh7ZXZlbnRzLCBpbmRleCwgaXRlbSwgbGF5b3V0fSkgPT4ge1xuICAgIGlmICghKGluZGV4IGluIHRoaXMuaXRlbURhdGEpKSB0aHJvdyBuZXcgRXJyb3IoYEl0ZW0gbm90IGZvdW5kIGZvciBpbmRleCAke2luZGV4fWApXG5cbiAgICBjb25zdCBpdGVtRGF0YSA9IHRoaXMuaXRlbURhdGFbaW5kZXhdXG5cbiAgICBpdGVtRGF0YS5sYXlvdXQgPSBsYXlvdXRcblxuICAgIGlmICghaXRlbURhdGEuaW5pdGlhbExheW91dCkge1xuICAgICAgaXRlbURhdGEuYmFzZVggPSBsYXlvdXQueFxuICAgICAgaXRlbURhdGEuZXZlbnRzID0gZXZlbnRzXG4gICAgICBpdGVtRGF0YS5pbml0aWFsTGF5b3V0ID0gbGF5b3V0XG4gICAgICBpdGVtRGF0YS5rZXkgPSB0aGlzLmtleUV4dHJhY3RvcihpdGVtKVxuICAgIH1cbiAgfVxuXG4gIG9uTW92ZSA9ICh7Z2VzdGF0ZX0pID0+IHtcbiAgICAvLyBTZW5kIG1vdmUtZXZlbnQgdG8gdGhlIGl0ZW0gYmVpbmcgZHJhZ2dlZCBzbyBpdCB3aWxsIGFjdHVhbGx5IG1vdmUgYXJvdW5kXG4gICAgdGhpcy5kcmFnZ2VkSXRlbURhdGE/LmV2ZW50cz8uZW1pdChcIm1vdmVcIiwge2dlc3RhdGV9KVxuXG4gICAgY29uc3QgbW92ZVggPSBnZXN0YXRlLmR4ICsgdGhpcy5pbml0aWFsRHJhZ1Bvc2l0aW9uLnhcblxuICAgIGZvciAoY29uc3QgaXRlbUluZGV4IGluIHRoaXMuaXRlbURhdGEpIHtcbiAgICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5nZXRJdGVtRGF0YUZvckluZGV4KGl0ZW1JbmRleClcbiAgICAgIGNvbnN0IGJhc2VYID0gZGlnZyhpdGVtRGF0YSwgXCJiYXNlWFwiKVxuICAgICAgbGV0IHNtYWxsZXN0V2lkdGggPSB0aGlzLmRyYWdnZWRJdGVtRGF0YS5sYXlvdXQud2lkdGhcblxuICAgICAgaWYgKGl0ZW1EYXRhLmxheW91dC53aWR0aCA8IHNtYWxsZXN0V2lkdGgpIHNtYWxsZXN0V2lkdGggPSBpdGVtRGF0YS5sYXlvdXQud2lkdGhcblxuICAgICAgaWYgKG1vdmVYID4gYmFzZVggJiYgbW92ZVggPCAoYmFzZVggKyBzbWFsbGVzdFdpZHRoKSAmJiBpdGVtSW5kZXggIT0gdGhpcy5kcmFnZ2VkSXRlbURhdGEuaW5kZXgpIHtcbiAgICAgICAgdGhpcy5kcmFnZ2VkT3Zlckl0ZW0gPSBpdGVtRGF0YS5pdGVtXG4gICAgICAgIHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YSA9IGl0ZW1EYXRhXG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25PZkRyYWdnZWRJdGVtID0gdGhpcy5jdXJyZW50T3JkZXIuaW5kZXhPZih0aGlzLmRyYWdnZWRJdGVtRGF0YS5pdGVtKVxuICAgICAgICBjb25zdCBwb3NpdGlvbk9mT3Zlckl0ZW0gPSB0aGlzLmN1cnJlbnRPcmRlci5pbmRleE9mKHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YS5pdGVtKVxuXG4gICAgICAgIHRoaXMuY3VycmVudE9yZGVyW3Bvc2l0aW9uT2ZEcmFnZ2VkSXRlbV0gPSB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEuaXRlbVxuICAgICAgICB0aGlzLmN1cnJlbnRPcmRlcltwb3NpdGlvbk9mT3Zlckl0ZW1dID0gdGhpcy5kcmFnZ2VkSXRlbURhdGEuaXRlbVxuXG4gICAgICAgIHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLnBvc2l0aW9uID0gcG9zaXRpb25PZk92ZXJJdGVtXG4gICAgICAgIHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YS5wb3NpdGlvbiA9IHBvc2l0aW9uT2ZEcmFnZ2VkSXRlbVxuXG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25PZkl0ZW1zKClcbiAgICAgICAgdGhpcy5kcmFnZ2VkSXRlbU5ld1Bvc2l0aW9uID0gcG9zaXRpb25PZk92ZXJJdGVtXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0SW5pdGlhbERyYWdQb3NpdGlvbiA9IChpbml0aWFsRHJhZ1Bvc2l0aW9uKSA9PiB7XG4gICAgdGhpcy5pbml0aWFsRHJhZ1Bvc2l0aW9uID0gaW5pdGlhbERyYWdQb3NpdGlvblxuICB9XG5cbiAgdXBkYXRlUG9zaXRpb25PZkl0ZW1zKCkge1xuICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSAwXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5jdXJyZW50T3JkZXIpIHtcbiAgICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5nZXRJdGVtRGF0YUZvckl0ZW0oaXRlbSlcblxuICAgICAgaWYgKGRpZ2coaXRlbURhdGEsIFwiaW5kZXhcIikgIT0gZGlnZyh0aGlzLCBcImRyYWdnZWRJdGVtRGF0YVwiLCBcImluZGV4XCIpKSB7IC8vIERvbnQgYW5pbWF0ZSBkcmFnZ2VkIGVsZW1lbnQgdG8gYSBuZXcgcG9zaXRpb24gYmVjYXVzZSBpdCBpcyBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZFxuICAgICAgICBpdGVtRGF0YS5ldmVudHMuZW1pdChcIm1vdmVUb1Bvc2l0aW9uXCIsIHtcbiAgICAgICAgICB4OiBjdXJyZW50UG9zaXRpb24sXG4gICAgICAgICAgeTogMFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpdGVtRGF0YS5iYXNlWCA9IGN1cnJlbnRQb3NpdGlvblxuICAgICAgY3VycmVudFBvc2l0aW9uICs9IGRpZ2coaXRlbURhdGEsIFwibGF5b3V0XCIsIFwid2lkdGhcIilcbiAgICB9XG4gIH1cbn1cbiJdfQ==