@kaspernj/api-maker 1.0.2011 → 1.0.2013

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 (413) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +10 -1
  2. package/README.md +35 -0
  3. package/android/build.gradle +43 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
  6. package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
  7. package/build/api.js +120 -0
  8. package/build/attribute-not-loaded-error.js +2 -0
  9. package/build/base-component.js +5 -0
  10. package/build/base-error.js +33 -0
  11. package/build/base-model/attribute.js +25 -0
  12. package/build/base-model/column.js +11 -0
  13. package/build/base-model/reflection.js +14 -0
  14. package/build/base-model/scope.js +11 -0
  15. package/build/base-model.js +828 -0
  16. package/build/bootstrap/attribute-row.js +135 -0
  17. package/build/bootstrap/attribute-rows.js +31 -0
  18. package/build/bootstrap/card.js +138 -0
  19. package/build/bootstrap/checkbox.js +97 -0
  20. package/build/bootstrap/checkboxes.js +183 -0
  21. package/build/bootstrap/index.js +2 -0
  22. package/build/bootstrap/input.js +129 -0
  23. package/build/bootstrap/invalid-feedback.js +27 -0
  24. package/build/bootstrap/paginate.js +150 -0
  25. package/build/bootstrap/radio-buttons.js +72 -0
  26. package/build/bootstrap/select.js +88 -0
  27. package/build/bootstrap/sort-link.js +131 -0
  28. package/build/cable-connection-pool.js +128 -0
  29. package/build/cable-subscription-pool.js +207 -0
  30. package/build/cable-subscription.js +21 -0
  31. package/build/cache-key-generator.js +81 -0
  32. package/build/can-can.js +134 -0
  33. package/build/channels-consumer.js +9 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +280 -0
  36. package/build/command-submit-data.js +81 -0
  37. package/build/commands-pool.js +195 -0
  38. package/build/compose.js +9 -0
  39. package/build/config.js +62 -0
  40. package/build/custom-error.js +5 -0
  41. package/build/data-set-to-attributes.js +10 -0
  42. package/build/deserializer.js +56 -0
  43. package/build/destroy-error.js +5 -0
  44. package/build/devise.js +112 -0
  45. package/build/draggable-sort/controller.js +136 -0
  46. package/build/draggable-sort/index.js +114 -0
  47. package/build/draggable-sort/item.js +188 -0
  48. package/build/error-logger.js +101 -0
  49. package/build/error-messages.js +13 -0
  50. package/build/event-connection.js +32 -0
  51. package/build/event-emitter-listener.js +15 -0
  52. package/build/event-model-class.js +24 -0
  53. package/build/events.js +5 -0
  54. package/build/flash-message.js +79 -0
  55. package/build/form.js +83 -0
  56. package/build/history-expo.js +20 -0
  57. package/build/history-react-native.js +20 -0
  58. package/build/history.js +3 -0
  59. package/build/index.js +3 -0
  60. package/build/inputs/attachment.js +133 -0
  61. package/build/inputs/auto-submit.js +36 -0
  62. package/build/inputs/checkbox.js +138 -0
  63. package/build/inputs/checkboxes.js +112 -0
  64. package/build/inputs/id-for-component.js +15 -0
  65. package/build/inputs/input-wrapper.js +19 -0
  66. package/build/inputs/input.js +243 -0
  67. package/build/inputs/money.js +179 -0
  68. package/build/inputs/name-for-component.js +13 -0
  69. package/build/inputs/select.js +93 -0
  70. package/build/instance-of-class-name.js +23 -0
  71. package/build/is-expo.js +22 -0
  72. package/build/key-value-store.js +53 -0
  73. package/build/link.js +73 -0
  74. package/build/logger.js +30 -0
  75. package/build/modal.js +38 -0
  76. package/build/model-class-require.js +13 -0
  77. package/build/model-events.js +30 -0
  78. package/build/model-name.js +28 -0
  79. package/build/model-prop-type.js +101 -0
  80. package/build/model-recipes-loader.js +32 -0
  81. package/build/model-recipes-model-loader.js +357 -0
  82. package/build/models-response-reader.js +40 -0
  83. package/build/models.js +8 -0
  84. package/build/money-formatter.js +78 -0
  85. package/build/not-loaded-error.js +2 -0
  86. package/build/params.js +61 -0
  87. package/build/preloaded.js +38 -0
  88. package/build/resize-observer.js +11 -0
  89. package/build/result.js +13 -0
  90. package/build/router/route.js +270 -0
  91. package/build/router/switch.js +72 -0
  92. package/build/router.js +59 -0
  93. package/build/routes-native.js +202 -0
  94. package/build/routes.js +50 -0
  95. package/build/run-last.js +35 -0
  96. package/build/serializer.js +63 -0
  97. package/build/services.js +20 -0
  98. package/build/session-status-updater.js +134 -0
  99. package/build/source-maps-loader.js +184 -0
  100. package/build/super-admin/config-reader.js +85 -0
  101. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  102. package/build/super-admin/edit-page/edit-attribute-content.js +55 -0
  103. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  104. package/build/super-admin/edit-page/edit-attribute.js +77 -0
  105. package/build/super-admin/edit-page.js +123 -0
  106. package/build/super-admin/has-edit-config.js +12 -0
  107. package/build/super-admin/index-page.js +25 -0
  108. package/build/super-admin/index.js +181 -0
  109. package/build/super-admin/layout/header/index.js +161 -0
  110. package/build/super-admin/layout/index.js +164 -0
  111. package/build/super-admin/layout/menu/index.js +206 -0
  112. package/build/super-admin/layout/menu/menu-content.js +46 -0
  113. package/build/super-admin/layout/menu/menu-item.js +84 -0
  114. package/build/super-admin/layout/no-access.js +27 -0
  115. package/build/super-admin/model-class-table.js +61 -0
  116. package/build/super-admin/models.js +8 -0
  117. package/build/super-admin/show-nav.js +51 -0
  118. package/build/super-admin/show-page/belongs-to-attribute-row.js +29 -0
  119. package/build/super-admin/show-page/index.js +141 -0
  120. package/build/super-admin/show-reflection-actions.js +47 -0
  121. package/build/super-admin/show-reflection-link.js +48 -0
  122. package/build/super-admin/show-reflection-page.js +48 -0
  123. package/build/table/column-content.js +117 -0
  124. package/build/table/column-identifier.js +18 -0
  125. package/build/table/column-visible.js +7 -0
  126. package/build/table/components/column.js +21 -0
  127. package/build/table/components/flat-list.js +21 -0
  128. package/build/table/components/header.js +26 -0
  129. package/build/table/components/row.js +26 -0
  130. package/build/table/filters/attribute-element.js +44 -0
  131. package/build/table/filters/filter-form.js +402 -0
  132. package/build/table/filters/filter.js +90 -0
  133. package/build/table/filters/index.js +184 -0
  134. package/build/table/filters/load-search-modal.js +175 -0
  135. package/build/table/filters/reflection-element.js +37 -0
  136. package/build/table/filters/save-search-modal.js +88 -0
  137. package/build/table/filters/scope-element.js +42 -0
  138. package/build/table/header-column-content.js +68 -0
  139. package/build/table/header-column.js +144 -0
  140. package/build/table/header-select.js +105 -0
  141. package/build/table/model-callback-args.js +10 -0
  142. package/build/table/model-column.js +97 -0
  143. package/build/table/model-row.js +193 -0
  144. package/build/table/select-calculator.js +63 -0
  145. package/build/table/settings/column-row.js +97 -0
  146. package/build/table/settings/download-action.js +79 -0
  147. package/build/table/settings/index.js +92 -0
  148. package/build/table/table-settings.js +219 -0
  149. package/build/table/table.js +972 -0
  150. package/build/table/use-sorting.js +34 -0
  151. package/build/table/widths.js +75 -0
  152. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  153. package/build/table/worker-plugins-checkbox.js +115 -0
  154. package/build/translated-attributes.js +10 -0
  155. package/build/translated-collections.js +12 -0
  156. package/build/updated-attribute.js +76 -0
  157. package/build/url-encode.js +15 -0
  158. package/build/use-breakpoint.js +71 -0
  159. package/build/use-can-can.js +55 -0
  160. package/build/use-collection.js +225 -0
  161. package/build/use-created-event.js +52 -0
  162. package/build/use-current-user.js +76 -0
  163. package/build/use-destroyed-event.js +60 -0
  164. package/build/use-event-emitter.js +13 -0
  165. package/build/use-event-listener.js +16 -0
  166. package/build/use-input.js +137 -0
  167. package/build/use-model-event.js +60 -0
  168. package/build/use-model.js +169 -0
  169. package/build/use-resize-observer.js +23 -0
  170. package/build/use-router.js +104 -0
  171. package/build/use-screen-layout.js +39 -0
  172. package/build/use-styles.js +41 -0
  173. package/build/use-updated-event.js +60 -0
  174. package/build/use-validation-errors.js +30 -0
  175. package/build/utils/card.js +51 -0
  176. package/build/utils/checkbox.js +78 -0
  177. package/build/utils/checkboxes.js +163 -0
  178. package/build/utils/default-style.js +18 -0
  179. package/build/utils/icon.js +23 -0
  180. package/build/utils/invalid-feedback.js +19 -0
  181. package/build/utils/modal.js +62 -0
  182. package/build/utils/text.js +44 -0
  183. package/build/validation-error.js +28 -0
  184. package/build/validation-errors.js +98 -0
  185. package/build/with-api-maker.js +29 -0
  186. package/build/with-collection.js +14 -0
  187. package/build/with-current-user.js +10 -0
  188. package/build/with-model.js +15 -0
  189. package/build/with-router.js +22 -0
  190. package/expo-module.config.json +17 -0
  191. package/ios/ApiMaker.podspec +29 -0
  192. package/ios/ApiMakerModule.swift +48 -0
  193. package/ios/ApiMakerView.swift +38 -0
  194. package/package.json +49 -46
  195. package/src/{api.mjs → api.js} +38 -37
  196. package/src/base-component.jsx +5 -0
  197. package/src/{base-error.mjs → base-error.js} +4 -6
  198. package/src/base-model/attribute.js +33 -0
  199. package/src/base-model/column.js +13 -0
  200. package/src/base-model/reflection.js +15 -0
  201. package/src/base-model/scope.js +12 -0
  202. package/src/{base-model.mjs → base-model.js} +302 -144
  203. package/src/bootstrap/attribute-row.jsx +135 -0
  204. package/src/bootstrap/attribute-rows.jsx +27 -0
  205. package/src/bootstrap/card.jsx +149 -0
  206. package/src/bootstrap/checkbox.jsx +86 -0
  207. package/src/bootstrap/checkboxes.jsx +185 -0
  208. package/src/bootstrap/index.js +0 -0
  209. package/src/bootstrap/input.jsx +173 -0
  210. package/src/bootstrap/invalid-feedback.jsx +31 -0
  211. package/src/bootstrap/paginate.jsx +187 -0
  212. package/src/bootstrap/radio-buttons.jsx +87 -0
  213. package/src/bootstrap/select.jsx +110 -0
  214. package/src/bootstrap/sort-link.jsx +106 -0
  215. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +16 -36
  216. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +26 -21
  217. package/src/{cable-subscription.mjs → cable-subscription.js} +6 -4
  218. package/src/cache-key-generator.js +100 -0
  219. package/src/{can-can.mjs → can-can.js} +13 -12
  220. package/src/channels-consumer.js +10 -0
  221. package/src/collection-loader.jsx +58 -224
  222. package/src/{collection.mjs → collection.js} +98 -44
  223. package/src/{command-submit-data.mjs → command-submit-data.js} +2 -7
  224. package/src/{commands-pool.mjs → commands-pool.js} +57 -41
  225. package/src/compose.js +11 -0
  226. package/src/{config.mjs → config.js} +6 -2
  227. package/src/{custom-error.mjs → custom-error.js} +1 -1
  228. package/src/data-set-to-attributes.js +13 -0
  229. package/src/{deserializer.mjs → deserializer.js} +3 -3
  230. package/src/destroy-error.js +7 -0
  231. package/src/devise.js +129 -0
  232. package/src/draggable-sort/controller.js +137 -0
  233. package/src/draggable-sort/index.jsx +108 -0
  234. package/src/draggable-sort/item.jsx +174 -0
  235. package/src/{error-logger.mjs → error-logger.js} +12 -7
  236. package/src/{error-messages.mjs → error-messages.js} +1 -0
  237. package/src/event-connection.jsx +1 -1
  238. package/src/event-emitter-listener.jsx +8 -27
  239. package/src/event-model-class.jsx +2 -4
  240. package/src/events.js +7 -0
  241. package/src/flash-message.js +70 -0
  242. package/src/form.jsx +91 -0
  243. package/src/history-expo.js +23 -0
  244. package/src/history-react-native.js +25 -0
  245. package/src/history.js +3 -0
  246. package/src/index.js +3 -0
  247. package/src/inputs/attachment.jsx +108 -0
  248. package/src/inputs/auto-submit.js +37 -0
  249. package/src/inputs/checkbox.jsx +125 -0
  250. package/src/inputs/checkboxes.jsx +116 -0
  251. package/src/inputs/id-for-component.js +15 -0
  252. package/src/inputs/input-wrapper.jsx +16 -0
  253. package/src/inputs/input.jsx +260 -0
  254. package/src/inputs/money.jsx +187 -0
  255. package/src/inputs/name-for-component.js +15 -0
  256. package/src/inputs/select.jsx +104 -0
  257. package/src/is-expo.js +18 -0
  258. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  259. package/src/link.jsx +54 -9
  260. package/src/logger.js +38 -0
  261. package/src/modal.jsx +37 -0
  262. package/src/model-class-require.js +17 -0
  263. package/src/{model-events.mjs → model-events.js} +1 -1
  264. package/src/{model-name.mjs → model-name.js} +8 -8
  265. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  266. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +5 -5
  267. package/src/{models-response-reader.mjs → models-response-reader.js} +3 -4
  268. package/src/models.js +7 -0
  269. package/src/{models.mjs.erb → models.js.erb} +6 -3
  270. package/src/{money-formatter.mjs → money-formatter.js} +5 -4
  271. package/src/{params.mjs → params.js} +17 -7
  272. package/src/{preloaded.mjs → preloaded.js} +2 -2
  273. package/src/resize-observer.jsx +10 -0
  274. package/src/result.js +13 -0
  275. package/src/router/route.jsx +246 -0
  276. package/src/router/switch.jsx +76 -0
  277. package/src/router.jsx +23 -21
  278. package/src/{routes-native.mjs → routes-native.js} +12 -6
  279. package/src/{routes.mjs → routes.js} +1 -1
  280. package/src/run-last.js +39 -0
  281. package/src/{serializer.mjs → serializer.js} +2 -2
  282. package/src/{services.mjs → services.js} +1 -1
  283. package/src/session-status-updater.js +172 -0
  284. package/src/{source-maps-loader.mjs → source-maps-loader.js} +54 -28
  285. package/src/super-admin/config-reader.jsx +93 -0
  286. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +81 -0
  287. package/src/super-admin/edit-page/edit-attribute-content.jsx +57 -0
  288. package/src/super-admin/edit-page/edit-attribute-input.jsx +71 -0
  289. package/src/super-admin/edit-page/edit-attribute.jsx +81 -0
  290. package/src/super-admin/edit-page.jsx +117 -0
  291. package/src/super-admin/has-edit-config.js +15 -0
  292. package/src/super-admin/index-page.jsx +23 -0
  293. package/src/super-admin/index.jsx +197 -0
  294. package/src/super-admin/layout/header/index.jsx +144 -0
  295. package/src/super-admin/layout/header/style.scss +45 -0
  296. package/src/super-admin/layout/index.jsx +154 -0
  297. package/src/super-admin/layout/menu/index.jsx +171 -0
  298. package/src/super-admin/layout/menu/menu-content.jsx +43 -0
  299. package/src/super-admin/layout/menu/menu-item.jsx +70 -0
  300. package/src/super-admin/layout/menu/style.scss +11 -0
  301. package/src/super-admin/layout/no-access.jsx +26 -0
  302. package/src/super-admin/model-class-table.jsx +66 -0
  303. package/src/super-admin/models.js +11 -0
  304. package/src/super-admin/show-nav.jsx +44 -0
  305. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +30 -0
  306. package/src/super-admin/show-page/index.jsx +141 -0
  307. package/src/super-admin/show-reflection-actions.jsx +49 -0
  308. package/src/super-admin/show-reflection-link.jsx +40 -0
  309. package/src/super-admin/show-reflection-page.jsx +47 -0
  310. package/src/super-admin/stylesheets/variables.scss +11 -0
  311. package/src/table/column-content.jsx +122 -0
  312. package/src/table/column-identifier.js +23 -0
  313. package/src/table/column-visible.js +7 -0
  314. package/src/table/components/column.jsx +19 -0
  315. package/src/table/components/flat-list.jsx +19 -0
  316. package/src/table/components/header.jsx +21 -0
  317. package/src/table/components/row.jsx +23 -0
  318. package/src/table/filters/attribute-element.jsx +47 -0
  319. package/src/table/filters/filter-form.jsx +407 -0
  320. package/src/table/filters/filter.jsx +70 -0
  321. package/src/table/filters/index.jsx +170 -0
  322. package/src/table/filters/load-search-modal.jsx +146 -0
  323. package/src/table/filters/reflection-element.jsx +38 -0
  324. package/src/table/filters/save-search-modal.jsx +74 -0
  325. package/src/table/filters/scope-element.jsx +44 -0
  326. package/src/table/header-column-content.jsx +55 -0
  327. package/src/table/header-column.jsx +129 -0
  328. package/src/table/header-select.jsx +73 -0
  329. package/src/table/model-callback-args.js +10 -0
  330. package/src/table/model-column.jsx +82 -0
  331. package/src/table/model-row.jsx +136 -0
  332. package/src/table/select-calculator.js +65 -0
  333. package/src/table/settings/column-row.jsx +93 -0
  334. package/src/table/settings/download-action.jsx +68 -0
  335. package/src/table/settings/index.jsx +65 -0
  336. package/src/table/table-settings.js +263 -0
  337. package/src/table/table.jsx +950 -0
  338. package/src/table/use-sorting.js +35 -0
  339. package/src/table/variables.scss +11 -0
  340. package/src/table/widths.jsx +87 -0
  341. package/src/table/worker-plugins-check-all-checkbox.jsx +112 -0
  342. package/src/table/worker-plugins-checkbox.jsx +104 -0
  343. package/src/translated-attributes.js +11 -0
  344. package/src/{translated-collections.mjs → translated-collections.js} +3 -2
  345. package/src/updated-attribute.jsx +1 -1
  346. package/src/url-encode.js +18 -0
  347. package/src/use-breakpoint.js +87 -0
  348. package/src/use-can-can.js +55 -0
  349. package/src/use-collection.js +280 -0
  350. package/src/use-created-event.js +55 -0
  351. package/src/use-current-user.js +88 -0
  352. package/src/use-destroyed-event.js +60 -0
  353. package/src/use-event-emitter.js +15 -0
  354. package/src/use-event-listener.js +19 -0
  355. package/src/use-input.js +157 -0
  356. package/src/use-model-event.js +60 -0
  357. package/src/use-model.js +189 -0
  358. package/src/use-resize-observer.js +24 -0
  359. package/src/use-router.jsx +128 -0
  360. package/src/use-screen-layout.js +49 -0
  361. package/src/use-styles.js +50 -0
  362. package/src/use-updated-event.js +60 -0
  363. package/src/use-validation-errors.js +33 -0
  364. package/src/utils/card.jsx +49 -0
  365. package/src/utils/checkbox.jsx +80 -0
  366. package/src/utils/checkboxes.jsx +158 -0
  367. package/src/utils/default-style.jsx +25 -0
  368. package/src/utils/icon.jsx +21 -0
  369. package/src/utils/invalid-feedback.jsx +20 -0
  370. package/src/utils/modal.jsx +60 -0
  371. package/src/utils/text.jsx +38 -0
  372. package/src/{validation-error.mjs → validation-error.js} +9 -5
  373. package/src/{validation-errors.mjs → validation-errors.js} +15 -27
  374. package/src/with-api-maker.jsx +31 -0
  375. package/src/with-collection.jsx +17 -0
  376. package/src/with-current-user.jsx +7 -25
  377. package/src/with-model.jsx +16 -0
  378. package/src/with-router.jsx +7 -129
  379. package/__tests__/base-model.test.js +0 -71
  380. package/__tests__/cable-connection-pool.test.js +0 -227
  381. package/__tests__/cable-subscription-pool.test.js +0 -26
  382. package/__tests__/can-can.test.js +0 -34
  383. package/__tests__/collection.test.js +0 -51
  384. package/__tests__/custom-error.test.js +0 -13
  385. package/__tests__/model-name.test.js +0 -34
  386. package/__tests__/model-prop-type.test.js +0 -113
  387. package/__tests__/params.test.js +0 -40
  388. package/__tests__/routes-native.test.js +0 -103
  389. package/__tests__/routes.test.js +0 -46
  390. package/__tests__/serializer.test.js +0 -30
  391. package/__tests__/support/task.js +0 -27
  392. package/__tests__/support/user.js +0 -32
  393. package/index.js +0 -1
  394. package/jest.config.js +0 -4
  395. package/src/can-can-loader.jsx +0 -54
  396. package/src/channels-consumer.mjs +0 -3
  397. package/src/destroy-error.mjs +0 -7
  398. package/src/devise.mjs +0 -122
  399. package/src/event-created.jsx +0 -65
  400. package/src/event-destroyed.jsx +0 -29
  401. package/src/event-listener.jsx +0 -38
  402. package/src/event-updated.jsx +0 -74
  403. package/src/logger.mjs +0 -25
  404. package/src/model-class-require.mjs +0 -10
  405. package/src/model-load-wrapper.jsx +0 -116
  406. package/src/result.mjs +0 -29
  407. package/src/session-status-updater.mjs +0 -116
  408. package/webpack.config.js +0 -15
  409. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  410. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  411. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  412. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  413. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
