@kaspernj/api-maker 1.0.446 → 1.0.447

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 (357) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +4 -0
  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/index.js +105 -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 +128 -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 +130 -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 +3 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +279 -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 +53 -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 +109 -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-model-class.js +24 -0
  52. package/build/events.js +5 -0
  53. package/build/form.js +83 -0
  54. package/build/index.js +3 -0
  55. package/build/inputs/attachment.js +121 -0
  56. package/build/inputs/auto-submit.js +36 -0
  57. package/build/inputs/checkbox.js +145 -0
  58. package/build/inputs/checkboxes.js +111 -0
  59. package/build/inputs/id-for-component.js +15 -0
  60. package/build/inputs/input-wrapper.js +18 -0
  61. package/build/inputs/input.js +230 -0
  62. package/build/inputs/money.js +179 -0
  63. package/build/inputs/name-for-component.js +13 -0
  64. package/build/inputs/select.js +92 -0
  65. package/build/instance-of-class-name.js +23 -0
  66. package/build/key-value-store.js +53 -0
  67. package/build/link.js +68 -0
  68. package/build/logger.js +30 -0
  69. package/build/modal.js +37 -0
  70. package/build/model-class-require.js +13 -0
  71. package/build/model-events.js +30 -0
  72. package/build/model-name.js +28 -0
  73. package/build/model-prop-type.js +101 -0
  74. package/build/model-recipes-loader.js +32 -0
  75. package/build/model-recipes-model-loader.js +357 -0
  76. package/build/models-response-reader.js +40 -0
  77. package/build/models.js +8 -0
  78. package/build/money-formatter.js +77 -0
  79. package/build/not-loaded-error.js +2 -0
  80. package/build/params.js +60 -0
  81. package/build/preloaded.js +38 -0
  82. package/build/resize-observer.js +11 -0
  83. package/build/result.js +13 -0
  84. package/build/router/route.js +262 -0
  85. package/build/router/switch.js +72 -0
  86. package/build/router.js +57 -0
  87. package/build/routes-native.js +202 -0
  88. package/build/routes.js +50 -0
  89. package/build/run-last.js +35 -0
  90. package/build/serializer.js +63 -0
  91. package/build/services.js +20 -0
  92. package/build/session-status-updater.js +126 -0
  93. package/build/source-maps-loader.js +171 -0
  94. package/build/super-admin/config-reader.js +84 -0
  95. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  96. package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
  97. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  98. package/build/super-admin/edit-page/edit-attribute.js +76 -0
  99. package/build/super-admin/edit-page.js +120 -0
  100. package/build/super-admin/has-edit-config.js +12 -0
  101. package/build/super-admin/index-page.js +24 -0
  102. package/build/super-admin/index.js +180 -0
  103. package/build/super-admin/layout/header/index.js +151 -0
  104. package/build/super-admin/layout/index.js +109 -0
  105. package/build/super-admin/layout/menu/index.js +93 -0
  106. package/build/super-admin/layout/menu/menu-content.js +40 -0
  107. package/build/super-admin/layout/menu/menu-item.js +83 -0
  108. package/build/super-admin/layout/no-access.js +25 -0
  109. package/build/super-admin/model-class-table.js +61 -0
  110. package/build/super-admin/models.js +8 -0
  111. package/build/super-admin/show-nav.js +49 -0
  112. package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
  113. package/build/super-admin/show-page/index.js +141 -0
  114. package/build/super-admin/show-reflection-actions.js +47 -0
  115. package/build/super-admin/show-reflection-link.js +46 -0
  116. package/build/super-admin/show-reflection-page.js +47 -0
  117. package/build/table/column-content.js +112 -0
  118. package/build/table/column-identifier.js +18 -0
  119. package/build/table/column-visible.js +7 -0
  120. package/build/table/components/column.js +20 -0
  121. package/build/table/components/flat-list.js +20 -0
  122. package/build/table/components/header.js +25 -0
  123. package/build/table/components/row.js +25 -0
  124. package/build/table/filters/attribute-element.js +43 -0
  125. package/build/table/filters/filter-form.js +392 -0
  126. package/build/table/filters/filter.js +89 -0
  127. package/build/table/filters/index.js +182 -0
  128. package/build/table/filters/load-search-modal.js +174 -0
  129. package/build/table/filters/reflection-element.js +36 -0
  130. package/build/table/filters/save-search-modal.js +86 -0
  131. package/build/table/filters/scope-element.js +41 -0
  132. package/build/table/header-column-content.js +67 -0
  133. package/build/table/header-column.js +144 -0
  134. package/build/table/header-select.js +104 -0
  135. package/build/table/model-callback-args.js +10 -0
  136. package/build/table/model-column.js +87 -0
  137. package/build/table/model-row.js +179 -0
  138. package/build/table/select-calculator.js +63 -0
  139. package/build/table/settings/column-row.js +97 -0
  140. package/build/table/settings/download-action.js +78 -0
  141. package/build/table/settings/index.js +92 -0
  142. package/build/table/table-settings.js +219 -0
  143. package/build/table/table.js +972 -0
  144. package/build/table/use-sorting.js +34 -0
  145. package/build/table/widths.js +75 -0
  146. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  147. package/build/table/worker-plugins-checkbox.js +115 -0
  148. package/build/translated-attributes.js +10 -0
  149. package/build/translated-collections.js +11 -0
  150. package/build/updated-attribute.js +76 -0
  151. package/build/url-encode.js +15 -0
  152. package/build/use-breakpoint.js +44 -0
  153. package/build/use-can-can.js +55 -0
  154. package/build/use-collection.js +225 -0
  155. package/build/use-created-event.js +52 -0
  156. package/build/use-current-user.js +73 -0
  157. package/build/use-destroyed-event.js +60 -0
  158. package/build/use-event-emitter.js +13 -0
  159. package/build/use-event-listener.js +16 -0
  160. package/build/use-input.js +140 -0
  161. package/build/use-model-event.js +60 -0
  162. package/build/use-model.js +169 -0
  163. package/build/use-resize-observer.js +23 -0
  164. package/build/use-router.js +102 -0
  165. package/build/use-screen-layout.js +39 -0
  166. package/build/use-updated-event.js +60 -0
  167. package/build/use-validation-errors.js +30 -0
  168. package/build/utils/card.js +51 -0
  169. package/build/utils/checkbox.js +48 -0
  170. package/build/utils/default-style.js +18 -0
  171. package/build/utils/modal.js +61 -0
  172. package/build/utils/text.js +18 -0
  173. package/build/validation-error.js +28 -0
  174. package/build/validation-errors.js +98 -0
  175. package/build/with-collection.js +13 -0
  176. package/build/with-current-user.js +9 -0
  177. package/build/with-model.js +14 -0
  178. package/build/with-router.js +21 -0
  179. package/expo-module.config.json +17 -0
  180. package/ios/ApiMaker.podspec +29 -0
  181. package/ios/ApiMakerModule.swift +48 -0
  182. package/ios/ApiMakerView.swift +38 -0
  183. package/package.json +35 -15
  184. package/src/{api.mjs → api.js} +5 -5
  185. package/src/{base-error.mjs → base-error.js} +1 -1
  186. package/src/base-model/{attribute.mjs → attribute.js} +1 -1
  187. package/src/base-model/{reflection.mjs → reflection.js} +1 -1
  188. package/src/{base-model.mjs → base-model.js} +14 -14
  189. package/src/bootstrap/attribute-row/index.jsx +2 -2
  190. package/src/bootstrap/attribute-rows.jsx +1 -1
  191. package/src/bootstrap/card.jsx +1 -1
  192. package/src/bootstrap/checkbox.jsx +1 -1
  193. package/src/bootstrap/checkboxes.jsx +1 -1
  194. package/src/bootstrap/input.jsx +1 -1
  195. package/src/bootstrap/paginate.jsx +2 -2
  196. package/src/bootstrap/sort-link.jsx +3 -3
  197. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
  198. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
  199. package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
  200. package/src/{can-can.mjs → can-can.js} +1 -1
  201. package/src/collection-loader.jsx +2 -2
  202. package/src/{collection.mjs → collection.js} +3 -3
  203. package/src/{commands-pool.mjs → commands-pool.js} +11 -11
  204. package/src/{custom-error.mjs → custom-error.js} +1 -1
  205. package/src/{deserializer.mjs → deserializer.js} +2 -2
  206. package/src/{destroy-error.mjs → destroy-error.js} +1 -1
  207. package/src/{devise.mjs → devise.js} +5 -9
  208. package/src/draggable-sort/index.jsx +3 -3
  209. package/src/draggable-sort/item.jsx +2 -2
  210. package/src/{error-logger.mjs → error-logger.js} +1 -1
  211. package/src/event-connection.jsx +1 -1
  212. package/src/event-model-class.jsx +1 -1
  213. package/src/form.jsx +1 -1
  214. package/src/index.js +3 -0
  215. package/src/inputs/attachment.jsx +2 -2
  216. package/src/inputs/checkbox.jsx +7 -6
  217. package/src/inputs/checkboxes.jsx +1 -1
  218. package/src/inputs/input-wrapper.jsx +1 -1
  219. package/src/inputs/input.jsx +8 -7
  220. package/src/inputs/money.jsx +3 -3
  221. package/src/inputs/select.jsx +1 -1
  222. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  223. package/src/link.jsx +2 -2
  224. package/src/modal.jsx +1 -1
  225. package/src/{model-class-require.mjs → model-class-require.js} +4 -2
  226. package/src/{model-events.mjs → model-events.js} +1 -1
  227. package/src/{model-name.mjs → model-name.js} +1 -1
  228. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  229. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
  230. package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
  231. package/src/models.js +7 -0
  232. package/src/{models.mjs.erb → models.js.erb} +1 -1
  233. package/src/{params.mjs → params.js} +2 -2
  234. package/src/{preloaded.mjs → preloaded.js} +1 -1
  235. package/src/resize-observer.jsx +1 -1
  236. package/src/router/route.jsx +1 -1
  237. package/src/router/switch.jsx +1 -1
  238. package/src/router.jsx +1 -1
  239. package/src/{routes-native.mjs → routes-native.js} +1 -1
  240. package/src/{services.mjs → services.js} +1 -1
  241. package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
  242. package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
  243. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
  244. package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
  245. package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
  246. package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
  247. package/src/super-admin/edit-page.jsx +2 -2
  248. package/src/super-admin/has-edit-config.js +1 -1
  249. package/src/super-admin/index-page.jsx +1 -1
  250. package/src/super-admin/index.jsx +7 -7
  251. package/src/super-admin/layout/header/index.jsx +2 -2
  252. package/src/super-admin/layout/index.jsx +3 -3
  253. package/src/super-admin/layout/menu/index.jsx +3 -3
  254. package/src/super-admin/layout/menu/menu-content.jsx +2 -2
  255. package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
  256. package/src/super-admin/layout/no-access.jsx +2 -2
  257. package/src/super-admin/model-class-table.jsx +3 -3
  258. package/src/super-admin/models.js +1 -1
  259. package/src/super-admin/show-nav.jsx +2 -2
  260. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
  261. package/src/super-admin/show-page/index.jsx +2 -2
  262. package/src/super-admin/show-reflection-actions.jsx +1 -1
  263. package/src/super-admin/show-reflection-link.jsx +1 -1
  264. package/src/super-admin/show-reflection-page.jsx +1 -1
  265. package/src/table/column-content.jsx +1 -1
  266. package/src/table/filters/filter-form.jsx +1 -1
  267. package/src/table/filters/index.jsx +5 -3
  268. package/src/table/filters/load-search-modal.jsx +6 -4
  269. package/src/table/filters/save-search-modal.jsx +4 -4
  270. package/src/table/header-select.jsx +1 -1
  271. package/src/table/model-column.jsx +1 -1
  272. package/src/table/model-row.jsx +2 -2
  273. package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
  274. package/src/table/settings/column-row.jsx +2 -2
  275. package/src/table/settings/download-action.jsx +3 -3
  276. package/src/table/settings/index.jsx +3 -3
  277. package/src/table/table-settings.js +5 -4
  278. package/src/table/table.jsx +8 -8
  279. package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
  280. package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
  281. package/src/table/worker-plugins-checkbox.jsx +2 -2
  282. package/src/{translated-collections.mjs → translated-collections.js} +1 -1
  283. package/src/updated-attribute.jsx +1 -1
  284. package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
  285. package/src/use-can-can.js +55 -0
  286. package/src/{use-collection.mjs → use-collection.js} +4 -4
  287. package/src/{use-created-event.mjs → use-created-event.js} +2 -2
  288. package/src/{use-current-user.mjs → use-current-user.js} +6 -5
  289. package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
  290. package/src/{use-input.mjs → use-input.js} +5 -5
  291. package/src/use-model-event.js +2 -2
  292. package/src/{use-model.mjs → use-model.js} +4 -4
  293. package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
  294. package/src/use-router.jsx +2 -2
  295. package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
  296. package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
  297. package/src/utils/checkbox.jsx +2 -2
  298. package/src/{validation-error.mjs → validation-error.js} +1 -1
  299. package/src/{validation-errors.mjs → validation-errors.js} +1 -1
  300. package/src/with-current-user.jsx +1 -1
  301. package/src/with-model.jsx +1 -1
  302. package/__tests__/base-model.test.mjs +0 -71
  303. package/__tests__/cable-connection-pool.test.mjs +0 -227
  304. package/__tests__/cable-subscription-pool.test.mjs +0 -27
  305. package/__tests__/can-can.test.mjs +0 -34
  306. package/__tests__/collection.test.mjs +0 -51
  307. package/__tests__/custom-error.test.mjs +0 -13
  308. package/__tests__/model-name.test.mjs +0 -34
  309. package/__tests__/model-prop-type.test.mjs +0 -113
  310. package/__tests__/params.test.mjs +0 -40
  311. package/__tests__/routes-native.test.mjs +0 -104
  312. package/__tests__/routes.test.mjs +0 -47
  313. package/__tests__/serializer.test.mjs +0 -30
  314. package/__tests__/support/task.mjs +0 -27
  315. package/__tests__/support/user.mjs +0 -32
  316. package/index.js +0 -1
  317. package/jest.config.js +0 -9
  318. package/src/event-created.jsx +0 -12
  319. package/src/event-destroyed.jsx +0 -25
  320. package/src/event-emitter-listener.jsx +0 -10
  321. package/src/event-listener.jsx +0 -25
  322. package/src/event-updated.jsx +0 -27
  323. package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
  324. package/src/use-can-can.mjs +0 -48
  325. package/src/with-can-can.jsx +0 -12
  326. package/webpack.config.js +0 -15
  327. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  328. /package/src/base-model/{column.mjs → column.js} +0 -0
  329. /package/src/base-model/{scope.mjs → scope.js} +0 -0
  330. /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
  331. /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
  332. /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
  333. /package/src/{config.mjs → config.js} +0 -0
  334. /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
  335. /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
  336. /package/src/{error-messages.mjs → error-messages.js} +0 -0
  337. /package/src/{events.mjs → events.js} +0 -0
  338. /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
  339. /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
  340. /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
  341. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  342. /package/src/{logger.mjs → logger.js} +0 -0
  343. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  344. /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
  345. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  346. /package/src/{result.mjs → result.js} +0 -0
  347. /package/src/{routes.mjs → routes.js} +0 -0
  348. /package/src/{run-last.mjs → run-last.js} +0 -0
  349. /package/src/{serializer.mjs → serializer.js} +0 -0
  350. /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
  351. /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
  352. /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
  353. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
  354. /package/src/{url-encode.mjs → url-encode.js} +0 -0
  355. /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
  356. /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
  357. /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {digs} from "diggerize"
