@kaspernj/api-maker 1.0.446 → 1.0.447

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +4 -0
  2. package/README.md +35 -0
  3. package/android/build.gradle +43 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
  6. package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
  7. package/build/api.js +120 -0
  8. package/build/attribute-not-loaded-error.js +2 -0
  9. package/build/base-component.js +5 -0
  10. package/build/base-error.js +33 -0
  11. package/build/base-model/attribute.js +25 -0
  12. package/build/base-model/column.js +11 -0
  13. package/build/base-model/reflection.js +14 -0
  14. package/build/base-model/scope.js +11 -0
  15. package/build/base-model.js +828 -0
  16. package/build/bootstrap/attribute-row/index.js +105 -0
  17. package/build/bootstrap/attribute-rows.js +31 -0
  18. package/build/bootstrap/card.js +138 -0
  19. package/build/bootstrap/checkbox.js +97 -0
  20. package/build/bootstrap/checkboxes.js +183 -0
  21. package/build/bootstrap/index.js +2 -0
  22. package/build/bootstrap/input.js +128 -0
  23. package/build/bootstrap/invalid-feedback.js +27 -0
  24. package/build/bootstrap/paginate.js +150 -0
  25. package/build/bootstrap/radio-buttons.js +72 -0
  26. package/build/bootstrap/select.js +88 -0
  27. package/build/bootstrap/sort-link.js +130 -0
  28. package/build/cable-connection-pool.js +128 -0
  29. package/build/cable-subscription-pool.js +207 -0
  30. package/build/cable-subscription.js +21 -0
  31. package/build/cache-key-generator.js +81 -0
  32. package/build/can-can.js +134 -0
  33. package/build/channels-consumer.js +3 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +279 -0
  36. package/build/command-submit-data.js +81 -0
  37. package/build/commands-pool.js +195 -0
  38. package/build/compose.js +9 -0
  39. package/build/config.js +53 -0
  40. package/build/custom-error.js +5 -0
  41. package/build/data-set-to-attributes.js +10 -0
  42. package/build/deserializer.js +56 -0
  43. package/build/destroy-error.js +5 -0
  44. package/build/devise.js +109 -0
  45. package/build/draggable-sort/controller.js +136 -0
  46. package/build/draggable-sort/index.js +114 -0
  47. package/build/draggable-sort/item.js +188 -0
  48. package/build/error-logger.js +101 -0
  49. package/build/error-messages.js +13 -0
  50. package/build/event-connection.js +32 -0
  51. package/build/event-model-class.js +24 -0
  52. package/build/events.js +5 -0
  53. package/build/form.js +83 -0
  54. package/build/index.js +3 -0
  55. package/build/inputs/attachment.js +121 -0
  56. package/build/inputs/auto-submit.js +36 -0
  57. package/build/inputs/checkbox.js +145 -0
  58. package/build/inputs/checkboxes.js +111 -0
  59. package/build/inputs/id-for-component.js +15 -0
  60. package/build/inputs/input-wrapper.js +18 -0
  61. package/build/inputs/input.js +230 -0
  62. package/build/inputs/money.js +179 -0
  63. package/build/inputs/name-for-component.js +13 -0
  64. package/build/inputs/select.js +92 -0
  65. package/build/instance-of-class-name.js +23 -0
  66. package/build/key-value-store.js +53 -0
  67. package/build/link.js +68 -0
  68. package/build/logger.js +30 -0
  69. package/build/modal.js +37 -0
  70. package/build/model-class-require.js +13 -0
  71. package/build/model-events.js +30 -0
  72. package/build/model-name.js +28 -0
  73. package/build/model-prop-type.js +101 -0
  74. package/build/model-recipes-loader.js +32 -0
  75. package/build/model-recipes-model-loader.js +357 -0
  76. package/build/models-response-reader.js +40 -0
  77. package/build/models.js +8 -0
  78. package/build/money-formatter.js +77 -0
  79. package/build/not-loaded-error.js +2 -0
  80. package/build/params.js +60 -0
  81. package/build/preloaded.js +38 -0
  82. package/build/resize-observer.js +11 -0
  83. package/build/result.js +13 -0
  84. package/build/router/route.js +262 -0
  85. package/build/router/switch.js +72 -0
  86. package/build/router.js +57 -0
  87. package/build/routes-native.js +202 -0
  88. package/build/routes.js +50 -0
  89. package/build/run-last.js +35 -0
  90. package/build/serializer.js +63 -0
  91. package/build/services.js +20 -0
  92. package/build/session-status-updater.js +126 -0
  93. package/build/source-maps-loader.js +171 -0
  94. package/build/super-admin/config-reader.js +84 -0
  95. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  96. package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
  97. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  98. package/build/super-admin/edit-page/edit-attribute.js +76 -0
  99. package/build/super-admin/edit-page.js +120 -0
  100. package/build/super-admin/has-edit-config.js +12 -0
  101. package/build/super-admin/index-page.js +24 -0
  102. package/build/super-admin/index.js +180 -0
  103. package/build/super-admin/layout/header/index.js +151 -0
  104. package/build/super-admin/layout/index.js +109 -0
  105. package/build/super-admin/layout/menu/index.js +93 -0
  106. package/build/super-admin/layout/menu/menu-content.js +40 -0
  107. package/build/super-admin/layout/menu/menu-item.js +83 -0
  108. package/build/super-admin/layout/no-access.js +25 -0
  109. package/build/super-admin/model-class-table.js +61 -0
  110. package/build/super-admin/models.js +8 -0
  111. package/build/super-admin/show-nav.js +49 -0
  112. package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
  113. package/build/super-admin/show-page/index.js +141 -0
  114. package/build/super-admin/show-reflection-actions.js +47 -0
  115. package/build/super-admin/show-reflection-link.js +46 -0
  116. package/build/super-admin/show-reflection-page.js +47 -0
  117. package/build/table/column-content.js +112 -0
  118. package/build/table/column-identifier.js +18 -0
  119. package/build/table/column-visible.js +7 -0
  120. package/build/table/components/column.js +20 -0
  121. package/build/table/components/flat-list.js +20 -0
  122. package/build/table/components/header.js +25 -0
  123. package/build/table/components/row.js +25 -0
  124. package/build/table/filters/attribute-element.js +43 -0
  125. package/build/table/filters/filter-form.js +392 -0
  126. package/build/table/filters/filter.js +89 -0
  127. package/build/table/filters/index.js +182 -0
  128. package/build/table/filters/load-search-modal.js +174 -0
  129. package/build/table/filters/reflection-element.js +36 -0
  130. package/build/table/filters/save-search-modal.js +86 -0
  131. package/build/table/filters/scope-element.js +41 -0
  132. package/build/table/header-column-content.js +67 -0
  133. package/build/table/header-column.js +144 -0
  134. package/build/table/header-select.js +104 -0
  135. package/build/table/model-callback-args.js +10 -0
  136. package/build/table/model-column.js +87 -0
  137. package/build/table/model-row.js +179 -0
  138. package/build/table/select-calculator.js +63 -0
  139. package/build/table/settings/column-row.js +97 -0
  140. package/build/table/settings/download-action.js +78 -0
  141. package/build/table/settings/index.js +92 -0
  142. package/build/table/table-settings.js +219 -0
  143. package/build/table/table.js +972 -0
  144. package/build/table/use-sorting.js +34 -0
  145. package/build/table/widths.js +75 -0
  146. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  147. package/build/table/worker-plugins-checkbox.js +115 -0
  148. package/build/translated-attributes.js +10 -0
  149. package/build/translated-collections.js +11 -0
  150. package/build/updated-attribute.js +76 -0
  151. package/build/url-encode.js +15 -0
  152. package/build/use-breakpoint.js +44 -0
  153. package/build/use-can-can.js +55 -0
  154. package/build/use-collection.js +225 -0
  155. package/build/use-created-event.js +52 -0
  156. package/build/use-current-user.js +73 -0
  157. package/build/use-destroyed-event.js +60 -0
  158. package/build/use-event-emitter.js +13 -0
  159. package/build/use-event-listener.js +16 -0
  160. package/build/use-input.js +140 -0
  161. package/build/use-model-event.js +60 -0
  162. package/build/use-model.js +169 -0
  163. package/build/use-resize-observer.js +23 -0
  164. package/build/use-router.js +102 -0
  165. package/build/use-screen-layout.js +39 -0
  166. package/build/use-updated-event.js +60 -0
  167. package/build/use-validation-errors.js +30 -0
  168. package/build/utils/card.js +51 -0
  169. package/build/utils/checkbox.js +48 -0
  170. package/build/utils/default-style.js +18 -0
  171. package/build/utils/modal.js +61 -0
  172. package/build/utils/text.js +18 -0
  173. package/build/validation-error.js +28 -0
  174. package/build/validation-errors.js +98 -0
  175. package/build/with-collection.js +13 -0
  176. package/build/with-current-user.js +9 -0
  177. package/build/with-model.js +14 -0
  178. package/build/with-router.js +21 -0
  179. package/expo-module.config.json +17 -0
  180. package/ios/ApiMaker.podspec +29 -0
  181. package/ios/ApiMakerModule.swift +48 -0
  182. package/ios/ApiMakerView.swift +38 -0
  183. package/package.json +35 -15
  184. package/src/{api.mjs → api.js} +5 -5
  185. package/src/{base-error.mjs → base-error.js} +1 -1
  186. package/src/base-model/{attribute.mjs → attribute.js} +1 -1
  187. package/src/base-model/{reflection.mjs → reflection.js} +1 -1
  188. package/src/{base-model.mjs → base-model.js} +14 -14
  189. package/src/bootstrap/attribute-row/index.jsx +2 -2
  190. package/src/bootstrap/attribute-rows.jsx +1 -1
  191. package/src/bootstrap/card.jsx +1 -1
  192. package/src/bootstrap/checkbox.jsx +1 -1
  193. package/src/bootstrap/checkboxes.jsx +1 -1
  194. package/src/bootstrap/input.jsx +1 -1
  195. package/src/bootstrap/paginate.jsx +2 -2
  196. package/src/bootstrap/sort-link.jsx +3 -3
  197. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
  198. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
  199. package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
  200. package/src/{can-can.mjs → can-can.js} +1 -1
  201. package/src/collection-loader.jsx +2 -2
  202. package/src/{collection.mjs → collection.js} +3 -3
  203. package/src/{commands-pool.mjs → commands-pool.js} +11 -11
  204. package/src/{custom-error.mjs → custom-error.js} +1 -1
  205. package/src/{deserializer.mjs → deserializer.js} +2 -2
  206. package/src/{destroy-error.mjs → destroy-error.js} +1 -1
  207. package/src/{devise.mjs → devise.js} +5 -9
  208. package/src/draggable-sort/index.jsx +3 -3
  209. package/src/draggable-sort/item.jsx +2 -2
  210. package/src/{error-logger.mjs → error-logger.js} +1 -1
  211. package/src/event-connection.jsx +1 -1
  212. package/src/event-model-class.jsx +1 -1
  213. package/src/form.jsx +1 -1
  214. package/src/index.js +3 -0
  215. package/src/inputs/attachment.jsx +2 -2
  216. package/src/inputs/checkbox.jsx +7 -6
  217. package/src/inputs/checkboxes.jsx +1 -1
  218. package/src/inputs/input-wrapper.jsx +1 -1
  219. package/src/inputs/input.jsx +8 -7
  220. package/src/inputs/money.jsx +3 -3
  221. package/src/inputs/select.jsx +1 -1
  222. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  223. package/src/link.jsx +2 -2
  224. package/src/modal.jsx +1 -1
  225. package/src/{model-class-require.mjs → model-class-require.js} +4 -2
  226. package/src/{model-events.mjs → model-events.js} +1 -1
  227. package/src/{model-name.mjs → model-name.js} +1 -1
  228. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  229. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
  230. package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
  231. package/src/models.js +7 -0
  232. package/src/{models.mjs.erb → models.js.erb} +1 -1
  233. package/src/{params.mjs → params.js} +2 -2
  234. package/src/{preloaded.mjs → preloaded.js} +1 -1
  235. package/src/resize-observer.jsx +1 -1
  236. package/src/router/route.jsx +1 -1
  237. package/src/router/switch.jsx +1 -1
  238. package/src/router.jsx +1 -1
  239. package/src/{routes-native.mjs → routes-native.js} +1 -1
  240. package/src/{services.mjs → services.js} +1 -1
  241. package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
  242. package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
  243. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
  244. package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
  245. package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
  246. package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
  247. package/src/super-admin/edit-page.jsx +2 -2
  248. package/src/super-admin/has-edit-config.js +1 -1
  249. package/src/super-admin/index-page.jsx +1 -1
  250. package/src/super-admin/index.jsx +7 -7
  251. package/src/super-admin/layout/header/index.jsx +2 -2
  252. package/src/super-admin/layout/index.jsx +3 -3
  253. package/src/super-admin/layout/menu/index.jsx +3 -3
  254. package/src/super-admin/layout/menu/menu-content.jsx +2 -2
  255. package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
  256. package/src/super-admin/layout/no-access.jsx +2 -2
  257. package/src/super-admin/model-class-table.jsx +3 -3
  258. package/src/super-admin/models.js +1 -1
  259. package/src/super-admin/show-nav.jsx +2 -2
  260. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
  261. package/src/super-admin/show-page/index.jsx +2 -2
  262. package/src/super-admin/show-reflection-actions.jsx +1 -1
  263. package/src/super-admin/show-reflection-link.jsx +1 -1
  264. package/src/super-admin/show-reflection-page.jsx +1 -1
  265. package/src/table/column-content.jsx +1 -1
  266. package/src/table/filters/filter-form.jsx +1 -1
  267. package/src/table/filters/index.jsx +5 -3
  268. package/src/table/filters/load-search-modal.jsx +6 -4
  269. package/src/table/filters/save-search-modal.jsx +4 -4
  270. package/src/table/header-select.jsx +1 -1
  271. package/src/table/model-column.jsx +1 -1
  272. package/src/table/model-row.jsx +2 -2
  273. package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
  274. package/src/table/settings/column-row.jsx +2 -2
  275. package/src/table/settings/download-action.jsx +3 -3
  276. package/src/table/settings/index.jsx +3 -3
  277. package/src/table/table-settings.js +5 -4
  278. package/src/table/table.jsx +8 -8
  279. package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
  280. package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
  281. package/src/table/worker-plugins-checkbox.jsx +2 -2
  282. package/src/{translated-collections.mjs → translated-collections.js} +1 -1
  283. package/src/updated-attribute.jsx +1 -1
  284. package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
  285. package/src/use-can-can.js +55 -0
  286. package/src/{use-collection.mjs → use-collection.js} +4 -4
  287. package/src/{use-created-event.mjs → use-created-event.js} +2 -2
  288. package/src/{use-current-user.mjs → use-current-user.js} +6 -5
  289. package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
  290. package/src/{use-input.mjs → use-input.js} +5 -5
  291. package/src/use-model-event.js +2 -2
  292. package/src/{use-model.mjs → use-model.js} +4 -4
  293. package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
  294. package/src/use-router.jsx +2 -2
  295. package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
  296. package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
  297. package/src/utils/checkbox.jsx +2 -2
  298. package/src/{validation-error.mjs → validation-error.js} +1 -1
  299. package/src/{validation-errors.mjs → validation-errors.js} +1 -1
  300. package/src/with-current-user.jsx +1 -1
  301. package/src/with-model.jsx +1 -1
  302. package/__tests__/base-model.test.mjs +0 -71
  303. package/__tests__/cable-connection-pool.test.mjs +0 -227
  304. package/__tests__/cable-subscription-pool.test.mjs +0 -27
  305. package/__tests__/can-can.test.mjs +0 -34
  306. package/__tests__/collection.test.mjs +0 -51
  307. package/__tests__/custom-error.test.mjs +0 -13
  308. package/__tests__/model-name.test.mjs +0 -34
  309. package/__tests__/model-prop-type.test.mjs +0 -113
  310. package/__tests__/params.test.mjs +0 -40
  311. package/__tests__/routes-native.test.mjs +0 -104
  312. package/__tests__/routes.test.mjs +0 -47
  313. package/__tests__/serializer.test.mjs +0 -30
  314. package/__tests__/support/task.mjs +0 -27
  315. package/__tests__/support/user.mjs +0 -32
  316. package/index.js +0 -1
  317. package/jest.config.js +0 -9
  318. package/src/event-created.jsx +0 -12
  319. package/src/event-destroyed.jsx +0 -25
  320. package/src/event-emitter-listener.jsx +0 -10
  321. package/src/event-listener.jsx +0 -25
  322. package/src/event-updated.jsx +0 -27
  323. package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
  324. package/src/use-can-can.mjs +0 -48
  325. package/src/with-can-can.jsx +0 -12
  326. package/webpack.config.js +0 -15
  327. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  328. /package/src/base-model/{column.mjs → column.js} +0 -0
  329. /package/src/base-model/{scope.mjs → scope.js} +0 -0
  330. /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
  331. /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
  332. /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
  333. /package/src/{config.mjs → config.js} +0 -0
  334. /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
  335. /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
  336. /package/src/{error-messages.mjs → error-messages.js} +0 -0
  337. /package/src/{events.mjs → events.js} +0 -0
  338. /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
  339. /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
  340. /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
  341. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  342. /package/src/{logger.mjs → logger.js} +0 -0
  343. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  344. /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
  345. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  346. /package/src/{result.mjs → result.js} +0 -0
  347. /package/src/{routes.mjs → routes.js} +0 -0
  348. /package/src/{run-last.mjs → run-last.js} +0 -0
  349. /package/src/{serializer.mjs → serializer.js} +0 -0
  350. /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
  351. /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
  352. /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
  353. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
  354. /package/src/{url-encode.mjs → url-encode.js} +0 -0
  355. /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
  356. /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
  357. /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