@@ -0,0 +1,77 @@
1
+ import BaseComponent from "../../base-component";
2
+ import { digg } from "diggerize";
3
+ import EditAttributeCheckbox from "./edit-attribute-checkbox";
4
+ import EditAttributeContent from "./edit-attribute-content";
5
+ import EditAttributeInput from "./edit-attribute-input";
6
+ import * as inflection from "inflection";
7
+ import Locales from "shared/locales";
8
+ import memo from "set-state-compare/src/memo";
9
+ import PropTypes from "prop-types";
10
+ import propTypesExact from "prop-types-exact";
11
+ import React from "react";
12
+ import { View } from "react-native";
13
+ import { shapeComponent } from "set-state-compare/src/shape-component";
14
+ export default memo(shapeComponent(class EditAttribute extends BaseComponent {
15
+ static propTypes = propTypesExact({
16
+ attribute: PropTypes.object.isRequired,
17
+ model: PropTypes.object,
18
+ modelClass: PropTypes.func
19
+ });
20
+ render() {
21
+ const {
22
+ attribute,
23
+ model,
24
+ modelClass
25
+ } = this.props;
26
+ const availableLocales = Locales.availableLocales();
27
+ const camelizedLower = digg(modelClass.modelClassData(), "camelizedLower");
28
+ const modelAttribute = modelClass.attributes().find(modelAttributeI => modelAttributeI.name() == attribute.attribute);
29
+ return /*#__PURE__*/React.createElement(View, {
30
+ dataSet: {
31
+ component: "api-maker/super-admin/edit-page/edit-attribute"
32
+ },
33
+ style: {
34
+ marginBottom: attribute.translated ? undefined : 12
35
+ }
36
+ }, (() => {
37
+ if (attribute.content) {
38
+ return /*#__PURE__*/React.createElement(EditAttributeContent, {
39
+ attribute: attribute,
40
+ id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
41
+ model: model,
42
+ name: inflection.underscore(attribute.attribute)
43
+ });
44
+ } else if (attribute.translated) {
45
+ return /*#__PURE__*/React.createElement(React.Fragment, null, availableLocales.map(locale => /*#__PURE__*/React.createElement(View, {
46
+ key: locale,
47
+ style: {
48
+ marginBottom: 12
49
+ }
50
+ }, /*#__PURE__*/React.createElement(EditAttributeInput, {
51
+ attributeName: `${attribute.attribute}${inflection.camelize(locale)}`,
52
+ id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}_${locale}`,
53
+ label: `${modelClass.humanAttributeName(attribute.attribute)} (${locale})`,
54
+ model: model,
55
+ name: `${inflection.underscore(attribute.attribute)}_${locale}`
56
+ }))));
57
+ } else if (modelAttribute?.getColumn()?.getType() == "boolean") {
58
+ return /*#__PURE__*/React.createElement(EditAttributeCheckbox, {
59
+ attributeName: attribute.attribute,
60
+ id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
61
+ label: modelClass.humanAttributeName(attribute.attribute),
62
+ model: model,
63
+ name: inflection.underscore(attribute.attribute)
64
+ });
65
+ } else {
66
+ return /*#__PURE__*/React.createElement(EditAttributeInput, {
67
+ attributeName: attribute.attribute,
68
+ id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
69
+ label: modelClass.humanAttributeName(attribute.attribute),
70
+ model: model,
71
+ name: inflection.underscore(attribute.attribute)
72
+ });
73
+ }
74
+ })());
75
+ }
76
+ }));
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIkVkaXRBdHRyaWJ1dGVDaGVja2JveCIsIkVkaXRBdHRyaWJ1dGVDb250ZW50IiwiRWRpdEF0dHJpYnV0ZUlucHV0IiwiaW5mbGVjdGlvbiIsIkxvY2FsZXMiLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIlZpZXciLCJzaGFwZUNvbXBvbmVudCIsIkVkaXRBdHRyaWJ1dGUiLCJwcm9wVHlwZXMiLCJhdHRyaWJ1dGUiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwibW9kZWwiLCJtb2RlbENsYXNzIiwiZnVuYyIsInJlbmRlciIsInByb3BzIiwiYXZhaWxhYmxlTG9jYWxlcyIsImNhbWVsaXplZExvd2VyIiwibW9kZWxDbGFzc0RhdGEiLCJtb2RlbEF0dHJpYnV0ZSIsImF0dHJpYnV0ZXMiLCJmaW5kIiwibW9kZWxBdHRyaWJ1dGVJIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY29tcG9uZW50Iiwic3R5bGUiLCJtYXJnaW5Cb3R0b20iLCJ0cmFuc2xhdGVkIiwidW5kZWZpbmVkIiwiY29udGVudCIsImlkIiwidW5kZXJzY29yZSIsIkZyYWdtZW50IiwibWFwIiwibG9jYWxlIiwia2V5IiwiYXR0cmlidXRlTmFtZSIsImNhbWVsaXplIiwibGFiZWwiLCJodW1hbkF0dHJpYnV0ZU5hbWUiLCJnZXRDb2x1bW4iLCJnZXRUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRWRpdEF0dHJpYnV0ZUNoZWNrYm94IGZyb20gXCIuL2VkaXQtYXR0cmlidXRlLWNoZWNrYm94XCJcbmltcG9ydCBFZGl0QXR0cmlidXRlQ29udGVudCBmcm9tIFwiLi9lZGl0LWF0dHJpYnV0ZS1jb250ZW50XCJcbmltcG9ydCBFZGl0QXR0cmlidXRlSW5wdXQgZnJvbSBcIi4vZWRpdC1hdHRyaWJ1dGUtaW5wdXRcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTG9jYWxlcyBmcm9tIFwic2hhcmVkL2xvY2FsZXNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBFZGl0QXR0cmlidXRlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmNcbiAgfSlcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgbW9kZWwsIG1vZGVsQ2xhc3N9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSBMb2NhbGVzLmF2YWlsYWJsZUxvY2FsZXMoKVxuICAgIGNvbnN0IGNhbWVsaXplZExvd2VyID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwiY2FtZWxpemVkTG93ZXJcIilcbiAgICBjb25zdCBtb2RlbEF0dHJpYnV0ZSA9IG1vZGVsQ2xhc3MuYXR0cmlidXRlcygpLmZpbmQoKG1vZGVsQXR0cmlidXRlSSkgPT4gbW9kZWxBdHRyaWJ1dGVJLm5hbWUoKSA9PSBhdHRyaWJ1dGUuYXR0cmlidXRlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IGRhdGFTZXQ9e3tjb21wb25lbnQ6IFwiYXBpLW1ha2VyL3N1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZVwifX0gc3R5bGU9e3ttYXJnaW5Cb3R0b206IGF0dHJpYnV0ZS50cmFuc2xhdGVkID8gdW5kZWZpbmVkIDogMTJ9fT5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8RWRpdEF0dHJpYnV0ZUNvbnRlbnRcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU9e2F0dHJpYnV0ZX1cbiAgICAgICAgICAgICAgICBpZD17YCR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGNhbWVsaXplZExvd2VyKX1fJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9YH1cbiAgICAgICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLnRyYW5zbGF0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2F2YWlsYWJsZUxvY2FsZXMubWFwKChsb2NhbGUpID0+XG4gICAgICAgICAgICAgICAgICA8VmlldyBrZXk9e2xvY2FsZX0gc3R5bGU9e3ttYXJnaW5Cb3R0b206IDEyfX0+XG4gICAgICAgICAgICAgICAgICAgIDxFZGl0QXR0cmlidXRlSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPXtgJHthdHRyaWJ1dGUuYXR0cmlidXRlfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShsb2NhbGUpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgaWQ9e2Ake2luZmxlY3Rpb24udW5kZXJzY29yZShjYW1lbGl6ZWRMb3dlcil9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfV8ke2xvY2FsZX1gfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtgJHttb2RlbENsYXNzLmh1bWFuQXR0cmlidXRlTmFtZShhdHRyaWJ1dGUuYXR0cmlidXRlKX0gKCR7bG9jYWxlfSlgfVxuICAgICAgICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9XyR7bG9jYWxlfWB9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIGlmIChtb2RlbEF0dHJpYnV0ZT8uZ2V0Q29sdW1uKCk/LmdldFR5cGUoKSA9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEVkaXRBdHRyaWJ1dGVDaGVja2JveFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9e2F0dHJpYnV0ZS5hdHRyaWJ1dGV9XG4gICAgICAgICAgICAgICAgaWQ9e2Ake2luZmxlY3Rpb24udW5kZXJzY29yZShjYW1lbGl6ZWRMb3dlcil9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfWB9XG4gICAgICAgICAgICAgICAgbGFiZWw9e21vZGVsQ2xhc3MuaHVtYW5BdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxFZGl0QXR0cmlidXRlSW5wdXRcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPXthdHRyaWJ1dGUuYXR0cmlidXRlfVxuICAgICAgICAgICAgICAgIGlkPXtgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoY2FtZWxpemVkTG93ZXIpfV8ke2luZmxlY3Rpb24udW5kZXJzY29yZShhdHRyaWJ1dGUuYXR0cmlidXRlKX1gfVxuICAgICAgICAgICAgICAgIGxhYmVsPXttb2RlbENsYXNzLmh1bWFuQXR0cmlidXRlTmFtZShhdHRyaWJ1dGUuYXR0cmlidXRlKX1cbiAgICAgICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSkoKX1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLHFCQUFxQixNQUFNLDJCQUEyQjtBQUM3RCxPQUFPQyxvQkFBb0IsTUFBTSwwQkFBMEI7QUFDM0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsT0FBT0MsT0FBTyxNQUFNLGdCQUFnQjtBQUNwQyxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFDakMsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUVwRSxlQUFlTCxJQUFJLENBQUNLLGNBQWMsQ0FBQyxNQUFNQyxhQUFhLFNBQVNiLGFBQWEsQ0FBQztFQUMzRSxPQUFPYyxTQUFTLEdBQUdMLGNBQWMsQ0FBQztJQUNoQ00sU0FBUyxFQUFFUCxTQUFTLENBQUNRLE1BQU0sQ0FBQ0MsVUFBVTtJQUN0Q0MsS0FBSyxFQUFFVixTQUFTLENBQUNRLE1BQU07SUFDdkJHLFVBQVUsRUFBRVgsU0FBUyxDQUFDWTtFQUN4QixDQUFDLENBQUM7RUFFRkMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDTixTQUFTO01BQUVHLEtBQUs7TUFBRUM7SUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDRyxLQUFLO0lBQ2pELE1BQU1DLGdCQUFnQixHQUFHakIsT0FBTyxDQUFDaUIsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxNQUFNQyxjQUFjLEdBQUd2QixJQUFJLENBQUNrQixVQUFVLENBQUNNLGNBQWMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDMUUsTUFBTUMsY0FBYyxHQUFHUCxVQUFVLENBQUNRLFVBQVUsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBRUMsZUFBZSxJQUFLQSxlQUFlLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUlmLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDO0lBRXZILG9CQUNFTCxLQUFBLENBQUFxQixhQUFBLENBQUNwQixJQUFJO01BQUNxQixPQUFPLEVBQUU7UUFBQ0MsU0FBUyxFQUFFO01BQWdELENBQUU7TUFBQ0MsS0FBSyxFQUFFO1FBQUNDLFlBQVksRUFBRXBCLFNBQVMsQ0FBQ3FCLFVBQVUsR0FBR0MsU0FBUyxHQUFHO01BQUU7SUFBRSxHQUN4SSxDQUFDLE1BQU07TUFDTixJQUFJdEIsU0FBUyxDQUFDdUIsT0FBTyxFQUFFO1FBQ3JCLG9CQUNFNUIsS0FBQSxDQUFBcUIsYUFBQSxDQUFDNUIsb0JBQW9CO1VBQ25CWSxTQUFTLEVBQUVBLFNBQVU7VUFDckJ3QixFQUFFLEVBQUUsR0FBR2xDLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ2hCLGNBQWMsQ0FBQyxJQUFJbkIsVUFBVSxDQUFDbUMsVUFBVSxDQUFDekIsU0FBUyxDQUFDQSxTQUFTLENBQUMsRUFBRztVQUM3RkcsS0FBSyxFQUFFQSxLQUFNO1VBQ2JZLElBQUksRUFBRXpCLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ3pCLFNBQVMsQ0FBQ0EsU0FBUztRQUFFLENBQ2xELENBQUM7TUFFTixDQUFDLE1BQU0sSUFBSUEsU0FBUyxDQUFDcUIsVUFBVSxFQUFFO1FBQy9CLG9CQUNFMUIsS0FBQSxDQUFBcUIsYUFBQSxDQUFBckIsS0FBQSxDQUFBK0IsUUFBQSxRQUNHbEIsZ0JBQWdCLENBQUNtQixHQUFHLENBQUVDLE1BQU0saUJBQzNCakMsS0FBQSxDQUFBcUIsYUFBQSxDQUFDcEIsSUFBSTtVQUFDaUMsR0FBRyxFQUFFRCxNQUFPO1VBQUNULEtBQUssRUFBRTtZQUFDQyxZQUFZLEVBQUU7VUFBRTtRQUFFLGdCQUMzQ3pCLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQzNCLGtCQUFrQjtVQUNqQnlDLGFBQWEsRUFBRSxHQUFHOUIsU0FBUyxDQUFDQSxTQUFTLEdBQUdWLFVBQVUsQ0FBQ3lDLFFBQVEsQ0FBQ0gsTUFBTSxDQUFDLEVBQUc7VUFDdEVKLEVBQUUsRUFBRSxHQUFHbEMsVUFBVSxDQUFDbUMsVUFBVSxDQUFDaEIsY0FBYyxDQUFDLElBQUluQixVQUFVLENBQUNtQyxVQUFVLENBQUN6QixTQUFTLENBQUNBLFNBQVMsQ0FBQyxJQUFJNEIsTUFBTSxFQUFHO1VBQ3ZHSSxLQUFLLEVBQUUsR0FBRzVCLFVBQVUsQ0FBQzZCLGtCQUFrQixDQUFDakMsU0FBUyxDQUFDQSxTQUFTLENBQUMsS0FBSzRCLE1BQU0sR0FBSTtVQUMzRXpCLEtBQUssRUFBRUEsS0FBTTtVQUNiWSxJQUFJLEVBQUUsR0FBR3pCLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ3pCLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDLElBQUk0QixNQUFNO1FBQUcsQ0FDakUsQ0FDRyxDQUNSLENBQ0EsQ0FBQztNQUVQLENBQUMsTUFBTSxJQUFJakIsY0FBYyxFQUFFdUIsU0FBUyxDQUFDLENBQUMsRUFBRUMsT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUU7UUFDOUQsb0JBQ0V4QyxLQUFBLENBQUFxQixhQUFBLENBQUM3QixxQkFBcUI7VUFDcEIyQyxhQUFhLEVBQUU5QixTQUFTLENBQUNBLFNBQVU7VUFDbkN3QixFQUFFLEVBQUUsR0FBR2xDLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ2hCLGNBQWMsQ0FBQyxJQUFJbkIsVUFBVSxDQUFDbUMsVUFBVSxDQUFDekIsU0FBUyxDQUFDQSxTQUFTLENBQUMsRUFBRztVQUM3RmdDLEtBQUssRUFBRTVCLFVBQVUsQ0FBQzZCLGtCQUFrQixDQUFDakMsU0FBUyxDQUFDQSxTQUFTLENBQUU7VUFDMURHLEtBQUssRUFBRUEsS0FBTTtVQUNiWSxJQUFJLEVBQUV6QixVQUFVLENBQUNtQyxVQUFVLENBQUN6QixTQUFTLENBQUNBLFNBQVM7UUFBRSxDQUNsRCxDQUFDO01BRU4sQ0FBQyxNQUFNO1FBQ0wsb0JBQ0VMLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQzNCLGtCQUFrQjtVQUNqQnlDLGFBQWEsRUFBRTlCLFNBQVMsQ0FBQ0EsU0FBVTtVQUNuQ3dCLEVBQUUsRUFBRSxHQUFHbEMsVUFBVSxDQUFDbUMsVUFBVSxDQUFDaEIsY0FBYyxDQUFDLElBQUluQixVQUFVLENBQUNtQyxVQUFVLENBQUN6QixTQUFTLENBQUNBLFNBQVMsQ0FBQyxFQUFHO1VBQzdGZ0MsS0FBSyxFQUFFNUIsVUFBVSxDQUFDNkIsa0JBQWtCLENBQUNqQyxTQUFTLENBQUNBLFNBQVMsQ0FBRTtVQUMxREcsS0FBSyxFQUFFQSxLQUFNO1VBQ2JZLElBQUksRUFBRXpCLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ3pCLFNBQVMsQ0FBQ0EsU0FBUztRQUFFLENBQ2xELENBQUM7TUFFTjtJQUNGLENBQUMsRUFBRSxDQUNDLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,123 @@
1
+ import { Pressable, View } from "react-native";
2
+ import BaseComponent from "../base-component";
3
+ import ConfigReader from "./config-reader";
4
+ import { digg } from "diggerize";
5
+ import EditAttribute from "./edit-page/edit-attribute";
6
+ import FlashMessage from "../flash-message";
7
+ import { Form } from "../form";
8
+ import * as inflection from "inflection";
9
+ import Locales from "shared/locales";
10
+ import memo from "set-state-compare/src/memo";
11
+ import Params from "../params";
12
+ import PropTypes from "prop-types";
13
+ import propTypesExact from "prop-types-exact";
14
+ import React from "react";
15
+ import { shapeComponent } from "set-state-compare/src/shape-component";
16
+ import Text from "../utils/text";
17
+ import useCurrentUser from "../use-current-user";
18
+ import useModel from "../use-model";
19
+ import useQueryParams from "on-location-changed/build/use-query-params";
20
+ export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends BaseComponent {
21
+ static propTypes = propTypesExact({
22
+ modelClass: PropTypes.func.isRequired
23
+ });
24
+ setup() {
25
+ const {
26
+ modelClass
27
+ } = this.p;
28
+ const modelClassName = modelClass.modelClassData().name;
29
+ const availableLocales = Locales.availableLocales();
30
+ this.configReader = ConfigReader.forModel(modelClass);
31
+ const currentUser = useCurrentUser();
32
+ const queryParams = useQueryParams();
33
+ const selectedModelAttributes = ["id"];
34
+ const selectedAttributes = {};
35
+ this.attributes = this.configReader.modelConfig?.edit?.attributes;
36
+ if (!this.attributes) {
37
+ throw new Error(`No 'attributes' given from edit config for ${modelClass.modelClassData().name}`);
38
+ }
39
+ for (const attribute of this.attributes) {
40
+ if (attribute.translated) {
41
+ for (const locale of availableLocales) {
42
+ selectedModelAttributes.push(`${attribute.attribute}${inflection.camelize(locale)}`);
43
+ }
44
+ } else {
45
+ selectedModelAttributes.push(attribute.attribute);
46
+ }
47
+ }
48
+ selectedAttributes[modelClassName] = selectedModelAttributes;
49
+ const useModelResult = useModel(modelClass, {
50
+ cacheArgs: [currentUser?.id()],
51
+ loadByQueryParam: props => props.queryParams.model_id,
52
+ newIfNoId: this.configReader.modelConfig?.edit?.newIfNoId || true,
53
+ preload: this.configReader.modelConfig?.edit?.preload,
54
+ select: selectedAttributes
55
+ });
56
+ const modelIdVarName = `${inflection.camelize(modelClass.modelClassData().name, true)}Id`;
57
+ const modelVarName = inflection.camelize(modelClass.modelClassData().name, true);
58
+ this.model = digg(useModelResult, modelVarName);
59
+ this.modelId = queryParams.model_id;
60
+ this.modelArgs = {};
61
+ this.modelArgs[modelIdVarName] = this.modelId;
62
+ this.useStates({
63
+ form: null
64
+ });
65
+ }
66
+ render() {
67
+ const {
68
+ attributes,
69
+ model
70
+ } = this.tt;
71
+ const {
72
+ modelClass
73
+ } = this.p;
74
+ const extraContent = this.configReader.modelConfig?.edit?.extraContentconst;
75
+ return /*#__PURE__*/React.createElement(View, {
76
+ dataSet: {
77
+ class: "super-admin--edit-page"
78
+ }
79
+ }, /*#__PURE__*/React.createElement(Form, {
80
+ setForm: this.setStates.form
81
+ }, model && attributes?.map(attribute => /*#__PURE__*/React.createElement(EditAttribute, {
82
+ attribute: attribute,
83
+ key: attribute.attribute,
84
+ model: model,
85
+ modelClass: modelClass
86
+ })), extraContent && extraContent(modelArgs), /*#__PURE__*/React.createElement(Pressable, {
87
+ dataSet: {
88
+ class: "submit-button"
89
+ },
90
+ onPress: this.tt.onSubmit,
91
+ style: {
92
+ paddingTop: 18,
93
+ paddingRight: 24,
94
+ paddingBottom: 18,
95
+ paddingLeft: 24,
96
+ borderRadius: 10,
97
+ backgroundColor: "#4c93ff",
98
+ marginTop: 10
99
+ }
100
+ }, /*#__PURE__*/React.createElement(Text, {
101
+ style: {
102
+ color: "#fff"
103
+ }
104
+ }, "Submit"))));
105
+ }
106
+ onSubmit = async () => {
107
+ try {
108
+ const {
109
+ model
110
+ } = this.tt;
111
+ const formObject = this.s.form.asObject();
112
+ model.assignAttributes(formObject);
113
+ await model.save();
114
+ Params.changeParams({
115
+ mode: undefined,
116
+ model_id: model.id()
117
+ });
118
+ } catch (error) {
119
+ FlashMessage.errorResponse(error);
120
+ }
121
+ };
122
+ }));
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNvbmZpZ1JlYWRlciIsImRpZ2ciLCJFZGl0QXR0cmlidXRlIiwiRmxhc2hNZXNzYWdlIiwiRm9ybSIsImluZmxlY3Rpb24iLCJMb2NhbGVzIiwibWVtbyIsIlBhcmFtcyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJzaGFwZUNvbXBvbmVudCIsIlRleHQiLCJ1c2VDdXJyZW50VXNlciIsInVzZU1vZGVsIiwidXNlUXVlcnlQYXJhbXMiLCJBcGlNYWtlclN1cGVyQWRtaW5FZGl0UGFnZSIsInByb3BUeXBlcyIsIm1vZGVsQ2xhc3MiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInNldHVwIiwicCIsIm1vZGVsQ2xhc3NOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJuYW1lIiwiYXZhaWxhYmxlTG9jYWxlcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwiY3VycmVudFVzZXIiLCJxdWVyeVBhcmFtcyIsInNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzIiwic2VsZWN0ZWRBdHRyaWJ1dGVzIiwiYXR0cmlidXRlcyIsIm1vZGVsQ29uZmlnIiwiZWRpdCIsIkVycm9yIiwiYXR0cmlidXRlIiwidHJhbnNsYXRlZCIsImxvY2FsZSIsInB1c2giLCJjYW1lbGl6ZSIsInVzZU1vZGVsUmVzdWx0IiwiY2FjaGVBcmdzIiwiaWQiLCJsb2FkQnlRdWVyeVBhcmFtIiwicHJvcHMiLCJtb2RlbF9pZCIsIm5ld0lmTm9JZCIsInByZWxvYWQiLCJzZWxlY3QiLCJtb2RlbElkVmFyTmFtZSIsIm1vZGVsVmFyTmFtZSIsIm1vZGVsIiwibW9kZWxJZCIsIm1vZGVsQXJncyIsInVzZVN0YXRlcyIsImZvcm0iLCJyZW5kZXIiLCJ0dCIsImV4dHJhQ29udGVudCIsImV4dHJhQ29udGVudGNvbnN0IiwiY3JlYXRlRWxlbWVudCIsImRhdGFTZXQiLCJjbGFzcyIsInNldEZvcm0iLCJzZXRTdGF0ZXMiLCJtYXAiLCJrZXkiLCJvblByZXNzIiwib25TdWJtaXQiLCJzdHlsZSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ0xlZnQiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5Ub3AiLCJjb2xvciIsImZvcm1PYmplY3QiLCJzIiwiYXNPYmplY3QiLCJhc3NpZ25BdHRyaWJ1dGVzIiwic2F2ZSIsImNoYW5nZVBhcmFtcyIsIm1vZGUiLCJ1bmRlZmluZWQiLCJlcnJvciIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vZWRpdC1wYWdlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRWRpdEF0dHJpYnV0ZSBmcm9tIFwiLi9lZGl0LXBhZ2UvZWRpdC1hdHRyaWJ1dGVcIlxuaW1wb3J0IEZsYXNoTWVzc2FnZSBmcm9tIFwiLi4vZmxhc2gtbWVzc2FnZVwiXG5pbXBvcnQge0Zvcm19IGZyb20gXCIuLi9mb3JtXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IExvY2FsZXMgZnJvbSBcInNoYXJlZC9sb2NhbGVzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdXNlQ3VycmVudFVzZXIgZnJvbSBcIi4uL3VzZS1jdXJyZW50LXVzZXJcIlxuaW1wb3J0IHVzZU1vZGVsIGZyb20gXCIuLi91c2UtbW9kZWxcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyU3VwZXJBZG1pbkVkaXRQYWdlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzfSA9IHRoaXMucFxuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gbW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcbiAgICBjb25zdCBhdmFpbGFibGVMb2NhbGVzID0gTG9jYWxlcy5hdmFpbGFibGVMb2NhbGVzKClcbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IENvbmZpZ1JlYWRlci5mb3JNb2RlbChtb2RlbENsYXNzKVxuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICAgIGNvbnN0IHNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzID0gW1wiaWRcIl1cbiAgICBjb25zdCBzZWxlY3RlZEF0dHJpYnV0ZXMgPSB7fVxuICAgIHRoaXMuYXR0cmlidXRlcyA9IHRoaXMuY29uZmlnUmVhZGVyLm1vZGVsQ29uZmlnPy5lZGl0Py5hdHRyaWJ1dGVzXG5cbiAgICBpZiAoIXRoaXMuYXR0cmlidXRlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyAnYXR0cmlidXRlcycgZ2l2ZW4gZnJvbSBlZGl0IGNvbmZpZyBmb3IgJHttb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX1gKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgaWYgKGF0dHJpYnV0ZS50cmFuc2xhdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIGF2YWlsYWJsZUxvY2FsZXMpIHtcbiAgICAgICAgICBzZWxlY3RlZE1vZGVsQXR0cmlidXRlcy5wdXNoKGAke2F0dHJpYnV0ZS5hdHRyaWJ1dGV9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGxvY2FsZSl9YClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRNb2RlbEF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUuYXR0cmlidXRlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkQXR0cmlidXRlc1ttb2RlbENsYXNzTmFtZV0gPSBzZWxlY3RlZE1vZGVsQXR0cmlidXRlc1xuXG4gICAgY29uc3QgdXNlTW9kZWxSZXN1bHQgPSB1c2VNb2RlbChtb2RlbENsYXNzLCB7XG4gICAgICBjYWNoZUFyZ3M6IFtjdXJyZW50VXNlcj8uaWQoKV0sXG4gICAgICBsb2FkQnlRdWVyeVBhcmFtOiAocHJvcHMpID0+IHByb3BzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkLFxuICAgICAgbmV3SWZOb0lkOiB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8ubmV3SWZOb0lkIHx8IHRydWUsXG4gICAgICBwcmVsb2FkOiB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8ucHJlbG9hZCxcbiAgICAgIHNlbGVjdDogc2VsZWN0ZWRBdHRyaWJ1dGVzXG4gICAgfSlcblxuICAgIGNvbnN0IG1vZGVsSWRWYXJOYW1lID0gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSl9SWRgXG4gICAgY29uc3QgbW9kZWxWYXJOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSlcblxuICAgIHRoaXMubW9kZWwgPSBkaWdnKHVzZU1vZGVsUmVzdWx0LCBtb2RlbFZhck5hbWUpXG4gICAgdGhpcy5tb2RlbElkID0gcXVlcnlQYXJhbXMubW9kZWxfaWRcbiAgICB0aGlzLm1vZGVsQXJncyA9IHt9XG4gICAgdGhpcy5tb2RlbEFyZ3NbbW9kZWxJZFZhck5hbWVdID0gdGhpcy5tb2RlbElkXG4gICAgdGhpcy51c2VTdGF0ZXMoe2Zvcm06IG51bGx9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBtb2RlbH0gPSB0aGlzLnR0XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gdGhpcy5wXG4gICAgY29uc3QgZXh0cmFDb250ZW50ID0gdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmV4dHJhQ29udGVudGNvbnN0XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17e2NsYXNzOiBcInN1cGVyLWFkbWluLS1lZGl0LXBhZ2VcIn19PlxuICAgICAgICA8Rm9ybSBzZXRGb3JtPXt0aGlzLnNldFN0YXRlcy5mb3JtfT5cbiAgICAgICAgICB7bW9kZWwgJiYgYXR0cmlidXRlcz8ubWFwKChhdHRyaWJ1dGUpID0+XG4gICAgICAgICAgICA8RWRpdEF0dHJpYnV0ZSBhdHRyaWJ1dGU9e2F0dHJpYnV0ZX0ga2V5PXthdHRyaWJ1dGUuYXR0cmlidXRlfSBtb2RlbD17bW9kZWx9IG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7ZXh0cmFDb250ZW50ICYmIGV4dHJhQ29udGVudChtb2RlbEFyZ3MpfVxuICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJzdWJtaXQtYnV0dG9uXCJ9fVxuICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblN1Ym1pdH1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDE4LFxuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDI0LFxuICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxOCxcbiAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IDI0LFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEwLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzRjOTNmZlwiLFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt7Y29sb3I6IFwiI2ZmZlwifX0+XG4gICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L0Zvcm0+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgb25TdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnR0XG4gICAgICBjb25zdCBmb3JtT2JqZWN0ID0gdGhpcy5zLmZvcm0uYXNPYmplY3QoKVxuXG4gICAgICBtb2RlbC5hc3NpZ25BdHRyaWJ1dGVzKGZvcm1PYmplY3QpXG4gICAgICBhd2FpdCBtb2RlbC5zYXZlKClcbiAgICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMoe21vZGU6IHVuZGVmaW5lZCwgbW9kZWxfaWQ6IG1vZGVsLmlkKCl9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBGbGFzaE1lc3NhZ2Uu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
@@ -0,0 +1,12 @@
1
+ import ConfigReader from "./config-reader";
2
+ const hasEditConfig = modelClass => {
3
+ const configReader = ConfigReader.forModel(modelClass);
4
+ const extraContent = configReader.modelConfig?.edit?.extraContentconst;
5
+ const attributes = configReader.modelConfig?.edit?.attributes;
6
+ if (attributes || extraContent) {
7
+ return true;
8
+ }
9
+ return false;
10
+ };
11
+ export default hasEditConfig;
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb25maWdSZWFkZXIiLCJoYXNFZGl0Q29uZmlnIiwibW9kZWxDbGFzcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwiZXh0cmFDb250ZW50IiwibW9kZWxDb25maWciLCJlZGl0IiwiZXh0cmFDb250ZW50Y29uc3QiLCJhdHRyaWJ1dGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL2hhcy1lZGl0LWNvbmZpZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29uZmlnUmVhZGVyIGZyb20gXCIuL2NvbmZpZy1yZWFkZXJcIlxuXG5jb25zdCBoYXNFZGl0Q29uZmlnID0gKG1vZGVsQ2xhc3MpID0+IHtcbiAgY29uc3QgY29uZmlnUmVhZGVyID0gQ29uZmlnUmVhZGVyLmZvck1vZGVsKG1vZGVsQ2xhc3MpXG4gIGNvbnN0IGV4dHJhQ29udGVudCA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uZXh0cmFDb250ZW50Y29uc3RcbiAgY29uc3QgYXR0cmlidXRlcyA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uYXR0cmlidXRlc1xuXG4gIGlmIChhdHRyaWJ1dGVzIHx8IGV4dHJhQ29udGVudCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzRWRpdENvbmZpZ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLE1BQU0saUJBQWlCO0FBRTFDLE1BQU1DLGFBQWEsR0FBSUMsVUFBVSxJQUFLO0VBQ3BDLE1BQU1DLFlBQVksR0FBR0gsWUFBWSxDQUFDSSxRQUFRLENBQUNGLFVBQVUsQ0FBQztFQUN0RCxNQUFNRyxZQUFZLEdBQUdGLFlBQVksQ0FBQ0csV0FBVyxFQUFFQyxJQUFJLEVBQUVDLGlCQUFpQjtFQUN0RSxNQUFNQyxVQUFVLEdBQUdOLFlBQVksQ0FBQ0csV0FBVyxFQUFFQyxJQUFJLEVBQUVFLFVBQVU7RUFFN0QsSUFBSUEsVUFBVSxJQUFJSixZQUFZLEVBQUU7SUFDOUIsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPLEtBQUs7QUFDZCxDQUFDO0FBRUQsZUFBZUosYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,25 @@
1
+ import BaseComponent from "../base-component";
2
+ import memo from "set-state-compare/src/memo";
3
+ import ModelClassTable from "./model-class-table";
4
+ import PropTypes from "prop-types";
5
+ import React from "react";
6
+ import { shapeComponent } from "set-state-compare/src/shape-component";
7
+ import { View } from "react-native";
8
+ export default memo(shapeComponent(class ApiMakerSuperAdminIndexPage extends BaseComponent {
9
+ static propTypes = {
10
+ modelClass: PropTypes.func.isRequired
11
+ };
12
+ render() {
13
+ const {
14
+ modelClass
15
+ } = this.props;
16
+ return /*#__PURE__*/React.createElement(View, {
17
+ dataSet: {
18
+ component: "super-admin--index-page"
19
+ }
20
+ }, /*#__PURE__*/React.createElement(ModelClassTable, {
21
+ modelClass: modelClass
22
+ }));
23
+ }
24
+ }));
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwibWVtbyIsIk1vZGVsQ2xhc3NUYWJsZSIsIlByb3BUeXBlcyIsIlJlYWN0Iiwic2hhcGVDb21wb25lbnQiLCJWaWV3IiwiQXBpTWFrZXJTdXBlckFkbWluSW5kZXhQYWdlIiwicHJvcFR5cGVzIiwibW9kZWxDbGFzcyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwicmVuZGVyIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlci1hZG1pbi9pbmRleC1wYWdlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBNb2RlbENsYXNzVGFibGUgZnJvbSBcIi4vbW9kZWwtY2xhc3MtdGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluSW5kZXhQYWdlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y29tcG9uZW50OiBcInN1cGVyLWFkbWluLS1pbmRleC1wYWdlXCJ9fT5cbiAgICAgICAgPE1vZGVsQ2xhc3NUYWJsZSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSAvPlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFFakMsZUFBZUwsSUFBSSxDQUFDSSxjQUFjLENBQUMsTUFBTUUsMkJBQTJCLFNBQVNQLGFBQWEsQ0FBQztFQUN6RixPQUFPUSxTQUFTLEdBQUc7SUFDakJDLFVBQVUsRUFBRU4sU0FBUyxDQUFDTyxJQUFJLENBQUNDO0VBQzdCLENBQUM7RUFFREMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDSDtJQUFVLENBQUMsR0FBRyxJQUFJLENBQUNJLEtBQUs7SUFFL0Isb0JBQ0VULEtBQUEsQ0FBQVUsYUFBQSxDQUFDUixJQUFJO01BQUNTLE9BQU8sRUFBRTtRQUFDQyxTQUFTLEVBQUU7TUFBeUI7SUFBRSxnQkFDcERaLEtBQUEsQ0FBQVUsYUFBQSxDQUFDWixlQUFlO01BQUNPLFVBQVUsRUFBRUE7SUFBVyxDQUFFLENBQ3RDLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,181 @@
1
+ import React, { useMemo } from "react";
2
+ import { Pressable, View } from "react-native";
3
+ import BaseComponent from "../base-component";
4
+ import ConfigReader from "./config-reader";
5
+ import EditPage from "./edit-page";
6
+ import hasEditConfig from "./has-edit-config";
7
+ import IndexPage from "./index-page";
8
+ import Layout from "./layout/index";
9
+ import Link from "../link";
10
+ import memo from "set-state-compare/src/memo";
11
+ import * as models from "models";
12
+ import Params from "../params";
13
+ import { shapeComponent } from "set-state-compare/src/shape-component";
14
+ import ShowPage from "./show-page/index";
15
+ import ShowReflectionActions from "./show-reflection-actions";
16
+ import ShowReflectionPage from "./show-reflection-page";
17
+ import Text from "../utils/text";
18
+ import useCanCan from "../use-can-can";
19
+ import useCurrentUser from "../use-current-user";
20
+ import useQueryParams from "on-location-changed/build/use-query-params";
21
+ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponent {
22
+ setup() {
23
+ this.queryParams = useQueryParams();
24
+ if (this.queryParams.model) {
25
+ this.modelClass = models[this.queryParams.model];
26
+ } else {
27
+ this.modelClass = null;
28
+ }
29
+ this.configReader = useMemo(() => this.modelClass && ConfigReader.forModel(this.modelClass), [this.modelClass]);
30
+ this.modelId = this.queryParams.model_id;
31
+ this.modelName = this.modelClass?.modelClassData()?.name;
32
+ this.currentUser = useCurrentUser();
33
+ this.canCan = useCanCan(() => {
34
+ const abilities = [];
35
+ if (this.modelClass) abilities.push([this.modelClass, ["new"]]);
36
+ return abilities;
37
+ }, [this.currentUser?.id(), this.modelClass]);
38
+ this.useStates({
39
+ model: undefined
40
+ });
41
+ useMemo(() => {
42
+ this.loadModel();
43
+ }, [this.modelId]);
44
+ }
45
+ loadModel = async () => {
46
+ const {
47
+ configReader,
48
+ modelClass,
49
+ modelId,
50
+ modelName
51
+ } = this.tt;
52
+ if (modelId && modelClass) {
53
+ const abilities = {};
54
+ const abilitiesForModel = ["destroy", "edit"];
55
+ const layoutSelect = configReader?.modelConfig?.layout?.select;
56
+ abilities[modelName] = abilitiesForModel;
57
+ const query = await modelClass.ransack({
58
+ id_eq: modelId
59
+ }).abilities(abilities);
60
+ if (layoutSelect) query.select(layoutSelect);
61
+ const model = await query.first();
62
+ this.setState({
63
+ model
64
+ });
65
+ } else {
66
+ this.setState({
67
+ model: undefined
68
+ });
69
+ }
70
+ };
71
+ render() {
72
+ const {
73
+ canCan,
74
+ configReader,
75
+ modelClass,
76
+ modelId,
77
+ modelName,
78
+ queryParams
79
+ } = this.tt;
80
+ const {
81
+ model
82
+ } = this.s;
83
+ const modelConfigActions = configReader?.modelConfig?.actions;
84
+ let pageToShow;
85
+ if (queryParams.model && queryParams.model_id && queryParams.model_reflection) {
86
+ pageToShow = "show_reflection";
87
+ } else if (queryParams.model && queryParams.model_id && queryParams.mode == "edit") {
88
+ pageToShow = "edit";
89
+ } else if (queryParams.model && queryParams.model_id) {
90
+ pageToShow = "show";
91
+ } else if (queryParams.model && queryParams.mode == "new") {
92
+ pageToShow = "edit";
93
+ } else if (queryParams.model) {
94
+ pageToShow = "index";
95
+ } else {
96
+ pageToShow = "welcome";
97
+ }
98
+ const actions = useMemo(() => /*#__PURE__*/React.createElement(View, {
99
+ style: {
100
+ flexDirection: "row",
101
+ alignItems: "center"
102
+ }
103
+ }, model && modelConfigActions && modelConfigActions({
104
+ model
105
+ }), modelClass && pageToShow == "index" && /*#__PURE__*/React.createElement(React.Fragment, null, canCan?.can("new", modelClass) && hasEditConfig(modelClass) && /*#__PURE__*/React.createElement(Link, {
106
+ dataSet: {
107
+ class: "create-new-model-link"
108
+ },
109
+ style: {
110
+ marginLeft: 10,
111
+ marginRight: 10
112
+ },
113
+ to: Params.withParams({
114
+ model: modelName,
115
+ mode: "new"
116
+ })
117
+ }, /*#__PURE__*/React.createElement(Text, null, "Create new"))), model && pageToShow == "show" && /*#__PURE__*/React.createElement(React.Fragment, null, model.can("edit") && hasEditConfig(modelClass) && /*#__PURE__*/React.createElement(Link, {
118
+ dataSet: {
119
+ class: "edit-model-link"
120
+ },
121
+ style: {
122
+ marginLeft: 10,
123
+ marginRight: 10
124
+ },
125
+ to: Params.withParams({
126
+ model: modelName,
127
+ model_id: modelId,
128
+ mode: "edit"
129
+ })
130
+ }, /*#__PURE__*/React.createElement(Text, null, "Edit")), model.can("destroy") && /*#__PURE__*/React.createElement(Pressable, {
131
+ dataSet: {
132
+ class: "destroy-model-link"
133
+ },
134
+ onPress: this.tt.onDestroyClicked,
135
+ style: {
136
+ marginLeft: 10,
137
+ marginRight: 10
138
+ }
139
+ }, /*#__PURE__*/React.createElement(Text, null, "Delete"))), pageToShow == "show_reflection" && /*#__PURE__*/React.createElement(ShowReflectionActions, {
140
+ model: model,
141
+ modelClass: modelClass,
142
+ reflectionName: queryParams.model_reflection
143
+ })), [canCan, configReader?.actions, model, modelClass, pageToShow]);
144
+ return /*#__PURE__*/React.createElement(Layout, {
145
+ actions: actions,
146
+ active: queryParams.model,
147
+ headerTitle: modelClass?.modelName()?.human({
148
+ count: 2
149
+ })
150
+ }, pageToShow == "index" && /*#__PURE__*/React.createElement(IndexPage, {
151
+ key: `index-page-${modelName}`,
152
+ modelClass: modelClass
153
+ }), pageToShow == "show" && /*#__PURE__*/React.createElement(ShowPage, {
154
+ key: `show-page-${modelName}-${modelId}`,
155
+ modelClass: modelClass,
156
+ modelId: modelId
157
+ }), pageToShow == "show_reflection" && /*#__PURE__*/React.createElement(ShowReflectionPage, {
158
+ key: `show-reflection-page-${modelName}-${modelId}`,
159
+ modelClass: modelClass,
160
+ modelId: modelId
161
+ }), pageToShow == "edit" && /*#__PURE__*/React.createElement(EditPage, {
162
+ key: `edit-page-${modelName}-${modelId}`,
163
+ modelClass: modelClass
164
+ }));
165
+ }
166
+ onDestroyClicked = async () => {
167
+ if (!confirm("Are you sure?")) {
168
+ return;
169
+ }
170
+ try {
171
+ await this.s.model.destroy();
172
+ Params.changeParams({
173
+ mode: undefined,
174
+ model_id: undefined
175
+ });
176
+ } catch (error) {
177
+ FlashMessage.errorResponse(error);
178
+ }
179
+ };
180
+ }));
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNvbmZpZ1JlYWRlciIsIkVkaXRQYWdlIiwiaGFzRWRpdENvbmZpZyIsIkluZGV4UGFnZSIsIkxheW91dCIsIkxpbmsiLCJtZW1vIiwibW9kZWxzIiwiUGFyYW1zIiwic2hhcGVDb21wb25lbnQiLCJTaG93UGFnZSIsIlNob3dSZWZsZWN0aW9uQWN0aW9ucyIsIlNob3dSZWZsZWN0aW9uUGFnZSIsIlRleHQiLCJ1c2VDYW5DYW4iLCJ1c2VDdXJyZW50VXNlciIsInVzZVF1ZXJ5UGFyYW1zIiwiQXBpTWFrZXJTdXBlckFkbWluIiwic2V0dXAiLCJxdWVyeVBhcmFtcyIsIm1vZGVsIiwibW9kZWxDbGFzcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwibW9kZWxJZCIsIm1vZGVsX2lkIiwibW9kZWxOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJuYW1lIiwiY3VycmVudFVzZXIiLCJjYW5DYW4iLCJhYmlsaXRpZXMiLCJwdXNoIiwiaWQiLCJ1c2VTdGF0ZXMiLCJ1bmRlZmluZWQiLCJsb2FkTW9kZWwiLCJ0dCIsImFiaWxpdGllc0Zvck1vZGVsIiwibGF5b3V0U2VsZWN0IiwibW9kZWxDb25maWciLCJsYXlvdXQiLCJzZWxlY3QiLCJxdWVyeSIsInJhbnNhY2siLCJpZF9lcSIsImZpcnN0Iiwic2V0U3RhdGUiLCJyZW5kZXIiLCJzIiwibW9kZWxDb25maWdBY3Rpb25zIiwiYWN0aW9ucyIsInBhZ2VUb1Nob3ciLCJtb2RlbF9yZWZsZWN0aW9uIiwibW9kZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiRnJhZ21lbnQiLCJjYW4iLCJkYXRhU2V0IiwiY2xhc3MiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJ0byIsIndpdGhQYXJhbXMiLCJvblByZXNzIiwib25EZXN0cm95Q2xpY2tlZCIsInJlZmxlY3Rpb25OYW1lIiwiYWN0aXZlIiwiaGVhZGVyVGl0bGUiLCJodW1hbiIsImNvdW50Iiwia2V5IiwiY29uZmlybSIsImRlc3Ryb3kiLCJjaGFuZ2VQYXJhbXMiLCJlcnJvciIsIkZsYXNoTWVzc2FnZSIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0UGFnZSBmcm9tIFwiLi9lZGl0LXBhZ2VcIlxuaW1wb3J0IGhhc0VkaXRDb25maWcgZnJvbSBcIi4vaGFzLWVkaXQtY29uZmlnXCJcbmltcG9ydCBJbmRleFBhZ2UgZnJvbSBcIi4vaW5kZXgtcGFnZVwiXG5pbXBvcnQgTGF5b3V0IGZyb20gXCIuL2xheW91dC9pbmRleFwiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHNcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UGFnZSBmcm9tIFwiLi9zaG93LXBhZ2UvaW5kZXhcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uQWN0aW9ucyBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tYWN0aW9uc1wiXG5pbXBvcnQgU2hvd1JlZmxlY3Rpb25QYWdlIGZyb20gXCIuL3Nob3ctcmVmbGVjdGlvbi1wYWdlXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi91dGlscy90ZXh0XCJcbmltcG9ydCB1c2VDYW5DYW4gZnJvbSBcIi4uL3VzZS1jYW4tY2FuXCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi4vdXNlLWN1cnJlbnQtdXNlclwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VNZW1vKFxuICAgICAgKCkgPT4geyB0aGlzLmxvYWRNb2RlbCgpIH0sXG4gICAgICBbdGhpcy5tb2RlbElkXVxuICAgIClcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NhbkNhbiwgY29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWUsIHF1ZXJ5UGFyYW1zfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zXG4gICAgY29uc3QgbW9kZWxDb25maWdBY3Rpb25zID0gY29uZmlnUmVhZGVyPy5tb2RlbENvbmZpZz8uYWN0aW9uc1xuICAgIGxldCBwYWdlVG9TaG93XG5cbiAgICBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQgJiYgcXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbikge1xuICAgICAgcGFnZVRvU2hvdyA9IFwic2hvd19yZWZsZWN0aW9uXCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJlZGl0XCIpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcImVkaXRcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcInNob3dcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZSA9PSBcIm5ld1wiKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJpbmRleFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcIndlbGNvbWVcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gPFZpZXcgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwifX0+XG4gICAgICAgIHttb2RlbCAmJiBtb2RlbENvbmZpZ0FjdGlvbnMgJiYgbW9kZWxDb25maWdBY3Rpb25zKHttb2RlbH0pfVxuICAgICAgICB7bW9kZWxDbGFzcyAmJiBwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y2FuQ2FuPy5jYW4oXCJuZXdcIiwgbW9kZWxDbGFzcykgJiYgaGFzRWRpdENvbmZpZyhtb2RlbENsYXNzKSAmJlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJjcmVhdGUtbmV3LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMCwgbWFyZ2luUmlnaHQ6IDEwfX1cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIG5ld1xuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHttb2RlbCAmJiBwYWdlVG9TaG93ID09IFwic2hvd1wiICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJlZGl0XCIpICYmIGhhc0VkaXRDb25maWcobW9kZWxDbGFzcykgJiZcbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwiZWRpdC1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgICAgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxOYW1lLCBtb2RlbF9pZDogbW9kZWxJZCwgbW9kZTogXCJlZGl0XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge21vZGVsLmNhbihcImRlc3Ryb3lcIikgJiZcbiAgICAgICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJkZXN0cm95LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vbkRlc3Ryb3lDbGlja2VkfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvbkFjdGlvbnMgbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSByZWZsZWN0aW9uTmFtZT17cXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbn0gLz5cbiAgICAgICAgfVxuICAgICAgPC9WaWV3PixcbiAgICAgIFtjYW5DYW4sIGNvbmZpZ1JlYWRlcj8uYWN0aW9ucywgbW9kZWwsIG1vZGVsQ2xhc3MsIHBhZ2VUb1Nob3ddXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMYXlvdXQgYWN0aW9ucz17YWN0aW9uc30gYWN0aXZlPXtxdWVyeVBhcmFtcy5tb2RlbH0gaGVhZGVyVGl0bGU9e21vZGVsQ2xhc3M/Lm1vZGVsTmFtZSgpPy5odW1hbih7Y291bnQ6IDJ9KX0+XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDxJbmRleFBhZ2VcbiAgICAgICAgICAgIGtleT17YGluZGV4LXBhZ2UtJHttb2RlbE5hbWV9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDxTaG93UGFnZVxuICAgICAgICAgICAga2V5PXtgc2hvdy1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvblBhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcmVmbGVjdGlvbi1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJlZGl0XCIgJiZcbiAgICAgICAgICA8RWRpdFBhZ2VcbiAgICAgICAgICAgIGtleT17YGVkaXQtcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvTGF5b3V0PlxuICAgIClcbiAgfVxuXG4gIG9uRGVzdHJveUNsaWNrZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucy5tb2RlbC5kZXN0cm95KClcblxuICAgICAgUGFyYW1zLmNoYW5nZVBhcmFtcyh7bW9kZTogdW5kZWZpbmVkLCBtb2RlbF9pZDogdW5kZWZpbmVkfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgRmxhc2hNZXNzYWdlLmVycm9yUmVzcG9uc2UoZXJyb3IpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFHQyxPQUFPLFFBQU8sT0FBTztBQUNwQyxTQUFRQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQzVDLE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQUNsQyxPQUFPQyxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxjQUFjO0FBQ3BDLE9BQU9DLE1BQU0sTUFBTSxnQkFBZ0I7QUFDbkMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPLEtBQUtDLE1BQU0sTUFBTSxRQUFRO0FBQ2hDLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0MsUUFBUSxNQUFNLG1CQUFtQjtBQUN4QyxPQUFPQyxxQkFBcUIsTUFBTSwyQkFBMkI7QUFDN0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FB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