2
2
  import * as inflection from "inflection"
3
- import modelCallbackArgs from "./model-callback-args.mjs"
3
+ import modelCallbackArgs from "./model-callback-args"
4
4
  import MoneyFormatter from "../money-formatter"
5
5
  import Text from "../utils/text"
6
6
 
@@ -12,7 +12,7 @@ import {ActivityIndicator, View} from "react-native"
12
12
  import ReflectionElement from "./reflection-element"
13
13
  import ScopeElement from "./scope-element"
14
14
  import Select from "../../inputs/select"
15
- import Services from "../../services.mjs"
15
+ import Services from "../../services"
16
16
  import {shapeComponent} from "set-state-compare/src/shape-component"
17
17
  import Text from "../../utils/text"
18
18
 
@@ -6,12 +6,14 @@ import LoadSearchModal from "./load-search-modal"
6
6
  import SaveSearchModal from "./save-search-modal"
7
7
  import PropTypes from "prop-types"
8
8
  import memo from "set-state-compare/src/memo"
9
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
10
- import {TableSearch} from "../../models.mjs.erb"
11
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
9
+ import {shapeComponent} from "set-state-compare/src/shape-component"
10
+ import models from "../../models"
11
+ import useI18n from "i18n-on-steroids/src/use-i18n"
12
12
  import useQueryParams from "on-location-changed/src/use-query-params"
