@kaspernj/api-maker 1.0.2054 → 1.0.2056

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/build/api.js +65 -213
  2. package/build/attribute-not-loaded-error.js +3 -26
  3. package/build/base-component.js +4 -27
  4. package/build/base-error.js +21 -46
  5. package/build/base-model/attribute.js +15 -22
  6. package/build/base-model/column.js +5 -9
  7. package/build/base-model/reflection.js +12 -52
  8. package/build/base-model/scope.js +9 -46
  9. package/build/base-model.js +584 -837
  10. package/build/bootstrap/attribute-row.js +88 -173
  11. package/build/bootstrap/attribute-rows.js +22 -51
  12. package/build/bootstrap/card.js +77 -160
  13. package/build/bootstrap/checkbox.js +54 -103
  14. package/build/bootstrap/checkboxes.js +117 -203
  15. package/build/bootstrap/index.js +1 -1
  16. package/build/bootstrap/input.js +81 -132
  17. package/build/bootstrap/invalid-feedback.js +19 -47
  18. package/build/bootstrap/paginate.js +100 -165
  19. package/build/bootstrap/radio-buttons.js +44 -81
  20. package/build/bootstrap/select.js +44 -91
  21. package/build/bootstrap/sort-link.js +69 -152
  22. package/build/cable-connection-pool.js +44 -66
  23. package/build/cable-subscription-pool.js +105 -162
  24. package/build/cable-subscription.js +10 -17
  25. package/build/cache-key-generator.js +28 -37
  26. package/build/can-can.js +81 -202
  27. package/build/channels-consumer.js +6 -11
  28. package/build/collection-loader.js +36 -54
  29. package/build/collection.d.ts.map +1 -1
  30. package/build/collection.js +160 -308
  31. package/build/command-submit-data.d.ts +1 -1
  32. package/build/command-submit-data.d.ts.map +1 -1
  33. package/build/command-submit-data.js +30 -39
  34. package/build/commands-pool.js +140 -216
  35. package/build/compose.js +4 -12
  36. package/build/config.js +21 -68
  37. package/build/custom-error.js +5 -30
  38. package/build/data-set-to-attributes.js +6 -42
  39. package/build/deserializer.js +27 -80
  40. package/build/destroy-error.js +5 -30
  41. package/build/devise.js +84 -188
  42. package/build/draggable-sort/controller.js +88 -111
  43. package/build/draggable-sort/index.js +68 -145
  44. package/build/draggable-sort/item.js +132 -198
  45. package/build/error-logger.js +79 -164
  46. package/build/error-messages.js +5 -8
  47. package/build/event-connection.js +24 -62
  48. package/build/event-emitter-listener.js +7 -24
  49. package/build/event-model-class.js +20 -47
  50. package/build/events.js +4 -9
  51. package/build/form.js +66 -154
  52. package/build/history-expo.js +13 -25
  53. package/build/history-react-native.js +15 -27
  54. package/build/history.js +3 -5
  55. package/build/index.js +3 -6
  56. package/build/inputs/attachment.js +72 -123
  57. package/build/inputs/auto-submit.js +16 -55
  58. package/build/inputs/checkbox.js +78 -167
  59. package/build/inputs/checkboxes.js +76 -159
  60. package/build/inputs/id-for-component.js +5 -41
  61. package/build/inputs/input-wrapper.js +8 -27
  62. package/build/inputs/input.js +159 -245
  63. package/build/inputs/money.js +124 -186
  64. package/build/inputs/name-for-component.js +5 -41
  65. package/build/inputs/select.js +69 -123
  66. package/build/instance-of-class-name.js +16 -21
  67. package/build/is-expo.js +9 -11
  68. package/build/key-value-store.js +52 -128
  69. package/build/link.js +52 -115
  70. package/build/logger.js +20 -26
  71. package/build/merge-styles.js +6 -10
  72. package/build/modal.js +15 -62
  73. package/build/model-class-require.js +9 -44
  74. package/build/model-events.js +25 -34
  75. package/build/model-name.js +16 -57
  76. package/build/model-prop-type.js +52 -63
  77. package/build/model-recipes-loader.js +17 -25
  78. package/build/model-recipes-model-loader.d.ts +1 -1
  79. package/build/model-recipes-model-loader.js +130 -208
  80. package/build/models-response-reader.js +25 -66
  81. package/build/models.js +6 -11
  82. package/build/money-formatter.d.ts +2 -2
  83. package/build/money-formatter.d.ts.map +1 -1
  84. package/build/money-formatter.js +46 -56
  85. package/build/not-loaded-error.js +3 -26
  86. package/build/params.js +32 -42
  87. package/build/preloaded.js +19 -59
  88. package/build/resize-observer.js +6 -12
  89. package/build/rest-props-validator.js +5 -7
  90. package/build/result.js +11 -15
  91. package/build/router/route.js +179 -312
  92. package/build/router/switch.js +56 -130
  93. package/build/router.js +34 -94
  94. package/build/routes-native.js +64 -148
  95. package/build/routes.js +26 -80
  96. package/build/run-last.js +20 -25
  97. package/build/serializer.js +29 -34
  98. package/build/services.js +10 -19
  99. package/build/session-status-updater.js +85 -184
  100. package/build/source-maps-loader.d.ts +37 -0
  101. package/build/source-maps-loader.d.ts.map +1 -0
  102. package/build/source-maps-loader.js +103 -225
  103. package/build/super-admin/config-reader.d.ts +2 -2
  104. package/build/super-admin/config-reader.js +42 -83
  105. package/build/super-admin/edit-page/edit-attribute-checkbox.js +53 -115
  106. package/build/super-admin/edit-page/edit-attribute-content.js +47 -77
  107. package/build/super-admin/edit-page/edit-attribute-input.js +57 -119
  108. package/build/super-admin/edit-page/edit-attribute.js +40 -104
  109. package/build/super-admin/edit-page.js +88 -201
  110. package/build/super-admin/has-edit-config.js +7 -13
  111. package/build/super-admin/index-page.js +17 -44
  112. package/build/super-admin/index.js +87 -210
  113. package/build/super-admin/layout/header/index.js +91 -152
  114. package/build/super-admin/layout/index.js +70 -153
  115. package/build/super-admin/layout/menu/index.js +85 -161
  116. package/build/super-admin/layout/menu/menu-content.js +25 -85
  117. package/build/super-admin/layout/menu/menu-item.js +52 -102
  118. package/build/super-admin/layout/no-access.js +19 -45
  119. package/build/super-admin/model-class-table.js +45 -129
  120. package/build/super-admin/models.js +6 -42
  121. package/build/super-admin/show-nav.js +27 -89
  122. package/build/super-admin/show-page/belongs-to-attribute-row.js +18 -76
  123. package/build/super-admin/show-page/index.js +101 -187
  124. package/build/super-admin/show-reflection-actions.js +39 -100
  125. package/build/super-admin/show-reflection-link.js +27 -99
  126. package/build/super-admin/show-reflection-page.js +34 -97
  127. package/build/table/column-content.js +77 -121
  128. package/build/table/column-identifier.js +7 -11
  129. package/build/table/column-visible.js +2 -5
  130. package/build/table/components/column.js +13 -60
  131. package/build/table/components/flat-list.js +13 -60
  132. package/build/table/components/header.js +15 -62
  133. package/build/table/components/row.js +16 -63
  134. package/build/table/filters/attribute-element.js +34 -62
  135. package/build/table/filters/filter-form.js +280 -483
  136. package/build/table/filters/filter.js +45 -73
  137. package/build/table/filters/index.js +95 -139
  138. package/build/table/filters/load-search-modal.js +64 -212
  139. package/build/table/filters/reflection-element.js +27 -55
  140. package/build/table/filters/save-search-modal.js +44 -140
  141. package/build/table/filters/scope-element.js +28 -56
  142. package/build/table/header-column-content.js +33 -71
  143. package/build/table/header-column.js +89 -218
  144. package/build/table/header-select.js +45 -77
  145. package/build/table/model-callback-args.js +5 -41
  146. package/build/table/model-column.js +59 -144
  147. package/build/table/model-row.js +75 -187
  148. package/build/table/select-calculator.js +27 -86
  149. package/build/table/settings/column-row.js +66 -186
  150. package/build/table/settings/download-action.js +38 -74
  151. package/build/table/settings/index.js +38 -102
  152. package/build/table/table-settings.js +185 -323
  153. package/build/table/table.js +583 -781
  154. package/build/table/use-sorting.js +16 -35
  155. package/build/table/widths.js +32 -38
  156. package/build/table/worker-plugins-check-all-checkbox.js +77 -225
  157. package/build/table/worker-plugins-checkbox.js +74 -185
  158. package/build/translated-attributes.js +6 -11
  159. package/build/translated-collections.js +11 -20
  160. package/build/updated-attribute.js +47 -120
  161. package/build/url-encode.js +6 -12
  162. package/build/use-breakpoint.js +43 -95
  163. package/build/use-can-can.js +30 -92
  164. package/build/use-collection.js +119 -229
  165. package/build/use-created-event.js +27 -44
  166. package/build/use-current-user-context.js +57 -151
  167. package/build/use-current-user.js +14 -32
  168. package/build/use-destroyed-event.js +22 -43
  169. package/build/use-event-emitter.d.ts +1 -2
  170. package/build/use-event-emitter.d.ts.map +1 -1
  171. package/build/use-event-emitter.js +10 -16
  172. package/build/use-event-listener.js +13 -22
  173. package/build/use-input.js +49 -69
  174. package/build/use-model-event.js +22 -43
  175. package/build/use-model.js +96 -199
  176. package/build/use-resize-observer.js +11 -21
  177. package/build/use-router.js +65 -107
  178. package/build/use-screen-layout.js +17 -19
  179. package/build/use-styles.js +24 -75
  180. package/build/use-updated-event.js +22 -44
  181. package/build/use-validation-errors.js +12 -18
  182. package/build/utils/button.js +86 -136
  183. package/build/utils/card.js +31 -106
  184. package/build/utils/checkbox.js +51 -112
  185. package/build/utils/checkboxes.js +109 -182
  186. package/build/utils/default-style.js +29 -103
  187. package/build/utils/header.js +8 -35
  188. package/build/utils/icon.js +36 -117
  189. package/build/utils/invalid-feedback.js +16 -43
  190. package/build/utils/modal.js +25 -108
  191. package/build/utils/text.js +10 -37
  192. package/build/validation-error.js +31 -89
  193. package/build/validation-errors.js +61 -111
  194. package/build/with-api-maker.js +15 -67
  195. package/build/with-collection.js +14 -64
  196. package/build/with-current-user.js +7 -23
  197. package/build/with-model.js +11 -27
  198. package/build/with-router.js +8 -35
  199. package/package.json +4 -3
  200. package/build/api.js.map +0 -1
  201. package/build/attribute-not-loaded-error.js.map +0 -1
  202. package/build/base-component.js.map +0 -1
  203. package/build/base-error.js.map +0 -1
  204. package/build/base-model/attribute.js.map +0 -1
  205. package/build/base-model/column.js.map +0 -1
  206. package/build/base-model/reflection.js.map +0 -1
  207. package/build/base-model/scope.js.map +0 -1
  208. package/build/base-model.js.map +0 -1
  209. package/build/bootstrap/attribute-row.js.map +0 -1
  210. package/build/bootstrap/attribute-rows.js.map +0 -1
  211. package/build/bootstrap/card.js.map +0 -1
  212. package/build/bootstrap/checkbox.js.map +0 -1
  213. package/build/bootstrap/checkboxes.js.map +0 -1
  214. package/build/bootstrap/index.js.map +0 -1
  215. package/build/bootstrap/input.js.map +0 -1
  216. package/build/bootstrap/invalid-feedback.js.map +0 -1
  217. package/build/bootstrap/paginate.js.map +0 -1
  218. package/build/bootstrap/radio-buttons.js.map +0 -1
  219. package/build/bootstrap/select.js.map +0 -1
  220. package/build/bootstrap/sort-link.js.map +0 -1
  221. package/build/cable-connection-pool.js.map +0 -1
  222. package/build/cable-subscription-pool.js.map +0 -1
  223. package/build/cable-subscription.js.map +0 -1
  224. package/build/cache-key-generator.js.map +0 -1
  225. package/build/can-can.js.map +0 -1
  226. package/build/channels-consumer.js.map +0 -1
  227. package/build/collection-loader.js.map +0 -1
  228. package/build/collection.js.map +0 -1
  229. package/build/command-submit-data.js.map +0 -1
  230. package/build/commands-pool.js.map +0 -1
  231. package/build/compose.js.map +0 -1
  232. package/build/config.js.map +0 -1
  233. package/build/custom-error.js.map +0 -1
  234. package/build/data-set-to-attributes.js.map +0 -1
  235. package/build/deserializer.js.map +0 -1
  236. package/build/destroy-error.js.map +0 -1
  237. package/build/devise.js.map +0 -1
  238. package/build/draggable-sort/controller.js.map +0 -1
  239. package/build/draggable-sort/index.js.map +0 -1
  240. package/build/draggable-sort/item.js.map +0 -1
  241. package/build/error-logger.js.map +0 -1
  242. package/build/error-messages.js.map +0 -1
  243. package/build/event-connection.js.map +0 -1
  244. package/build/event-emitter-listener.js.map +0 -1
  245. package/build/event-model-class.js.map +0 -1
  246. package/build/events.js.map +0 -1
  247. package/build/form.js.map +0 -1
  248. package/build/history-expo.js.map +0 -1
  249. package/build/history-react-native.js.map +0 -1
  250. package/build/history.js.map +0 -1
  251. package/build/index.js.map +0 -1
  252. package/build/inputs/attachment.js.map +0 -1
  253. package/build/inputs/auto-submit.js.map +0 -1
  254. package/build/inputs/checkbox.js.map +0 -1
  255. package/build/inputs/checkboxes.js.map +0 -1
  256. package/build/inputs/id-for-component.js.map +0 -1
  257. package/build/inputs/input-wrapper.js.map +0 -1
  258. package/build/inputs/input.js.map +0 -1
  259. package/build/inputs/money.js.map +0 -1
  260. package/build/inputs/name-for-component.js.map +0 -1
  261. package/build/inputs/select.js.map +0 -1
  262. package/build/instance-of-class-name.js.map +0 -1
  263. package/build/is-expo.js.map +0 -1
  264. package/build/key-value-store.js.map +0 -1
  265. package/build/link.js.map +0 -1
  266. package/build/logger.js.map +0 -1
  267. package/build/merge-styles.js.map +0 -1
  268. package/build/modal.js.map +0 -1
  269. package/build/model-class-require.js.map +0 -1
  270. package/build/model-events.js.map +0 -1
  271. package/build/model-name.js.map +0 -1
  272. package/build/model-prop-type.js.map +0 -1
  273. package/build/model-recipes-loader.js.map +0 -1
  274. package/build/model-recipes-model-loader.js.map +0 -1
  275. package/build/models-response-reader.js.map +0 -1
  276. package/build/models.js.map +0 -1
  277. package/build/money-formatter.js.map +0 -1
  278. package/build/not-loaded-error.js.map +0 -1
  279. package/build/params.js.map +0 -1
  280. package/build/preloaded.js.map +0 -1
  281. package/build/resize-observer.js.map +0 -1
  282. package/build/rest-props-validator.js.map +0 -1
  283. package/build/result.js.map +0 -1
  284. package/build/router/route.js.map +0 -1
  285. package/build/router/switch.js.map +0 -1
  286. package/build/router.js.map +0 -1
  287. package/build/routes-native.js.map +0 -1
  288. package/build/routes.js.map +0 -1
  289. package/build/run-last.js.map +0 -1
  290. package/build/serializer.js.map +0 -1
  291. package/build/services.js.map +0 -1
  292. package/build/session-status-updater.js.map +0 -1
  293. package/build/source-maps-loader.js.map +0 -1
  294. package/build/super-admin/config-reader.js.map +0 -1
  295. package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +0 -1
  296. package/build/super-admin/edit-page/edit-attribute-content.js.map +0 -1
  297. package/build/super-admin/edit-page/edit-attribute-input.js.map +0 -1
  298. package/build/super-admin/edit-page/edit-attribute.js.map +0 -1
  299. package/build/super-admin/edit-page.js.map +0 -1
  300. package/build/super-admin/has-edit-config.js.map +0 -1
  301. package/build/super-admin/index-page.js.map +0 -1
  302. package/build/super-admin/index.js.map +0 -1
  303. package/build/super-admin/layout/header/index.js.map +0 -1
  304. package/build/super-admin/layout/index.js.map +0 -1
  305. package/build/super-admin/layout/menu/index.js.map +0 -1
  306. package/build/super-admin/layout/menu/menu-content.js.map +0 -1
  307. package/build/super-admin/layout/menu/menu-item.js.map +0 -1
  308. package/build/super-admin/layout/no-access.js.map +0 -1
  309. package/build/super-admin/model-class-table.js.map +0 -1
  310. package/build/super-admin/models.js.map +0 -1
  311. package/build/super-admin/show-nav.js.map +0 -1
  312. package/build/super-admin/show-page/belongs-to-attribute-row.js.map +0 -1
  313. package/build/super-admin/show-page/index.js.map +0 -1
  314. package/build/super-admin/show-reflection-actions.js.map +0 -1
  315. package/build/super-admin/show-reflection-link.js.map +0 -1
  316. package/build/super-admin/show-reflection-page.js.map +0 -1
  317. package/build/table/column-content.js.map +0 -1
  318. package/build/table/column-identifier.js.map +0 -1
  319. package/build/table/column-visible.js.map +0 -1
  320. package/build/table/components/column.js.map +0 -1
  321. package/build/table/components/flat-list.js.map +0 -1
  322. package/build/table/components/header.js.map +0 -1
  323. package/build/table/components/row.js.map +0 -1
  324. package/build/table/filters/attribute-element.js.map +0 -1
  325. package/build/table/filters/filter-form.js.map +0 -1
  326. package/build/table/filters/filter.js.map +0 -1
  327. package/build/table/filters/index.js.map +0 -1
  328. package/build/table/filters/load-search-modal.js.map +0 -1
  329. package/build/table/filters/reflection-element.js.map +0 -1
  330. package/build/table/filters/save-search-modal.js.map +0 -1
  331. package/build/table/filters/scope-element.js.map +0 -1
  332. package/build/table/header-column-content.js.map +0 -1
  333. package/build/table/header-column.js.map +0 -1
  334. package/build/table/header-select.js.map +0 -1
  335. package/build/table/model-callback-args.js.map +0 -1
  336. package/build/table/model-column.js.map +0 -1
  337. package/build/table/model-row.js.map +0 -1
  338. package/build/table/select-calculator.js.map +0 -1
  339. package/build/table/settings/column-row.js.map +0 -1
  340. package/build/table/settings/download-action.js.map +0 -1
  341. package/build/table/settings/index.js.map +0 -1
  342. package/build/table/table-settings.js.map +0 -1
  343. package/build/table/table.js.map +0 -1
  344. package/build/table/use-sorting.js.map +0 -1
  345. package/build/table/widths.js.map +0 -1
  346. package/build/table/worker-plugins-check-all-checkbox.js.map +0 -1
  347. package/build/table/worker-plugins-checkbox.js.map +0 -1
  348. package/build/translated-attributes.js.map +0 -1
  349. package/build/translated-collections.js.map +0 -1
  350. package/build/updated-attribute.js.map +0 -1
  351. package/build/url-encode.js.map +0 -1
  352. package/build/use-breakpoint.js.map +0 -1
  353. package/build/use-can-can.js.map +0 -1
  354. package/build/use-collection.js.map +0 -1
  355. package/build/use-created-event.js.map +0 -1
  356. package/build/use-current-user-context.js.map +0 -1
  357. package/build/use-current-user.js.map +0 -1
  358. package/build/use-destroyed-event.js.map +0 -1
  359. package/build/use-event-emitter.js.map +0 -1
  360. package/build/use-event-listener.js.map +0 -1
  361. package/build/use-input.js.map +0 -1
  362. package/build/use-model-event.js.map +0 -1
  363. package/build/use-model.js.map +0 -1
  364. package/build/use-resize-observer.js.map +0 -1
  365. package/build/use-router.js.map +0 -1
  366. package/build/use-screen-layout.js.map +0 -1
  367. package/build/use-styles.js.map +0 -1
  368. package/build/use-updated-event.js.map +0 -1
  369. package/build/use-validation-errors.js.map +0 -1
  370. package/build/utils/button.js.map +0 -1
  371. package/build/utils/card.js.map +0 -1
  372. package/build/utils/checkbox.js.map +0 -1
  373. package/build/utils/checkboxes.js.map +0 -1
  374. package/build/utils/default-style.js.map +0 -1
  375. package/build/utils/header.js.map +0 -1
  376. package/build/utils/icon.js.map +0 -1
  377. package/build/utils/invalid-feedback.js.map +0 -1
  378. package/build/utils/modal.js.map +0 -1
  379. package/build/utils/text.js.map +0 -1
  380. package/build/validation-error.js.map +0 -1
  381. package/build/validation-errors.js.map +0 -1
  382. package/build/with-api-maker.js.map +0 -1
  383. package/build/with-collection.js.map +0 -1
  384. package/build/with-current-user.js.map +0 -1
  385. package/build/with-model.js.map +0 -1
  386. package/build/with-router.js.map +0 -1
