@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
@@ -1,134 +1,60 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import BaseComponent from "../base-component.js";
3
+ import React, { createContext } from "react";
4
+ import memo from "set-state-compare/build/memo.js";
5
+ import PropTypes from "prop-types";
6
+ import propTypesExact from "prop-types-exact";
7
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
8
+ const CurrentSwitchContext = createContext([]);
9
+ const Switch = memo(shapeComponent(class Switch extends BaseComponent {
10
+ static defaultProps = {
11
+ name: "[no name]",
12
+ single: true
15
13
  };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
14
+ static propTypes = propTypesExact({
15
+ children: PropTypes.any,
16
+ name: PropTypes.string,
17
+ single: PropTypes.bool
18
+ });
19
+ pathsMatchedKeys = [];
20
+ setup() {
21
+ this.useStates({
22
+ lastUpdate: new Date(),
23
+ pathShown: undefined,
24
+ pathsMatched: {}
25
+ });
26
+ }
27
+ render() {
28
+ const { pathShown, pathsMatched } = this.s;
29
+ return (_jsx(CurrentSwitchContext.Provider, { value: { pathShown, pathsMatched, switchGroup: this }, children: this.props.children }));
30
+ }
31
+ pathShown(pathsMatched) {
32
+ for (const pathMatched of this.tt.pathsMatchedKeys) {
33
+ const isPathMatched = pathsMatched[pathMatched];
34
+ if (isPathMatched) {
35
+ return pathMatched;
36
+ }
23
37
  }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
- if (k2 === undefined) k2 = k;
30
- var desc = Object.getOwnPropertyDescriptor(m, k);
31
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
- desc = { enumerable: true, get: function() { return m[k]; } };
33
38
  }
34
- Object.defineProperty(o, k2, desc);
35
- }) : (function(o, m, k, k2) {
36
- if (k2 === undefined) k2 = k;
37
- o[k2] = m[k];
38
- }));
39
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
- Object.defineProperty(o, "default", { enumerable: true, value: v });
41
- }) : function(o, v) {
42
- o["default"] = v;
43
- });
44
- var __importStar = (this && this.__importStar) || (function () {
45
- var ownKeys = function(o) {
46
- ownKeys = Object.getOwnPropertyNames || function (o) {
47
- var ar = [];
48
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
- return ar;
50
- };
51
- return ownKeys(o);
52
- };
53
- return function (mod) {
54
- if (mod && mod.__esModule) return mod;
55
- var result = {};
56
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
- __setModuleDefault(result, mod);
58
- return result;
59
- };
60
- })();
61
- var __importDefault = (this && this.__importDefault) || function (mod) {
62
- return (mod && mod.__esModule) ? mod : { "default": mod };
63
- };
64
- var _a;
65
- Object.defineProperty(exports, "__esModule", { value: true });
66
- exports.CurrentSwitchContext = void 0;
67
- var jsx_runtime_1 = require("react/jsx-runtime");
68
- var base_component_js_1 = __importDefault(require("../base-component.js"));
69
- var react_1 = __importStar(require("react"));
70
- var memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
71
- var prop_types_1 = __importDefault(require("prop-types"));
72
- var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
73
- var shape_component_js_1 = require("set-state-compare/build/shape-component.js");
74
- var CurrentSwitchContext = (0, react_1.createContext)([]);
75
- exports.CurrentSwitchContext = CurrentSwitchContext;
76
- var Switch = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)((_a = /** @class */ (function (_super) {
77
- __extends(Switch, _super);
78
- function Switch() {
79
- var _this = _super !== null && _super.apply(this, arguments) || this;
80
- _this.pathsMatchedKeys = [];
81
- return _this;
39
+ setPathMatched(path, matched) {
40
+ const { pathsMatchedKeys } = this.tt;
41
+ const { pathsMatched } = this.s;
42
+ if (!path)
43
+ throw new Error("No 'path' given");
44
+ if (pathsMatched[path] == matched)
45
+ return;
46
+ if (!pathsMatchedKeys.includes(path)) {
47
+ pathsMatchedKeys.push(path);
82
48
  }
83
- Switch.prototype.setup = function () {
84
- this.useStates({
85
- lastUpdate: new Date(),
86
- pathShown: undefined,
87
- pathsMatched: {}
88
- });
89
- };
90
- Switch.prototype.render = function () {
91
- var _b = this.s, pathShown = _b.pathShown, pathsMatched = _b.pathsMatched;
92
- return ((0, jsx_runtime_1.jsx)(CurrentSwitchContext.Provider, { value: { pathShown: pathShown, pathsMatched: pathsMatched, switchGroup: this }, children: this.props.children }));
93
- };
94
- Switch.prototype.pathShown = function (pathsMatched) {
95
- for (var _i = 0, _b = this.tt.pathsMatchedKeys; _i < _b.length; _i++) {
96
- var pathMatched = _b[_i];
97
- var isPathMatched = pathsMatched[pathMatched];
98
- if (isPathMatched) {
99
- return pathMatched;
100
- }
101
- }
102
- };
103
- Switch.prototype.setPathMatched = function (path, matched) {
104
- var pathsMatchedKeys = this.tt.pathsMatchedKeys;
105
- var pathsMatched = this.s.pathsMatched;
106
- if (!path)
107
- throw new Error("No 'path' given");
108
- if (pathsMatched[path] == matched)
109
- return;
110
- if (!pathsMatchedKeys.includes(path)) {
111
- pathsMatchedKeys.push(path);
112
- }
113
- var newPathsMatched = __assign({}, this.s.pathsMatched);
114
- newPathsMatched[path] = matched;
115
- this.setState({
116
- lastUpdate: Math.random() + new Date().getTime(),
117
- pathShown: this.pathShown(newPathsMatched),
118
- pathsMatched: newPathsMatched
119
- });
120
- };
121
- return Switch;
122
- }(base_component_js_1.default)),
123
- _a.defaultProps = {
124
- name: "[no name]",
125
- single: true
126
- },
127
- _a.propTypes = (0, prop_types_exact_1.default)({
128
- children: prop_types_1.default.any,
129
- name: prop_types_1.default.string,
130
- single: prop_types_1.default.bool
131
- }),
132
- _a)));
133
- exports.default = Switch;
134
- //# sourceMappingURL=switch.js.map
49
+ const newPathsMatched = { ...this.s.pathsMatched };
50
+ newPathsMatched[path] = matched;
51
+ this.setState({
52
+ lastUpdate: Math.random() + new Date().getTime(),
53
+ pathShown: this.pathShown(newPathsMatched),
54
+ pathsMatched: newPathsMatched
55
+ });
56
+ }
57
+ }));
58
+ export { CurrentSwitchContext };
59
+ export default Switch;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJyb3V0ZXIvc3dpdGNoLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxLQUFLLEVBQUUsRUFBQyxhQUFhLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDMUMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDbEQsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUV6RSxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sTUFBTyxTQUFRLGFBQWE7SUFDbkUsTUFBTSxDQUFDLFlBQVksR0FBRztRQUNwQixJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUE7SUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3RCLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSTtLQUN2QixDQUFDLENBQUE7SUFFRixnQkFBZ0IsR0FBRyxFQUFFLENBQUE7SUFFckIsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDdEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFeEMsT0FBTyxDQUNMLEtBQUMsb0JBQW9CLENBQUMsUUFBUSxJQUFDLEtBQUssRUFBRSxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBQyxZQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FDVSxDQUNqQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFZO1FBQ3BCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25ELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUUvQyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixPQUFPLFdBQVcsQ0FBQTtZQUNwQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU87UUFDMUIsTUFBTSxFQUFDLGdCQUFnQixFQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtRQUNsQyxNQUFNLEVBQUMsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUU3QixJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUM3QyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPO1lBQUUsT0FBTTtRQUV6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUMsQ0FBQTtRQUVoRCxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO1FBRS9CLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztZQUMxQyxZQUFZLEVBQUUsZUFBZTtTQUM5QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUE7QUFFSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsQ0FBQTtBQUM3QixlQUFlLE1BQU0sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0fSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5cbmNvbnN0IEN1cnJlbnRTd2l0Y2hDb250ZXh0ID0gY3JlYXRlQ29udGV4dChbXSlcblxuY29uc3QgU3dpdGNoID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBTd2l0Y2ggZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBuYW1lOiBcIltubyBuYW1lXVwiLFxuICAgIHNpbmdsZTogdHJ1ZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHNpbmdsZTogUHJvcFR5cGVzLmJvb2xcbiAgfSlcblxuICBwYXRoc01hdGNoZWRLZXlzID0gW11cblxuICBzZXR1cCgpIHtcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgcGF0aFNob3duOiB1bmRlZmluZWQsXG4gICAgICBwYXRoc01hdGNoZWQ6IHt9XG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7cGF0aFNob3duLCBwYXRoc01hdGNoZWR9ID0gdGhpcy5zXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEN1cnJlbnRTd2l0Y2hDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7cGF0aFNob3duLCBwYXRoc01hdGNoZWQsIHN3aXRjaEdyb3VwOiB0aGlzfX0+XG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgPC9DdXJyZW50U3dpdGNoQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH1cblxuICBwYXRoU2hvd24ocGF0aHNNYXRjaGVkKSB7XG4gICAgZm9yIChjb25zdCBwYXRoTWF0Y2hlZCBvZiB0aGlzLnR0LnBhdGhzTWF0Y2hlZEtleXMpIHtcbiAgICAgIGNvbnN0IGlzUGF0aE1hdGNoZWQgPSBwYXRoc01hdGNoZWRbcGF0aE1hdGNoZWRdXG5cbiAgICAgIGlmIChpc1BhdGhNYXRjaGVkKSB7XG4gICAgICAgIHJldHVybiBwYXRoTWF0Y2hlZFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFBhdGhNYXRjaGVkKHBhdGgsIG1hdGNoZWQpIHtcbiAgICBjb25zdCB7cGF0aHNNYXRjaGVkS2V5c30gPSB0aGlzLnR0XG4gICAgY29uc3Qge3BhdGhzTWF0Y2hlZH0gPSB0aGlzLnNcblxuICAgIGlmICghcGF0aCkgdGhyb3cgbmV3IEVycm9yKFwiTm8gJ3BhdGgnIGdpdmVuXCIpXG4gICAgaWYgKHBhdGhzTWF0Y2hlZFtwYXRoXSA9PSBtYXRjaGVkKSByZXR1cm5cblxuICAgIGlmICghcGF0aHNNYXRjaGVkS2V5cy5pbmNsdWRlcyhwYXRoKSkge1xuICAgICAgcGF0aHNNYXRjaGVkS2V5cy5wdXNoKHBhdGgpXG4gICAgfVxuXG4gICAgY29uc3QgbmV3UGF0aHNNYXRjaGVkID0gey4uLnRoaXMucy5wYXRoc01hdGNoZWR9XG5cbiAgICBuZXdQYXRoc01hdGNoZWRbcGF0aF0gPSBtYXRjaGVkXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGxhc3RVcGRhdGU6IE1hdGgucmFuZG9tKCkgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgIHBhdGhTaG93bjogdGhpcy5wYXRoU2hvd24obmV3UGF0aHNNYXRjaGVkKSxcbiAgICAgIHBhdGhzTWF0Y2hlZDogbmV3UGF0aHNNYXRjaGVkXG4gICAgfSlcbiAgfVxufSkpXG5cbmV4cG9ydCB7Q3VycmVudFN3aXRjaENvbnRleHR9XG5leHBvcnQgZGVmYXVsdCBTd2l0Y2hcbiJdfQ==
package/build/router.js CHANGED
@@ -1,96 +1,36 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import BaseComponent from "./base-component.js";
3
+ import PropTypes from "prop-types";
4
+ import propTypesExact from "prop-types-exact";
5
+ import React, { memo, Suspense } from "react";
6
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
7
+ import usePath from "on-location-changed/build/use-path.js";
8
+ import useRouter from "./use-router.js";
9
+ export default memo(shapeComponent(class ApiMakerRouter extends BaseComponent {
10
+ static propTypes = propTypesExact({
11
+ history: PropTypes.object,
12
+ locales: PropTypes.array.isRequired,
13
+ notFoundComponent: PropTypes.elementType,
14
+ requireComponent: PropTypes.func.isRequired,
15
+ routeDefinitions: PropTypes.object,
16
+ routes: PropTypes.object
17
+ });
18
+ render() {
19
+ const path = usePath();
20
+ const { locales, notFoundComponent, requireComponent, routeDefinitions, routes } = this.props;
21
+ const { match } = useRouter({ locales, path, routes, routeDefinitions });
22
+ const { matchingRoute } = match;
23
+ if (!matchingRoute) {
24
+ if (notFoundComponent) {
25
+ const NotFoundComponent = notFoundComponent;
26
+ return (_jsx(Suspense, { fallback: _jsx("div", {}), children: _jsx(NotFoundComponent, { match: match }) }));
27
+ }
28
+ else {
29
+ return null;
30
+ }
31
+ }
32
+ const Component = requireComponent({ routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition });
33
+ return (_jsx(Suspense, { fallback: _jsx("div", {}), children: _jsx(Component, { match: match }) }));
22
34
  }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
35
  }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || (function () {
34
- var ownKeys = function(o) {
35
- ownKeys = Object.getOwnPropertyNames || function (o) {
36
- var ar = [];
37
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
- return ar;
39
- };
40
- return ownKeys(o);
41
- };
42
- return function (mod) {
43
- if (mod && mod.__esModule) return mod;
44
- var result = {};
45
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
- __setModuleDefault(result, mod);
47
- return result;
48
- };
49
- })();
50
- var __importDefault = (this && this.__importDefault) || function (mod) {
51
- return (mod && mod.__esModule) ? mod : { "default": mod };
52
- };
53
- var _a;
54
- Object.defineProperty(exports, "__esModule", { value: true });
55
- var jsx_runtime_1 = require("react/jsx-runtime");
56
- var base_component_js_1 = __importDefault(require("./base-component.js"));
57
- var prop_types_1 = __importDefault(require("prop-types"));
58
- var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
59
- var react_1 = __importStar(require("react"));
60
- var shape_component_js_1 = require("set-state-compare/build/shape-component.js");
61
- var use_path_js_1 = __importDefault(require("on-location-changed/build/use-path.js"));
62
- var use_router_js_1 = __importDefault(require("./use-router.js"));
63
- exports.default = (0, react_1.memo)((0, shape_component_js_1.shapeComponent)((_a = /** @class */ (function (_super) {
64
- __extends(ApiMakerRouter, _super);
65
- function ApiMakerRouter() {
66
- return _super !== null && _super.apply(this, arguments) || this;
67
- }
68
- ApiMakerRouter.prototype.render = function () {
69
- var path = (0, use_path_js_1.default)();
70
- var _b = this.props, locales = _b.locales, notFoundComponent = _b.notFoundComponent, requireComponent = _b.requireComponent, routeDefinitions = _b.routeDefinitions, routes = _b.routes;
71
- var match = (0, use_router_js_1.default)({ locales: locales, path: path, routes: routes, routeDefinitions: routeDefinitions }).match;
72
- var matchingRoute = match.matchingRoute;
73
- if (!matchingRoute) {
74
- if (notFoundComponent) {
75
- var NotFoundComponent = notFoundComponent;
76
- return ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)("div", {}), children: (0, jsx_runtime_1.jsx)(NotFoundComponent, { match: match }) }));
77
- }
78
- else {
79
- return null;
80
- }
81
- }
82
- var Component = requireComponent({ routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition });
83
- return ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)("div", {}), children: (0, jsx_runtime_1.jsx)(Component, { match: match }) }));
84
- };
85
- return ApiMakerRouter;
86
- }(base_component_js_1.default)),
87
- _a.propTypes = (0, prop_types_exact_1.default)({
88
- history: prop_types_1.default.object,
89
- locales: prop_types_1.default.array.isRequired,
90
- notFoundComponent: prop_types_1.default.elementType,
91
- requireComponent: prop_types_1.default.func.isRequired,
92
- routeDefinitions: prop_types_1.default.object,
93
- routes: prop_types_1.default.object
94
- }),
95
- _a)));
96
- //# sourceMappingURL=router.js.map
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJyb3V0ZXIuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGFBQWEsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RSxPQUFPLE9BQU8sTUFBTSx1Q0FBdUMsQ0FBQTtBQUMzRCxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQTtBQUV2QyxlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxjQUFlLFNBQVEsYUFBYTtJQUMzRSxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDekIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVTtRQUNuQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsV0FBVztRQUN4QyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7UUFDM0MsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDbEMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0tBQ3pCLENBQUMsQ0FBQTtJQUVGLE1BQU07UUFDSixNQUFNLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUN0QixNQUFNLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDM0YsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLFNBQVMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFDLENBQUMsQ0FBQTtRQUNwRSxNQUFNLEVBQUMsYUFBYSxFQUFDLEdBQUcsS0FBSyxDQUFBO1FBRTdCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7Z0JBRTNDLE9BQU8sQ0FDTCxLQUFDLFFBQVEsSUFBQyxRQUFRLEVBQUUsZUFBTyxZQUN6QixLQUFDLGlCQUFpQixJQUFDLEtBQUssRUFBRSxLQUFLLEdBQUksR0FDMUIsQ0FDWixDQUFBO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMscUJBQXFCLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQTtRQUUxRyxPQUFPLENBQ0wsS0FBQyxRQUFRLElBQUMsUUFBUSxFQUFFLGVBQU8sWUFDekIsS0FBQyxTQUFTLElBQUMsS0FBSyxFQUFFLEtBQUssR0FBSSxHQUNsQixDQUNaLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgUmVhY3QsIHttZW1vLCBTdXNwZW5zZX0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IHVzZVBhdGggZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXBhdGguanNcIlxuaW1wb3J0IHVzZVJvdXRlciBmcm9tIFwiLi91c2Utcm91dGVyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclJvdXRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGhpc3Rvcnk6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9jYWxlczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgbm90Rm91bmRDb21wb25lbnQ6IFByb3BUeXBlcy5lbGVtZW50VHlwZSxcbiAgICByZXF1aXJlQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHJvdXRlRGVmaW5pdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgcm91dGVzOiBQcm9wVHlwZXMub2JqZWN0XG4gIH0pXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHBhdGggPSB1c2VQYXRoKClcbiAgICBjb25zdCB7bG9jYWxlcywgbm90Rm91bmRDb21wb25lbnQsIHJlcXVpcmVDb21wb25lbnQsIHJvdXRlRGVmaW5pdGlvbnMsIHJvdXRlc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge21hdGNofSA9IHVzZVJvdXRlcih7bG9jYWxlcywgcGF0aCwgcm91dGVzLCByb3V0ZURlZmluaXRpb25zfSlcbiAgICBjb25zdCB7bWF0Y2hpbmdSb3V0ZX0gPSBtYXRjaFxuXG4gICAgaWYgKCFtYXRjaGluZ1JvdXRlKSB7XG4gICAgICBpZiAobm90Rm91bmRDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgTm90Rm91bmRDb21wb25lbnQgPSBub3RGb3VuZENvbXBvbmVudFxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFN1c3BlbnNlIGZhbGxiYWNrPXs8ZGl2IC8+fT5cbiAgICAgICAgICAgIDxOb3RGb3VuZENvbXBvbmVudCBtYXRjaD17bWF0Y2h9IC8+XG4gICAgICAgICAgPC9TdXNwZW5zZT5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBDb21wb25lbnQgPSByZXF1aXJlQ29tcG9uZW50KHtyb3V0ZURlZmluaXRpb246IG1hdGNoaW5nUm91dGUucGFyc2VkUm91dGVEZWZpbml0aW9uLnJvdXRlRGVmaW5pdGlvbn0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN1c3BlbnNlIGZhbGxiYWNrPXs8ZGl2IC8+fT5cbiAgICAgICAgPENvbXBvbmVudCBtYXRjaD17bWF0Y2h9IC8+XG4gICAgICA8L1N1c3BlbnNlPlxuICAgIClcbiAgfVxufSkpXG4iXX0=