13
13
  import {View} from "react-native"
14
14
 
15
+ const {TableSearch} = models
16
+
15
17
  export default memo(shapeComponent(class ApiMakerTableFilters extends BaseComponent {
16
18
  static propTypes = {
17
19
  currentUser: PropTypes.object,
@@ -1,14 +1,16 @@
1
- import apiMakerConfig from "@kaspernj/api-maker/src/config.mjs"
1
+ import apiMakerConfig from "@kaspernj/api-maker/build/config"
2
2
  import BaseComponent from "../../base-component"
3
3
  import classNames from "classnames"
4
4
  import {digg} from "diggerize"
5
5
  import memo from "set-state-compare/src/memo"
6
6
  import {useMemo} from "react"
7
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
8
- import {TableSearch} from "../../models.mjs.erb"
7
+ import {shapeComponent} from "set-state-compare/src/shape-component"
8
+ import models from "../../models"
9
9
  import {Pressable, View} from "react-native"
10
10
  import Text from "../../utils/text"
11
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
11
+ import useI18n from "i18n-on-steroids/src/use-i18n"
12
+
13
+ const {TableSearch} = models
12
14
 
13
15
  const SearchLink = memo(shapeComponent(class SearchLink extends BaseComponent {
14
16
  render() {
@@ -1,13 +1,13 @@
1
- import apiMakerConfig from "@kaspernj/api-maker/src/config.mjs"
1
+ import apiMakerConfig from "@kaspernj/api-maker/build/config"
2
2
  import BaseComponent from "../../base-component"
3
3
  import Checkbox from "../../bootstrap/checkbox"
4
4
  import {digg} from "diggerize"
5
5
  import {Form} from "../../form"
6
6
  import Input from "../../bootstrap/input"
7
- import modelClassRequire from "../../model-class-require.mjs"
8
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
+ import modelClassRequire from "../../model-class-require"
8
+ import {shapeComponent} from "set-state-compare/src/shape-component"
9
9
  import memo from "set-state-compare/src/memo"
10
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
10
+ import useI18n from "i18n-on-steroids/src/use-i18n"
11
11
 
12
12
  const TableSearch = modelClassRequire("TableSearch")
13
13
 
@@ -8,7 +8,7 @@ import PropTypes from "prop-types"
8
8
  import propTypesExact from "prop-types-exact"
9
9
  import {shapeComponent} from "set-state-compare/src/shape-component"
10
10
  import Text from "../utils/text"
11
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
11
+ import useI18n from "i18n-on-steroids/src/use-i18n"
12
12
  import useSorting from "./use-sorting"
13
13
 
14
14
  export default memo(shapeComponent(class ApiMakerTableHeaderSelect extends BaseComponent {
@@ -3,7 +3,7 @@ import BaseComponent from "../base-component"
3
3
  import classNames from "classnames"
4
4
  import Column from "./components/column"
5
5
  import ColumnContent from "./column-content"
6
- import columnIdentifier from "./column-identifier.mjs"
6
+ import columnIdentifier from "./column-identifier"
7
7
  import EventEmitter from "events"
8
8
  import PropTypes from "prop-types"
9
9
  import propTypesExact from "prop-types-exact"
@@ -1,11 +1,11 @@
1
1
  import {Pressable} from "react-native"
2
2
  import BaseComponent from "../base-component"
3
3
  import Column from "./components/column"
4
- import columnIdentifier from "./column-identifier.mjs"
4
+ import columnIdentifier from "./column-identifier"
5
5
  import EventEmitter from "events"
6
6
  import FontAwesomeIcon from "react-native-vector-icons/FontAwesome"
7
7
  import * as inflection from "inflection"
8
- import modelCallbackArgs from "./model-callback-args.mjs"
8
+ import modelCallbackArgs from "./model-callback-args"
9
9
  import Link from "../link"
10
10
  import ModelColumn from "./model-column"
11
11
  import PropTypes from "prop-types"
@@ -1,6 +1,6 @@
1
1
  import {digg, digs} from "diggerize"
2
2
  import * as inflection from "inflection"
3
- import modelClassRequire from "../model-class-require.mjs"
3
+ import modelClassRequire from "../model-class-require"
4
4
 
5
5
  class SelectCalculator {
6
6
  constructor({table}) {
@@ -1,10 +1,10 @@
1
1
  import BaseComponent from "../../base-component"
2
- import columnIdentifier from "../column-identifier.mjs"
2
+ import columnIdentifier from "../column-identifier"
3
3
  import memo from "set-state-compare/src/memo"
4
4
  import PropTypes from "prop-types"
5
5
  import propTypesExact from "prop-types-exact"
6
6
  import {useEffect, useRef} from "react"
7
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
+ import {shapeComponent} from "set-state-compare/src/shape-component"
8
8
  import Text from "../../utils/text"
9
9
  import {View} from "react-native"
10
10
 
@@ -1,14 +1,14 @@
1
1
  import BaseComponent from "../../base-component"
2
2
  import ColumnContent from "../column-content"
3
- import columnIdentifier from "../column-identifier.mjs"
4
- import columnVisible from "../column-visible.mjs"
3
+ import columnIdentifier from "../column-identifier"
4
+ import columnVisible from "../column-visible"
5
5
  import {saveAs} from "file-saver"
6
6
  import FontAwesomeIcon from "react-native-vector-icons/FontAwesome"
7
7
  import memo from "set-state-compare/src/memo"
8
8
  import PropTypes from "prop-types"
9
9
  import propTypesExact from "prop-types-exact"
10
10
  import {renderToString} from "react-dom/server"
11
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
11
+ import {shapeComponent} from "set-state-compare/src/shape-component"
12
12
  import {Pressable} from "react-native"
13
13
  import Text from "../../utils/text"
14
14
 
@@ -1,5 +1,5 @@
1
1
  import BaseComponent from "../../base-component"
2
- import columnIdentifier from "../column-identifier.mjs"
2
+ import columnIdentifier from "../column-identifier"
3
3
  import ColumnRow from "./column-row"
4
4
  import DownloadAction from "./download-action"
5
5
  import {useRef} from "react"
@@ -7,10 +7,10 @@ import memo from "set-state-compare/src/memo"
7
7
  import Modal from "../../modal"
8
8
  import PropTypes from "prop-types"
9
9
  import propTypesExact from "prop-types-exact"
10
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
10
+ import {shapeComponent} from "set-state-compare/src/shape-component"
11
11
  import {View} from "react-native"
12
12
  import Text from "../../utils/text"
13
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
13
+ import useI18n from "i18n-on-steroids/src/use-i18n"
14
14
 
15
15
  export default memo(shapeComponent(class ApiMakerTableSettings extends BaseComponent {
16
16
  static propTypes = propTypesExact({
@@ -1,14 +1,15 @@
1
- import columnIdentifier from "./column-identifier.mjs"
2
- import columnVisible from "./column-visible.mjs"
1
+ import columnIdentifier from "./column-identifier"
2
+ import columnVisible from "./column-visible"
3
3
  import {digg} from "diggerize"
4
4
  import * as inflection from "inflection"
5
- import Logger from "../logger.mjs"
5
+ import Logger from "../logger"
6
6
  import {ReadersWriterLock} from "epic-locks"
7
7
  import {serialize as objectToFormData} from "object-to-formdata"
8
- import {TableSetting} from "../models.mjs.erb"
8
+ import models from "../models"
9
9
  import {v4 as uuidv4} from "uuid"
10
10
 
11
11
  const logger = new Logger({name: "ApiMaker / TableSettings"})
12
+ const {TableSetting} = models
12
13
 
13
14
  // Have a lock for each unique table identifier
14
15
  const tableSettingsLocks = {}
@@ -5,9 +5,9 @@ import BaseComponent from "../base-component"
5
5
  import Card from "../bootstrap/card"
6
6
  import classNames from "classnames"
7
7
  import Collection from "../collection"
8
- import columnVisible from "./column-visible.mjs"
8
+ import columnVisible from "./column-visible"
9
9
  import debounce from "debounce"
10
- import DraggableSort from "../draggable-sort/index.jsx"
10
+ import DraggableSort from "../draggable-sort/index"
11
11
  import EventEmitter from "events"
12
12
  import Filters from "./filters"
13
13
  import FlatList from "./components/flat-list"
@@ -18,7 +18,7 @@ import HeaderColumn from "./header-column"
18
18
  import HeaderSelect from "./header-select"
19
19
  import * as inflection from "inflection"
20
20
  import memo from "set-state-compare/src/memo"
21
- import modelClassRequire from "../model-class-require.mjs"
21
+ import modelClassRequire from "../model-class-require"
22
22
  import ModelRow from "./model-row"
23
23
  import Paginate from "../bootstrap/paginate"
24
24
  import Params from "../params"
@@ -26,17 +26,17 @@ import PropTypes from "prop-types"
26
26
  import Row from "./components/row"
27
27
  import selectCalculator from "./select-calculator"
28
28
  import Select from "../inputs/select"
29
- import Settings from "./settings"
29
+ import Settings from "./settings/index"
30
30
  import {shapeComponent} from "set-state-compare/src/shape-component"
31
31
  import TableSettings from "./table-settings"
32
32
  import Text from "../utils/text"
33
33
  import uniqunize from "uniqunize"
34
34
  import useBreakpoint from "../use-breakpoint"
35
35
  import useCollection from "../use-collection"
36
- import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
37
- import useEventEmitter from "../use-event-emitter.mjs"
38
- import useModelEvent from "../use-model-event.js"
39
- import useQueryParams from "on-location-changed/src/use-query-params.js"
36
+ import useI18n from "i18n-on-steroids/src/use-i18n"
37
+ import useEventEmitter from "../use-event-emitter"
38
+ import useModelEvent from "../use-model-event"
39
+ import useQueryParams from "on-location-changed/src/use-query-params"
40
40
  import Widths from "./widths"
41
41
 
42
42
  const paginationOptions = [30, 60, 90, ["All", "all"]]
@@ -1,5 +1,5 @@
1
1
  import {camelize} from "inflection"
2
- import useQueryParams from "on-location-changed/src/use-query-params.js"
2
+ import useQueryParams from "on-location-changed/src/use-query-params"
3
3
 
4
4
  const calculateQParams = (defaultParams, queryParams, searchKey) => {
5
5
  if (searchKey in queryParams) {
@@ -1,13 +1,13 @@
1
1
  import {useEffect, useMemo, useRef} from "react"
2
2
  import BaseComponent from "../base-component"
3
3
  import classNames from "classnames"
4
- import Collection from "../collection.mjs"
4
+ import Collection from "../collection"
5
5
  import memo from "set-state-compare/src/memo"
6
6
  import PropTypes from "prop-types"
7
7
  import propTypesExact from "prop-types-exact"
8
8
  import {shapeComponent} from "set-state-compare/src/shape-component"
9
9
  import {simpleObjectDifferent} from "set-state-compare/src/diff-utils"
10
- import useModelEvent from "../use-model-event.js"
10
+ import useModelEvent from "../use-model-event"
11
11
 
12
12
  const Checkbox = memo(shapeComponent(class Checkbox extends BaseComponent {
13
13
  render() {
@@ -2,12 +2,12 @@ import BaseComponent from "../base-component"
2
2
  import classNames from "classnames"
3
3
  import {digg} from "diggerize"
4
4
  import memo from "set-state-compare/src/memo"
5
- import modelClassRequire from "../model-class-require.mjs"
5
+ import modelClassRequire from "../model-class-require"
6
6
  import PropTypes from "prop-types"
7
7
  import PropTypesExact from "prop-types-exact"
8
8
  import {useMemo} from "react"
9
9
  import {shapeComponent} from "set-state-compare/src/shape-component"
10
- import useModelEvent from "../use-model-event.js"
10
+ import useModelEvent from "../use-model-event"
11
11
 
12
12
  const Workplace = modelClassRequire("Workplace")
13
13
 
@@ -1,5 +1,5 @@
1
1
  import {digg} from "diggerize"
2
- import translatedCollectionsData from "./translated-collections-data.mjs.erb"
2
+ import translatedCollectionsData from "../src/translated-collections-data.js.erb"
3
3
 
4
4
  export default class ApiMakerTranslatedCollections {
5
5
  static get (modelClass, collectionName) {
@@ -1,5 +1,5 @@
1
1
  import {digg} from "diggerize"
2
- import ModelEvents from "./model-events.mjs"
2
+ import ModelEvents from "./model-events"
3
3
  import PropTypes from "prop-types"
4
4
  import propTypesExact from "prop-types-exact"
5
5
  import React from "react"
@@ -1,7 +1,7 @@
1
1
  import {useCallback, useLayoutEffect} from "react"
2
- import apiMakerConfig from "@kaspernj/api-maker/src/config.mjs"
2
+ import apiMakerConfig from "@kaspernj/api-maker/build/config"
3
3
  import {Dimensions} from "react-native"
4
- import useShape from "set-state-compare/src/use-shape.js"
4
+ import useShape from "set-state-compare/src/use-shape"
5
5
 
6
6
  const calculateBreakPoint = (window) => {
7
7
  const windowWidth = window.width
@@ -0,0 +1,55 @@
1
+ import CanCan from "./can-can"
2
+ import {useCallback, useMemo, useState} from "react"
3
+ import useCurrentUser from "./use-current-user"
4
+ import useEventEmitter from "./use-event-emitter"
5
+ import useShape from "set-state-compare/src/use-shape"
6
+
7
+ const useCanCan = (abilitiesCallback, dependencies) => {
8
+ const currentUser = useCurrentUser()
9
+ const s = useShape({abilitiesCallback})
10
+
11
+ s.useStates({
12
+ canCan: null,
13
+ lastUpdate: new Date()
14
+ })
15
+
16
+ if (!dependencies) {
17
+ dependencies = [currentUser?.id()]
18
+ }
19
+
20
+ const loadAbilities = useCallback(async () => {
21
+ const canCan = CanCan.current()
22
+ const abilities = s.p.abilitiesCallback()
23
+
24
+ await canCan.loadAbilities(abilities)
25
+
26
+ s.set({canCan, lastUpdate: new Date()})
27
+ }, [])
28
+
29
+ const onResetAbilities = useCallback(async () => {
30
+ s.set({canCan: null}, {silent: true})
31
+ await loadAbilities()
32
+ }, [])
33
+
34
+ const loadAbilitiesOnNew = useCallback(async () => {
35
+ const canCan = s.s.canCan
36
+
37
+ s.set({canCan: null}, {silent: true})
38
+
39
+ if (canCan) {
40
+ await canCan?.resetAbilities()
41
+ } else {
42
+ await loadAbilities()
43
+ }
44
+ }, [])
45
+
46
+ useMemo(() => {
47
+ loadAbilitiesOnNew()
48
+ }, dependencies)
49
+
50
+ useEventEmitter(CanCan.current().events, "onResetAbilities", onResetAbilities)
51
+
52
+ return s.s.canCan
53
+ }
54
+
55
+ export default useCanCan
@@ -1,11 +1,11 @@
1
1
  import debounce from "debounce"
2
2
  import {digg} from "diggerize"
3
3
  import * as inflection from "inflection"
4
- import ModelEvents from "./model-events.mjs"
4
+ import ModelEvents from "./model-events"
5
5
  import {useCallback, useLayoutEffect, useMemo} from "react"
6
- import useCreatedEvent from "./use-created-event.mjs"
7
- import useShape from "set-state-compare/src/use-shape.js"
8
- import useQueryParams from "on-location-changed/src/use-query-params.js"
6
+ import useCreatedEvent from "./use-created-event"
7
+ import useShape from "set-state-compare/src/use-shape"
8
+ import useQueryParams from "on-location-changed/src/use-query-params"
9
9
 
10
10
  const useCollection = (props, cacheKeys = []) => {
11
11
  const {
@@ -1,9 +1,9 @@
1
1
  import debounceFunction from "debounce"
2
- import ModelEvents from "./model-events.mjs"
2
+ import ModelEvents from "./model-events"
3
3
  import PropTypes from "prop-types"
4
4
  import propTypesExact from "prop-types-exact"
5
5
  import {useCallback, useLayoutEffect} from "react"
6
- import useShape from "set-state-compare/src/use-shape.js"
6
+ import useShape from "set-state-compare/src/use-shape"
7
7
 
8
8
  const ApiMakerUseCreatedEvent = (modelClass, onCreated, args = {}) => {
9
9
  const {active = true, debounce} = args
@@ -1,10 +1,11 @@
1
1
  import {useCallback, useMemo} from "react"
2
2
  import {camelize} from "inflection"
3
- import Devise from "./devise.mjs"
4
- import Logger from "./logger.mjs"
5
- import Services from "./services.mjs"
6
- import useEventEmitter from "./use-event-emitter.mjs"
7
- import useShape from "set-state-compare/src/use-shape.js"
3
+ import Devise from "./devise"
4
+ import {digg} from "diggerize"
5
+ import Logger from "./logger"
6
+ import Services from "./services"
7
+ import useEventEmitter from "./use-event-emitter"
8
+ import useShape from "set-state-compare/src/use-shape"
8
9
 
9
10
  const logger = new Logger({name: "ApiMaker / useCurrentUser"})
10
11
 
@@ -1,7 +1,7 @@
1
1
  import {useCallback, useLayoutEffect, useMemo} from "react"
2
2
  import debounceFunction from "debounce"
3
- import ModelEvents from "./model-events.mjs"
4
- import useShape from "set-state-compare/src/use-shape.js"
3
+ import ModelEvents from "./model-events"
4
+ import useShape from "set-state-compare/src/use-shape"
5
5
 
6
6
  const apiMakerUseDestroyedEvent = (model, onDestroyed, props) => {
7
7
  const {active = true, debounce, onConnected, ...restProps} = props || {}
@@ -1,10 +1,10 @@
1
1
  import {dig, digg} from "diggerize"
2
2
  import {useCallback, useEffect, useMemo} from "react"
3
- import idForComponent from "./inputs/id-for-component.mjs"
4
- import nameForComponent from "./inputs/name-for-component.mjs"
3
+ import idForComponent from "./inputs/id-for-component"
4
+ import nameForComponent from "./inputs/name-for-component"
5
5
  import strftime from "strftime"
6
- import useShape from "set-state-compare/src/use-shape.js"
7
- import useValidationErrors from "./use-validation-errors.mjs"
6
+ import useShape from "set-state-compare/src/use-shape"
7
+ import useValidationErrors from "./use-validation-errors"
8
8
 
9
9
  const useInput = ({props, wrapperOptions, ...useInputRestProps}) => {
10
10
  const useInputRestPropsKeys = Object.keys(useInputRestProps)
@@ -47,7 +47,7 @@ const useInput = ({props, wrapperOptions, ...useInputRestProps}) => {
47
47
  const inputDefaultChecked = useCallback(() => {
48
48
  if ("defaultChecked" in s.props) {
49
49
  return s.props.defaultChecked
50
- } else if (s.props.model) {
50
+ } else if (s.props.attribute && s.props.model) {
51
51
  if (!s.props.model[s.props.attribute])
52
52
  throw new Error(`No such attribute: ${s.props.attribute}`)
53
53
 
@@ -1,7 +1,7 @@
1
1
  import {useCallback, useLayoutEffect, useMemo} from "react"
2
2
  import debounceFunction from "debounce"
3
- import ModelEvents from "./model-events.mjs"
4
- import useShape from "set-state-compare/src/use-shape.js"
3
+ import ModelEvents from "./model-events"
4
+ import useShape from "set-state-compare/src/use-shape"
5
5
 
6
6
  const apiMakerUseModelEvent = (model, event, onCallback, props) => {
7
7
  const {active = true, debounce, onConnected, ...restProps} = props || {}
@@ -1,9 +1,9 @@
1
1
  import {useCallback, useLayoutEffect, useMemo} from "react"
2
- import Devise from "./devise.mjs"
2
+ import Devise from "./devise"
3
3
  import * as inflection from "inflection"
4
- import ModelEvents from "./model-events.mjs"
5
- import useQueryParams from "on-location-changed/src/use-query-params.js"
6
- import useShape from "set-state-compare/src/use-shape.js"
4
+ import ModelEvents from "./model-events"
5
+ import useQueryParams from "on-location-changed/src/use-query-params"
6
+ import useShape from "set-state-compare/src/use-shape"
7
7
 
8
8
  const useModel = (modelClassArg, argsArg = {}) => {
9
9
  const queryParams = useQueryParams()
@@ -1,5 +1,5 @@
1
1
  import {useCallback, useLayoutEffect, useMemo} from "react"
2
- import useShape from "set-state-compare/src/use-shape.js"
2
+ import useShape from "set-state-compare/src/use-shape"
3
3
 
4
4
  const useResizeObserver = (element, callback) => {
5
5
  const s = useShape({callback})
@@ -1,9 +1,9 @@
1
- import config from "./config.mjs"
1
+ import config from "./config"
2
2
  import escapeStringRegexp from "escape-string-regexp"
3
3
  import * as inflection from "inflection"
4
4
  import PropTypes from "prop-types"
5
5
  import {useCallback, useMemo} from "react"
6
- import useShape from "set-state-compare/src/use-shape.js"
6
+ import useShape from "set-state-compare/src/use-shape"
7
7
 
8
8
  const useRouter = (props) => {
9
9
  const s = useShape(props)
@@ -1,7 +1,7 @@
1
1
  import {useCallback, useLayoutEffect, useMemo} from "react"
2
2
  import debounceFunction from "debounce"
3
- import ModelEvents from "./model-events.mjs"
4
- import useShape from "set-state-compare/src/use-shape.js"
3
+ import ModelEvents from "./model-events"
4
+ import useShape from "set-state-compare/src/use-shape"
5
5
 
6
6
  const apiMakerUseUpdatedEvent = (model, onUpdated, props = {}) => {
7
7
  const {active = true, debounce, onConnected, ...restProps} = props
@@ -1,7 +1,7 @@
1
- import events from "./events.mjs"
1
+ import events from "./events"
2
2
  import {useCallback} from "react"
3
- import useEventEmitter from "./use-event-emitter.mjs"
4
- import useShape from "set-state-compare/src/use-shape.js"
3
+ import useEventEmitter from "./use-event-emitter"
4
+ import useShape from "set-state-compare/src/use-shape"
5
5
 
6
6
  const useValidationErrors = (callback) => {
7
7
  const s = useShape({callback})
@@ -3,8 +3,8 @@ import {CheckBox, Pressable, View} from "react-native"
3
3
  import memo from "set-state-compare/src/memo"
4
4
  import PropTypes from "prop-types"
5
5
  import propTypesExact from "prop-types-exact"
6
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
- import Text from "../utils/text"
6
+ import {shapeComponent} from "set-state-compare/src/shape-component"
7
+ import Text from "./text"
8
8
 
9
9
  export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseComponent {
10
10
  static defaultProps = {
@@ -1,4 +1,4 @@
1
- import BaseError from "./base-error.mjs"
1
+ import BaseError from "./base-error"
2
2
  import * as inflection from "inflection"
3
3
 
4
4
  class ValidationError extends BaseError {
@@ -1,6 +1,6 @@
1
1
  import {digg, digs} from "diggerize"
2
2
  import * as inflection from "inflection"
3
- import modelClassRequire from "./model-class-require.mjs"
3
+ import modelClassRequire from "./model-class-require"
4
4
 
5
5
  class ValidationError {
6
6
  constructor(args) {
@@ -1,4 +1,4 @@
1
- import useCurrentUser from "./use-current-user.mjs"
1
+ import useCurrentUser from "./use-current-user"
2
2
 
3
3
  export default (WrappedComponent) => (props) => {
4
4
  const currentUser = useCurrentUser()
@@ -1,5 +1,5 @@
1
1
  import memo from "set-state-compare/src/memo"
2
- import useModel from "./use-model.mjs"
2
+ import useModel from "./use-model"
3
3
 
4
4
  export default (WrappedComponent, modelClass, givenArgs) => {
5
5
  const ApiMakerWithModel = (props) => {