@kaspernj/api-maker 1.0.445 → 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 (361) 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 -14
  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/controller.js +137 -0
  209. package/src/draggable-sort/index.jsx +108 -0
  210. package/src/draggable-sort/item.jsx +174 -0
  211. package/src/{error-logger.mjs → error-logger.js} +1 -1
  212. package/src/event-connection.jsx +1 -1
  213. package/src/event-model-class.jsx +1 -1
  214. package/src/form.jsx +1 -1
  215. package/src/index.js +3 -0
  216. package/src/inputs/attachment.jsx +2 -2
  217. package/src/inputs/checkbox.jsx +7 -6
  218. package/src/inputs/checkboxes.jsx +1 -1
  219. package/src/inputs/input-wrapper.jsx +1 -1
  220. package/src/inputs/input.jsx +8 -7
  221. package/src/inputs/money.jsx +3 -3
  222. package/src/inputs/select.jsx +1 -1
  223. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  224. package/src/link.jsx +2 -2
  225. package/src/modal.jsx +1 -1
  226. package/src/{model-class-require.mjs → model-class-require.js} +4 -2
  227. package/src/{model-events.mjs → model-events.js} +1 -1
  228. package/src/{model-name.mjs → model-name.js} +1 -1
  229. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  230. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
  231. package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
  232. package/src/models.js +7 -0
  233. package/src/{models.mjs.erb → models.js.erb} +1 -1
  234. package/src/{params.mjs → params.js} +2 -2
  235. package/src/{preloaded.mjs → preloaded.js} +1 -1
  236. package/src/resize-observer.jsx +1 -1
  237. package/src/router/route.jsx +1 -1
  238. package/src/router/switch.jsx +1 -1
  239. package/src/router.jsx +1 -1
  240. package/src/{routes-native.mjs → routes-native.js} +1 -1
  241. package/src/{services.mjs → services.js} +1 -1
  242. package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
  243. package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
  244. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
  245. package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
  246. package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
  247. package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
  248. package/src/super-admin/edit-page.jsx +2 -2
  249. package/src/super-admin/has-edit-config.js +1 -1
  250. package/src/super-admin/index-page.jsx +1 -1
  251. package/src/super-admin/index.jsx +7 -7
  252. package/src/super-admin/layout/header/index.jsx +2 -2
  253. package/src/super-admin/layout/index.jsx +3 -3
  254. package/src/super-admin/layout/menu/index.jsx +3 -3
  255. package/src/super-admin/layout/menu/menu-content.jsx +2 -2
  256. package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
  257. package/src/super-admin/layout/no-access.jsx +2 -2
  258. package/src/super-admin/model-class-table.jsx +3 -3
  259. package/src/super-admin/models.js +1 -1
  260. package/src/super-admin/show-nav.jsx +2 -2
  261. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
  262. package/src/super-admin/show-page/index.jsx +2 -2
  263. package/src/super-admin/show-reflection-actions.jsx +1 -1
  264. package/src/super-admin/show-reflection-link.jsx +1 -1
  265. package/src/super-admin/show-reflection-page.jsx +1 -1
  266. package/src/table/column-content.jsx +1 -1
  267. package/src/table/components/column.jsx +8 -2
  268. package/src/table/components/header.jsx +2 -2
  269. package/src/table/filters/filter-form.jsx +1 -1
  270. package/src/table/filters/index.jsx +5 -3
  271. package/src/table/filters/load-search-modal.jsx +6 -4
  272. package/src/table/filters/save-search-modal.jsx +4 -4
  273. package/src/table/header-column.jsx +59 -79
  274. package/src/table/header-select.jsx +1 -1
  275. package/src/table/model-column.jsx +12 -6
  276. package/src/table/model-row.jsx +11 -7
  277. package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
  278. package/src/table/settings/column-row.jsx +4 -3
  279. package/src/table/settings/download-action.jsx +3 -3
  280. package/src/table/settings/index.jsx +3 -3
  281. package/src/table/table-settings.js +5 -4
  282. package/src/table/table.jsx +149 -71
  283. package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
  284. package/src/table/{widths.mjs → widths.jsx} +11 -2
  285. package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
  286. package/src/table/worker-plugins-checkbox.jsx +2 -2
  287. package/src/{translated-collections.mjs → translated-collections.js} +1 -1
  288. package/src/updated-attribute.jsx +1 -1
  289. package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
  290. package/src/use-can-can.js +55 -0
  291. package/src/{use-collection.mjs → use-collection.js} +4 -4
  292. package/src/{use-created-event.mjs → use-created-event.js} +2 -2
  293. package/src/{use-current-user.mjs → use-current-user.js} +6 -5
  294. package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
  295. package/src/{use-input.mjs → use-input.js} +5 -5
  296. package/src/use-model-event.js +2 -2
  297. package/src/{use-model.mjs → use-model.js} +4 -4
  298. package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
  299. package/src/use-router.jsx +2 -2
  300. package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
  301. package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
  302. package/src/utils/checkbox.jsx +2 -2
  303. package/src/{validation-error.mjs → validation-error.js} +1 -1
  304. package/src/{validation-errors.mjs → validation-errors.js} +1 -1
  305. package/src/with-current-user.jsx +1 -1
  306. package/src/with-model.jsx +1 -1
  307. package/__tests__/base-model.test.mjs +0 -71
  308. package/__tests__/cable-connection-pool.test.mjs +0 -227
  309. package/__tests__/cable-subscription-pool.test.mjs +0 -27
  310. package/__tests__/can-can.test.mjs +0 -34
  311. package/__tests__/collection.test.mjs +0 -51
  312. package/__tests__/custom-error.test.mjs +0 -13
  313. package/__tests__/model-name.test.mjs +0 -34
  314. package/__tests__/model-prop-type.test.mjs +0 -113
  315. package/__tests__/params.test.mjs +0 -40
  316. package/__tests__/routes-native.test.mjs +0 -104
  317. package/__tests__/routes.test.mjs +0 -47
  318. package/__tests__/serializer.test.mjs +0 -30
  319. package/__tests__/support/task.mjs +0 -27
  320. package/__tests__/support/user.mjs +0 -32
  321. package/index.js +0 -1
  322. package/jest.config.js +0 -9
  323. package/src/event-created.jsx +0 -12
  324. package/src/event-destroyed.jsx +0 -25
  325. package/src/event-emitter-listener.jsx +0 -10
  326. package/src/event-listener.jsx +0 -25
  327. package/src/event-updated.jsx +0 -27
  328. package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
  329. package/src/use-can-can.mjs +0 -48
  330. package/src/with-can-can.jsx +0 -12
  331. package/webpack.config.js +0 -15
  332. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  333. /package/src/base-model/{column.mjs → column.js} +0 -0
  334. /package/src/base-model/{scope.mjs → scope.js} +0 -0
  335. /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
  336. /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
  337. /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
  338. /package/src/{config.mjs → config.js} +0 -0
  339. /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
  340. /package/src/{error-messages.mjs → error-messages.js} +0 -0
  341. /package/src/{events.mjs → events.js} +0 -0
  342. /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
  343. /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
  344. /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
  345. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  346. /package/src/{logger.mjs → logger.js} +0 -0
  347. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  348. /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
  349. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  350. /package/src/{result.mjs → result.js} +0 -0
  351. /package/src/{routes.mjs → routes.js} +0 -0
  352. /package/src/{run-last.mjs → run-last.js} +0 -0
  353. /package/src/{serializer.mjs → serializer.js} +0 -0
  354. /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
  355. /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
  356. /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
  357. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
  358. /package/src/{url-encode.mjs → url-encode.js} +0 -0
  359. /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
  360. /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
  361. /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