@@ -0,0 +1,128 @@
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 { digs } from "diggerize";
3
+ import inputWrapper from "../inputs/input-wrapper";
4
+ import { Input } from "../inputs/input";
5
+ import InvalidFeedback from "./invalid-feedback";
6
+ import Money from "../inputs/money";
7
+ import PropTypes from "prop-types";
8
+ import memo from "set-state-compare/src/memo";
9
+ import { shapeComponent, ShapeComponent } from "set-state-compare/src/shape-component";
10
+ const ApiMakerBootstrapInput = memo(shapeComponent(class ApiMakerBootstrapInput extends ShapeComponent {
11
+ static propTypes = {
12
+ append: PropTypes.node,
13
+ appendText: PropTypes.node,
14
+ attribute: PropTypes.string,
15
+ className: PropTypes.string,
16
+ currenciesCollection: PropTypes.array,
17
+ currencyName: PropTypes.string,
18
+ hint: PropTypes.node,
19
+ hintBottom: PropTypes.node,
20
+ id: PropTypes.string,
21
+ label: PropTypes.node,
22
+ labelClassName: PropTypes.string,
23
+ model: PropTypes.object,
24
+ name: PropTypes.string,
25
+ placeholder: PropTypes.node,
26
+ prepend: PropTypes.node,
27
+ prependText: PropTypes.node,
28
+ small: PropTypes.bool,
29
+ type: PropTypes.string,
30
+ wrapperClassName: PropTypes.string
31
+ };
32
+ render() {
33
+ const {
34
+ append,
35
+ appendText,
36
+ attribute,
37
+ className,
38
+ currenciesCollection,
39
+ currencyName,
40
+ hint,
41
+ hintBottom,
42
+ id,
43
+ inputClassName,
44
+ inputProps,
45
+ inputRef,
46
+ label,
47
+ labelClassName,
48
+ model,
49
+ name,
50
+ prepend,
51
+ prependText,
52
+ type,
53
+ wrapperClassName,
54
+ wrapperOpts,
55
+ ...restProps
56
+ } = this.props;
57
+ const {
58
+ ref,
59
+ ...forwardedInputProps
60
+ } = inputProps;
61
+ const {
62
+ errors
63
+ } = digs(wrapperOpts, "errors");
64
+ return /*#__PURE__*/React.createElement("div", {
65
+ className: this.wrapperClassName(),
66
+ ref: this.props.wrapperRef
67
+ }, wrapperOpts.label && /*#__PURE__*/React.createElement("label", {
68
+ className: this.labelClassName(),
69
+ htmlFor: inputProps.id
70
+ }, wrapperOpts.label), hint && /*#__PURE__*/React.createElement("span", {
71
+ className: "form-text text-muted font-smoothing font-xs"
72
+ }, hint), type == "money" && /*#__PURE__*/React.createElement(Money, _extends({
73
+ name: inputProps.name,
74
+ className: this.inputClassName(),
75
+ ref: this.props.moneyRef
76
+ }, this.moneyProps())), type != "money" && /*#__PURE__*/React.createElement("div", {
77
+ className: "input-group"
78
+ }, (prepend || prependText) && /*#__PURE__*/React.createElement("div", {
79
+ className: "input-group-prepend"
80
+ }, prependText && /*#__PURE__*/React.createElement("span", {
81
+ className: "input-group-text"
82
+ }, prependText), prepend), /*#__PURE__*/React.createElement(Input, _extends({
83
+ attribute: attribute,
84
+ className: this.inputClassName(),
85
+ inputProps: inputProps,
86
+ model: model,
87
+ wrapperOpts: wrapperOpts
88
+ }, forwardedInputProps, restProps)), (append || appendText) && /*#__PURE__*/React.createElement("div", {
89
+ className: "input-group-append"
90
+ }, appendText && /*#__PURE__*/React.createElement("span", {
91
+ className: "input-group-text"
92
+ }, appendText), append), errors.length > 0 && /*#__PURE__*/React.createElement(InvalidFeedback, {
93
+ errors: errors
94
+ })), hintBottom && /*#__PURE__*/React.createElement("span", {
95
+ className: "form-text text-muted font-smoothing font-xs"
96
+ }, hintBottom));
97
+ }
98
+ inputClassName() {
99
+ const classNames = ["form-control"];
100
+ if (this.props.className) classNames.push(this.props.className);
101
+ if (this.props.wrapperOpts.errors.length > 0) classNames.push("is-invalid");
102
+ return classNames.join(" ");
103
+ }
104
+ labelClassName() {
105
+ const classNames = [];
106
+ if (this.props.labelClassName) classNames.push(this.props.labelClassName);
107
+ return classNames.join(" ");
108
+ }
109
+ moneyProps() {
110
+ const moneyProps = {};
111
+ const forwardedProps = ["attribute", "currenciesCollection", "currencyName", "model", "onChange", "placeholder", "small"];
112
+ for (const forwardedProp of forwardedProps) {
113
+ if (forwardedProp in this.props) moneyProps[forwardedProp] = this.props[forwardedProp];
114
+ }
115
+ const forwardedInputProps = ["defaultValue"];
116
+ for (const forwardedInputProp of forwardedInputProps) {
117
+ if (forwardedInputProp in this.props.inputProps) moneyProps[forwardedInputProp] = this.props.inputProps[forwardedInputProp];
118
+ }
119
+ return moneyProps;
120
+ }
121
+ wrapperClassName() {
122
+ const classNames = ["form-group", "component-bootstrap-string-input"];
123
+ if (this.props.wrapperClassName) classNames.push(this.props.wrapperClassName);
124
+ return classNames.join(" ");
125
+ }
126
+ }));
127
+ export default inputWrapper(ApiMakerBootstrapInput);
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdzIiwiaW5wdXRXcmFwcGVyIiwiSW5wdXQiLCJJbnZhbGlkRmVlZGJhY2siLCJNb25leSIsIlByb3BUeXBlcyIsIm1lbW8iLCJzaGFwZUNvbXBvbmVudCIsIlNoYXBlQ29tcG9uZW50IiwiQXBpTWFrZXJCb290c3RyYXBJbnB1dCIsInByb3BUeXBlcyIsImFwcGVuZCIsIm5vZGUiLCJhcHBlbmRUZXh0IiwiYXR0cmlidXRlIiwic3RyaW5nIiwiY2xhc3NOYW1lIiwiY3VycmVuY2llc0NvbGxlY3Rpb24iLCJhcnJheSIsImN1cnJlbmN5TmFtZSIsImhpbnQiLCJoaW50Qm90dG9tIiwiaWQiLCJsYWJlbCIsImxhYmVsQ2xhc3NOYW1lIiwibW9kZWwiLCJvYmplY3QiLCJuYW1lIiwicGxhY2Vob2xkZXIiLCJwcmVwZW5kIiwicHJlcGVuZFRleHQiLCJzbWFsbCIsImJvb2wiLCJ0eXBlIiwid3JhcHBlckNsYXNzTmFtZSIsInJlbmRlciIsImlucHV0Q2xhc3NOYW1lIiwiaW5wdXRQcm9wcyIsImlucHV0UmVmIiwid3JhcHBlck9wdHMiLCJyZXN0UHJvcHMiLCJwcm9wcyIsInJlZiIsImZvcndhcmRlZElucHV0UHJvcHMiLCJlcnJvcnMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJ3cmFwcGVyUmVmIiwiaHRtbEZvciIsIl9leHRlbmRzIiwibW9uZXlSZWYiLCJtb25leVByb3BzIiwibGVuZ3RoIiwiY2xhc3NOYW1lcyIsInB1c2giLCJqb2luIiwiZm9yd2FyZGVkUHJvcHMiLCJmb3J3YXJkZWRQcm9wIiwiZm9yd2FyZGVkSW5wdXRQcm9wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC9pbnB1dC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4uL2lucHV0cy9pbnB1dC13cmFwcGVyXCJcbmltcG9ydCB7SW5wdXR9IGZyb20gXCIuLi9pbnB1dHMvaW5wdXRcIlxuaW1wb3J0IEludmFsaWRGZWVkYmFjayBmcm9tIFwiLi9pbnZhbGlkLWZlZWRiYWNrXCJcbmltcG9ydCBNb25leSBmcm9tIFwiLi4vaW5wdXRzL21vbmV5XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnQsIFNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5cbmNvbnN0IEFwaU1ha2VyQm9vdHN0cmFwSW5wdXQgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyQm9vdHN0cmFwSW5wdXQgZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXBwZW5kOiBQcm9wVHlwZXMubm9kZSxcbiAgICBhcHBlbmRUZXh0OiBQcm9wVHlwZXMubm9kZSxcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgY3VycmVuY3lOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpbnQ6IFByb3BUeXBlcy5ub2RlLFxuICAgIGhpbnRCb3R0b206IFByb3BUeXBlcy5ub2RlLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxhYmVsOiBQcm9wVHlwZXMubm9kZSxcbiAgICBsYWJlbENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMubm9kZSxcbiAgICBwcmVwZW5kOiBQcm9wVHlwZXMubm9kZSxcbiAgICBwcmVwZW5kVGV4dDogUHJvcFR5cGVzLm5vZGUsXG4gICAgc21hbGw6IFByb3BUeXBlcy5ib29sLFxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgd3JhcHBlckNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBhcHBlbmQsXG4gICAgICBhcHBlbmRUZXh0LFxuICAgICAgYXR0cmlidXRlLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY3VycmVuY2llc0NvbGxlY3Rpb24sXG4gICAgICBjdXJyZW5jeU5hbWUsXG4gICAgICBoaW50LFxuICAgICAgaGludEJvdHRvbSxcbiAgICAgIGlkLFxuICAgICAgaW5wdXRDbGFzc05hbWUsXG4gICAgICBpbnB1dFByb3BzLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBsYWJlbCxcbiAgICAgIGxhYmVsQ2xhc3NOYW1lLFxuICAgICAgbW9kZWwsXG4gICAgICBuYW1lLFxuICAgICAgcHJlcGVuZCxcbiAgICAgIHByZXBlbmRUZXh0LFxuICAgICAgdHlwZSxcbiAgICAgIHdyYXBwZXJDbGFzc05hbWUsXG4gICAgICB3cmFwcGVyT3B0cyxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3JlZiwgLi4uZm9yd2FyZGVkSW5wdXRQcm9wc30gPSBpbnB1dFByb3BzXG4gICAgY29uc3Qge2Vycm9yc30gPSBkaWdzKHdyYXBwZXJPcHRzLCBcImVycm9yc1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLndyYXBwZXJDbGFzc05hbWUoKX0gcmVmPXt0aGlzLnByb3BzLndyYXBwZXJSZWZ9PlxuICAgICAgICB7d3JhcHBlck9wdHMubGFiZWwgJiZcbiAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPXt0aGlzLmxhYmVsQ2xhc3NOYW1lKCl9IGh0bWxGb3I9e2lucHV0UHJvcHMuaWR9PlxuICAgICAgICAgICAge3dyYXBwZXJPcHRzLmxhYmVsfVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIH1cbiAgICAgICAge2hpbnQgJiZcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBmb250LXNtb290aGluZyBmb250LXhzXCI+XG4gICAgICAgICAgICB7aGludH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAge3R5cGUgPT0gXCJtb25leVwiICYmXG4gICAgICAgICAgPE1vbmV5XG4gICAgICAgICAgICBuYW1lPXtpbnB1dFByb3BzLm5hbWV9XG4gICAgICAgICAgICBjbGFzc05hbWU9e3RoaXMuaW5wdXRDbGFzc05hbWUoKX1cbiAgICAgICAgICAgIHJlZj17dGhpcy5wcm9wcy5tb25leVJlZn1cbiAgICAgICAgICAgIHsuLi50aGlzLm1vbmV5UHJvcHMoKX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHt0eXBlICE9IFwibW9uZXlcIiAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgIHsocHJlcGVuZCB8fCBwcmVwZW5kVGV4dCkgJiZcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgICAge3ByZXBlbmRUZXh0ICYmXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHtwcmVwZW5kVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge3ByZXBlbmR9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZT17YXR0cmlidXRlfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3RoaXMuaW5wdXRDbGFzc05hbWUoKX1cbiAgICAgICAgICAgICAgaW5wdXRQcm9wcz17aW5wdXRQcm9wc31cbiAgICAgICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgICAgICB3cmFwcGVyT3B0cz17d3JhcHBlck9wdHN9XG4gICAgICAgICAgICAgIHsuLi5mb3J3YXJkZWRJbnB1dFByb3BzfVxuICAgICAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHsoYXBwZW5kIHx8IGFwcGVuZFRleHQpICYmXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgICAge2FwcGVuZFRleHQgJiZcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlucHV0LWdyb3VwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAge2FwcGVuZFRleHR9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHthcHBlbmR9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2Vycm9ycy5sZW5ndGggPiAwICYmIDxJbnZhbGlkRmVlZGJhY2sgZXJyb3JzPXtlcnJvcnN9IC8+fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtoaW50Qm90dG9tICYmXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZm9udC1zbW9vdGhpbmcgZm9udC14c1wiPlxuICAgICAgICAgICAge2hpbnRCb3R0b219XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBpbnB1dENsYXNzTmFtZSAoKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtcImZvcm0tY29udHJvbFwiXVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xhc3NOYW1lKVxuICAgICAgY2xhc3NOYW1lcy5wdXNoKHRoaXMucHJvcHMuY2xhc3NOYW1lKVxuXG4gICAgaWYgKHRoaXMucHJvcHMud3JhcHBlck9wdHMuZXJyb3JzLmxlbmd0aCA+IDApXG4gICAgICBjbGFzc05hbWVzLnB1c2goXCJpcy1pbnZhbGlkXCIpXG5cbiAgICByZXR1cm4gY2xhc3NOYW1lcy5qb2luKFwiIFwiKVxuICB9XG5cbiAgbGFiZWxDbGFzc05hbWUgKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXVxuXG4gICAgaWYgKHRoaXMucHJvcHMubGFiZWxDbGFzc05hbWUpXG4gICAgICBjbGFzc05hbWVzLnB1c2godGhpcy5wcm9wcy5sYWJlbENsYXNzTmFtZSlcblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cblxuICBtb25leVByb3BzKCkge1xuICAgIGNvbnN0IG1vbmV5UHJvcHMgPSB7fVxuICAgIGNvbnN0IGZvcndhcmRlZFByb3BzID0gW1wiYXR0cmlidXRlXCIsIFwiY3VycmVuY2llc0NvbGxlY3Rpb25cIiwgXCJjdXJyZW5jeU5hbWVcIiwgXCJtb2RlbFwiLCBcIm9uQ2hhbmdlXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzbWFsbFwiXVxuXG4gICAgZm9yIChjb25zdCBmb3J3YXJkZWRQcm9wIG9mIGZvcndhcmRlZFByb3BzKSB7XG4gICAgICBpZiAoZm9yd2FyZGVkUHJvcCBpbiB0aGlzLnByb3BzKSBtb25leVByb3BzW2ZvcndhcmRlZFByb3BdID0gdGhpcy5wcm9wc1tmb3J3YXJkZWRQcm9wXVxuICAgIH1cblxuICAgIGNvbnN0IGZvcndhcmRlZElucHV0UHJvcHMgPSBbXCJkZWZhdWx0VmFsdWVcIl1cblxuICAgIGZvciAoY29uc3QgZm9yd2FyZGVkSW5wdXRQcm9wIG9mIGZvcndhcmRlZElucHV0UHJvcHMpIHtcbiAgICAgIGlmIChmb3J3YXJkZWRJbnB1dFByb3AgaW4gdGhpcy5wcm9wcy5pbnB1dFByb3BzKSBtb25leVByb3BzW2ZvcndhcmRlZElucHV0UHJvcF0gPSB0aGlzLnByb3BzLmlucHV0UHJvcHNbZm9yd2FyZGVkSW5wdXRQcm9wXVxuICAgIH1cblxuICAgIHJldHVybiBtb25leVByb3BzXG4gIH1cblxuICB3cmFwcGVyQ2xhc3NOYW1lICgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wiZm9ybS1ncm91cFwiLCBcImNvbXBvbmVudC1ib290c3RyYXAtc3RyaW5nLWlucHV0XCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lKVxuICAgICAgY2xhc3NOYW1lcy5wdXNoKHRoaXMucHJvcHMud3JhcHBlckNsYXNzTmFtZSlcblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cbn0pKVxuXG5leHBvcnQgZGVmYXVsdCBpbnB1dFdyYXBwZXIoQXBpTWFrZXJCb290c3RyYXBJbnB1dClcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLFlBQVksTUFBTSx5QkFBeUI7QUFDbEQsU0FBUUMsS0FBSyxRQUFPLGlCQUFpQjtBQUNyQyxPQUFPQyxlQUFlLE1BQU0sb0JBQW9CO0FBQ2hELE9BQU9DLEtBQUssTUFBTSxpQkFBaUI7QUFDbkMsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxjQUFjLEVBQUVDLGNBQWMsUUFBTyx1Q0FBdUM7QUFFcEYsTUFBTUMsc0JBQXNCLEdBQUdILElBQUksQ0FBQ0MsY0FBYyxDQUFDLE1BQU1FLHNCQUFzQixTQUFTRCxjQUFjLENBQUM7RUFDckcsT0FBT0UsU0FBUyxHQUFHO0lBQ2pCQyxNQUFNLEVBQUVOLFNBQVMsQ0FBQ08sSUFBSTtJQUN0QkMsVUFBVSxFQUFFUixTQUFTLENBQUNPLElBQUk7SUFDMUJFLFNBQVMsRUFBRVQsU0FBUyxDQUFDVSxNQUFNO0lBQzNCQyxT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
@@ -0,0 +1,27 @@
1
+ import { digs } from "diggerize";
2
+ import PropTypes from "prop-types";
3
+ import propTypesExact from "prop-types-exact";
4
+ import React from "react";
5
+ export default class ApiMakerBootstrapInvalidFeedback extends React.PureComponent {
6
+ static propTypes = propTypesExact({
7
+ errors: PropTypes.array.isRequired
8
+ });
9
+ render() {
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ className: "invalid-feedback"
12
+ }, this.errorMessages().join(". "));
13
+ }
14
+ errorMessages() {
15
+ const {
16
+ errors
17
+ } = digs(this.props, "errors");
18
+ const errorMessages = [];
19
+ for (const error of errors) {
20
+ for (const errorMessage of error.getErrorMessages()) {
21
+ errorMessages.push(errorMessage);
22
+ }
23
+ }
24
+ return errorMessages;
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdzIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIkFwaU1ha2VyQm9vdHN0cmFwSW52YWxpZEZlZWRiYWNrIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsImVycm9ycyIsImFycmF5IiwiaXNSZXF1aXJlZCIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJlcnJvck1lc3NhZ2VzIiwiam9pbiIsInByb3BzIiwiZXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJnZXRFcnJvck1lc3NhZ2VzIiwicHVzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ib290c3RyYXAvaW52YWxpZC1mZWVkYmFjay5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckJvb3RzdHJhcEludmFsaWRGZWVkYmFjayBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGVycm9yczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWRcbiAgfSlcblxuICByZW5kZXIgKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImludmFsaWQtZmVlZGJhY2tcIj5cbiAgICAgICAge3RoaXMuZXJyb3JNZXNzYWdlcygpLmpvaW4oXCIuIFwiKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGVycm9yTWVzc2FnZXMgKCkge1xuICAgIGNvbnN0IHtlcnJvcnN9ID0gZGlncyh0aGlzLnByb3BzLCBcImVycm9yc1wiKVxuICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvcnMpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3JNZXNzYWdlIG9mIGVycm9yLmdldEVycm9yTWVzc2FnZXMoKSkge1xuICAgICAgICBlcnJvck1lc3NhZ2VzLnB1c2goZXJyb3JNZXNzYWdlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvck1lc3NhZ2VzXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUV6QixlQUFlLE1BQU1DLGdDQUFnQyxTQUFTRCxLQUFLLENBQUNFLGFBQWEsQ0FBQztFQUNoRixPQUFPQyxTQUFTLEdBQUdKLGNBQWMsQ0FBQztJQUNoQ0ssTUFBTSxFQUFFTixTQUFTLENBQUNPLEtBQUssQ0FBQ0M7RUFDMUIsQ0FBQyxDQUFDO0VBRUZDLE1BQU1BLENBQUEsRUFBSTtJQUNSLG9CQUNFUCxLQUFBLENBQUFRLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQWtCLEdBQzlCLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FDNUIsQ0FBQztFQUVWO0VBRUFELGFBQWFBLENBQUEsRUFBSTtJQUNmLE1BQU07TUFBQ047SUFBTSxDQUFDLEdBQUdQLElBQUksQ0FBQyxJQUFJLENBQUNlLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDM0MsTUFBTUYsYUFBYSxHQUFHLEVBQUU7SUFFeEIsS0FBSyxNQUFNRyxLQUFLLElBQUlULE1BQU0sRUFBRTtNQUMxQixLQUFLLE1BQU1VLFlBQVksSUFBSUQsS0FBSyxDQUFDRSxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUU7UUFDbkRMLGFBQWEsQ0FBQ00sSUFBSSxDQUFDRixZQUFZLENBQUM7TUFDbEM7SUFDRjtJQUVBLE9BQU9KLGFBQWE7RUFDdEI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,150 @@
1
+ import BaseComponent from "../base-component";
2
+ import instanceOfClassName from "../instance-of-class-name";
3
+ import Link from "../link";
4
+ import PropTypes from "prop-types";
5
+ import propTypesExact from "prop-types-exact";
6
+ import memo from "set-state-compare/src/memo";
7
+ import qs from "qs";
8
+ import { useMemo } from "react";
9
+ import Text from "../utils/text";
10
+ import Result from "../result";
11
+ import { shapeComponent } from "set-state-compare/src/shape-component";
12
+ import urlEncode from "../url-encode";
13
+ export default memo(shapeComponent(class ApiMakerBootstrapPaginate extends BaseComponent {
14
+ static propTypes = propTypesExact({
15
+ result: PropTypes.oneOfType([instanceOfClassName("ApiMakerResult"), PropTypes.instanceOf(Result)]).isRequired
16
+ });
17
+ setup() {
18
+ const {
19
+ result
20
+ } = this.p;
21
+ this.totalPages = useMemo(() => Math.ceil(result.count() / result.perPage()), [result.count(), result.perPage()]);
22
+ this.pages = useMemo(() => this.calculatePages(), [result.currentPage(), this.totalPages]);
23
+ }
24
+ calculatePages() {
25
+ const {
26
+ result
27
+ } = this.p;
28
+ const {
29
+ totalPages
30
+ } = this.tt;
31
+ const currentPage = result.currentPage();
32
+ const pages = [];
33
+ let pagesFrom = currentPage - 5;
34
+ let pagesTo = currentPage + 5;
35
+ if (pagesFrom < 1) {
36
+ pagesFrom = 1;
37
+ }
38
+ if (pagesTo > totalPages) {
39
+ pagesTo = totalPages;
40
+ }
41
+ for (let i = pagesFrom; i <= pagesTo; i++) {
42
+ pages.push(i);
43
+ }
44
+ return pages;
45
+ }
46
+ isPageActiveClass = pageNumber => this.p.result.currentPage() == pageNumber ? "active" : "not-active";
47
+ pagePath(pageNumber) {
48
+ let pageKey = this.p.result.data.collection.queryArgs.pageKey;
49
+ if (!pageKey) {
50
+ pageKey = "page";
51
+ }
52
+ const currentParams = qs.parse(globalThis.location.search.substr(1));
53
+ currentParams[pageKey] = pageNumber;
54
+ const newParams = qs.stringify(currentParams, {
55
+ encoder: urlEncode
56
+ });
57
+ const newPath = `${location.pathname}?${newParams}`;
58
+ return newPath;
59
+ }
60
+ previousPagePath() {
61
+ const {
62
+ result
63
+ } = this.p;
64
+ let previousPage;
65
+ if (result.currentPage() > 1) {
66
+ previousPage = result.currentPage() - 1;
67
+ } else {
68
+ previousPage = result.currentPage();
69
+ }
70
+ return this.pagePath(previousPage);
71
+ }
72
+ nextPagePath() {
73
+ const {
74
+ result
75
+ } = this.p;
76
+ let nextPage;
77
+ if (result.currentPage() < this.tt.totalPages) {
78
+ nextPage = result.currentPage() + 1;
79
+ } else {
80
+ nextPage = result.currentPage();
81
+ }
82
+ return this.pagePath(nextPage);
83
+ }
84
+ showBackwardsDots = () => this.p.result.currentPage() - 5 > 1;
85
+ showForwardsDots = () => this.p.result.currentPage() + 5 < this.tt.totalPages;
86
+ render() {
87
+ const {
88
+ result
89
+ } = this.p;
90
+ const {
91
+ pages,
92
+ totalPages
93
+ } = this.tt;
94
+ const showNextPage = result.currentPage() < totalPages;
95
+ const showLastPage = result.currentPage() < totalPages;
96
+ const showPreviousPage = result.currentPage() > 1;
97
+ const showFirstPage = result.currentPage() > 1;
98
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("ul", {
99
+ className: "pagination",
100
+ "data-pages-length": pages.length
101
+ }, /*#__PURE__*/React.createElement("li", {
102
+ className: `page-item ${!showPreviousPage ? "disabled" : ""}`,
103
+ key: "page-first"
104
+ }, !showPreviousPage && /*#__PURE__*/React.createElement(Text, null, "\u21E4"), showPreviousPage && /*#__PURE__*/React.createElement(Link, {
105
+ dataSet: {
106
+ class: "page-link"
107
+ },
108
+ to: this.pagePath(1)
109
+ }, /*#__PURE__*/React.createElement(Text, null, "\u21E4"))), /*#__PURE__*/React.createElement("li", {
110
+ className: `page-item ${!showFirstPage ? "disabled" : ""}`,
111
+ key: "page-previous"
112
+ }, !showFirstPage && /*#__PURE__*/React.createElement(Text, null, "\u2190"), showFirstPage && /*#__PURE__*/React.createElement(Link, {
113
+ dataSet: {
114
+ class: "page-link"
115
+ },
116
+ to: this.previousPagePath()
117
+ }, /*#__PURE__*/React.createElement(Text, null, "\u2190"))), this.showBackwardsDots() && /*#__PURE__*/React.createElement("li", {
118
+ className: "page-item disabled"
119
+ }, "\u2026"), pages.map(page => /*#__PURE__*/React.createElement("li", {
120
+ className: `page-item ${this.isPageActiveClass(page)}`,
121
+ "data-active": this.isPageActiveClass(page) == "active",
122
+ "data-page": page,
123
+ key: `page-${page}`
124
+ }, this.isPageActiveClass(page) == "active" && page, this.isPageActiveClass(page) == "not-active" && /*#__PURE__*/React.createElement(Link, {
125
+ dataSet: {
126
+ class: "page-link"
127
+ },
128
+ to: this.pagePath(page)
129
+ }, /*#__PURE__*/React.createElement(Text, null, page)))), this.showForwardsDots() && /*#__PURE__*/React.createElement("li", {
130
+ className: "page-item disabled"
131
+ }, "\u2026"), /*#__PURE__*/React.createElement("li", {
132
+ className: `page-item ${!showNextPage ? "disabled" : ""}`,
133
+ key: "page-next"
134
+ }, !showNextPage && /*#__PURE__*/React.createElement(Text, null, "\u2192"), showNextPage && /*#__PURE__*/React.createElement(Link, {
135
+ dataSet: {
136
+ class: "page-link"
137
+ },
138
+ to: this.nextPagePath()
139
+ }, /*#__PURE__*/React.createElement(Text, null, "\u2192"))), /*#__PURE__*/React.createElement("li", {
140
+ className: `page-item ${!showLastPage ? "disabled" : ""}`,
141
+ key: "page-last"
142
+ }, !showLastPage && /*#__PURE__*/React.createElement(Text, null, "\u21E5"), showLastPage && /*#__PURE__*/React.createElement(Link, {
143
+ dataSet: {
144
+ class: "page-link"
145
+ },
146
+ to: this.pagePath(totalPages)
147
+ }, /*#__PURE__*/React.createElement(Text, null, "\u21E5")))));
148
+ }
149
+ }));
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiaW5zdGFuY2VPZkNsYXNzTmFtZSIsIkxpbmsiLCJQcm9wVHlwZXMiLCJwcm9wVHlwZXNFeGFjdCIsIm1lbW8iLCJxcyIsInVzZU1lbW8iLCJUZXh0IiwiUmVzdWx0Iiwic2hhcGVDb21wb25lbnQiLCJ1cmxFbmNvZGUiLCJBcGlNYWtlckJvb3RzdHJhcFBhZ2luYXRlIiwicHJvcFR5cGVzIiwicmVzdWx0Iiwib25lT2ZUeXBlIiwiaW5zdGFuY2VPZiIsImlzUmVxdWlyZWQiLCJzZXR1cCIsInAiLCJ0b3RhbFBhZ2VzIiwiTWF0aCIsImNlaWwiLCJjb3VudCIsInBlclBhZ2UiLCJwYWdlcyIsImNhbGN1bGF0ZVBhZ2VzIiwiY3VycmVudFBhZ2UiLCJ0dCIsInBhZ2VzRnJvbSIsInBhZ2VzVG8iLCJpIiwicHVzaCIsImlzUGFnZUFjdGl2ZUNsYXNzIiwicGFnZU51bWJlciIsInBhZ2VQYXRoIiwicGFnZUtleSIsImRhdGEiLCJjb2xsZWN0aW9uIiwicXVlcnlBcmdzIiwiY3VycmVudFBhcmFtcyIsInBhcnNlIiwiZ2xvYmFsVGhpcyIsImxvY2F0aW9uIiwic2VhcmNoIiwic3Vic3RyIiwibmV3UGFyYW1zIiwic3RyaW5naWZ5IiwiZW5jb2RlciIsIm5ld1BhdGgiLCJwYXRobmFtZSIsInByZXZpb3VzUGFnZVBhdGgiLCJwcmV2aW91c1BhZ2UiLCJuZXh0UGFnZVBhdGgiLCJuZXh0UGFnZSIsInNob3dCYWNrd2FyZHNEb3RzIiwic2hvd0ZvcndhcmRzRG90cyIsInJlbmRlciIsInNob3dOZXh0UGFnZSIsInNob3dMYXN0UGFnZSIsInNob3dQcmV2aW91c1BhZ2UiLCJzaG93Rmlyc3RQYWdlIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJsZW5ndGgiLCJrZXkiLCJkYXRhU2V0IiwiY2xhc3MiLCJ0byIsIm1hcCIsInBhZ2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL3BhZ2luYXRlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IGluc3RhbmNlT2ZDbGFzc05hbWUgZnJvbSBcIi4uL2luc3RhbmNlLW9mLWNsYXNzLW5hbWVcIlxuaW1wb3J0IExpbmsgZnJvbSBcIi4uL2xpbmtcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBxcyBmcm9tIFwicXNcIlxuaW1wb3J0IHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IFJlc3VsdCBmcm9tIFwiLi4vcmVzdWx0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCB1cmxFbmNvZGUgZnJvbSBcIi4uL3VybC1lbmNvZGVcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyQm9vdHN0cmFwUGFnaW5hdGUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICByZXN1bHQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgaW5zdGFuY2VPZkNsYXNzTmFtZShcIkFwaU1ha2VyUmVzdWx0XCIpLFxuICAgICAgUHJvcFR5cGVzLmluc3RhbmNlT2YoUmVzdWx0KVxuICAgIF0pLmlzUmVxdWlyZWRcbiAgfSlcblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7cmVzdWx0fSA9IHRoaXMucFxuXG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdXNlTWVtbyhcbiAgICAgICgpID0+IE1hdGguY2VpbChyZXN1bHQuY291bnQoKSAvIHJlc3VsdC5wZXJQYWdlKCkpLFxuICAgICAgW3Jlc3VsdC5jb3VudCgpLCByZXN1bHQucGVyUGFnZSgpXVxuICAgIClcbiAgICB0aGlzLnBhZ2VzID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHRoaXMuY2FsY3VsYXRlUGFnZXMoKSxcbiAgICAgIFtyZXN1bHQuY3VycmVudFBhZ2UoKSwgdGhpcy50b3RhbFBhZ2VzXVxuICAgIClcbiAgfVxuXG4gIGNhbGN1bGF0ZVBhZ2VzICgpIHtcbiAgICBjb25zdCB7cmVzdWx0fSA9IHRoaXMucFxuICAgIGNvbnN0IHt0b3RhbFBhZ2VzfSA9IHRoaXMudHRcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpXG4gICAgY29uc3QgcGFnZXMgPSBbXVxuXG4gICAgbGV0IHBhZ2VzRnJvbSA9IGN1cnJlbnRQYWdlIC0gNVxuICAgIGxldCBwYWdlc1RvID0gY3VycmVudFBhZ2UgKyA1XG5cbiAgICBpZiAocGFnZXNGcm9tIDwgMSkge1xuICAgICAgcGFnZXNGcm9tID0gMVxuICAgIH1cblxuICAgIGlmIChwYWdlc1RvID4gdG90YWxQYWdlcykge1xuICAgICAgcGFnZXNUbyA9IHRvdGFsUGFnZXNcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gcGFnZXNGcm9tOyBpIDw9IHBhZ2VzVG87IGkrKykge1xuICAgICAgcGFnZXMucHVzaChpKVxuICAgIH1cblxuICAgIHJldHVybiBwYWdlc1xuICB9XG5cbiAgaXNQYWdlQWN0aXZlQ2xhc3MgPSAocGFnZU51bWJlcikgPT4gdGhpcy5wLnJlc3VsdC5jdXJyZW50UGFnZSgpID09IHBhZ2VOdW1iZXIgPyBcImFjdGl2ZVwiIDogXCJub3QtYWN0aXZlXCJcblxuICBwYWdlUGF0aCAocGFnZU51bWJlcikge1xuICAgIGxldCBwYWdlS2V5ID0gdGhpcy5wLnJlc3VsdC5kYXRhLmNvbGxlY3Rpb24ucXVlcnlBcmdzLnBhZ2VLZXlcblxuICAgIGlmICghcGFnZUtleSkge1xuICAgICAgcGFnZUtleSA9IFwicGFnZVwiXG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFBhcmFtcyA9IHFzLnBhcnNlKGdsb2JhbFRoaXMubG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKSlcbiAgICBjdXJyZW50UGFyYW1zW3BhZ2VLZXldID0gcGFnZU51bWJlclxuICAgIGNvbnN0IG5ld1BhcmFtcyA9IHFzLnN0cmluZ2lmeShjdXJyZW50UGFyYW1zLCB7ZW5jb2RlcjogdXJsRW5jb2RlfSlcbiAgICBjb25zdCBuZXdQYXRoID0gYCR7bG9jYXRpb24ucGF0aG5hbWV9PyR7bmV3UGFyYW1zfWBcblxuICAgIHJldHVybiBuZXdQYXRoXG4gIH1cblxuICBwcmV2aW91c1BhZ2VQYXRoICgpIHtcbiAgICBjb25zdCB7cmVzdWx0fSA9IHRoaXMucFxuICAgIGxldCBwcmV2aW91c1BhZ2VcblxuICAgIGlmIChyZXN1bHQuY3VycmVudFBhZ2UoKSA+IDEpIHtcbiAgICAgIHByZXZpb3VzUGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpIC0gMVxuICAgIH0gZWxzZSB7XG4gICAgICBwcmV2aW91c1BhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VQYXRoKHByZXZpb3VzUGFnZSlcbiAgfVxuXG4gIG5leHRQYWdlUGF0aCAoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSB0aGlzLnBcbiAgICBsZXQgbmV4dFBhZ2VcblxuICAgIGlmIChyZXN1bHQuY3VycmVudFBhZ2UoKSA8IHRoaXMudHQudG90YWxQYWdlcykge1xuICAgICAgbmV4dFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKSArIDFcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VQYXRoKG5leHRQYWdlKVxuICB9XG5cbiAgc2hvd0JhY2t3YXJkc0RvdHMgPSAoKSA9PiAodGhpcy5wLnJlc3VsdC5jdXJyZW50UGFnZSgpIC0gNSA+IDEpXG4gIHNob3dGb3J3YXJkc0RvdHMgPSAoKSA9PiAodGhpcy5wLnJlc3VsdC5jdXJyZW50UGFnZSgpICsgNSA8IHRoaXMudHQudG90YWxQYWdlcylcblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtyZXN1bHR9ID0gdGhpcy5wXG4gICAgY29uc3Qge3BhZ2VzLCB0b3RhbFBhZ2VzfSA9IHRoaXMudHRcbiAgICBjb25zdCBzaG93TmV4dFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKSA8IHRvdGFsUGFnZXNcbiAgICBjb25zdCBzaG93TGFzdFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKSA8IHRvdGFsUGFnZXNcbiAgICBjb25zdCBzaG93UHJldmlvdXNQYWdlID0gcmVzdWx0LmN1cnJlbnRQYWdlKCkgPiAxXG4gICAgY29uc3Qgc2hvd0ZpcnN0UGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpID4gMVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDx1bCBjbGFzc05hbWU9XCJwYWdpbmF0aW9uXCIgZGF0YS1wYWdlcy1sZW5ndGg9e3BhZ2VzLmxlbmd0aH0+XG4gICAgICAgICAgPGxpIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAkeyFzaG93UHJldmlvdXNQYWdlID8gXCJkaXNhYmxlZFwiIDogXCJcIn1gfSBrZXk9XCJwYWdlLWZpcnN0XCI+XG4gICAgICAgICAgICB7IXNob3dQcmV2aW91c1BhZ2UgJiZcbiAgICAgICAgICAgICAgPFRleHQ+4oekPC9UZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3Nob3dQcmV2aW91c1BhZ2UgJiZcbiAgICAgICAgICAgICAgPExpbmsgZGF0YVNldD17e2NsYXNzOiBcInBhZ2UtbGlua1wifX0gdG89e3RoaXMucGFnZVBhdGgoMSl9PlxuICAgICAgICAgICAgICAgIDxUZXh0PuKHpDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAkeyFzaG93Rmlyc3RQYWdlID8gXCJkaXNhYmxlZFwiIDogXCJcIn1gfSBrZXk9XCJwYWdlLXByZXZpb3VzXCI+XG4gICAgICAgICAgICB7IXNob3dGaXJzdFBhZ2UgJiZcbiAgICAgICAgICAgICAgPFRleHQ+4oaQPC9UZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3Nob3dGaXJzdFBhZ2UgJiZcbiAgICAgICAgICAgICAgPExpbmsgZGF0YVNldD17e2NsYXNzOiBcInBhZ2UtbGlua1wifX0gdG89e3RoaXMucHJldmlvdXNQYWdlUGF0aCgpfT5cbiAgICAgICAgICAgICAgICA8VGV4dD7ihpA8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIHt0aGlzLnNob3dCYWNrd2FyZHNEb3RzKCkgJiZcbiAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJwYWdlLWl0ZW0gZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgJmhlbGxpcDtcbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgfVxuICAgICAgICAgIHtwYWdlcy5tYXAoKHBhZ2UpID0+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcGFnZS1pdGVtICR7dGhpcy5pc1BhZ2VBY3RpdmVDbGFzcyhwYWdlKX1gfVxuICAgICAgICAgICAgICBkYXRhLWFjdGl2ZT17dGhpcy5pc1BhZ2VBY3RpdmVDbGFzcyhwYWdlKSA9PSBcImFjdGl2ZVwifVxuICAgICAgICAgICAgICBkYXRhLXBhZ2U9e3BhZ2V9XG4gICAgICAgICAgICAgIGtleT17YHBhZ2UtJHtwYWdlfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0aGlzLmlzUGFnZUFjdGl2ZUNsYXNzKHBhZ2UpID09IFwiYWN0aXZlXCIgJiZcbiAgICAgICAgICAgICAgICBwYWdlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAge3RoaXMuaXNQYWdlQWN0aXZlQ2xhc3MocGFnZSkgPT0gXCJub3QtYWN0aXZlXCIgJiZcbiAgICAgICAgICAgICAgICA8TGluayBkYXRhU2V0PXt7Y2xhc3M6IFwicGFnZS1saW5rXCJ9fSB0bz17dGhpcy5wYWdlUGF0aChwYWdlKX0+XG4gICAgICAgICAgICAgICAgICA8VGV4dD57cGFnZX08L1RleHQ+XG4gICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3RoaXMuc2hvd0ZvcndhcmRzRG90cygpICYmXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwicGFnZS1pdGVtIGRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICZoZWxsaXA7XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bGkgY2xhc3NOYW1lPXtgcGFnZS1pdGVtICR7IXNob3dOZXh0UGFnZSA/IFwiZGlzYWJsZWRcIiA6IFwiXCJ9YH0ga2V5PVwicGFnZS1uZXh0XCI+XG4gICAgICAgICAgICB7IXNob3dOZXh0UGFnZSAmJlxuICAgICAgICAgICAgICA8VGV4dD7ihpI8L1RleHQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7c2hvd05leHRQYWdlICYmXG4gICAgICAgICAgICAgIDxMaW5rIGRhdGFTZXQ9e3tjbGFzczogXCJwYWdlLWxpbmtcIn19IHRvPXt0aGlzLm5leHRQYWdlUGF0aCgpfT5cbiAgICAgICAgICAgICAgICA8VGV4dD7ihpI8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9e2BwYWdlLWl0ZW0gJHshc2hvd0xhc3RQYWdlID8gXCJkaXNhYmxlZFwiIDogXCJcIn1gfSBrZXk9XCJwYWdlLWxhc3RcIj5cbiAgICAgICAgICAgIHshc2hvd0xhc3RQYWdlICYmXG4gICAgICAgICAgICAgIDxUZXh0PuKHpTwvVGV4dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtzaG93TGFzdFBhZ2UgJiZcbiAgICAgICAgICAgICAgPExpbmsgZGF0YVNldD17e2NsYXNzOiBcInBhZ2UtbGlua1wifX0gdG89e3RoaXMucGFnZVBhdGgodG90YWxQYWdlcyl9PlxuICAgICAgICAgICAgICAgIDxUZXh0PuKHpTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLG1CQUFtQixNQUFNLDJCQUEyQjtBQUMzRCxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsRUFBRSxNQUFNLElBQUk7QUFDbkIsU0FBUUMsT0FBTyxRQUFPLE9BQU87QUFDN0IsT0FBT0MsSUFBSSxNQUFNLGVBQWU7QUFDaEMsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxTQUFTLE1BQU0sZUFBZTtBQUVyQyxlQUFlTixJQUFJLENBQUNLLGNBQWMsQ0FBQyxNQUFNRSx5QkFBeUIsU0FBU1osYUFBYSxDQUFDO0VBQ3ZGLE9BQU9hLFNBQVMsR0FBR1QsY0FBYyxDQUFDO0lBQ2hDVSxNQUFNLEVBQUVYLFNBQVMsQ0FBQ1ksU0FBUyxDQUFDLENBQzFCZCxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQ0UsU0FBUyxDQUFDYSxVQUFVLENBQUNQLE1BQU0sQ0FBQyxDQUM3QixD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
@@ -0,0 +1,72 @@
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 { digs } from "diggerize";
3
+ import inputWrapper from "../inputs/input-wrapper";
4
+ import InvalidFeedback from "./invalid-feedback";
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([PropTypes.number, PropTypes.string]),
13
+ id: PropTypes.string,
14
+ inputProps: PropTypes.object.isRequired,
15
+ name: PropTypes.string,
16
+ model: PropTypes.object,
17
+ onChange: PropTypes.func,
18
+ onMatchValidationError: PropTypes.func,
19
+ wrapperClassName: PropTypes.string,
20
+ wrapperOpts: PropTypes.object.isRequired
21
+ });
22
+ render() {
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ className: this.wrapperClassName()
25
+ }, /*#__PURE__*/React.createElement("input", _extends({}, this.props.inputProps, {
26
+ type: "hidden",
27
+ value: ""
28
+ })), this.props.collection.map((option, index) => this.optionElement(option, index)));
29
+ }
30
+ inputRadioClassName() {
31
+ const classNames = ["form-check-input"];
32
+ if (this.props.wrapperOpts.errors.length > 0) classNames.push("is-invalid");
33
+ return classNames.join(" ");
34
+ }
35
+ generatedId() {
36
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
37
+ }
38
+ optionElement(option, index) {
39
+ const {
40
+ collection
41
+ } = digs(this.props, "collection");
42
+ const {
43
+ onChange
44
+ } = this.props;
45
+ const id = this.generatedId();
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: "form-check",
48
+ key: `option-${option[1]}`
49
+ }, /*#__PURE__*/React.createElement("input", {
50
+ className: this.inputRadioClassName(),
51
+ "data-option-value": option[1],
52
+ defaultChecked: option[1] == this.props.inputProps.defaultValue,
53
+ id: id,
54
+ name: this.props.inputProps.name,
55
+ onChange: onChange,
56
+ type: "radio",
57
+ value: option[1]
58
+ }), /*#__PURE__*/React.createElement("label", {
59
+ className: "form-check-label",
60
+ htmlFor: id
61
+ }, option[0]), index + 1 == collection.length && this.props.wrapperOpts.errors.length > 0 && /*#__PURE__*/React.createElement(InvalidFeedback, {
62
+ errors: this.props.wrapperOpts.errors
63
+ }));
64
+ }
65
+ wrapperClassName() {
66
+ const classNames = ["component-bootstrap-radio-buttons"];
67
+ if (this.props.wrapperClassName) classNames.push(this.props.wrapperClassName);
68
+ return classNames.join(" ");
69
+ }
70
+ }
71
+ export default inputWrapper(ApiMakerBootstrapRadioButtons);
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdzIiwiaW5wdXRXcmFwcGVyIiwiSW52YWxpZEZlZWRiYWNrIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIkFwaU1ha2VyQm9vdHN0cmFwUmFkaW9CdXR0b25zIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsImF0dHJpYnV0ZSIsInN0cmluZyIsImNvbGxlY3Rpb24iLCJhcnJheSIsImlzUmVxdWlyZWQiLCJkZWZhdWx0VmFsdWUiLCJvbmVPZlR5cGUiLCJudW1iZXIiLCJpZCIsImlucHV0UHJvcHMiLCJvYmplY3QiLCJuYW1lIiwibW9kZWwiLCJvbkNoYW5nZSIsImZ1bmMiLCJvbk1hdGNoVmFsaWRhdGlvbkVycm9yIiwid3JhcHBlckNsYXNzTmFtZSIsIndyYXBwZXJPcHRzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9leHRlbmRzIiwicHJvcHMiLCJ0eXBlIiwidmFsdWUiLCJtYXAiLCJvcHRpb24iLCJpbmRleCIsIm9wdGlvbkVsZW1lbnQiLCJpbnB1dFJhZGlvQ2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsImVycm9ycyIsImxlbmd0aCIsInB1c2giLCJqb2luIiwiZ2VuZXJhdGVkSWQiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzdWJzdHJpbmciLCJrZXkiLCJkZWZhdWx0Q2hlY2tlZCIsImh0bWxGb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL3JhZGlvLWJ1dHRvbnMuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgaW5wdXRXcmFwcGVyIGZyb20gXCIuLi9pbnB1dHMvaW5wdXQtd3JhcHBlclwiXG5pbXBvcnQgSW52YWxpZEZlZWRiYWNrIGZyb20gXCIuL2ludmFsaWQtZmVlZGJhY2tcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmNsYXNzIEFwaU1ha2VyQm9vdHN0cmFwUmFkaW9CdXR0b25zIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgUHJvcFR5cGVzLnN0cmluZ1xuICAgIF0pLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlucHV0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbk1hdGNoVmFsaWRhdGlvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB3cmFwcGVyQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHdyYXBwZXJPcHRzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfSlcblxuICByZW5kZXIgKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17dGhpcy53cmFwcGVyQ2xhc3NOYW1lKCl9PlxuICAgICAgICA8aW5wdXQgey4uLnRoaXMucHJvcHMuaW5wdXRQcm9wc30gdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiXCIgLz5cbiAgICAgICAge3RoaXMucHJvcHMuY29sbGVjdGlvbi5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHRoaXMub3B0aW9uRWxlbWVudChvcHRpb24sIGluZGV4KSl9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBpbnB1dFJhZGlvQ2xhc3NOYW1lICgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wiZm9ybS1jaGVjay1pbnB1dFwiXVxuXG4gICAgaWYgKHRoaXMucHJvcHMud3JhcHBlck9wdHMuZXJyb3JzLmxlbmd0aCA+IDApXG4gICAgICBjbGFzc05hbWVzLnB1c2goXCJpcy1pbnZhbGlkXCIpXG5cbiAgICByZXR1cm4gY2xhc3NOYW1lcy5qb2luKFwiIFwiKVxuICB9XG5cbiAgZ2VuZXJhdGVkSWQgKCkge1xuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTUpICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE1KVxuICB9XG5cbiAgb3B0aW9uRWxlbWVudCAob3B0aW9uLCBpbmRleCkge1xuICAgIGNvbnN0IHtjb2xsZWN0aW9ufSA9IGRpZ3ModGhpcy5wcm9wcywgXCJjb2xsZWN0aW9uXCIpXG4gICAgY29uc3Qge29uQ2hhbmdlfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2VuZXJhdGVkSWQoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1jaGVja1wiIGtleT17YG9wdGlvbi0ke29wdGlvblsxXX1gfT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3NOYW1lPXt0aGlzLmlucHV0UmFkaW9DbGFzc05hbWUoKX1cbiAgICAgICAgICBkYXRhLW9wdGlvbi12YWx1ZT17b3B0aW9uWzFdfVxuICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXtvcHRpb25bMV0gPT0gdGhpcy5wcm9wcy5pbnB1dFByb3BzLmRlZmF1bHRWYWx1ZX1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgbmFtZT17dGhpcy5wcm9wcy5pbnB1dFByb3BzLm5hbWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgdmFsdWU9e29wdGlvblsxXX1cbiAgICAgICAgLz5cblxuICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1jaGVjay1sYWJlbFwiIGh0bWxGb3I9e2lkfT5cbiAgICAgICAgICB7b3B0aW9uWzBdfVxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIHsoaW5kZXggKyAxKSA9PSBjb2xsZWN0aW9uLmxlbmd0aCAmJiB0aGlzLnByb3BzLndyYXBwZXJPcHRzLmVycm9ycy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgPEludmFsaWRGZWVkYmFjayBlcnJvcnM9e3RoaXMucHJvcHMud3JhcHBlck9wdHMuZXJyb3JzfSAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICB3cmFwcGVyQ2xhc3NOYW1lICgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wiY29tcG9uZW50LWJvb3RzdHJhcC1yYWRpby1idXR0b25zXCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lKVxuICAgICAgY2xhc3NOYW1lcy5wdXNoKHRoaXMucHJvcHMud3JhcHBlckNsYXNzTmFtZSlcblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5wdXRXcmFwcGVyKEFwaU1ha2VyQm9vdHN0cmFwUmFkaW9CdXR0b25zKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MsWUFBWSxNQUFNLHlCQUF5QjtBQUNsRCxPQUFPQyxlQUFlLE1BQU0sb0JBQW9CO0FBQ2hELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFFekIsTUFBTUMsNkJBQTZCLFNBQVNELEtBQUssQ0FBQ0UsYUFBYSxDQUFDO0VBQzlELE9BQU9DLFNBQVMsR0FBR0osY0FBYyxD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
@@ -0,0 +1,88 @@
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 { digs } from "diggerize";
3
+ import inputWrapper from "../inputs/input-wrapper";
4
+ import { Select } from "../inputs/select";
5
+ import InvalidFeedback from "./invalid-feedback";
6
+ import PropTypes from "prop-types";
7
+ import React from "react";
8
+ class ApiMakerBootstrapSelect extends React.PureComponent {
9
+ static propTypes = {
10
+ attribute: PropTypes.string,
11
+ className: PropTypes.string,
12
+ description: PropTypes.node,
13
+ id: PropTypes.string,
14
+ hint: PropTypes.node,
15
+ hintBottom: PropTypes.node,
16
+ inputProps: PropTypes.object.isRequired,
17
+ label: PropTypes.node,
18
+ labelContainerClassName: PropTypes.string,
19
+ model: PropTypes.object,
20
+ wrapperClassName: PropTypes.string,
21
+ wrapperOpts: PropTypes.object.isRequired
22
+ };
23
+ render() {
24
+ const {
25
+ children,
26
+ className,
27
+ description,
28
+ id,
29
+ inputProps,
30
+ hint,
31
+ hintBottom,
32
+ label,
33
+ labelContainerClassName,
34
+ name,
35
+ wrapperClassName,
36
+ wrapperOpts,
37
+ ...restProps
38
+ } = this.props;
39
+ const {
40
+ ref,
41
+ ...forwardedInputProps
42
+ } = inputProps;
43
+ const {
44
+ errors
45
+ } = digs(wrapperOpts, "errors");
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: this.wrapperClassName()
48
+ }, wrapperOpts.label && /*#__PURE__*/React.createElement("div", {
49
+ className: labelContainerClassName ? labelContainerClassName : null
50
+ }, /*#__PURE__*/React.createElement("label", {
51
+ className: this.labelClassName(),
52
+ htmlFor: inputProps.id
53
+ }, wrapperOpts.label)), description && /*#__PURE__*/React.createElement("div", {
54
+ className: "mb-4"
55
+ }, description), hint && /*#__PURE__*/React.createElement("span", {
56
+ className: "font-smoothing font-xs form-text text-muted"
57
+ }, hint), children, !children && /*#__PURE__*/React.createElement(Select, _extends({}, forwardedInputProps, {
58
+ className: this.selectClassName(),
59
+ inputProps: inputProps,
60
+ inputRef: ref,
61
+ wrapperOpts: wrapperOpts
62
+ }, restProps)), hintBottom && /*#__PURE__*/React.createElement("span", {
63
+ className: "form-text text-muted font-smoothing font-xs"
64
+ }, hintBottom), errors.length > 0 && /*#__PURE__*/React.createElement(InvalidFeedback, {
65
+ errors: errors
66
+ }));
67
+ }
68
+ labelClassName() {
69
+ const classNames = ["form-group-label"];
70
+ if (this.props.labelClassName) classNames.push(this.props.labelClassName);
71
+ return classNames.join(" ");
72
+ }
73
+ selectClassName() {
74
+ const classNames = ["form-control"];
75
+ if (this.props.className) classNames.push(this.props.className);
76
+ if (this.props.wrapperOpts.errors.length > 0) classNames.push("is-invalid");
77
+ return classNames.join(" ");
78
+ }
79
+ wrapperClassName() {
80
+ const classNames = ["form-group", "component-bootstrap-select"];
81
+ if (this.props.wrapperClassName) classNames.push(this.props.wrapperClassName);
82
+ return classNames.join(" ");
83
+ }
84
+ }
85
+ export default inputWrapper(ApiMakerBootstrapSelect, {
86
+ type: "select"
87
+ });
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdzIiwiaW5wdXRXcmFwcGVyIiwiU2VsZWN0IiwiSW52YWxpZEZlZWRiYWNrIiwiUHJvcFR5cGVzIiwiUmVhY3QiLCJBcGlNYWtlckJvb3RzdHJhcFNlbGVjdCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJhdHRyaWJ1dGUiLCJzdHJpbmciLCJjbGFzc05hbWUiLCJkZXNjcmlwdGlvbiIsIm5vZGUiLCJpZCIsImhpbnQiLCJoaW50Qm90dG9tIiwiaW5wdXRQcm9wcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJsYWJlbCIsImxhYmVsQ29udGFpbmVyQ2xhc3NOYW1lIiwibW9kZWwiLCJ3cmFwcGVyQ2xhc3NOYW1lIiwid3JhcHBlck9wdHMiLCJyZW5kZXIiLCJjaGlsZHJlbiIsIm5hbWUiLCJyZXN0UHJvcHMiLCJwcm9wcyIsInJlZiIsImZvcndhcmRlZElucHV0UHJvcHMiLCJlcnJvcnMiLCJjcmVhdGVFbGVtZW50IiwibGFiZWxDbGFzc05hbWUiLCJodG1sRm9yIiwiX2V4dGVuZHMiLCJzZWxlY3RDbGFzc05hbWUiLCJpbnB1dFJlZiIsImxlbmd0aCIsImNsYXNzTmFtZXMiLCJwdXNoIiwiam9pbiIsInR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL3NlbGVjdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4uL2lucHV0cy9pbnB1dC13cmFwcGVyXCJcbmltcG9ydCB7U2VsZWN0fSBmcm9tIFwiLi4vaW5wdXRzL3NlbGVjdFwiXG5pbXBvcnQgSW52YWxpZEZlZWRiYWNrIGZyb20gXCIuL2ludmFsaWQtZmVlZGJhY2tcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuY2xhc3MgQXBpTWFrZXJCb290c3RyYXBTZWxlY3QgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBQcm9wVHlwZXMubm9kZSxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBoaW50OiBQcm9wVHlwZXMubm9kZSxcbiAgICBoaW50Qm90dG9tOiBQcm9wVHlwZXMubm9kZSxcbiAgICBpbnB1dFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLFxuICAgIGxhYmVsQ29udGFpbmVyQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHdyYXBwZXJDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgd3JhcHBlck9wdHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgaWQsXG4gICAgICBpbnB1dFByb3BzLFxuICAgICAgaGludCxcbiAgICAgIGhpbnRCb3R0b20sXG4gICAgICBsYWJlbCxcbiAgICAgIGxhYmVsQ29udGFpbmVyQ2xhc3NOYW1lLFxuICAgICAgbmFtZSxcbiAgICAgIHdyYXBwZXJDbGFzc05hbWUsXG4gICAgICB3cmFwcGVyT3B0cyxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3JlZiwgLi4uZm9yd2FyZGVkSW5wdXRQcm9wc30gPSBpbnB1dFByb3BzXG4gICAgY29uc3Qge2Vycm9yc30gPSBkaWdzKHdyYXBwZXJPcHRzLCBcImVycm9yc1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXt0aGlzLndyYXBwZXJDbGFzc05hbWUoKX0+XG4gICAgICAgIHt3cmFwcGVyT3B0cy5sYWJlbCAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtsYWJlbENvbnRhaW5lckNsYXNzTmFtZSA/IGxhYmVsQ29udGFpbmVyQ2xhc3NOYW1lIDogbnVsbH0+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPXt0aGlzLmxhYmVsQ2xhc3NOYW1lKCl9IGh0bWxGb3I9e2lucHV0UHJvcHMuaWR9PlxuICAgICAgICAgICAgICB7d3JhcHBlck9wdHMubGFiZWx9XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtkZXNjcmlwdGlvbiAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtoaW50ICYmXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zbW9vdGhpbmcgZm9udC14cyBmb3JtLXRleHQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAge2hpbnR9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgeyFjaGlsZHJlbiAmJlxuICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIHsuLi5mb3J3YXJkZWRJbnB1dFByb3BzfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXt0aGlzLnNlbGVjdENsYXNzTmFtZSgpfVxuICAgICAgICAgICAgaW5wdXRQcm9wcz17aW5wdXRQcm9wc31cbiAgICAgICAgICAgIGlucHV0UmVmPXtyZWZ9XG4gICAgICAgICAgICB3cmFwcGVyT3B0cz17d3JhcHBlck9wdHN9XG4gICAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge2hpbnRCb3R0b20gJiZcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBmb250LXNtb290aGluZyBmb250LXhzXCI+XG4gICAgICAgICAgICB7aGludEJvdHRvbX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAge2Vycm9ycy5sZW5ndGggPiAwICYmIDxJbnZhbGlkRmVlZGJhY2sgZXJyb3JzPXtlcnJvcnN9IC8+fVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgbGFiZWxDbGFzc05hbWUgKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJmb3JtLWdyb3VwLWxhYmVsXCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy5sYWJlbENsYXNzTmFtZSlcbiAgICAgIGNsYXNzTmFtZXMucHVzaCh0aGlzLnByb3BzLmxhYmVsQ2xhc3NOYW1lKVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXMuam9pbihcIiBcIilcbiAgfVxuXG4gIHNlbGVjdENsYXNzTmFtZSAoKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtcImZvcm0tY29udHJvbFwiXVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xhc3NOYW1lKSBjbGFzc05hbWVzLnB1c2godGhpcy5wcm9wcy5jbGFzc05hbWUpXG4gICAgaWYgKHRoaXMucHJvcHMud3JhcHBlck9wdHMuZXJyb3JzLmxlbmd0aCA+IDApIGNsYXNzTmFtZXMucHVzaChcImlzLWludmFsaWRcIilcblxuICAgIHJldHVybiBjbGFzc05hbWVzLmpvaW4oXCIgXCIpXG4gIH1cblxuICB3cmFwcGVyQ2xhc3NOYW1lICgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wiZm9ybS1ncm91cFwiLCBcImNvbXBvbmVudC1ib290c3RyYXAtc2VsZWN0XCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lKSBjbGFzc05hbWVzLnB1c2godGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lKVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXMuam9pbihcIiBcIilcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbnB1dFdyYXBwZXIoQXBpTWFrZXJCb290c3RyYXBTZWxlY3QsIHt0eXBlOiBcInNlbGVjdFwifSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLFlBQVksTUFBTSx5QkFBeUI7QUFDbEQsU0FBUUMsTUFBTSxRQUFPLGtCQUFrQjtBQUN2QyxPQUFPQyxlQUFlLE1BQU0sb0JBQW9CO0FBQ2hELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBRXpCLE1BQU1DLHVCQUF1QixTQUFTRCxLQUFLLENBQUNFLGFBQWEsQ0FBQztFQUN4RCxPQUFPQyxTQUFTLEdBQUc7SUFDakJDLFNBQVMsRUFBRUwsU0FBUyxDQUFDTSxNQUFNO0lBQzNCQyxTQUFTLEVBQUVQLFNBQVMsQ0FBQ00sTUFBTTtJQUMzQkUsV0FBVyxFQUFFUixTQUFTLENBQUNTLElBQUk7SUFDM0JDLEVBQUUsRUFBRVYsU0FBUyxDQUFDTSxNQUFNO0lBQ3BCSyxJQUFJLEVBQUVYLFNBQVMsQ0FBQ1MsSUFBSTtJQUNwQkcsVUFBVSxFQUFFWixTQUFTLENBQUNTLElBQUk7SUFDMUJJLFVBQVUsRUFBRWIsU0FBUyxDQUFDYyxNQUFNLENBQUNDLFVBQVU7SUFDdkNDLEtBQUssRUFBRWhCLFNBQVMsQ0FBQ1MsSUFBSTtJQUNyQlEsdUJBQXVCLEVBQUVqQixTQUFTLENBQUNNLE1BQU07SUFDekNZLEtBQUssRUFBRWxCLFNBQVMsQ0FBQ2MsTUFBTTtJQUN2QkssZ0JBQWdCLEVBQUVuQixTQUFTLENBQUNNLE1BQU07SUFDbENjLFdBQVcsRUFBRXBCLFNBQVMsQ0FBQ2MsTUFBTSxDQUFDQztFQUNoQyxDQUFDO0VBRURNLE1BQU1BLENBQUEsRUFBSTtJQUNSLE1BQU07TUFDSkMsUUFBUTtNQUNSZixTQUFTO01BQ1RDLFdBQVc7TUFDWEUsRUFBRTtNQUNGRyxVQUFVO01BQ1ZG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