@@ -1,52 +1,24 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- var jsx_runtime_1 = require("react/jsx-runtime");
22
- var diggerize_1 = require("diggerize");
23
- var prop_types_1 = __importDefault(require("prop-types"));
24
- var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
25
- var react_1 = __importDefault(require("react"));
26
- var ApiMakerBootstrapInvalidFeedback = /** @class */ (function (_super) {
27
- __extends(ApiMakerBootstrapInvalidFeedback, _super);
28
- function ApiMakerBootstrapInvalidFeedback() {
29
- return _super !== null && _super.apply(this, arguments) || this;
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { digs } from "diggerize";
3
+ import PropTypes from "prop-types";
4
+ import propTypesExact from "prop-types-exact";
5
+ import React from "react";
6
+ export default class ApiMakerBootstrapInvalidFeedback extends React.PureComponent {
7
+ static propTypes = propTypesExact({
8
+ errors: PropTypes.array.isRequired
9
+ });
10
+ render() {
11
+ return (_jsx("div", { className: "invalid-feedback", children: this.errorMessages().join(". ") }));
30
12
  }
31
- ApiMakerBootstrapInvalidFeedback.prototype.render = function () {
32
- return ((0, jsx_runtime_1.jsx)("div", { className: "invalid-feedback", children: this.errorMessages().join(". ") }));
33
- };
34
- ApiMakerBootstrapInvalidFeedback.prototype.errorMessages = function () {
35
- var errors = (0, diggerize_1.digs)(this.props, "errors").errors;
36
- var errorMessages = [];
37
- for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
38
- var error = errors_1[_i];
39
- for (var _a = 0, _b = error.getErrorMessages(); _a < _b.length; _a++) {
40
- var errorMessage = _b[_a];
13
+ errorMessages() {
14
+ const { errors } = digs(this.props, "errors");
15
+ const errorMessages = [];
16
+ for (const error of errors) {
17
+ for (const errorMessage of error.getErrorMessages()) {
41
18
  errorMessages.push(errorMessage);
42
19
  }
43
20
  }
44
21
  return errorMessages;
45
- };
46
- ApiMakerBootstrapInvalidFeedback.propTypes = (0, prop_types_exact_1.default)({
47
- errors: prop_types_1.default.array.isRequired
48
- });
49
- return ApiMakerBootstrapInvalidFeedback;
50
- }(react_1.default.PureComponent));
51
- exports.default = ApiMakerBootstrapInvalidFeedback;
52
- //# sourceMappingURL=invalid-feedback.js.map
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZC1mZWVkYmFjay5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiYm9vdHN0cmFwL2ludmFsaWQtZmVlZGJhY2suanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFFekIsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQ0FBaUMsU0FBUSxLQUFLLENBQUMsYUFBYTtJQUMvRSxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVO0tBQ25DLENBQUMsQ0FBQTtJQUVGLE1BQU07UUFDSixPQUFPLENBQ0wsY0FBSyxTQUFTLEVBQUMsa0JBQWtCLFlBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQzVCLENBQ1AsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQzNDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQTtRQUV4QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTSxZQUFZLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztnQkFDcEQsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RpZ3N9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQm9vdHN0cmFwSW52YWxpZEZlZWRiYWNrIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgZXJyb3JzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlciAoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW52YWxpZC1mZWVkYmFja1wiPlxuICAgICAgICB7dGhpcy5lcnJvck1lc3NhZ2VzKCkuam9pbihcIi4gXCIpfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgZXJyb3JNZXNzYWdlcyAoKSB7XG4gICAgY29uc3Qge2Vycm9yc30gPSBkaWdzKHRoaXMucHJvcHMsIFwiZXJyb3JzXCIpXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykge1xuICAgICAgZm9yIChjb25zdCBlcnJvck1lc3NhZ2Ugb2YgZXJyb3IuZ2V0RXJyb3JNZXNzYWdlcygpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZXMucHVzaChlcnJvck1lc3NhZ2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9yTWVzc2FnZXNcbiAgfVxufVxuIl19
@@ -1,167 +1,102 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import BaseComponent from "../base-component.js";
3
+ import instanceOfClassName from "../instance-of-class-name.js";
4
+ import Link from "../link";
5
+ import PropTypes from "prop-types";
6
+ import propTypesExact from "prop-types-exact";
7
+ import memo from "set-state-compare/build/memo.js";
8
+ import qs from "qs";
9
+ import React, { useMemo } from "react";
10
+ import Text from "../utils/text";
11
+ import Result from "../result.js";
12
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
13
+ import urlEncode from "../url-encode.js";
14
+ export default memo(shapeComponent(class ApiMakerBootstrapPaginate extends BaseComponent {
15
+ static propTypes = propTypesExact({
16
+ result: PropTypes.oneOfType([
17
+ instanceOfClassName("ApiMakerResult"),
18
+ PropTypes.instanceOf(Result)
19
+ ]).isRequired
20
+ });
21
+ setup() {
22
+ const { result } = this.p;
23
+ this.totalPages = useMemo(() => Math.ceil(result.count() / result.perPage()), [result.count(), result.perPage()]);
24
+ this.pages = useMemo(() => this.calculatePages(), [result.currentPage(), this.totalPages]);
22
25
  }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || (function () {
34
- var ownKeys = function(o) {
35
- ownKeys = Object.getOwnPropertyNames || function (o) {
36
- var ar = [];
37
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
- return ar;
39
- };
40
- return ownKeys(o);
41
- };
42
- return function (mod) {
43
- if (mod && mod.__esModule) return mod;
44
- var result = {};
45
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
- __setModuleDefault(result, mod);
47
- return result;
48
- };
49
- })();
50
- var __importDefault = (this && this.__importDefault) || function (mod) {
51
- return (mod && mod.__esModule) ? mod : { "default": mod };
52
- };
53
- var _a;
54
- Object.defineProperty(exports, "__esModule", { value: true });
55
- var jsx_runtime_1 = require("react/jsx-runtime");
56
- var base_component_js_1 = __importDefault(require("../base-component.js"));
57
- var instance_of_class_name_js_1 = __importDefault(require("../instance-of-class-name.js"));
58
- var link_1 = __importDefault(require("../link"));
59
- var prop_types_1 = __importDefault(require("prop-types"));
60
- var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
61
- var memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
62
- var qs_1 = __importDefault(require("qs"));
63
- var react_1 = __importStar(require("react"));
64
- var text_1 = __importDefault(require("../utils/text"));
65
- var result_js_1 = __importDefault(require("../result.js"));
66
- var shape_component_js_1 = require("set-state-compare/build/shape-component.js");
67
- var url_encode_js_1 = __importDefault(require("../url-encode.js"));
68
- exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)((_a = /** @class */ (function (_super) {
69
- __extends(ApiMakerBootstrapPaginate, _super);
70
- function ApiMakerBootstrapPaginate() {
71
- var _this = _super !== null && _super.apply(this, arguments) || this;
72
- _this.isPageActiveClass = function (pageNumber) { return _this.p.result.currentPage() == pageNumber ? "active" : "not-active"; };
73
- _this.showBackwardsDots = function () { return (_this.p.result.currentPage() - 5 > 1); };
74
- _this.showForwardsDots = function () { return (_this.p.result.currentPage() + 5 < _this.tt.totalPages); };
75
- return _this;
26
+ calculatePages() {
27
+ const { result } = this.p;
28
+ const { totalPages } = this.tt;
29
+ const currentPage = result.currentPage();
30
+ const pages = [];
31
+ let pagesFrom = currentPage - 5;
32
+ let pagesTo = currentPage + 5;
33
+ if (pagesFrom < 1) {
34
+ pagesFrom = 1;
76
35
  }
77
- ApiMakerBootstrapPaginate.prototype.setup = function () {
78
- var _this = this;
79
- var result = this.p.result;
80
- this.totalPages = (0, react_1.useMemo)(function () { return Math.ceil(result.count() / result.perPage()); }, [result.count(), result.perPage()]);
81
- this.pages = (0, react_1.useMemo)(function () { return _this.calculatePages(); }, [result.currentPage(), this.totalPages]);
82
- };
83
- ApiMakerBootstrapPaginate.prototype.calculatePages = function () {
84
- var result = this.p.result;
85
- var totalPages = this.tt.totalPages;
86
- var currentPage = result.currentPage();
87
- var pages = [];
88
- var pagesFrom = currentPage - 5;
89
- var pagesTo = currentPage + 5;
90
- if (pagesFrom < 1) {
91
- pagesFrom = 1;
92
- }
93
- if (pagesTo > totalPages) {
94
- pagesTo = totalPages;
95
- }
96
- for (var i = pagesFrom; i <= pagesTo; i++) {
97
- pages.push(i);
98
- }
99
- return pages;
100
- };
101
- ApiMakerBootstrapPaginate.prototype.pagePath = function (pageNumber) {
102
- var pageKey = this.p.result.data.collection.queryArgs.pageKey;
103
- if (!pageKey) {
104
- pageKey = "page";
105
- }
106
- var currentParams = qs_1.default.parse(globalThis.location.search.substr(1));
107
- currentParams[pageKey] = pageNumber;
108
- var newParams = qs_1.default.stringify(currentParams, { encoder: url_encode_js_1.default });
109
- var newPath = "".concat(location.pathname, "?").concat(newParams);
110
- return newPath;
111
- };
112
- ApiMakerBootstrapPaginate.prototype.previousPagePath = function () {
113
- var result = this.p.result;
114
- var previousPage;
115
- if (result.currentPage() > 1) {
116
- previousPage = result.currentPage() - 1;
117
- }
118
- else {
119
- previousPage = result.currentPage();
120
- }
121
- return this.pagePath(previousPage);
122
- };
123
- ApiMakerBootstrapPaginate.prototype.nextPagePath = function () {
124
- var result = this.p.result;
125
- var nextPage;
126
- if (result.currentPage() < this.tt.totalPages) {
127
- nextPage = result.currentPage() + 1;
128
- }
129
- else {
130
- nextPage = result.currentPage();
131
- }
132
- return this.pagePath(nextPage);
133
- };
134
- ApiMakerBootstrapPaginate.prototype.render = function () {
135
- var _this = this;
136
- var result = this.p.result;
137
- var _b = this.tt, pages = _b.pages, totalPages = _b.totalPages;
138
- var showNextPage = result.currentPage() < totalPages;
139
- var showLastPage = result.currentPage() < totalPages;
140
- var showPreviousPage = result.currentPage() > 1;
141
- var showFirstPage = result.currentPage() > 1;
142
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("ul", { className: "pagination", "data-pages-length": pages.length, children: [(0, jsx_runtime_1.jsxs)("li", { className: "page-item ".concat(!showPreviousPage ? "disabled" : ""), children: [!showPreviousPage &&
143
- (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u21E4" }), showPreviousPage &&
144
- (0, jsx_runtime_1.jsx)(link_1.default, { dataSet: { class: "page-link" }, to: this.pagePath(1), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u21E4" }) })] }, "page-first"), (0, jsx_runtime_1.jsxs)("li", { className: "page-item ".concat(!showFirstPage ? "disabled" : ""), children: [!showFirstPage &&
145
- (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u2190" }), showFirstPage &&
146
- (0, jsx_runtime_1.jsx)(link_1.default, { dataSet: { class: "page-link" }, to: this.previousPagePath(), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u2190" }) })] }, "page-previous"), this.showBackwardsDots() &&
147
- (0, jsx_runtime_1.jsx)("li", { className: "page-item disabled", children: "\u2026" }), pages.map(function (page) {
148
- return (0, jsx_runtime_1.jsxs)("li", { className: "page-item ".concat(_this.isPageActiveClass(page)), "data-active": _this.isPageActiveClass(page) == "active", "data-page": page, children: [_this.isPageActiveClass(page) == "active" &&
149
- page, _this.isPageActiveClass(page) == "not-active" &&
150
- (0, jsx_runtime_1.jsx)(link_1.default, { dataSet: { class: "page-link" }, to: _this.pagePath(page), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: page }) })] }, "page-".concat(page));
151
- }), this.showForwardsDots() &&
152
- (0, jsx_runtime_1.jsx)("li", { className: "page-item disabled", children: "\u2026" }), (0, jsx_runtime_1.jsxs)("li", { className: "page-item ".concat(!showNextPage ? "disabled" : ""), children: [!showNextPage &&
153
- (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u2192" }), showNextPage &&
154
- (0, jsx_runtime_1.jsx)(link_1.default, { dataSet: { class: "page-link" }, to: this.nextPagePath(), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u2192" }) })] }, "page-next"), (0, jsx_runtime_1.jsxs)("li", { className: "page-item ".concat(!showLastPage ? "disabled" : ""), children: [!showLastPage &&
155
- (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u21E5" }), showLastPage &&
156
- (0, jsx_runtime_1.jsx)(link_1.default, { dataSet: { class: "page-link" }, to: this.pagePath(totalPages), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u21E5" }) })] }, "page-last")] }) }));
157
- };
158
- return ApiMakerBootstrapPaginate;
159
- }(base_component_js_1.default)),
160
- _a.propTypes = (0, prop_types_exact_1.default)({
161
- result: prop_types_1.default.oneOfType([
162
- (0, instance_of_class_name_js_1.default)("ApiMakerResult"),
163
- prop_types_1.default.instanceOf(result_js_1.default)
164
- ]).isRequired
165
- }),
166
- _a)));
167
- //# sourceMappingURL=paginate.js.map
36
+ if (pagesTo > totalPages) {
37
+ pagesTo = totalPages;
38
+ }
39
+ for (let i = pagesFrom; i <= pagesTo; i++) {
40
+ pages.push(i);
41
+ }
42
+ return pages;
43
+ }
44
+ isPageActiveClass = (pageNumber) => this.p.result.currentPage() == pageNumber ? "active" : "not-active";
45
+ pagePath(pageNumber) {
46
+ let pageKey = this.p.result.data.collection.queryArgs.pageKey;
47
+ if (!pageKey) {
48
+ pageKey = "page";
49
+ }
50
+ const currentParams = qs.parse(globalThis.location.search.substr(1));
51
+ currentParams[pageKey] = pageNumber;
52
+ const newParams = qs.stringify(currentParams, { encoder: urlEncode });
53
+ const newPath = `${location.pathname}?${newParams}`;
54
+ return newPath;
55
+ }
56
+ previousPagePath() {
57
+ const { result } = this.p;
58
+ let previousPage;
59
+ if (result.currentPage() > 1) {
60
+ previousPage = result.currentPage() - 1;
61
+ }
62
+ else {
63
+ previousPage = result.currentPage();
64
+ }
65
+ return this.pagePath(previousPage);
66
+ }
67
+ nextPagePath() {
68
+ const { result } = this.p;
69
+ let nextPage;
70
+ if (result.currentPage() < this.tt.totalPages) {
71
+ nextPage = result.currentPage() + 1;
72
+ }
73
+ else {
74
+ nextPage = result.currentPage();
75
+ }
76
+ return this.pagePath(nextPage);
77
+ }
78
+ showBackwardsDots = () => (this.p.result.currentPage() - 5 > 1);
79
+ showForwardsDots = () => (this.p.result.currentPage() + 5 < this.tt.totalPages);
80
+ render() {
81
+ const { result } = this.p;
82
+ const { pages, totalPages } = this.tt;
83
+ const showNextPage = result.currentPage() < totalPages;
84
+ const showLastPage = result.currentPage() < totalPages;
85
+ const showPreviousPage = result.currentPage() > 1;
86
+ const showFirstPage = result.currentPage() > 1;
87
+ return (_jsx(_Fragment, { children: _jsxs("ul", { className: "pagination", "data-pages-length": pages.length, children: [_jsxs("li", { className: `page-item ${!showPreviousPage ? "disabled" : ""}`, children: [!showPreviousPage &&
88
+ _jsx(Text, { children: "\u21E4" }), showPreviousPage &&
89
+ _jsx(Link, { dataSet: { class: "page-link" }, to: this.pagePath(1), children: _jsx(Text, { children: "\u21E4" }) })] }, "page-first"), _jsxs("li", { className: `page-item ${!showFirstPage ? "disabled" : ""}`, children: [!showFirstPage &&
90
+ _jsx(Text, { children: "\u2190" }), showFirstPage &&
91
+ _jsx(Link, { dataSet: { class: "page-link" }, to: this.previousPagePath(), children: _jsx(Text, { children: "\u2190" }) })] }, "page-previous"), this.showBackwardsDots() &&
92
+ _jsx("li", { className: "page-item disabled", children: "\u2026" }), pages.map((page) => _jsxs("li", { className: `page-item ${this.isPageActiveClass(page)}`, "data-active": this.isPageActiveClass(page) == "active", "data-page": page, children: [this.isPageActiveClass(page) == "active" &&
93
+ page, this.isPageActiveClass(page) == "not-active" &&
94
+ _jsx(Link, { dataSet: { class: "page-link" }, to: this.pagePath(page), children: _jsx(Text, { children: page }) })] }, `page-${page}`)), this.showForwardsDots() &&
95
+ _jsx("li", { className: "page-item disabled", children: "\u2026" }), _jsxs("li", { className: `page-item ${!showNextPage ? "disabled" : ""}`, children: [!showNextPage &&
96
+ _jsx(Text, { children: "\u2192" }), showNextPage &&
97
+ _jsx(Link, { dataSet: { class: "page-link" }, to: this.nextPagePath(), children: _jsx(Text, { children: "\u2192" }) })] }, "page-next"), _jsxs("li", { className: `page-item ${!showLastPage ? "disabled" : ""}`, children: [!showLastPage &&
98
+ _jsx(Text, { children: "\u21E5" }), showLastPage &&
99
+ _jsx(Link, { dataSet: { class: "page-link" }, to: this.pagePath(totalPages), children: _jsx(Text, { children: "\u21E5" }) })] }, "page-last")] }) }));
100
+ }
101
+ }));
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGUuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImJvb3RzdHJhcC9wYWdpbmF0ZS5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sYUFBYSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hELE9BQU8sbUJBQW1CLE1BQU0sOEJBQThCLENBQUE7QUFDOUQsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFBO0FBQzFCLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDcEMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFFeEMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0seUJBQTBCLFNBQVEsYUFBYTtJQUN0RixNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUMxQixtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNyQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUM3QixDQUFDLENBQUMsVUFBVTtLQUNkLENBQUMsQ0FBQTtJQUVGLEtBQUs7UUFDSCxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV2QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FDdkIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMs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b20gXCIuLi9iYXNlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgaW5zdGFuY2VPZkNsYXNzTmFtZSBmcm9tIFwiLi4vaW5zdGFuY2Utb2YtY2xhc3MtbmFtZS5qc1wiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgcXMgZnJvbSBcInFzXCJcbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgUmVzdWx0IGZyb20gXCIuLi9yZXN1bHQuanNcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgdXJsRW5jb2RlIGZyb20gXCIuLi91cmwtZW5jb2RlLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlckJvb3RzdHJhcFBhZ2luYXRlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgcmVzdWx0OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIGluc3RhbmNlT2ZDbGFzc05hbWUoXCJBcGlNYWtlclJlc3VsdFwiKSxcbiAgICAgIFByb3BUeXBlcy5pbnN0YW5jZU9mKFJlc3VsdClcbiAgICBdKS5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSB0aGlzLnBcblxuICAgIHRoaXMudG90YWxQYWdlcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBNYXRoLmNlaWwocmVzdWx0LmNvdW50KCkgLyByZXN1bHQucGVyUGFnZSgpKSxcbiAgICAgIFtyZXN1bHQuY291bnQoKSwgcmVzdWx0LnBlclBhZ2UoKV1cbiAgICApXG4gICAgdGhpcy5wYWdlcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aGlzLmNhbGN1bGF0ZVBhZ2VzKCksXG4gICAgICBbcmVzdWx0LmN1cnJlbnRQYWdlKCksIHRoaXMudG90YWxQYWdlc11cbiAgICApXG4gIH1cblxuICBjYWxjdWxhdGVQYWdlcyAoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSB0aGlzLnBcbiAgICBjb25zdCB7dG90YWxQYWdlc30gPSB0aGlzLnR0XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKVxuICAgIGNvbnN0IHBhZ2VzID0gW11cblxuICAgIGxldCBwYWdlc0Zyb20gPSBjdXJyZW50UGFnZSAtIDVcbiAgICBsZXQgcGFnZXNUbyA9IGN1cnJlbnRQYWdlICsgNVxuXG4gICAgaWYgKHBhZ2VzRnJvbSA8IDEpIHtcbiAgICAgIHBhZ2VzRnJvbSA9IDFcbiAgICB9XG5cbiAgICBpZiAocGFnZXNUbyA+IHRvdGFsUGFnZXMpIHtcbiAgICAgIHBhZ2VzVG8gPSB0b3RhbFBhZ2VzXG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IHBhZ2VzRnJvbTsgaSA8PSBwYWdlc1RvOyBpKyspIHtcbiAgICAgIHBhZ2VzLnB1c2goaSlcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZXNcbiAgfVxuXG4gIGlzUGFnZUFjdGl2ZUNsYXNzID0gKHBhZ2VOdW1iZXIpID0+IHRoaXMucC5yZXN1bHQuY3VycmVudFBhZ2UoKSA9PSBwYWdlTnVtYmVyID8gXCJhY3RpdmVcIiA6IFwibm90LWFjdGl2ZVwiXG5cbiAgcGFnZVBhdGggKHBhZ2VOdW1iZXIpIHtcbiAgICBsZXQgcGFnZUtleSA9IHRoaXMucC5yZXN1bHQuZGF0YS5jb2xsZWN0aW9uLnF1ZXJ5QXJncy5wYWdlS2V5XG5cbiAgICBpZiAoIXBhZ2VLZXkpIHtcbiAgICAgIHBhZ2VLZXkgPSBcInBhZ2VcIlxuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSBxcy5wYXJzZShnbG9iYWxUaGlzLmxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSkpXG4gICAgY3VycmVudFBhcmFtc1twYWdlS2V5XSA9IHBhZ2VOdW1iZXJcbiAgICBjb25zdCBuZXdQYXJhbXMgPSBxcy5zdHJpbmdpZnkoY3VycmVudFBhcmFtcywge2VuY29kZXI6IHVybEVuY29kZX0pXG4gICAgY29uc3QgbmV3UGF0aCA9IGAke2xvY2F0aW9uLnBhdGhuYW1lfT8ke25ld1BhcmFtc31gXG5cbiAgICByZXR1cm4gbmV3UGF0aFxuICB9XG5cbiAgcHJldmlvdXNQYWdlUGF0aCAoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSB0aGlzLnBcbiAgICBsZXQgcHJldmlvdXNQYWdlXG5cbiAgICBpZiAocmVzdWx0LmN1cnJlbnRQYWdlKCkgPiAxKSB7XG4gICAgICBwcmV2aW91c1BhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKSAtIDFcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldmlvdXNQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlUGF0aChwcmV2aW91c1BhZ2UpXG4gIH1cblxuICBuZXh0UGFnZVBhdGggKCkge1xuICAgIGNvbnN0IHtyZXN1bHR9ID0gdGhpcy5wXG4gICAgbGV0IG5leHRQYWdlXG5cbiAgICBpZiAocmVzdWx0LmN1cnJlbnRQYWdlKCkgPCB0aGlzLnR0LnRvdGFsUGFnZXMpIHtcbiAgICAgIG5leHRQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKCkgKyAxXG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlUGF0aChuZXh0UGFnZSlcbiAgfVxuXG4gIHNob3dCYWNrd2FyZHNEb3RzID0gKCkgPT4gKHRoaXMucC5yZXN1bHQuY3VycmVudFBhZ2UoKSAtIDUgPiAxKVxuICBzaG93Rm9yd2FyZHNEb3RzID0gKCkgPT4gKHRoaXMucC5yZXN1bHQuY3VycmVudFBhZ2UoKSArIDUgPCB0aGlzLnR0LnRvdGFsUGFnZXMpXG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7cmVzdWx0fSA9IHRoaXMucFxuICAgIGNvbnN0IHtwYWdlcywgdG90YWxQYWdlc30gPSB0aGlzLnR0XG4gICAgY29uc3Qgc2hvd05leHRQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKCkgPCB0b3RhbFBhZ2VzXG4gICAgY29uc3Qgc2hvd0xhc3RQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKCkgPCB0b3RhbFBhZ2VzXG4gICAgY29uc3Qgc2hvd1ByZXZpb3VzUGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpID4gMVxuICAgIGNvbnN0IHNob3dGaXJzdFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKSA+IDFcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8dWwgY2xhc3NOYW1lPVwicGFnaW5hdGlvblwiIGRhdGEtcGFnZXMtbGVuZ3RoPXtwYWdlcy5sZW5ndGh9PlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9e2BwYWdlLWl0ZW0gJHshc2hvd1ByZXZpb3VzUGFnZSA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9YH0ga2V5PVwicGFnZS1maXJzdFwiPlxuICAgICAgICAgICAgeyFzaG93UHJldmlvdXNQYWdlICYmXG4gICAgICAgICAgICAgIDxUZXh0PuKHpDwvVGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtzaG93UHJldmlvdXNQYWdlICYmXG4gICAgICAgICAgICAgIDxMaW5rIGRhdGFTZXQ9e3tjbGFzczogXCJwYWdlLWxpbmtcIn19IHRvPXt0aGlzLnBhZ2VQYXRoKDEpfT5cbiAgICAgICAgICAgICAgICA8VGV4dD7ih6Q8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9e2BwYWdlLWl0ZW0gJHshc2hvd0ZpcnN0UGFnZSA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9YH0ga2V5PVwicGFnZS1wcmV2aW91c1wiPlxuICAgICAgICAgICAgeyFzaG93Rmlyc3RQYWdlICYmXG4gICAgICAgICAgICAgIDxUZXh0PuKGkDwvVGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtzaG93Rmlyc3RQYWdlICYmXG4gICAgICAgICAgICAgIDxMaW5rIGRhdGFTZXQ9e3tjbGFzczogXCJwYWdlLWxpbmtcIn19IHRvPXt0aGlzLnByZXZpb3VzUGFnZVBhdGgoKX0+XG4gICAgICAgICAgICAgICAgPFRleHQ+4oaQPC9UZXh0PlxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICB7dGhpcy5zaG93QmFja3dhcmRzRG90cygpICYmXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwicGFnZS1pdGVtIGRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICZoZWxsaXA7XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7cGFnZXMubWFwKChwYWdlKSA9PlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAke3RoaXMuaXNQYWdlQWN0aXZlQ2xhc3MocGFnZSl9YH1cbiAgICAgICAgICAgICAgZGF0YS1hY3RpdmU9e3RoaXMuaXNQYWdlQWN0aXZlQ2xhc3MocGFnZSkgPT0gXCJhY3RpdmVcIn1cbiAgICAgICAgICAgICAgZGF0YS1wYWdlPXtwYWdlfVxuICAgICAgICAgICAgICBrZXk9e2BwYWdlLSR7cGFnZX1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dGhpcy5pc1BhZ2VBY3RpdmVDbGFzcyhwYWdlKSA9PSBcImFjdGl2ZVwiICYmXG4gICAgICAgICAgICAgICAgcGFnZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHt0aGlzLmlzUGFnZUFjdGl2ZUNsYXNzKHBhZ2UpID09IFwibm90LWFjdGl2ZVwiICYmXG4gICAgICAgICAgICAgICAgPExpbmsgZGF0YVNldD17e2NsYXNzOiBcInBhZ2UtbGlua1wifX0gdG89e3RoaXMucGFnZVBhdGgocGFnZSl9PlxuICAgICAgICAgICAgICAgICAgPFRleHQ+e3BhZ2V9PC9UZXh0PlxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApfVxuICAgICAgICAgIHt0aGlzLnNob3dGb3J3YXJkc0RvdHMoKSAmJlxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cInBhZ2UtaXRlbSBkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAmaGVsbGlwO1xuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGxpIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAkeyFzaG93TmV4dFBhZ2UgPyBcImRpc2FibGVkXCIgOiBcIlwifWB9IGtleT1cInBhZ2UtbmV4dFwiPlxuICAgICAgICAgICAgeyFzaG93TmV4dFBhZ2UgJiZcbiAgICAgICAgICAgICAgPFRleHQ+4oaSPC9UZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3Nob3dOZXh0UGFnZSAmJlxuICAgICAgICAgICAgICA8TGluayBkYXRhU2V0PXt7Y2xhc3M6IFwicGFnZS1saW5rXCJ9fSB0bz17dGhpcy5uZXh0UGFnZVBhdGgoKX0+XG4gICAgICAgICAgICAgICAgPFRleHQ+4oaSPC9UZXh0PlxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgY2xhc3NOYW1lPXtgcGFnZS1pdGVtICR7IXNob3dMYXN0UGFnZSA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9YH0ga2V5PVwicGFnZS1sYXN0XCI+XG4gICAgICAgICAgICB7IXNob3dMYXN0UGFnZSAmJlxuICAgICAgICAgICAgICA8VGV4dD7ih6U8L1RleHQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7c2hvd0xhc3RQYWdlICYmXG4gICAgICAgICAgICAgIDxMaW5rIGRhdGFTZXQ9e3tjbGFzczogXCJwYWdlLWxpbmtcIn19IHRvPXt0aGlzLnBhZ2VQYXRoKHRvdGFsUGFnZXMpfT5cbiAgICAgICAgICAgICAgICA8VGV4dD7ih6U8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG59KSlcbiJdfQ==
@@ -1,89 +1,52 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- var jsx_runtime_1 = require("react/jsx-runtime");
33
- var diggerize_1 = require("diggerize");
34
- var input_wrapper_1 = __importDefault(require("../inputs/input-wrapper"));
35
- var invalid_feedback_js_1 = __importDefault(require("./invalid-feedback.js"));
36
- var prop_types_1 = __importDefault(require("prop-types"));
37
- var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
38
- var react_1 = __importDefault(require("react"));
39
- var ApiMakerBootstrapRadioButtons = /** @class */ (function (_super) {
40
- __extends(ApiMakerBootstrapRadioButtons, _super);
41
- function ApiMakerBootstrapRadioButtons() {
42
- return _super !== null && _super.apply(this, arguments) || this;
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { digs } from "diggerize";
3
+ import inputWrapper from "../inputs/input-wrapper";
4
+ import InvalidFeedback from "./invalid-feedback.js";
5
+ import PropTypes from "prop-types";
6
+ import propTypesExact from "prop-types-exact";
7
+ import React from "react";
8
+ class ApiMakerBootstrapRadioButtons extends React.PureComponent {
9
+ static propTypes = propTypesExact({
10
+ attribute: PropTypes.string,
11
+ collection: PropTypes.array.isRequired,
12
+ defaultValue: PropTypes.oneOfType([
13
+ PropTypes.number,
14
+ PropTypes.string
15
+ ]),
16
+ id: PropTypes.string,
17
+ inputProps: PropTypes.object.isRequired,
18
+ name: PropTypes.string,
19
+ model: PropTypes.object,
20
+ onChange: PropTypes.func,
21
+ onMatchValidationError: PropTypes.func,
22
+ wrapperClassName: PropTypes.string,
23
+ wrapperOpts: PropTypes.object.isRequired
24
+ });
25
+ render() {
26
+ return (_jsxs("div", { className: this.wrapperClassName(), children: [_jsx("input", { ...this.props.inputProps, type: "hidden", value: "" }), this.props.collection.map((option, index) => this.optionElement(option, index))] }));
43
27
  }
44
- ApiMakerBootstrapRadioButtons.prototype.render = function () {
45
- var _this = this;
46
- return ((0, jsx_runtime_1.jsxs)("div", { className: this.wrapperClassName(), children: [(0, jsx_runtime_1.jsx)("input", __assign({}, this.props.inputProps, { type: "hidden", value: "" })), this.props.collection.map(function (option, index) { return _this.optionElement(option, index); })] }));
47
- };
48
- ApiMakerBootstrapRadioButtons.prototype.inputRadioClassName = function () {
49
- var classNames = ["form-check-input"];
28
+ inputRadioClassName() {
29
+ const classNames = ["form-check-input"];
50
30
  if (this.props.wrapperOpts.errors.length > 0)
51
31
  classNames.push("is-invalid");
52
32
  return classNames.join(" ");
53
- };
54
- ApiMakerBootstrapRadioButtons.prototype.generatedId = function () {
33
+ }
34
+ generatedId() {
55
35
  return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
56
- };
57
- ApiMakerBootstrapRadioButtons.prototype.optionElement = function (option, index) {
58
- var collection = (0, diggerize_1.digs)(this.props, "collection").collection;
59
- var onChange = this.props.onChange;
60
- var id = this.generatedId();
61
- return ((0, jsx_runtime_1.jsxs)("div", { className: "form-check", children: [(0, jsx_runtime_1.jsx)("input", { className: this.inputRadioClassName(), "data-option-value": option[1], defaultChecked: option[1] == this.props.inputProps.defaultValue, id: id, name: this.props.inputProps.name, onChange: onChange, type: "radio", value: option[1] }), (0, jsx_runtime_1.jsx)("label", { className: "form-check-label", htmlFor: id, children: option[0] }), (index + 1) == collection.length && this.props.wrapperOpts.errors.length > 0 &&
62
- (0, jsx_runtime_1.jsx)(invalid_feedback_js_1.default, { errors: this.props.wrapperOpts.errors })] }, "option-".concat(option[1])));
63
- };
64
- ApiMakerBootstrapRadioButtons.prototype.wrapperClassName = function () {
65
- var classNames = ["component-bootstrap-radio-buttons"];
36
+ }
37
+ optionElement(option, index) {
38
+ const { collection } = digs(this.props, "collection");
39
+ const { onChange } = this.props;
40
+ const id = this.generatedId();
41
+ return (_jsxs("div", { className: "form-check", children: [_jsx("input", { className: this.inputRadioClassName(), "data-option-value": option[1], defaultChecked: option[1] == this.props.inputProps.defaultValue, id: id, name: this.props.inputProps.name, onChange: onChange, type: "radio", value: option[1] }), _jsx("label", { className: "form-check-label", htmlFor: id, children: option[0] }), (index + 1) == collection.length && this.props.wrapperOpts.errors.length > 0 &&
42
+ _jsx(InvalidFeedback, { errors: this.props.wrapperOpts.errors })] }, `option-${option[1]}`));
43
+ }
44
+ wrapperClassName() {
45
+ const classNames = ["component-bootstrap-radio-buttons"];
66
46
  if (this.props.wrapperClassName)
67
47
  classNames.push(this.props.wrapperClassName);
68
48
  return classNames.join(" ");
69
- };
70
- ApiMakerBootstrapRadioButtons.propTypes = (0, prop_types_exact_1.default)({
71
- attribute: prop_types_1.default.string,
72
- collection: prop_types_1.default.array.isRequired,
73
- defaultValue: prop_types_1.default.oneOfType([
74
- prop_types_1.default.number,
75
- prop_types_1.default.string
76
- ]),
77
- id: prop_types_1.default.string,
78
- inputProps: prop_types_1.default.object.isRequired,
79
- name: prop_types_1.default.string,
80
- model: prop_types_1.default.object,
81
- onChange: prop_types_1.default.func,
82
- onMatchValidationError: prop_types_1.default.func,
83
- wrapperClassName: prop_types_1.default.string,
84
- wrapperOpts: prop_types_1.default.object.isRequired
85
- });
86
- return ApiMakerBootstrapRadioButtons;
87
- }(react_1.default.PureComponent));
88
- exports.default = (0, input_wrapper_1.default)(ApiMakerBootstrapRadioButtons);
89
- //# sourceMappingURL=radio-buttons.js.map
49
+ }
50
+ }
51
+ export default inputWrapper(ApiMakerBootstrapRadioButtons);
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9ucy5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiYm9vdHN0cmFwL3JhZGlvLWJ1dHRvbnMuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sZUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQ25ELE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFFekIsTUFBTSw2QkFBOEIsU0FBUSxLQUFLLENBQUMsYUFBYTtJQUM3RCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDM0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVTtRQUN0QyxZQUFZLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUNoQyxTQUFTLENBQUMsTUFBTTtZQUNoQixTQUFTLENBQUMsTUFBTTtTQUNqQixDQUFDO1FBQ0YsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3BCLFVBQVUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDdkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3RCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN2QixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDeEIsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDdEMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDbEMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtLQUN6QyxDQUFDLENBQUE7SUFFRixNQUFNO1FBQ0osT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFFLElBQUksQ0FBQyxn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aW1wb3J0IHtkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4uL2lucHV0cy9pbnB1dC13cmFwcGVyXCJcbmltcG9ydCBJbnZhbGlkRmVlZGJhY2sgZnJvbSBcIi4vaW52YWxpZC1mZWVkYmFjay5qc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuY2xhc3MgQXBpTWFrZXJCb290c3RyYXBSYWRpb0J1dHRvbnMgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29sbGVjdGlvbjogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgZGVmYXVsdFZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5udW1iZXIsXG4gICAgICBQcm9wVHlwZXMuc3RyaW5nXG4gICAgXSksXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaW5wdXRQcm9wczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uTWF0Y2hWYWxpZGF0aW9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAgIHdyYXBwZXJDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgd3JhcHBlck9wdHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHJlbmRlciAoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLndyYXBwZXJDbGFzc05hbWUoKX0+XG4gICAgICAgIDxpbnB1dCB7Li4udGhpcy5wcm9wcy5pbnB1dFByb3BzfSB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJcIiAvPlxuICAgICAgICB7dGhpcy5wcm9wcy5jb2xsZWN0aW9uLm1hcCgob3B0aW9uLCBpbmRleCkgPT4gdGhpcy5vcHRpb25FbGVtZW50KG9wdGlvbiwgaW5kZXgpKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlucHV0UmFkaW9DbGFzc05hbWUgKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJmb3JtLWNoZWNrLWlucHV0XCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy53cmFwcGVyT3B0cy5lcnJvcnMubGVuZ3RoID4gMClcbiAgICAgIGNsYXNzTmFtZXMucHVzaChcImlzLWludmFsaWRcIilcblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cblxuICBnZW5lcmF0ZWRJZCAoKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCAxNSkgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTUpXG4gIH1cblxuICBvcHRpb25FbGVtZW50IChvcHRpb24sIGluZGV4KSB7XG4gICAgY29uc3Qge2NvbGxlY3Rpb259ID0gZGlncyh0aGlzLnByb3BzLCBcImNvbGxlY3Rpb25cIilcbiAgICBjb25zdCB7b25DaGFuZ2V9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZW5lcmF0ZWRJZCgpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWNoZWNrXCIga2V5PXtgb3B0aW9uLSR7b3B0aW9uWzFdfWB9PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9e3RoaXMuaW5wdXRSYWRpb0NsYXNzTmFtZSgpfVxuICAgICAgICAgIGRhdGEtb3B0aW9uLXZhbHVlPXtvcHRpb25bMV19XG4gICAgICAgICAgZGVmYXVsdENoZWNrZWQ9e29wdGlvblsxXSA9PSB0aGlzLnByb3BzLmlucHV0UHJvcHMuZGVmYXVsdFZhbHVlfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBuYW1lPXt0aGlzLnByb3BzLmlucHV0UHJvcHMubmFtZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICB2YWx1ZT17b3B0aW9uWzFdfVxuICAgICAgICAvPlxuXG4gICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWNoZWNrLWxhYmVsXCIgaHRtbEZvcj17aWR9PlxuICAgICAgICAgIHtvcHRpb25bMF19XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgeyhpbmRleCArIDEpID09IGNvbGxlY3Rpb24ubGVuZ3RoICYmIHRoaXMucHJvcHMud3JhcHBlck9wdHMuZXJyb3JzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICA8SW52YWxpZEZlZWRiYWNrIGVycm9ycz17dGhpcy5wcm9wcy53cmFwcGVyT3B0cy5lcnJvcnN9IC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHdyYXBwZXJDbGFzc05hbWUgKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJjb21wb25lbnQtYm9vdHN0cmFwLXJhZGlvLWJ1dHRvbnNcIl1cblxuICAgIGlmICh0aGlzLnByb3BzLndyYXBwZXJDbGFzc05hbWUpXG4gICAgICBjbGFzc05hbWVzLnB1c2godGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lKVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXMuam9pbihcIiBcIilcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbnB1dFdyYXBwZXIoQXBpTWFrZXJCb290c3RyYXBSYWRpb0J1dHRvbnMpXG4iXX0=