@@ -0,0 +1,182 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import BaseComponent from "../../base-component";
3
+ import { digg, digs } from "diggerize";
4
+ import Filter from "./filter";
5
+ import FilterForm from "./filter-form";
6
+ import LoadSearchModal from "./load-search-modal";
7
+ import SaveSearchModal from "./save-search-modal";
8
+ import PropTypes from "prop-types";
9
+ import memo from "set-state-compare/src/memo";
10
+ import { shapeComponent } from "set-state-compare/src/shape-component";
11
+ import models from "../../models";
12
+ import useI18n from "i18n-on-steroids/src/use-i18n";
13
+ import useQueryParams from "on-location-changed/src/use-query-params";
14
+ import { View } from "react-native";
15
+ const {
16
+ TableSearch
17
+ } = models;
18
+ export default memo(shapeComponent(class ApiMakerTableFilters extends BaseComponent {
19
+ static propTypes = {
20
+ currentUser: PropTypes.object,
21
+ modelClass: PropTypes.func.isRequired,
22
+ queryName: PropTypes.string.isRequired,
23
+ querySName: PropTypes.string.isRequired
24
+ };
25
+ setup() {
26
+ const {
27
+ t
28
+ } = useI18n({
29
+ namespace: "js.api_maker.table.filters"
30
+ });
31
+ this.queryParams = useQueryParams();
32
+ this.t = t;
33
+ this.useStates({
34
+ filter: undefined,
35
+ showLoadSearchModal: undefined,
36
+ showSaveSearchModal: false
37
+ });
38
+ }
39
+ render() {
40
+ const {
41
+ modelClass,
42
+ querySName
43
+ } = digs(this.props, "modelClass", "querySName");
44
+ const {
45
+ currentUser
46
+ } = this.props;
47
+ const {
48
+ filter,
49
+ showLoadSearchModal,
50
+ showSaveSearchModal
51
+ } = digs(this.state, "filter", "showLoadSearchModal", "showSaveSearchModal");
52
+ const currentFilters = this.currentFilters();
53
+ return /*#__PURE__*/React.createElement(View, {
54
+ dataSet: {
55
+ class: "api-maker--table--filters"
56
+ },
57
+ style: {
58
+ alignItems: "flex-start"
59
+ }
60
+ }, filter && /*#__PURE__*/React.createElement(FilterForm, {
61
+ filter: filter,
62
+ key: `filter-${filter.filterIndex}`,
63
+ modelClass: modelClass,
64
+ onApplyClicked: digg(this, "onApplyClicked"),
65
+ querySearchName: querySName
66
+ }), showLoadSearchModal && /*#__PURE__*/React.createElement(LoadSearchModal, {
67
+ currentUser: currentUser,
68
+ modelClass: modelClass,
69
+ onEditSearchPressed: digg(this, "onEditSearchPressed"),
70
+ onRequestClose: digg(this, "onRequestCloseLoadSearchModal"),
71
+ querySearchName: querySName
72
+ }), showSaveSearchModal && /*#__PURE__*/React.createElement(SaveSearchModal, {
73
+ currentFilters: digg(this, "currentFilters"),
74
+ currentUser: currentUser,
75
+ onRequestClose: digg(this, "onRequestCloseSaveSearchModal"),
76
+ search: showSaveSearchModal
77
+ }), currentFilters?.map((filterData, filterIndex) => /*#__PURE__*/React.createElement(Filter, _extends({
78
+ key: filterIndex,
79
+ filterIndex: filterIndex,
80
+ onClick: this.tt.onFilterClicked,
81
+ onRemoveClicked: this.tt.onRemoveClicked
82
+ }, filterData))), /*#__PURE__*/React.createElement(View, {
83
+ className: "filter-actions",
84
+ style: {
85
+ flexDirection: "row",
86
+ marginTop: 10
87
+ }
88
+ }, /*#__PURE__*/React.createElement("button", {
89
+ className: "add-new-filter-button",
90
+ onClick: this.tt.onAddFilterClicked
91
+ }, this.t(".add_new_filter", {
92
+ defaultValue: "Add new filter"
93
+ })), currentUser && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
94
+ className: "save-search-button",
95
+ onClick: this.tt.onSaveSearchClicked,
96
+ style: {
97
+ marginLeft: 10
98
+ }
99
+ }, this.t(".save_search", {
100
+ defaultValue: "Save search"
101
+ })), /*#__PURE__*/React.createElement("button", {
102
+ className: "load-search-button",
103
+ onClick: this.tt.onLoadSearchClicked,
104
+ style: {
105
+ marginLeft: 10
106
+ }
107
+ }, this.t(".load_search", {
108
+ defaultValue: "Load search"
109
+ })))));
110
+ }
111
+ currentFilters = () => {
112
+ const {
113
+ querySName
114
+ } = digs(this.props, "querySName");
115
+ const currentFilters = this.queryParams[querySName] || [];
116
+ return currentFilters.map(currentFilter => JSON.parse(currentFilter));
117
+ };
118
+ onAddFilterClicked = e => {
119
+ e.preventDefault();
120
+ const newFilterIndex = this.currentFilters().length;
121
+ this.setState({
122
+ filter: {
123
+ filterIndex: newFilterIndex
124
+ }
125
+ });
126
+ };
127
+ onApplyClicked = () => this.setState({
128
+ filter: undefined
129
+ });
130
+ onEditSearchPressed = ({
131
+ search
132
+ }) => {
133
+ this.onRequestCloseLoadSearchModal();
134
+ this.setState({
135
+ showSaveSearchModal: search
136
+ });
137
+ };
138
+ onFilterClicked = filter => this.setState({
139
+ filter
140
+ });
141
+ onLoadSearchClicked = e => {
142
+ e.preventDefault();
143
+ this.setState({
144
+ showLoadSearchModal: true
145
+ });
146
+ };
147
+ onRemoveClicked = ({
148
+ filterIndex
149
+ }) => {
150
+ const {
151
+ querySName
152
+ } = digs(this.props, "querySName");
153
+ const searchParams = Params.parse()[querySName] || {};
154
+ delete searchParams[filterIndex];
155
+ const newParams = {};
156
+ newParams[querySName] = searchParams;
157
+ Params.changeParams(newParams);
158
+ this.setState({
159
+ filter: undefined
160
+ });
161
+ };
162
+ onRequestCloseLoadSearchModal = () => this.setState({
163
+ showLoadSearchModal: false
164
+ });
165
+ onRequestCloseSaveSearchModal = () => this.setState({
166
+ showSaveSearchModal: undefined
167
+ });
168
+ onSaveSearchClicked = e => {
169
+ e.preventDefault();
170
+ if (this.hasAnyFilters()) {
171
+ this.setState({
172
+ showSaveSearchModal: new TableSearch()
173
+ });
174
+ } else {
175
+ FlashMessage.alert(this.t(".no_filters_has_been_set", {
176
+ defaultValue: "No filters has been set"
177
+ }));
178
+ }
179
+ };
180
+ hasAnyFilters = () => Object.keys(this.currentFilters()).length > 0;
181
+ }));
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsImRpZ3MiLCJGaWx0ZXIiLCJGaWx0ZXJGb3JtIiwiTG9hZFNlYXJjaE1vZGFsIiwiU2F2ZVNlYXJjaE1vZGFsIiwiUHJvcFR5cGVzIiwibWVtbyIsInNoYXBlQ29tcG9uZW50IiwibW9kZWxzIiwidXNlSTE4biIsInVzZVF1ZXJ5UGFyYW1zIiwiVmlldyIsIlRhYmxlU2VhcmNoIiwiQXBpTWFrZXJUYWJsZUZpbHRlcnMiLCJwcm9wVHlwZXMiLCJjdXJyZW50VXNlciIsIm9iamVjdCIsIm1vZGVsQ2xhc3MiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInF1ZXJ5TmFtZSIsInN0cmluZyIsInF1ZXJ5U05hbWUiLCJzZXR1cCIsInQiLCJuYW1lc3BhY2UiLCJxdWVyeVBhcmFtcyIsInVzZVN0YXRlcyIsImZpbHRlciIsInVuZGVmaW5lZCIsInNob3dMb2FkU2VhcmNoTW9kYWwiLCJzaG93U2F2ZVNlYXJjaE1vZGFsIiwicmVuZGVyIiwicHJvcHMiLCJzdGF0ZSIsImN1cnJlbnRGaWx0ZXJzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNsYXNzIiwic3R5bGUiLCJhbGlnbkl0ZW1zIiwia2V5IiwiZmlsdGVySW5kZXgiLCJvbkFwcGx5Q2xpY2tlZCIsInF1ZXJ5U2VhcmNoTmFtZSIsIm9uRWRpdFNlYXJjaFByZXNzZWQiLCJvblJlcXVlc3RDbG9zZSIsInNlYXJjaCIsIm1hcCIsImZpbHRlckRhdGEiLCJfZXh0ZW5kcyIsIm9uQ2xpY2siLCJ0dCIsIm9uRmlsdGVyQ2xpY2tlZCIsIm9uUmVtb3ZlQ2xpY2tlZCIsImNsYXNzTmFtZSIsImZsZXhEaXJlY3Rpb24iLCJtYXJnaW5Ub3AiLCJvbkFkZEZpbHRlckNsaWNrZWQiLCJkZWZhdWx0VmFsdWUiLCJGcmFnbWVudCIsIm9uU2F2ZVNlYXJjaENsaWNrZWQiLCJtYXJnaW5MZWZ0Iiwib25Mb2FkU2VhcmNoQ2xpY2tlZCIsImN1cnJlbnRGaWx0ZXIiLCJKU09OIiwicGFyc2UiLCJlIiwicHJldmVudERlZmF1bHQiLCJuZXdGaWx0ZXJJbmRleCIsImxlbmd0aCIsInNldFN0YXRlIiwib25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwiLCJzZWFyY2hQYXJhbXMiLCJQYXJhbXMiLCJuZXdQYXJhbXMiLCJjaGFuZ2VQYXJhbXMiLCJvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbCIsImhhc0FueUZpbHRlcnMiLCJGbGFzaE1lc3NhZ2UiLCJhbGVydCIsIk9iamVjdCIsImtleXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvZmlsdGVycy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRmlsdGVyIGZyb20gXCIuL2ZpbHRlclwiXG5pbXBvcnQgRmlsdGVyRm9ybSBmcm9tIFwiLi9maWx0ZXItZm9ybVwiXG5pbXBvcnQgTG9hZFNlYXJjaE1vZGFsIGZyb20gXCIuL2xvYWQtc2VhcmNoLW1vZGFsXCJcbmltcG9ydCBTYXZlU2VhcmNoTW9kYWwgZnJvbSBcIi4vc2F2ZS1zZWFyY2gtbW9kYWxcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IG1vZGVscyBmcm9tIFwiLi4vLi4vbW9kZWxzXCJcbmltcG9ydCB1c2VJMThuIGZyb20gXCJpMThuLW9uLXN0ZXJvaWRzL3NyYy91c2UtaTE4blwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvc3JjL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuY29uc3Qge1RhYmxlU2VhcmNofSA9IG1vZGVsc1xuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVGFibGVGaWx0ZXJzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY3VycmVudFVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBxdWVyeU5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBxdWVyeVNOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGUuZmlsdGVyc1wifSlcblxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gICAgdGhpcy50ID0gdFxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGZpbHRlcjogdW5kZWZpbmVkLFxuICAgICAgc2hvd0xvYWRTZWFyY2hNb2RhbDogdW5kZWZpbmVkLFxuICAgICAgc2hvd1NhdmVTZWFyY2hNb2RhbDogZmFsc2VcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCBxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJtb2RlbENsYXNzXCIsIFwicXVlcnlTTmFtZVwiKVxuICAgIGNvbnN0IHtjdXJyZW50VXNlcn0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge2ZpbHRlciwgc2hvd0xvYWRTZWFyY2hNb2RhbCwgc2hvd1NhdmVTZWFyY2hNb2RhbH0gPSBkaWdzKHRoaXMuc3RhdGUsIFwiZmlsdGVyXCIsIFwic2hvd0xvYWRTZWFyY2hNb2RhbFwiLCBcInNob3dTYXZlU2VhcmNoTW9kYWxcIilcbiAgICBjb25zdCBjdXJyZW50RmlsdGVycyA9IHRoaXMuY3VycmVudEZpbHRlcnMoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IGRhdGFTZXQ9e3tjbGFzczogXCJhcGktbWFrZXItLXRhYmxlLS1maWx0ZXJzXCJ9fSBzdHlsZT17e2FsaWduSXRlbXM6IFwiZmxleC1zdGFydFwifX0+XG4gICAgICAgIHtmaWx0ZXIgJiZcbiAgICAgICAgICA8RmlsdGVyRm9ybVxuICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICBrZXk9e2BmaWx0ZXItJHtmaWx0ZXIuZmlsdGVySW5kZXh9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBvbkFwcGx5Q2xpY2tlZD17ZGlnZyh0aGlzLCBcIm9uQXBwbHlDbGlja2VkXCIpfVxuICAgICAgICAgICAgcXVlcnlTZWFyY2hOYW1lPXtxdWVyeVNOYW1lfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3Nob3dMb2FkU2VhcmNoTW9kYWwgJiZcbiAgICAgICAgICA8TG9hZFNlYXJjaE1vZGFsXG4gICAgICAgICAgICBjdXJyZW50VXNlcj17Y3VycmVudFVzZXJ9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgb25FZGl0U2VhcmNoUHJlc3NlZD17ZGlnZyh0aGlzLCBcIm9uRWRpdFNlYXJjaFByZXNzZWRcIil9XG4gICAgICAgICAgICBvblJlcXVlc3RDbG9zZT17ZGlnZyh0aGlzLCBcIm9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsXCIpfVxuICAgICAgICAgICAgcXVlcnlTZWFyY2hOYW1lPXtxdWVyeVNOYW1lfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3Nob3dTYXZlU2VhcmNoTW9kYWwgJiZcbiAgICAgICAgICA8U2F2ZVNlYXJjaE1vZGFsXG4gICAgICAgICAgICBjdXJyZW50RmlsdGVycz17ZGlnZyh0aGlzLCBcImN1cnJlbnRGaWx0ZXJzXCIpfVxuICAgICAgICAgICAgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U9e2RpZ2codGhpcywgXCJvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbFwiKX1cbiAgICAgICAgICAgIHNlYXJjaD17c2hvd1NhdmVTZWFyY2hNb2RhbH1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtjdXJyZW50RmlsdGVycz8ubWFwKChmaWx0ZXJEYXRhLCBmaWx0ZXJJbmRleCkgPT5cbiAgICAgICAgICA8RmlsdGVyXG4gICAgICAgICAgICBrZXk9e2ZpbHRlckluZGV4fVxuICAgICAgICAgICAgZmlsdGVySW5kZXg9e2ZpbHRlckluZGV4fVxuICAgICAgICAgICAgb25DbGljaz17dGhpcy50dC5vbkZpbHRlckNsaWNrZWR9XG4gICAgICAgICAgICBvblJlbW92ZUNsaWNrZWQ9e3RoaXMudHQub25SZW1vdmVDbGlja2VkfVxuICAgICAgICAgICAgey4uLmZpbHRlckRhdGF9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPFZpZXcgY2xhc3NOYW1lPVwiZmlsdGVyLWFjdGlvbnNcIiBzdHlsZT17e2ZsZXhEaXJlY3Rpb246IFwicm93XCIsIG1hcmdpblRvcDogMTB9fT5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImFkZC1uZXctZmlsdGVyLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25BZGRGaWx0ZXJDbGlja2VkfT5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIuYWRkX25ld19maWx0ZXJcIiwge2RlZmF1bHRWYWx1ZTogXCJBZGQgbmV3IGZpbHRlclwifSl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAge2N1cnJlbnRVc2VyICYmXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInNhdmUtc2VhcmNoLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25TYXZlU2VhcmNoQ2xpY2tlZH0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMH19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnQoXCIuc2F2ZV9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJTYXZlIHNlYXJjaFwifSl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImxvYWQtc2VhcmNoLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25Mb2FkU2VhcmNoQ2xpY2tlZH0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMH19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnQoXCIubG9hZF9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJMb2FkIHNlYXJjaFwifSl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgY3VycmVudEZpbHRlcnMgPSAoKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5U05hbWV9ID0gZGlncyh0aGlzLnByb3BzLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCBjdXJyZW50RmlsdGVycyA9IHRoaXMucXVlcnlQYXJhbXNbcXVlcnlTTmFtZV0gfHwgW11cblxuICAgIHJldHVybiBjdXJyZW50RmlsdGVycy5tYXAoKGN1cnJlbnRGaWx0ZXIpID0+IEpTT04ucGFyc2UoY3VycmVudEZpbHRlcikpXG4gIH1cblxuICBvbkFkZEZpbHRlckNsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgY29uc3QgbmV3RmlsdGVySW5kZXggPSB0aGlzLmN1cnJlbnRGaWx0ZXJzKCkubGVuZ3RoXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICBmaWx0ZXJJbmRleDogbmV3RmlsdGVySW5kZXhcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgb25BcHBseUNsaWNrZWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXI6IHVuZGVmaW5lZH0pXG5cbiAgb25FZGl0U2VhcmNoUHJlc3NlZCA9ICh7c2VhcmNofSkgPT4ge1xuICAgIHRoaXMub25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwoKVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2hvd1NhdmVTZWFyY2hNb2RhbDogc2VhcmNoXG4gICAgfSlcbiAgfVxuXG4gIG9uRmlsdGVyQ2xpY2tlZCA9IChmaWx0ZXIpID0+IHRoaXMuc2V0U3RhdGUoe2ZpbHRlcn0pXG5cbiAgb25Mb2FkU2VhcmNoQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNob3dMb2FkU2VhcmNoTW9kYWw6IHRydWVcbiAgICB9KVxuICB9XG5cbiAgb25SZW1vdmVDbGlja2VkID0gKHtmaWx0ZXJJbmRleH0pID0+IHtcbiAgICBjb25zdCB7cXVlcnlTTmFtZX0gPSBkaWdzKHRoaXMucHJvcHMsIFwicXVlcnlTTmFtZVwiKVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFBhcmFtcy5wYXJzZSgpW3F1ZXJ5U05hbWVdIHx8IHt9XG5cbiAgICBkZWxldGUgc2VhcmNoUGFyYW1zW2ZpbHRlckluZGV4XVxuXG4gICAgY29uc3QgbmV3UGFyYW1zID0ge31cblxuICAgIG5ld1BhcmFtc1txdWVyeVNOYW1lXSA9IHNlYXJjaFBhcmFtc1xuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhuZXdQYXJhbXMpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGZpbHRlcjogdW5kZWZpbmVkXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c2hvd0xvYWRTZWFyY2hNb2RhbDogZmFsc2V9KVxuICBvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3Nob3dTYXZlU2VhcmNoTW9kYWw6IHVuZGVmaW5lZH0pXG5cbiAgb25TYXZlU2VhcmNoQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBpZiAodGhpcy5oYXNBbnlGaWx0ZXJzKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dTYXZlU2VhcmNoTW9kYWw6IG5ldyBUYWJsZVNlYXJjaCgpfSlcbiAgICB9IGVsc2Uge1xuICAgICAgRmxhc2hNZXNzYWdlLmFsZXJ0KHRoaXMudChcIi5ub19maWx0ZXJzX2hhc19iZWVuX3NldFwiLCB7ZGVmYXVsdFZhbHVlOiBcIk5vIGZpbHRlcnMgaGFzIGJlZW4gc2V0XCJ9KSlcbiAgICB9XG4gIH1cblxuICBoYXNBbnlGaWx0ZXJzID0gKCkgPT4gT2JqZWN0LmtleXModGhpcy5jdXJyZW50RmlsdGVycygpKS5sZW5ndGggPiAwXG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLGFBQWEsTUFBTSxzQkFBc0I7QUFDaEQsU0FBUUMsSUFBSSxFQUFFQyxJQUFJLFFBQU8sV0FBVztBQUNwQyxPQUFPQyxNQUFNLE1BQU0sVUFBVTtBQUM3QixPQUFPQyxVQUFVLE1BQU0sZUFBZTtBQUN0QyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLGVBQWUsTUFBTSxxQkFBcUI7QUFDakQsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BFLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLE9BQU8sTUFBTSwrQkFBK0I7QUFDbkQsT0FBT0MsY0FBYyxNQUFNLDBDQUEwQztBQUNyRSxTQUFRQyxJQUFJLFFBQU8sY0FBYztBQUVqQyxNQUFNO0VBQUNDO0FBQVcsQ0FBQyxHQUFHSixNQUFNO0FBRTVCLGVBQWVG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SSxDQUFDRyxRQUFRLENBQUM7TUFDWjFDLG1CQUFtQixFQUFFO0lBQ3ZCLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRHlCLGVBQWUsR0FBR0EsQ0FBQztJQUFDWjtFQUFXLENBQUMsS0FBSztJQUNuQyxNQUFNO01BQUNyQjtJQUFVLENBQUMsR0FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUNpQyxLQUFLLEVBQUUsWUFBWSxDQUFDO0lBQ25ELE1BQU15QyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ1IsS0FBSyxDQUFDLENBQUMsQ0FBQzdDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRCxPQUFPb0QsWUFBWSxDQUFDL0IsV0FBVyxDQUFDO0lBRWhDLE1BQU1pQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRXBCQSxTQUFTLENBQUN0RCxVQUFVLENBQUMsR0FBR29ELFlBQVk7SUFFcENDLE1BQU0sQ0FBQ0UsWUFBWSxDQUFDRCxTQUFTLENBQUM7SUFFOUIsSUFBSSxDQUFDSixRQUFRLENBQUM7TUFDWjVDLE1BQU0sRUFBRUM7SUFDVixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQ0Qyw2QkFBNkIsR0FBR0EsQ0FBQSxLQUFNLElBQUksQ0FBQ0QsUUFBUSxDQUFDO0lBQUMxQyxtQkFBbUIsRUFBRTtFQUFLLENBQUMsQ0FBQztFQUNqRmdELDZCQUE2QixHQUFHQSxDQUFBLEtBQU0sSUFBSSxDQUFDTixRQUFRLENBQUM7SUFBQ3pDLG1CQUFtQixFQUFFRjtFQUFTLENBQUMsQ0FBQztFQUVyRmlDLG1CQUFtQixHQUFJTSxDQUFDLElBQUs7SUFDM0JBLENBQUMsQ0FBQ0MsY0FBYyxDQUFDLENBQUM7SUFFbEIsSUFBSSxJQUFJLENBQUNVLGFBQWEsQ0FBQyxDQUFDLEVBQUU7TUFDeEIsSUFBSSxDQUFDUCxRQUFRLENBQUM7UUFBQ3pDLG1CQUFtQixFQUFFLElBQUluQixXQUFXLENBQUM7TUFBQyxDQUFDLENBQUM7SUFDekQsQ0FBQyxNQUFNO01BQ0xvRSxZQUFZLENBQUNDLEtBQUssQ0FBQyxJQUFJLENBQUN6RCxDQUFDLENBQUMsMEJBQTBCLEVBQUU7UUFBQ29DLFlBQVksRUFBRTtNQUF5QixDQUFDLENBQUMsQ0FBQztJQUNuRztFQUNGLENBQUM7RUFFRG1CLGFBQWEsR0FBR0EsQ0FBQSxLQUFNRyxNQUFNLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUNoRCxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUNvQyxNQUFNLEdBQUcsQ0FBQztBQUNyRSxDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,174 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import apiMakerConfig from "@kaspernj/api-maker/build/config";
3
+ import BaseComponent from "../../base-component";
4
+ import classNames from "classnames";
5
+ import { digg } from "diggerize";
6
+ import memo from "set-state-compare/src/memo";
7
+ import { useMemo } from "react";
8
+ import { shapeComponent } from "set-state-compare/src/shape-component";
9
+ import models from "../../models";
10
+ import { Pressable, View } from "react-native";
11
+ import Text from "../../utils/text";
12
+ import useI18n from "i18n-on-steroids/src/use-i18n";
13
+ const {
14
+ TableSearch
15
+ } = models;
16
+ const SearchLink = memo(shapeComponent(class SearchLink extends BaseComponent {
17
+ render() {
18
+ const {
19
+ search
20
+ } = this.props;
21
+ return /*#__PURE__*/React.createElement(View, {
22
+ dataSet: {
23
+ class: "search-row",
24
+ searchId: search.id()
25
+ },
26
+ style: {
27
+ flexDirection: "row",
28
+ width: "100%"
29
+ }
30
+ }, /*#__PURE__*/React.createElement(Pressable, {
31
+ dataSet: {
32
+ class: "load-search-link"
33
+ },
34
+ onPress: this.onSearchClicked,
35
+ style: {
36
+ justifyContent: "center"
37
+ }
38
+ }, /*#__PURE__*/React.createElement(Text, null, search.name())), /*#__PURE__*/React.createElement(View, {
39
+ style: {
40
+ flexDirection: "row",
41
+ marginLeft: "auto"
42
+ }
43
+ }, /*#__PURE__*/React.createElement(Pressable, {
44
+ dataSet: {
45
+ class: "edit-search-button"
46
+ },
47
+ onPress: this.onEditPressed,
48
+ style: {
49
+ alignItems: "center",
50
+ justifyContent: "center",
51
+ width: 25,
52
+ height: 25,
53
+ backgroundColor: "#fff",
54
+ border: "1px solid #007bff",
55
+ borderRadius: 5,
56
+ color: "#007bff"
57
+ }
58
+ }, /*#__PURE__*/React.createElement(Text, null, "\u270E")), /*#__PURE__*/React.createElement(Pressable, {
59
+ dataSet: {
60
+ class: "delete-search-button"
61
+ },
62
+ onPress: this.onDeletePressed,
63
+ style: {
64
+ alignItems: "center",
65
+ justifyContent: "center",
66
+ marginLeft: 5,
67
+ width: 25,
68
+ height: 25,
69
+ backgroundColor: "#fff",
70
+ border: "1px solid #dc3545",
71
+ borderRadius: 5,
72
+ color: "#dc3545"
73
+ }
74
+ }, /*#__PURE__*/React.createElement(Text, null, "\u2715"))));
75
+ }
76
+ onDeletePressed = async () => {
77
+ if (!confirm("Are you sure?")) {
78
+ return;
79
+ }
80
+ const {
81
+ search
82
+ } = this.props;
83
+ await search.destroy();
84
+ this.props.onDeleted({
85
+ search
86
+ });
87
+ };
88
+ onEditPressed = () => this.props.onEditPressed({
89
+ search: this.props.search
90
+ });
91
+ onSearchClicked = () => this.props.onClick({
92
+ search: this.props.search
93
+ });
94
+ }));
95
+ export default memo(shapeComponent(class ApiMakerTableFiltersLoadSearchModal extends BaseComponent {
96
+ setup() {
97
+ const {
98
+ t
99
+ } = useI18n({
100
+ namespace: "js.api_maker.table.filters.load_search_modal"
101
+ });
102
+ this.useStates({
103
+ editSearch: undefined,
104
+ searches: undefined
105
+ });
106
+ this.setInstance({
107
+ t
108
+ });
109
+ useMemo(() => {
110
+ this.loadSearches();
111
+ }, []);
112
+ }
113
+ loadSearches = async () => {
114
+ const {
115
+ currentUser
116
+ } = this.props;
117
+ const userType = digg(currentUser.modelClassData(), "name");
118
+ const searches = await TableSearch.ransack({
119
+ user_id_eq: currentUser.id(),
120
+ user_type_eq: userType
121
+ }).toArray();
122
+ this.setState({
123
+ searches
124
+ });
125
+ };
126
+ render() {
127
+ const {
128
+ t
129
+ } = this;
130
+ const {
131
+ className,
132
+ currentUser,
133
+ modelClass,
134
+ onEditSearchPressed,
135
+ onRequestClose,
136
+ querySearchName,
137
+ ...restProps
138
+ } = this.props;
139
+ const Modal = apiMakerConfig.getModal();
140
+ return /*#__PURE__*/React.createElement(Modal, _extends({
141
+ className: classNames("api-maker--table--filters--load-search-modal", className),
142
+ onRequestClose: onRequestClose
143
+ }, restProps), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, null, t(".choose_a_search", {
144
+ defaultValue: "Choose a search"
145
+ }))), this.state.searches?.map(search => /*#__PURE__*/React.createElement(SearchLink, {
146
+ key: search.id(),
147
+ onClick: this.onSearchClicked,
148
+ onDeleted: this.onSearchDeleted,
149
+ onEditPressed: onEditSearchPressed,
150
+ search: search
151
+ })));
152
+ }
153
+ onSearchClicked = ({
154
+ search
155
+ }) => {
156
+ const {
157
+ onRequestClose,
158
+ querySearchName
159
+ } = this.props;
160
+ const queryParams = search.queryParams();
161
+ const newParams = {};
162
+ newParams[querySearchName] = queryParams.map(queryParam => JSON.stringify(queryParam));
163
+ Params.changeParams(newParams);
164
+ onRequestClose();
165
+ };
166
+ onSearchDeleted = ({
167
+ search
168
+ }) => {
169
+ this.setState({
170
+ searches: this.state.searches.filter(existingSearch => existingSearch.id() != search.id())
171
+ });
172
+ };
173
+ }));
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcGlNYWtlckNvbmZpZyIsIkJhc2VDb21wb25lbnQiLCJjbGFzc05hbWVzIiwiZGlnZyIsIm1lbW8iLCJ1c2VNZW1vIiwic2hhcGVDb21wb25lbnQiLCJtb2RlbHMiLCJQcmVzc2FibGUiLCJWaWV3IiwiVGV4dCIsInVzZUkxOG4iLCJUYWJsZVNlYXJjaCIsIlNlYXJjaExpbmsiLCJyZW5kZXIiLCJzZWFyY2giLCJwcm9wcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImRhdGFTZXQiLCJjbGFzcyIsInNlYXJjaElkIiwiaWQiLCJzdHlsZSIsImZsZXhEaXJlY3Rpb24iLCJ3aWR0aCIsIm9uUHJlc3MiLCJvblNlYXJjaENsaWNrZWQiLCJqdXN0aWZ5Q29udGVudCIsIm5hbWUiLCJtYXJnaW5MZWZ0Iiwib25FZGl0UHJlc3NlZCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJjb2xvciIsIm9uRGVsZXRlUHJlc3NlZCIsImNvbmZpcm0iLCJkZXN0cm95Iiwib25EZWxldGVkIiwib25DbGljayIsIkFwaU1ha2VyVGFibGVGaWx0ZXJzTG9hZFNlYXJjaE1vZGFsIiwic2V0dXAiLCJ0IiwibmFtZXNwYWNlIiwidXNlU3RhdGVzIiwiZWRpdFNlYXJjaCIsInVuZGVmaW5lZCIsInNlYXJjaGVzIiwic2V0SW5zdGFuY2UiLCJsb2FkU2VhcmNoZXMiLCJjdXJyZW50VXNlciIsInVzZXJUeXBlIiwibW9kZWxDbGFzc0RhdGEiLCJyYW5zYWNrIiwidXNlcl9pZF9lcSIsInVzZXJfdHlwZV9lcSIsInRvQXJyYXkiLCJzZXRTdGF0ZSIsImNsYXNzTmFtZSIsIm1vZGVsQ2xhc3MiLCJvbkVkaXRTZWFyY2hQcmVzc2VkIiwib25SZXF1ZXN0Q2xvc2UiLCJxdWVyeVNlYXJjaE5hbWUiLCJyZXN0UHJvcHMiLCJNb2RhbCIsImdldE1vZGFsIiwiX2V4dGVuZHMiLCJkZWZhdWx0VmFsdWUiLCJzdGF0ZSIsIm1hcCIsImtleSIsIm9uU2VhcmNoRGVsZXRlZCIsInF1ZXJ5UGFyYW1zIiwibmV3UGFyYW1zIiwicXVlcnlQYXJhbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJQYXJhbXMiLCJjaGFuZ2VQYXJhbXMiLCJmaWx0ZXIiLCJleGlzdGluZ1NlYXJjaCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS9maWx0ZXJzL2xvYWQtc2VhcmNoLW1vZGFsLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXBpTWFrZXJDb25maWcgZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvY29uZmlnXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBtb2RlbHMgZnJvbSBcIi4uLy4uL21vZGVsc1wiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG5cIlxuXG5jb25zdCB7VGFibGVTZWFyY2h9ID0gbW9kZWxzXG5cbmNvbnN0IFNlYXJjaExpbmsgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIFNlYXJjaExpbmsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtzZWFyY2h9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IGRhdGFTZXQ9e3tjbGFzczogXCJzZWFyY2gtcm93XCIsIHNlYXJjaElkOiBzZWFyY2guaWQoKX19IHN0eWxlPXt7ZmxleERpcmVjdGlvbjogXCJyb3dcIiwgd2lkdGg6IFwiMTAwJVwifX0+XG4gICAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17e2NsYXNzOiBcImxvYWQtc2VhcmNoLWxpbmtcIn19IG9uUHJlc3M9e3RoaXMub25TZWFyY2hDbGlja2VkfSBzdHlsZT17e2p1c3RpZnlDb250ZW50OiBcImNlbnRlclwifX0+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7c2VhcmNoLm5hbWUoKX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8VmlldyBzdHlsZT17e2ZsZXhEaXJlY3Rpb246IFwicm93XCIsIG1hcmdpbkxlZnQ6IFwiYXV0b1wifX0+XG4gICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgZGF0YVNldD17e2NsYXNzOiBcImVkaXQtc2VhcmNoLWJ1dHRvblwifX1cbiAgICAgICAgICAgIG9uUHJlc3M9e3RoaXMub25FZGl0UHJlc3NlZH1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmXCIsXG4gICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgIzAwN2JmZlwiLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDUsXG4gICAgICAgICAgICAgIGNvbG9yOiBcIiMwMDdiZmZcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgJiN4MjcwRTtcbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgICA8UHJlc3NhYmxlXG4gICAgICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwiZGVsZXRlLXNlYXJjaC1idXR0b25cIn19XG4gICAgICAgICAgICBvblByZXNzPXt0aGlzLm9uRGVsZXRlUHJlc3NlZH1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA1LFxuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmXCIsXG4gICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgI2RjMzU0NVwiLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDUsXG4gICAgICAgICAgICAgIGNvbG9yOiBcIiNkYzM1NDVcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgJiN4MjcxNTtcbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIG9uRGVsZXRlUHJlc3NlZCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNvbmZpcm0oXCJBcmUgeW91IHN1cmU/XCIpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB7c2VhcmNofSA9IHRoaXMucHJvcHNcblxuICAgIGF3YWl0IHNlYXJjaC5kZXN0cm95KClcbiAgICB0aGlzLnByb3BzLm9uRGVsZXRlZCh7c2VhcmNofSlcbiAgfVxuXG4gIG9uRWRpdFByZXNzZWQgPSAoKSA9PiB0aGlzLnByb3BzLm9uRWRpdFByZXNzZWQoe3NlYXJjaDogdGhpcy5wcm9wcy5zZWFyY2h9KVxuICBvblNlYXJjaENsaWNrZWQgPSAoKSA9PiB0aGlzLnByb3BzLm9uQ2xpY2soe3NlYXJjaDogdGhpcy5wcm9wcy5zZWFyY2h9KVxufSkpXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJUYWJsZUZpbHRlcnNMb2FkU2VhcmNoTW9kYWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge3R9ID0gdXNlSTE4bih7bmFtZXNwYWNlOiBcImpzLmFwaV9tYWtlci50YWJsZS5maWx0ZXJzLmxvYWRfc2VhcmNoX21vZGFsXCJ9KVxuXG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgZWRpdFNlYXJjaDogdW5kZWZpbmVkLFxuICAgICAgc2VhcmNoZXM6IHVuZGVmaW5lZFxuICAgIH0pXG4gICAgdGhpcy5zZXRJbnN0YW5jZSh7dH0pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZFNlYXJjaGVzKClcbiAgICB9LCBbXSlcbiAgfVxuXG4gIGxvYWRTZWFyY2hlcyA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y3VycmVudFVzZXJ9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHVzZXJUeXBlID0gZGlnZyhjdXJyZW50VXNlci5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBzZWFyY2hlcyA9IGF3YWl0IFRhYmxlU2VhcmNoXG4gICAgICAucmFuc2Fjayh7dXNlcl9pZF9lcTogY3VycmVudFVzZXIuaWQoKSwgdXNlcl90eXBlX2VxOiB1c2VyVHlwZX0pXG4gICAgICAudG9BcnJheSgpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtzZWFyY2hlc30pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3R9ID0gdGhpc1xuICAgIGNvbnN0IHtjbGFzc05hbWUsIGN1cnJlbnRVc2VyLCBtb2RlbENsYXNzLCBvbkVkaXRTZWFyY2hQcmVzc2VkLCBvblJlcXVlc3RDbG9zZSwgcXVlcnlTZWFyY2hOYW1lLCAuLi5yZXN0UHJvcHN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IE1vZGFsID0gYXBpTWFrZXJDb25maWcuZ2V0TW9kYWwoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNb2RhbCBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJhcGktbWFrZXItLXRhYmxlLS1maWx0ZXJzLS1sb2FkLXNlYXJjaC1tb2RhbFwiLCBjbGFzc05hbWUpfSBvblJlcXVlc3RDbG9zZT17b25SZXF1ZXN0Q2xvc2V9IHsuLi5yZXN0UHJvcHN9PlxuICAgICAgICA8Vmlldz5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt0KFwiLmNob29zZV9hX3NlYXJjaFwiLCB7ZGVmYXVsdFZhbHVlOiBcIkNob29zZSBhIHNlYXJjaFwifSl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIHt0aGlzLnN0YXRlLnNlYXJjaGVzPy5tYXAoKHNlYXJjaCkgPT5cbiAgICAgICAgICA8U2VhcmNoTGluayBrZXk9e3NlYXJjaC5pZCgpfSBvbkNsaWNrPXt0aGlzLm9uU2VhcmNoQ2xpY2tlZH0gb25EZWxldGVkPXt0aGlzLm9uU2VhcmNoRGVsZXRlZH0gb25FZGl0UHJlc3NlZD17b25FZGl0U2VhcmNoUHJlc3NlZH0gc2VhcmNoPXtzZWFyY2h9IC8+XG4gICAgICAgICl9XG4gICAgICA8L01vZGFsPlxuICAgIClcbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCA9ICh7c2VhcmNofSkgPT4ge1xuICAgIGNvbnN0IHtvblJlcXVlc3RDbG9zZSwgcXVlcnlTZWFyY2hOYW1lfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHNlYXJjaC5xdWVyeVBhcmFtcygpXG4gICAgY29uc3QgbmV3UGFyYW1zID0ge31cblxuICAgIG5ld1BhcmFtc1txdWVyeVNlYXJjaE5hbWVdID0gcXVlcnlQYXJhbXMubWFwKChxdWVyeVBhcmFtKSA9PiBKU09OLnN0cmluZ2lmeShxdWVyeVBhcmFtKSlcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMobmV3UGFyYW1zKVxuXG4gICAgb25SZXF1ZXN0Q2xvc2UoKVxuICB9XG5cbiAgb25TZWFyY2hEZWxldGVkID0gKHtzZWFyY2h9KSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZWFyY2hlczogdGhpcy5zdGF0ZS5zZWFyY2hlcy5maWx0ZXIoKGV4aXN0aW5nU2VhcmNoKSA9PiBleGlzdGluZ1NlYXJjaC5pZCgpICE9IHNlYXJjaC5pZCgpKVxuICAgIH0pXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsY0FBYyxNQUFNLGtDQUFrQztBQUM3RCxPQUFPQyxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsU0FBUUMsT0FBTyxRQUFPLE9BQU87QUFDN0IsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxTQUFRQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQzVDLE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFDbkMsT0FBT0MsT0FBTyxNQUFNLCtCQUErQjtBQUVuRCxNQUFNO0VBQUNDO0FBQVcsQ0FBQyxHQUFHTCxNQUFNO0FBRTVCLE1BQU1NLFVBQVUsR0FBR1QsSUFBSSxDQUFDRSxjQUFjLENBQUMsTUFBTU8sVUFBVSxTQUFTWixhQUFhLENBQUM7RUFDNUVhLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFBQ0M7SUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLO0lBRTNCLG9CQUNFQyxLQUFBLENBQUFDLGFBQUEsQ0FBQ1QsSUFBSTtNQUFDVSxP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
@@ -0,0 +1,36 @@
1
+ import BaseComponent from "../../base-component";
2
+ import PropTypes from "prop-types";
3
+ import PropTypesExact from "prop-types-exact";
4
+ import memo from "set-state-compare/src/memo";
5
+ import { Pressable } from "react-native";
6
+ import { shapeComponent } from "set-state-compare/src/shape-component";
7
+ import Text from "../../utils/text";
8
+ export default memo(shapeComponent(class ReflectionElement extends BaseComponent {
9
+ static propTypes = PropTypesExact({
10
+ modelClassName: PropTypes.string.isRequired,
11
+ onClick: PropTypes.func.isRequired,
12
+ reflection: PropTypes.object.isRequired
13
+ });
14
+ render() {
15
+ const {
16
+ modelClassName,
17
+ reflection
18
+ } = this.p;
19
+ const {
20
+ humanName,
21
+ reflectionName
22
+ } = reflection;
23
+ return /*#__PURE__*/React.createElement(Pressable, {
24
+ dataSet: {
25
+ class: "reflection-element",
26
+ modelClass: modelClassName,
27
+ reflectionName
28
+ },
29
+ onPress: this.tt.onReflectionClicked
30
+ }, /*#__PURE__*/React.createElement(Text, null, humanName));
31
+ }
32
+ onReflectionClicked = () => this.p.onClick({
33
+ reflection: this.p.reflection
34
+ });
35
+ }));
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiUHJvcFR5cGVzRXhhY3QiLCJtZW1vIiwiUHJlc3NhYmxlIiwic2hhcGVDb21wb25lbnQiLCJUZXh0IiwiUmVmbGVjdGlvbkVsZW1lbnQiLCJwcm9wVHlwZXMiLCJtb2RlbENsYXNzTmFtZSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJvbkNsaWNrIiwiZnVuYyIsInJlZmxlY3Rpb24iLCJvYmplY3QiLCJyZW5kZXIiLCJwIiwiaHVtYW5OYW1lIiwicmVmbGVjdGlvbk5hbWUiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY2xhc3MiLCJtb2RlbENsYXNzIiwib25QcmVzcyIsInR0Iiwib25SZWZsZWN0aW9uQ2xpY2tlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS9maWx0ZXJzL3JlZmxlY3Rpb24tZWxlbWVudC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQge1ByZXNzYWJsZX0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vLi4vdXRpbHMvdGV4dFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgUmVmbGVjdGlvbkVsZW1lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IFByb3BUeXBlc0V4YWN0KHtcbiAgICBtb2RlbENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcmVmbGVjdGlvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzTmFtZSwgcmVmbGVjdGlvbn0gPSB0aGlzLnBcbiAgICBjb25zdCB7aHVtYW5OYW1lLCByZWZsZWN0aW9uTmFtZX0gPSByZWZsZWN0aW9uXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZVxuICAgICAgICBkYXRhU2V0PXt7XG4gICAgICAgICAgY2xhc3M6IFwicmVmbGVjdGlvbi1lbGVtZW50XCIsXG4gICAgICAgICAgbW9kZWxDbGFzczogbW9kZWxDbGFzc05hbWUsXG4gICAgICAgICAgcmVmbGVjdGlvbk5hbWVcbiAgICAgICAgfX1cbiAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblJlZmxlY3Rpb25DbGlja2VkfVxuICAgICAgPlxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICB7aHVtYW5OYW1lfVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L1ByZXNzYWJsZT5cbiAgICApXG4gIH1cblxuICBvblJlZmxlY3Rpb25DbGlja2VkID0gKCkgPT4gdGhpcy5wLm9uQ2xpY2soe3JlZmxlY3Rpb246IHRoaXMucC5yZWZsZWN0aW9ufSlcbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxTQUFTLFFBQU8sY0FBYztBQUN0QyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BFLE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFFbkMsZUFBZUgsSUFBSSxDQUFDRSxjQUFjLENBQUMsTUFBTUUsaUJBQWlCLFNBQVNQLGFBQWEsQ0FBQztFQUMvRSxPQUFPUSxTQUFTLEdBQUdOLGNBQWMsQ0FBQztJQUNoQ08sY0FBYyxFQUFFUixTQUFTLENBQUNTLE1BQU0sQ0FBQ0MsVUFBVTtJQUMzQ0MsT0FBTyxFQUFFWCxTQUFTLENBQUNZLElBQUksQ0FBQ0YsVUFBVTtJQUNsQ0csVUFBVSxFQUFFYixTQUFTLENBQUNjLE1BQU0sQ0FBQ0o7RUFDL0IsQ0FBQyxDQUFDO0VBRUZLLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFBQ1AsY0FBYztNQUFFSztJQUFVLENBQUMsR0FBRyxJQUFJLENBQUNHLENBQUM7SUFDM0MsTUFBTTtNQUFDQyxTQUFTO01BQUVDO0lBQWMsQ0FBQyxHQUFHTCxVQUFVO0lBRTlDLG9CQUNFTSxLQUFBLENBQUFDLGFBQUEsQ0FBQ2pCLFNBQVM7TUFDUmtCLE9BQU8sRUFBRTtRQUNQQyxLQUFLLEVBQUUsb0JBQW9CO1FBQzNCQyxVQUFVLEVBQUVmLGNBQWM7UUFDMUJVO01BQ0YsQ0FBRTtNQUNGTSxPQUFPLEVBQUUsSUFBSSxDQUFDQyxFQUFFLENBQUNDO0lBQW9CLGdCQUVyQ1AsS0FBQSxDQUFBQyxhQUFBLENBQUNmLElBQUksUUFDRlksU0FDRyxDQUNHLENBQUM7RUFFaEI7RUFFQVMsbUJBQW1CLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNWLENBQUMsQ0FBQ0wsT0FBTyxDQUFDO0lBQUNFLFVBQVUsRUFBRSxJQUFJLENBQUNHLENBQUMsQ0FBQ0g7RUFBVSxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,86 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import apiMakerConfig from "@kaspernj/api-maker/build/config";
3
+ import BaseComponent from "../../base-component";
4
+ import Checkbox from "../../bootstrap/checkbox";
5
+ import { digg } from "diggerize";
6
+ import { Form } from "../../form";
7
+ import Input from "../../bootstrap/input";
8
+ import modelClassRequire from "../../model-class-require";
9
+ import { shapeComponent } from "set-state-compare/src/shape-component";
10
+ import memo from "set-state-compare/src/memo";
11
+ import useI18n from "i18n-on-steroids/src/use-i18n";
12
+ const TableSearch = modelClassRequire("TableSearch");
13
+ export default memo(shapeComponent(class ApiMakerTableFiltersSaveSearchModal extends BaseComponent {
14
+ setup() {
15
+ const {
16
+ t
17
+ } = useI18n({
18
+ namespace: "js.api_maker.table.filters.save_search_modal"
19
+ });
20
+ this.t = t;
21
+ this.useStates({
22
+ form: null
23
+ });
24
+ }
25
+ render() {
26
+ const {
27
+ currentFilters,
28
+ currentUser,
29
+ onRequestClose,
30
+ search,
31
+ ...restProps
32
+ } = this.props;
33
+ const Modal = apiMakerConfig.getModal();
34
+ return /*#__PURE__*/React.createElement(Modal, _extends({
35
+ onRequestClose: onRequestClose
36
+ }, restProps), /*#__PURE__*/React.createElement(Form, {
37
+ onSubmit: this.tt.onSaveSearchSubmit,
38
+ setForm: this.setStates.form
39
+ }, /*#__PURE__*/React.createElement(Input, {
40
+ defaultValue: search.name(),
41
+ id: "table_search_name",
42
+ label: this.t(".search_name", {
43
+ defaultValue: "Search name"
44
+ }),
45
+ name: "table_search[name]"
46
+ }), /*#__PURE__*/React.createElement(Checkbox, {
47
+ defaultChecked: search.public(),
48
+ id: "table_search_public",
49
+ label: this.t(".public", {
50
+ defaultValue: "Public"
51
+ }),
52
+ name: "table_search[public]"
53
+ }), /*#__PURE__*/React.createElement("button", {
54
+ className: "save-search-submit-button"
55
+ }, this.t(".save_search", {
56
+ defaultValue: "Save search"
57
+ }))));
58
+ }
59
+ onSaveSearchSubmit = async () => {
60
+ const formData = this.s.form.asObject();
61
+ const {
62
+ currentFilters,
63
+ currentUser,
64
+ onRequestClose,
65
+ search
66
+ } = this.p;
67
+ const hasUserTypeColumn = Boolean(TableSearch.attributes().find(attribute => attribute.name() == "user_type"));
68
+ if (search.isNewRecord()) {
69
+ formData.table_search.query_params = JSON.stringify(currentFilters());
70
+ }
71
+ if (hasUserTypeColumn) {
72
+ formData.table_search.user_type = digg(currentUser.modelClassData(), "className");
73
+ }
74
+ formData.table_search.user_id = currentUser.id();
75
+ try {
76
+ await search.saveRaw(formData);
77
+ FlashMessage.success(this.t(".", {
78
+ defaultValue: "The search was saved."
79
+ }));
80
+ onRequestClose();
81
+ } catch (error) {
82
+ FlashMessage.errorResponse(error);
83
+ }
84
+ };
85
+ }));
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcGlNYWtlckNvbmZpZyIsIkJhc2VDb21wb25lbnQiLCJDaGVja2JveCIsImRpZ2ciLCJGb3JtIiwiSW5wdXQiLCJtb2RlbENsYXNzUmVxdWlyZSIsInNoYXBlQ29tcG9uZW50IiwibWVtbyIsInVzZUkxOG4iLCJUYWJsZVNlYXJjaCIsIkFwaU1ha2VyVGFibGVGaWx0ZXJzU2F2ZVNlYXJjaE1vZGFsIiwic2V0dXAiLCJ0IiwibmFtZXNwYWNlIiwidXNlU3RhdGVzIiwiZm9ybSIsInJlbmRlciIsImN1cnJlbnRGaWx0ZXJzIiwiY3VycmVudFVzZXIiLCJvblJlcXVlc3RDbG9zZSIsInNlYXJjaCIsInJlc3RQcm9wcyIsInByb3BzIiwiTW9kYWwiLCJnZXRNb2RhbCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwib25TdWJtaXQiLCJ0dCIsIm9uU2F2ZVNlYXJjaFN1Ym1pdCIsInNldEZvcm0iLCJzZXRTdGF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJuYW1lIiwiaWQiLCJsYWJlbCIsImRlZmF1bHRDaGVja2VkIiwicHVibGljIiwiY2xhc3NOYW1lIiwiZm9ybURhdGEiLCJzIiwiYXNPYmplY3QiLCJwIiwiaGFzVXNlclR5cGVDb2x1bW4iLCJCb29sZWFuIiwiYXR0cmlidXRlcyIsImZpbmQiLCJhdHRyaWJ1dGUiLCJpc05ld1JlY29yZCIsInRhYmxlX3NlYXJjaCIsInF1ZXJ5X3BhcmFtcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1c2VyX3R5cGUiLCJtb2RlbENsYXNzRGF0YSIsInVzZXJfaWQiLCJzYXZlUmF3IiwiRmxhc2hNZXNzYWdlIiwic3VjY2VzcyIsImVycm9yIiwiZXJyb3JSZXNwb25zZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS9maWx0ZXJzL3NhdmUtc2VhcmNoLW1vZGFsLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXBpTWFrZXJDb25maWcgZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvY29uZmlnXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4uLy4uL2Jvb3RzdHJhcC9jaGVja2JveFwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IHtGb3JtfSBmcm9tIFwiLi4vLi4vZm9ybVwiXG5pbXBvcnQgSW5wdXQgZnJvbSBcIi4uLy4uL2Jvb3RzdHJhcC9pbnB1dFwiXG5pbXBvcnQgbW9kZWxDbGFzc1JlcXVpcmUgZnJvbSBcIi4uLy4uL21vZGVsLWNsYXNzLXJlcXVpcmVcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB1c2VJMThuIGZyb20gXCJpMThuLW9uLXN0ZXJvaWRzL3NyYy91c2UtaTE4blwiXG5cbmNvbnN0IFRhYmxlU2VhcmNoID0gbW9kZWxDbGFzc1JlcXVpcmUoXCJUYWJsZVNlYXJjaFwiKVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVGFibGVGaWx0ZXJzU2F2ZVNlYXJjaE1vZGFsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGUuZmlsdGVycy5zYXZlX3NlYXJjaF9tb2RhbFwifSlcblxuICAgIHRoaXMudCA9IHRcbiAgICB0aGlzLnVzZVN0YXRlcyh7Zm9ybTogbnVsbH0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2N1cnJlbnRGaWx0ZXJzLCBjdXJyZW50VXNlciwgb25SZXF1ZXN0Q2xvc2UsIHNlYXJjaCwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBNb2RhbCA9IGFwaU1ha2VyQ29uZmlnLmdldE1vZGFsKClcblxuICAgIHJldHVybiAoXG4gICAgICA8TW9kYWwgb25SZXF1ZXN0Q2xvc2U9e29uUmVxdWVzdENsb3NlfSB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgPEZvcm0gb25TdWJtaXQ9e3RoaXMudHQub25TYXZlU2VhcmNoU3VibWl0fSBzZXRGb3JtPXt0aGlzLnNldFN0YXRlcy5mb3JtfT5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17c2VhcmNoLm5hbWUoKX1cbiAgICAgICAgICAgIGlkPVwidGFibGVfc2VhcmNoX25hbWVcIlxuICAgICAgICAgICAgbGFiZWw9e3RoaXMudChcIi5zZWFyY2hfbmFtZVwiLCB7ZGVmYXVsdFZhbHVlOiBcIlNlYXJjaCBuYW1lXCJ9KX1cbiAgICAgICAgICAgIG5hbWU9XCJ0YWJsZV9zZWFyY2hbbmFtZV1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17c2VhcmNoLnB1YmxpYygpfVxuICAgICAgICAgICAgaWQ9XCJ0YWJsZV9zZWFyY2hfcHVibGljXCJcbiAgICAgICAgICAgIGxhYmVsPXt0aGlzLnQoXCIucHVibGljXCIsIHtkZWZhdWx0VmFsdWU6IFwiUHVibGljXCJ9KX1cbiAgICAgICAgICAgIG5hbWU9XCJ0YWJsZV9zZWFyY2hbcHVibGljXVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInNhdmUtc2VhcmNoLXN1Ym1pdC1idXR0b25cIj5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIuc2F2ZV9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJTYXZlIHNlYXJjaFwifSl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvRm9ybT5cbiAgICAgIDwvTW9kYWw+XG4gICAgKVxuICB9XG5cbiAgb25TYXZlU2VhcmNoU3VibWl0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5zLmZvcm0uYXNPYmplY3QoKVxuICAgIGNvbnN0IHtjdXJyZW50RmlsdGVycywgY3VycmVudFVzZXIsIG9uUmVxdWVzdENsb3NlLCBzZWFyY2h9ID0gdGhpcy5wXG4gICAgY29uc3QgaGFzVXNlclR5cGVDb2x1bW4gPSBCb29sZWFuKFRhYmxlU2VhcmNoLmF0dHJpYnV0ZXMoKS5maW5kKChhdHRyaWJ1dGUpID0+IGF0dHJpYnV0ZS5uYW1lKCkgPT0gXCJ1c2VyX3R5cGVcIikpXG5cbiAgICBpZiAoc2VhcmNoLmlzTmV3UmVjb3JkKCkpIHtcbiAgICAgIGZvcm1EYXRhLnRhYmxlX3NlYXJjaC5xdWVyeV9wYXJhbXMgPSBKU09OLnN0cmluZ2lmeShjdXJyZW50RmlsdGVycygpKVxuICAgIH1cblxuICAgIGlmIChoYXNVc2VyVHlwZUNvbHVtbikge1xuICAgICAgZm9ybURhdGEudGFibGVfc2VhcmNoLnVzZXJfdHlwZSA9IGRpZ2coY3VycmVudFVzZXIubW9kZWxDbGFzc0RhdGEoKSwgXCJjbGFzc05hbWVcIilcbiAgICB9XG5cbiAgICBmb3JtRGF0YS50YWJsZV9zZWFyY2gudXNlcl9pZCA9IGN1cnJlbnRVc2VyLmlkKClcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzZWFyY2guc2F2ZVJhdyhmb3JtRGF0YSlcbiAgICAgIEZsYXNoTWVzc2FnZS5zdWNjZXNzKHRoaXMudChcIi5cIiwge2RlZmF1bHRWYWx1ZTogXCJUaGUgc2VhcmNoIHdhcyBzYXZlZC5cIn0pKVxuICAgICAgb25SZXF1ZXN0Q2xvc2UoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBGbGFzaE1lc3NhZ2UuZXJyb3JSZXNwb25zZShlcnJvcilcbiAgICB9XG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsY0FBYyxNQUFNLGtDQUFrQztBQUM3RCxPQUFPQyxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELE9BQU9DLFFBQVEsTUFBTSwwQkFBMEI7QUFDL0MsU0FB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
@@ -0,0 +1,41 @@
1
+ import BaseComponent from "../../base-component";
2
+ import PropTypes from "prop-types";
3
+ import memo from "set-state-compare/src/memo";
4
+ import { Pressable } from "react-native";
5
+ import { shapeComponent } from "set-state-compare/src/shape-component";
6
+ import Text from "../../utils/text";
7
+ export default memo(shapeComponent(class ScopeElement extends BaseComponent {
8
+ static defaultProps = {
9
+ active: false
10
+ };
11
+ static propTypes = {
12
+ active: PropTypes.bool.isRequired,
13
+ onScopeClicked: PropTypes.func.isRequired,
14
+ scope: PropTypes.string.isRequired
15
+ };
16
+ render() {
17
+ const {
18
+ active,
19
+ scope
20
+ } = this.p;
21
+ const style = {};
22
+ if (active) style.fontWeight = "bold";
23
+ return /*#__PURE__*/React.createElement(Pressable, {
24
+ dataSet: {
25
+ class: "scope-element",
26
+ scopeName: scope
27
+ },
28
+ key: scope,
29
+ onPress: this.tt.onScopeClicked
30
+ }, /*#__PURE__*/React.createElement(Text, {
31
+ style: style
32
+ }, scope));
33
+ }
34
+ onScopeClicked = e => {
35
+ e.preventDefault();
36
+ this.p.onScopeClicked({
37
+ scope: this.p.scope
38
+ });
39
+ };
40
+ }));
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwibWVtbyIsIlByZXNzYWJsZSIsInNoYXBlQ29tcG9uZW50IiwiVGV4dCIsIlNjb3BlRWxlbWVudCIsImRlZmF1bHRQcm9wcyIsImFjdGl2ZSIsInByb3BUeXBlcyIsImJvb2wiLCJpc1JlcXVpcmVkIiwib25TY29wZUNsaWNrZWQiLCJmdW5jIiwic2NvcGUiLCJzdHJpbmciLCJyZW5kZXIiLCJwIiwic3R5bGUiLCJmb250V2VpZ2h0IiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNsYXNzIiwic2NvcGVOYW1lIiwia2V5Iiwib25QcmVzcyIsInR0IiwiZSIsInByZXZlbnREZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhYmxlL2ZpbHRlcnMvc2NvcGUtZWxlbWVudC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB7UHJlc3NhYmxlfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi8uLi91dGlscy90ZXh0XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBTY29wZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBhY3RpdmU6IGZhbHNlXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFjdGl2ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvblNjb3BlQ2xpY2tlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzY29wZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2FjdGl2ZSwgc2NvcGV9ID0gdGhpcy5wXG4gICAgY29uc3Qgc3R5bGUgPSB7fVxuXG4gICAgaWYgKGFjdGl2ZSkgc3R5bGUuZm9udFdlaWdodCA9IFwiYm9sZFwiXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZVxuICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwic2NvcGUtZWxlbWVudFwiLCBzY29wZU5hbWU6IHNjb3BlfX1cbiAgICAgICAga2V5PXtzY29wZX1cbiAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblNjb3BlQ2xpY2tlZH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICB7c2NvcGV9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvUHJlc3NhYmxlPlxuICAgIClcbiAgfVxuXG4gIG9uU2NvcGVDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIHRoaXMucC5vblNjb3BlQ2xpY2tlZCh7c2NvcGU6IHRoaXMucC5zY29wZX0pXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsU0FBUUMsU0FBUyxRQUFPLGNBQWM7QUFDdEMsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxJQUFJLE1BQU0sa0JBQWtCO0FBRW5DLGVBQWVILElBQUksQ0FBQ0UsY0FBYyxDQUFDLE1BQU1FLFlBQVksU0FBU04sYUFBYSxDQUFDO0VBQzFFLE9BQU9PLFlBQVksR0FBRztJQUNwQkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUVELE9BQU9DLFNBQVMsR0FBRztJQUNqQkQsTUFBTSxFQUFFUCxTQUFTLENBQUNTLElBQUksQ0FBQ0MsVUFBVTtJQUNqQ0MsY0FBYyxFQUFFWCxTQUFTLENBQUNZLElBQUksQ0FBQ0YsVUFBVTtJQUN6Q0csS0FBSyxFQUFFYixTQUFTLENBQUNjLE1BQU0sQ0FBQ0o7RUFDMUIsQ0FBQztFQUVESyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNSLE1BQU07TUFBRU07SUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDRyxDQUFDO0lBQzlCLE1BQU1DLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFaEIsSUFBSVYsTUFBTSxFQUFFVSxLQUFLLENBQUNDLFVBQVUsR0FBRyxNQUFNO0lBRXJDLG9CQUNFQyxLQUFBLENBQUFDLGFBQUEsQ0FBQ2xCLFNBQVM7TUFDUm1CLE9BQU8sRUFBRTtRQUFDQyxLQUFLLEVBQUUsZUFBZTtRQUFFQyxTQUFTLEVBQUVWO01BQUssQ0FBRTtNQUNwRFcsR0FBRyxFQUFFWCxLQUFNO01BQ1hZLE9BQU8sRUFBRSxJQUFJLENBQUNDLEVBQUUsQ0FBQ2Y7SUFBZSxnQkFFaENRLEtBQUEsQ0FBQUMsYUFBQSxDQUFDaEIsSUFBSTtNQUFDYSxLQUFLLEVBQUVBO0lBQU0sR0FDaEJKLEtBQ0csQ0FDRyxDQUFDO0VBRWhCO0VBRUFGLGNBQWMsR0FBSWdCLENBQUMsSUFBSztJQUN0QkEsQ0FBQyxDQUFDQyxjQUFjLENBQUMsQ0FBQztJQUVsQixJQUFJLENBQUNaLENBQUMsQ0FBQ0wsY0FBYyxDQUFDO01BQUNFLEtBQUssRUFBRSxJQUFJLENBQUNHLENBQUMsQ0FBQ0g7SUFBSyxDQUFDLENBQUM7RUFDOUMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119